Index: views/controls/scrollbar/native_scroll_bar_views.h |
diff --git a/views/controls/scrollbar/native_scroll_bar_views.h b/views/controls/scrollbar/native_scroll_bar_views.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e436e44e9aecf94f1d8390ad06f9adf5fdcd938d |
--- /dev/null |
+++ b/views/controls/scrollbar/native_scroll_bar_views.h |
@@ -0,0 +1,76 @@ |
+// 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_NATIVE_SCROLL_BAR_VIEWS_H_ |
+#define VIEWS_CONTROLS_SCROLLBAR_NATIVE_SCROLL_BAR_VIEWS_H_ |
+#pragma once |
+ |
+#include "ui/gfx/native_theme.h" |
+#include "ui/gfx/point.h" |
+#include "views/controls/button/button.h" |
+#include "views/controls/scrollbar/base_scroll_bar.h" |
+#include "views/controls/scrollbar/native_scroll_bar_wrapper.h" |
+#include "views/view.h" |
+ |
+namespace gfx { |
+class Canvas; |
+} |
+ |
+namespace views { |
+ |
+class NativeScrollBar; |
+ |
+// Views implementation for the scrollbar. |
+class VIEWS_EXPORT NativeScrollBarViews : public BaseScrollBar, |
+ public ButtonListener, |
+ public NativeScrollBarWrapper { |
+ public: |
+ // Creates new scrollbar, either horizontal or vertical. |
+ explicit NativeScrollBarViews(NativeScrollBar* native_scroll_bar); |
+ virtual ~NativeScrollBarViews(); |
+ |
+ private: |
+ // View overrides: |
+ virtual void Layout(); |
+ virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE; |
+ virtual gfx::Size GetPreferredSize(); |
+ |
+ // ScrollBar overrides: |
+ virtual int GetLayoutSize() const OVERRIDE; |
+ |
+ // BaseScrollBar overrides: |
+ virtual void ScrollToPosition(int position); |
+ virtual int GetScrollIncrement(bool is_page, bool is_positive); |
+ |
+ // BaseButton::ButtonListener overrides: |
+ virtual void ButtonPressed(Button* sender, |
+ const views::Event& event) OVERRIDE; |
+ |
+ // NativeScrollBarWrapper overrides: |
+ virtual int GetPosition() const; |
+ virtual View* GetView(); |
+ virtual void Update(int viewport_size, int content_size, int current_pos); |
+ |
+ // Returns the area for the track. This is the area of the scrollbar minus |
+ // the size of the arrow buttons. |
+ virtual gfx::Rect GetTrackBounds() const OVERRIDE; |
+ |
+ // The NativeScrollBar we are bound to. |
+ NativeScrollBar* native_scroll_bar_; |
+ |
+ // The scroll bar buttons (Up/Down, Left/Right). |
+ Button* prev_button_; |
+ Button* next_button_; |
+ |
+ gfx::NativeTheme::ExtraParams params_; |
+ gfx::NativeTheme::Part part_; |
+ gfx::NativeTheme::State state_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(NativeScrollBarViews); |
+}; |
+ |
+} // namespace views |
+ |
+#endif // VIEWS_CONTROLS_SCROLLBAR_NATIVE_SCROLL_BAR_VIEWS_H_ |
+ |