]> git.saurik.com Git - wxWidgets.git/commitdiff
Bunch of GTK theme changes.
authorRobert Roebling <robert@roebling.de>
Sun, 21 Apr 2002 16:43:15 +0000 (16:43 +0000)
committerRobert Roebling <robert@roebling.de>
Sun, 21 Apr 2002 16:43:15 +0000 (16:43 +0000)
  Make wxStatusBar use themes.
  SetStatusText() now uses Refresh() since I don't
    know why it shouldn't.

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

src/generic/statusbr.cpp
src/gtk/dcclient.cpp
src/gtk/window.cpp
src/gtk1/dcclient.cpp
src/gtk1/window.cpp

index 3244ab7244188521c23fb938dec0a0626c18cafc..2256846c67a104f31c84c4a5d891590bc3a7ee84 100644 (file)
@@ -85,6 +85,9 @@ bool wxStatusBarGeneric::Create(wxWindow *parent,
                                   wxDefaultPosition, wxDefaultSize,
                                   style | wxTAB_TRAVERSAL, name);
 
+  // The status bar should have a themed background
+  SetThemeEnabled( TRUE );
+
   // Don't wish this to be found as a child
 #ifndef __WXMAC__
   parent->GetChildren().DeleteObject(this);
@@ -127,27 +130,10 @@ void wxStatusBarGeneric::SetStatusText(const wxString& text, int number)
 
     m_statusStrings[number] = text;
 
-#ifdef __WXMAC__
-    int major,minor;
-    wxGetOsVersion( &major, &minor );
-
-    if (major >= 10)
-    {
-        Refresh();
-        return;
-    }
-#endif
-
     wxRect rect;
     GetFieldRect(number, rect);
-    wxClientDC dc(this);
-
-    dc.SetBackground( wxBrush(GetBackgroundColour(), wxSOLID) );
-    dc.SetClippingRegion( rect.x+1, rect.y+1, rect.width-1, rect.height-1 );
-    dc.Clear();
-    dc.DestroyClippingRegion();
-    dc.SetFont(GetFont());
-    DrawFieldText( dc, number );
+    
+    Refresh( TRUE, &rect );
 }
 
 wxString wxStatusBarGeneric::GetStatusText(int n) const
index fc69b408a99a2879bd19cc0fc16a12b2dbf4f217..92566a3da03fba35d659c240278606d7d354622d 100644 (file)
@@ -1569,9 +1569,7 @@ void wxWindowDC::Clear()
 
     if (m_owner)
     {
-        int width,height;
-        m_owner->GetSize( &width, &height );
-        gdk_draw_rectangle( m_window, m_bgGC, TRUE, 0, 0, width, height );
+        m_owner->Clear();
         return;
     }
 
index 7460101617e7d90783b1e0dc290eb176878cdd4d..948e88e8b39bc01960ed60de0b3006bc5be93d6f 100644 (file)
@@ -3467,8 +3467,43 @@ void wxWindowGTK::GtkSendPaintEvents()
         return;
     }
 
+    // widget to draw on
+    GtkPizza *pizza = GTK_PIZZA (m_wxwindow);
+            
+    // Clip to paint region in wxClientDC
     m_clipPaintRegion = TRUE;
     
