]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/winuniv.cpp
Some fixes for wxURLDataObject when wxUSE_UNICODE==1
[wxWidgets.git] / src / univ / winuniv.cpp
index 719515c2313cd3090a557a15c1b09bbc24c01a68..33de11472160ddb1cf092b05a2e52c6d88e59f05 100644 (file)
@@ -763,9 +763,11 @@ int wxWindow::GetScrollRange(int orient) const
 
 void wxWindow::ScrollWindow(int dx, int dy, const wxRect *rect)
 {
+    // use native scrolling when available and do it in generic way
+    // otherwise:
 #ifdef __WXX11__
 
-    wxWindowX11::ScrollWindow( dx, dy, rect );
+    wxWindowNative::ScrollWindow(dx, dy, rect);
 
 #else
 
@@ -786,6 +788,19 @@ void wxWindow::ScrollWindow(int dx, int dy, const wxRect *rect)
         Refresh(TRUE /* erase bkgnd */, &r);
     }
     
+    // scroll children accordingly:    
+    wxPoint offset(dx, dy);
+    
+    for (wxWindowList::Node *node = GetChildren().GetFirst(); 
+         node; node = node->GetNext())
+    {
+        wxWindow *child = node->GetData();
+        if ( child != m_scrollbarVert && child != m_scrollbarHorz &&      
+             (rect == NULL || rect->Intersects(child->GetRect())) )
+        {
+            child->Move(child->GetPosition() + offset);
+        }
+    }    
 #endif
 }
 
@@ -1100,3 +1115,29 @@ void wxWindow::OnKeyUp(wxKeyEvent& event)
 
 #endif // wxUSE_MENUS
 
+// ----------------------------------------------------------------------------
+// MSW-specific section
+// ----------------------------------------------------------------------------
+
+#ifdef __WXMSW__
+
+#include "wx/msw/private.h"
+
+long wxWindow::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
+{
+    if ( message == WM_NCHITTEST )
+    {
+        // the windows which contain the other windows should let the mouse
+        // events through, otherwise a window inside a static box would
+        // never get any events at all
+        if ( IsStaticBox() )
+        {
+            return HTTRANSPARENT;
+        }
+    }
+
+    return wxWindowNative::MSWWindowProc(message, wParam, lParam);
+}
+
+#endif // __WXMSW__
+