+ return wxWindow::Create( parent->GetClientWindow(), id, wxDefaultPosition, size, style, name );
+}
+
+void wxMDIChildFrame::DoSetSize( int x, int y, int width, int height, int sizeFlags )
+{
+ wxWindow::DoSetSize( x, y, width, height, sizeFlags );
+}
+
+void wxMDIChildFrame::DoSetClientSize(int width, int height)
+{
+ wxWindow::DoSetClientSize( width, height );
+}
+
+void wxMDIChildFrame::DoGetClientSize( int *width, int *height ) const
+{
+ wxWindow::DoGetClientSize( width, height );
+}
+
+void wxMDIChildFrame::AddChild( wxWindowBase *child )
+{
+ wxWindow::AddChild(child);
+}
+
+void wxMDIChildFrame::SetMenuBar( wxMenuBar *menu_bar )
+{
+ wxASSERT_MSG( m_menuBar == NULL, wxT("Only one menubar allowed") );
+
+ m_menuBar = menu_bar;
+
+ if (m_menuBar)
+ {
+ wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)m_parent->GetParent();
+
+ m_menuBar->SetParent( mdi_frame );
+
+ /* insert the invisible menu bar into the _parent_ mdi frame */
+ gtk_pizza_put( GTK_PIZZA(mdi_frame->m_mainWidget),
+ m_menuBar->m_widget,
+ 0, 0, mdi_frame->m_width, wxMENU_HEIGHT );
+ }
+}
+
+wxMenuBar *wxMDIChildFrame::GetMenuBar() const
+{
+ return m_menuBar;
+}
+
+void wxMDIChildFrame::Activate()
+{
+ wxMDIParentFrame* parent = (wxMDIParentFrame*) GetParent();
+ GtkNotebook* notebook = GTK_NOTEBOOK(parent->m_widget);
+ gint pageno = gtk_notebook_page_num( notebook, m_widget );
+ gtk_notebook_set_page( notebook, pageno );
+}
+
+void wxMDIChildFrame::OnActivate( wxActivateEvent& WXUNUSED(event) )
+{
+}
+
+void wxMDIChildFrame::OnMenuHighlight( wxMenuEvent& event )
+{
+#if wxUSE_STATUSBAR
+ wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)m_parent->GetParent();
+ if ( !ShowMenuHelp(mdi_frame->GetStatusBar(), event.GetMenuId()) )
+ {
+ // we don't have any help text for this item, but may be the MDI frame
+ // does?
+ mdi_frame->OnMenuHighlight(event);
+ }
+#endif // wxUSE_STATUSBAR
+}
+
+void wxMDIChildFrame::SetTitle( const wxString &title )
+{
+ if ( title == m_title )
+ return;
+
+ m_title = title;
+
+ wxMDIParentFrame* parent = (wxMDIParentFrame*) GetParent();
+ GtkNotebook* notebook = GTK_NOTEBOOK(parent->m_widget);
+ gtk_notebook_set_tab_label_text(notebook, m_widget, wxGTK_CONV( title ) );
+}
+
+//-----------------------------------------------------------------------------
+// "size_allocate"
+//-----------------------------------------------------------------------------
+
+static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win )