]> git.saurik.com Git - wxWidgets.git/commitdiff
#ifdeffed new paint clipping :-(
authorRobert Roebling <robert@roebling.de>
Wed, 23 Feb 2000 17:47:43 +0000 (17:47 +0000)
committerRobert Roebling <robert@roebling.de>
Wed, 23 Feb 2000 17:47:43 +0000 (17:47 +0000)
  Moved replacement code to printing preview canvas where
    its effect was particularly useful.
  Completed GC pooling.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6240 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/prntbase.cpp
src/generic/listctrl.cpp
src/gtk/dcclient.cpp
src/gtk/dcmemory.cpp
src/gtk/window.cpp
src/gtk1/dcclient.cpp
src/gtk1/dcmemory.cpp
src/gtk1/window.cpp

index 8ca74fb4d8881fc7c1008268b612ee82e3a6e0e3..6709e3721709b819f6fd60d842f167371e98446c 100644 (file)
@@ -195,6 +195,11 @@ void wxPreviewCanvas::OnPaint(wxPaintEvent& WXUNUSED(event))
     wxPaintDC dc(this);
     PrepareDC( dc );
 
     wxPaintDC dc(this);
     PrepareDC( dc );
 
+#ifdef __WXGTK__
+    if (!GetUpdateRegion().IsEmpty())
+        dc.SetClippingRegion( GetUpdateRegion() );
+#endif
+
     if (m_printPreview)
     {
         m_printPreview->PaintPage(this, dc);
     if (m_printPreview)
     {
         m_printPreview->PaintPage(this, dc);
index 2e67abdff17d9442017c4dc176a4958a7045c406..c5a1e76d0407b7238e810fa6954e7e31d342611e 100644 (file)
@@ -187,7 +187,7 @@ public:
     ~wxListHeaderWindow();
     wxListHeaderWindow( wxWindow *win, wxWindowID id, wxListMainWindow *owner,
       const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
     ~wxListHeaderWindow();
     wxListHeaderWindow( wxWindow *win, wxWindowID id, wxListMainWindow *owner,
       const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
-      long style = 0, const wxString &name = "columntitles" );
+      long style = 0, const wxString &name = "wxlistctrlcolumntitles" );
     void DoDrawRect( wxDC *dc, int x, int y, int w, int h );
     void OnPaint( wxPaintEvent &event );
     void DrawCurrent();
     void DoDrawRect( wxDC *dc, int x, int y, int w, int h );
     void OnPaint( wxPaintEvent &event );
     void DrawCurrent();
@@ -233,7 +233,7 @@ public:
                     const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
                     int style = 0,
                     const wxValidator& validator = wxDefaultValidator,
                     const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
                     int style = 0,
                     const wxValidator& validator = wxDefaultValidator,
-                    const wxString &name = "wxListTextCtrlText" );
+                    const wxString &name = "listctrltextctrl" );
     void OnChar( wxKeyEvent &event );
     void OnKillFocus( wxFocusEvent &event );
 
     void OnChar( wxKeyEvent &event );
     void OnKillFocus( wxFocusEvent &event );
 
@@ -281,7 +281,7 @@ public:
     wxListMainWindow();
     wxListMainWindow( wxWindow *parent, wxWindowID id,
       const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
     wxListMainWindow();
     wxListMainWindow( wxWindow *parent, wxWindowID id,
       const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
-      long style = 0, const wxString &name = "listctrl" );
+      long style = 0, const wxString &name = "listctrlmainwindow" );
     ~wxListMainWindow();
     void RefreshLine( wxListLineData *line );
     void OnPaint( wxPaintEvent &event );
     ~wxListMainWindow();
     void RefreshLine( wxListLineData *line );
     void OnPaint( wxPaintEvent &event );
