X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b5f62a0b2db198609b45dec622a018dae37008e..29281095c4959cbadfcc66efccf679c6c25c7dc7:/src/generic/statusbr.cpp diff --git a/src/generic/statusbr.cpp b/src/generic/statusbr.cpp index 00588ff0f6..55eb58cc4f 100644 --- a/src/generic/statusbr.cpp +++ b/src/generic/statusbr.cpp @@ -5,11 +5,11 @@ // 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 @@ -104,6 +104,8 @@ bool wxStatusBarGeneric::Create(wxWindow *parent, SetSize(-1, -1, -1, height); + SetFieldsCount(1); + 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") ); - 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 @@ -181,7 +187,7 @@ void wxStatusBarGeneric::OnPaint(wxPaintEvent& WXUNUSED(event) ) { 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), @@ -190,13 +196,13 @@ void wxStatusBarGeneric::OnPaint(wxPaintEvent& WXUNUSED(event) ) "statusbar", GDK_WINDOW_EDGE_SOUTH_EAST, width-height-2, 1, height-2, height-3 ); - + } #endif if (GetFont().Ok()) dc.SetFont(GetFont()); - + dc.SetBackgroundMode(wxTRANSPARENT); #ifdef __WXPM__ @@ -328,7 +334,7 @@ bool wxStatusBarGeneric::GetFieldRect(int n, wxRect& rect) const 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); @@ -385,7 +391,7 @@ void wxStatusBarGeneric::OnLeftDown(wxMouseEvent& event) #ifdef __WXGTK20__ int width, height; GetClientSize(&width, &height); - + 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, - org_x + event.GetX(), - org_y + event.GetY(), + org_x + event.GetX(), + org_y + event.GetY(), 0); } else @@ -420,7 +426,7 @@ void wxStatusBarGeneric::OnRightDown(wxMouseEvent& event) #ifdef __WXGTK20__ int width, height; GetClientSize(&width, &height); - + 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 ); - + 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