Chromium Code Reviews| Index: chrome/browser/ui/views/message_center/message_center_tray_host_win.h |
| diff --git a/chrome/browser/ui/views/message_center/message_center_tray_host_win.h b/chrome/browser/ui/views/message_center/message_center_tray_host_win.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..7888eef564f2df336afcbfb1f25d7204aa712ece |
| --- /dev/null |
| +++ b/chrome/browser/ui/views/message_center/message_center_tray_host_win.h |
| @@ -0,0 +1,88 @@ |
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef CHROME_BROWSER_UI_VIEWS_MESSAGE_CENTER_MESSAGE_CENTER_TRAY_HOST_WIN_H_ |
| +#define CHROME_BROWSER_UI_VIEWS_MESSAGE_CENTER_MESSAGE_CENTER_TRAY_HOST_WIN_H_ |
| + |
| +#include "chrome/browser/status_icons/status_icon_observer.h" |
| +#include "ui/message_center/message_center_tray.h" |
| +#include "ui/views/bubble/tray_bubble_view.h" |
| + |
| +class StatusIcon; |
| +template <typename T> struct DefaultSingletonTraits; |
| + |
| +namespace message_center { |
| +class MessageCenter; |
| +} |
| + |
| +namespace views { |
| +class Widget; |
| +} |
| + |
| +namespace ui { |
| + |
| +namespace internal { |
| +class WebNotificationBubbleWrapper; |
| +} |
| + |
| +// A Message Center Tray Host class that manages a system tray icon. The |
| +// notification popups will be displayed in the corner of the screen and the |
| +// message center will be displayed by the system tray icon on click. |
| +// TODO(dewittj): quiet mode. |
| +class MessageCenterTrayHostWin |
| + : public MessageCenterTrayDelegate, |
| + public MessageCenterTrayObserver, |
| + public StatusIconObserver { |
| + public: |
| + static MessageCenterTrayHostWin* GetInstance(); |
| + virtual ~MessageCenterTrayHostWin(); |
| + |
| + virtual message_center::MessageCenter* message_center(); |
| + |
| + // MessageCenterTrayHost implementation. |
| + virtual bool ShowPopups(message_center::MessageBubbleBase* bubble) OVERRIDE; |
| + virtual void HidePopups() OVERRIDE; |
| + virtual bool ShowMessageCenter( |
| + message_center::MessageBubbleBase* bubble) OVERRIDE; |
| + virtual void HideMessageCenter() OVERRIDE; |
| + virtual void UpdateMessageCenter() OVERRIDE; |
| + virtual void UpdatePopups() OVERRIDE; |
| + |
| + // MessageCenterTrayObserver implementation. |
| + virtual void OnMessageCenterTrayChanged() OVERRIDE; |
| + |
| + virtual gfx::Rect GetAnchorRect( |
| + gfx::Size preferred_size, |
| + views::TrayBubbleView::AnchorType anchor_type, |
| + views::TrayBubbleView::AnchorAlignment anchor_alignment); |
| + virtual bool CanShowPopups(); |
| + virtual gfx::NativeView GetBubbleWindowContainer(); |
| + virtual views::TrayBubbleView::AnchorAlignment GetAnchorAlignment(); |
| + |
| + // StatusIconObserver override. |
| + virtual void OnStatusIconClicked(); |
| + |
| + virtual void HideBubbleWithView( |
| + const views::TrayBubbleView* bubble_view); |
| + |
| + private: |
| + MessageCenterTrayHostWin(); |
| + void UpdateAnchorRect(); |
| + |
| + scoped_ptr<internal::WebNotificationBubbleWrapper> popup_bubble_; |
|
Pete Williamson
2013/01/17 19:07:45
Change name to something win specific.
dewittj
2013/01/18 00:57:46
Done.
|
| + scoped_ptr<internal::WebNotificationBubbleWrapper> message_center_bubble_; |
| + |
| + StatusIcon* status_icon_; |
| + bool message_center_visible_; |
| + MessageCenterTray* message_center_tray_; |
| + gfx::Rect message_center_anchor_rect_; |
| + gfx::Rect popup_anchor_rect_; |
| + |
| + friend struct DefaultSingletonTraits<MessageCenterTrayHostWin>; |
| + DISALLOW_COPY_AND_ASSIGN(MessageCenterTrayHostWin); |
| +}; |
| + |
| +} // namespace ui |
| + |
| +#endif // CHROME_BROWSER_UI_VIEWS_MESSAGE_CENTER_MESSAGE_CENTER_TRAY_HOST_WIN_H_ |