 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/notification_bubble_wrapper_win.h | 
| diff --git a/chrome/browser/ui/views/message_center/notification_bubble_wrapper_win.h b/chrome/browser/ui/views/message_center/notification_bubble_wrapper_win.h | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..168b9d3e77f61584a5eb8fe10985b3a94fde4706 | 
| --- /dev/null | 
| +++ b/chrome/browser/ui/views/message_center/notification_bubble_wrapper_win.h | 
| @@ -0,0 +1,62 @@ | 
| +// Copyright (c) 2013 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_NOTIFICATION_BUBBLE_WRAPPER_WIN_H_ | 
| +#define CHROME_BROWSER_UI_VIEWS_MESSAGE_CENTER_NOTIFICATION_BUBBLE_WRAPPER_WIN_H_ | 
| + | 
| +#include "chrome/browser/ui/views/message_center/web_notification_tray_win.h" | 
| +#include "ui/views/bubble/tray_bubble_view.h" | 
| +#include "ui/views/widget/widget.h" | 
| + | 
| +namespace message_center { | 
| + | 
| +namespace internal { | 
| + | 
| +// NotificationBubbleWrapperWin is a class that manages the views associated | 
| +// with a MessageBubbleBase object and that notifies the WebNotificationTrayWin | 
| +// when the widget closes. Delegates GetAnchorRect to the | 
| +// WebNotificationTrayWin. | 
| +class NotificationBubbleWrapperWin | 
| + : public views::WidgetObserver, | 
| + public views::TrayBubbleView::Delegate { | 
| + public: | 
| + // Takes ownership of |bubble|. | 
| + NotificationBubbleWrapperWin(WebNotificationTrayWin* tray, | 
| + message_center::MessageBubbleBase* bubble, | 
| 
sky
2013/01/30 14:38:17
Pass in as scoped_ptr so ownership if clear.
 
dewittj
2013/01/30 23:08:32
Done.
 | 
| + AnchorType anchor_type); | 
| + ~NotificationBubbleWrapperWin(); | 
| 
sky
2013/01/30 14:38:17
virtual
 
dewittj
2013/01/30 23:08:32
Done.
 | 
| + | 
| + // Overridden from views::WidgetObserver. | 
| + void OnWidgetClosing(views::Widget* widget) OVERRIDE; | 
| + | 
| + // TrayBubbleView::Delegate implementation. | 
| + virtual void BubbleViewDestroyed() OVERRIDE; | 
| + virtual void OnMouseEnteredView() OVERRIDE; | 
| + virtual void OnMouseExitedView() OVERRIDE; | 
| + virtual string16 GetAccessibleNameForBubble() OVERRIDE; | 
| + // GetAnchorRect passes responsibility for BubbleDelegateView::GetAnchorRect | 
| + // to the delegate. | 
| + virtual gfx::Rect GetAnchorRect(views::Widget* anchor_widget, | 
| + AnchorType anchor_type, | 
| + AnchorAlignment anchor_alignment) OVERRIDE; | 
| + virtual void HideBubble(const views::TrayBubbleView* bubble_view) OVERRIDE; | 
| + | 
| + // Convenience accessors. | 
| + views::TrayBubbleView* bubble_view() const { return bubble_view_; } | 
| 
sky
2013/01/30 14:38:17
in general const methods shouldn't return non-cons
 
dewittj
2013/01/30 23:08:32
Done.
 | 
| + views::Widget* bubble_widget() const { return bubble_widget_; } | 
| + message_center::MessageBubbleBase* bubble() const { return bubble_.get(); } | 
| + | 
| + private: | 
| + scoped_ptr<message_center::MessageBubbleBase> bubble_; | 
| + // |bubble_view_| is owned by its Widget. | 
| + views::TrayBubbleView* bubble_view_; | 
| + views::Widget* bubble_widget_; | 
| + WebNotificationTrayWin* tray_; | 
| +}; | 
| 
sky
2013/01/30 14:38:17
DISALLOW_...
 
dewittj
2013/01/30 23:08:32
Done.
 | 
| + | 
| +} // namespace internal | 
| + | 
| +} // namespace message_center | 
| + | 
| +#endif // CHROME_BROWSER_UI_VIEWS_MESSAGE_CENTER_NOTIFICATION_BUBBLE_WRAPPER_WIN_H_ |