| Index: chrome/browser/chromeos/notifications/balloon_collection_impl.cc
|
| diff --git a/chrome/browser/chromeos/notifications/balloon_collection_impl.cc b/chrome/browser/chromeos/notifications/balloon_collection_impl.cc
|
| deleted file mode 100644
|
| index deba6fa4e189779e4fa4b6aed5123a88944d24da..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/chromeos/notifications/balloon_collection_impl.cc
|
| +++ /dev/null
|
| @@ -1,184 +0,0 @@
|
| -// 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.
|
| -
|
| -#include "chrome/browser/chromeos/notifications/balloon_collection_impl.h"
|
| -
|
| -#include <algorithm>
|
| -
|
| -#include "base/logging.h"
|
| -#include "chrome/browser/chromeos/notifications/balloon_view.h"
|
| -#include "chrome/browser/chromeos/notifications/notification_panel.h"
|
| -#include "chrome/browser/notifications/balloon.h"
|
| -#include "chrome/browser/notifications/notification.h"
|
| -#include "chrome/browser/ui/browser_list.h"
|
| -#include "chrome/common/chrome_notification_types.h"
|
| -#include "content/public/browser/notification_service.h"
|
| -#include "ui/gfx/rect.h"
|
| -#include "ui/gfx/size.h"
|
| -
|
| -namespace {
|
| -
|
| -// Margin from the edge of the work area
|
| -const int kVerticalEdgeMargin = 5;
|
| -const int kHorizontalEdgeMargin = 5;
|
| -
|
| -} // namespace
|
| -
|
| -namespace chromeos {
|
| -
|
| -BalloonCollectionImpl::BalloonCollectionImpl()
|
| - : notification_ui_(new NotificationPanel()) {
|
| - registrar_.Add(this, chrome::NOTIFICATION_BROWSER_CLOSED,
|
| - content::NotificationService::AllSources());
|
| -}
|
| -
|
| -BalloonCollectionImpl::~BalloonCollectionImpl() {
|
| - Shutdown();
|
| -}
|
| -
|
| -void BalloonCollectionImpl::Add(const Notification& notification,
|
| - Profile* profile) {
|
| - Balloon* new_balloon = MakeBalloon(notification, profile);
|
| - base_.Add(new_balloon, false);
|
| - new_balloon->Show();
|
| - notification_ui_->Add(new_balloon);
|
| -
|
| - // There may be no listener in a unit test.
|
| - if (space_change_listener_)
|
| - space_change_listener_->OnBalloonSpaceChanged();
|
| -
|
| - // This is used only for testing.
|
| - if (!on_collection_changed_callback_.is_null())
|
| - on_collection_changed_callback_.Run();
|
| -}
|
| -
|
| -bool BalloonCollectionImpl::AddWebUIMessageCallback(
|
| - const Notification& notification,
|
| - const std::string& message,
|
| - const BalloonViewHost::MessageCallback& callback) {
|
| - Balloon* balloon = FindBalloon(notification);
|
| - if (!balloon)
|
| - return false;
|
| -
|
| - BalloonViewHost* host =
|
| - static_cast<BalloonViewHost*>(balloon->view()->GetHost());
|
| - return host->AddWebUIMessageCallback(message, callback);
|
| -}
|
| -
|
| -// Called from SystemNotification::Show for system notifications.
|
| -void BalloonCollectionImpl::AddSystemNotification(
|
| - const Notification& notification,
|
| - Profile* profile,
|
| - bool sticky) {
|
| - Balloon* new_balloon = new Balloon(notification, profile, this);
|
| - new_balloon->set_view(
|
| - new chromeos::BalloonViewImpl(
|
| - sticky, false /*no controls*/, true /*enable webui*/));
|
| - base_.Add(new_balloon, false);
|
| - new_balloon->Show();
|
| - notification_ui_->Add(new_balloon);
|
| -
|
| - // There may be no listener in a unit test.
|
| - if (space_change_listener_)
|
| - space_change_listener_->OnBalloonSpaceChanged();
|
| -}
|
| -
|
| -bool BalloonCollectionImpl::UpdateNotification(
|
| - const Notification& notification) {
|
| - Balloon* balloon = FindBalloon(notification);
|
| - if (!balloon)
|
| - return false;
|
| - balloon->Update(notification);
|
| - notification_ui_->Update(balloon);
|
| - return true;
|
| -}
|
| -
|
| -bool BalloonCollectionImpl::UpdateAndShowNotification(
|
| - const Notification& notification) {
|
| - Balloon* balloon = FindBalloon(notification);
|
| - if (!balloon)
|
| - return false;
|
| - balloon->Update(notification);
|
| - bool updated = notification_ui_->Update(balloon);
|
| - DCHECK(updated);
|
| - notification_ui_->Show(balloon);
|
| - return true;
|
| -}
|
| -
|
| -bool BalloonCollectionImpl::RemoveById(const std::string& id) {
|
| - return base_.CloseById(id);
|
| -}
|
| -
|
| -bool BalloonCollectionImpl::RemoveBySourceOrigin(const GURL& origin) {
|
| - return base_.CloseAllBySourceOrigin(origin);
|
| -}
|
| -
|
| -void BalloonCollectionImpl::RemoveAll() {
|
| - base_.CloseAll();
|
| -}
|
| -
|
| -bool BalloonCollectionImpl::HasSpace() const {
|
| - return true;
|
| -}
|
| -
|
| -void BalloonCollectionImpl::ResizeBalloon(Balloon* balloon,
|
| - const gfx::Size& size) {
|
| - notification_ui_->ResizeNotification(balloon, size);
|
| -}
|
| -
|
| -void BalloonCollectionImpl::OnBalloonClosed(Balloon* source) {
|
| - notification_ui_->Remove(source);
|
| - base_.Remove(source); // Deletes |source|.
|
| -
|
| - // There may be no listener in a unit test.
|
| - if (space_change_listener_)
|
| - space_change_listener_->OnBalloonSpaceChanged();
|
| -
|
| - // This is used only for testing.
|
| - if (!on_collection_changed_callback_.is_null())
|
| - on_collection_changed_callback_.Run();
|
| -}
|
| -
|
| -const BalloonCollectionImpl::Balloons&
|
| - BalloonCollectionImpl::GetActiveBalloons() {
|
| - return base_.balloons();
|
| -}
|
| -
|
| -void BalloonCollectionImpl::Observe(
|
| - int type,
|
| - const content::NotificationSource& source,
|
| - const content::NotificationDetails& details) {
|
| - DCHECK(type == chrome::NOTIFICATION_BROWSER_CLOSED);
|
| - bool app_closing = *content::Details<bool>(details).ptr();
|
| - // When exiting, we need to shutdown all renderers in
|
| - // BalloonViewImpl before IO thread gets deleted in the
|
| - // BrowserProcessImpl's destructor. See http://crbug.com/40810
|
| - // for details.
|
| - if (app_closing)
|
| - RemoveAll();
|
| -}
|
| -
|
| -void BalloonCollectionImpl::Shutdown() {
|
| - // We need to remove the panel first because deleting
|
| - // views that are not owned by parent will not remove
|
| - // themselves from the parent.
|
| - DVLOG(1) << "Shutting down notification UI";
|
| - notification_ui_.reset();
|
| -}
|
| -
|
| -// Called from BalloonCollectionImpl::Add for non system notifications.
|
| -Balloon* BalloonCollectionImpl::MakeBalloon(const Notification& notification,
|
| - Profile* profile) {
|
| - Balloon* new_balloon = new Balloon(notification, profile, this);
|
| - new_balloon->set_view(new chromeos::BalloonViewImpl(
|
| - false /*not sticky*/, true /*has controls*/, false /*no web ui*/));
|
| - return new_balloon;
|
| -}
|
| -
|
| -} // namespace chromeos
|
| -
|
| -// static
|
| -BalloonCollection* BalloonCollection::Create() {
|
| - return new chromeos::BalloonCollectionImpl();
|
| -}
|
|
|