Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(17)

Side by Side Diff: ui/views/controls/scrollbar/base_scroll_bar_thumb.h

Issue 851853002: It is time. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Trying to reup because the last upload failed. Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef UI_VIEWS_CONTROLS_SCROLLBAR_BASE_SCROLL_BAR_THUMB_H_
6 #define UI_VIEWS_CONTROLS_SCROLLBAR_BASE_SCROLL_BAR_THUMB_H_
7
8 #include "ui/gfx/size.h"
9 #include "ui/views/controls/button/custom_button.h"
10 #include "ui/views/controls/scrollbar/scroll_bar.h"
11 #include "ui/views/view.h"
12
13 namespace gfx {
14 class Canvas;
15 }
16
17 namespace views {
18
19 class BaseScrollBar;
20
21 ///////////////////////////////////////////////////////////////////////////////
22 //
23 // BaseScrollBarThumb
24 //
25 // A view that acts as the thumb in the scroll bar track that the user can
26 // drag to scroll the associated contents view within the viewport.
27 //
28 ///////////////////////////////////////////////////////////////////////////////
29 class VIEWS_EXPORT BaseScrollBarThumb : public View {
30 public:
31 explicit BaseScrollBarThumb(BaseScrollBar* scroll_bar);
32 virtual ~BaseScrollBarThumb();
33
34 // Sets the size (width or height) of the thumb to the specified value.
35 void SetSize(int size);
36
37 // Retrieves the size (width or height) of the thumb.
38 int GetSize() const;
39
40 // Sets the position of the thumb on the x or y axis.
41 void SetPosition(int position);
42
43 // Gets the position of the thumb on the x or y axis.
44 int GetPosition() const;
45
46 // View overrides:
47 virtual gfx::Size GetPreferredSize() const override = 0;
48
49 protected:
50 // View overrides:
51 virtual void OnPaint(gfx::Canvas* canvas) override = 0;
52 virtual void OnMouseEntered(const ui::MouseEvent& event) override;
53 virtual void OnMouseExited(const ui::MouseEvent& event) override;
54 virtual bool OnMousePressed(const ui::MouseEvent& event) override;
55 virtual bool OnMouseDragged(const ui::MouseEvent& event) override;
56 virtual void OnMouseReleased(const ui::MouseEvent& event) override;
57 virtual void OnMouseCaptureLost() override;
58
59 CustomButton::ButtonState GetState() const;
60 // Update our state and schedule a repaint when the mouse moves over us.
61 void SetState(CustomButton::ButtonState state);
62
63 BaseScrollBar* scroll_bar() { return scroll_bar_; }
64
65 private:
66 // The BaseScrollBar that owns us.
67 BaseScrollBar* scroll_bar_;
68
69 int drag_start_position_;
70
71 // The position of the mouse on the scroll axis relative to the top of this
72 // View when the drag started.
73 int mouse_offset_;
74
75 // The current state of the thumb button.
76 CustomButton::ButtonState state_;
77
78 DISALLOW_COPY_AND_ASSIGN(BaseScrollBarThumb);
79 };
80
81 } // namespace views
82
83 #endif // UI_VIEWS_CONTROLS_SCROLLBAR_BASE_SCROLL_BAR_THUMB_H_
OLDNEW
« no previous file with comments | « ui/views/controls/scrollbar/base_scroll_bar_button.cc ('k') | ui/views/controls/scrollbar/base_scroll_bar_thumb.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698