]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/dcclient.cpp
use wxConvLocal for wxFONTENCODING_SYSTEM/DEFAULT in wxConvertToGTK()
[wxWidgets.git] / src / motif / dcclient.cpp
index df2cdf3fa3238c8e8e92493234ceeeb3d13b0b7e..2c22186df2fe8f5e7fd10c6da7e6ffe3ad3249ab 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        dcclient.cpp
+// Name:        src/motif/dcclient.cpp
 // Purpose:     wxClientDC class
 // Author:      Julian Smart
 // Modified by:
@@ -10,7 +10,7 @@
 /////////////////////////////////////////////////////////////////////////////
 
 /*
-  About pens, brushes, and the autoSetting flag:
+  About pens, brushes, and the m_autoSetting flag:
 
   Under X, pens and brushes control some of the same X drawing
   parameters.  Therefore, it is impossible to independently maintain
@@ -18,9 +18,9 @@
   the current logical function. The m_currentFill, etc. instance
   variables remember state across the brush and pen.
 
-  Since pens are used more than brushes, the autoSetting flag is used to
+  Since pens are used more than brushes, the m_autoSetting flag is used to
   indicate that a brush was recently used, and SetPen must be called to
-  reinstall the current pen's parameters. If autoSetting includes 0x2, then the
+  reinstall the current pen's parameters. If m_autoSetting includes 0x2, then the
   pens color may need to be set based on XOR.
 
   There is, unfortunately, some confusion between setting the current pen/brush
@@ -149,7 +149,6 @@ void wxWindowDC::Init()
     m_display = (WXDisplay*) NULL;
     m_pixmap = (WXPixmap) 0;
     m_autoSetting = 0;
-    m_oldFont = (WXFont) 0;
     m_ok = false;
     m_clipRegion = (WXRegion) 0;
 }
@@ -444,8 +443,8 @@ void wxWindowDC::DoDrawLines( int n, wxPoint points[], wxCoord xoffset, wxCoord
 
         for (i = 0; i < n; i++)
         {
-            xpoints[i].x = XLOG2DEV (points[i].x + xoffset);
-            xpoints[i].y = YLOG2DEV (points[i].y + yoffset);
+            xpoints[i].x = (short)XLOG2DEV (points[i].x + xoffset);
+            xpoints[i].y = (short)YLOG2DEV (points[i].y + yoffset);
         }
         XDrawLines ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xpoints, n, 0);
 
@@ -453,8 +452,8 @@ void wxWindowDC::DoDrawLines( int n, wxPoint points[], wxCoord xoffset, wxCoord
         {
             for (i = 0; i < n; i++)
             {
-                xpoints[i].x = XLOG2DEV_2 (points[i].x + xoffset);
-                xpoints[i].y = YLOG2DEV_2 (points[i].y + yoffset);
+                xpoints[i].x = (short)XLOG2DEV_2 (points[i].x + xoffset);
+                xpoints[i].y = (short)YLOG2DEV_2 (points[i].y + yoffset);
             }
             XDrawLines ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, xpoints, n, 0);
         }
@@ -472,10 +471,10 @@ void wxWindowDC::DoDrawPolygon( int n, wxPoint points[],
     int i;
     for (i = 0; i < n; i++)
     {
-        xpoints1[i].x = XLOG2DEV (points[i].x + xoffset);
-        xpoints1[i].y = YLOG2DEV (points[i].y + yoffset);
-        xpoints2[i].x = XLOG2DEV_2 (points[i].x + xoffset);
-        xpoints2[i].y = YLOG2DEV_2 (points[i].y + yoffset);
+        xpoints1[i].x = (short)XLOG2DEV (points[i].x + xoffset);
+        xpoints1[i].y = (short)YLOG2DEV (points[i].y + yoffset);
+        xpoints2[i].x = (short)XLOG2DEV_2 (points[i].x + xoffset);
+        xpoints2[i].y = (short)YLOG2DEV_2 (points[i].y + yoffset);
         CalcBoundingBox (points[i].x + xoffset, points[i].y + yoffset);
     }
 
@@ -1320,7 +1319,7 @@ wxCoord wxWindowDC::GetCharWidth() const
 {
     wxCHECK_MSG( Ok(), 0, "invalid dc" );
     wxCHECK_MSG( m_font.Ok(), 0, "invalid font" );
-    
+
     int width;
 
     wxGetTextExtent (m_display, m_font, m_userScaleY * m_logicalScaleY,
@@ -1579,7 +1578,7 @@ void wxWindowDC::SetPen( const wxPen &pen )
             {
                 int factor = scaled_width == 0 ? 1 : scaled_width;
                 for (int i = 0; i < req_nb_dash; i++)
-                    real_req_dash[i] = req_dash[i] * factor;
+                    real_req_dash[i] = (wxX11Dash)(req_dash[i] * factor);
                 XSetDashes ((Display*) m_display, (GC) m_gc, 0, real_req_dash, req_nb_dash);
 
                 if (m_window && m_window->GetBackingPixmap())
@@ -2073,10 +2072,10 @@ void wxWindowDC::DoSetClippingRegion( wxCoord x, wxCoord y,
     if (m_window && m_window->GetBackingPixmap())
     {
         XRectangle rects[1];
-        rects[0].x = XLOG2DEV_2(x);
-        rects[0].y = YLOG2DEV_2(y);
-        rects[0].width = XLOG2DEVREL(width);
-        rects[0].height = YLOG2DEVREL(height);
+        rects[0].x = (short)XLOG2DEV_2(x);
+        rects[0].y = (short)YLOG2DEV_2(y);
+        rects[0].width = (unsigned short)XLOG2DEVREL(width);
+        rects[0].height = (unsigned short)YLOG2DEVREL(height);
         XSetClipRectangles((Display*) m_display, (GC) m_gcBacking,
                            0, 0, rects, 1, Unsorted);
     }
@@ -2095,10 +2094,10 @@ void wxWindowDC::DoSetClippingRegionAsRegion( const wxRegion& region )
     if (m_window && m_window->GetBackingPixmap())
     {
         XRectangle rects[1];
-        rects[0].x = XLOG2DEV_2(box.x);
-        rects[0].y = YLOG2DEV_2(box.y);
-        rects[0].width = XLOG2DEVREL(box.width);
-        rects[0].height = YLOG2DEVREL(box.height);
+        rects[0].x = (short)XLOG2DEV_2(box.x);
+        rects[0].y = (short)YLOG2DEV_2(box.y);
+        rects[0].width = (unsigned short)XLOG2DEVREL(box.width);
+        rects[0].height = (unsigned short)YLOG2DEVREL(box.height);
         XSetClipRectangles((Display*) m_display, (GC) m_gcBacking,
                            0, 0, rects, 1, Unsorted);
     }