| 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..011657bd3b37efbc5d919ac322a872bd1f26990b
|
| --- /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 ui {
|
| +
|
| +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,
|
| + AnchorType anchor_type);
|
| + ~NotificationBubbleWrapperWin();
|
| +
|
| + // Overridden from views::WidgetObserver.
|
| + void OnWidgetClosing(views::Widget* widget);
|
| +
|
| + // TrayBubbleView::Delegate implementation.
|
| + virtual void BubbleViewDestroyed();
|
| + virtual void OnMouseEnteredView();
|
| + virtual void OnMouseExitedView();
|
| + virtual string16 GetAccessibleNameForBubble();
|
| + // GetAnchorRect passes responsibility for BubbleDelegateView::GetAnchorRect
|
| + // to the delegate.
|
| + virtual gfx::Rect GetAnchorRect(views::Widget* anchor_widget,
|
| + AnchorType anchor_type,
|
| + AnchorAlignment anchor_alignment);
|
| + virtual void HideBubble(const views::TrayBubbleView* bubble_view);
|
| +
|
| + // Convenience accessors.
|
| + views::TrayBubbleView* bubble_view() const { return bubble_view_; }
|
| + 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 unowned.
|
| + views::TrayBubbleView* bubble_view_;
|
| + views::Widget* bubble_widget_;
|
| + WebNotificationTrayWin* tray_;
|
| +};
|
| +
|
| +} // namespace internal
|
| +
|
| +} // namespace ui
|
| +
|
| +#endif // CHROME_BROWSER_UI_VIEWS_MESSAGE_CENTER_NOTIFICATION_BUBBLE_WRAPPER_WIN_H_
|
|
|