15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_BROWSER_UI_COCOA_CONFIRM_BUBBLE_CONTROLLER_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_UI_COCOA_CONFIRM_BUBBLE_CONTROLLER_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#import <Cocoa/Cocoa.h> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ConfirmBubbleModel; 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// A view controller that manages a bubble view and becomes a proxy between 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// the view and the ConfirmBubbleModel object. This class is internally used 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// in ShowConfirmBubble() and users do not have to change this class directly. 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)@interface ConfirmBubbleController : 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NSViewController<NSTextViewDelegate> { 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @private 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NSView* parent_; // weak 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CGPoint origin_; 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<ConfirmBubbleModel> model_; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Creates a ConfirmBubbleController object. The ConfirmBubbleController 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// controller takes the ownership of the passed-in ConfirmBubbleModel. 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (id)initWithParent:(NSView*)parent 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) origin:(CGPoint)origin 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) model:(ConfirmBubbleModel*)model; 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Access to the properties of the ConfirmBubbleModel object. These functions 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// also converts C++ types returned by the ConfirmBubbleModel object to 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Objective-C types. 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (NSPoint)origin; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (NSString*)title; 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (NSString*)messageText; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (NSString*)linkText; 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (NSString*)okButtonText; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (NSString*)cancelButtonText; 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (BOOL)hasOkButton; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (BOOL)hasCancelButton; 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (NSImage*)icon; 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Handle actions from the ConfirmBubbleCocoa objet. 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (void)accept; 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (void)cancel; 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (void)linkClicked; 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)@end 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CHROME_BROWSER_UI_COCOA_CONFIRM_BUBBLE_CONTROLLER_H_ 52