]> git.saurik.com Git - wxWidgets.git/blobdiff - src/dfb/dc.cpp
fixed IMPLEMENT_APP to work even if compiled with --with-themes and win32 or gtk...
[wxWidgets.git] / src / dfb / dc.cpp
index f5fac4bcc074ce081418b526b8f26d9242f722bd..5c44c092d43bb08cac79c2228c02cc9eca7a5f2e 100644 (file)
@@ -78,22 +78,15 @@ void wxDC::Init(const wxIDirectFBSurfacePtr& surface)
 // clipping
 // ---------------------------------------------------------------------------
 
-
-#define DO_SET_CLIPPING_BOX(rg)                      \
-{                                                    \
-    wxRect rect = rg.GetBox();                       \
-    m_clipX1 = (wxCoord) XDEV2LOG(rect.GetLeft());   \
-    m_clipY1 = (wxCoord) YDEV2LOG(rect.GetTop());    \
-    m_clipX2 = (wxCoord) XDEV2LOG(rect.GetRight());  \
-    m_clipY2 = (wxCoord) YDEV2LOG(rect.GetBottom()); \
-}
-
 void wxDC::DoSetClippingRegion(wxCoord cx, wxCoord cy, wxCoord cw, wxCoord ch)
 {
     wxCHECK_RET( Ok(), wxT("invalid dc") );
 
     wxSize size(GetSize());
 
+    wxASSERT_MSG( !m_clipping,
+                  _T("narrowing clipping region not implemented yet") );
+
     // NB: We intersect the clipping rectangle with surface's area here because
     //     DirectFB will return an error if you try to set clipping rectangle
     //     that is partially outside of the surface.
@@ -115,8 +108,7 @@ void wxDC::DoSetClippingRegion(wxCoord cx, wxCoord cy, wxCoord cw, wxCoord ch)
 
 void wxDC::DoSetClippingRegionAsRegion(const wxRegion& region)
 {
-    // NB: this can be done because wxDFB only supports
-    //     rectangular regions
+    // NB: this can be done because wxDFB only supports rectangular regions
     SetClippingRegion(region.AsRect());
 }
 
@@ -259,7 +251,8 @@ void wxDC::DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height)
     {
         SelectColour(m_brush.GetColour());
         m_surface->FillRectangle(xx, yy, ww, hh);
-        // restore pen's colour
+        // restore pen's colour, because other drawing functions expect the
+        // colour to be set to the pen:
         SelectColour(m_pen.GetColour());
     }
 
@@ -309,16 +302,22 @@ void wxDC::DoDrawText(const wxString& text, wxCoord x, wxCoord y)
     // if background mode is solid, DrawText must paint text's background:
     if ( m_backgroundMode == wxSOLID )
     {
-        wxCHECK_RET( m_backgroundBrush.Ok(), wxT("invalid background brush") );
+        wxCHECK_RET( m_textBackgroundColour.Ok(),
+                     wxT("invalid background color") );
 
-        SelectColour(m_backgroundBrush.GetColour());
+        SelectColour(m_textBackgroundColour);
         m_surface->FillRectangle(xx, yy, XLOG2DEVREL(w), YLOG2DEVREL(h));
-        // restore pen's colour
-        SelectColour(m_pen.GetColour());
     }
 
     // finally draw the text itself:
+    wxCHECK_RET( m_textForegroundColour.Ok(),
+                 wxT("invalid foreground color") );
+    SelectColour(m_textForegroundColour);
     m_surface->DrawString(wxSTR_TO_DFB(text), -1, xx, yy, DSTF_LEFT | DSTF_TOP);
+
+    // restore pen's colour, because other drawing functions expect the colour
+    // to be set to the pen:
+    SelectColour(m_pen.GetColour());
 }
 
 void wxDC::DoDrawRotatedText(const wxString& text,