Index: views/controls/scrollbar/base_scroll_bar_button.h |
diff --git a/views/controls/scrollbar/base_scroll_bar_button.h b/views/controls/scrollbar/base_scroll_bar_button.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6f877283567bc69164bcfbba64ddab5836d7fa85 |
--- /dev/null |
+++ b/views/controls/scrollbar/base_scroll_bar_button.h |
@@ -0,0 +1,50 @@ |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef VIEWS_CONTROLS_SCROLLBAR_BASE_SCROLL_BAR_BUTTON_H_ |
+#define VIEWS_CONTROLS_SCROLLBAR_BASE_SCROLL_BAR_BUTTON_H_ |
+#pragma once |
+ |
+#include "views/controls/button/custom_button.h" |
+ |
+#include "views/repeat_controller.h" |
+ |
+#if defined(OS_LINUX) |
+#include "ui/gfx/screen.h" |
+#endif |
+ |
+namespace views { |
+ |
+/////////////////////////////////////////////////////////////////////////////// |
+// |
+// ScrollBarButton |
+// |
+// A button that activates on mouse pressed rather than released, and that |
+// continues to fire the clicked action as the mouse button remains pressed |
+// down on the button. |
+// |
+/////////////////////////////////////////////////////////////////////////////// |
+class VIEWS_EXPORT BaseScrollBarButton : public CustomButton { |
+ public: |
+ explicit BaseScrollBarButton(ButtonListener* listener); |
+ virtual ~BaseScrollBarButton(); |
+ |
+ protected: |
+ virtual bool OnMousePressed(const MouseEvent& event) OVERRIDE; |
+ virtual void OnMouseReleased(const MouseEvent& event) OVERRIDE; |
+ virtual void OnMouseCaptureLost() OVERRIDE; |
+ |
+ private: |
+ void RepeaterNotifyClick(); |
+ |
+ // The repeat controller that we use to repeatedly click the button when the |
+ // mouse button is down. |
+ RepeatController repeater_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(BaseScrollBarButton); |
+}; |
+ |
+} // namespace views |
+ |
+#endif // VIEWS_CONTROLS_SCROLLBAR_BASE_SCROLL_BAR_BUTTON_H_ |