X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c4c178c10d070e20d537f3d685a31115b3b2d4c9..a5bb451448bc5abdadd4ded3f3bc18dbbf07fedd:/src/generic/statusbr.cpp diff --git a/src/generic/statusbr.cpp b/src/generic/statusbr.cpp index e1717d26db..4c24ee5c35 100644 --- a/src/generic/statusbr.cpp +++ b/src/generic/statusbr.cpp @@ -75,7 +75,7 @@ gboolean statusbar_query_tooltip(GtkWidget* WXUNUSED(widget), const wxString& str = statbar->GetStatusText(n); if (str.empty()) return FALSE; - + gtk_tooltip_set_text(tooltip, wxGTK_CONV_SYS(str)); return TRUE; } @@ -129,14 +129,14 @@ bool wxStatusBarGeneric::Create(wxWindow *parent, SetSize(wxDefaultCoord, wxDefaultCoord, wxDefaultCoord, height); SetFieldsCount(1); - + #if defined( __WXGTK20__ ) #if GTK_CHECK_VERSION(2,12,0) if (HasFlag(wxSTB_SHOW_TIPS) && !gtk_check_version(2,12,0)) { - g_object_set(m_widget, "has-tooltip", TRUE, NULL); - g_signal_connect(m_widget, "query-tooltip", - G_CALLBACK(statusbar_query_tooltip), this); + g_object_set(m_widget, "has-tooltip", TRUE, NULL); + g_signal_connect(m_widget, "query-tooltip", + G_CALLBACK(statusbar_query_tooltip), this); } #endif #endif @@ -160,41 +160,23 @@ wxSize wxStatusBarGeneric::DoGetBestSize() const return wxSize(width, height); } -void wxStatusBarGeneric::SetFieldsCount(int number, const int *widths) -{ - wxASSERT_MSG( number >= 0, _T("negative number of fields in wxStatusBar?") ); - - // this will result in a call to SetStatusWidths() and thus an update to our - // m_widthsAbs cache - wxStatusBarBase::SetFieldsCount(number, widths); -} - -void wxStatusBarGeneric::SetStatusText(const wxString& text, int number) +void wxStatusBarGeneric::DoUpdateStatusText(int number) { - wxCHECK_RET( (number >= 0) && ((size_t)number < m_panes.GetCount()), - _T("invalid status bar field index") ); - - wxString oldText = GetStatusText(number); - if (oldText != text) - { - wxStatusBarBase::SetStatusText(text, number); - - wxRect rect; - GetFieldRect(number, rect); + wxRect rect; + GetFieldRect(number, rect); - Refresh(true, &rect); + Refresh(true, &rect); - // it's common to show some text in the status bar before starting a - // relatively lengthy operation, ensure that the text is shown to the - // user immediately and not after the lengthy operation end - Update(); - } + // it's common to show some text in the status bar before starting a + // relatively lengthy operation, ensure that the text is shown to the + // user immediately and not after the lengthy operation end + Update(); } void wxStatusBarGeneric::SetStatusWidths(int n, const int widths_field[]) { // only set status widths when n == number of statuswindows - wxCHECK_RET( (size_t)n == m_panes.GetCount(), _T("status bar field count mismatch") ); + wxCHECK_RET( (size_t)n == m_panes.GetCount(), wxT("status bar field count mismatch") ); wxStatusBarBase::SetStatusWidths(n, widths_field); @@ -246,7 +228,7 @@ void wxStatusBarGeneric::DrawFieldText(wxDC& dc, const wxRect& rect, int i, int } // eventually ellipsize the text so that it fits the field width - + wxEllipsizeMode ellmode = (wxEllipsizeMode)-1; if (HasFlag(wxSTB_ELLIPSIZE_START)) ellmode = wxELLIPSIZE_START; else if (HasFlag(wxSTB_ELLIPSIZE_MIDDLE)) ellmode = wxELLIPSIZE_MIDDLE; @@ -266,11 +248,11 @@ void wxStatusBarGeneric::DrawFieldText(wxDC& dc, const wxRect& rect, int i, int text = wxControl::Ellipsize(text, dc, ellmode, maxWidth, - wxELLIPSIZE_EXPAND_TAB); + wxELLIPSIZE_FLAGS_EXPAND_TABS); // Ellipsize() will do something only if necessary - // update the ellipsization status for this pane; this is used later to - // decide whether a tooltip should be shown or not for this pane + // update the ellipsization status for this pane; this is used later to + // decide whether a tooltip should be shown or not for this pane // (if we have wxSTB_SHOW_TIPS) SetEllipsizedFlag(i, text != GetStatusText(i)); } @@ -282,7 +264,7 @@ void wxStatusBarGeneric::DrawFieldText(wxDC& dc, const wxRect& rect, int i, int // draw the text dc.DrawText(text, xpos, ypos); - + if (ellmode == (wxEllipsizeMode)-1) dc.DestroyClippingRegion(); } @@ -341,7 +323,7 @@ void wxStatusBarGeneric::DrawField(wxDC& dc, int i, int textHeight) bool wxStatusBarGeneric::GetFieldRect(int n, wxRect& rect) const { wxCHECK_MSG( (n >= 0) && ((size_t)n < m_panes.GetCount()), false, - _T("invalid status bar field index") ); + wxT("invalid status bar field index") ); if (m_widthsAbs.IsEmpty()) return false; @@ -365,7 +347,7 @@ int wxStatusBarGeneric::GetFieldFromPoint(const wxPoint& pt) const // NOTE: we explicitely don't take in count the borders since they are only // useful when rendering the status text, not for hit-test computations - + if (pt.y <= 0 || pt.y >= m_lastClientHeight) return wxNOT_FOUND; @@ -374,7 +356,7 @@ int wxStatusBarGeneric::GetFieldFromPoint(const wxPoint& pt) const { if (pt.x > x && pt.x < x+m_widthsAbs[i]) return i; - + x += m_widthsAbs[i]; }