#endif // wxUSE_VALIDATORS
// use the system default colours
- wxSystemSettings settings;
-
- m_backgroundColour = settings.GetSystemColour(wxSYS_COLOUR_BTNFACE);
- // m_foregroundColour = *wxBLACK; // TODO take this from sys settings too?
+ m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_BTNFACE);
m_foregroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOWTEXT);
- // GRG, changed Mar/2000
- m_font = settings.GetSystemFont(wxSYS_DEFAULT_GUI_FONT);
+ // don't set the font here for wxMSW as we don't call WM_SETFONT here and
+ // so the font is *not* really set - but calls to SetFont() later won't do
+ // anything because m_font appears to be already set!
+#ifndef __WXMSW__
+ m_font = wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT);
+#endif // __WXMSW__
+
// no style bits
m_exStyle =
m_windowStyle = 0;
xNew += posParent.x;
yNew += posParent.y;
- // move the centre of this window to this position
- Move(xNew, yNew);
+ // move the window to this position (keeping the old size but using
+ // SetSize() and not Move() to allow xNew and/or yNew to be -1)
+ SetSize(xNew, yNew, width, height, wxSIZE_ALLOW_MINUS_ONE);
}
// fits the window around the children
{
if ( GetChildren().GetCount() > 0 )
{
- SetClientSize(DoGetBestSize());
+ wxSize size = DoGetBestSize();
+
+ // for compatibility with the old versions and because it really looks
+ // slightly more pretty like this, add a pad
+ size.x += 7;
+ size.y += 14;
+
+ SetClientSize(size);
}
//else: do nothing if we have no children
}
node = node->GetNext() )
{
wxWindow *win = node->GetData();
- if ( win->IsTopLevel() || wxDynamicCast(win, wxStatusBar) )
+ if ( win->IsTopLevel() || wxDynamicCast(win, wxStatusBar) || !win->IsShown())
{
// dialogs and frames lie in different top level windows -
// don't deal with them here; as for the status bars, they
maxY = wy + wh;
}
- // leave a margin
- return wxSize(maxX + 7, maxY + 14);
+ return wxSize(maxX, maxY);
}
else
{
// don't try to set invalid font, always fall back to the default
const wxFont& fontOk = font.Ok() ? font : *wxSWISS_FONT;
- if ( (wxFont&)fontOk == m_font )
+ if ( fontOk == m_font )
{
// no change
return FALSE;