#include "wx/mdi.h"
#include "wx/msw/private.h"
-#if USE_NATIVE_STATUSBAR
+#if wxUSE_NATIVE_STATUSBAR
#include <wx/msw/statbr95.h>
#endif
#include <string.h>
extern wxList wxModelessWindows;
+extern wxMenu *wxCurrentPopupMenu;
#define IDM_WINDOWTILE 4001
#define IDM_WINDOWCASCADE 4002
m_windowMenu = (WXHMENU) ::LoadMenu(wxGetInstance(), "wxWindowMenu");
-#if WXDEBUG > 1
- wxDebugMsg("Loaded m_windowMenu %d\n", m_windowMenu);
-#endif
-
DWORD msflags = WS_OVERLAPPED ;
if (style & wxMINIMIZE_BOX)
msflags |= WS_MINIMIZEBOX;
void wxMDIParentFrame::OnSize(wxSizeEvent& event)
{
-#if USE_CONSTRAINTS
+#if wxUSE_CONSTRAINTS
if (GetAutoLayout())
Layout();
#endif
/* Already done in MSWOnSize
// forward WM_SIZE to status bar control
-#if USE_NATIVE_STATUSBAR
+#if wxUSE_NATIVE_STATUSBAR
if (m_frameStatusBar && m_frameStatusBar->IsKindOf(CLASSINFO(wxStatusBar95)))
((wxStatusBar95 *)m_frameStatusBar)->OnSize(event);
#endif
GetEventHandler()->ProcessEvent(event);
#else
-#if USE_CONSTRAINTS
+#if wxUSE_CONSTRAINTS
if (GetAutoLayout())
Layout();
#endif
if (!m_iconized)
{
// forward WM_SIZE to status bar control
-#if USE_NATIVE_STATUSBAR
+#if wxUSE_NATIVE_STATUSBAR
if (m_frameStatusBar && m_frameStatusBar->IsKindOf(CLASSINFO(wxStatusBar95)))
{
wxSizeEvent event(wxSize(x, y), m_frameStatusBar->GetId());
if (win)
return win->MSWCommand(cmd, id);
+/*
+ if (wxCurrentPopupMenu)
+ {
+ wxMenu *popupMenu = wxCurrentPopupMenu;
+ wxCurrentPopupMenu = NULL;
+ if (!popupMenu->MSWCommand(cmd, id))
+ return TRUE;
+ }
+*/
+
switch (id)
{
case IDM_WINDOWCASCADE:
}
if (id >= 0xF000)
{
-#if WXDEBUG > 1
- wxDebugMsg("wxMDIFrame::OnCommand %d: system command: calling default window proc\n", GetHWND());
-#endif
return FALSE; // Get WndProc to call default proc
}
}
else if (m_currentChild && (id < wxFIRST_MDI_CHILD || id > wxLAST_MDI_CHILD))
{
-#if WXDEBUG > 1
- wxDebugMsg("wxMDIFrame::MSWOnCommand %d: calling child OnCommand\n", GetHWND());
-#endif
return m_currentChild->MSWOnCommand(id, cmd, control);
}
}
if (id >= wxFIRST_MDI_CHILD && id <= wxLAST_MDI_CHILD)
{
- wxNode* node = GetChildren()->First();
+ wxNode* node = GetChildren().First();
while (node)
{
wxWindow* child = (wxWindow*) node->Data();
bool wxMDIParentFrame::MSWProcessMessage(WXMSG* msg)
{
- MSG *pMsg = (MSG *)msg;
-
if ((m_currentChild != (wxWindow *)NULL) && (m_currentChild->GetHWND() != (WXHWND) NULL) && m_currentChild->MSWProcessMessage(msg))
return TRUE;
if (invalidHandle == (HWND) GetHWND())
{
-#if WXDEBUG > 1
- wxDebugMsg("wxMDIChildFrame::OnSize %d: invalid, so returning.\n", GetHWND());
-#endif
return;
}
if (!m_iconized)
{
// forward WM_SIZE to status bar control
-#if USE_NATIVE_STATUSBAR
+#if wxUSE_NATIVE_STATUSBAR
if (m_frameStatusBar && m_frameStatusBar->IsKindOf(CLASSINFO(wxStatusBar95)))
{
wxSizeEvent event(wxSize(x, y), m_frameStatusBar->GetId());
bool wxMDIChildFrame::MSWOnCommand(WXWORD id, WXWORD cmd, WXHWND control)
{
-#if WXDEBUG > 1
- wxDebugMsg("wxMDIChildFrame::MSWOnCommand %d\n", GetHWND());
-#endif
// if ((cmd == 0) && GetHWND())
if (GetHWND())
{
if (win)
return win->MSWCommand(cmd, id);
+ if (wxCurrentPopupMenu)
+ {
+ wxMenu *popupMenu = wxCurrentPopupMenu;
+ wxCurrentPopupMenu = NULL;
+ if (popupMenu->MSWCommand(cmd, id))
+ return TRUE;
+ }
+
if (GetMenuBar() && GetMenuBar()->FindItemForId(id))
{
ProcessCommand(id);
{
wxMDIParentFrame *parent = (wxMDIParentFrame *)GetParent();
HMENU parent_menu = (HMENU) parent->GetWinMenu();
-#if WXDEBUG > 1
- wxDebugMsg("Parent menu is %d\n", parent_menu);
-#endif
HMENU child_menu = (HMENU) GetWinMenu();
-#if WXDEBUG > 1
- wxDebugMsg("Child menu is %d\n", child_menu);
-#endif
if (activate)
{
{
parent->m_parentFrameActive = FALSE;
HMENU subMenu = GetSubMenu((HMENU) parent->GetWindowMenu(), 0);
-#if WXDEBUG > 1
- wxDebugMsg("Window submenu is %d\n", subMenu);
-#endif
-// HMENU subMenu = 0;
#ifdef __WIN32__
::SendMessage((HWND) parent->GetClientWindow()->GetHWND(), WM_MDISETMENU,
(WPARAM)child_menu,
{
parent->m_parentFrameActive = TRUE;
HMENU subMenu = GetSubMenu((HMENU) parent->GetWindowMenu(), 0);
-#if WXDEBUG > 1
- wxDebugMsg("Window submenu is %d\n", subMenu);
-#endif
-// HMENU subMenu = 0;
#ifdef __WIN32__
::SendMessage((HWND) parent->GetClientWindow()->GetHWND(), WM_MDISETMENU,
(WPARAM)parent_menu,
wxActivateEvent event(wxEVT_ACTIVATE, flag, m_windowId);
event.SetEventObject( this );
GetEventHandler()->ProcessEvent(event);
-
-#if WXDEBUG > 1
- wxDebugMsg("Finished (de)activating\n");
-#endif
return 0;
}
// destroyed.
HWND oldHandle = (HWND)GetHWND();
-#if WXDEBUG > 1
- wxDebugMsg("*** About to DestroyWindow MDI child %d\n", oldHandle);
-#endif
#ifdef __WIN32__
SendMessage((HWND) parent->GetClientWindow()->GetHWND(), WM_MDIDESTROY, (WPARAM)oldHandle, (LPARAM)0);
#else
SendMessage((HWND) parent->GetClientWindow()->GetHWND(), WM_MDIDESTROY, (HWND)oldHandle, 0);
-#endif
-#if WXDEBUG > 1
- wxDebugMsg("*** Finished DestroyWindow MDI child %d\n", oldHandle);
#endif
invalidHandle = 0;
long wxMDIClientWindow::MSWDefWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
{
if ( MSWGetOldWndProc() != 0)
- return ::CallWindowProc(CASTWNDPROC (FARPROC) MSWGetOldWndProc(), (HWND) GetHWND(), (UINT) nMsg, (WPARAM) wParam, (LPARAM) lParam);
+ return ::CallWindowProc(CASTWNDPROC MSWGetOldWndProc(), (HWND) GetHWND(), (UINT) nMsg, (WPARAM) wParam, (LPARAM) lParam);
else
return ::DefWindowProc((HWND) m_hWnd, (UINT) nMsg, (WPARAM) wParam, (LPARAM) lParam);
}