| // Copyright (c) 2010 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/ui/cocoa/notifications/balloon_view_bridge.h" |
| |
| #include "chrome/browser/ui/cocoa/notifications/balloon_controller.h" |
| #import "chrome/browser/ui/cocoa/notifications/balloon_view_host_mac.h" |
| #include "ui/gfx/size.h" |
| |
| #import <Cocoa/Cocoa.h> |
| |
| BalloonViewBridge::BalloonViewBridge() : |
| controller_(NULL) { |
| } |
| |
| BalloonViewBridge::~BalloonViewBridge() { |
| } |
| |
| void BalloonViewBridge::Close(bool by_user) { |
| [controller_ closeBalloon:by_user]; |
| } |
| |
| gfx::Size BalloonViewBridge::GetSize() const { |
| if (controller_) |
| return gfx::Size([controller_ desiredTotalWidth], |
| [controller_ desiredTotalHeight]); |
| else |
| return gfx::Size(); |
| } |
| |
| void BalloonViewBridge::RepositionToBalloon() { |
| [controller_ repositionToBalloon]; |
| } |
| |
| void BalloonViewBridge::Show(Balloon* balloon) { |
| controller_ = [[BalloonController alloc] initWithBalloon:balloon]; |
| [controller_ setShouldCascadeWindows:NO]; |
| [controller_ showWindow:nil]; |
| } |
| |
| BalloonHost* BalloonViewBridge::GetHost() const { |
| return [controller_ getHost]; |
| } |
| |
| void BalloonViewBridge::Update() { |
| [controller_ updateContents]; |
| } |