From 9d62ffe24ade09487bf221af20be02cb43238ac6 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Tue, 18 Apr 2000 09:47:09 +0000 Subject: [PATCH] fixes for dialogs whose parent is wxMDIFrame git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_2_BRANCH@7204 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/gtk/mdi.h | 75 ++++++++++++---------- include/wx/gtk1/mdi.h | 75 ++++++++++++---------- samples/mdi/mdi.cpp | 4 +- src/gtk/mdi.cpp | 141 +++++++++++++++++++----------------------- src/gtk1/mdi.cpp | 141 +++++++++++++++++++----------------------- 5 files changed, 212 insertions(+), 224 deletions(-) diff --git a/include/wx/gtk/mdi.h b/include/wx/gtk/mdi.h index 62d5cae314..08a518e3c2 100644 --- a/include/wx/gtk/mdi.h +++ b/include/wx/gtk/mdi.h @@ -1,10 +1,10 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: mdi.h +// Name: gtk/mdi.h // Purpose: // Author: Robert Roebling // Id: $Id$ // Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -45,12 +45,20 @@ extern const wxChar* wxStatusLineNameStr; class wxMDIParentFrame: public wxFrame { public: - wxMDIParentFrame(); - wxMDIParentFrame( wxWindow *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr ); + wxMDIParentFrame() { Init(); } + wxMDIParentFrame(wxWindow *parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, + const wxString& name = wxFrameNameStr) + { + Init(); + + (void)Create(parent, id, title, pos, size, style, name); + } + ~wxMDIParentFrame(void); bool Create( wxWindow *parent, wxWindowID id, const wxString& title, @@ -60,32 +68,31 @@ public: void GetClientSize(int *width, int *height) const; wxMDIChildFrame *GetActiveChild() const; - - wxMDIClientWindow *GetClientWindow() const; + + wxMDIClientWindow *GetClientWindow() const; virtual wxMDIClientWindow *OnCreateClient(); - + virtual void Cascade() {} virtual void Tile() {} virtual void ArrangeIcons() {} virtual void ActivateNext(); virtual void ActivatePrevious(); - void OnActivate( wxActivateEvent& event ); - void OnSysColourChanged( wxSysColourChangedEvent& event ); - - // implementation + // implementation wxMDIClientWindow *m_clientWindow; bool m_justInserted; virtual void GtkOnSize( int x, int y, int width, int height ); virtual void OnInternalIdle(); - + +protected: + void Init(); + private: friend class wxMDIChildFrame; - + DECLARE_DYNAMIC_CLASS(wxMDIParentFrame) - DECLARE_EVENT_TABLE() }; //----------------------------------------------------------------------------- @@ -105,7 +112,7 @@ public: wxWindowID id, const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxFrameNameStr ); - + virtual void SetMenuBar( wxMenuBar *menu_bar ); virtual wxMenuBar *GetMenuBar() const; @@ -113,11 +120,11 @@ public: virtual void AddChild( wxWindowBase *child ); virtual void Activate(); - + #if wxUSE_STATUSBAR // no status bars virtual wxStatusBar* CreateStatusBar( int WXUNUSED(number) = 1, - long WXUNUSED(style) = 1, + long WXUNUSED(style) = 1, wxWindowID WXUNUSED(id) = 1, const wxString& WXUNUSED(name) = wxEmptyString) { return (wxStatusBar*)NULL; } @@ -131,38 +138,38 @@ public: virtual void SetSizeHints( int WXUNUSED(minW), int WXUNUSED(minH), int WXUNUSED(maxW), int WXUNUSED(maxH), int WXUNUSED(incW), int WXUNUSED(incH) ) {} - + #if wxUSE_TOOLBAR // no toolbar bars - virtual wxToolBar* CreateToolBar( long WXUNUSED(style), wxWindowID WXUNUSED(id), + virtual wxToolBar* CreateToolBar( long WXUNUSED(style), wxWindowID WXUNUSED(id), const wxString& WXUNUSED(name) ) { return (wxToolBar*)NULL; } virtual wxToolBar *GetToolBar() const { return (wxToolBar*)NULL; } #endif - + // no icon void SetIcon( const wxIcon &icon ) { m_icon = icon; } - - // no title - void SetTitle( const wxString &title ) { m_title = title; } + + // no title + void SetTitle( const wxString &title ); wxString GetTitle() const { return m_title; } - + // no maximize etc virtual void Maximize( bool WXUNUSED(maximize) ) {} virtual void Restore() {} - + virtual bool IsTopLevel() const { return FALSE; } - + void OnActivate( wxActivateEvent& event ); void OnMenuHighlight( wxMenuEvent& event ); - + // implementation - + wxMenuBar *m_menuBar; GtkNotebookPage *m_page; bool m_justInserted; - + private: - DECLARE_EVENT_TABLE() + DECLARE_EVENT_TABLE() DECLARE_DYNAMIC_CLASS(wxMDIChildFrame) }; diff --git a/include/wx/gtk1/mdi.h b/include/wx/gtk1/mdi.h index 62d5cae314..08a518e3c2 100644 --- a/include/wx/gtk1/mdi.h +++ b/include/wx/gtk1/mdi.h @@ -1,10 +1,10 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: mdi.h +// Name: gtk/mdi.h // Purpose: // Author: Robert Roebling // Id: $Id$ // Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -45,12 +45,20 @@ extern const wxChar* wxStatusLineNameStr; class wxMDIParentFrame: public wxFrame { public: - wxMDIParentFrame(); - wxMDIParentFrame( wxWindow *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr ); + wxMDIParentFrame() { Init(); } + wxMDIParentFrame(wxWindow *parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, + const wxString& name = wxFrameNameStr) + { + Init(); + + (void)Create(parent, id, title, pos, size, style, name); + } + ~wxMDIParentFrame(void); bool Create( wxWindow *parent, wxWindowID id, const wxString& title, @@ -60,32 +68,31 @@ public: void GetClientSize(int *width, int *height) const; wxMDIChildFrame *GetActiveChild() const; - - wxMDIClientWindow *GetClientWindow() const; + + wxMDIClientWindow *GetClientWindow() const; virtual wxMDIClientWindow *OnCreateClient(); - + virtual void Cascade() {} virtual void Tile() {} virtual void ArrangeIcons() {} virtual void ActivateNext(); virtual void ActivatePrevious(); - void OnActivate( wxActivateEvent& event ); - void OnSysColourChanged( wxSysColourChangedEvent& event ); - - // implementation + // implementation wxMDIClientWindow *m_clientWindow; bool m_justInserted; virtual void GtkOnSize( int x, int y, int width, int height ); virtual void OnInternalIdle(); - + +protected: + void Init(); + private: friend class wxMDIChildFrame; - + DECLARE_DYNAMIC_CLASS(wxMDIParentFrame) - DECLARE_EVENT_TABLE() }; //----------------------------------------------------------------------------- @@ -105,7 +112,7 @@ public: wxWindowID id, const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxFrameNameStr ); - + virtual void SetMenuBar( wxMenuBar *menu_bar ); virtual wxMenuBar *GetMenuBar() const; @@ -113,11 +120,11 @@ public: virtual void AddChild( wxWindowBase *child ); virtual void Activate(); - + #if wxUSE_STATUSBAR // no status bars virtual wxStatusBar* CreateStatusBar( int WXUNUSED(number) = 1, - long WXUNUSED(style) = 1, + long WXUNUSED(style) = 1, wxWindowID WXUNUSED(id) = 1, const wxString& WXUNUSED(name) = wxEmptyString) { return (wxStatusBar*)NULL; } @@ -131,38 +138,38 @@ public: virtual void SetSizeHints( int WXUNUSED(minW), int WXUNUSED(minH), int WXUNUSED(maxW), int WXUNUSED(maxH), int WXUNUSED(incW), int WXUNUSED(incH) ) {} - + #if wxUSE_TOOLBAR // no toolbar bars - virtual wxToolBar* CreateToolBar( long WXUNUSED(style), wxWindowID WXUNUSED(id), + virtual wxToolBar* CreateToolBar( long WXUNUSED(style), wxWindowID WXUNUSED(id), const wxString& WXUNUSED(name) ) { return (wxToolBar*)NULL; } virtual wxToolBar *GetToolBar() const { return (wxToolBar*)NULL; } #endif - + // no icon void SetIcon( const wxIcon &icon ) { m_icon = icon; } - - // no title - void SetTitle( const wxString &title ) { m_title = title; } + + // no title + void SetTitle( const wxString &title ); wxString GetTitle() const { return m_title; } - + // no maximize etc virtual void Maximize( bool WXUNUSED(maximize) ) {} virtual void Restore() {} - + virtual bool IsTopLevel() const { return FALSE; } - + void OnActivate( wxActivateEvent& event ); void OnMenuHighlight( wxMenuEvent& event ); - + // implementation - + wxMenuBar *m_menuBar; GtkNotebookPage *m_page; bool m_justInserted; - + private: - DECLARE_EVENT_TABLE() + DECLARE_EVENT_TABLE() DECLARE_DYNAMIC_CLASS(wxMDIChildFrame) }; diff --git a/samples/mdi/mdi.cpp b/samples/mdi/mdi.cpp index 988afa95ae..423a2447be 100644 --- a/samples/mdi/mdi.cpp +++ b/samples/mdi/mdi.cpp @@ -235,7 +235,7 @@ void MyFrame::OnNewWindow(wxCommandEvent& WXUNUSED(event) ) wxMenu *option_menu = new wxMenu; option_menu->Append(MDI_REFRESH, "&Refresh picture"); - option_menu->Append(MDI_CHANGE_TITLE, "Change &title..."); + option_menu->Append(MDI_CHANGE_TITLE, "Change &title...\tCtrl-T"); wxMenu *help_menu = new wxMenu; help_menu->Append(MDI_ABOUT, "&About"); @@ -429,7 +429,7 @@ void MyChild::OnChangeTitle(wxCommandEvent& WXUNUSED(event)) wxString title = wxGetTextFromUser(_T("Enter the new title for MDI child"), _T("MDI sample question"), s_title, - this); + GetParent()->GetParent()); if ( !title ) return; diff --git a/src/gtk/mdi.cpp b/src/gtk/mdi.cpp index 76b9f23320..b87d71f753 100644 --- a/src/gtk/mdi.cpp +++ b/src/gtk/mdi.cpp @@ -47,13 +47,13 @@ extern wxList wxPendingDelete; // "switch_page" //----------------------------------------------------------------------------- -static void +static void gtk_mdi_page_change_callback( GtkNotebook *WXUNUSED(widget), GtkNotebookPage *page, - gint WXUNUSED(page_num), - wxMDIParentFrame *parent ) + gint WXUNUSED(page_num), + wxMDIParentFrame *parent ) { - if (g_isIdle) + if (g_isIdle) wxapp_install_idle_handler(); // send deactivate event to old child @@ -65,9 +65,9 @@ gtk_mdi_page_change_callback( GtkNotebook *WXUNUSED(widget), event1.SetEventObject( child); child->GetEventHandler()->ProcessEvent( event1 ); } - + // send activate event to new child - + wxMDIClientWindow *client_window = parent->GetClientWindow(); if (!client_window) return; @@ -79,16 +79,16 @@ gtk_mdi_page_change_callback( GtkNotebook *WXUNUSED(widget), { wxMDIChildFrame *child_frame = (wxMDIChildFrame *)node->Data(); if (child_frame->m_page == page) - { + { child = child_frame; - break; - } + break; + } node = node->Next(); } - + if (!child) return; - + wxActivateEvent event2( wxEVT_ACTIVATE, TRUE, child->GetId() ); event2.SetEventObject( child); child->GetEventHandler()->ProcessEvent( event2 ); @@ -100,33 +100,23 @@ gtk_mdi_page_change_callback( GtkNotebook *WXUNUSED(widget), IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame,wxFrame) -BEGIN_EVENT_TABLE(wxMDIParentFrame, wxFrame) -END_EVENT_TABLE() - -wxMDIParentFrame::wxMDIParentFrame() +void wxMDIParentFrame::Init() { m_justInserted = FALSE; m_clientWindow = (wxMDIClientWindow *) NULL; } -wxMDIParentFrame::wxMDIParentFrame( wxWindow *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name ) -{ - m_justInserted = FALSE; - m_clientWindow = (wxMDIClientWindow *) NULL; - Create( parent, id, title, pos, size, style, name ); -} - wxMDIParentFrame::~wxMDIParentFrame() { } -bool wxMDIParentFrame::Create( wxWindow *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name ) +bool wxMDIParentFrame::Create(wxWindow *parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style, + const wxString& name ) { wxFrame::Create( parent, id, title, pos, size, style, name ); @@ -150,8 +140,8 @@ void wxMDIParentFrame::GtkOnSize( int x, int y, int width, int height ) menu_bar->m_y = 0; menu_bar->m_width = m_width; menu_bar->m_height = wxMENU_HEIGHT; - gtk_pizza_set_size( GTK_PIZZA(m_mainWidget), - menu_bar->m_widget, + gtk_pizza_set_size( GTK_PIZZA(m_mainWidget), + menu_bar->m_widget, 0, 0, m_width, wxMENU_HEIGHT ); } @@ -179,31 +169,36 @@ void wxMDIParentFrame::OnInternalIdle() wxNode *node = m_clientWindow->GetChildren().First(); while (node) { - wxMDIChildFrame *child_frame = (wxMDIChildFrame *)node->Data(); - wxMenuBar *menu_bar = child_frame->m_menuBar; - if (child_frame->m_menuBar) + wxObject *child = node->Data(); + wxMDIChildFrame *child_frame = wxDynamicCast(child, wxMDIChildFrame); + if ( child_frame ) { - if (child_frame == active_child_frame) + wxMenuBar *menu_bar = child_frame->m_menuBar; + if ( menu_bar ) { - if (menu_bar->Show(TRUE)) - { - menu_bar->m_width = m_width; - menu_bar->m_height = wxMENU_HEIGHT; - gtk_pizza_set_size( GTK_PIZZA(m_mainWidget), - menu_bar->m_widget, - 0, 0, m_width, wxMENU_HEIGHT ); - menu_bar->SetInvokingWindow( child_frame ); - } - visible_child_menu = TRUE; + if (child_frame == active_child_frame) + { + if (menu_bar->Show(TRUE)) + { + menu_bar->m_width = m_width; + menu_bar->m_height = wxMENU_HEIGHT; + gtk_pizza_set_size( GTK_PIZZA(m_mainWidget), + menu_bar->m_widget, + 0, 0, m_width, wxMENU_HEIGHT ); + menu_bar->SetInvokingWindow( child_frame ); + } + visible_child_menu = TRUE; + } + else + { + if (menu_bar->Show(FALSE)) + { + menu_bar->UnsetInvokingWindow( child_frame ); + } + } } - else - { - if (menu_bar->Show(FALSE)) - { - menu_bar->UnsetInvokingWindow( child_frame ); - } - } } + node = node->Next(); } @@ -212,21 +207,21 @@ void wxMDIParentFrame::OnInternalIdle() (m_frameMenuBar->IsShown() == visible_child_menu)) { if (visible_child_menu) - { + { m_frameMenuBar->Show( FALSE ); - m_frameMenuBar->UnsetInvokingWindow( this ); - } - else - { + m_frameMenuBar->UnsetInvokingWindow( this ); + } + else + { m_frameMenuBar->Show( TRUE ); - m_frameMenuBar->SetInvokingWindow( this ); - - m_frameMenuBar->m_width = m_width; - m_frameMenuBar->m_height = wxMENU_HEIGHT; - gtk_pizza_set_size( GTK_PIZZA(m_mainWidget), - m_frameMenuBar->m_widget, - 0, 0, m_width, wxMENU_HEIGHT ); - } + m_frameMenuBar->SetInvokingWindow( this ); + + m_frameMenuBar->m_width = m_width; + m_frameMenuBar->m_height = wxMENU_HEIGHT; + gtk_pizza_set_size( GTK_PIZZA(m_mainWidget), + m_frameMenuBar->m_widget, + 0, 0, m_width, wxMENU_HEIGHT ); + } } } @@ -287,14 +282,6 @@ void wxMDIParentFrame::ActivatePrevious() gtk_notebook_prev_page( GTK_NOTEBOOK(m_clientWindow->m_widget) ); } -void wxMDIParentFrame::OnActivate( wxActivateEvent& WXUNUSED(event) ) -{ -} - -void wxMDIParentFrame::OnSysColourChanged( wxSysColourChangedEvent& WXUNUSED(event) ) -{ -} - //----------------------------------------------------------------------------- // wxMDIChildFrame //----------------------------------------------------------------------------- @@ -363,8 +350,8 @@ void wxMDIChildFrame::SetMenuBar( wxMenuBar *menu_bar ) 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, + gtk_pizza_put( GTK_PIZZA(mdi_frame->m_mainWidget), + m_menuBar->m_widget, 0, 0, mdi_frame->m_width, wxMENU_HEIGHT ); } } @@ -383,7 +370,7 @@ void wxMDIChildFrame::Activate() gtk_notebook_set_page( notebook, pageno ); #else // the only way I can see to do this under gtk+ 1.0.X would - // be to keep track of page numbers, start at first and + // be to keep track of page numbers, start at first and // do "next" enough times to get to this page number - messy // - J. Russell Smyth #endif @@ -492,7 +479,7 @@ bool wxMDIClientWindow::CreateClient( wxMDIParentFrame *parent, long style ) !CreateBase( parent, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, wxT("wxMDIClientWindow") )) { wxFAIL_MSG( wxT("wxMDIClientWindow creation failed") ); - return FALSE; + return FALSE; } m_widget = gtk_notebook_new(); diff --git a/src/gtk1/mdi.cpp b/src/gtk1/mdi.cpp index 76b9f23320..b87d71f753 100644 --- a/src/gtk1/mdi.cpp +++ b/src/gtk1/mdi.cpp @@ -47,13 +47,13 @@ extern wxList wxPendingDelete; // "switch_page" //----------------------------------------------------------------------------- -static void +static void gtk_mdi_page_change_callback( GtkNotebook *WXUNUSED(widget), GtkNotebookPage *page, - gint WXUNUSED(page_num), - wxMDIParentFrame *parent ) + gint WXUNUSED(page_num), + wxMDIParentFrame *parent ) { - if (g_isIdle) + if (g_isIdle) wxapp_install_idle_handler(); // send deactivate event to old child @@ -65,9 +65,9 @@ gtk_mdi_page_change_callback( GtkNotebook *WXUNUSED(widget), event1.SetEventObject( child); child->GetEventHandler()->ProcessEvent( event1 ); } - + // send activate event to new child - + wxMDIClientWindow *client_window = parent->GetClientWindow(); if (!client_window) return; @@ -79,16 +79,16 @@ gtk_mdi_page_change_callback( GtkNotebook *WXUNUSED(widget), { wxMDIChildFrame *child_frame = (wxMDIChildFrame *)node->Data(); if (child_frame->m_page == page) - { + { child = child_frame; - break; - } + break; + } node = node->Next(); } - + if (!child) return; - + wxActivateEvent event2( wxEVT_ACTIVATE, TRUE, child->GetId() ); event2.SetEventObject( child); child->GetEventHandler()->ProcessEvent( event2 ); @@ -100,33 +100,23 @@ gtk_mdi_page_change_callback( GtkNotebook *WXUNUSED(widget), IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame,wxFrame) -BEGIN_EVENT_TABLE(wxMDIParentFrame, wxFrame) -END_EVENT_TABLE() - -wxMDIParentFrame::wxMDIParentFrame() +void wxMDIParentFrame::Init() { m_justInserted = FALSE; m_clientWindow = (wxMDIClientWindow *) NULL; } -wxMDIParentFrame::wxMDIParentFrame( wxWindow *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name ) -{ - m_justInserted = FALSE; - m_clientWindow = (wxMDIClientWindow *) NULL; - Create( parent, id, title, pos, size, style, name ); -} - wxMDIParentFrame::~wxMDIParentFrame() { } -bool wxMDIParentFrame::Create( wxWindow *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name ) +bool wxMDIParentFrame::Create(wxWindow *parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style, + const wxString& name ) { wxFrame::Create( parent, id, title, pos, size, style, name ); @@ -150,8 +140,8 @@ void wxMDIParentFrame::GtkOnSize( int x, int y, int width, int height ) menu_bar->m_y = 0; menu_bar->m_width = m_width; menu_bar->m_height = wxMENU_HEIGHT; - gtk_pizza_set_size( GTK_PIZZA(m_mainWidget), - menu_bar->m_widget, + gtk_pizza_set_size( GTK_PIZZA(m_mainWidget), + menu_bar->m_widget, 0, 0, m_width, wxMENU_HEIGHT ); } @@ -179,31 +169,36 @@ void wxMDIParentFrame::OnInternalIdle() wxNode *node = m_clientWindow->GetChildren().First(); while (node) { - wxMDIChildFrame *child_frame = (wxMDIChildFrame *)node->Data(); - wxMenuBar *menu_bar = child_frame->m_menuBar; - if (child_frame->m_menuBar) + wxObject *child = node->Data(); + wxMDIChildFrame *child_frame = wxDynamicCast(child, wxMDIChildFrame); + if ( child_frame ) { - if (child_frame == active_child_frame) + wxMenuBar *menu_bar = child_frame->m_menuBar; + if ( menu_bar ) { - if (menu_bar->Show(TRUE)) - { - menu_bar->m_width = m_width; - menu_bar->m_height = wxMENU_HEIGHT; - gtk_pizza_set_size( GTK_PIZZA(m_mainWidget), - menu_bar->m_widget, - 0, 0, m_width, wxMENU_HEIGHT ); - menu_bar->SetInvokingWindow( child_frame ); - } - visible_child_menu = TRUE; + if (child_frame == active_child_frame) + { + if (menu_bar->Show(TRUE)) + { + menu_bar->m_width = m_width; + menu_bar->m_height = wxMENU_HEIGHT; + gtk_pizza_set_size( GTK_PIZZA(m_mainWidget), + menu_bar->m_widget, + 0, 0, m_width, wxMENU_HEIGHT ); + menu_bar->SetInvokingWindow( child_frame ); + } + visible_child_menu = TRUE; + } + else + { + if (menu_bar->Show(FALSE)) + { + menu_bar->UnsetInvokingWindow( child_frame ); + } + } } - else - { - if (menu_bar->Show(FALSE)) - { - menu_bar->UnsetInvokingWindow( child_frame ); - } - } } + node = node->Next(); } @@ -212,21 +207,21 @@ void wxMDIParentFrame::OnInternalIdle() (m_frameMenuBar->IsShown() == visible_child_menu)) { if (visible_child_menu) - { + { m_frameMenuBar->Show( FALSE ); - m_frameMenuBar->UnsetInvokingWindow( this ); - } - else - { + m_frameMenuBar->UnsetInvokingWindow( this ); + } + else + { m_frameMenuBar->Show( TRUE ); - m_frameMenuBar->SetInvokingWindow( this ); - - m_frameMenuBar->m_width = m_width; - m_frameMenuBar->m_height = wxMENU_HEIGHT; - gtk_pizza_set_size( GTK_PIZZA(m_mainWidget), - m_frameMenuBar->m_widget, - 0, 0, m_width, wxMENU_HEIGHT ); - } + m_frameMenuBar->SetInvokingWindow( this ); + + m_frameMenuBar->m_width = m_width; + m_frameMenuBar->m_height = wxMENU_HEIGHT; + gtk_pizza_set_size( GTK_PIZZA(m_mainWidget), + m_frameMenuBar->m_widget, + 0, 0, m_width, wxMENU_HEIGHT ); + } } } @@ -287,14 +282,6 @@ void wxMDIParentFrame::ActivatePrevious() gtk_notebook_prev_page( GTK_NOTEBOOK(m_clientWindow->m_widget) ); } -void wxMDIParentFrame::OnActivate( wxActivateEvent& WXUNUSED(event) ) -{ -} - -void wxMDIParentFrame::OnSysColourChanged( wxSysColourChangedEvent& WXUNUSED(event) ) -{ -} - //----------------------------------------------------------------------------- // wxMDIChildFrame //----------------------------------------------------------------------------- @@ -363,8 +350,8 @@ void wxMDIChildFrame::SetMenuBar( wxMenuBar *menu_bar ) 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, + gtk_pizza_put( GTK_PIZZA(mdi_frame->m_mainWidget), + m_menuBar->m_widget, 0, 0, mdi_frame->m_width, wxMENU_HEIGHT ); } } @@ -383,7 +370,7 @@ void wxMDIChildFrame::Activate() gtk_notebook_set_page( notebook, pageno ); #else // the only way I can see to do this under gtk+ 1.0.X would - // be to keep track of page numbers, start at first and + // be to keep track of page numbers, start at first and // do "next" enough times to get to this page number - messy // - J. Russell Smyth #endif @@ -492,7 +479,7 @@ bool wxMDIClientWindow::CreateClient( wxMDIParentFrame *parent, long style ) !CreateBase( parent, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, wxT("wxMDIClientWindow") )) { wxFAIL_MSG( wxT("wxMDIClientWindow creation failed") ); - return FALSE; + return FALSE; } m_widget = gtk_notebook_new();