Switch global error menu icon to vectorized MD asset
[chromium-blink-merge.git] / ash / system / tray / throbber_view.h
blobf09dd8bff390eb9437aebd5a64c160e89bf54500
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.
5 #ifndef ASH_SYSTEM_TRAY_THROBBER_VIEW_H_
6 #define ASH_SYSTEM_TRAY_THROBBER_VIEW_H_
8 #include "ui/gfx/geometry/size.h"
9 #include "ui/views/controls/throbber.h"
10 #include "ui/views/view.h"
12 namespace ash {
14 // A SmoothedThrobber with tooltip.
15 class SystemTrayThrobber : public views::SmoothedThrobber {
16 public:
17 SystemTrayThrobber();
18 ~SystemTrayThrobber() override;
20 void SetTooltipText(const base::string16& tooltip_text);
22 // Overriden from views::View.
23 bool GetTooltipText(const gfx::Point& p,
24 base::string16* tooltip) const override;
26 private:
27 // The current tooltip text.
28 base::string16 tooltip_text_;
30 DISALLOW_COPY_AND_ASSIGN(SystemTrayThrobber);
33 // A View containing a SystemTrayThrobber with animation for starting/stopping.
34 class ThrobberView : public views::View {
35 public:
36 ThrobberView();
37 ~ThrobberView() override;
39 void Start();
40 void Stop();
41 void SetTooltipText(const base::string16& tooltip_text);
43 // Overriden from views::View.
44 gfx::Size GetPreferredSize() const override;
45 void Layout() override;
46 bool GetTooltipText(const gfx::Point& p,
47 base::string16* tooltip) const override;
49 private:
50 // Schedules animation for starting/stopping throbber.
51 void ScheduleAnimation(bool start_throbber);
53 SystemTrayThrobber* throbber_;
55 // The current tooltip text.
56 base::string16 tooltip_text_;
58 DISALLOW_COPY_AND_ASSIGN(ThrobberView);
61 } // namespace ash
63 #endif // ASH_SYSTEM_TRAY_THROBBER_VIEW_H_