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

Unified Diff: chrome/browser/notifications/balloons.h

Issue 338051: Adds UI components for desktop notifications, including balloon view classes ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: use notused.png resources for try servers Created 11 years, 2 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/notifications/balloons.h
===================================================================
--- chrome/browser/notifications/balloons.h (revision 30221)
+++ chrome/browser/notifications/balloons.h (working copy)
@@ -1,200 +0,0 @@
-// Copyright (c) 2009 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.
-
-// Handles the visible notification (or balloons).
-
-#ifndef CHROME_BROWSER_NOTIFICATIONS_BALLOONS_H_
-#define CHROME_BROWSER_NOTIFICATIONS_BALLOONS_H_
-
-#include <deque>
-#include <vector>
-
-#include "base/basictypes.h"
-#include "base/gfx/point.h"
-#include "base/gfx/rect.h"
-#include "base/gfx/size.h"
-#include "base/scoped_ptr.h"
-#include "chrome/browser/notifications/notification.h"
-
-class Balloon;
-class BalloonView;
-class Profile;
-class SiteInstance;
-
-class BalloonCloseListener {
- public:
- virtual ~BalloonCloseListener() { }
-
- // Called when a balloon is closed.
- virtual void OnBalloonClosed(Balloon* source) = 0;
-};
-
-class BalloonSpaceChangeListener {
- public:
- virtual ~BalloonSpaceChangeListener() { }
-
- // Called when there is more or less space for balloons due to
- // monitor size changes or balloons disappearing.
- virtual void OnBalloonSpaceChanged() = 0;
-};
-
-class BalloonCollectionInterface {
- public:
- virtual ~BalloonCollectionInterface() {}
-
- // Adds a new balloon for the specified notification.
- virtual void Add(const Notification& notification,
- Profile* profile,
- SiteInstance* site_instance) = 0;
-
- // Is there room to add another notification?
- virtual bool HasSpace() const = 0;
-};
-
-typedef std::deque<Balloon*> Balloons;
-
-// Represents a Notification on the screen.
-class Balloon {
- public:
- Balloon(const Notification& notification,
- Profile* profile,
- SiteInstance* site_instance,
- BalloonCloseListener* listener);
- ~Balloon();
-
- const Notification& notification() const {
- return notification_;
- }
-
- Profile* profile() const {
- return profile_;
- }
-
- SiteInstance* site_instance() const {
- return site_instance_;
- }
-
- void SetPosition(const gfx::Point& upper_left, bool reposition);
- void SetSize(const gfx::Size& size);
- void Show();
- void Close();
-
- const gfx::Point& position() const;
- const gfx::Size& size() const;
-
- private:
- Profile* profile_;
- SiteInstance* site_instance_;
- Notification notification_;
- BalloonCloseListener* close_listener_;
- scoped_ptr<BalloonView> balloon_view_;
- gfx::Point position_;
- gfx::Size size_;
- DISALLOW_COPY_AND_ASSIGN(Balloon);
-};
-
-class BalloonCollection : public BalloonCollectionInterface,
- public BalloonCloseListener {
- public:
- explicit BalloonCollection();
-
- BalloonSpaceChangeListener* space_change_listener() { return listener_; }
- void set_space_change_listener(BalloonSpaceChangeListener* listener) {
- listener_ = listener;
- }
-
- // BalloonCollectionInterface overrides
- virtual void Add(const Notification& notification,
- Profile* profile,
- SiteInstance* site_instance);
- virtual void ShowAll();
- virtual void HideAll();
- virtual bool HasSpace() const;
-
- // BalloonCloseListener interface
- virtual void OnBalloonClosed(Balloon* source);
-
- protected:
- // Overridable by unit tests.
- virtual Balloon* MakeBalloon(const Notification& notification,
- Profile* profile,
- SiteInstance* site_instance) {
- return new Balloon(notification, profile, site_instance, this);
- }
-
- private:
- // The number of balloons being displayed.
- int count() const { return balloons_.size(); }
-
- // Calculates layout values for the balloons including
- // the scaling, the max/min sizes, and the upper left corner of each.
- class Layout {
- public:
- Layout();
-
- // Refresh the work area and balloon placement.
- void OnDisplaySettingsChanged();
-
- int min_balloon_width() const;
- int max_balloon_width() const;
- int min_balloon_height() const;
- int max_balloon_height() const;
-
- // Returns both the total length available and the maximum
- // allowed per balloon.
- //
- // The length may be a height or length depending on the way that
- // balloons are laid out.
- const void GetMaxLengths(int* max_balloon_length, int* total_length) const;
-
- // Scale the size to count in the system font factor.
- int ScaleSize(int size) const;
-
- // Refresh the cached values for work area and drawing metrics.
- // This is done automatically first time and the application should
- // call this method to re-acquire metrics after any
- // resolution or settings change.
- //
- // Return true if and only if a metric changed.
- bool RefreshSystemMetrics();
-
- // Returns the starting value for NextUpperLeftPosition.
- gfx::Point GetStartPosition() const;
-
- // Compute the position for the next balloon.
- // Modifies origin.
- // Returns the position of the upper left coordinate for the given
- // balloon.
- gfx::Point NextPosition(const gfx::Size& balloon_size,
- gfx::Point* origin) const;
-
- private:
- enum Placement {
- HORIZONTALLY_FROM_BOTTOM_LEFT,
- HORIZONTALLY_FROM_BOTTOM_RIGHT,
- VERTICALLY_FROM_TOP_RIGHT,
- VERTICALLY_FROM_BOTTOM_RIGHT
- };
-
- // Minimum and maximum size of balloon
- static const int kBalloonMinWidth = 300;
- static const int kBalloonMaxWidth = 300;
- static const int kBalloonMinHeight = 90;
- static const int kBalloonMaxHeight = 120;
-
- static Placement placement_;
- gfx::Rect work_area_;
- double font_scale_factor_;
- DISALLOW_COPY_AND_ASSIGN(Layout);
- };
-
- // Non-owned pointer to an object listening for space changes.
- BalloonSpaceChangeListener* listener_;
-
- Balloons balloons_;
- Layout layout_;
- DISALLOW_COPY_AND_ASSIGN(BalloonCollection);
-};
-
-#endif // CHROME_BROWSER_NOTIFICATIONS_BALLOONS_H_
« no previous file with comments | « chrome/browser/notifications/balloon_collection_win.cc ('k') | chrome/browser/views/notifications/balloon_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698