]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/graphics.cpp
non-pch build fix
[wxWidgets.git] / src / msw / graphics.cpp
index e3a43c31d7c1d716b2f8723d1c2ef757c7ce17fc..4e34e730123c33a9accb1e8ddb46402e187b5556 100644 (file)
@@ -1,11 +1,11 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        src/mac/carbon/dccg.cpp
+// Name:        src/msw/graphics.cpp
 // Purpose:     wxGCDC class
 // Author:      Stefan Csomor
 // Modified by:
-// Created:     01/02/97
+// Created:     2006-09-30
 // RCS-ID:      $Id$
-// Copyright:   (c) Stefan Csomor
+// Copyright:   (c) 2006 Stefan Csomor
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
@@ -13,9 +13,6 @@
 
 #include "wx/dc.h"
 
-// For compilers that support precompilation, includes "wx.h".
-#include "wx/wxprec.h"
-
 #ifdef __BORLANDC__
 #pragma hdrstop
 #endif
@@ -38,6 +35,8 @@
 
 #include "wx/graphics.h"
 
+#if wxUSE_GRAPHICS_CONTEXT
+
 #include <vector>
 
 using namespace std;
@@ -198,6 +197,14 @@ public:
     virtual ~wxGDIPlusContext();
 
     virtual void Clip( const wxRegion &region );
+    // clips drawings to the rect
+    virtual void Clip( wxDouble x, wxDouble y, wxDouble w, wxDouble h );
+       
+       // resets the clipping to original extent
+       virtual void ResetClip();
+
+       virtual void * GetNativeContext();
+       
     virtual void StrokePath( const wxGraphicsPath *p );
     virtual void FillPath( const wxGraphicsPath *p , int fillStyle = wxWINDING_RULE );
 
@@ -349,6 +356,7 @@ wxGDIPlusContext::wxGDIPlusContext( WXHDC hdc  )
 {
     gGDILoader.EnsureIsLoaded();
     m_context = new Graphics( (HDC) hdc);
+    m_context->SetSmoothingMode(SmoothingModeHighQuality);
     m_state1 = m_context->Save();
     m_state2 = m_context->Save();
 
@@ -388,7 +396,17 @@ wxGDIPlusContext::~wxGDIPlusContext()
 
 void wxGDIPlusContext::Clip( const wxRegion & WXUNUSED(region) )
 {
-//    ClipCGContextToRegion ( m_context, &bounds , (RgnHandle) dc->m_macCurrentClipRgn );
+// TODO
+}
+
+void wxGDIPlusContext::Clip( wxDouble x, wxDouble y, wxDouble w, wxDouble h )
+{
+// TODO
+}
+       
+void wxGDIPlusContext::ResetClip()
+{
+// TODO
 }
 
 void wxGDIPlusContext::StrokePath( const wxGraphicsPath *p )
@@ -417,7 +435,7 @@ wxGraphicsPath* wxGDIPlusContext::CreatePath()
 
 void wxGDIPlusContext::Rotate( wxDouble angle ) 
 {
-    m_context->RotateTransform( angle );
+    m_context->RotateTransform( RadToDeg(angle) );
 }
 
 void wxGDIPlusContext::Translate( wxDouble dx , wxDouble dy ) 
@@ -427,21 +445,7 @@ void wxGDIPlusContext::Translate( wxDouble dx , wxDouble dy )
 
 void wxGDIPlusContext::Scale( wxDouble xScale , wxDouble yScale )
 {
-    PointF penWidth( m_pen->GetWidth(), 0);
-    Matrix matrix ;
-    if ( !m_penTransparent )
-    {
-            m_context->GetTransform(&matrix);
-            matrix.TransformVectors(&penWidth);
-    }
     m_context->ScaleTransform(xScale,yScale);
-    if ( !m_penTransparent )
-    {
-        m_context->GetTransform(&matrix);
-        matrix.Invert();
-        matrix.TransformVectors(&penWidth) ;
-        m_pen->SetWidth( sqrt( penWidth.X*penWidth.X  + penWidth.Y*penWidth.Y));
-    }
 }
 
 void wxGDIPlusContext::PushState()
@@ -941,7 +945,26 @@ void wxGDIPlusContext::SetFont( const wxFont &font )
     m_font = new Font( s , size , style );
 }
 
+void* wxGDIPlusContext::GetNativeContext() 
+{
+       return m_context;
+}
+
 wxGraphicsContext* wxGraphicsContext::Create( const wxWindowDC& dc)
 {
     return new wxGDIPlusContext( (HDC) dc.GetHDC() );
 }
+
+wxGraphicsContext* wxGraphicsContext::Create( wxWindow * window )
+{
+       return NULL; // TODO
+}
+
+wxGraphicsContext* wxGraphicsContext::CreateFromNative( void * context )
+{
+       return NULL; // TODO
+}
+
+
+
+#endif  // wxUSE_GRAPHICS_CONTEXT