#ifdef __GNUG__
#pragma interface "dcbase.h"
- #pragma implementation "dcbase.h"
#endif
// ----------------------------------------------------------------------------
m_windowTwo->Layout();
}
}
-#ifdef __WXGTK__
- Refresh();
-#else
wxClientDC dc(this);
DrawBorders(dc);
DrawSash(dc);
-#endif
}
// Set pane for unsplit window
common/cmndata.cpp \
common/config.cpp \
common/date.cpp \
+ common/dcbase.cpp \
common/docmdi.cpp \
common/docview.cpp \
common/dynarray.cpp \
m_bgGC = (GdkGC *) NULL;
m_cmap = (GdkColormap *) NULL;
m_owner = (wxWindow *)NULL;
+ m_isMemDC = FALSE;
- if (!window)
- return;
+ wxASSERT_MSG( window, "DC needs a window" );
GtkWidget *widget = window->m_wxwindow;
- if (!widget)
- return;
+
+ wxASSERT_MSG( widget, "DC needs a widget" );
m_window = widget->window;
/* not realized ? */
if (!m_window)
{
- /* force realization */
- gtk_widget_realize( widget );
- m_window = widget->window;
+ /* don't report problems */
+ m_ok = TRUE;
+
+ return;
}
- /* still not realized ? */
- if (!m_window)
- return;
-
if (window->m_wxwindow)
m_cmap = gtk_widget_get_colormap( window->m_wxwindow );
else
m_cmap = gtk_widget_get_colormap( window->m_widget );
-
- m_isMemDC = FALSE;
SetUpDC();
if (m_pen.GetStyle() != wxTRANSPARENT)
{
- gdk_draw_line( m_window, m_penGC,
- XLOG2DEV(x1), YLOG2DEV(y1), XLOG2DEV(x2), YLOG2DEV(y2) );
+ if (m_window)
+ gdk_draw_line( m_window, m_penGC, XLOG2DEV(x1), YLOG2DEV(y1), XLOG2DEV(x2), YLOG2DEV(y2) );
CalcBoundingBox(x1, y1);
CalcBoundingBox(x2, y2);
GetSize( &w, &h );
long xx = XLOG2DEV(x);
long yy = YLOG2DEV(y);
- gdk_draw_line( m_window, m_penGC, 0, yy, XLOG2DEVREL(w), yy );
- gdk_draw_line( m_window, m_penGC, xx, 0, xx, YLOG2DEVREL(h) );
+ if (m_window)
+ {
+ gdk_draw_line( m_window, m_penGC, 0, yy, XLOG2DEVREL(w), yy );
+ gdk_draw_line( m_window, m_penGC, xx, 0, xx, YLOG2DEVREL(h) );
+ }
}
}
while (alpha2 <= 0) alpha2 += 360*64;
while (alpha1 > 360*64) alpha1 -= 360*64;
- if (m_brush.GetStyle() != wxTRANSPARENT)
- gdk_draw_arc( m_window, m_brushGC, TRUE, xxc-r, yyc-r, 2*r,2*r, alpha1, alpha2 );
+ if (m_window)
+ {
+ if (m_brush.GetStyle() != wxTRANSPARENT)
+ gdk_draw_arc( m_window, m_brushGC, TRUE, xxc-r, yyc-r, 2*r,2*r, alpha1, alpha2 );
- if (m_pen.GetStyle() != wxTRANSPARENT)
- gdk_draw_arc( m_window, m_penGC, FALSE, xxc-r, yyc-r, 2*r,2*r, alpha1, alpha2 );
+ if (m_pen.GetStyle() != wxTRANSPARENT)
+ gdk_draw_arc( m_window, m_penGC, FALSE, xxc-r, yyc-r, 2*r,2*r, alpha1, alpha2 );
+ }
CalcBoundingBox (x1, y1);
CalcBoundingBox (x2, y2);
if (ww < 0) { ww = -ww; xx = xx - ww; }
if (hh < 0) { hh = -hh; yy = yy - hh; }
- long start = long(sa * 64.0);
- long end = long(ea * 64.0);
- if (m_brush.GetStyle() != wxTRANSPARENT)
- gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy, ww, hh, start, end );
+ if (m_window)
+ {
+ long start = long(sa * 64.0);
+ long end = long(ea * 64.0);
+
+ if (m_brush.GetStyle() != wxTRANSPARENT)
+ gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy, ww, hh, start, end );
- if (m_pen.GetStyle() != wxTRANSPARENT)
- gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy, ww, hh, start, end );
+ if (m_pen.GetStyle() != wxTRANSPARENT)
+ gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy, ww, hh, start, end );
+ }
CalcBoundingBox (x, y);
CalcBoundingBox (x + width, y + height);
{
wxCHECK_RET( Ok(), _T("invalid window dc") );
- if (m_pen.GetStyle() != wxTRANSPARENT)
+ if ((m_pen.GetStyle() != wxTRANSPARENT) && m_window)
gdk_draw_point( m_window, m_penGC, XLOG2DEV(x), YLOG2DEV(y) );
CalcBoundingBox (x, y);
long x2 = XLOG2DEV(points[i+1].x + xoffset);
long y1 = YLOG2DEV(points[i].y + yoffset); // oh, what a waste
long y2 = YLOG2DEV(points[i+1].y + yoffset);
- gdk_draw_line( m_window, m_penGC, x1, y1, x2, y2 );
+ if (m_window)
+ gdk_draw_line( m_window, m_penGC, x1, y1, x2, y2 );
CalcBoundingBox( points[i+1].x + xoffset, points[i+1].y + yoffset );
}
// To do: Fillstyle
- if (m_pen.GetStyle() != wxTRANSPARENT)
+ if ((m_pen.GetStyle() != wxTRANSPARENT) && m_window)
+ {
for (i = 0 ; i < n ; i++)
{
gdk_draw_line( m_window, m_penGC,
gdkpoints[(i+1)%n].x,
gdkpoints[(i+1)%n].y);
}
+ }
delete[] gdkpoints;
}
if (ww < 0) { ww = -ww; xx = xx - ww; }
if (hh < 0) { hh = -hh; yy = yy - hh; }
- if (m_brush.GetStyle() != wxTRANSPARENT)
- gdk_draw_rectangle( m_window, m_brushGC, TRUE, xx, yy, ww, hh );
+ if (m_window)
+ {
+ if (m_brush.GetStyle() != wxTRANSPARENT)
+ gdk_draw_rectangle( m_window, m_brushGC, TRUE, xx, yy, ww, hh );
- if (m_pen.GetStyle() != wxTRANSPARENT)
- gdk_draw_rectangle( m_window, m_penGC, FALSE, xx, yy, ww-1, hh-1 );
+ if (m_pen.GetStyle() != wxTRANSPARENT)
+ gdk_draw_rectangle( m_window, m_penGC, FALSE, xx, yy, ww-1, hh-1 );
+ }
CalcBoundingBox( x, y );
CalcBoundingBox( x + width, y + height );
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_window)
{
- gdk_draw_rectangle( m_window, m_brushGC, TRUE, xx+rr, yy, ww-dd+1, hh );
- gdk_draw_rectangle( m_window, m_brushGC, TRUE, xx, yy+rr, ww, hh-dd+1 );
- gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy, dd, dd, 90*64, 90*64 );
- gdk_draw_arc( m_window, m_brushGC, TRUE, xx+ww-dd, yy, dd, dd, 0, 90*64 );
- gdk_draw_arc( m_window, m_brushGC, TRUE, xx+ww-dd, yy+hh-dd, dd, dd, 270*64, 90*64 );
- gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy+hh-dd, dd, dd, 180*64, 90*64 );
- }
+ // 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)
+ {
+ gdk_draw_rectangle( m_window, m_brushGC, TRUE, xx+rr, yy, ww-dd+1, hh );
+ gdk_draw_rectangle( m_window, m_brushGC, TRUE, xx, yy+rr, ww, hh-dd+1 );
+ gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy, dd, dd, 90*64, 90*64 );
+ gdk_draw_arc( m_window, m_brushGC, TRUE, xx+ww-dd, yy, dd, dd, 0, 90*64 );
+ gdk_draw_arc( m_window, m_brushGC, TRUE, xx+ww-dd, yy+hh-dd, dd, dd, 270*64, 90*64 );
+ gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy+hh-dd, dd, dd, 180*64, 90*64 );
+ }
- if (m_pen.GetStyle() != wxTRANSPARENT)
- {
- gdk_draw_line( m_window, m_penGC, xx+rr, yy, xx+ww-rr, yy );
- gdk_draw_line( m_window, m_penGC, xx+rr, yy+hh, xx+ww-rr, yy+hh );
- gdk_draw_line( m_window, m_penGC, xx, yy+rr, xx, yy+hh-rr );
- gdk_draw_line( m_window, m_penGC, xx+ww, yy+rr, xx+ww, yy+hh-rr );
- gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy, dd, dd, 90*64, 90*64 );
- gdk_draw_arc( m_window, m_penGC, FALSE, xx+ww-dd, yy, dd, dd, 0, 90*64 );
- gdk_draw_arc( m_window, m_penGC, FALSE, xx+ww-dd, yy+hh-dd, dd, dd, 270*64, 90*64 );
- gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy+hh-dd, dd, dd, 180*64, 90*64 );
+ if (m_pen.GetStyle() != wxTRANSPARENT)
+ {
+ gdk_draw_line( m_window, m_penGC, xx+rr, yy, xx+ww-rr, yy );
+ gdk_draw_line( m_window, m_penGC, xx+rr, yy+hh, xx+ww-rr, yy+hh );
+ gdk_draw_line( m_window, m_penGC, xx, yy+rr, xx, yy+hh-rr );
+ gdk_draw_line( m_window, m_penGC, xx+ww, yy+rr, xx+ww, yy+hh-rr );
+ gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy, dd, dd, 90*64, 90*64 );
+ gdk_draw_arc( m_window, m_penGC, FALSE, xx+ww-dd, yy, dd, dd, 0, 90*64 );
+ gdk_draw_arc( m_window, m_penGC, FALSE, xx+ww-dd, yy+hh-dd, dd, dd, 270*64, 90*64 );
+ gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy+hh-dd, dd, dd, 180*64, 90*64 );
+ }
}
// this ignores the radius
if (ww < 0) { ww = -ww; xx = xx - ww; }
if (hh < 0) { hh = -hh; yy = yy - hh; }
- if (m_brush.GetStyle() != wxTRANSPARENT)
- gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy, ww, hh, 0, 360*64 );
+ if (m_window)
+ {
+ if (m_brush.GetStyle() != wxTRANSPARENT)
+ gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy, ww, hh, 0, 360*64 );
- if (m_pen.GetStyle() != wxTRANSPARENT)
- gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy, ww, hh, 0, 360*64 );
+ if (m_pen.GetStyle() != wxTRANSPARENT)
+ gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy, ww, hh, 0, 360*64 );
+ }
CalcBoundingBox( x - width, y - height );
CalcBoundingBox( x + width, y + height );
wxCHECK_RET( bitmap.Ok(), _T("invalid bitmap") );
+ if (!m_window) return;
+
/* scale/translate size and position */
int xx = XLOG2DEV(x);
wxCHECK_MSG( source, FALSE, _T("invalid source dc") );
+ if (!m_window) return FALSE;
+
wxClientDC *srcDC = (wxClientDC*)source;
wxMemoryDC *memDC = (wxMemoryDC*)source;
{
wxCHECK_RET( Ok(), _T("invalid window dc") );
+ if (!m_window) return;
+
GdkFont *font = m_font.GetInternalFont( m_scaleY );
x = XLOG2DEV(x);
{
wxCHECK_RET( Ok(), _T("invalid window dc") );
+ if (!m_window) return;
+
/* - we either are a memory dc or have a window as the
owner. anything else shouldn't happen.
- we don't use gdk_window_clear() as we don't set
if (!m_pen.Ok()) return;
+ if (!m_window) return;
+
gint width = m_pen.GetWidth();
// CMB: if width is non-zero scale it with the dc
if (width <= 0)
if (!m_brush.Ok()) return;
+ if (!m_window) return;
+
m_brush.GetColour().CalcPixel( m_cmap );
gdk_gc_set_foreground( m_brushGC, m_brush.GetColour().GetColor() );
if (!m_backgroundBrush.Ok()) return;
+ if (!m_window) return;
+
m_backgroundBrush.GetColour().CalcPixel( m_cmap );
gdk_gc_set_background( m_brushGC, m_backgroundBrush.GetColour().GetColor() );
gdk_gc_set_background( m_penGC, m_backgroundBrush.GetColour().GetColor() );
}
m_logicalFunction = function;
+
+ if (!m_window) return;
+
gdk_gc_set_function( m_penGC, mode );
gdk_gc_set_function( m_brushGC, mode );
gdk_gc_set_function( m_textGC, mode );
m_textForegroundColour = col;
if (!m_textForegroundColour.Ok()) return;
+ if (!m_window) return;
+
m_textForegroundColour.CalcPixel( m_cmap );
gdk_gc_set_foreground( m_textGC, m_textForegroundColour.GetColor() );
}
m_textBackgroundColour = col;
if (!m_textBackgroundColour.Ok()) return;
+ if (!m_window) return;
+
m_textBackgroundColour.CalcPixel( m_cmap );
gdk_gc_set_background( m_textGC, m_textBackgroundColour.GetColor() );
}
m_backgroundMode = mode;
+ if (!m_window) return;
+
// CMB 21/7/98: fill style of cross-hatch brushes is affected by
// transparent/solid background mode
wxDC::DoSetClippingRegion( x, y, width, height );
+ if (!m_window) return;
+
GdkRectangle rect;
rect.x = XLOG2DEV(x);
rect.y = YLOG2DEV(y);
return;
}
+ if (!m_window) return;
+
gdk_gc_set_clip_region( m_penGC, region.GetRegion() );
gdk_gc_set_clip_region( m_brushGC, region.GetRegion() );
gdk_gc_set_clip_region( m_textGC, region.GetRegion() );
wxDC::DestroyClippingRegion();
+ if (!m_window) return;
+
gdk_gc_set_clip_rectangle( m_penGC, (GdkRectangle *) NULL );
gdk_gc_set_clip_rectangle( m_brushGC, (GdkRectangle *) NULL );
gdk_gc_set_clip_rectangle( m_textGC, (GdkRectangle *) NULL );
m_bgGC = (GdkGC *) NULL;
m_cmap = (GdkColormap *) NULL;
m_owner = (wxWindow *)NULL;
+ m_isMemDC = FALSE;
- if (!window)
- return;
+ wxASSERT_MSG( window, "DC needs a window" );
GtkWidget *widget = window->m_wxwindow;
- if (!widget)
- return;
+
+ wxASSERT_MSG( widget, "DC needs a widget" );
m_window = widget->window;
/* not realized ? */
if (!m_window)
{
- /* force realization */
- gtk_widget_realize( widget );
- m_window = widget->window;
+ /* don't report problems */
+ m_ok = TRUE;
+
+ return;
}
- /* still not realized ? */
- if (!m_window)
- return;
-
if (window->m_wxwindow)
m_cmap = gtk_widget_get_colormap( window->m_wxwindow );
else
m_cmap = gtk_widget_get_colormap( window->m_widget );
-
- m_isMemDC = FALSE;
SetUpDC();
if (m_pen.GetStyle() != wxTRANSPARENT)
{
- gdk_draw_line( m_window, m_penGC,
- XLOG2DEV(x1), YLOG2DEV(y1), XLOG2DEV(x2), YLOG2DEV(y2) );
+ if (m_window)
+ gdk_draw_line( m_window, m_penGC, XLOG2DEV(x1), YLOG2DEV(y1), XLOG2DEV(x2), YLOG2DEV(y2) );
CalcBoundingBox(x1, y1);
CalcBoundingBox(x2, y2);
GetSize( &w, &h );
long xx = XLOG2DEV(x);
long yy = YLOG2DEV(y);
- gdk_draw_line( m_window, m_penGC, 0, yy, XLOG2DEVREL(w), yy );
- gdk_draw_line( m_window, m_penGC, xx, 0, xx, YLOG2DEVREL(h) );
+ if (m_window)
+ {
+ gdk_draw_line( m_window, m_penGC, 0, yy, XLOG2DEVREL(w), yy );
+ gdk_draw_line( m_window, m_penGC, xx, 0, xx, YLOG2DEVREL(h) );
+ }
}
}
while (alpha2 <= 0) alpha2 += 360*64;
while (alpha1 > 360*64) alpha1 -= 360*64;
- if (m_brush.GetStyle() != wxTRANSPARENT)
- gdk_draw_arc( m_window, m_brushGC, TRUE, xxc-r, yyc-r, 2*r,2*r, alpha1, alpha2 );
+ if (m_window)
+ {
+ if (m_brush.GetStyle() != wxTRANSPARENT)
+ gdk_draw_arc( m_window, m_brushGC, TRUE, xxc-r, yyc-r, 2*r,2*r, alpha1, alpha2 );
- if (m_pen.GetStyle() != wxTRANSPARENT)
- gdk_draw_arc( m_window, m_penGC, FALSE, xxc-r, yyc-r, 2*r,2*r, alpha1, alpha2 );
+ if (m_pen.GetStyle() != wxTRANSPARENT)
+ gdk_draw_arc( m_window, m_penGC, FALSE, xxc-r, yyc-r, 2*r,2*r, alpha1, alpha2 );
+ }
CalcBoundingBox (x1, y1);
CalcBoundingBox (x2, y2);
if (ww < 0) { ww = -ww; xx = xx - ww; }
if (hh < 0) { hh = -hh; yy = yy - hh; }
- long start = long(sa * 64.0);
- long end = long(ea * 64.0);
- if (m_brush.GetStyle() != wxTRANSPARENT)
- gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy, ww, hh, start, end );
+ if (m_window)
+ {
+ long start = long(sa * 64.0);
+ long end = long(ea * 64.0);
+
+ if (m_brush.GetStyle() != wxTRANSPARENT)
+ gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy, ww, hh, start, end );
- if (m_pen.GetStyle() != wxTRANSPARENT)
- gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy, ww, hh, start, end );
+ if (m_pen.GetStyle() != wxTRANSPARENT)
+ gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy, ww, hh, start, end );
+ }
CalcBoundingBox (x, y);
CalcBoundingBox (x + width, y + height);
{
wxCHECK_RET( Ok(), _T("invalid window dc") );
- if (m_pen.GetStyle() != wxTRANSPARENT)
+ if ((m_pen.GetStyle() != wxTRANSPARENT) && m_window)
gdk_draw_point( m_window, m_penGC, XLOG2DEV(x), YLOG2DEV(y) );
CalcBoundingBox (x, y);
long x2 = XLOG2DEV(points[i+1].x + xoffset);
long y1 = YLOG2DEV(points[i].y + yoffset); // oh, what a waste
long y2 = YLOG2DEV(points[i+1].y + yoffset);
- gdk_draw_line( m_window, m_penGC, x1, y1, x2, y2 );
+ if (m_window)
+ gdk_draw_line( m_window, m_penGC, x1, y1, x2, y2 );
CalcBoundingBox( points[i+1].x + xoffset, points[i+1].y + yoffset );
}
// To do: Fillstyle
- if (m_pen.GetStyle() != wxTRANSPARENT)
+ if ((m_pen.GetStyle() != wxTRANSPARENT) && m_window)
+ {
for (i = 0 ; i < n ; i++)
{
gdk_draw_line( m_window, m_penGC,
gdkpoints[(i+1)%n].x,
gdkpoints[(i+1)%n].y);
}
+ }
delete[] gdkpoints;
}
if (ww < 0) { ww = -ww; xx = xx - ww; }
if (hh < 0) { hh = -hh; yy = yy - hh; }
- if (m_brush.GetStyle() != wxTRANSPARENT)
- gdk_draw_rectangle( m_window, m_brushGC, TRUE, xx, yy, ww, hh );
+ if (m_window)
+ {
+ if (m_brush.GetStyle() != wxTRANSPARENT)
+ gdk_draw_rectangle( m_window, m_brushGC, TRUE, xx, yy, ww, hh );
- if (m_pen.GetStyle() != wxTRANSPARENT)
- gdk_draw_rectangle( m_window, m_penGC, FALSE, xx, yy, ww-1, hh-1 );
+ if (m_pen.GetStyle() != wxTRANSPARENT)
+ gdk_draw_rectangle( m_window, m_penGC, FALSE, xx, yy, ww-1, hh-1 );
+ }
CalcBoundingBox( x, y );
CalcBoundingBox( x + width, y + height );
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_window)
{
- gdk_draw_rectangle( m_window, m_brushGC, TRUE, xx+rr, yy, ww-dd+1, hh );
- gdk_draw_rectangle( m_window, m_brushGC, TRUE, xx, yy+rr, ww, hh-dd+1 );
- gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy, dd, dd, 90*64, 90*64 );
- gdk_draw_arc( m_window, m_brushGC, TRUE, xx+ww-dd, yy, dd, dd, 0, 90*64 );
- gdk_draw_arc( m_window, m_brushGC, TRUE, xx+ww-dd, yy+hh-dd, dd, dd, 270*64, 90*64 );
- gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy+hh-dd, dd, dd, 180*64, 90*64 );
- }
+ // 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)
+ {
+ gdk_draw_rectangle( m_window, m_brushGC, TRUE, xx+rr, yy, ww-dd+1, hh );
+ gdk_draw_rectangle( m_window, m_brushGC, TRUE, xx, yy+rr, ww, hh-dd+1 );
+ gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy, dd, dd, 90*64, 90*64 );
+ gdk_draw_arc( m_window, m_brushGC, TRUE, xx+ww-dd, yy, dd, dd, 0, 90*64 );
+ gdk_draw_arc( m_window, m_brushGC, TRUE, xx+ww-dd, yy+hh-dd, dd, dd, 270*64, 90*64 );
+ gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy+hh-dd, dd, dd, 180*64, 90*64 );
+ }
- if (m_pen.GetStyle() != wxTRANSPARENT)
- {
- gdk_draw_line( m_window, m_penGC, xx+rr, yy, xx+ww-rr, yy );
- gdk_draw_line( m_window, m_penGC, xx+rr, yy+hh, xx+ww-rr, yy+hh );
- gdk_draw_line( m_window, m_penGC, xx, yy+rr, xx, yy+hh-rr );
- gdk_draw_line( m_window, m_penGC, xx+ww, yy+rr, xx+ww, yy+hh-rr );
- gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy, dd, dd, 90*64, 90*64 );
- gdk_draw_arc( m_window, m_penGC, FALSE, xx+ww-dd, yy, dd, dd, 0, 90*64 );
- gdk_draw_arc( m_window, m_penGC, FALSE, xx+ww-dd, yy+hh-dd, dd, dd, 270*64, 90*64 );
- gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy+hh-dd, dd, dd, 180*64, 90*64 );
+ if (m_pen.GetStyle() != wxTRANSPARENT)
+ {
+ gdk_draw_line( m_window, m_penGC, xx+rr, yy, xx+ww-rr, yy );
+ gdk_draw_line( m_window, m_penGC, xx+rr, yy+hh, xx+ww-rr, yy+hh );
+ gdk_draw_line( m_window, m_penGC, xx, yy+rr, xx, yy+hh-rr );
+ gdk_draw_line( m_window, m_penGC, xx+ww, yy+rr, xx+ww, yy+hh-rr );
+ gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy, dd, dd, 90*64, 90*64 );
+ gdk_draw_arc( m_window, m_penGC, FALSE, xx+ww-dd, yy, dd, dd, 0, 90*64 );
+ gdk_draw_arc( m_window, m_penGC, FALSE, xx+ww-dd, yy+hh-dd, dd, dd, 270*64, 90*64 );
+ gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy+hh-dd, dd, dd, 180*64, 90*64 );
+ }
}
// this ignores the radius
if (ww < 0) { ww = -ww; xx = xx - ww; }
if (hh < 0) { hh = -hh; yy = yy - hh; }
- if (m_brush.GetStyle() != wxTRANSPARENT)
- gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy, ww, hh, 0, 360*64 );
+ if (m_window)
+ {
+ if (m_brush.GetStyle() != wxTRANSPARENT)
+ gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy, ww, hh, 0, 360*64 );
- if (m_pen.GetStyle() != wxTRANSPARENT)
- gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy, ww, hh, 0, 360*64 );
+ if (m_pen.GetStyle() != wxTRANSPARENT)
+ gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy, ww, hh, 0, 360*64 );
+ }
CalcBoundingBox( x - width, y - height );
CalcBoundingBox( x + width, y + height );
wxCHECK_RET( bitmap.Ok(), _T("invalid bitmap") );
+ if (!m_window) return;
+
/* scale/translate size and position */
int xx = XLOG2DEV(x);
wxCHECK_MSG( source, FALSE, _T("invalid source dc") );
+ if (!m_window) return FALSE;
+
wxClientDC *srcDC = (wxClientDC*)source;
wxMemoryDC *memDC = (wxMemoryDC*)source;
{
wxCHECK_RET( Ok(), _T("invalid window dc") );
+ if (!m_window) return;
+
GdkFont *font = m_font.GetInternalFont( m_scaleY );
x = XLOG2DEV(x);
{
wxCHECK_RET( Ok(), _T("invalid window dc") );
+ if (!m_window) return;
+
/* - we either are a memory dc or have a window as the
owner. anything else shouldn't happen.
- we don't use gdk_window_clear() as we don't set
if (!m_pen.Ok()) return;
+ if (!m_window) return;
+
gint width = m_pen.GetWidth();
// CMB: if width is non-zero scale it with the dc
if (width <= 0)
if (!m_brush.Ok()) return;
+ if (!m_window) return;
+
m_brush.GetColour().CalcPixel( m_cmap );
gdk_gc_set_foreground( m_brushGC, m_brush.GetColour().GetColor() );
if (!m_backgroundBrush.Ok()) return;
+ if (!m_window) return;
+
m_backgroundBrush.GetColour().CalcPixel( m_cmap );
gdk_gc_set_background( m_brushGC, m_backgroundBrush.GetColour().GetColor() );
gdk_gc_set_background( m_penGC, m_backgroundBrush.GetColour().GetColor() );
}
m_logicalFunction = function;
+
+ if (!m_window) return;
+
gdk_gc_set_function( m_penGC, mode );
gdk_gc_set_function( m_brushGC, mode );
gdk_gc_set_function( m_textGC, mode );
m_textForegroundColour = col;
if (!m_textForegroundColour.Ok()) return;
+ if (!m_window) return;
+
m_textForegroundColour.CalcPixel( m_cmap );
gdk_gc_set_foreground( m_textGC, m_textForegroundColour.GetColor() );
}
m_textBackgroundColour = col;
if (!m_textBackgroundColour.Ok()) return;
+ if (!m_window) return;
+
m_textBackgroundColour.CalcPixel( m_cmap );
gdk_gc_set_background( m_textGC, m_textBackgroundColour.GetColor() );
}
m_backgroundMode = mode;
+ if (!m_window) return;
+
// CMB 21/7/98: fill style of cross-hatch brushes is affected by
// transparent/solid background mode
wxDC::DoSetClippingRegion( x, y, width, height );
+ if (!m_window) return;
+
GdkRectangle rect;
rect.x = XLOG2DEV(x);
rect.y = YLOG2DEV(y);
return;
}
+ if (!m_window) return;
+
gdk_gc_set_clip_region( m_penGC, region.GetRegion() );
gdk_gc_set_clip_region( m_brushGC, region.GetRegion() );
gdk_gc_set_clip_region( m_textGC, region.GetRegion() );
wxDC::DestroyClippingRegion();
+ if (!m_window) return;
+
gdk_gc_set_clip_rectangle( m_penGC, (GdkRectangle *) NULL );
gdk_gc_set_clip_rectangle( m_brushGC, (GdkRectangle *) NULL );
gdk_gc_set_clip_rectangle( m_textGC, (GdkRectangle *) NULL );