diff --git a/samples/mdi/mdi.cpp b/samples/mdi/mdi.cpp index 1b1cf2f01e..988afa95ae 100644 --- a/samples/mdi/mdi.cpp +++ b/samples/mdi/mdi.cpp @@ -80,6 +80,7 @@ END_EVENT_TABLE() BEGIN_EVENT_TABLE(MyChild, wxMDIChildFrame) EVT_MENU(MDI_CHILD_QUIT, MyChild::OnQuit) EVT_MENU(MDI_REFRESH, MyChild::OnRefresh) + EVT_MENU(MDI_CHANGE_TITLE, MyChild::OnChangeTitle) EVT_CLOSE(MyChild::OnClose) END_EVENT_TABLE() @@ -233,8 +234,8 @@ void MyFrame::OnNewWindow(wxCommandEvent& WXUNUSED(event) ) wxMenu *option_menu = new wxMenu; - // Dummy option option_menu->Append(MDI_REFRESH, "&Refresh picture"); + option_menu->Append(MDI_CHANGE_TITLE, "Change &title..."); wxMenu *help_menu = new wxMenu; help_menu->Append(MDI_ABOUT, "&About"); @@ -415,12 +416,27 @@ void MyChild::OnQuit(wxCommandEvent& WXUNUSED(event)) Close(TRUE); } -void MyChild::OnRefresh(wxCommandEvent& event) +void MyChild::OnRefresh(wxCommandEvent& WXUNUSED(event)) { if ( canvas ) canvas->Refresh(); } +void MyChild::OnChangeTitle(wxCommandEvent& WXUNUSED(event)) +{ + static wxString s_title = _T("Canvas Frame"); + + wxString title = wxGetTextFromUser(_T("Enter the new title for MDI child"), + _T("MDI sample question"), + s_title, + this); + if ( !title ) + return; + + s_title = title; + SetTitle(s_title); +} + void MyChild::OnActivate(wxActivateEvent& event) { if ( event.GetActive() && canvas ) diff --git a/src/gtk/mdi.cpp b/src/gtk/mdi.cpp index 47447fa95f..76b9f23320 100644 --- a/src/gtk/mdi.cpp +++ b/src/gtk/mdi.cpp @@ -406,6 +406,18 @@ void wxMDIChildFrame::OnMenuHighlight( wxMenuEvent& 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_page->child, title.mbc_str()); +} + //----------------------------------------------------------------------------- // "size_allocate" //----------------------------------------------------------------------------- diff --git a/src/gtk1/mdi.cpp b/src/gtk1/mdi.cpp index 47447fa95f..76b9f23320 100644 --- a/src/gtk1/mdi.cpp +++ b/src/gtk1/mdi.cpp @@ -406,6 +406,18 @@ void wxMDIChildFrame::OnMenuHighlight( wxMenuEvent& 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_page->child, title.mbc_str()); +} + //----------------------------------------------------------------------------- // "size_allocate" //-----------------------------------------------------------------------------