summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjohnnyg@chromium.org <johnnyg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-05 23:15:21 +0000
committerjohnnyg@chromium.org <johnnyg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-05 23:15:21 +0000
commite39bc5e7891b2b2bb4bc6f08e4579da4b1d11fb8 (patch)
treedcd34edc133fb3411f107da802c4f8c761289e3b
parentf68ea16882bb896071735875f889411045ddd5fd (diff)
downloadchromium_src-e39bc5e7891b2b2bb4bc6f08e4579da4b1d11fb8.zip
chromium_src-e39bc5e7891b2b2bb4bc6f08e4579da4b1d11fb8.tar.gz
chromium_src-e39bc5e7891b2b2bb4bc6f08e4579da4b1d11fb8.tar.bz2
Refactor the calculation of desktop size to use an existing common method rather than windows-specific logic. Part of notifications port to linux.
BUG=23954 TEST=none Review URL: http://codereview.chromium.org/524039 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35575 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/notifications/balloon_collection.cc17
-rw-r--r--chrome/browser/notifications/balloon_collection_linux.cc5
-rw-r--r--chrome/browser/notifications/balloon_collection_mac.mm5
-rw-r--r--chrome/browser/notifications/balloon_collection_win.cc35
4 files changed, 17 insertions, 45 deletions
diff --git a/chrome/browser/notifications/balloon_collection.cc b/chrome/browser/notifications/balloon_collection.cc
index ed8a671..e148911 100644
--- a/chrome/browser/notifications/balloon_collection.cc
+++ b/chrome/browser/notifications/balloon_collection.cc
@@ -8,6 +8,7 @@
#include "base/logging.h"
#include "base/stl_util-inl.h"
#include "chrome/browser/notifications/balloon.h"
+#include "chrome/browser/window_sizer.h"
namespace {
@@ -207,3 +208,19 @@ gfx::Point BalloonCollectionImpl::Layout::NextPosition(
}
return gfx::Point(x, y);
}
+
+bool BalloonCollectionImpl::Layout::RefreshSystemMetrics() {
+ bool changed = false;
+
+ scoped_ptr<WindowSizer::MonitorInfoProvider> info_provider(
+ WindowSizer::CreateDefaultMonitorInfoProvider());
+
+ gfx::Rect new_work_area = info_provider->GetPrimaryMonitorWorkArea();
+ if (!work_area_.Equals(new_work_area)) {
+ work_area_.SetRect(new_work_area.x(), new_work_area.y(),
+ new_work_area.width(), new_work_area.height());
+ changed = true;
+ }
+
+ return changed;
+}
diff --git a/chrome/browser/notifications/balloon_collection_linux.cc b/chrome/browser/notifications/balloon_collection_linux.cc
index e1439f2..bab6895 100644
--- a/chrome/browser/notifications/balloon_collection_linux.cc
+++ b/chrome/browser/notifications/balloon_collection_linux.cc
@@ -11,8 +11,3 @@ Balloon* BalloonCollectionImpl::MakeBalloon(const Notification& notification,
// TODO(johnnyg): http://crbug.com/23954. Hook up to views.
return new Balloon(notification, profile, this);
}
-
-bool BalloonCollectionImpl::Layout::RefreshSystemMetrics() {
- // TODO(johnnyg): http://crbug.com/23954. Part of future Linux support.
- return false;
-}
diff --git a/chrome/browser/notifications/balloon_collection_mac.mm b/chrome/browser/notifications/balloon_collection_mac.mm
index 2bff15e..6a652e0 100644
--- a/chrome/browser/notifications/balloon_collection_mac.mm
+++ b/chrome/browser/notifications/balloon_collection_mac.mm
@@ -12,8 +12,3 @@ Balloon* BalloonCollectionImpl::MakeBalloon(const Notification& notification,
return new Balloon(notification, profile, this);
}
-bool BalloonCollectionImpl::Layout::RefreshSystemMetrics() {
- // TODO(johnnyg): http://crbug.com/23066. Part of future Mac support.
- return false;
-}
-
diff --git a/chrome/browser/notifications/balloon_collection_win.cc b/chrome/browser/notifications/balloon_collection_win.cc
index 53d9808..4c294cc 100644
--- a/chrome/browser/notifications/balloon_collection_win.cc
+++ b/chrome/browser/notifications/balloon_collection_win.cc
@@ -6,29 +6,9 @@
#include "base/gfx/rect.h"
#include "base/logging.h"
-#include "base/stl_util-inl.h"
#include "chrome/browser/notifications/balloon.h"
#include "chrome/browser/views/notifications/balloon_view.h"
-namespace {
-
-void GetMainScreenWorkArea(gfx::Rect* bounds) {
- DCHECK(bounds);
- RECT work_area = {0};
- if (::SystemParametersInfo(SPI_GETWORKAREA, 0, &work_area, 0)) {
- bounds->SetRect(work_area.left, work_area.top,
- work_area.right, work_area.bottom);
- } else {
- // If call to ::SystemParametersInfo fails for some reason, we simply get
- // the full screen size as an alternative.
- bounds->SetRect(0, 0,
- ::GetSystemMetrics(SM_CXSCREEN) - 1,
- ::GetSystemMetrics(SM_CYSCREEN) - 1);
- }
-}
-
-} // namespace
-
Balloon* BalloonCollectionImpl::MakeBalloon(const Notification& notification,
Profile* profile) {
Balloon* balloon = new Balloon(notification, profile, this);
@@ -37,18 +17,3 @@ Balloon* BalloonCollectionImpl::MakeBalloon(const Notification& notification,
balloon->set_content_size(size);
return balloon;
}
-
-bool BalloonCollectionImpl::Layout::RefreshSystemMetrics() {
- bool changed = false;
-
- gfx::Rect new_work_area(work_area_.x(), work_area_.y(),
- work_area_.width(), work_area_.height());
- GetMainScreenWorkArea(&new_work_area);
- if (!work_area_.Equals(new_work_area)) {
- work_area_.SetRect(new_work_area.x(), new_work_area.y(),
- new_work_area.width(), new_work_area.height());
- changed = true;
- }
-
- return changed;
-}