From 838e6ed707632e9647ef5e463efb9499f82374b8 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 28 Jan 2009 09:01:44 +0000 Subject: [PATCH] no real changes, just small cleanup, in particular use more consistent variable names git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58477 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/mdi.cpp | 82 +++++++++++++++++++++++++++++-------------------- 1 file changed, 48 insertions(+), 34 deletions(-) diff --git a/src/msw/mdi.cpp b/src/msw/mdi.cpp index 2d6109b3db..af398a3de6 100644 --- a/src/msw/mdi.cpp +++ b/src/msw/mdi.cpp @@ -55,13 +55,19 @@ extern wxMenu *wxCurrentPopupMenu; extern void wxRemoveHandleAssociation(wxWindow *win); +namespace +{ + // --------------------------------------------------------------------------- // constants // --------------------------------------------------------------------------- // This range gives a maximum of 500 MDI children. Should be enough :-) -static const int wxFIRST_MDI_CHILD = 4100; -static const int wxLAST_MDI_CHILD = 4600; +const int wxFIRST_MDI_CHILD = 4100; +const int wxLAST_MDI_CHILD = 4600; + +// The MDI "Window" menu label +const char *WINDOW_MENU_LABEL = gettext_noop("&Window"); // --------------------------------------------------------------------------- // private functions @@ -69,29 +75,31 @@ static const int wxLAST_MDI_CHILD = 4600; // set the MDI menus (by sending the WM_MDISETMENU message) and update the menu // of the parent of win (which is supposed to be the MDI client window) -static void MDISetMenu(wxWindow *win, HMENU hmenuFrame, HMENU hmenuWindow); +void MDISetMenu(wxWindow *win, HMENU hmenuFrame, HMENU hmenuWindow); // insert the window menu (subMenu) into menu just before "Help" submenu or at // the very end if not found -static void MDIInsertWindowMenu(wxWindow *win, WXHMENU menu, HMENU subMenu); +void MDIInsertWindowMenu(wxWindow *win, WXHMENU hMenu, HMENU subMenu); // Remove the window menu -static void MDIRemoveWindowMenu(wxWindow *win, WXHMENU menu); +void MDIRemoveWindowMenu(wxWindow *win, WXHMENU hMenu); // unpack the parameters of WM_MDIACTIVATE message -static void UnpackMDIActivate(WXWPARAM wParam, WXLPARAM lParam, - WXWORD *activate, WXHWND *hwndAct, WXHWND *hwndDeact); +void UnpackMDIActivate(WXWPARAM wParam, WXLPARAM lParam, + WXWORD *activate, WXHWND *hwndAct, WXHWND *hwndDeact); // return the HMENU of the MDI menu // // this function works correctly even when we don't have a window menu and just // returns 0 then -static inline HMENU GetMDIWindowMenu(wxMDIParentFrame *frame) +inline HMENU GetMDIWindowMenu(wxMDIParentFrame *frame) { wxMenu *menu = frame->GetWindowMenu(); return menu ? GetHmenuOf(menu) : 0; } +} // anonymous namespace + // =========================================================================== // implementation // =========================================================================== @@ -1406,10 +1414,13 @@ void wxMDIChildFrame::OnIdle(wxIdleEvent& event) } // --------------------------------------------------------------------------- -// non member functions +// private helper functions // --------------------------------------------------------------------------- -static void MDISetMenu(wxWindow *win, HMENU hmenuFrame, HMENU hmenuWindow) +namespace +{ + +void MDISetMenu(wxWindow *win, HMENU hmenuFrame, HMENU hmenuWindow) { if ( hmenuFrame || hmenuWindow ) { @@ -1435,61 +1446,62 @@ static void MDISetMenu(wxWindow *win, HMENU hmenuFrame, HMENU hmenuWindow) ::DrawMenuBar(GetWinHwnd(parent)); } -static void MDIInsertWindowMenu(wxWindow *win, WXHMENU menu, HMENU subMenu) +void MDIInsertWindowMenu(wxWindow *win, WXHMENU hMenu, HMENU menuWin) { - // Try to insert Window menu in front of Help, otherwise append it. - HMENU hmenu = (HMENU)menu; + HMENU hmenu = (HMENU)hMenu; - if (subMenu) + if ( menuWin ) { + // Try to insert Window menu in front of Help, otherwise append it. int N = GetMenuItemCount(hmenu); - bool success = false; + bool inserted = false; for ( int i = 0; i < N; i++ ) { wxChar buf[256]; - int chars = GetMenuString(hmenu, i, buf, WXSIZEOF(buf), MF_BYPOSITION); - if ( chars == 0 ) + if ( !::GetMenuString(hmenu, i, buf, WXSIZEOF(buf), MF_BYPOSITION) ) { wxLogLastError(wxT("GetMenuString")); continue; } - wxString strBuf(buf); - if ( wxStripMenuCodes(strBuf) == wxGetStockLabel(wxID_HELP,false) ) + const wxString label = wxStripMenuCodes(buf); + if ( label == wxGetStockLabel(wxID_HELP, wxSTOCK_NOFLAGS) ) { - success = true; + inserted = true; ::InsertMenu(hmenu, i, MF_BYPOSITION | MF_POPUP | MF_STRING, - (UINT_PTR)subMenu, _("&Window").wx_str()); + (UINT_PTR)menuWin, + wxGetTranslation(WINDOW_MENU_LABEL).wx_str()); break; } } - if ( !success ) + if ( !inserted ) { ::AppendMenu(hmenu, MF_POPUP, - (UINT_PTR)subMenu, _("&Window").wx_str()); + (UINT_PTR)menuWin, + wxGetTranslation(WINDOW_MENU_LABEL).wx_str()); } } - MDISetMenu(win, hmenu, subMenu); + MDISetMenu(win, hmenu, menuWin); } -static void MDIRemoveWindowMenu(wxWindow *win, WXHMENU menu) +void MDIRemoveWindowMenu(wxWindow *win, WXHMENU hMenu) { - HMENU hMenu = (HMENU)menu; + HMENU hmenu = (HMENU)hMenu; - if ( hMenu ) + if ( hmenu ) { wxChar buf[1024]; - int N = ::GetMenuItemCount(hMenu); + int N = ::GetMenuItemCount(hmenu); for ( int i = 0; i < N; i++ ) { - if ( !::GetMenuString(hMenu, i, buf, WXSIZEOF(buf), MF_BYPOSITION) ) + if ( !::GetMenuString(hmenu, i, buf, WXSIZEOF(buf), MF_BYPOSITION) ) { // Ignore successful read of menu string with length 0 which - // occurs, for example, for a maximized MDI childs system menu + // occurs, for example, for a maximized MDI child system menu if ( ::GetLastError() != 0 ) { wxLogLastError(wxT("GetMenuString")); @@ -1498,9 +1510,9 @@ static void MDIRemoveWindowMenu(wxWindow *win, WXHMENU menu) continue; } - if ( wxStrcmp(buf, _("&Window")) == 0 ) + if ( wxStrcmp(buf, wxGetTranslation(WINDOW_MENU_LABEL)) == 0 ) { - if ( !::RemoveMenu(hMenu, i, MF_BYPOSITION) ) + if ( !::RemoveMenu(hmenu, i, MF_BYPOSITION) ) { wxLogLastError(wxT("RemoveMenu")); } @@ -1513,11 +1525,11 @@ static void MDIRemoveWindowMenu(wxWindow *win, WXHMENU menu) if ( win ) { // we don't change the windows menu, but we update the main one - MDISetMenu(win, hMenu, NULL); + MDISetMenu(win, hmenu, NULL); } } -static void UnpackMDIActivate(WXWPARAM wParam, WXLPARAM lParam, +void UnpackMDIActivate(WXWPARAM wParam, WXLPARAM lParam, WXWORD *activate, WXHWND *hwndAct, WXHWND *hwndDeact) { *activate = true; @@ -1525,4 +1537,6 @@ static void UnpackMDIActivate(WXWPARAM wParam, WXLPARAM lParam, *hwndDeact = (WXHWND)wParam; } +} // anonymous namespace + #endif // wxUSE_MDI && !defined(__WXUNIVERSAL__) -- 2.45.2