]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/frame.cpp
gtk_pizza_set_external is redundant
[wxWidgets.git] / src / gtk / frame.cpp
index 423f779e147f0f6182a3299675aa0acf149be5e9..9d26447c679c36667c1604a799ada2312370cc80 100644 (file)
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
-// ============================================================================
-// declarations
-// ============================================================================
-
-// ----------------------------------------------------------------------------
-// headers
-// ----------------------------------------------------------------------------
-
 #include "wx/frame.h"
 
 #ifndef WX_PRECOMP
-    #include "wx/app.h"
-    #include "wx/dcclient.h"
     #include "wx/menu.h"
-    #include "wx/dialog.h"
-    #include "wx/control.h"
     #include "wx/toolbar.h"
     #include "wx/statusbr.h"
 #endif // WX_PRECOMP
 
-#include <glib.h>
 #include "wx/gtk/private.h"
-
-#include <gdk/gdkkeysyms.h>
-#include <gdk/gdkx.h>
-
 #include "wx/gtk/win_gtk.h"
 
 // ----------------------------------------------------------------------------
 // constants
 // ----------------------------------------------------------------------------
 
-const int wxSTATUS_HEIGHT  = 25;
-const int wxPLACE_HOLDER   = 0;
+static const int wxSTATUS_HEIGHT  = 25;
+static const int wxPLACE_HOLDER   = 0;
 
 // ----------------------------------------------------------------------------
 // event tables
@@ -252,31 +235,39 @@ void wxFrame::DoGetClientSize( int *width, int *height ) const
         if (m_frameStatusBar && m_frameStatusBar->IsShown())
             (*height) -= wxSTATUS_HEIGHT;
 #endif // wxUSE_STATUSBAR
+    }
 
 #if wxUSE_TOOLBAR
-        // tool bar
-        if (m_frameToolBar && m_frameToolBar->IsShown())
+    // tool bar
+    if (m_frameToolBar && m_frameToolBar->IsShown())
+    {
+        if (m_toolBarDetached)
         {
-            if (m_toolBarDetached)
-            {
+            if (height != NULL)
                 *height -= wxPLACE_HOLDER;
+        }
+        else
+        {
+            int x, y;
+            m_frameToolBar->GetSize( &x, &y );
+            if ( m_frameToolBar->GetWindowStyle() & wxTB_VERTICAL )
+            {
+                if (width != NULL)
+                    *width -= x;
             }
             else
             {
-                int x, y;
-                m_frameToolBar->GetSize( &x, &y );
-                if ( m_frameToolBar->GetWindowStyle() & wxTB_VERTICAL )
-                {
-                    *width -= x;
-                }
-                else
-                {
+                if (height != NULL)
                     *height -= y;
-                }
             }
         }
-#endif // wxUSE_TOOLBAR
     }
+#endif // wxUSE_TOOLBAR
+
+    if (width != NULL && *width < 0)
+        *width = 0;
+    if (height != NULL && *height < 0)
+        *height = 0;
 }
 
 void wxFrame::DoSetClientSize( int width, int height )
@@ -384,6 +375,8 @@ void wxFrame::GtkOnSize()
             int xx = m_miniEdge;
             int yy = m_miniEdge + m_miniTitle;
             int ww = m_width  - 2*m_miniEdge;
+            if (ww < 0)
+                ww = 0;
             int hh = m_menuBarHeight;
             if (m_menuBarDetached) hh = wxPLACE_HOLDER;
             m_frameMenuBar->m_x = xx;
@@ -423,6 +416,8 @@ void wxFrame::GtkOnSize()
                 ww = m_toolBarDetached ? wxPLACE_HOLDER
                                        : m_frameToolBar->m_width;
                 hh = m_height - 2*m_miniEdge;
+                if (hh < 0)
+                    hh = 0;
 
                 client_area_x_offset += ww;
             }
@@ -445,6 +440,10 @@ void wxFrame::GtkOnSize()
         int client_y = client_area_y_offset + m_miniEdge + m_miniTitle;
         int client_w = m_width - client_area_x_offset - 2*m_miniEdge;
         int client_h = m_height - client_area_y_offset- 2*m_miniEdge - m_miniTitle;
+        if (client_w < 0)
+            client_w = 0;
+        if (client_h < 0)
+            client_h = 0;
         gtk_pizza_set_size( GTK_PIZZA(m_mainWidget),
                               m_wxwindow,
                               client_x, client_y, client_w, client_h );
@@ -461,6 +460,8 @@ void wxFrame::GtkOnSize()
         int xx = 0 + m_miniEdge;
         int yy = m_height - wxSTATUS_HEIGHT - m_miniEdge - client_area_y_offset;
         int ww = m_width - 2*m_miniEdge;
+        if (ww < 0)
+            ww = 0;
         int hh = wxSTATUS_HEIGHT;
         m_frameStatusBar->m_x = xx;
         m_frameStatusBar->m_y = yy;
@@ -469,12 +470,6 @@ void wxFrame::GtkOnSize()
         gtk_pizza_set_size( GTK_PIZZA(m_wxwindow),
                             m_frameStatusBar->m_widget,
                             xx, yy, ww, hh );
-        if (GTK_WIDGET_DRAWABLE (m_frameStatusBar->m_widget))
-        {
-            gtk_widget_queue_draw (m_frameStatusBar->m_widget);
-            // FIXME: Do we really want to force an immediate redraw?
-            gdk_window_process_updates (m_frameStatusBar->m_widget->window, TRUE);
-        }
     }
 #endif // wxUSE_STATUSBAR