index 45ce6c6dc5c7c08bebaaa3f8eaf4705ff36bbf42..8c72dd103b4888350a1f63d924e772f5795aee70 100644 (file)
 #include <gdk/gdk.h>
 #include <gtk/gtk.h>
 
 #include <gdk/gdk.h>
 #include <gtk/gtk.h>
 
+//-----------------------------------------------------------------------------
+// local defines
+//-----------------------------------------------------------------------------
+
+#define USE_PAINT_REGION 0
+
 //-----------------------------------------------------------------------------
 // local data
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 // local data
 //-----------------------------------------------------------------------------
@@ -250,6 +256,86 @@ wxWindowDC::~wxWindowDC()
     Destroy();
 }
 
     Destroy();
 }
 
+void wxWindowDC::SetUpDC()
+{
+    m_ok = TRUE;
+    
+    wxASSERT_MSG( !m_penGC, wxT("GCs already created") );
+    
+    if (m_isMemDC && (((wxMemoryDC*)this)->m_selected.GetDepth() == 1))
+    {
+        m_penGC = wxGetPoolGC( m_window, wxPEN_MONO );
+        m_brushGC = wxGetPoolGC( m_window, wxBRUSH_MONO );
+        m_textGC = wxGetPoolGC( m_window, wxTEXT_MONO );
+        m_bgGC = wxGetPoolGC( m_window, wxBG_MONO );
+    }
+    else
+    {
+        m_penGC = wxGetPoolGC( m_window, wxPEN_COLOUR );
+        m_brushGC = wxGetPoolGC( m_window, wxBRUSH_COLOUR );
+        m_textGC = wxGetPoolGC( m_window, wxTEXT_COLOUR );
+        m_bgGC = wxGetPoolGC( m_window, wxBG_COLOUR );
+    }
+
+    /* background colour */
+    m_backgroundBrush = *wxWHITE_BRUSH;
+    m_backgroundBrush.GetColour().CalcPixel( m_cmap );
+    GdkColor *bg_col = m_backgroundBrush.GetColour().GetColor();
+
+    /* m_textGC */
+    m_textForegroundColour.CalcPixel( m_cmap );
+    gdk_gc_set_foreground( m_textGC, m_textForegroundColour.GetColor() );
+
+    m_textBackgroundColour.CalcPixel( m_cmap );
+    gdk_gc_set_background( m_textGC, m_textBackgroundColour.GetColor() );
+
+    gdk_gc_set_fill( m_textGC, GDK_SOLID );
+
+    /* m_penGC */
+    m_pen.GetColour().CalcPixel( m_cmap );
+    gdk_gc_set_foreground( m_penGC, m_pen.GetColour().GetColor() );
+    gdk_gc_set_background( m_penGC, bg_col );
+    
+    gdk_gc_set_line_attributes( m_penGC, 0, GDK_LINE_SOLID, GDK_CAP_NOT_LAST, GDK_JOIN_ROUND );
+
+    
+    /* m_brushGC */
+    m_brush.GetColour().CalcPixel( m_cmap );
+    gdk_gc_set_foreground( m_brushGC, m_brush.GetColour().GetColor() );
+    gdk_gc_set_background( m_brushGC, bg_col );
+    
+    gdk_gc_set_fill( m_brushGC, GDK_SOLID );
+    
+    
+    /* m_bgGC */
+    gdk_gc_set_background( m_bgGC, bg_col );
+    gdk_gc_set_foreground( m_bgGC, bg_col );
+
+    gdk_gc_set_fill( m_bgGC, GDK_SOLID );
+  
+    /* ROPs */
+    gdk_gc_set_function( m_textGC, GDK_COPY );
+    gdk_gc_set_function( m_brushGC, GDK_COPY );
+    gdk_gc_set_function( m_penGC, GDK_COPY );
+    
+    /* clipping */
+    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 );
+    gdk_gc_set_clip_rectangle( m_bgGC, (GdkRectangle *) NULL );
+
+    if (!hatch_bitmap)
+    {
+        hatch_bitmap    = hatches;
+        hatch_bitmap[0] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, bdiag_bits, bdiag_width, bdiag_height );
+        hatch_bitmap[1] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, cdiag_bits, cdiag_width, cdiag_height );
+        hatch_bitmap[2] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, fdiag_bits, fdiag_width, fdiag_height );
+        hatch_bitmap[3] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, cross_bits, cross_width, cross_height );
+        hatch_bitmap[4] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, horiz_bits, horiz_width, horiz_height );
+        hatch_bitmap[5] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, verti_bits, verti_width, verti_height );
+    }
+}
+
 void wxWindowDC::DoFloodFill( wxCoord WXUNUSED(x), wxCoord WXUNUSED(y),
                            const wxColour &WXUNUSED(col), int WXUNUSED(style) )
 {
 void wxWindowDC::DoFloodFill( wxCoord WXUNUSED(x), wxCoord WXUNUSED(y),
                            const wxColour &WXUNUSED(col), int WXUNUSED(style) )
 {
@@ -1539,8 +1625,10 @@ void wxWindowDC::DoSetClippingRegion( wxCoord x, wxCoord y, wxCoord width, wxCoo
     
     m_currentClippingRegion.Clear();
     m_currentClippingRegion.Union( rect );
     
     m_currentClippingRegion.Clear();
     m_currentClippingRegion.Union( rect );
+#if USE_PAINT_REGION    
     if (!m_paintClippingRegion.IsEmpty())
         m_currentClippingRegion.Intersect( m_paintClippingRegion );
     if (!m_paintClippingRegion.IsEmpty())
         m_currentClippingRegion.Intersect( m_paintClippingRegion );
+#endif
 
     gdk_gc_set_clip_region( m_penGC, m_currentClippingRegion.GetRegion() );
     gdk_gc_set_clip_region( m_brushGC, m_currentClippingRegion.GetRegion() );
 
     gdk_gc_set_clip_region( m_penGC, m_currentClippingRegion.GetRegion() );
     gdk_gc_set_clip_region( m_brushGC, m_currentClippingRegion.GetRegion() );
@@ -1567,8 +1655,10 @@ void wxWindowDC::DoSetClippingRegionAsRegion( const wxRegion &region  )
     
     m_currentClippingRegion.Clear();
     m_currentClippingRegion.Union( region );
     
     m_currentClippingRegion.Clear();
     m_currentClippingRegion.Union( region );
+#if USE_PAINT_REGION    
     if (!m_paintClippingRegion.IsEmpty())
         m_currentClippingRegion.Intersect( m_paintClippingRegion );
     if (!m_paintClippingRegion.IsEmpty())
         m_currentClippingRegion.Intersect( m_paintClippingRegion );
+#endif
 
     gdk_gc_set_clip_region( m_penGC, m_currentClippingRegion.GetRegion() );
     gdk_gc_set_clip_region( m_brushGC, m_currentClippingRegion.GetRegion() );
 
     gdk_gc_set_clip_region( m_penGC, m_currentClippingRegion.GetRegion() );
     gdk_gc_set_clip_region( m_brushGC, m_currentClippingRegion.GetRegion() );
@@ -1605,77 +1695,6 @@ void wxWindowDC::DestroyClippingRegion()
     }
 }
 
     }
 }
 
