- // CMB: draw nothing if transformed w or h is 0
- if (ww == 0 || hh == 0) return;
-
- // CMB: handle -ve width and/or height
- if (ww < 0) { ww = -ww; xx = xx - ww; }
- if (hh < 0) { hh = -hh; yy = yy - hh; }
-
- if (m_brush.GetStyle() != wxTRANSPARENT) {};
-
- if (m_pen.GetStyle() != wxTRANSPARENT) {};
-};
-
-void wxWindowDC::DrawRoundedRectangle( long x, long y, long width, long height, double radius )
-{
- if (!Ok()) return;
-
- if (radius < 0.0) radius = - radius * ((width < height) ? width : height);
-
- long xx = XLOG2DEV(x);
- long yy = YLOG2DEV(y);
- long ww = m_signX * XLOG2DEVREL(width);
- long hh = m_signY * YLOG2DEVREL(height);
- long rr = XLOG2DEVREL((long)radius);
-
- // CMB: handle -ve width and/or height
- if (ww < 0) { ww = -ww; xx = xx - ww; }
- if (hh < 0) { hh = -hh; yy = yy - hh; }
-
- // CMB: if radius is zero use DrawRectangle() instead to avoid
- // X drawing errors with small radii
- if (rr == 0)
- {
- DrawRectangle( x, y, width, height );
- return;
- }
-
- // CMB: draw nothing if transformed w or h is 0
- if (ww == 0 || hh == 0) return;
-
- // CMB: adjust size if outline is drawn otherwise the result is
- // 1 pixel too wide and high
- if (m_pen.GetStyle() != wxTRANSPARENT)
- {
- ww--;
- hh--;
- }
-
- // CMB: ensure dd is not larger than rectangle otherwise we
- // get an hour glass shape
- long dd = 2 * rr;
- if (dd > ww) dd = ww;
- if (dd > hh) dd = hh;
- rr = dd / 2;
-
- if (m_brush.GetStyle() != wxTRANSPARENT)
- {
- };
-
- if (m_pen.GetStyle() != wxTRANSPARENT)
- {
- };
-};
-
-void wxWindowDC::DrawEllipse( long x, long y, long width, long height )
-{
- if (!Ok()) return;
-
- long xx = XLOG2DEV(x);
- long yy = YLOG2DEV(y);
- long ww = m_signX * XLOG2DEVREL(width);
- long hh = m_signY * YLOG2DEVREL(height);
-
- // CMB: handle -ve width and/or height
- if (ww < 0) { ww = -ww; xx = xx - ww; }
- if (hh < 0) { hh = -hh; yy = yy - hh; }
-
- if (m_brush.GetStyle() != wxTRANSPARENT) {};
-
- if (m_pen.GetStyle() != wxTRANSPARENT) {};
-};
-
-bool wxWindowDC::CanDrawBitmap(void) const
-{
- return TRUE;
-};
-
-void wxWindowDC::DrawIcon( const wxIcon &icon, long x, long y, bool useMask )
-{
- if (!Ok()) return;
-
- if (!icon.Ok()) return;
-
- int xx = XLOG2DEV(x);
- int yy = YLOG2DEV(y);
-
-};
-
-bool wxWindowDC::Blit( long xdest, long ydest, long width, long height,
- wxDC *source, long xsrc, long ysrc, int WXUNUSED(logical_func), bool WXUNUSED(useMask) )
-{
- if (!Ok()) return FALSE;
-
- // CMB 20/5/98: add blitting of bitmaps
- if (source->IsKindOf(CLASSINFO(wxMemoryDC)))
- {
- wxMemoryDC* srcDC = (wxMemoryDC*)source;
- /*
- GdkBitmap* bmap = srcDC->m_selected.GetBitmap();
- if (bmap)
- {
- gdk_draw_bitmap (
- m_window,
- m_textGC,
- bmap,
- source->DeviceToLogicalX(xsrc), source->DeviceToLogicalY(ysrc),
- XLOG2DEV(xdest), YLOG2DEV(ydest),
- source->DeviceToLogicalXRel(width), source->DeviceToLogicalYRel(height)
- );
- return TRUE;
- }
- */
- }
-
- return TRUE;
-};
-
-void wxWindowDC::DrawText( const wxString &text, long x, long y, bool
-WXUNUSED(use16) )
-{
- if (!Ok()) return;
-
-};
-
-
-
-bool wxWindowDC::CanGetTextExtent(void) const
-{
- return TRUE;
-};
-
-void wxWindowDC::GetTextExtent( const wxString &string, long *width, long *height,
- long *WXUNUSED(descent), long *WXUNUSED(externalLeading),
- wxFont *WXUNUSED(theFont), bool WXUNUSED(use16) )
-{
- if (!Ok()) return;
-
-};
-
-long wxWindowDC::GetCharWidth(void)
-{
- if (!Ok()) return 0;
- return 0;
-};
-
-long wxWindowDC::GetCharHeight(void)
-{
- if (!Ok()) return 0;
- return 0;
-};
-
-void wxWindowDC::Clear(void)
-{
- if (!Ok()) return;
-
-};
-
-void wxWindowDC::SetFont( const wxFont &font )
-{
- if (!Ok()) return;
-
- m_font = font;
-};
-
-void wxWindowDC::SetPen( const wxPen &pen )
-{
- if (!Ok()) return;
-
- if (m_pen == pen) return;
-
- m_pen = pen;
-
- if (!m_pen.Ok()) return;
-};
-
-void wxWindowDC::SetBrush( const wxBrush &brush )
-{
- if (!Ok()) return;
-
- if (m_brush == brush) return;
-
- m_brush = brush;
-
- if (!m_brush.Ok()) return;
-
-};
-
-void wxWindowDC::SetBackground( const wxBrush &brush )
-{
- if (!Ok()) return;
-
- if (m_backgroundBrush == brush) return;
-
- m_backgroundBrush = brush;
-
- if (!m_backgroundBrush.Ok()) return;
-
-};
-
-void wxWindowDC::SetLogicalFunction( int function )
-{
- if (m_logicalFunction == function) return;
-};
-
-void wxWindowDC::SetTextForeground( const wxColour &col )
-{
- if (!Ok()) return;
-
- if (m_textForegroundColour == col) return;
-
- m_textForegroundColour = col;
- if (!m_textForegroundColour.Ok()) return;
-};
-
-void wxWindowDC::SetTextBackground( const wxColour &col )
-{
- if (!Ok()) return;
-
- if (m_textBackgroundColour == col) return;
-
- m_textBackgroundColour = col;
- if (!m_textBackgroundColour.Ok()) return;
-};
-
-void wxWindowDC::SetBackgroundMode( int mode )
-{
- m_backgroundMode = mode;
-
- if (m_brush.GetStyle() != wxSOLID && m_brush.GetStyle() != wxTRANSPARENT)
- {
- }
-};
-
-void wxWindowDC::SetPalette( const wxPalette& WXUNUSED(palette) )
-{
-};
-
-void wxWindowDC::SetClippingRegion( long x, long y, long width, long height )
-{
- wxDC::SetClippingRegion( x, y, width, height );
-
- // TODO
-
-};
-
-void wxWindowDC::SetClippingRegion( const wxRegion& region )
-{
- wxRect box = region.GetBox();
-
- wxDC::SetClippingRegion( box.x, box.y, box.width, box.height );
-
- // TODO