| 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 |