 Chromium Code Reviews
 Chromium Code Reviews Issue 11819048:
  Implement message center on Windows  (Closed) 
  Base URL: http://git.chromium.org/chromium/src.git@master
    
  
    Issue 11819048:
  Implement message center on Windows  (Closed) 
  Base URL: http://git.chromium.org/chromium/src.git@master| 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_ |