Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(50)

Side by Side Diff: chrome/browser/ui/views/message_center/message_center_tray_host_win.h

Issue 11819048: Implement message center on Windows (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Rebase. Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2012 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.
4
5 #ifndef CHROME_BROWSER_UI_VIEWS_MESSAGE_CENTER_MESSAGE_CENTER_TRAY_HOST_WIN_H_
6 #define CHROME_BROWSER_UI_VIEWS_MESSAGE_CENTER_MESSAGE_CENTER_TRAY_HOST_WIN_H_
7
8 #include "chrome/browser/status_icons/status_icon_observer.h"
9 #include "ui/message_center/message_center_tray.h"
10 #include "ui/views/bubble/tray_bubble_view.h"
11
12 class StatusIcon;
13 template <typename T> struct DefaultSingletonTraits;
14
15 namespace message_center {
16 class MessageCenter;
17 }
18
19 namespace views {
20 class Widget;
21 }
22
23 namespace ui {
24
25 namespace internal {
26 class WebNotificationBubbleWrapper;
27 }
28
29 // A Message Center Tray Host class that manages a system tray icon. The
30 // notification popups will be displayed in the corner of the screen and the
31 // message center will be displayed by the system tray icon on click.
32 // TODO(dewittj): quiet mode.
33 class MessageCenterTrayHostWin
34 : public MessageCenterTrayDelegate,
35 public MessageCenterTrayObserver,
36 public StatusIconObserver {
37 public:
38 static MessageCenterTrayHostWin* GetInstance();
39 virtual ~MessageCenterTrayHostWin();
40
41 virtual message_center::MessageCenter* message_center();
42
43 // MessageCenterTrayHost implementation.
44 virtual bool ShowPopups(message_center::MessageBubbleBase* bubble) OVERRIDE;
45 virtual void HidePopups() OVERRIDE;
46 virtual bool ShowMessageCenter(
47 message_center::MessageBubbleBase* bubble) OVERRIDE;
48 virtual void HideMessageCenter() OVERRIDE;
49 virtual void UpdateMessageCenter() OVERRIDE;
50 virtual void UpdatePopups() OVERRIDE;
51
52 // MessageCenterTrayObserver implementation.
53 virtual void OnMessageCenterTrayChanged() OVERRIDE;
54
55 virtual gfx::Rect GetAnchorRect(
56 gfx::Size preferred_size,
57 views::TrayBubbleView::AnchorType anchor_type,
58 views::TrayBubbleView::AnchorAlignment anchor_alignment);
59 virtual bool CanShowPopups();
60 virtual gfx::NativeView GetBubbleWindowContainer();
61 virtual views::TrayBubbleView::AnchorAlignment GetAnchorAlignment();
62
63 // StatusIconObserver override.
64 virtual void OnStatusIconClicked();
65
66 virtual void HideBubbleWithView(
67 const views::TrayBubbleView* bubble_view);
68
69 private:
70 MessageCenterTrayHostWin();
71 void UpdateAnchorRect();
72
73 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.
74 scoped_ptr<internal::WebNotificationBubbleWrapper> message_center_bubble_;
75
76 StatusIcon* status_icon_;
77 bool message_center_visible_;
78 MessageCenterTray* message_center_tray_;
79 gfx::Rect message_center_anchor_rect_;
80 gfx::Rect popup_anchor_rect_;
81
82 friend struct DefaultSingletonTraits<MessageCenterTrayHostWin>;
83 DISALLOW_COPY_AND_ASSIGN(MessageCenterTrayHostWin);
84 };
85
86 } // namespace ui
87
88 #endif // CHROME_BROWSER_UI_VIEWS_MESSAGE_CENTER_MESSAGE_CENTER_TRAY_HOST_WIN_H _
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698