]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/dcclient.cpp
Added VC++ project files for remaining Gizmo samples
[wxWidgets.git] / src / gtk / dcclient.cpp
index dd82f8f8b462fe5e6aa282338e232fd5d73751d9..51f831c216ad88cb1d6ba91ee3b810f95ad776db 100644 (file)
@@ -246,6 +246,8 @@ wxWindowDC::wxWindowDC()
 
 wxWindowDC::wxWindowDC( wxWindow *window )
 {
+    wxASSERT_MSG( window, wxT("DC needs a window") );
+
     m_penGC = (GdkGC *) NULL;
     m_brushGC = (GdkGC *) NULL;
     m_textGC = (GdkGC *) NULL;
@@ -256,8 +258,6 @@ wxWindowDC::wxWindowDC( wxWindow *window )
     m_isScreenDC = FALSE;
     m_font = window->GetFont();
 
-    wxASSERT_MSG( window, wxT("DC needs a window") );
-
     GtkWidget *widget = window->m_wxwindow;
 
     // some controls don't have m_wxwindow - like wxStaticBox, but the user
@@ -1104,10 +1104,10 @@ bool wxWindowDC::DoBlit( wxCoord xdest, wxCoord ydest,
 
     if (!m_window) return FALSE;
 
-#if 0
+#if 1
     // transform the source DC coords to the device ones
-    xsrc = XLOG2DEV(xsrc);
-    ysrc = YLOG2DEV(ysrc);
+    xsrc = source->XLOG2DEV(xsrc);
+    ysrc = source->YLOG2DEV(ysrc);
 #endif
 
     wxClientDC *srcDC = (wxClientDC*)source;
@@ -1374,11 +1374,12 @@ void wxWindowDC::DoDrawText( const wxString &text, wxCoord x, wxCoord y )
 #else
     wxCoord width = gdk_string_width( font, text.mbc_str() );
     wxCoord height = font->ascent + font->descent;
-    /* CMB 21/5/98: draw text background if mode is wxSOLID */
-    if (m_backgroundMode == wxSOLID)
+
+    if ( m_backgroundMode == wxSOLID )
     {
         gdk_gc_set_foreground( m_textGC, m_textBackgroundColour.GetColor() );
         gdk_draw_rectangle( m_window, m_textGC, TRUE, x, y, width, height );
+        gdk_gc_set_foreground( m_textGC, m_textForegroundColour.GetColor() );
     }
     gdk_draw_string( m_window, font, m_textGC, x, y + font->ascent, text.mbc_str() );
 #endif
@@ -1432,7 +1433,6 @@ void wxWindowDC::DoDrawRotatedText( const wxString &text, wxCoord x, wxCoord y,
     dc.SetBrush(*wxBLACK_BRUSH);
     dc.Clear();
     dc.DrawText(text, 0, 0);
-    dc.SetFont(wxNullFont);
     dc.SelectObject(wxNullBitmap);
 
     // Calculate the size of the rotated bounding box.
@@ -1579,6 +1579,8 @@ void wxWindowDC::Clear()
 
 void wxWindowDC::SetFont( const wxFont &font )
 {
+    wxCHECK_RET( font.Ok(), _T("invalid font in wxWindowDC::SetFont") );
+
     m_font = font;
 #ifdef __WXGTK20__
     // fix fontdesc?