X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c09245191c60d23115eb213ed7c5a52bcb97539b..7f1de2b26e841b21110dadf3b9f2d543703eaf45:/src/generic/mdig.cpp diff --git a/src/generic/mdig.cpp b/src/generic/mdig.cpp index e86ba99ee9..e0b951be0e 100644 --- a/src/generic/mdig.cpp +++ b/src/generic/mdig.cpp @@ -6,7 +6,7 @@ // Created: 29/07/2002 // RCS-ID: $Id$ // Copyright: (c) Hans Van Leemputten -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // =========================================================================== @@ -17,7 +17,7 @@ // headers // --------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "mdig.h" #endif @@ -31,6 +31,7 @@ #ifndef WX_PRECOMP #include "wx/panel.h" #include "wx/menu.h" + #include "wx/intl.h" #endif //WX_PRECOMP #include "wx/generic/mdig.h" @@ -50,7 +51,9 @@ enum MDI_MENU_ID IMPLEMENT_DYNAMIC_CLASS(wxGenericMDIParentFrame, wxFrame) BEGIN_EVENT_TABLE(wxGenericMDIParentFrame, wxFrame) +#if wxUSE_MENUS EVT_MENU (-1, wxGenericMDIParentFrame::DoHandleMenu) +#endif END_EVENT_TABLE() wxGenericMDIParentFrame::wxGenericMDIParentFrame() @@ -108,11 +111,11 @@ bool wxGenericMDIParentFrame::Create(wxWindow *parent, #if wxUSE_MENUS m_pWindowMenu = new wxMenu; - m_pWindowMenu->Append(wxWINDOWCLOSE, _T("Cl&ose")); - m_pWindowMenu->Append(wxWINDOWCLOSEALL, _T("Close Al&l")); + m_pWindowMenu->Append(wxWINDOWCLOSE, _("Cl&ose")); + m_pWindowMenu->Append(wxWINDOWCLOSEALL, _("Close All")); m_pWindowMenu->AppendSeparator(); - m_pWindowMenu->Append(wxWINDOWNEXT, _T("&Next")); - m_pWindowMenu->Append(wxWINDOWPREV, _T("&Previouse")); + m_pWindowMenu->Append(wxWINDOWNEXT, _("&Next")); + m_pWindowMenu->Append(wxWINDOWPREV, _("&Previous")); #endif // wxUSE_MENUS } @@ -199,7 +202,7 @@ bool wxGenericMDIParentFrame::ProcessEvent(wxEvent& event) #if 0 /* This is sure to not give problems... */ && (event.GetEventType() == wxEVT_COMMAND_MENU_SELECTED || - event.GetEventType() == wxEVT_UPDATE_UI )) + event.GetEventType() == wxEVT_UPDATE_UI ) #else /* This was tested on wxMSW and worked... */ && event.GetEventObject() != m_pClientWindow @@ -208,8 +211,9 @@ bool wxGenericMDIParentFrame::ProcessEvent(wxEvent& event) event.GetEventType() == wxEVT_KILL_FOCUS || event.GetEventType() == wxEVT_CHILD_FOCUS || event.GetEventType() == wxEVT_COMMAND_SET_FOCUS || - event.GetEventType() == wxEVT_COMMAND_KILL_FOCUS )) + event.GetEventType() == wxEVT_COMMAND_KILL_FOCUS ) #endif + ) { res = m_pActiveChild->GetEventHandler()->ProcessEvent(event); } @@ -254,7 +258,7 @@ void wxGenericMDIParentFrame::ActivateNext() { if (m_pClientWindow && m_pClientWindow->GetSelection() != -1) { - int active = m_pClientWindow->GetSelection() + 1; + size_t active = m_pClientWindow->GetSelection() + 1; if (active >= m_pClientWindow->GetPageCount()) active = 0; @@ -290,7 +294,7 @@ void wxGenericMDIParentFrame::RemoveWindowMenu(wxMenuBar *pMenuBar) if (pMenuBar && m_pWindowMenu) { // Remove old window menu - int pos = pMenuBar->FindMenu(_T("&Window")); + int pos = pMenuBar->FindMenu(_("&Window")); if (pos != wxNOT_FOUND) { wxASSERT(m_pWindowMenu == pMenuBar->GetMenu(pos)); // DBG:: We're going to delete the wrong menu!!! @@ -303,14 +307,14 @@ void wxGenericMDIParentFrame::AddWindowMenu(wxMenuBar *pMenuBar) { if (pMenuBar && m_pWindowMenu) { - int pos = pMenuBar->FindMenu(_T("Help")); + int pos = pMenuBar->FindMenu(_("Help")); if (pos == wxNOT_FOUND) { - pMenuBar->Append(m_pWindowMenu, _T("&Window")); + pMenuBar->Append(m_pWindowMenu, _("&Window")); } else { - pMenuBar->Insert(pos, m_pWindowMenu, _T("&Window")); + pMenuBar->Insert(pos, m_pWindowMenu, _("&Window")); } } } @@ -415,7 +419,7 @@ wxGenericMDIChildFrame::~wxGenericMDIChildFrame() wxGenericMDIClientWindow *pClientWindow = pParentFrame->GetClientWindow(); // Remove page if still there - int pos; + size_t pos; for (pos = 0; pos < pClientWindow->GetPageCount(); pos++) { if (pClientWindow->GetPage(pos) == this) @@ -435,7 +439,7 @@ wxGenericMDIChildFrame::~wxGenericMDIChildFrame() } else { - if (pClientWindow->GetPageCount() - 1 >= 0) + if ((int)pClientWindow->GetPageCount() - 1 >= 0) pClientWindow->SetSelection(pClientWindow->GetPageCount() - 1); } } @@ -453,7 +457,7 @@ bool wxGenericMDIChildFrame::Create( wxGenericMDIParentFrame *parent, { wxGenericMDIClientWindow* pClientWindow = parent->GetClientWindow(); - wxASSERT_MSG((pClientWindow != (wxWindow*) NULL), "Missing MDI client window."); + wxASSERT_MSG((pClientWindow != (wxWindow*) NULL), wxT("Missing MDI client window.") ); wxPanel::Create(pClientWindow, id, wxDefaultPosition, size, style, name); @@ -514,7 +518,7 @@ void wxGenericMDIChildFrame::SetTitle(const wxString& title) if (pClientWindow != NULL) { - int pos; + size_t pos; for (pos = 0; pos < pClientWindow->GetPageCount(); pos++) { if (pClientWindow->GetPage(pos) == this) @@ -542,7 +546,7 @@ void wxGenericMDIChildFrame::Activate() if (pClientWindow != NULL) { - int pos; + size_t pos; for (pos = 0; pos < pClientWindow->GetPageCount(); pos++) { if (pClientWindow->GetPage(pos) == this) @@ -567,7 +571,7 @@ void wxGenericMDIChildFrame::OnMenuHighlight(wxMenuEvent& event) #endif // wxUSE_STATUSBAR } -void wxGenericMDIChildFrame::OnActivate(wxActivateEvent& event) +void wxGenericMDIChildFrame::OnActivate(wxActivateEvent& WXUNUSED(event)) { // Do mothing. } @@ -586,7 +590,7 @@ void wxGenericMDIChildFrame::OnSize(wxSizeEvent& WXUNUSED(event)) { // do we have _exactly_ one child? wxWindow *child = (wxWindow *)NULL; - for ( wxWindowList::Node *node = GetChildren().GetFirst(); + for ( wxWindowList::compatibility_iterator node = GetChildren().GetFirst(); node; node = node->GetNext() ) { @@ -710,7 +714,7 @@ bool wxGenericMDIClientWindow::CreateClient( wxGenericMDIParentFrame *parent, lo return FALSE; } -int wxGenericMDIClientWindow::SetSelection(int nPage) +int wxGenericMDIClientWindow::SetSelection(size_t nPage) { int oldSelection = wxNotebook::SetSelection(nPage); @@ -779,7 +783,7 @@ void wxGenericMDIClientWindow::OnSize(wxSizeEvent& event) { wxNotebook::OnSize(event); - int pos; + size_t pos; for (pos = 0; pos < GetPageCount(); pos++) { ((wxGenericMDIChildFrame *)GetPage(pos))->ApplyMDIChildFrameRect(); @@ -793,6 +797,16 @@ void wxGenericMDIClientWindow::OnSize(wxSizeEvent& event) #if wxUSE_GENERIC_MDI_AS_NATIVE +wxMDIChildFrame * wxMDIParentFrame::GetActiveChild() const + { + wxGenericMDIChildFrame *pGFrame = wxGenericMDIParentFrame::GetActiveChild(); + wxMDIChildFrame *pFrame = wxDynamicCast(pGFrame, wxMDIChildFrame); + + wxASSERT_MSG(!(pFrame == NULL && pGFrame != NULL), wxT("Active frame is class not derived from wxMDIChildFrame!")); + + return pFrame; + } + IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame, wxGenericMDIParentFrame) IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame, wxGenericMDIChildFrame) IMPLEMENT_DYNAMIC_CLASS(wxMDIClientWindow, wxGenericMDIClientWindow)