+    if (GetThemeEnabled())
+    {
+        // find ancestor from which to steal background
+        wxWindow *parent = GetParent();
+        while (parent && !parent->IsTopLevel())
+            parent = parent->GetParent();
+        if (!parent)
+            parent = this;
+    
+        wxRegionIterator upd( m_updateRegion );
+        while (upd)
+        {
+            GdkRectangle rect;
+            rect.x = upd.GetX();
+            rect.y = upd.GetY();
+            rect.width = upd.GetWidth();
+            rect.height = upd.GetHeight();
+                    
+            gtk_paint_flat_box( parent->m_widget->style,
+                        pizza->bin_window,
+                        GTK_STATE_NORMAL,
+                        GTK_SHADOW_NONE,
+                        &rect,
+                        parent->m_widget,
+                        (char *)"base",
+                        0, 0, -1, -1 );
+                        
+            upd ++;
+        }
+    }
+    else
     // if (!m_clearRegion.IsEmpty())   // always send an erase event
     {
         wxWindowDC dc( (wxWindow*)this );
@@ -3481,46 +3516,16 @@ void wxWindowGTK::GtkSendPaintEvents()
         {
             if (!g_eraseGC)
             {
-                g_eraseGC = gdk_gc_new( GTK_PIZZA(m_wxwindow)->bin_window );
+                g_eraseGC = gdk_gc_new( pizza->bin_window );
                 gdk_gc_set_fill( g_eraseGC, GDK_SOLID );
             }
             gdk_gc_set_foreground( g_eraseGC, m_backgroundColour.GetColor() );
 
-            // widget to draw on
-            GtkPizza *pizza = GTK_PIZZA (m_wxwindow);
-            
-            // find ancestor from which to steal background
-            wxWindow *parent = GetParent();
-            while (parent && !parent->IsTopLevel())
-                parent = parent->GetParent();
-            if (!parent)
-                parent = this;
-    
             wxRegionIterator upd( m_clearRegion );
             while (upd)
             {
-                if (GetThemeEnabled())
-                { 
-                    GdkRectangle rect;
-                    rect.x = upd.GetX();
-                    rect.y = upd.GetY();
-                    rect.width = upd.GetWidth();
-                    rect.height = upd.GetHeight();
-                    
-                    gtk_paint_flat_box( parent->m_widget->style,
-                        pizza->bin_window,
-                        GTK_STATE_NORMAL,
-                        GTK_SHADOW_NONE,
-                        &rect,
-                        parent->m_widget,
-                        (char *)"base",
-                        0, 0, -1, -1 );
-                }
-                else
-                {
-                    gdk_draw_rectangle( pizza->bin_window, g_eraseGC, 1,
-                                        upd.GetX(), upd.GetY(), upd.GetWidth(), upd.GetHeight() );
-                }
+                gdk_draw_rectangle( pizza->bin_window, g_eraseGC, 1,
+                                    upd.GetX(), upd.GetY(), upd.GetWidth(), upd.GetHeight() );
                 upd ++;
             }
         }
@@ -3543,8 +3548,6 @@ void wxWindowGTK::GtkSendPaintEvents()
     // being redrawn because the wxWindows class is allowed to
     // paint over the window-less widgets.
 
-    GtkPizza *pizza = GTK_PIZZA(m_wxwindow);
-
     GList *children = pizza->children;
     while (children)
     {
@@ -3629,12 +3632,9 @@ void wxWindowGTK::GtkSetBackgroundColour( const wxColour &colour )
     // We need the pixel value e.g. for background clearing.
     m_backgroundColour.CalcPixel( gdk_window_get_colormap( window ) );
     
-    if ((m_wxwindow) &&
-        (m_backgroundColour != wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE)))
+    if (m_wxwindow)
     {
-        /* wxMSW doesn't clear the window here. I don't do that either to
-          provide compatibility. call Clear() to do the job. */
-
+        // wxMSW doesn't clear the window here, either.
         gdk_window_set_background( window, m_backgroundColour.GetColor() );
     }
 
index fc69b408a99a2879bd19cc0fc16a12b2dbf4f217..92566a3da03fba35d659c240278606d7d354622d 100644 (file)
@@ -1569,9 +1569,7 @@ void wxWindowDC::Clear()
 
     if (m_owner)
     {
-        int width,height;
-        m_owner->GetSize( &width, &height );
-        gdk_draw_rectangle( m_window, m_bgGC, TRUE, 0, 0, width, height );
+        m_owner->Clear();
         return;
     }
 
index 7460101617e7d90783b1e0dc290eb176878cdd4d..948e88e8b39bc01960ed60de0b3006bc5be93d6f 100644 (file)
@@ -3467,8 +3467,43 @@ void wxWindowGTK::GtkSendPaintEvents()
         return;
     }
 
+    // widget to draw on
+    GtkPizza *pizza = GTK_PIZZA (m_wxwindow);
+            
+    // Clip to paint region in wxClientDC
     m_clipPaintRegion = TRUE;
     
