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

Side by Side Diff: chrome/browser/ui/views/download_shelf_view.cc

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 #include "chrome/browser/views/download_shelf_view.h" 5 #include "chrome/browser/views/download_shelf_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "app/l10n_util.h" 9 #include "app/l10n_util.h"
10 #include "app/resource_bundle.h" 10 #include "app/resource_bundle.h"
11 #include "app/slide_animation.h"
12 #include "base/logging.h" 11 #include "base/logging.h"
13 #include "base/utf_string_conversions.h" 12 #include "base/utf_string_conversions.h"
14 #include "chrome/browser/download/download_item.h" 13 #include "chrome/browser/download/download_item.h"
15 #include "chrome/browser/download/download_item_model.h" 14 #include "chrome/browser/download/download_item_model.h"
16 #include "chrome/browser/download/download_manager.h" 15 #include "chrome/browser/download/download_manager.h"
17 #include "chrome/browser/tab_contents/navigation_entry.h" 16 #include "chrome/browser/tab_contents/navigation_entry.h"
18 #include "chrome/browser/themes/browser_theme_provider.h" 17 #include "chrome/browser/themes/browser_theme_provider.h"
19 #include "chrome/browser/ui/browser.h" 18 #include "chrome/browser/ui/browser.h"
20 #include "chrome/browser/ui/view_ids.h" 19 #include "chrome/browser/ui/view_ids.h"
21 #include "chrome/browser/ui/views/download_item_view.h" 20 #include "chrome/browser/ui/views/download_item_view.h"
22 #include "chrome/browser/ui/views/frame/browser_view.h" 21 #include "chrome/browser/ui/views/frame/browser_view.h"
23 #include "gfx/canvas.h" 22 #include "gfx/canvas.h"
24 #include "grit/generated_resources.h" 23 #include "grit/generated_resources.h"
25 #include "grit/theme_resources.h" 24 #include "grit/theme_resources.h"
25 #include "ui/base/animation/slide_animation.h"
26 #include "views/background.h" 26 #include "views/background.h"
27 #include "views/controls/button/image_button.h" 27 #include "views/controls/button/image_button.h"
28 #include "views/controls/image_view.h" 28 #include "views/controls/image_view.h"
29 29
30 // Max number of download views we'll contain. Any time a view is added and 30 // Max number of download views we'll contain. Any time a view is added and
31 // we already have this many download views, one is removed. 31 // we already have this many download views, one is removed.
32 static const size_t kMaxDownloadViews = 15; 32 static const size_t kMaxDownloadViews = 15;
33 33
34 // Padding from left edge and first download view. 34 // Padding from left edge and first download view.
35 static const int kLeftPadding = 2; 35 static const int kLeftPadding = 2;
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 rb.GetBitmapNamed(IDR_CLOSE_BAR)); 113 rb.GetBitmapNamed(IDR_CLOSE_BAR));
114 close_button_->SetImage(views::CustomButton::BS_HOT, 114 close_button_->SetImage(views::CustomButton::BS_HOT,
115 rb.GetBitmapNamed(IDR_CLOSE_BAR_H)); 115 rb.GetBitmapNamed(IDR_CLOSE_BAR_H));
116 close_button_->SetImage(views::CustomButton::BS_PUSHED, 116 close_button_->SetImage(views::CustomButton::BS_PUSHED,
117 rb.GetBitmapNamed(IDR_CLOSE_BAR_P)); 117 rb.GetBitmapNamed(IDR_CLOSE_BAR_P));
118 close_button_->SetAccessibleName( 118 close_button_->SetAccessibleName(
119 UTF16ToWide(l10n_util::GetStringUTF16(IDS_ACCNAME_CLOSE))); 119 UTF16ToWide(l10n_util::GetStringUTF16(IDS_ACCNAME_CLOSE)));
120 UpdateButtonColors(); 120 UpdateButtonColors();
121 AddChildView(close_button_); 121 AddChildView(close_button_);
122 122
123 new_item_animation_.reset(new SlideAnimation(this)); 123 new_item_animation_.reset(new ui::SlideAnimation(this));
124 new_item_animation_->SetSlideDuration(kNewItemAnimationDurationMs); 124 new_item_animation_->SetSlideDuration(kNewItemAnimationDurationMs);
125 125
126 shelf_animation_.reset(new SlideAnimation(this)); 126 shelf_animation_.reset(new ui::SlideAnimation(this));
127 shelf_animation_->SetSlideDuration(kShelfAnimationDurationMs); 127 shelf_animation_->SetSlideDuration(kShelfAnimationDurationMs);
128 Show(); 128 Show();
129 } 129 }
130 130
131 void DownloadShelfView::AddDownloadView(DownloadItemView* view) { 131 void DownloadShelfView::AddDownloadView(DownloadItemView* view) {
132 mouse_watcher_.Stop(); 132 mouse_watcher_.Stop();
133 133
134 Show(); 134 Show();
135 135
136 DCHECK(view); 136 DCHECK(view);
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 } 217 }
218 prefsize.Enlarge(0, kTopBottomPadding + kTopBottomPadding); 218 prefsize.Enlarge(0, kTopBottomPadding + kTopBottomPadding);
219 if (shelf_animation_->is_animating()) { 219 if (shelf_animation_->is_animating()) {
220 prefsize.set_height(static_cast<int>( 220 prefsize.set_height(static_cast<int>(
221 static_cast<double>(prefsize.height()) * 221 static_cast<double>(prefsize.height()) *
222 shelf_animation_->GetCurrentValue())); 222 shelf_animation_->GetCurrentValue()));
223 } 223 }
224 return prefsize; 224 return prefsize;
225 } 225 }
226 226
227 void DownloadShelfView::AnimationProgressed(const Animation *animation) { 227 void DownloadShelfView::AnimationProgressed(const ui::Animation *animation) {
228 if (animation == new_item_animation_.get()) { 228 if (animation == new_item_animation_.get()) {
229 Layout(); 229 Layout();
230 SchedulePaint(); 230 SchedulePaint();
231 } else if (animation == shelf_animation_.get()) { 231 } else if (animation == shelf_animation_.get()) {
232 // Force a re-layout of the parent, which will call back into 232 // Force a re-layout of the parent, which will call back into
233 // GetPreferredSize, where we will do our animation. In the case where the 233 // GetPreferredSize, where we will do our animation. In the case where the
234 // animation is hiding, we do a full resize - the fast resizing would 234 // animation is hiding, we do a full resize - the fast resizing would
235 // otherwise leave blank white areas where the shelf was and where the 235 // otherwise leave blank white areas where the shelf was and where the
236 // user's eye is. Thankfully bottom-resizing is a lot faster than 236 // user's eye is. Thankfully bottom-resizing is a lot faster than
237 // top-resizing. 237 // top-resizing.
238 parent_->SelectedTabToolbarSizeChanged(shelf_animation_->IsShowing()); 238 parent_->SelectedTabToolbarSizeChanged(shelf_animation_->IsShowing());
239 } 239 }
240 } 240 }
241 241
242 void DownloadShelfView::AnimationEnded(const Animation *animation) { 242 void DownloadShelfView::AnimationEnded(const ui::Animation *animation) {
243 if (animation == shelf_animation_.get()) { 243 if (animation == shelf_animation_.get()) {
244 parent_->SetDownloadShelfVisible(shelf_animation_->IsShowing()); 244 parent_->SetDownloadShelfVisible(shelf_animation_->IsShowing());
245 if (!shelf_animation_->IsShowing()) 245 if (!shelf_animation_->IsShowing())
246 Closed(); 246 Closed();
247 } 247 }
248 } 248 }
249 249
250 void DownloadShelfView::Layout() { 250 void DownloadShelfView::Layout() {
251 // Now that we know we have a parent, we can safely set our theme colors. 251 // Now that we know we have a parent, we can safely set our theme colors.
252 show_all_view_->SetColor( 252 show_all_view_->SetColor(
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 const DownloadItemView* download_item_view) { 433 const DownloadItemView* download_item_view) {
434 gfx::Rect bounds = download_item_view->bounds(); 434 gfx::Rect bounds = download_item_view->bounds();
435 435
436 #if defined(TOOLKIT_VIEWS) 436 #if defined(TOOLKIT_VIEWS)
437 bounds.set_height(bounds.height() - 1); 437 bounds.set_height(bounds.height() - 1);
438 bounds.Offset(0, 3); 438 bounds.Offset(0, 3);
439 #endif 439 #endif
440 440
441 return bounds; 441 return bounds;
442 } 442 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/download_shelf_view.h ('k') | chrome/browser/ui/views/download_started_animation_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698