]> git.saurik.com Git - wxWidgets.git/blobdiff - src/x11/dcclient.cpp
add wxUSE_DATAVIEWCTRL check to fix a hundred compilation errors
[wxWidgets.git] / src / x11 / dcclient.cpp
index c799f1fbedc596a1dd600302f35dd650323d42d5..5e19609f432b31023289f3c3ed8faed5de0a48b1 100644 (file)
@@ -41,7 +41,8 @@
 // local defines
 //-----------------------------------------------------------------------------
 
-#define USE_PAINT_REGION 1
+// VZ: what is this for exactly??
+#define USE_PAINT_REGION 0
 
 //-----------------------------------------------------------------------------
 // local data
@@ -165,7 +166,7 @@ static void wxFreePoolGC( GC gc )
 
 IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC)
 
-wxWindowDC::wxWindowDC()
+void wxWindowDC::Init()
 {
     m_display = (WXDisplay *) NULL;
     m_penGC = (WXGC *) NULL;
@@ -178,7 +179,7 @@ wxWindowDC::wxWindowDC()
     m_owner = (wxWindow *)NULL;
 
 #if wxUSE_UNICODE
-    m_context = (PangoContext *)NULL;
+    m_context = wxTheApp->GetPangoContext();
     m_fontdesc = (PangoFontDescription *)NULL;
 #endif
 }
@@ -187,15 +188,8 @@ wxWindowDC::wxWindowDC( wxWindow *window )
 {
     wxASSERT_MSG( window, wxT("DC needs a window") );
 
-    m_display = (WXDisplay *) NULL;
-    m_penGC = (WXGC *) NULL;
-    m_brushGC = (WXGC *) NULL;
-    m_textGC = (WXGC *) NULL;
-    m_bgGC = (WXGC *) NULL;
-    m_cmap = (WXColormap *) NULL;
-    m_owner = (wxWindow *)NULL;
-    m_isMemDC = false;
-    m_isScreenDC = false;
+    Init();
+
     m_font = window->GetFont();
 
     m_window = (WXWindow*) window->GetMainWindow();
@@ -212,7 +206,6 @@ wxWindowDC::wxWindowDC( wxWindow *window )
     m_display = (WXDisplay *) wxGlobalDisplay();
 
 #if wxUSE_UNICODE
-    m_context = wxTheApp->GetPangoContext();
     m_fontdesc = window->GetFont().GetNativeFontInfo()->description;
 #endif
 
@@ -632,7 +625,8 @@ void wxWindowDC::DoDrawLines( int n, wxPoint points[], wxCoord xoffset, wxCoord
 }
 
 void wxWindowDC::DoDrawPolygon( int n, wxPoint points[],
-                                wxCoord xoffset, wxCoord yoffset, int fillStyle )
+                                wxCoord xoffset, wxCoord yoffset,
+                                int WXUNUSED(fillStyle) )
 {
     wxCHECK_RET( Ok(), wxT("invalid window dc") );
 
@@ -1284,8 +1278,8 @@ bool wxWindowDC::DoBlit( wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord he
     if (!m_window) return false;
 
     // transform the source DC coords to the device ones
-    xsrc = source->XLOG2DEV(xsrc);
-    ysrc = source->YLOG2DEV(ysrc);
+    xsrc = source->LogicalToDeviceX(xsrc);
+    ysrc = source->LogicalToDeviceY(ysrc);
 
     wxClientDC *srcDC = (wxClientDC*)source;
     wxMemoryDC *memDC = (wxMemoryDC*)source;
@@ -1571,7 +1565,7 @@ void wxWindowDC::DoDrawText( const wxString &text, wxCoord x, wxCoord y )
         slen = strlen(text);
         XCharStruct overall_return;
 
-        (void)XTextExtents(xfont, (char*) text.c_str(), slen, &direction,
+        (void)XTextExtents(xfont, (const char*) text.c_str(), slen, &direction,
                                  &ascent, &descent, &overall_return);
 
         cx = overall_return.width;
@@ -1613,14 +1607,16 @@ void wxWindowDC::DoDrawText( const wxString &text, wxCoord x, wxCoord y )
 #endif
 }
 
-void wxWindowDC::DoDrawRotatedText( const wxString &text, wxCoord x, wxCoord y, double angle )
+void wxWindowDC::DoDrawRotatedText(const wxString& WXUNUSED(text),
+                                   wxCoord WXUNUSED(x), wxCoord WXUNUSED(y),
+                                   double WXUNUSED(angle))
 {
-    // later
+    wxFAIL_MSG( "not implemented" );
 }
 
 void wxWindowDC::DoGetTextExtent( const wxString &string, wxCoord *width, wxCoord *height,
                                 wxCoord *descent, wxCoord *externalLeading,
-                                wxFont *font ) const
+                                const wxFont *font ) const
 {
     wxCHECK_RET( Ok(), wxT("invalid dc") );
 
@@ -1669,7 +1665,7 @@ void wxWindowDC::DoGetTextExtent( const wxString &string, wxCoord *width, wxCoor
     int direction, ascent, descent2;
     XCharStruct overall;
 
-    XTextExtents( xfont, (char*) string.c_str(), string.length(), &direction,
+    XTextExtents( xfont, (const char*) string.c_str(), string.length(), &direction,
         &ascent, &descent2, &overall);
 
     if (width)
@@ -1787,8 +1783,6 @@ void wxWindowDC::SetFont( const wxFont &font )
 
     m_font = font;
 
-    return;
-
 #if wxUSE_UNICODE
     m_fontdesc = font.GetNativeFontInfo()->description;
 #endif
@@ -2146,7 +2140,7 @@ void wxWindowDC::SetBackgroundMode( int mode )
     }
 }
 
-void wxWindowDC::SetPalette( const wxPalette& palette )
+void wxWindowDC::SetPalette( const wxPalette& WXUNUSED(palette) )
 {
 #if 0
     if (m_window)
@@ -2169,19 +2163,25 @@ void wxWindowDC::DoSetClippingRegion( wxCoord x, wxCoord y, wxCoord width, wxCoo
 
     if (!m_window) return;
 
+    if (width <= 0)
+        width = 1;
+
+    if (height <= 0)
+        height = 1;
+
     wxRect rect;
     rect.x = XLOG2DEV(x);
     rect.y = YLOG2DEV(y);
     rect.width = XLOG2DEVREL(width);
     rect.height = YLOG2DEVREL(height);
 
-    if (!m_currentClippingRegion.IsNull())
+    if (!m_currentClippingRegion.IsEmpty())
         m_currentClippingRegion.Intersect( rect );
     else
-        m_currentClippingRegion.Union( rect );
+        m_currentClippingRegion = rect;
 
 #if USE_PAINT_REGION
-    if (!m_paintClippingRegion.IsNull())
+    if (!m_paintClippingRegion.IsEmpty())
         m_currentClippingRegion.Intersect( m_paintClippingRegion );
 #endif
 
@@ -2207,13 +2207,13 @@ void wxWindowDC::DoSetClippingRegionAsRegion( const wxRegion& region )
 
     if (!m_window) return;
 
-    if (!m_currentClippingRegion.IsNull())
+    if (!m_currentClippingRegion.IsEmpty())
         m_currentClippingRegion.Intersect( region );
     else
-        m_currentClippingRegion.Union( region );
+        m_currentClippingRegion = region;
 
 #if USE_PAINT_REGION
-    if (!m_paintClippingRegion.IsNull())
+    if (!m_paintClippingRegion.IsEmpty())
         m_currentClippingRegion.Intersect( m_paintClippingRegion );
 #endif