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

Side by Side Diff: ash/common/system/tray/throbber_view.cc

Issue 2734653002: chromeos: Move files in //ash/common to //ash (Closed)
Patch Set: fix a11y tests, fix docs Created 3 years, 9 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
« no previous file with comments | « ash/common/system/tray/throbber_view.h ('k') | ash/common/system/tray/tray_background_view.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2013 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 #include "ash/common/system/tray/throbber_view.h"
6
7 #include "ash/common/system/tray/tray_constants.h"
8 #include "ash/resources/grit/ash_resources.h"
9 #include "ui/base/resource/resource_bundle.h"
10 #include "ui/compositor/layer.h"
11 #include "ui/compositor/scoped_layer_animation_settings.h"
12
13 namespace ash {
14 namespace {
15
16 // Duration for showing/hiding animation in milliseconds.
17 const int kThrobberAnimationDurationMs = 200;
18
19 } // namespace
20
21 SystemTrayThrobber::SystemTrayThrobber() : views::SmoothedThrobber() {}
22
23 SystemTrayThrobber::~SystemTrayThrobber() {}
24
25 void SystemTrayThrobber::SetTooltipText(const base::string16& tooltip_text) {
26 tooltip_text_ = tooltip_text;
27 }
28
29 bool SystemTrayThrobber::GetTooltipText(const gfx::Point& p,
30 base::string16* tooltip) const {
31 if (tooltip_text_.empty())
32 return false;
33
34 *tooltip = tooltip_text_;
35 return true;
36 }
37
38 ThrobberView::ThrobberView() {
39 throbber_ = new SystemTrayThrobber();
40 throbber_->set_stop_delay_ms(kThrobberAnimationDurationMs);
41 AddChildView(throbber_);
42
43 SetPaintToLayer();
44 layer()->SetFillsBoundsOpaquely(false);
45 layer()->SetOpacity(0.0);
46 }
47
48 ThrobberView::~ThrobberView() {}
49
50 gfx::Size ThrobberView::GetPreferredSize() const {
51 return gfx::Size(kTrayPopupItemMinHeight, kTrayPopupItemMinHeight);
52 }
53
54 void ThrobberView::Layout() {
55 View* child = child_at(0);
56 gfx::Size ps = child->GetPreferredSize();
57 child->SetBounds((width() - ps.width()) / 2, (height() - ps.height()) / 2,
58 ps.width(), ps.height());
59 SizeToPreferredSize();
60 }
61
62 bool ThrobberView::GetTooltipText(const gfx::Point& p,
63 base::string16* tooltip) const {
64 if (tooltip_text_.empty())
65 return false;
66
67 *tooltip = tooltip_text_;
68 return true;
69 }
70
71 void ThrobberView::Start() {
72 ScheduleAnimation(true);
73 throbber_->Start();
74 }
75
76 void ThrobberView::Stop() {
77 ScheduleAnimation(false);
78 throbber_->Stop();
79 }
80
81 void ThrobberView::SetTooltipText(const base::string16& tooltip_text) {
82 tooltip_text_ = tooltip_text;
83 throbber_->SetTooltipText(tooltip_text);
84 }
85
86 void ThrobberView::ScheduleAnimation(bool start_throbber) {
87 // Stop any previous animation.
88 layer()->GetAnimator()->StopAnimating();
89
90 ui::ScopedLayerAnimationSettings animation(layer()->GetAnimator());
91 animation.SetTransitionDuration(
92 base::TimeDelta::FromMilliseconds(kThrobberAnimationDurationMs));
93
94 layer()->SetOpacity(start_throbber ? 1.0 : 0.0);
95 }
96
97 } // namespace ash
OLDNEW
« no previous file with comments | « ash/common/system/tray/throbber_view.h ('k') | ash/common/system/tray/tray_background_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698