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

Side by Side Diff: chrome/browser/notifications/balloon_collection_linux.cc

Issue 8021009: Consolidate message observer API for win and aura (and touch). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync Created 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/notifications/balloon_collection_impl.h"
6
7 #include "chrome/browser/notifications/balloon.h"
8 #include "ui/gfx/size.h"
9
10 #if defined(TOOLKIT_VIEWS)
11 #include "chrome/browser/ui/views/notifications/balloon_view.h"
12 #else
13 #include "chrome/browser/ui/gtk/notifications/balloon_view_gtk.h"
14 #endif
15
16 Balloon* BalloonCollectionImpl::MakeBalloon(const Notification& notification,
17 Profile* profile) {
18 Balloon* balloon = new Balloon(notification, profile, this);
19
20 balloon->set_view(new BalloonViewImpl(this));
21 gfx::Size size(layout_.min_balloon_width(), layout_.min_balloon_height());
22 balloon->set_content_size(size);
23 return balloon;
24 }
25
26 int BalloonCollectionImpl::Layout::InterBalloonMargin() const {
27 return 5;
28 }
29
30 int BalloonCollectionImpl::Layout::HorizontalEdgeMargin() const {
31 return 5;
32 }
33
34 int BalloonCollectionImpl::Layout::VerticalEdgeMargin() const {
35 return 5;
36 }
37
38 void BalloonCollectionImpl::PositionBalloons(bool reposition) {
39 PositionBalloonsInternal(reposition);
40 }
41
42 void BalloonCollectionImpl::DidProcessEvent(GdkEvent* event) {
43 switch (event->type) {
44 case GDK_MOTION_NOTIFY:
45 case GDK_LEAVE_NOTIFY:
46 HandleMouseMoveEvent();
47 break;
48 default:
49 break;
50 }
51 }
52
53 bool BalloonCollectionImpl::IsCursorInBalloonCollection() const {
54 GdkScreen* screen = gdk_screen_get_default();
55 GdkDisplay* display = gdk_screen_get_display(screen);
56 gint x, y;
57 gdk_display_get_pointer(display, NULL, &x, &y, NULL);
58 gfx::Point cursor(x, y);
59
60 return GetBalloonsBoundingBox().Contains(cursor);
61 }
62
63 void BalloonCollectionImpl::SetPositionPreference(
64 PositionPreference position) {
65 if (position == DEFAULT_POSITION)
66 position = LOWER_RIGHT;
67
68 // All positioning schemes are vertical, and linux
69 // uses the normal screen orientation.
70 if (position == UPPER_RIGHT)
71 layout_.set_placement(Layout::VERTICALLY_FROM_TOP_RIGHT);
72 else if (position == UPPER_LEFT)
73 layout_.set_placement(Layout::VERTICALLY_FROM_TOP_LEFT);
74 else if (position == LOWER_LEFT)
75 layout_.set_placement(Layout::VERTICALLY_FROM_BOTTOM_LEFT);
76 else if (position == LOWER_RIGHT)
77 layout_.set_placement(Layout::VERTICALLY_FROM_BOTTOM_RIGHT);
78 else
79 NOTREACHED();
80
81 PositionBalloons(true);
82 }
83
84 // static
85 BalloonCollection* BalloonCollection::Create() {
86 return new BalloonCollectionImpl();
87 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698