]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/mdi.cpp
several fixes
[wxWidgets.git] / src / gtk1 / mdi.cpp
index fead398b88356f157506bba554dbae6d8a8ee09d..1d8c9ffb6223ff603603272ded13c2fc31729e9e 100644 (file)
@@ -13,6 +13,8 @@
 #endif
 
 #include "wx/mdi.h"
+#include "wx/dialog.h"
+#include "wx/menu.h"
 #include "wx/gtk/win_gtk.h"
 
 //-----------------------------------------------------------------------------
@@ -170,10 +172,10 @@ void wxMDIParentFrame::OnSysColourChanged( wxSysColourChangedEvent& WXUNUSED(eve
 // wxMDIChildFrame
 //-----------------------------------------------------------------------------
 
-IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame,wxPanel)
+IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame,wxFrame)
   
-BEGIN_EVENT_TABLE(wxMDIChildFrame, wxPanel)
-  EVT_CLOSE(wxMDIChildFrame::OnCloseWindow)
+BEGIN_EVENT_TABLE(wxMDIChildFrame, wxFrame)
+  EVT_ACTIVATE(wxMDIChildFrame::OnActivate)
 END_EVENT_TABLE()
 
 wxMDIChildFrame::wxMDIChildFrame(void)
@@ -212,25 +214,19 @@ bool wxMDIChildFrame::Create( wxMDIParentFrame *parent,
       long style, const wxString& name )
 {
   m_title = title;
-  return wxPanel::Create( parent->GetClientWindow(), id, wxDefaultPosition, size, style, name );
+  return wxWindow::Create( parent->GetClientWindow(), id, wxDefaultPosition, size, style, name );
 };
 
-void wxMDIChildFrame::OnCloseWindow( wxCloseEvent &event )
+void wxMDIChildFrame::GetClientSize( int *width, int *height ) const
 {
-    if ( GetEventHandler()->OnClose() || event.GetForce())
-    {
-        this->Destroy();
-    }
-};
+  wxWindow::GetClientSize( width, height );
+}
 
-bool wxMDIChildFrame::Destroy(void)
+void wxMDIChildFrame::AddChild( wxWindow *child )
 {
-  if (!wxPendingDelete.Member(this))
-    wxPendingDelete.Append(this);
-
-  return TRUE;
+  wxWindow::AddChild( child );
 }
-
+  
 static void SetInvokingWindow( wxMenu *menu, wxWindow *win )
 {
   menu->SetInvokingWindow( win );
@@ -271,10 +267,19 @@ void wxMDIChildFrame::SetMenuBar( wxMenuBar *menu_bar )
   }
 };
 
+wxMenuBar *wxMDIChildFrame::GetMenuBar()
+{
+  return m_menuBar;
+};
+
 void wxMDIChildFrame::Activate(void)
 {
 };
 
+void wxMDIChildFrame::OnActivate( wxActivateEvent &WXUNUSED(event) )
+{
+};
+
 //-----------------------------------------------------------------------------
 // wxMDIClientWindow
 //-----------------------------------------------------------------------------
@@ -341,6 +346,8 @@ void wxMDIClientWindow::AddChild( wxWindow *child )
   mdi_child->m_page = (GtkNotebookPage*) (g_list_last(GTK_NOTEBOOK(m_widget)->children)->data);
     
   gtk_notebook_set_page( GTK_NOTEBOOK(m_widget), m_children.Number()-1 );
+  
+  gtk_page_change_callback( NULL, mdi_child->m_page, 0, this );
 };