summaryrefslogtreecommitdiffstats
path: root/chrome/browser/notifications/balloon_collection_mac.mm
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/notifications/balloon_collection_mac.mm')
-rw-r--r--chrome/browser/notifications/balloon_collection_mac.mm21
1 files changed, 21 insertions, 0 deletions
diff --git a/chrome/browser/notifications/balloon_collection_mac.mm b/chrome/browser/notifications/balloon_collection_mac.mm
index 7615415..d31bc39 100644
--- a/chrome/browser/notifications/balloon_collection_mac.mm
+++ b/chrome/browser/notifications/balloon_collection_mac.mm
@@ -43,6 +43,27 @@ void BalloonCollectionImpl::PositionBalloons(bool reposition) {
[NSAnimationContext endGrouping];
}
+void BalloonCollectionImpl::SetPositionPreference(
+ PositionPreference position) {
+ if (position == DEFAULT_POSITION)
+ position = UPPER_RIGHT;
+
+ // All positioning schemes are vertical, but mac
+ // uses a vertically reversed screen orientation.
+ if (position == UPPER_RIGHT)
+ layout_.set_placement(Layout::VERTICALLY_FROM_BOTTOM_RIGHT);
+ else if (position == UPPER_LEFT)
+ layout_.set_placement(Layout::VERTICALLY_FROM_BOTTOM_LEFT);
+ else if (position == LOWER_LEFT)
+ layout_.set_placement(Layout::VERTICALLY_FROM_TOP_LEFT);
+ else if (position == LOWER_RIGHT)
+ layout_.set_placement(Layout::VERTICALLY_FROM_TOP_RIGHT);
+ else
+ NOTREACHED();
+
+ PositionBalloons(true);
+}
+
// static
BalloonCollection* BalloonCollection::Create() {
return new BalloonCollectionImpl();