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

Side by Side Diff: views/controls/button/custom_button.h

Issue 6154001: Move animation code to new ui/base/animation directory.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 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 | Annotate | Revision Log
« no previous file with comments | « views/animation/bounds_animator_unittest.cc ('k') | views/controls/button/custom_button.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef VIEWS_CONTROLS_BUTTON_CUSTOM_BUTTON_H_ 5 #ifndef VIEWS_CONTROLS_BUTTON_CUSTOM_BUTTON_H_
6 #define VIEWS_CONTROLS_BUTTON_CUSTOM_BUTTON_H_ 6 #define VIEWS_CONTROLS_BUTTON_CUSTOM_BUTTON_H_
7 #pragma once 7 #pragma once
8 8
9 #include "app/animation_delegate.h"
10 #include "views/controls/button/button.h" 9 #include "views/controls/button/button.h"
10 #include "ui/base/animation/animation_delegate.h"
11 11
12 namespace ui {
12 class ThrobAnimation; 13 class ThrobAnimation;
14 }
13 15
14 namespace views { 16 namespace views {
15 17
16 // A button with custom rendering. The common base class of ImageButton and 18 // A button with custom rendering. The common base class of ImageButton and
17 // TextButton. 19 // TextButton.
18 // Note that this type of button is not focusable by default and will not be 20 // Note that this type of button is not focusable by default and will not be
19 // part of the focus chain. Call SetFocusable(true) to make it part of the 21 // part of the focus chain. Call SetFocusable(true) to make it part of the
20 // focus chain. 22 // focus chain.
21 class CustomButton : public Button, 23 class CustomButton : public Button,
22 public AnimationDelegate { 24 public ui::AnimationDelegate {
23 public: 25 public:
24 // The menu button's class name. 26 // The menu button's class name.
25 static const char kViewClassName[]; 27 static const char kViewClassName[];
26 28
27 virtual ~CustomButton(); 29 virtual ~CustomButton();
28 30
29 // Possible states 31 // Possible states
30 enum ButtonState { 32 enum ButtonState {
31 BS_NORMAL = 0, 33 BS_NORMAL = 0,
32 BS_HOT, 34 BS_HOT,
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 virtual void OnMouseExited(const MouseEvent& e); 99 virtual void OnMouseExited(const MouseEvent& e);
98 virtual bool OnKeyPressed(const KeyEvent& e); 100 virtual bool OnKeyPressed(const KeyEvent& e);
99 virtual bool OnKeyReleased(const KeyEvent& e); 101 virtual bool OnKeyReleased(const KeyEvent& e);
100 virtual void OnDragDone(); 102 virtual void OnDragDone();
101 virtual void ShowContextMenu(const gfx::Point& p, bool is_mouse_gesture); 103 virtual void ShowContextMenu(const gfx::Point& p, bool is_mouse_gesture);
102 virtual void ViewHierarchyChanged(bool is_add, View *parent, View *child); 104 virtual void ViewHierarchyChanged(bool is_add, View *parent, View *child);
103 virtual void SetHotTracked(bool flag); 105 virtual void SetHotTracked(bool flag);
104 virtual bool IsHotTracked() const; 106 virtual bool IsHotTracked() const;
105 virtual void WillLoseFocus(); 107 virtual void WillLoseFocus();
106 108
107 // Overridden from AnimationDelegate: 109 // Overridden from ui::AnimationDelegate:
108 virtual void AnimationProgressed(const Animation* animation); 110 virtual void AnimationProgressed(const ui::Animation* animation);
109 111
110 // Returns true if the button should become pressed when the user 112 // Returns true if the button should become pressed when the user
111 // holds the mouse down over the button. For this implementation, 113 // holds the mouse down over the button. For this implementation,
112 // we simply return IsTriggerableEvent(e). 114 // we simply return IsTriggerableEvent(e).
113 virtual bool ShouldEnterPushedState(const MouseEvent& e); 115 virtual bool ShouldEnterPushedState(const MouseEvent& e);
114 116
115 // The button state (defined in implementation) 117 // The button state (defined in implementation)
116 ButtonState state_; 118 ButtonState state_;
117 119
118 // Hover animation. 120 // Hover animation.
119 scoped_ptr<ThrobAnimation> hover_animation_; 121 scoped_ptr<ui::ThrobAnimation> hover_animation_;
120 122
121 private: 123 private:
122 // Should we animate when the state changes? Defaults to true. 124 // Should we animate when the state changes? Defaults to true.
123 bool animate_on_state_change_; 125 bool animate_on_state_change_;
124 126
125 // Is the hover animation running because StartThrob was invoked? 127 // Is the hover animation running because StartThrob was invoked?
126 bool is_throbbing_; 128 bool is_throbbing_;
127 129
128 // Mouse event flags which can trigger button actions. 130 // Mouse event flags which can trigger button actions.
129 int triggerable_event_flags_; 131 int triggerable_event_flags_;
130 132
131 // See description above setter. 133 // See description above setter.
132 bool request_focus_on_press_; 134 bool request_focus_on_press_;
133 135
134 DISALLOW_COPY_AND_ASSIGN(CustomButton); 136 DISALLOW_COPY_AND_ASSIGN(CustomButton);
135 }; 137 };
136 138
137 } // namespace views 139 } // namespace views
138 140
139 #endif // VIEWS_CONTROLS_BUTTON_CUSTOM_BUTTON_H_ 141 #endif // VIEWS_CONTROLS_BUTTON_CUSTOM_BUTTON_H_
OLDNEW
« no previous file with comments | « views/animation/bounds_animator_unittest.cc ('k') | views/controls/button/custom_button.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698