]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/mdi.cpp
fixed client area origin handling in wxGTK
[wxWidgets.git] / src / msw / mdi.cpp
index a8c09a69523d81f53f400df6e96f00952c84a61b..c71a0a8d37357ed5cd7b2c16562dfce6c0dfa392 100644 (file)
@@ -163,10 +163,6 @@ bool wxMDIParentFrame::Create(wxWindow *parent,
                               long style,
                               const wxString& name)
 {
                               long style,
                               const wxString& name)
 {
-  m_defaultIcon = (WXHICON) (wxSTD_MDIPARENTFRAME_ICON
-                                ? wxSTD_MDIPARENTFRAME_ICON
-                                : wxDEFAULT_MDIPARENTFRAME_ICON);
-
   m_clientWindow = NULL;
   m_currentChild = NULL;
 
   m_clientWindow = NULL;
   m_currentChild = NULL;
 
@@ -270,19 +266,20 @@ wxMDIParentFrame::~wxMDIParentFrame()
     }
 }
 
     }
 }
 
+#if wxUSE_MENUS_NATIVE
+
 void wxMDIParentFrame::InternalSetMenuBar()
 {
 void wxMDIParentFrame::InternalSetMenuBar()
 {
-//    HMENU subMenu = GetSubMenu((HMENU) m_windowMenu, 0);
-
     m_parentFrameActive = TRUE;
 
     m_parentFrameActive = TRUE;
 
-    HMENU subMenu = (HMENU) 0;
-    if (GetWindowMenu())
-        subMenu = (HMENU) GetWindowMenu()->GetHMenu();
+    wxMenu *menu = GetWindowMenu();
+    HMENU subMenu = menu ? GetHmenuOf(menu) : 0;
 
     InsertWindowMenu(GetClientWindow(), m_hMenu, subMenu);
 }
 
 
     InsertWindowMenu(GetClientWindow(), m_hMenu, subMenu);
 }
 
+#endif // wxUSE_MENUS_NATIVE
+
 void wxMDIParentFrame::SetWindowMenu(wxMenu* menu)
 {
     if (m_windowMenu)
 void wxMDIParentFrame::SetWindowMenu(wxMenu* menu)
 {
     if (m_windowMenu)
@@ -348,6 +345,12 @@ void wxMDIParentFrame::OnSysColourChanged(wxSysColourChangedEvent& event)
     event.Skip();
 }
 
     event.Skip();
 }
 
+WXHICON wxMDIParentFrame::GetDefaultIcon() const
+{
+    return (WXHICON)(wxSTD_MDIPARENTFRAME_ICON ? wxSTD_MDIPARENTFRAME_ICON
+                                               : wxDEFAULT_MDIPARENTFRAME_ICON);
+}
+
 // ---------------------------------------------------------------------------
 // MDI operations
 // ---------------------------------------------------------------------------
 // ---------------------------------------------------------------------------
 // MDI operations
 // ---------------------------------------------------------------------------
@@ -646,9 +649,6 @@ bool wxMDIChildFrame::Create(wxMDIParentFrame *parent,
                              long style,
                              const wxString& name)
 {
                              long style,
                              const wxString& name)
 {
-  m_defaultIcon = (WXHICON)(wxSTD_MDICHILDFRAME_ICON ? wxSTD_MDICHILDFRAME_ICON
-                                                     : wxDEFAULT_MDICHILDFRAME_ICON);
-
   SetName(name);
   wxWindowBase::Show(TRUE); // MDI child frame starts off shown
 
   SetName(name);
   wxWindowBase::Show(TRUE); // MDI child frame starts off shown
 
@@ -813,6 +813,12 @@ void wxMDIChildFrame::InternalSetMenuBar()
     parent->m_parentFrameActive = FALSE;
 }
 
     parent->m_parentFrameActive = FALSE;
 }
 
+WXHICON wxMDIChildFrame::GetDefaultIcon() const
+{
+    return (WXHICON)(wxSTD_MDICHILDFRAME_ICON ? wxSTD_MDICHILDFRAME_ICON
+                                              : wxDEFAULT_MDICHILDFRAME_ICON);
+}
+
 // ---------------------------------------------------------------------------
 // MDI operations
 // ---------------------------------------------------------------------------
 // ---------------------------------------------------------------------------
 // MDI operations
 // ---------------------------------------------------------------------------
@@ -1045,7 +1051,7 @@ bool wxMDIChildFrame::HandleGetMinMaxInfo(void *mmInfo)
     // let the default window proc calculate the size of MDI children
     // frames because it is based on the size of the MDI client window,
     // not on the values specified in wxWindow m_max variables
     // let the default window proc calculate the size of MDI children
     // frames because it is based on the size of the MDI client window,
     // not on the values specified in wxWindow m_max variables
-    bool processed = MSWDefWindowProc(WM_GETMINMAXINFO, 0, (LPARAM)mmInfo);
+    bool processed = MSWDefWindowProc(WM_GETMINMAXINFO, 0, (LPARAM)mmInfo) != 0;
 
     // but allow GetSizeHints() to set the min size
     if ( m_minWidth != -1 )
 
     // but allow GetSizeHints() to set the min size
     if ( m_minWidth != -1 )