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

Unified 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 on master @fa1d2262 and rearrange dependencies. 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 side-by-side diff with in-line comments
Download patch
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..433ac822f25ee5deabb3a1e52f7337275b1b733c
--- /dev/null
+++ b/chrome/browser/ui/views/message_center/message_center_tray_host_win.h
@@ -0,0 +1,75 @@
+// 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/message_center/message_center_tray_host.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 {
+
+// 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 MessageCenterTrayHost,
+ public StatusIconObserver {
+ public:
+ static MessageCenterTrayHostWin* GetInstance();
+ virtual ~MessageCenterTrayHostWin();
+
+ virtual message_center::MessageCenter* message_center() OVERRIDE;
+
+ // MessageCenterTrayHost implementation.
+ virtual void OnMessageCenterTrayChanged() OVERRIDE;
+ virtual string16 GetAccessibleNameForBubble() OVERRIDE;
+ virtual void OnShowMessageCenterBubble() OVERRIDE;
+ virtual void OnHideMessageCenterBubble() OVERRIDE;
+ virtual gfx::Rect GetAnchorRect(
+ views::Widget* anchor_widget,
+ views::TrayBubbleView::AnchorType anchor_type,
+ views::TrayBubbleView::AnchorAlignment anchor_alignment) OVERRIDE;
+ virtual bool CanShowPopups() OVERRIDE;
+ virtual gfx::NativeView GetBubbleWindowContainer() OVERRIDE;
+ virtual views::TrayBubbleView::AnchorAlignment GetAnchorAlignment() OVERRIDE;
+ virtual void UpdateInitParams(
+ views::TrayBubbleView::InitParams* init_params) OVERRIDE;
+ // There is no view associated with the system tray icon.
+ virtual views::View* GetAnchorView() OVERRIDE { return NULL; }
+
+ // StatusIconObserver override.
+ virtual void OnStatusIconClicked();
+
+ private:
+ MessageCenterTrayHostWin();
+ void UpdateAnchorRect();
+
+ 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_

Powered by Google App Engine
This is Rietveld 408576698