]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/scrolbar.cpp
setting clipping correctly
[wxWidgets.git] / src / univ / scrolbar.cpp
index d103fb90e76849e56c1f60121444bcbe9852754b..c9f56e5c74c0d972dc8aa78a11d0b4b91f6db52d 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        univ/scrolbar.cpp
+// Name:        src/univ/scrolbar.cpp
 // Purpose:     wxScrollBar implementation
 // Author:      Vadim Zeitlin
 // Modified by:
 
 #if wxUSE_SCROLLBAR
 
+#include "wx/scrolbar.h"
+
 #ifndef WX_PRECOMP
     #include "wx/timer.h"
-
     #include "wx/dcclient.h"
-    #include "wx/scrolbar.h"
     #include "wx/validate.h"
+    #include "wx/log.h"
 #endif
 
 #include "wx/univ/scrtimer.h"
@@ -38,7 +39,6 @@
 #include "wx/univ/renderer.h"
 #include "wx/univ/inphand.h"
 #include "wx/univ/theme.h"
-#include "wx/log.h"
 
 #define WXDEBUG_SCROLLBAR
 
@@ -553,7 +553,7 @@ bool wxScrollBar::PerformAction(const wxControlAction& action,
             wxScrollEvent event(scrollType, this->GetId(), m_thumbPos,
                                 IsVertical() ? wxVERTICAL : wxHORIZONTAL);
             event.SetEventObject(this);
-            GetParent()->GetEventHandler()->ProcessEvent(event);
+            GetEventHandler()->ProcessEvent(event);
         }
         else // part of the window
         {
@@ -589,6 +589,15 @@ bool wxScrollBar::ScrollPages(int nPages)
     return true;
 }
 
+/* static */
+wxInputHandler *wxScrollBar::GetStdInputHandler(wxInputHandler *handlerDef)
+{
+    static wxStdScrollBarInputHandler
+        s_handler(wxTheme::Get()->GetRenderer(), handlerDef);
+
+    return &s_handler;
+}
+
 // ============================================================================
 // scroll bar input handler
 // ============================================================================
@@ -717,10 +726,8 @@ bool wxStdScrollBarInputHandler::HandleKey(wxInputConsumer *consumer,
             case WXK_LEFT:      action = wxACTION_SCROLL_LINE_UP;   break;
             case WXK_HOME:      action = wxACTION_SCROLL_START;     break;
             case WXK_END:       action = wxACTION_SCROLL_END;       break;
-            case WXK_PAGEUP:
-            case WXK_PRIOR:     action = wxACTION_SCROLL_PAGE_UP;   break;
-            case WXK_PAGEDOWN:
-            case WXK_NEXT:      action = wxACTION_SCROLL_PAGE_DOWN; break;
+            case WXK_PAGEUP:    action = wxACTION_SCROLL_PAGE_UP;   break;
+            case WXK_PAGEDOWN:  action = wxACTION_SCROLL_PAGE_DOWN; break;
         }
 
         if ( !action.IsEmpty() )
@@ -739,7 +746,7 @@ bool wxStdScrollBarInputHandler::HandleMouse(wxInputConsumer *consumer,
 {
     // is this a click event from an acceptable button?
     int btn = event.GetButton();
-    if ( (btn != -1) && IsAllowedButton(btn) )
+    if ( btn == wxMOUSE_BTN_LEFT )
     {
         // determine which part of the window mouse is in
         wxScrollBar *scrollbar = wxStaticCast(consumer->GetInputWindow(), wxScrollBar);
@@ -909,6 +916,8 @@ bool wxStdScrollBarInputHandler::HandleMouseMove(wxInputConsumer *consumer,
 
 #endif // wxUSE_SCROLLBAR
 
+#if wxUSE_TIMER
+
 // ----------------------------------------------------------------------------
 // wxScrollTimer
 // ----------------------------------------------------------------------------
@@ -952,3 +961,4 @@ void wxScrollTimer::Notify()
     }
 }
 
+#endif // wxUSE_TIMER