#if wxUSE_STATUSBAR
#ifndef WX_PRECOMP
+ #include "wx/settings.h"
+ #include "wx/dcclient.h"
#endif
#include "wx/statusbr.h"
+#include "wx/toplevel.h"
#include "wx/univ/renderer.h"
wxRect wxStatusBarUniv::GetTotalFieldRect(wxCoord *borderBetweenFields)
{
- // determine the space we have for the fields
- wxSize sizeBorders = m_renderer->GetStatusBarBorders(borderBetweenFields);
-
wxRect rect = GetClientRect();
// no, don't do this - the borders are meant to be inside this rect
+ // wxSize sizeBorders =
+ m_renderer->GetStatusBarBorders(borderBetweenFields);
//rect.Deflate(sizeBorders.x, sizeBorders.y);
// recalc the field widths if needed
// prepare the DC
wxDC& dc = renderer->GetDC();
- dc.SetFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT));
+ dc.SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
// do draw the fields
int flags = IsEnabled() ? 0 : wxCONTROL_DISABLED;
if ( IsExposed(rect) )
{
+ wxTopLevelWindow *parentTLW = wxDynamicCast(GetParent(), wxTopLevelWindow);
+
// the size grip may be drawn only on the last field and only if we
// have the corresponding style and even then only if we really can
// resize this frame
if ( n == m_nFields - 1 &&
HasFlag(wxST_SIZEGRIP) &&
- GetParent()->HasFlag(wxRESIZE_BORDER) )
+ GetParent()->HasFlag(wxRESIZE_BORDER) &&
+ parentTLW && !parentTLW->IsMaximized() )
{
// NB: we use wxCONTROL_ISDEFAULT for this because it doesn't
// have any meaning for the status bar otherwise anyhow
void wxStatusBarUniv::SetFieldsCount(int number, const int *widths)
{
- wxStatusBarBase::SetFieldsCount(number, widths);
-
m_statusText.SetCount(number);
+ wxStatusBarBase::SetFieldsCount(number, widths);
m_widthsAbs.Empty();
}
wxCoord wxStatusBarUniv::GetHeight() const
{
wxClientDC dc(wxConstCast(this, wxStatusBarUniv));
- dc.SetFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT));
+ dc.SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
return dc.GetCharHeight() + 2*GetBorderY();
}