]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/graphicc.cpp
Maximize for iPhone
[wxWidgets.git] / src / generic / graphicc.cpp
index c832f183610f702e3d9a0bcd7536b64b8c215450..482befad692558d1a8b3c6ffbe4030555249ff4b 100644 (file)
@@ -29,6 +29,9 @@
     #include "wx/dcclient.h"
     #include "wx/dcmemory.h"
     #include "wx/dcprint.h"
+    #ifdef __WXGTK__
+        #include "wx/window.h"
+    #endif
 #endif
 
 #include "wx/private/graphics.h"
@@ -785,7 +788,7 @@ void wxCairoFontData::Apply( wxGraphicsContext* context )
     cairo_set_font_face(ctext, m_font);
     cairo_set_font_size(ctext, m_size );
 #else
-    cairo_select_font_face(ctext, m_fontName, m_slant, m_weights );
+    cairo_select_font_face(ctext, m_fontName, m_slant, m_weight );
     cairo_set_font_size(ctext, m_size );
 #endif
 }
@@ -929,9 +932,10 @@ void wxCairoPathData::GetBox(wxDouble *x, wxDouble *y, wxDouble *w, wxDouble *h)
     }
 }
 
-bool wxCairoPathData::Contains( wxDouble x, wxDouble y, wxPolygonFillMode WXUNUSED(fillStyle) ) const
+bool wxCairoPathData::Contains( wxDouble x, wxDouble y, wxPolygonFillMode fillStyle ) const
 {
-    return cairo_in_stroke( m_pathContext, x, y) != 0;
+    cairo_set_fill_rule(m_pathContext,fillStyle==wxODDEVEN_RULE ? CAIRO_FILL_RULE_EVEN_ODD : CAIRO_FILL_RULE_WINDING);
+    return cairo_in_fill( m_pathContext, x, y) != 0;
 }
 
 //-----------------------------------------------------------------------------
@@ -1070,6 +1074,7 @@ wxCairoBitmapData::wxCairoBitmapData( wxGraphicsRenderer* renderer, const wxBitm
 {
     wxCHECK_RET( bmp.IsOk(), wxT("Invalid bitmap in wxCairoContext::DrawBitmap"));
 
+#ifdef wxHAS_RAW_BITMAP
     int bw = m_width = bmp.GetWidth();
     int bh = m_height = bmp.GetHeight();
     wxBitmap bmpSource = bmp;  // we need a non-const instance
@@ -1137,6 +1142,7 @@ wxCairoBitmapData::wxCairoBitmapData( wxGraphicsRenderer* renderer, const wxBitm
         }
     }
     m_pattern = cairo_pattern_create_for_surface(m_surface);
+#endif // wxHAS_RAW_BITMAP
 }
 
 wxCairoBitmapData::~wxCairoBitmapData()
@@ -1470,10 +1476,10 @@ void wxCairoContext::DrawBitmap(const wxGraphicsBitmap &bmp, wxDouble x, wxDoubl
 
     wxDouble scaleX = w / size.GetWidth();
     wxDouble scaleY = h / size.GetHeight();
-    cairo_scale(m_context, scaleX, scaleY);
 
     // prepare to draw the image
     cairo_translate(m_context, x, y);
+    cairo_scale(m_context, scaleX, scaleY);
     cairo_set_source(m_context, pattern);
     // use the original size here since the context is scaled already...
     cairo_rectangle(m_context, 0, 0, size.GetWidth(), size.GetHeight());
@@ -1829,8 +1835,7 @@ wxGraphicsContext * wxCairoRenderer::CreateContextFromNativeContext( void * cont
 {
 #ifdef __WXMSW__
     return new wxCairoContext(this,(HDC)context);
-#endif
-#ifdef __WXGTK__
+#else
     return new wxCairoContext(this,(cairo_t*)context);
 #endif
 }