OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 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 | 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 UI_MESSAGE_CENTER_VIEWS_TOAST_CONTENTS_VIEW_H_ | 5 #ifndef UI_MESSAGE_CENTER_VIEWS_TOAST_CONTENTS_VIEW_H_ |
6 #define UI_MESSAGE_CENTER_VIEWS_TOAST_CONTENTS_VIEW_H_ | 6 #define UI_MESSAGE_CENTER_VIEWS_TOAST_CONTENTS_VIEW_H_ |
7 | 7 |
8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
9 #include "base/memory/weak_ptr.h" | 9 #include "base/memory/weak_ptr.h" |
10 #include "ui/gfx/animation/animation_delegate.h" | 10 #include "ui/gfx/animation/animation_delegate.h" |
(...skipping 25 matching lines...) Expand all Loading... |
36 // widget/views are closed/destructed. | 36 // widget/views are closed/destructed. |
37 class ToastContentsView : public views::WidgetDelegateView, | 37 class ToastContentsView : public views::WidgetDelegateView, |
38 public MessageCenterController, | 38 public MessageCenterController, |
39 public gfx::AnimationDelegate { | 39 public gfx::AnimationDelegate { |
40 public: | 40 public: |
41 // Computes the size of a toast assuming it will host the given view. | 41 // Computes the size of a toast assuming it will host the given view. |
42 static gfx::Size GetToastSizeForView(const views::View* view); | 42 static gfx::Size GetToastSizeForView(const views::View* view); |
43 | 43 |
44 ToastContentsView(const std::string& notification_id, | 44 ToastContentsView(const std::string& notification_id, |
45 base::WeakPtr<MessagePopupCollection> collection); | 45 base::WeakPtr<MessagePopupCollection> collection); |
46 virtual ~ToastContentsView(); | 46 ~ToastContentsView() override; |
47 | 47 |
48 // Sets the inner view of the toast. If it has contents already, | 48 // Sets the inner view of the toast. If it has contents already, |
49 // |a11y_feedback_for_updates| causes the view to notify that the | 49 // |a11y_feedback_for_updates| causes the view to notify that the |
50 // accessibility message should be read after this update. | 50 // accessibility message should be read after this update. |
51 void SetContents(MessageView* view, bool a11y_feedback_for_updates); | 51 void SetContents(MessageView* view, bool a11y_feedback_for_updates); |
52 | 52 |
53 void UpdateContents(const Notification& notification, | 53 void UpdateContents(const Notification& notification, |
54 bool a11y_feedback_for_updates); | 54 bool a11y_feedback_for_updates); |
55 | 55 |
56 // Shows the new toast for the first time, animated. | 56 // Shows the new toast for the first time, animated. |
57 // |origin| is the right-bottom corner of the toast. | 57 // |origin| is the right-bottom corner of the toast. |
58 void RevealWithAnimation(gfx::Point origin); | 58 void RevealWithAnimation(gfx::Point origin); |
59 | 59 |
60 // Disconnectes the toast from the rest of the system immediately and start | 60 // Disconnectes the toast from the rest of the system immediately and start |
61 // an animation. Once animation finishes, closes the widget. | 61 // an animation. Once animation finishes, closes the widget. |
62 void CloseWithAnimation(); | 62 void CloseWithAnimation(); |
63 | 63 |
64 void SetBoundsWithAnimation(gfx::Rect new_bounds); | 64 void SetBoundsWithAnimation(gfx::Rect new_bounds); |
65 | 65 |
66 // Origin and bounds are not 'instant', but rather 'current stable values', | 66 // Origin and bounds are not 'instant', but rather 'current stable values', |
67 // there could be animation in progress that targets these values. | 67 // there could be animation in progress that targets these values. |
68 gfx::Point origin() { return origin_; } | 68 gfx::Point origin() { return origin_; } |
69 gfx::Rect bounds() { return gfx::Rect(origin_, preferred_size_); } | 69 gfx::Rect bounds() { return gfx::Rect(origin_, preferred_size_); } |
70 | 70 |
71 const std::string& id() { return id_; } | 71 const std::string& id() { return id_; } |
72 | 72 |
73 // Overridden from views::View: | 73 // Overridden from views::View: |
74 virtual void OnMouseEntered(const ui::MouseEvent& event) override; | 74 void OnMouseEntered(const ui::MouseEvent& event) override; |
75 virtual void OnMouseExited(const ui::MouseEvent& event) override; | 75 void OnMouseExited(const ui::MouseEvent& event) override; |
76 virtual void Layout() override; | 76 void Layout() override; |
77 virtual gfx::Size GetPreferredSize() const override; | 77 gfx::Size GetPreferredSize() const override; |
78 virtual void GetAccessibleState(ui::AXViewState* state) override; | 78 void GetAccessibleState(ui::AXViewState* state) override; |
79 | 79 |
80 private: | 80 private: |
81 // Overridden from MessageCenterController: | 81 // Overridden from MessageCenterController: |
82 virtual void ClickOnNotification(const std::string& notification_id) override; | 82 void ClickOnNotification(const std::string& notification_id) override; |
83 virtual void RemoveNotification(const std::string& notification_id, | 83 void RemoveNotification(const std::string& notification_id, |
84 bool by_user) override; | 84 bool by_user) override; |
85 virtual scoped_ptr<ui::MenuModel> CreateMenuModel( | 85 scoped_ptr<ui::MenuModel> CreateMenuModel( |
86 const NotifierId& notifier_id, | 86 const NotifierId& notifier_id, |
87 const base::string16& display_source) override; | 87 const base::string16& display_source) override; |
88 virtual bool HasClickedListener(const std::string& notification_id) override; | 88 bool HasClickedListener(const std::string& notification_id) override; |
89 virtual void ClickOnNotificationButton(const std::string& notification_id, | 89 void ClickOnNotificationButton(const std::string& notification_id, |
90 int button_index) override; | 90 int button_index) override; |
91 | 91 |
92 // Overridden from gfx::AnimationDelegate: | 92 // Overridden from gfx::AnimationDelegate: |
93 virtual void AnimationProgressed(const gfx::Animation* animation) override; | 93 void AnimationProgressed(const gfx::Animation* animation) override; |
94 virtual void AnimationEnded(const gfx::Animation* animation) override; | 94 void AnimationEnded(const gfx::Animation* animation) override; |
95 virtual void AnimationCanceled(const gfx::Animation* animation) override; | 95 void AnimationCanceled(const gfx::Animation* animation) override; |
96 | 96 |
97 // Overridden from views::WidgetDelegate: | 97 // Overridden from views::WidgetDelegate: |
98 virtual views::View* GetContentsView() override; | 98 views::View* GetContentsView() override; |
99 virtual void WindowClosing() override; | 99 void WindowClosing() override; |
100 virtual void OnDisplayChanged() override; | 100 void OnDisplayChanged() override; |
101 virtual void OnWorkAreaChanged() override; | 101 void OnWorkAreaChanged() override; |
102 | 102 |
103 // Initialization and update. | 103 // Initialization and update. |
104 void CreateWidget(gfx::NativeView parent); | 104 void CreateWidget(gfx::NativeView parent); |
105 | 105 |
106 // Immediately moves the toast without any sort of delay or animation. | 106 // Immediately moves the toast without any sort of delay or animation. |
107 void SetBoundsInstantly(gfx::Rect new_bounds); | 107 void SetBoundsInstantly(gfx::Rect new_bounds); |
108 | 108 |
109 // Given the bounds of a toast on the screen, compute the bouds for that | 109 // Given the bounds of a toast on the screen, compute the bouds for that |
110 // toast in 'closed' state. The 'closed' state is used as origin/destination | 110 // toast in 'closed' state. The 'closed' state is used as origin/destination |
111 // in reveal/closing animations. | 111 // in reveal/closing animations. |
(...skipping 22 matching lines...) Expand all Loading... |
134 | 134 |
135 gfx::Point origin_; | 135 gfx::Point origin_; |
136 gfx::Size preferred_size_; | 136 gfx::Size preferred_size_; |
137 | 137 |
138 DISALLOW_COPY_AND_ASSIGN(ToastContentsView); | 138 DISALLOW_COPY_AND_ASSIGN(ToastContentsView); |
139 }; | 139 }; |
140 | 140 |
141 } // namespace message_center | 141 } // namespace message_center |
142 | 142 |
143 #endif // UI_MESSAGE_CENTER_VIEWS_TOAST_CONTENTS_VIEW_H_ | 143 #endif // UI_MESSAGE_CENTER_VIEWS_TOAST_CONTENTS_VIEW_H_ |
OLD | NEW |