git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58477
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
extern void wxRemoveHandleAssociation(wxWindow *win);
extern void wxRemoveHandleAssociation(wxWindow *win);
// ---------------------------------------------------------------------------
// constants
// ---------------------------------------------------------------------------
// This range gives a maximum of 500 MDI children. Should be enough :-)
// ---------------------------------------------------------------------------
// 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
// ---------------------------------------------------------------------------
// private functions
// 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)
// 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
// 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
// Remove the window menu
-static void MDIRemoveWindowMenu(wxWindow *win, WXHMENU menu);
+void MDIRemoveWindowMenu(wxWindow *win, WXHMENU hMenu);
// unpack the parameters of WM_MDIACTIVATE message
// 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
// 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;
}
{
wxMenu *menu = frame->GetWindowMenu();
return menu ? GetHmenuOf(menu) : 0;
}
+} // anonymous namespace
+
// ===========================================================================
// implementation
// ===========================================================================
// ===========================================================================
// implementation
// ===========================================================================
}
// ---------------------------------------------------------------------------
}
// ---------------------------------------------------------------------------
+// private helper functions
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
-static void MDISetMenu(wxWindow *win, HMENU hmenuFrame, HMENU hmenuWindow)
+namespace
+{
+
+void MDISetMenu(wxWindow *win, HMENU hmenuFrame, HMENU hmenuWindow)
{
if ( hmenuFrame || hmenuWindow )
{
{
if ( hmenuFrame || hmenuWindow )
{
::DrawMenuBar(GetWinHwnd(parent));
}
::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;
+ // Try to insert Window menu in front of Help, otherwise append it.
int N = GetMenuItemCount(hmenu);
int N = GetMenuItemCount(hmenu);
for ( int i = 0; i < N; i++ )
{
wxChar buf[256];
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;
}
{
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) )
::InsertMenu(hmenu, i, MF_BYPOSITION | MF_POPUP | MF_STRING,
::InsertMenu(hmenu, i, MF_BYPOSITION | MF_POPUP | MF_STRING,
- (UINT_PTR)subMenu, _("&Window").wx_str());
+ (UINT_PTR)menuWin,
+ wxGetTranslation(WINDOW_MENU_LABEL).wx_str());
{
::AppendMenu(hmenu, MF_POPUP,
{
::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;
- int N = ::GetMenuItemCount(hMenu);
+ int N = ::GetMenuItemCount(hmenu);
for ( int i = 0; i < N; i++ )
{
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
{
// 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"));
if ( ::GetLastError() != 0 )
{
wxLogLastError(wxT("GetMenuString"));
- 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"));
}
{
wxLogLastError(wxT("RemoveMenu"));
}
if ( win )
{
// we don't change the windows menu, but we update the main one
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;
WXWORD *activate, WXHWND *hwndAct, WXHWND *hwndDeact)
{
*activate = true;
*hwndDeact = (WXHWND)wParam;
}
*hwndDeact = (WXHWND)wParam;
}
+} // anonymous namespace
+
#endif // wxUSE_MDI && !defined(__WXUNIVERSAL__)
#endif // wxUSE_MDI && !defined(__WXUNIVERSAL__)