X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d4597e138eff53fccbcb41259e8cb7ab2db3bab9..c60ba92d097bd49e204f140f22ade84a1b6bc38c:/src/msw/frame.cpp diff --git a/src/msw/frame.cpp b/src/msw/frame.cpp index 814f3bd254..920e95879b 100644 --- a/src/msw/frame.cpp +++ b/src/msw/frame.cpp @@ -78,7 +78,7 @@ BEGIN_EVENT_TABLE(wxFrame, wxFrameBase) EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged) END_EVENT_TABLE() -IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow) +IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxTopLevelWindow) // ============================================================================ // implementation @@ -128,7 +128,7 @@ bool wxFrame::Create(wxWindow *parent, if ( !wxTopLevelWindow::Create(parent, id, title, pos, size, style, name) ) return FALSE; - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE)); + SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE)); wxModelessWindows.Append(this); @@ -157,6 +157,11 @@ void wxFrame::DoSetClientSize(int width, int height) } #endif // wxUSE_STATUSBAR + // call GetClientAreaOrigin() to take the toolbar into account + wxPoint pt = GetClientAreaOrigin(); + width += pt.x; + height += pt.y; + wxTopLevelWindow::DoSetClientSize(width, height); } @@ -165,6 +170,14 @@ void wxFrame::DoGetClientSize(int *x, int *y) const { wxTopLevelWindow::DoGetClientSize(x, y); + // account for the possible toolbar + wxPoint pt = GetClientAreaOrigin(); + if ( x ) + *x -= pt.x; + + if ( y ) + *y -= pt.y; + #if wxUSE_STATUSBAR // adjust client area height to take the status bar into account if ( y ) @@ -294,7 +307,7 @@ void wxFrame::InternalSetMenuBar() // Responds to colour changes, and passes event on to children. void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event) { - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE)); + SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE)); Refresh(); #if wxUSE_STATUSBAR