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

Unified Diff: chrome/browser/chromeos/notifications/notification_panel.h

Issue 9664072: Removing WmIpc and related files from ChromeOS (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Copyright Created 8 years, 9 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/chromeos/notifications/notification_panel.h
diff --git a/chrome/browser/chromeos/notifications/notification_panel.h b/chrome/browser/chromeos/notifications/notification_panel.h
deleted file mode 100644
index 5c984886bf09d8b9f6e7bcd7041104b2e382c866..0000000000000000000000000000000000000000
--- a/chrome/browser/chromeos/notifications/notification_panel.h
+++ /dev/null
@@ -1,247 +0,0 @@
-// Copyright (c) 2011 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.
-
-// Draws the view for the balloons.
-
-#ifndef CHROME_BROWSER_CHROMEOS_NOTIFICATIONS_NOTIFICATION_PANEL_H_
-#define CHROME_BROWSER_CHROMEOS_NOTIFICATIONS_NOTIFICATION_PANEL_H_
-#pragma once
-
-#include "base/memory/weak_ptr.h"
-#include "base/memory/scoped_ptr.h"
-#include "chrome/browser/chromeos/frame/panel_controller.h"
-#include "chrome/browser/chromeos/notifications/balloon_collection_impl.h"
-#include "content/public/browser/notification_registrar.h"
-#include "ui/gfx/rect.h"
-
-class Balloon;
-class Notification;
-
-namespace views {
-class ScrollView;
-} // namespace views
-
-namespace chromeos {
-
-class BalloonContainer;
-class BalloonViewImpl;
-class NotificationPanelTester;
-
-// NotificationPanel is a panel that displays notifications. It has
-// several states and displays the different portion of notifications
-// depending on in which state the panel is. The following shows
-// how the panel's state changes in response to various events.
-//
-// TODO(oshima): add remove event and fix state transition graph below.
-// Event List:
-// close: a user pressed close button on the title bar,
-// or the system closed the panel.
-// new : a new notification is added.
-// stale: one of new notifications became stale.
-// expand: a user pressed minimized panel to expand.
-// minimize: a user pressed the panel's title bar to minimize.
-// user: the user's mouse moved over the panel, indicates
-// that user is trying to interact with the panel.
-// For state, see State enum's description below.
-//
-//
-// [CLOSE]<-(event=close)-+ +--(event=stale, cond=has new|sticky)
-// | | | (event=new)
-// | | V |
-// +--(event=new)-->[STICKY_AND_NEW]----- +--------(event=user)
-// | ^ | |
-// | | (event=stale, V
-// | | cond=has new, no sticy) +[ KEEP_SIZE ]<-+
-// | (event=new) (event=minimize) | | |
-// | | | | | |
-// | | | (event=minimize)(event=close)|
-// | | +---------------+ | |
-// | | V V |
-// | [ MINIMIZED ]---(event=close)--> [CLOSE] |
-// | | ^ |
-// | | | |
-// | (event=expand) (event=minmize) (event=user)
-// | V | |
-// +--(event=open)---->[ FULL ]-------------+-------------------+
-// | ^ |
-// (event=close) +-------(event=stale)(event=new)
-// |
-// [CLOSE] <------+
-//
-class NotificationPanel : public PanelController::Delegate,
- public BalloonCollectionImpl::NotificationUI,
- public content::NotificationObserver,
- public base::SupportsWeakPtr<NotificationPanel> {
- public:
- enum State {
- FULL, // Show all notifications
- KEEP_SIZE, // Don't change the size.
- STICKY_AND_NEW, // Show only new and sticky notifications.
- MINIMIZED, // The panel is minimized.
- CLOSED, // The panel is closed.
- };
-
- NotificationPanel();
- virtual ~NotificationPanel();
-
- // Shows/Hides the Panel.
- void Show();
- void Hide();
-
- // BalloonCollectionImpl::NotificationUI overrides..
- virtual void Add(Balloon* balloon) OVERRIDE;
- virtual bool Update(Balloon* balloon) OVERRIDE;
- virtual void Remove(Balloon* balloon) OVERRIDE;
- virtual void Show(Balloon* balloon) OVERRIDE;
- virtual void ResizeNotification(Balloon* balloon,
- const gfx::Size& size) OVERRIDE;
- virtual void SetActiveView(BalloonViewImpl* view) OVERRIDE;
-
- // PanelController::Delegate overrides.
- virtual string16 GetPanelTitle() OVERRIDE;
- virtual SkBitmap GetPanelIcon() OVERRIDE;
- virtual bool CanClosePanel() OVERRIDE;
- virtual void ClosePanel() OVERRIDE;
- virtual void ActivatePanel() OVERRIDE;
-
- // NotificationObserver overrides:
- virtual void Observe(int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) OVERRIDE;
-
- // Called when a mouse left the panel window.
- void OnMouseLeave();
- void OnMouseMotion(const gfx::Point& point);
-
- NotificationPanelTester* GetTester();
-
- private:
- friend class NotificationPanelTester;
-
- void Init();
-
- // Unregister the panel's state change notification.
- void UnregisterNotification();
-
- // Update the Panel Size according to its state.
- void UpdatePanel(bool update_panel_size);
-
- // Scroll the panel so that the |balloon| is visible.
- void ScrollBalloonToVisible(Balloon* balloon);
-
- // Update the container's bounds so that it can show all notifications.
- void UpdateContainerBounds();
-
- // Update the notification's control view state.
- void UpdateControl();
-
- // Returns the panel's preferred bounds in the screen's coordinates.
- // The position will be controlled by window manager so
- // the origin is always (0, 0).
- gfx::Rect GetPreferredBounds();
-
- // Returns the bounds that covers sticky and new notifications.
- gfx::Rect GetStickyNewBounds();
-
- void StartStaleTimer(Balloon* balloon);
-
- // A callback function that is called when the notification
- // (that the view is associated with) becomes stale after a timeout.
- void OnStale(BalloonViewImpl* view);
-
- // Set the state. It can also print the
- void SetState(State, const char* method_name);
-
- // Mark the given notification as stale.
- void MarkStale(const Notification& notification);
-
- // Contains all notifications. This is owned by the panel so that we can
- // re-attach to the widget when closing and opening the panel.
- scoped_ptr<BalloonContainer> balloon_container_;
-
- // The notification panel's widget.
- views::Widget* panel_widget_;
-
- // The notification panel's widget.
- views::Widget* container_host_;
-
- // Panel controller for the notification panel.
- // This is owned by the panel to compute the panel size before
- // actually opening the panel.
- scoped_ptr<PanelController> panel_controller_;
-
- // A scrollable parent of the BalloonContainer.
- scoped_ptr<views::ScrollView> scroll_view_;
-
- // Panel's state.
- State state_;
-
- // The minimum size of a notification.
- gfx::Rect min_bounds_;
-
- // Stale timeout.
- int stale_timeout_;
-
- // A registrar to subscribe PANEL_STATE_CHANGED event.
- content::NotificationRegistrar registrar_;
-
- // The notification a mouse pointer is currently on. NULL if the mouse
- // is out of the panel.
- BalloonViewImpl* active_;
-
- // A balloon that should be visible when it gets some size.
- Balloon* scroll_to_;
-
- // An object that provides interfacce for tests.
- scoped_ptr<NotificationPanelTester> tester_;
-
- DISALLOW_COPY_AND_ASSIGN(NotificationPanel);
-};
-
-class NotificationPanelTester {
- public:
- explicit NotificationPanelTester(NotificationPanel* panel)
- : panel_(panel) {
- }
-
- NotificationPanel::State state() {
- return panel_->state_;
- }
-
- // Returns number of of sticky and new notifications.
- int GetNotificationCount() const;
-
- // Returns number of new notifications.
- int GetNewNotificationCount() const;
-
- // Returns number of of sticky notifications.
- int GetStickyNotificationCount() const;
-
- // Sets the timeout for a notification to become stale.
- void SetStaleTimeout(int timeout);
-
- // Mark the given notification as stale.
- void MarkStale(const Notification& notification);
-
- // Returns the notification panel's PanelController.
- PanelController* GetPanelController() const;
-
- // Returns the BalloonView object of the notification.
- BalloonViewImpl* GetBalloonView(BalloonCollectionImpl* collection,
- const Notification& notification);
-
- // True if the view is in visible in the ScrollView.
- bool IsVisible(const BalloonViewImpl* view) const;
-
- // True if the view is currently active.
- bool IsActive(const BalloonViewImpl* view) const;
-
- private:
- NotificationPanel* panel_;
- DISALLOW_COPY_AND_ASSIGN(NotificationPanelTester);
-};
-
-} // namespace chromeos
-
-#endif // CHROME_BROWSER_CHROMEOS_NOTIFICATIONS_NOTIFICATION_PANEL_H_

Powered by Google App Engine
This is Rietveld 408576698