]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/nativdlg.cpp
Use child MDI frame menu items in preference to the parent frame ones.
[wxWidgets.git] / src / msw / nativdlg.cpp
index 519176b336ca6a310567111baa1c08c4272a19cb..d5cce1f1e547d7d2922c2dd13bff2f256f11c7a6 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        nativdlg.cpp
+// Name:        src/msw/nativdlg.cpp
 // Purpose:     Native dialog loading code (part of wxWindow)
 // Author:      Julian Smart
 // Modified by:
 // headers
 // ---------------------------------------------------------------------------
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma implementation
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
@@ -34,9 +30,7 @@
     #include "wx/wx.h"
 #endif
 
-#if defined(__WIN95__)
 #include "wx/spinbutt.h"
-#endif
 #include "wx/msw/private.h"
 
 // ---------------------------------------------------------------------------
@@ -61,7 +55,7 @@ bool wxWindow::LoadNativeDialog(wxWindow* parent, wxWindowID& id)
                                     (DLGPROC) wxDlgProc);
 
     if ( !m_hWnd )
-        return FALSE;
+        return false;
 
     SubclassWin(GetHWND());
 
@@ -84,7 +78,7 @@ bool wxWindow::LoadNativeDialog(wxWindow* parent, wxWindowID& id)
             CreateWindowFromHWND(this, (WXHWND) hWndNext);
     }
 
-    return TRUE;
+    return true;
 }
 
 bool wxWindow::LoadNativeDialog(wxWindow* parent, const wxString& name)
@@ -98,7 +92,7 @@ bool wxWindow::LoadNativeDialog(wxWindow* parent, const wxString& name)
                                     (DLGPROC)wxDlgProc);
 
     if ( !m_hWnd )
-        return FALSE;
+        return false;
 
     SubclassWin(GetHWND());
 
@@ -121,7 +115,7 @@ bool wxWindow::LoadNativeDialog(wxWindow* parent, const wxString& name)
             CreateWindowFromHWND(this, (WXHWND) hWndNext);
     }
 
-    return TRUE;
+    return true;
 }
 
 // ---------------------------------------------------------------------------
@@ -152,20 +146,14 @@ wxWindow* wxWindow::GetWindowChild(wxWindowID id)
     wxWindow* win = GetWindowChild1(id);
     if ( !win )
     {
-        HWND hWnd = ::GetDlgItem((HWND) GetHWND(), id);
-
-        if (hWnd)
+        HWND hwnd = ::GetDlgItem(GetHwnd(), id);
+        if ( hwnd )
         {
-            wxWindow* child = CreateWindowFromHWND(this, (WXHWND) hWnd);
-            if (child)
-            {
-                child->AddChild(this);
-                return child;
-            }
+            win = CreateWindowFromHWND(this, (WXHWND) hwnd);
         }
     }
 
-    return NULL;
+    return win;
 }
 
 // ---------------------------------------------------------------------------
@@ -174,6 +162,8 @@ wxWindow* wxWindow::GetWindowChild(wxWindowID id)
 
 wxWindow* wxWindow::CreateWindowFromHWND(wxWindow* parent, WXHWND hWnd)
 {
+    wxCHECK_MSG( parent, NULL, wxT("must have valid parent for a control") );
+
     wxString str(wxGetWindowClass(hWnd));
     str.UpperCase();
 
@@ -271,7 +261,7 @@ wxWindow* wxWindow::CreateWindowFromHWND(wxWindow* parent, WXHWND hWnd)
         win = new wxScrollBar;
     }
 #endif
-#if defined(__WIN95__) && wxUSE_SPINBTN
+#if wxUSE_SPINBTN
     else if (str == wxT("MSCTLS_UPDOWN32"))
     {
         win = new wxSpinButton;
@@ -305,7 +295,7 @@ wxWindow* wxWindow::CreateWindowFromHWND(wxWindow* parent, WXHWND hWnd)
             wxLogError(wxT("Please make SS_BITMAP statics into owner-draw buttons."));
         }
 #endif
-#endif /* wxUSE_STATBMP */
+#endif /* wxUSE_STATBMP */
     }
 #endif
     else
@@ -318,9 +308,6 @@ wxWindow* wxWindow::CreateWindowFromHWND(wxWindow* parent, WXHWND hWnd)
     if (win)
     {
         parent->AddChild(win);
-        win->SetEventHandler(win);
-        win->SetHWND(hWnd);
-        win->SetId(id);
         win->SubclassWin(hWnd);
         win->AdoptAttributesFromHWND();
         win->SetupColours();
@@ -330,14 +317,14 @@ wxWindow* wxWindow::CreateWindowFromHWND(wxWindow* parent, WXHWND hWnd)
 }
 
 // Make sure the window style (etc.) reflects the HWND style (roughly)
-void wxWindow::AdoptAttributesFromHWND(void)
+void wxWindow::AdoptAttributesFromHWND()
 {
-    HWND hWnd = (HWND) GetHWND();
-    long style = GetWindowLong((HWND) hWnd, GWL_STYLE);
+    SetId(wxGetWindowId(m_hWnd));
+
+    long style = GetWindowLong(GetHwnd(), GWL_STYLE);
 
     if (style & WS_VSCROLL)
         m_windowStyle |= wxVSCROLL;
     if (style & WS_HSCROLL)
         m_windowStyle |= wxHSCROLL;
 }
-