- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / cocoa / notifications / balloon_view_bridge.mm
1 // Copyright (c) 2010 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/ui/cocoa/notifications/balloon_view_bridge.h"
6
7 #include "chrome/browser/ui/cocoa/notifications/balloon_controller.h"
8 #import "chrome/browser/ui/cocoa/notifications/balloon_view_host_mac.h"
9 #include "ui/gfx/size.h"
10
11 #import <Cocoa/Cocoa.h>
12
13 BalloonViewBridge::BalloonViewBridge() :
14     controller_(NULL) {
15 }
16
17 BalloonViewBridge::~BalloonViewBridge() {
18 }
19
20 void BalloonViewBridge::Close(bool by_user) {
21   [controller_ closeBalloon:by_user];
22 }
23
24 gfx::Size BalloonViewBridge::GetSize() const {
25   if (controller_)
26     return gfx::Size([controller_ desiredTotalWidth],
27                      [controller_ desiredTotalHeight]);
28   else
29     return gfx::Size();
30 }
31
32 void BalloonViewBridge::RepositionToBalloon() {
33   [controller_ repositionToBalloon];
34 }
35
36 void BalloonViewBridge::Show(Balloon* balloon) {
37   controller_ = [[BalloonController alloc] initWithBalloon:balloon];
38   [controller_ setShouldCascadeWindows:NO];
39   [controller_ showWindow:nil];
40 }
41
42 BalloonHost* BalloonViewBridge::GetHost() const {
43   return [controller_ getHost];
44 }
45
46 void BalloonViewBridge::Update() {
47   [controller_ updateContents];
48 }