m_owner = (wxWindow *)NULL;
if (!window) return;
+
GtkWidget *widget = window->m_wxwindow;
if (!widget) return;
+
m_window = widget->window;
+
+ /* not realized ? */
+ if (!m_window)
+ {
+ /* force realization */
+ gtk_widget_realize( widget );
+ m_window = widget->window;
+ }
+
+ /* still not realized ? */
if (!m_window) return;
+
if (window->m_wxwindow)
m_cmap = gtk_widget_get_colormap( window->m_wxwindow );
else
{
/* we HAVE TO use the direct way for memory dcs
that have mask since the XCopyArea doesn't know
- about masks and */
+ about masks */
use_bitmap_method = TRUE;
}
else if (memDC->m_selected.GetDepth() == 1)
{
/* we HAVE TO use the direct way for memory dcs
- that are bitmaps because XCopyArea doesn't copy
+ that are bitmaps because XCopyArea doesn't cope
with different bit depths */
use_bitmap_method = TRUE;
}
if ((bm_width != bm_ww) || (bm_height != bm_hh))
{
- printf( "scaling.\n" );
-
wxImage image( memDC->m_selected );
image = image.Scale( bm_ww, bm_hh );
long *descent, long *externalLeading,
wxFont *theFont, bool WXUNUSED(use16) )
{
- wxCHECK_RET( Ok(), _T("invalid window dc") );
-
wxFont fontToUse = m_font;
if (theFont) fontToUse = *theFont;
long wxWindowDC::GetCharWidth()
{
- wxCHECK_MSG( Ok(), 0, _T("invalid window dc") );
-
GdkFont *font = m_font.GetInternalFont( m_scaleY );
return long(gdk_string_width( font, "H" ) / m_scaleX);
}
long wxWindowDC::GetCharHeight()
{
- wxCHECK_MSG( Ok(), 0, _T("invalid window dc") );
-
GdkFont *font = m_font.GetInternalFont( m_scaleY );
return long((font->ascent + font->descent) / m_scaleY);
}
void wxWindowDC::SetFont( const wxFont &font )
{
- wxCHECK_RET( Ok(), _T("invalid window dc") );
-
m_font = font;
}
GdkFunction mode = GDK_COPY;
switch (function)
{
- case wxXOR: mode = GDK_INVERT; break;
- case wxINVERT: mode = GDK_INVERT; break;
+ case wxXOR: mode = GDK_INVERT; break;
+ case wxINVERT: mode = GDK_INVERT; break;
+#if (GDK_MINOR_VERSION > 0)
+ case wxOR_REVERSE: mode = GDK_OR_REVERSE; break;
+ case wxAND_REVERSE: mode = GDK_AND_REVERSE; break;
+ case wxCLEAR: mode = GDK_CLEAR; break;
+ case wxSET: mode = GDK_SET; break;
+ case wxOR_INVERT: mode = GDK_OR_INVERT; break;
+ case wxAND: mode = GDK_AND; break;
+ case wxOR: mode = GDK_OR; break;
+ case wxEQUIV: mode = GDK_EQUIV; break;
+ case wxNAND: mode = GDK_NAND; break;
+ case wxAND_INVERT: mode = GDK_AND_INVERT; break;
+/* ? wxSRC_INVERT GDK_AND_REVERSE, GDK_OR_REVERSE, GDK_OR_INVERT */
+#endif
default: break;
}