X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/87ff599d25a7401f620a2a413ac044f0e4803652..a76342da418c75ead546ce2025db24dad261d237:/src/generic/statusbr.cpp diff --git a/src/generic/statusbr.cpp b/src/generic/statusbr.cpp index 55eb58cc4f..3e8dc6024c 100644 --- a/src/generic/statusbr.cpp +++ b/src/generic/statusbr.cpp @@ -80,18 +80,20 @@ bool wxStatusBarGeneric::Create(wxWindow *parent, if ( !wxWindow::Create(parent, id, wxDefaultPosition, wxDefaultSize, style | wxTAB_TRAVERSAL, name) ) - return FALSE; + return false; // The status bar should have a themed background - SetThemeEnabled( TRUE ); + SetThemeEnabled( true ); // Don't wish this to be found as a child #ifndef __WXMAC__ parent->GetChildren().DeleteObject(this); #endif InitColours(); - - SetFont(m_defaultStatusBarFont); + +#ifdef __WXPM__ + SetFont(*wxSMALL_FONT); +#endif // Set the height according to the font and the border size wxClientDC dc(this); @@ -102,11 +104,29 @@ bool wxStatusBarGeneric::Create(wxWindow *parent, int height = (int)( (11*y)/10 + 2*GetBorderY()); - SetSize(-1, -1, -1, height); + SetSize(wxDefaultPosition.x, wxDefaultPosition.y, wxDefaultSize.x, height); SetFieldsCount(1); - return TRUE; + return true; +} + + +wxSize wxStatusBarGeneric::DoGetBestSize() const +{ + int width, height; + + // best width is the width of the parent + GetParent()->GetClientSize(&width, NULL); + + // best height is as calculated above in Create + wxClientDC dc((wxWindow*)this); + dc.SetFont(GetFont()); + wxCoord y; + dc.GetTextExtent(_T("X"), NULL, &y ); + height = (int)( (11*y)/10 + 2*GetBorderY()); + + return wxSize(width, height); } void wxStatusBarGeneric::SetFieldsCount(int number, const int *widths) @@ -141,7 +161,7 @@ void wxStatusBarGeneric::SetStatusText(const wxString& text, int number) wxRect rect; GetFieldRect(number, rect); - Refresh( TRUE, &rect ); + Refresh( true, &rect ); } } @@ -293,7 +313,7 @@ void wxStatusBarGeneric::DrawField(wxDC& dc, int i) // Get the position and size of the field's internal bounding rectangle bool wxStatusBarGeneric::GetFieldRect(int n, wxRect& rect) const { - wxCHECK_MSG( (n >= 0) && (n < m_nFields), FALSE, + wxCHECK_MSG( (n >= 0) && (n < m_nFields), false, _T("invalid status bar field index") ); // FIXME: workarounds for OS/2 bugs have nothing to do here (VZ) @@ -327,7 +347,7 @@ bool wxStatusBarGeneric::GetFieldRect(int n, wxRect& rect) const rect.width = m_widthsAbs[n] - 2*m_borderX; rect.height = height - 2*m_borderY; - return TRUE; + return true; } // Initialize colours @@ -350,23 +370,16 @@ void wxStatusBarGeneric::InitColours() SetBackgroundColour(vColour); vColour.Set(wxString("BLACK")); SetForegroundColour(vColour); - m_defaultStatusBarFont = *wxSMALL_FONT; #else m_mediumShadowPen = wxPen("GREY", 1, wxSOLID); m_hilightPen = wxPen("WHITE", 1, wxSOLID); #endif - -#ifndef __WXPM__ - m_defaultStatusBarFont = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); - SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE)); -#endif } // Responds to colour changes, and passes event on to children. void wxStatusBarGeneric::OnSysColourChanged(wxSysColourChangedEvent& event) { InitColours(); - Refresh(); // Propagate the event to the non-top-level children wxWindow::OnSysColourChanged(event); @@ -382,7 +395,7 @@ void wxStatusBarGeneric::SetMinHeight(int height) if ( height > (11*y)/10 ) { - SetSize(-1, -1, -1, height + 2*m_borderY); + SetSize(wxDefaultPosition.x, wxDefaultPosition.y, wxDefaultSize.x, height + 2*m_borderY); } } @@ -414,10 +427,10 @@ void wxStatusBarGeneric::OnLeftDown(wxMouseEvent& event) } else { - event.Skip( TRUE ); + event.Skip( true ); } #else - event.Skip( TRUE ); + event.Skip( true ); #endif } @@ -448,10 +461,10 @@ void wxStatusBarGeneric::OnRightDown(wxMouseEvent& event) } else { - event.Skip( TRUE ); + event.Skip( true ); } #else - event.Skip( TRUE ); + event.Skip( true ); #endif }