// Initialise the card bitmap to the background colour
wxMemoryDC memoryDC;
- memoryDC.SelectObject(m_bmapCard);
+ memoryDC.SelectObject(*m_bmapCard);
memoryDC.SetBrush(FortyApp::BackgroundBrush());
memoryDC.DrawRectangle(0, 0, CardWidth, CardHeight);
- memoryDC.SelectObject(m_bmap);
+ memoryDC.SelectObject(*m_bmap);
memoryDC.DrawRectangle(0, 0, CardWidth, CardHeight);
+ memoryDC.SelectObject(wxNullBitmap);
}
}
wxString strDir;
wxGetHomeDir(&strDir);
-
- if (strDir.Last() != '/' && strDir.Last() != '\\')
- strDir += "/";
+
+#ifdef __UNIX__
+ if (strDir.Last() != '/') strDir << '/';
+#else
+ if (strDir.Last() != '\\') strDir << '\\';
+#endif
return strDir;
}
if ( strchr(szFile, '.') == NULL )
str << ".ini";
#endif
-
+
return str;
}
wxDC *source, long xsrc, long ysrc, int WXUNUSED(logical_func), bool useMask )
{
if (!Ok()) return FALSE;
-
+
CalcBoundingBox( xdest, ydest );
CalcBoundingBox( xdest + width, ydest + height );
if (csrc->m_isMemDC)
{
wxMemoryDC* srcDC = (wxMemoryDC*)source;
- GdkPixmap* bmap = srcDC->m_selected.GetPixmap();
+ GdkPixmap* pmap = srcDC->m_selected.GetPixmap();
+ if (pmap)
+ {
+ long xx = XLOG2DEV(xdest);
+ long yy = YLOG2DEV(ydest);
+
+ GdkBitmap *mask = (GdkBitmap *) NULL;
+ if (srcDC->m_selected.GetMask()) mask = srcDC->m_selected.GetMask()->GetBitmap();
+
+ if (useMask && mask)
+ {
+ gdk_gc_set_clip_mask( m_penGC, mask );
+ gdk_gc_set_clip_origin( m_penGC, xx, yy );
+ }
+
+ gdk_draw_pixmap( m_window, m_penGC, pmap,
+ source->DeviceToLogicalX(xsrc),
+ source->DeviceToLogicalY(ysrc),
+ xx,
+ yy,
+ source->DeviceToLogicalXRel(width),
+ source->DeviceToLogicalYRel(height) );
+
+ if (useMask && mask)
+ {
+ gdk_gc_set_clip_mask( m_penGC, (GdkBitmap *) NULL );
+ gdk_gc_set_clip_origin( m_penGC, 0, 0 );
+ }
+
+ return TRUE;
+ }
+
+ GdkBitmap* bmap = srcDC->m_selected.GetBitmap();
if (bmap)
{
long xx = XLOG2DEV(xdest);
gdk_gc_set_clip_origin( m_penGC, xx, yy );
}
- gdk_draw_pixmap( m_window, m_penGC, bmap,
+ gdk_draw_bitmap( m_window, m_penGC, bmap,
source->DeviceToLogicalX(xsrc),
source->DeviceToLogicalY(ysrc),
xx,
wxDC *source, long xsrc, long ysrc, int WXUNUSED(logical_func), bool useMask )
{
if (!Ok()) return FALSE;
-
+
CalcBoundingBox( xdest, ydest );
CalcBoundingBox( xdest + width, ydest + height );
if (csrc->m_isMemDC)
{
wxMemoryDC* srcDC = (wxMemoryDC*)source;
- GdkPixmap* bmap = srcDC->m_selected.GetPixmap();
+ GdkPixmap* pmap = srcDC->m_selected.GetPixmap();
+ if (pmap)
+ {
+ long xx = XLOG2DEV(xdest);
+ long yy = YLOG2DEV(ydest);
+
+ GdkBitmap *mask = (GdkBitmap *) NULL;
+ if (srcDC->m_selected.GetMask()) mask = srcDC->m_selected.GetMask()->GetBitmap();
+
+ if (useMask && mask)
+ {
+ gdk_gc_set_clip_mask( m_penGC, mask );
+ gdk_gc_set_clip_origin( m_penGC, xx, yy );
+ }
+
+ gdk_draw_pixmap( m_window, m_penGC, pmap,
+ source->DeviceToLogicalX(xsrc),
+ source->DeviceToLogicalY(ysrc),
+ xx,
+ yy,
+ source->DeviceToLogicalXRel(width),
+ source->DeviceToLogicalYRel(height) );
+
+ if (useMask && mask)
+ {
+ gdk_gc_set_clip_mask( m_penGC, (GdkBitmap *) NULL );
+ gdk_gc_set_clip_origin( m_penGC, 0, 0 );
+ }
+
+ return TRUE;
+ }
+
+ GdkBitmap* bmap = srcDC->m_selected.GetBitmap();
if (bmap)
{
long xx = XLOG2DEV(xdest);
gdk_gc_set_clip_origin( m_penGC, xx, yy );
}
- gdk_draw_pixmap( m_window, m_penGC, bmap,
+ gdk_draw_bitmap( m_window, m_penGC, bmap,
source->DeviceToLogicalX(xsrc),
source->DeviceToLogicalY(ysrc),
xx,