From: Vadim Zeitlin Date: Sun, 12 Jul 1998 21:55:31 +0000 (+0000) Subject: wxFrame::OnSize() slightly optimized (the behaviour is the same as before) X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/cd70477bbdadcf28967ac62d3b7c6fb845f0a243 wxFrame::OnSize() slightly optimized (the behaviour is the same as before) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@239 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/msw/frame.cpp b/src/msw/frame.cpp index a746bf4da8..8adcf37a44 100644 --- a/src/msw/frame.cpp +++ b/src/msw/frame.cpp @@ -749,47 +749,36 @@ bool wxFrame::MSWProcessMessage(WXMSG* pMsg) // resize to client rectangle size void wxFrame::OnSize(wxSizeEvent& event) { - // Search for a child which is a subwindow, not another frame. + // if we're using constraints - do use them + #if USE_CONSTRAINTS + if ( GetAutoLayout() ) { + Layout(); + return; + } + #endif + + // do we have _exactly_ one child? wxWindow *child = NULL; - // Count the number of _subwindow_ children - int noChildren = 0; - for(wxNode *node = GetChildren()->First(); node; node = node->Next()) + for ( wxNode *node = GetChildren()->First(); node; node = node->Next() ) { wxWindow *win = (wxWindow *)node->Data(); - if (!win->IsKindOf(CLASSINFO(wxFrame)) && !win->IsKindOf(CLASSINFO(wxDialog)) - && (win != GetStatusBar())) + if ( !win->IsKindOf(CLASSINFO(wxFrame)) && + !win->IsKindOf(CLASSINFO(wxDialog)) && + (win != GetStatusBar()) ) { + if ( child ) + return; // it's our second subwindow - nothing to do child = win; - noChildren ++; } } - // If not one child, call the Layout function if compiled in - if (!child || (noChildren > 1) -#if USE_CONSTRAINTS - || GetAutoLayout() -#endif - ) - { -#if USE_CONSTRAINTS - if (GetAutoLayout()) - Layout(); -#endif - return; - } - - if (child) - { + if ( child ) { + // we have exactly one child - set it's size to fill the whole frame int client_x, client_y; -#if WXDEBUG > 1 - wxDebugMsg("wxFrame::OnSize: about to set the child's size.\n"); -#endif - GetClientSize(&client_x, &client_y); child->SetSize(0, 0, client_x, client_y); } - } // Default activation behaviour - set the focus for the first child