+    if (GetThemeEnabled())
+    {
+        // find ancestor from which to steal background
+        wxWindow *parent = GetParent();
+        while (parent && !parent->IsTopLevel())
+            parent = parent->GetParent();
+        if (!parent)
+            parent = this;
+    
+        wxRegionIterator upd( m_updateRegion );
+        while (upd)
+        {
+            GdkRectangle rect;
+            rect.x = upd.GetX();
+            rect.y = upd.GetY();
+            rect.width = upd.GetWidth();
+            rect.height = upd.GetHeight();
+                    
+            gtk_paint_flat_box( parent->m_widget->style,
+                        pizza->bin_window,
+                        GTK_STATE_NORMAL,
+                        GTK_SHADOW_NONE,
+                        &rect,
+                        parent->m_widget,
+                        (char *)"base",
+                        0, 0, -1, -1 );
+                        
+            upd ++;
+        }
+    }
+    else
     // if (!m_clearRegion.IsEmpty())   // always send an erase event
     {
         wxWindowDC dc( (wxWindow*)this );
@@ -3481,46 +3516,16 @@ void wxWindowGTK::GtkSendPaintEvents()
         {
             if (!g_eraseGC)
             {
-                g_eraseGC = gdk_gc_new( GTK_PIZZA(m_wxwindow)->bin_window );
+                g_eraseGC = gdk_gc_new( pizza->bin_window );
                 gdk_gc_set_fill( g_eraseGC, GDK_SOLID );
             }
             gdk_gc_set_foreground( g_eraseGC, m_backgroundColour.GetColor() );
 
-            // widget to draw on
-            GtkPizza *pizza = GTK_PIZZA (m_wxwindow);
-            
-            // find ancestor from which to steal background
-            wxWindow *parent = GetParent();
-            while (parent && !parent->IsTopLevel())
-                parent = parent->GetParent();
-            if (!parent)
-                parent = this;
-    
             wxRegionIterator upd( m_clearRegion );
             while (upd)
             {
-                if (GetThemeEnabled())
-                { 
-                    GdkRectangle rect;
-                    rect.x = upd.GetX();
-                    rect.y = upd.GetY();
-                    rect.width = upd.GetWidth();
-                    rect.height = upd.GetHeight();
-                    
-                    gtk_paint_flat_box( parent->m_widget->style,
-                        pizza->bin_window,
-                        GTK_STATE_NORMAL,
-                        GTK_SHADOW_NONE,
-                        &rect,
-                        parent->m_widget,
-                        (char *)"base",
-                        0, 0, -1, -1 );
-                }
-                else
-                {
-                    gdk_draw_rectangle( pizza->bin_window, g_eraseGC, 1,
-                                        upd.GetX(), upd.GetY(), upd.GetWidth(), upd.GetHeight() );
-                }
+                gdk_draw_rectangle( pizza->bin_window, g_eraseGC, 1,
+                                    upd.GetX(), upd.GetY(), upd.GetWidth(), upd.GetHeight() );
                 upd ++;
             }
         }
@@ -3543,8 +3548,6 @@ void wxWindowGTK::GtkSendPaintEvents()
     // being redrawn because the wxWindows class is allowed to
     // paint over the window-less widgets.
 
-    GtkPizza *pizza = GTK_PIZZA(m_wxwindow);
-
     GList *children = pizza->children;
     while (children)
     {
@@ -3629,12 +3632,9 @@ void wxWindowGTK::GtkSetBackgroundColour( const wxColour &colour )
     // We need the pixel value e.g. for background clearing.
     m_backgroundColour.CalcPixel( gdk_window_get_colormap( window ) );
     
-    if ((m_wxwindow) &&
-        (m_backgroundColour != wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE)))
+    if (m_wxwindow)
     {
-        /* wxMSW doesn't clear the window here. I don't do that either to
-          provide compatibility. call Clear() to do the job. */
-
+        // wxMSW doesn't clear the window here, either.
         gdk_window_set_background( window, m_backgroundColour.GetColor() );
     }