-void wxWindowDC::SetUpDC()
-{
-    m_ok = TRUE;
-    
-    if (!m_penGC)
-    {
-        m_penGC = wxGetPoolGC( m_window, wxPEN_COLOUR );
-        m_brushGC = wxGetPoolGC( m_window, wxBRUSH_COLOUR );
-        m_textGC = wxGetPoolGC( m_window, wxTEXT_COLOUR );
-        m_bgGC = wxGetPoolGC( m_window, wxBG_COLOUR );
-    }
-
-    /* background colour */
-    m_backgroundBrush = *wxWHITE_BRUSH;
-    m_backgroundBrush.GetColour().CalcPixel( m_cmap );
-    GdkColor *bg_col = m_backgroundBrush.GetColour().GetColor();
-
-    /* m_textGC */
-    m_textForegroundColour.CalcPixel( m_cmap );
-    gdk_gc_set_foreground( m_textGC, m_textForegroundColour.GetColor() );
-
-    m_textBackgroundColour.CalcPixel( m_cmap );
-    gdk_gc_set_background( m_textGC, m_textBackgroundColour.GetColor() );
-
-    gdk_gc_set_fill( m_textGC, GDK_SOLID );
-
-    /* m_penGC */
-    m_pen.GetColour().CalcPixel( m_cmap );
-    gdk_gc_set_foreground( m_penGC, m_pen.GetColour().GetColor() );
-    gdk_gc_set_background( m_penGC, bg_col );
-    
-    gdk_gc_set_line_attributes( m_penGC, 0, GDK_LINE_SOLID, GDK_CAP_NOT_LAST, GDK_JOIN_ROUND );
-
-    
-    /* m_brushGC */
-    m_brush.GetColour().CalcPixel( m_cmap );
-    gdk_gc_set_foreground( m_brushGC, m_brush.GetColour().GetColor() );
-    gdk_gc_set_background( m_brushGC, bg_col );
-    
-    gdk_gc_set_fill( m_brushGC, GDK_SOLID );
-    
-    
-    /* m_bgGC */
-    gdk_gc_set_background( m_bgGC, bg_col );
-    gdk_gc_set_foreground( m_bgGC, bg_col );
-
-    gdk_gc_set_fill( m_bgGC, GDK_SOLID );
-  
-    /* ROPs */
-    gdk_gc_set_function( m_textGC, GDK_COPY );
-    gdk_gc_set_function( m_brushGC, GDK_COPY );
-    gdk_gc_set_function( m_penGC, GDK_COPY );
-    
-    /* clipping */
-    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 );
-    gdk_gc_set_clip_rectangle( m_bgGC, (GdkRectangle *) NULL );
-
-    if (!hatch_bitmap)
-    {
-        hatch_bitmap    = hatches;
-        hatch_bitmap[0] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, bdiag_bits, bdiag_width, bdiag_height );
-        hatch_bitmap[1] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, cdiag_bits, cdiag_width, cdiag_height );
-        hatch_bitmap[2] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, fdiag_bits, fdiag_width, fdiag_height );
-        hatch_bitmap[3] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, cross_bits, cross_width, cross_height );
-        hatch_bitmap[4] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, horiz_bits, horiz_width, horiz_height );
-        hatch_bitmap[5] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, verti_bits, verti_width, verti_height );
-    }
-}
-
 void wxWindowDC::Destroy()
 {
     if (m_penGC) wxFreePoolGC( m_penGC );
 void wxWindowDC::Destroy()
 {
     if (m_penGC) wxFreePoolGC( m_penGC );
@@ -1905,6 +1924,7 @@ wxPaintDC::wxPaintDC()
 wxPaintDC::wxPaintDC( wxWindow *win )
   : wxWindowDC( win )
 {
 wxPaintDC::wxPaintDC( wxWindow *win )
   : wxWindowDC( win )
 {
+#if USE_PAINT_REGION    
     if (!win->GetUpdateRegion().IsEmpty())
     {
         m_paintClippingRegion = win->GetUpdateRegion();
     if (!win->GetUpdateRegion().IsEmpty())
     {
         m_paintClippingRegion = win->GetUpdateRegion();
@@ -1915,6 +1935,7 @@ wxPaintDC::wxPaintDC( wxWindow *win )
         gdk_gc_set_clip_region( m_textGC, m_paintClippingRegion.GetRegion() );
         gdk_gc_set_clip_region( m_bgGC, m_paintClippingRegion.GetRegion() );
     }
         gdk_gc_set_clip_region( m_textGC, m_paintClippingRegion.GetRegion() );
         gdk_gc_set_clip_region( m_bgGC, m_paintClippingRegion.GetRegion() );
     }
+#endif
 }
 
 //-----------------------------------------------------------------------------
 }
 
 //-----------------------------------------------------------------------------
index 95bf5b9a8a7bd11d0e2dea3d69f6a3da72040a8b..a1e0c244522876fd6e6ce37b46803511e5f8f31a 100644 (file)
@@ -56,9 +56,9 @@ void wxMemoryDC::SelectObject( const wxBitmap& bitmap )
             m_window = m_selected.GetBitmap();
         }
 
             m_window = m_selected.GetBitmap();
         }
 
