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

Side by Side Diff: chrome/browser/views/tabs/tab_renderer.h

Issue 329021: Makes inactive pinned tabs throb on views when the title changes.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 1 month 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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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_VIEWS_TABS_TAB_RENDERER_H__ 5 #ifndef CHROME_BROWSER_VIEWS_TABS_TAB_RENDERER_H__
6 #define CHROME_BROWSER_VIEWS_TABS_TAB_RENDERER_H__ 6 #define CHROME_BROWSER_VIEWS_TABS_TAB_RENDERER_H__
7 7
8 #include "app/animation.h" 8 #include "app/animation.h"
9 #include "app/slide_animation.h"
10 #include "app/throb_animation.h"
11 #include "base/gfx/point.h" 9 #include "base/gfx/point.h"
10 #include "base/scoped_ptr.h"
12 #include "base/string16.h" 11 #include "base/string16.h"
13 #include "views/controls/button/image_button.h" 12 #include "views/controls/button/image_button.h"
14 #include "views/view.h" 13 #include "views/view.h"
15 14
15 class SlideAnimation;
16 class TabContents; 16 class TabContents;
17 class ThrobAnimation;
17 18
18 /////////////////////////////////////////////////////////////////////////////// 19 ///////////////////////////////////////////////////////////////////////////////
19 // 20 //
20 // TabRenderer 21 // TabRenderer
21 // 22 //
22 // A View that renders a Tab, either in a TabStrip or in a DraggedTabView. 23 // A View that renders a Tab, either in a TabStrip or in a DraggedTabView.
23 // 24 //
24 /////////////////////////////////////////////////////////////////////////////// 25 ///////////////////////////////////////////////////////////////////////////////
25 class TabRenderer : public views::View, 26 class TabRenderer : public views::View,
26 public views::ButtonListener, 27 public views::ButtonListener,
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 virtual bool IsSelected() const; 61 virtual bool IsSelected() const;
61 62
62 // Advance the Loading Animation to the next frame, or hide the animation if 63 // Advance the Loading Animation to the next frame, or hide the animation if
63 // the tab isn't loading. 64 // the tab isn't loading.
64 void ValidateLoadingAnimation(AnimationState animation_state); 65 void ValidateLoadingAnimation(AnimationState animation_state);
65 66
66 // Starts/Stops a pulse animation. 67 // Starts/Stops a pulse animation.
67 void StartPulse(); 68 void StartPulse();
68 void StopPulse(); 69 void StopPulse();
69 70
71 // Start/stop the pinned tab title animation.
72 void StartPinnedTabTitleAnimation();
73 void StopPinnedTabTitleAnimation();
74
70 // Set the background offset used to match the image in the inactive tab 75 // Set the background offset used to match the image in the inactive tab
71 // to the frame image. 76 // to the frame image.
72 void SetBackgroundOffset(const gfx::Point& offset) { 77 void SetBackgroundOffset(const gfx::Point& offset) {
73 background_offset_ = offset; 78 background_offset_ = offset;
74 } 79 }
75 80
76 // Set the theme provider - because we get detached, we are frequently 81 // Set the theme provider - because we get detached, we are frequently
77 // outside of a hierarchy with a theme provider at the top. This should be 82 // outside of a hierarchy with a theme provider at the top. This should be
78 // called whenever we're detached or attached to a hierarchy. 83 // called whenever we're detached or attached to a hierarchy.
79 void SetThemeProvider(ThemeProvider* provider) { 84 void SetThemeProvider(ThemeProvider* provider) {
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 // Returns the number of favicon-size elements that can fit in the tab's 151 // Returns the number of favicon-size elements that can fit in the tab's
147 // current size. 152 // current size.
148 int IconCapacity() const; 153 int IconCapacity() const;
149 154
150 // Returns whether the Tab should display a favicon. 155 // Returns whether the Tab should display a favicon.
151 bool ShouldShowIcon() const; 156 bool ShouldShowIcon() const;
152 157
153 // Returns whether the Tab should display a close button. 158 // Returns whether the Tab should display a close button.
154 bool ShouldShowCloseBox() const; 159 bool ShouldShowCloseBox() const;
155 160
161 // Gets the throb value for the tab. When a tab is not selected the
162 // active background is drawn at |GetThrobValue()|%. This is used for hover,
163 // pinned tab title change and pulsing.
164 double GetThrobValue();
165
156 // The bounds of various sections of the display. 166 // The bounds of various sections of the display.
157 gfx::Rect favicon_bounds_; 167 gfx::Rect favicon_bounds_;
158 gfx::Rect title_bounds_; 168 gfx::Rect title_bounds_;
159 169
160 // The offset used to paint the inactive background image. 170 // The offset used to paint the inactive background image.
161 gfx::Point background_offset_; 171 gfx::Point background_offset_;
162 172
163 // Current state of the animation. 173 // Current state of the animation.
164 AnimationState animation_state_; 174 AnimationState animation_state_;
165 175
166 // The current index into the Animation image strip. 176 // The current index into the Animation image strip.
167 int animation_frame_; 177 int animation_frame_;
168 178
169 // Close Button. 179 // Close Button.
170 views::ImageButton* close_button_; 180 views::ImageButton* close_button_;
171 181
172 // Hover animation. 182 // Hover animation.
173 scoped_ptr<SlideAnimation> hover_animation_; 183 scoped_ptr<SlideAnimation> hover_animation_;
174 184
175 // Pulse animation. 185 // Pulse animation.
176 scoped_ptr<ThrobAnimation> pulse_animation_; 186 scoped_ptr<ThrobAnimation> pulse_animation_;
177 187
188 // Animation used when the title of an inactive pinned tab changes.
189 scoped_ptr<ThrobAnimation> pinned_title_animation_;
190
178 // Model data. We store this here so that we don't need to ask the underlying 191 // Model data. We store this here so that we don't need to ask the underlying
179 // model, which is tricky since instances of this object can outlive the 192 // model, which is tricky since instances of this object can outlive the
180 // corresponding objects in the underlying model. 193 // corresponding objects in the underlying model.
181 struct TabData { 194 struct TabData {
182 SkBitmap favicon; 195 SkBitmap favicon;
183 string16 title; 196 string16 title;
184 bool loading; 197 bool loading;
185 bool crashed; 198 bool crashed;
186 bool off_the_record; 199 bool off_the_record;
187 bool show_icon; 200 bool show_icon;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 236
224 ThemeProvider* theme_provider_; 237 ThemeProvider* theme_provider_;
225 238
226 static void InitClass(); 239 static void InitClass();
227 static bool initialized_; 240 static bool initialized_;
228 241
229 DISALLOW_EVIL_CONSTRUCTORS(TabRenderer); 242 DISALLOW_EVIL_CONSTRUCTORS(TabRenderer);
230 }; 243 };
231 244
232 #endif // CHROME_BROWSER_VIEWS_TABS_TAB_RENDERER_H__ 245 #endif // CHROME_BROWSER_VIEWS_TABS_TAB_RENDERER_H__
OLDNEW
« no previous file with comments | « chrome/browser/views/tabs/dragged_tab_controller.cc ('k') | chrome/browser/views/tabs/tab_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698