]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/statusbr.cpp
concentrating content and structure region calculations
[wxWidgets.git] / src / generic / statusbr.cpp
index 00588ff0f6277bbbb7b8baeacde932c8c48301b1..55eb58cc4f1338b64176025cf865e2c43d8bca1d 100644 (file)
@@ -5,11 +5,11 @@
 // Modified by:
 // Created:     01/02/97
 // RCS-ID:      $Id$
 // Modified by:
 // Created:     01/02/97
 // RCS-ID:      $Id$
-// Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:     wxWindows license
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma implementation "statusbr.h"
 #endif
 
 #pragma implementation "statusbr.h"
 #endif
 
@@ -104,6 +104,8 @@ bool wxStatusBarGeneric::Create(wxWindow *parent,
 
   SetSize(-1, -1, -1, height);
 
 
   SetSize(-1, -1, -1, height);
 
+  SetFieldsCount(1);
+
   return TRUE;
 }
 
   return TRUE;
 }
 
@@ -131,12 +133,16 @@ void wxStatusBarGeneric::SetStatusText(const wxString& text, int number)
     wxCHECK_RET( (number >= 0) && (number < m_nFields),
                  _T("invalid status bar field index") );
 
     wxCHECK_RET( (number >= 0) && (number < m_nFields),
                  _T("invalid status bar field index") );
 
-    m_statusStrings[number] = text;
+    wxString oldText = m_statusStrings[number];
+    if (oldText != text)
+    {
+        m_statusStrings[number] = text;
 
 
-    wxRect rect;
-    GetFieldRect(number, rect);
+        wxRect rect;
+        GetFieldRect(number, rect);
 
 
-    Refresh( TRUE, &rect );
+        Refresh( TRUE, &rect );
+    }
 }
 
 wxString wxStatusBarGeneric::GetStatusText(int n) const
 }
 
 wxString wxStatusBarGeneric::GetStatusText(int n) const
@@ -181,7 +187,7 @@ void wxStatusBarGeneric::OnPaint(wxPaintEvent& WXUNUSED(event) )
     {
         int width, height;
         GetClientSize(&width, &height);
     {
         int width, height;
         GetClientSize(&width, &height);
-        
+
         gtk_paint_resize_grip( m_widget->style,
                                GTK_PIZZA(m_wxwindow)->bin_window,
                                (GtkStateType) GTK_WIDGET_STATE (m_widget),
         gtk_paint_resize_grip( m_widget->style,
                                GTK_PIZZA(m_wxwindow)->bin_window,
                                (GtkStateType) GTK_WIDGET_STATE (m_widget),
@@ -190,13 +196,13 @@ void wxStatusBarGeneric::OnPaint(wxPaintEvent& WXUNUSED(event) )
                                "statusbar",
                                GDK_WINDOW_EDGE_SOUTH_EAST,
                                width-height-2, 1, height-2, height-3 );
                                "statusbar",
                                GDK_WINDOW_EDGE_SOUTH_EAST,
                                width-height-2, 1, height-2, height-3 );
-        
+
     }
 #endif
 
   if (GetFont().Ok())
         dc.SetFont(GetFont());
     }
 #endif
 
   if (GetFont().Ok())
         dc.SetFont(GetFont());
-    
+
   dc.SetBackgroundMode(wxTRANSPARENT);
 
 #ifdef __WXPM__
   dc.SetBackgroundMode(wxTRANSPARENT);
 
 #ifdef __WXPM__
@@ -328,7 +334,7 @@ bool wxStatusBarGeneric::GetFieldRect(int n, wxRect& rect) const
 void wxStatusBarGeneric::InitColours()
 {
     // Shadow colours
 void wxStatusBarGeneric::InitColours()
 {
     // Shadow colours
-#if defined(__WIN95__)
+#if defined(__WIN95__) || defined(__WXMAC__)
     wxColour mediumShadowColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DSHADOW));
     m_mediumShadowPen = wxPen(mediumShadowColour, 1, wxSOLID);
 
     wxColour mediumShadowColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DSHADOW));
     m_mediumShadowPen = wxPen(mediumShadowColour, 1, wxSOLID);
 
@@ -385,7 +391,7 @@ void wxStatusBarGeneric::OnLeftDown(wxMouseEvent& event)
 #ifdef __WXGTK20__
     int width, height;
     GetClientSize(&width, &height);
 #ifdef __WXGTK20__
     int width, height;
     GetClientSize(&width, &height);
-    
+
     if (HasFlag( wxST_SIZEGRIP ) && (event.GetX() > width-height))
     {
         GtkWidget *ancestor = gtk_widget_get_toplevel( m_widget );
     if (HasFlag( wxST_SIZEGRIP ) && (event.GetX() > width-height))
     {
         GtkWidget *ancestor = gtk_widget_get_toplevel( m_widget );
@@ -402,8 +408,8 @@ void wxStatusBarGeneric::OnLeftDown(wxMouseEvent& event)
         gtk_window_begin_resize_drag (GTK_WINDOW (ancestor),
                                   GDK_WINDOW_EDGE_SOUTH_EAST,
                                   1,
         gtk_window_begin_resize_drag (GTK_WINDOW (ancestor),
                                   GDK_WINDOW_EDGE_SOUTH_EAST,
                                   1,
-                                  org_x + event.GetX(), 
-                                  org_y + event.GetY(), 
+                                  org_x + event.GetX(),
+                                  org_y + event.GetY(),
                                   0);
     }
     else
                                   0);
     }
     else
@@ -420,7 +426,7 @@ void wxStatusBarGeneric::OnRightDown(wxMouseEvent& event)
 #ifdef __WXGTK20__
     int width, height;
     GetClientSize(&width, &height);
 #ifdef __WXGTK20__
     int width, height;
     GetClientSize(&width, &height);
-    
+
     if (HasFlag( wxST_SIZEGRIP ) && (event.GetX() > width-height))
     {
         GtkWidget *ancestor = gtk_widget_get_toplevel( m_widget );
     if (HasFlag( wxST_SIZEGRIP ) && (event.GetX() > width-height))
     {
         GtkWidget *ancestor = gtk_widget_get_toplevel( m_widget );
@@ -433,11 +439,11 @@ void wxStatusBarGeneric::OnRightDown(wxMouseEvent& event)
         int org_x = 0;
         int org_y = 0;
         gdk_window_get_origin( source, &org_x, &org_y );
         int org_x = 0;
         int org_y = 0;
         gdk_window_get_origin( source, &org_x, &org_y );
-    
+
         gtk_window_begin_move_drag (GTK_WINDOW (ancestor),
                                 2,
         gtk_window_begin_move_drag (GTK_WINDOW (ancestor),
                                 2,
-                                org_x + event.GetX(), 
-                                org_y + event.GetY(), 
+                                org_x + event.GetX(),
+                                org_y + event.GetY(),
                                 0);
     }
     else
                                 0);
     }
     else