-        SetUpDC();
-
         m_isMemDC = TRUE;
         m_isMemDC = TRUE;
+
+        SetUpDC();
     }
     else
     {
     }
     else
     {
index 6dea5fdd64b29e27dc616736ad81b976e6633260..befad324ff53a3a54afa33761f098ab9d1d80558 100644 (file)
@@ -613,7 +613,7 @@ static void gtk_window_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExp
     DEBUG_MAIN_THREAD
 
 /*
     DEBUG_MAIN_THREAD
 
 /*
-    if (win->GetName() == wxT("columntitles"))
+    if (win->GetName() == wxT("grid window"))
     {
         wxPrintf( wxT("OnExpose from ") );
         if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
     {
         wxPrintf( wxT("OnExpose from ") );
         if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
@@ -664,7 +664,7 @@ static void gtk_window_draw_callback( GtkWidget *WXUNUSED(widget),
         return;
 
 /*
         return;
 
 /*
-    if (win->GetName() == wxT("columntitles"))
+    if (win->GetName() == wxT("grid window"))
     {
         wxPrintf( wxT("OnDraw from ") );
         if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
     {
         wxPrintf( wxT("OnDraw from ") );
         if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
index 45ce6c6dc5c7c08bebaaa3f8eaf4705ff36bbf42..8c72dd103b4888350a1f63d924e772f5795aee70 100644 (file)
 #include <gdk/gdk.h>
 #include <gtk/gtk.h>
 
 #include <gdk/gdk.h>
 #include <gtk/gtk.h>
 
+//-----------------------------------------------------------------------------
+// local defines
+//-----------------------------------------------------------------------------
+
+#define USE_PAINT_REGION 0
+
 //-----------------------------------------------------------------------------
 // local data
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 // local data
 //-----------------------------------------------------------------------------
@@ -250,6 +256,86 @@ wxWindowDC::~wxWindowDC()
     Destroy();
 }
 
     Destroy();
 }
 
+void wxWindowDC::SetUpDC()
+{
+    m_ok = TRUE;
+    
+    wxASSERT_MSG( !m_penGC, wxT("GCs already created") );
+    
+    if (m_isMemDC && (((wxMemoryDC*)this)->m_selected.GetDepth() == 1))
+    {
+        m_penGC = wxGetPoolGC( m_window, wxPEN_MONO );
+        m_brushGC = wxGetPoolGC( m_window, wxBRUSH_MONO );
+        m_textGC = wxGetPoolGC( m_window, wxTEXT_MONO );
+        m_bgGC = wxGetPoolGC( m_window, wxBG_MONO );
+    }
+    else
+    {
+        m_penGC = wxGetPoolGC( m_window, wxPEN_COLOUR );
+        m_brushGC = wxGetPoolGC( m_window, wxBRUSH_COLOUR );
+        m_textGC = wxGetPoolGC( m_window, wxTEXT_COLOUR );
+        m_bgGC = wxGetPoolGC( m_window, wxBG_COLOUR );
+    }
+
+    /* background colour */
+    m_backgroundBrush = *wxWHITE_BRUSH;
+    m_backgroundBrush.GetColour().CalcPixel( m_cmap );
+    GdkColor *bg_col = m_backgroundBrush.GetColour().GetColor();
+
+    /* m_textGC */
+    m_textForegroundColour.CalcPixel( m_cmap );
+    gdk_gc_set_foreground( m_textGC, m_textForegroundColour.GetColor() );
+
+    m_textBackgroundColour.CalcPixel( m_cmap );
+    gdk_gc_set_background( m_textGC, m_textBackgroundColour.GetColor() );
+
+    gdk_gc_set_fill( m_textGC, GDK_SOLID );
+
+    /* m_penGC */
+    m_pen.GetColour().CalcPixel( m_cmap );
+    gdk_gc_set_foreground( m_penGC, m_pen.GetColour().GetColor() );
+    gdk_gc_set_background( m_penGC, bg_col );
+    
+    gdk_gc_set_line_attributes( m_penGC, 0, GDK_LINE_SOLID, GDK_CAP_NOT_LAST, GDK_JOIN_ROUND );
+
+    
+    /* m_brushGC */
+    m_brush.GetColour().CalcPixel( m_cmap );
+    gdk_gc_set_foreground( m_brushGC, m_brush.GetColour().GetColor() );
+    gdk_gc_set_background( m_brushGC, bg_col );
+    
+    gdk_gc_set_fill( m_brushGC, GDK_SOLID );
+    
+    
+    /* m_bgGC */
+    gdk_gc_set_background( m_bgGC, bg_col );
+    gdk_gc_set_foreground( m_bgGC, bg_col );
+
+    gdk_gc_set_fill( m_bgGC, GDK_SOLID );
+  
+    /* ROPs */
+    gdk_gc_set_function( m_textGC, GDK_COPY );
+    gdk_gc_set_function( m_brushGC, GDK_COPY );
+    gdk_gc_set_function( m_penGC, GDK_COPY );
+    
+    /* clipping */
+    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 );
+    gdk_gc_set_clip_rectangle( m_bgGC, (GdkRectangle *) NULL );
+
+    if (!hatch_bitmap)
+    {
+        hatch_bitmap    = hatches;
+        hatch_bitmap[0] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, bdiag_bits, bdiag_width, bdiag_height );
+        hatch_bitmap[1] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, cdiag_bits, cdiag_width, cdiag_height );
+        hatch_bitmap[2] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, fdiag_bits, fdiag_width, fdiag_height );
+        hatch_bitmap[3] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, cross_bits, cross_width, cross_height );
+        hatch_bitmap[4] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, horiz_bits, horiz_width, horiz_height );
+        hatch_bitmap[5] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, verti_bits, verti_width, verti_height );
+    }
+}
+
 void wxWindowDC::DoFloodFill( wxCoord WXUNUSED(x), wxCoord WXUNUSED(y),
                            const wxColour &WXUNUSED(col), int WXUNUSED(style) )
 {
 void wxWindowDC::DoFloodFill( wxCoord WXUNUSED(x), wxCoord WXUNUSED(y),
                            const wxColour &WXUNUSED(col), int WXUNUSED(style) )
 {
@@ -1539,8 +1625,10 @@ void wxWindowDC::DoSetClippingRegion( wxCoord x, wxCoord y, wxCoord width, wxCoo
     
     m_currentClippingRegion.Clear();
     m_currentClippingRegion.Union( rect );
     
     m_currentClippingRegion.Clear();
     m_currentClippingRegion.Union( rect );
+#if USE_PAINT_REGION    
     if (!m_paintClippingRegion.IsEmpty())
         m_currentClippingRegion.Intersect( m_paintClippingRegion );
     if (!m_paintClippingRegion.IsEmpty())
         m_currentClippingRegion.Intersect( m_paintClippingRegion );
+#endif
 
     gdk_gc_set_clip_region( m_penGC, m_currentClippingRegion.GetRegion() );
     gdk_gc_set_clip_region( m_brushGC, m_currentClippingRegion.GetRegion() );
 
     gdk_gc_set_clip_region( m_penGC, m_currentClippingRegion.GetRegion() );
     gdk_gc_set_clip_region( m_brushGC, m_currentClippingRegion.GetRegion() );
@@ -1567,8 +1655,10 @@ void wxWindowDC::DoSetClippingRegionAsRegion( const wxRegion &region  )
     
     m_currentClippingRegion.Clear();
     m_currentClippingRegion.Union( region );
     
     m_currentClippingRegion.Clear();
     m_currentClippingRegion.Union( region );
+#if USE_PAINT_REGION    
     if (!m_paintClippingRegion.IsEmpty())
         m_currentClippingRegion.Intersect( m_paintClippingRegion );
     if (!m_paintClippingRegion.IsEmpty())
         m_currentClippingRegion.Intersect( m_paintClippingRegion );
+#endif
 
     gdk_gc_set_clip_region( m_penGC, m_currentClippingRegion.GetRegion() );
     gdk_gc_set_clip_region( m_brushGC, m_currentClippingRegion.GetRegion() );
 
     gdk_gc_set_clip_region( m_penGC, m_currentClippingRegion.GetRegion() );
     gdk_gc_set_clip_region( m_brushGC, m_currentClippingRegion.GetRegion() );
@@ -1605,77 +1695,6 @@ void wxWindowDC::DestroyClippingRegion()
     }
 }
 
     }
 }
 
