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 13BalloonViewBridge::BalloonViewBridge() : 14 controller_(NULL) { 15} 16 17BalloonViewBridge::~BalloonViewBridge() { 18} 19 20void BalloonViewBridge::Close(bool by_user) { 21 [controller_ closeBalloon:by_user]; 22} 23 24gfx::Size BalloonViewBridge::GetSize() const { 25 if (controller_) 26 return gfx::Size([controller_ desiredTotalWidth], 27 [controller_ desiredTotalHeight]); 28 else 29 return gfx::Size(); 30} 31 32void BalloonViewBridge::RepositionToBalloon() { 33 [controller_ repositionToBalloon]; 34} 35 36void BalloonViewBridge::Show(Balloon* balloon) { 37 controller_ = [[BalloonController alloc] initWithBalloon:balloon]; 38 [controller_ setShouldCascadeWindows:NO]; 39 [controller_ showWindow:nil]; 40} 41 42BalloonHost* BalloonViewBridge::GetHost() const { 43 return [controller_ getHost]; 44} 45 46void BalloonViewBridge::Update() { 47 [controller_ updateContents]; 48} 49