- // avoid recursions
- if (m_resizing) return;
- m_resizing = true;
-
- if ( m_wxwindow == NULL ) return;
-
- /* wxMDIChildFrame derives from wxFrame but it _is_ a wxWindow as it uses
- wxWindow::Create to create it's GTK equivalent. m_mainWidget is only
- set in wxFrame::Create so it is used to check what kind of frame we
- have here. if m_mainWidget is NULL it is a wxMDIChildFrame and so we
- skip the part which handles m_frameMenuBar, m_frameToolBar and (most
- importantly) m_mainWidget */
-
- int minWidth = GetMinWidth(),
- minHeight = GetMinHeight(),
- maxWidth = GetMaxWidth(),
- maxHeight = GetMaxHeight();
-
-#ifdef __WXGPE__
- // GPE's window manager doesn't like size hints
- // at all, esp. when the user has to use the
- // virtual keyboard.
- minWidth = -1;
- minHeight = -1;
- maxWidth = -1;
- maxHeight = -1;
-#endif
-
- if ((minWidth != -1) && (m_width < minWidth)) m_width = minWidth;
- if ((minHeight != -1) && (m_height < minHeight)) m_height = minHeight;
- if ((maxWidth != -1) && (m_width > maxWidth)) m_width = maxWidth;
- if ((maxHeight != -1) && (m_height > maxHeight)) m_height = maxHeight;
-
- if (m_mainWidget)
- {
- // m_mainWidget holds the menubar, the toolbar and the client area,
- // which is represented by m_wxwindow.
- int client_x = m_miniEdge;
- int client_y = m_miniEdge + m_miniTitle;
- int client_w = m_width - 2*m_miniEdge;
- int client_h = m_height - 2*m_miniEdge - m_miniTitle;
- if (client_w < 0)
- client_w = 0;
- if (client_h < 0)
- client_h = 0;
-
- // Let the parent perform the resize
- gtk_pizza_set_size( GTK_PIZZA(m_mainWidget),
- m_wxwindow,
- client_x, client_y, client_w, client_h );
- }
- else
- {
- // If there is no m_mainWidget between m_widget and m_wxwindow there
- // is no need to set the size or position of m_wxwindow.
- }
-
- m_sizeSet = true;
-
- // send size event to frame
- wxSizeEvent event( wxSize(m_width,m_height), GetId() );
- event.SetEventObject( this );
- GetEventHandler()->ProcessEvent( event );
-
- m_resizing = false;