-void wxWindowDC::SetUpDC()
-{
-    m_ok = TRUE;
-    
-    if (!m_penGC)
-    {
-        m_penGC = wxGetPoolGC( m_window, wxPEN_COLOUR );
-        m_brushGC = wxGetPoolGC( m_window, wxBRUSH_COLOUR );
-        m_textGC = wxGetPoolGC( m_window, wxTEXT_COLOUR );
-        m_bgGC = wxGetPoolGC( m_window, wxBG_COLOUR );
-    }
-
-    /* background colour */
-    m_backgroundBrush = *wxWHITE_BRUSH;
-    m_backgroundBrush.GetColour().CalcPixel( m_cmap );
-    GdkColor *bg_col = m_backgroundBrush.GetColour().GetColor();
-
-    /* m_textGC */
-    m_textForegroundColour.CalcPixel( m_cmap );
-    gdk_gc_set_foreground( m_textGC, m_textForegroundColour.GetColor() );
-
-    m_textBackgroundColour.CalcPixel( m_cmap );
-    gdk_gc_set_background( m_textGC, m_textBackgroundColour.GetColor() );
-
-    gdk_gc_set_fill( m_textGC, GDK_SOLID );
-
-    /* m_penGC */
-    m_pen.GetColour().CalcPixel( m_cmap );
-    gdk_gc_set_foreground( m_penGC, m_pen.GetColour().GetColor() );
-    gdk_gc_set_background( m_penGC, bg_col );
-    
-    gdk_gc_set_line_attributes( m_penGC, 0, GDK_LINE_SOLID, GDK_CAP_NOT_LAST, GDK_JOIN_ROUND );
-
-    
-    /* m_brushGC */
-    m_brush.GetColour().CalcPixel( m_cmap );
-    gdk_gc_set_foreground( m_brushGC, m_brush.GetColour().GetColor() );
-    gdk_gc_set_background( m_brushGC, bg_col );
-    
-    gdk_gc_set_fill( m_brushGC, GDK_SOLID );
-    
-    
-    /* m_bgGC */
-    gdk_gc_set_background( m_bgGC, bg_col );
-    gdk_gc_set_foreground( m_bgGC, bg_col );
-
-    gdk_gc_set_fill( m_bgGC, GDK_SOLID );
-  
-    /* ROPs */
-    gdk_gc_set_function( m_textGC, GDK_COPY );
-    gdk_gc_set_function( m_brushGC, GDK_COPY );
-    gdk_gc_set_function( m_penGC, GDK_COPY );
-    
-    /* clipping */
-    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 );
-    gdk_gc_set_clip_rectangle( m_bgGC, (GdkRectangle *) NULL );
-
-    if (!hatch_bitmap)
-    {
-        hatch_bitmap    = hatches;
-        hatch_bitmap[0] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, bdiag_bits, bdiag_width, bdiag_height );
-        hatch_bitmap[1] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, cdiag_bits, cdiag_width, cdiag_height );
-        hatch_bitmap[2] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, fdiag_bits, fdiag_width, fdiag_height );
-        hatch_bitmap[3] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, cross_bits, cross_width, cross_height );
-        hatch_bitmap[4] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, horiz_bits, horiz_width, horiz_height );
-        hatch_bitmap[5] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, verti_bits, verti_width, verti_height );
-    }
-}
-
 void wxWindowDC::Destroy()
 {
     if (m_penGC) wxFreePoolGC( m_penGC );
 void wxWindowDC::Destroy()
 {
     if (m_penGC) wxFreePoolGC( m_penGC );
@@ -1905,6 +1924,7 @@ wxPaintDC::wxPaintDC()
 wxPaintDC::wxPaintDC( wxWindow *win )
   : wxWindowDC( win )
 {
 wxPaintDC::wxPaintDC( wxWindow *win )
   : wxWindowDC( win )
 {
+#if USE_PAINT_REGION    
     if (!win->GetUpdateRegion().IsEmpty())
     {
         m_paintClippingRegion = win->GetUpdateRegion();
     if (!win->GetUpdateRegion().IsEmpty())
     {
         m_paintClippingRegion = win->GetUpdateRegion();
@@ -1915,6 +1935,7 @@ wxPaintDC::wxPaintDC( wxWindow *win )
         gdk_gc_set_clip_region( m_textGC, m_paintClippingRegion.GetRegion() );
         gdk_gc_set_clip_region( m_bgGC, m_paintClippingRegion.GetRegion() );
     }
         gdk_gc_set_clip_region( m_textGC, m_paintClippingRegion.GetRegion() );
         gdk_gc_set_clip_region( m_bgGC, m_paintClippingRegion.GetRegion() );
     }
+#endif
 }
 
 //-----------------------------------------------------------------------------
 }
 
 //-----------------------------------------------------------------------------
index 95bf5b9a8a7bd11d0e2dea3d69f6a3da72040a8b..a1e0c244522876fd6e6ce37b46803511e5f8f31a 100644 (file)
@@ -56,9 +56,9 @@ void wxMemoryDC::SelectObject( const wxBitmap& bitmap )
             m_window = m_selected.GetBitmap();
         }
 
             m_window = m_selected.GetBitmap();
         }
 
-        SetUpDC();
-
         m_isMemDC = TRUE;
         m_isMemDC = TRUE;
+
+        SetUpDC();
     }
     else
     {
     }
     else
     {
index 6dea5fdd64b29e27dc616736ad81b976e6633260..befad324ff53a3a54afa33761f098ab9d1d80558 100644 (file)
@@ -613,7 +613,7 @@ static void gtk_window_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExp
     DEBUG_MAIN_THREAD
 
 /*
     DEBUG_MAIN_THREAD
 
 /*
-    if (win->GetName() == wxT("columntitles"))
+    if (win->GetName() == wxT("grid window"))
     {
         wxPrintf( wxT("OnExpose from ") );
         if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
     {
         wxPrintf( wxT("OnExpose from ") );
         if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
@@ -664,7 +664,7 @@ static void gtk_window_draw_callback( GtkWidget *WXUNUSED(widget),
         return;
 
 /*
         return;
 
 /*
-    if (win->GetName() == wxT("columntitles"))
+    if (win->GetName() == wxT("grid window"))
     {
         wxPrintf( wxT("OnDraw from ") );
         if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
     {
         wxPrintf( wxT("OnDraw from ") );
         if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())