From 68d02db3ed88ffbb043650af1060260bc5aa93bc Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 10 Jan 2002 23:58:31 +0000 Subject: [PATCH] moved toolbar adjustments for the client size from wxTLWMSW to wxFrameMSW to fix problems in wxUniv git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13495 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/msw/toplevel.h | 4 ---- src/msw/frame.cpp | 13 +++++++++++++ src/msw/toplevel.cpp | 31 ++----------------------------- 3 files changed, 15 insertions(+), 33 deletions(-) diff --git a/include/wx/msw/toplevel.h b/include/wx/msw/toplevel.h index f6a42ff4b7..1bbcc2dcaa 100644 --- a/include/wx/msw/toplevel.h +++ b/include/wx/msw/toplevel.h @@ -88,10 +88,6 @@ protected: // common part of Iconize(), Maximize() and Restore() void DoShowWindow(int nShowCmd); - // implement the geometry-related methods for a top level window - virtual void DoSetClientSize(int width, int height); - virtual void DoGetClientSize(int *width, int *height) const; - // get the MSW window flags corresponding to wxWindows ones // // the functions returns the flags (WS_XXX) directly and puts the ext diff --git a/src/msw/frame.cpp b/src/msw/frame.cpp index 76370db434..1bf777979b 100644 --- a/src/msw/frame.cpp +++ b/src/msw/frame.cpp @@ -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 ) diff --git a/src/msw/toplevel.cpp b/src/msw/toplevel.cpp index 9aacc56017..5a6f77cf95 100644 --- a/src/msw/toplevel.cpp +++ b/src/msw/toplevel.cpp @@ -170,8 +170,8 @@ long wxTopLevelWindowMSW::MSWGetCreateWindowFlags(long *exflags) const *exflags |= WS_EX_TOPMOST; #ifdef __WIN32__ - if ( m_exStyle & wxFRAME_EX_CONTEXTHELP ) - *exflags |= WS_EX_CONTEXTHELP; + if ( m_exStyle & wxFRAME_EX_CONTEXTHELP ) + *exflags |= WS_EX_CONTEXTHELP; #endif // __WIN32__ } @@ -386,33 +386,6 @@ wxTopLevelWindowMSW::~wxTopLevelWindowMSW() } } -// ---------------------------------------------------------------------------- -// wxTopLevelWindowMSW client size -// ---------------------------------------------------------------------------- - -void wxTopLevelWindowMSW::DoSetClientSize(int width, int height) -{ - // call GetClientAreaOrigin() to take the toolbar into account - wxPoint pt = GetClientAreaOrigin(); - width += pt.x; - height += pt.y; - - wxWindow::DoSetClientSize(width, height); -} - -void wxTopLevelWindowMSW::DoGetClientSize(int *x, int *y) const -{ - wxWindow::DoGetClientSize(x, y); - - wxPoint pt = GetClientAreaOrigin(); - - if ( x ) - *x -= pt.x; - - if ( y ) - *y -= pt.y; -} - // ---------------------------------------------------------------------------- // wxTopLevelWindowMSW showing // ---------------------------------------------------------------------------- -- 2.45.2