]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/window.cpp
Committing in .
[wxWidgets.git] / src / msw / window.cpp
index 411e011c1aa1c34c975213858f919d249b8e652d..34a9c55cc2b064ed1c9d4471af7b745006fd6aeb 100644 (file)
@@ -54,9 +54,8 @@
     #include "wx/ownerdrw.h"
 #endif
 
-#if     wxUSE_DRAG_AND_DROP
-    #include "wx/dataobj.h"
-    #include "wx/msw/ole/droptgt.h"
+#if wxUSE_DRAG_AND_DROP
+    #include "wx/dnd.h"
 #endif
 
 #include "wx/menuitem.h"
@@ -96,7 +95,7 @@
 #ifndef __TWIN32__
     #ifdef __GNUWIN32__
         #ifndef wxUSE_NORLANDER_HEADERS
-            #include <wx/msw/gnuwin32/extra.h>
+            #include "wx/msw/gnuwin32/extra.h"
         #endif
     #endif
 #endif
@@ -127,7 +126,7 @@ extern wxChar wxCanvasClassName[];
 // ---------------------------------------------------------------------------
 
 // the window proc for all our windows
-LRESULT APIENTRY _EXPORT wxWndProc(HWND hWnd, UINT message,
+LRESULT WXDLLEXPORT APIENTRY _EXPORT wxWndProc(HWND hWnd, UINT message,
                                    WPARAM wParam, LPARAM lParam);
 
 #ifdef  __WXDEBUG__
@@ -373,6 +372,15 @@ bool wxWindow::Enable(bool enable)
     if ( hWnd )
         ::EnableWindow(hWnd, (BOOL)enable);
 
+    wxWindowList::Node *node = GetChildren().GetFirst();
+    while ( node )
+    {
+        wxWindow *child = node->GetData();
+        child->Enable(enable);
+
+        node = node->GetNext();
+    }
+
     return TRUE;
 }
 
@@ -1215,7 +1223,7 @@ void wxWindow::DoSetSize(int x, int y, int width, int height, int sizeFlags)
     wxSize size(-1, -1);
     if ( width == -1 )
     {
-        if ( sizeFlags && wxSIZE_AUTO_WIDTH )
+        if ( sizeFlags & wxSIZE_AUTO_WIDTH )
         {
             size = DoGetBestSize();
             width = size.x;
@@ -1229,7 +1237,7 @@ void wxWindow::DoSetSize(int x, int y, int width, int height, int sizeFlags)
 
     if ( height == -1 )
     {
-        if ( sizeFlags && wxSIZE_AUTO_HEIGHT )
+        if ( sizeFlags & wxSIZE_AUTO_HEIGHT )
         {
             if ( size.x == -1 )
             {
@@ -1710,7 +1718,7 @@ void wxWindow::UnpackMenuSelect(WXWPARAM wParam, WXLPARAM lParam,
 wxWindow *wxWndHook = NULL;
 
 // Main window proc
-LRESULT APIENTRY _EXPORT wxWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+LRESULT WXDLLEXPORT APIENTRY _EXPORT wxWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
 {
     // trace all messages - useful for the debugging
 #ifdef __WXDEBUG__
@@ -2379,7 +2387,7 @@ bool wxWindow::MSWOnNotify(int WXUNUSED(idCtrl),
 {
 #if wxUSE_TOOLTIPS
     NMHDR* hdr = (NMHDR *)lParam;
-    if ( hdr->code == TTN_NEEDTEXT && m_tooltip )
+    if ( (int)hdr->code == TTN_NEEDTEXT && m_tooltip )
     {
         TOOLTIPTEXT *ttt = (TOOLTIPTEXT *)lParam;
         ttt->lpszText = (wxChar *)m_tooltip->GetTip().c_str();
@@ -2402,7 +2410,7 @@ bool wxWindow::HandleQueryEndSession(long logOff, bool *mayEnd)
     wxCloseEvent event(wxEVT_QUERY_END_SESSION, -1);
     event.SetEventObject(wxTheApp);
     event.SetCanVeto(TRUE);
-    event.SetLoggingOff(logOff == ENDSESSION_LOGOFF);
+    event.SetLoggingOff(logOff == (long)ENDSESSION_LOGOFF);
 
     bool rc = wxTheApp->ProcessEvent(event);
 
@@ -2425,7 +2433,7 @@ bool wxWindow::HandleEndSession(bool endSession, long logOff)
     wxCloseEvent event(wxEVT_END_SESSION, -1);
     event.SetEventObject(wxTheApp);
     event.SetCanVeto(FALSE);
-    event.SetLoggingOff( (logOff == ENDSESSION_LOGOFF) );
+    event.SetLoggingOff( (logOff == (long)ENDSESSION_LOGOFF) );
     if ( (this == wxTheApp->GetTopWindow()) && // Only send once
         wxTheApp->ProcessEvent(event))
     {
@@ -3567,7 +3575,11 @@ void wxSetKeyboardHook(bool doIt)
     else
     {
         UnhookWindowsHookEx(wxTheKeyboardHook);
+        // avoids mingw warning about statement with no effect (FreeProcInstance
+        // doesn't do anything under Win32)
+#ifndef __GNUWIN32__
         FreeProcInstance(wxTheKeyboardHookProc);
+#endif
     }
 }