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

Side by Side Diff: chrome/browser/ui/views/dropdown_bar_host.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
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 CHROME_BROWSER_UI_VIEWS_DROPDOWN_BAR_HOST_H_ 5 #ifndef CHROME_BROWSER_UI_VIEWS_DROPDOWN_BAR_HOST_H_
6 #define CHROME_BROWSER_UI_VIEWS_DROPDOWN_BAR_HOST_H_ 6 #define CHROME_BROWSER_UI_VIEWS_DROPDOWN_BAR_HOST_H_
7 #pragma once 7 #pragma once
8 8
9 #include "app/animation_delegate.h"
10 #include "base/scoped_ptr.h" 9 #include "base/scoped_ptr.h"
11 #include "chrome/common/native_web_keyboard_event.h" 10 #include "chrome/common/native_web_keyboard_event.h"
12 #include "gfx/native_widget_types.h" 11 #include "gfx/native_widget_types.h"
13 #include "gfx/rect.h" 12 #include "gfx/rect.h"
13 #include "ui/base/animation/animation_delegate.h"
14 #include "views/controls/textfield/textfield.h" 14 #include "views/controls/textfield/textfield.h"
15 #include "views/focus/focus_manager.h" 15 #include "views/focus/focus_manager.h"
16 16
17 class BrowserView; 17 class BrowserView;
18 class DropdownBarView; 18 class DropdownBarView;
19 class TabContents;
20
21 namespace ui {
19 class SlideAnimation; 22 class SlideAnimation;
20 class TabContents; 23 }
21 24
22 namespace views { 25 namespace views {
23 class ExternalFocusTracker; 26 class ExternalFocusTracker;
24 class View; 27 class View;
25 class Widget; 28 class Widget;
26 } 29 }
27 30
28 //////////////////////////////////////////////////////////////////////////////// 31 ////////////////////////////////////////////////////////////////////////////////
29 // 32 //
30 // The DropdownBarHost implements the container widget for the UI that 33 // The DropdownBarHost implements the container widget for the UI that
31 // is shown at the top of browser contents. It uses the appropriate 34 // is shown at the top of browser contents. It uses the appropriate
32 // implementation from dropdown_bar_host_win.cc or dropdown_bar_host_gtk.cc to 35 // implementation from dropdown_bar_host_win.cc or dropdown_bar_host_gtk.cc to
33 // draw its content and is responsible for showing, hiding, animating, closing, 36 // draw its content and is responsible for showing, hiding, animating, closing,
34 // and moving the bar if needed, for example if the widget is 37 // and moving the bar if needed, for example if the widget is
35 // obscuring the selection results in FindBar. 38 // obscuring the selection results in FindBar.
36 // 39 //
37 //////////////////////////////////////////////////////////////////////////////// 40 ////////////////////////////////////////////////////////////////////////////////
38 class DropdownBarHost : public views::AcceleratorTarget, 41 class DropdownBarHost : public views::AcceleratorTarget,
39 public views::FocusChangeListener, 42 public views::FocusChangeListener,
40 public AnimationDelegate { 43 public ui::AnimationDelegate {
41 public: 44 public:
42 explicit DropdownBarHost(BrowserView* browser_view); 45 explicit DropdownBarHost(BrowserView* browser_view);
43 virtual ~DropdownBarHost(); 46 virtual ~DropdownBarHost();
44 47
45 // Initializes the dropdown bar host with the give view. 48 // Initializes the dropdown bar host with the give view.
46 void Init(DropdownBarView* view); 49 void Init(DropdownBarView* view);
47 50
48 // Whether we are animating the position of the dropdown widget. 51 // Whether we are animating the position of the dropdown widget.
49 bool IsAnimating() const; 52 bool IsAnimating() const;
50 // Returns true if the dropdown bar view is visible, or false otherwise. 53 // Returns true if the dropdown bar view is visible, or false otherwise.
(...skipping 16 matching lines...) Expand all
67 // the widget (if hidden). 70 // the widget (if hidden).
68 virtual void SetDialogPosition(const gfx::Rect& new_pos, bool no_redraw) = 0; 71 virtual void SetDialogPosition(const gfx::Rect& new_pos, bool no_redraw) = 0;
69 72
70 // Overridden from views::FocusChangeListener: 73 // Overridden from views::FocusChangeListener:
71 virtual void FocusWillChange(views::View* focused_before, 74 virtual void FocusWillChange(views::View* focused_before,
72 views::View* focused_now); 75 views::View* focused_now);
73 76
74 // Overridden from views::AcceleratorTarget: 77 // Overridden from views::AcceleratorTarget:
75 virtual bool AcceleratorPressed(const views::Accelerator& accelerator) = 0; 78 virtual bool AcceleratorPressed(const views::Accelerator& accelerator) = 0;
76 79
77 // AnimationDelegate implementation: 80 // ui::AnimationDelegate implementation:
78 virtual void AnimationProgressed(const Animation* animation); 81 virtual void AnimationProgressed(const ui::Animation* animation);
79 virtual void AnimationEnded(const Animation* animation); 82 virtual void AnimationEnded(const ui::Animation* animation);
80 83
81 // During testing we can disable animations by setting this flag to true, 84 // During testing we can disable animations by setting this flag to true,
82 // so that opening and closing the dropdown bar is shown instantly, instead of 85 // so that opening and closing the dropdown bar is shown instantly, instead of
83 // having to poll it while it animates to open/closed status. 86 // having to poll it while it animates to open/closed status.
84 static bool disable_animations_during_testing_; 87 static bool disable_animations_during_testing_;
85 88
86 // Returns the browser view that the dropdown belongs to. 89 // Returns the browser view that the dropdown belongs to.
87 BrowserView* browser_view() const { return browser_view_; } 90 BrowserView* browser_view() const { return browser_view_; }
88 91
89 // Registers this class as the handler for when Escape is pressed. Once we 92 // Registers this class as the handler for when Escape is pressed. Once we
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 141
139 // Allows implementation to tweak widget position. 142 // Allows implementation to tweak widget position.
140 void SetWidgetPositionNative(const gfx::Rect& new_pos, bool no_redraw); 143 void SetWidgetPositionNative(const gfx::Rect& new_pos, bool no_redraw);
141 144
142 // Returns a keyboard event suitable for forwarding. 145 // Returns a keyboard event suitable for forwarding.
143 NativeWebKeyboardEvent GetKeyboardEvent( 146 NativeWebKeyboardEvent GetKeyboardEvent(
144 const TabContents* contents, 147 const TabContents* contents,
145 const views::KeyEvent& key_event); 148 const views::KeyEvent& key_event);
146 149
147 // Returns the animation for the dropdown. 150 // Returns the animation for the dropdown.
148 SlideAnimation* animation() { 151 ui::SlideAnimation* animation() {
149 return animation_.get(); 152 return animation_.get();
150 } 153 }
151 154
152 private: 155 private:
153 // The BrowserView that created us. 156 // The BrowserView that created us.
154 BrowserView* browser_view_; 157 BrowserView* browser_view_;
155 158
156 // Our view, which is responsible for drawing the UI. 159 // Our view, which is responsible for drawing the UI.
157 DropdownBarView* view_; 160 DropdownBarView* view_;
158 161
159 // The y position pixel offset of the widget while animating the 162 // The y position pixel offset of the widget while animating the
160 // dropdown widget. 163 // dropdown widget.
161 int animation_offset_; 164 int animation_offset_;
162 165
163 // The animation class to use when opening the Dropdown widget. 166 // The animation class to use when opening the Dropdown widget.
164 scoped_ptr<SlideAnimation> animation_; 167 scoped_ptr<ui::SlideAnimation> animation_;
165 168
166 // The focus manager we register with to keep track of focus changes. 169 // The focus manager we register with to keep track of focus changes.
167 views::FocusManager* focus_manager_; 170 views::FocusManager* focus_manager_;
168 171
169 // True if the accelerator target for Esc key is registered. 172 // True if the accelerator target for Esc key is registered.
170 bool esc_accel_target_registered_; 173 bool esc_accel_target_registered_;
171 174
172 // Tracks and stores the last focused view which is not the DropdownBarView 175 // Tracks and stores the last focused view which is not the DropdownBarView
173 // or any of its children. Used to restore focus once the DropdownBarView is 176 // or any of its children. Used to restore focus once the DropdownBarView is
174 // closed. 177 // closed.
175 scoped_ptr<views::ExternalFocusTracker> focus_tracker_; 178 scoped_ptr<views::ExternalFocusTracker> focus_tracker_;
176 179
177 // Host is the Widget implementation that is created and maintained by the 180 // Host is the Widget implementation that is created and maintained by the
178 // dropdown bar. It contains the DropdownBarView. 181 // dropdown bar. It contains the DropdownBarView.
179 scoped_ptr<views::Widget> host_; 182 scoped_ptr<views::Widget> host_;
180 183
181 // A flag to manually manage visibility. GTK/X11 is asynchronous and 184 // A flag to manually manage visibility. GTK/X11 is asynchronous and
182 // the state of the widget can be out of sync. 185 // the state of the widget can be out of sync.
183 bool is_visible_; 186 bool is_visible_;
184 187
185 DISALLOW_COPY_AND_ASSIGN(DropdownBarHost); 188 DISALLOW_COPY_AND_ASSIGN(DropdownBarHost);
186 }; 189 };
187 190
188 #endif // CHROME_BROWSER_UI_VIEWS_DROPDOWN_BAR_HOST_H_ 191 #endif // CHROME_BROWSER_UI_VIEWS_DROPDOWN_BAR_HOST_H_
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/download_started_animation_win.cc ('k') | chrome/browser/ui/views/dropdown_bar_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698