bool wxFrame::MSWOnPaint(void)
{
-#if DEBUG > 1
+#if WXDEBUG > 1
wxDebugMsg("wxFrameWnd::OnPaint %d\n", handle);
#endif
RECT rect;
void wxFrame::MSWOnSize(int x, int y, WXUINT id)
{
-#if DEBUG > 1
+#if WXDEBUG > 1
wxDebugMsg("wxFrameWnd::OnSize %d\n", m_hWnd);
#endif
switch (id)
bool wxFrame::MSWOnClose(void)
{
-#if DEBUG > 1
+#if WXDEBUG > 1
wxDebugMsg("wxFrameWnd::OnClose %d\n", handle);
#endif
return Close();
bool wxFrame::MSWOnCommand(WXWORD id, WXWORD cmd, WXHWND control)
{
-#if DEBUG > 1
+#if WXDEBUG > 1
wxDebugMsg("wxFrameWnd::OnCommand %d\n", handle);
#endif
if (cmd == 0 || cmd == 1 ) // Can be either a menu command or an accelerator.
// 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 DEBUG > 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
if (!child->IsKindOf(CLASSINFO(wxFrame)) &&
!child->IsKindOf(CLASSINFO(wxDialog)))
{
-#if DEBUG > 1
+#if WXDEBUG > 1
wxDebugMsg("wxFrame::OnActivate: about to set the child's focus.\n");
#endif
child->SetFocus();