Home | History | Annotate | Download | only in cocoa
      1 // Copyright (c) 2012 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 #ifndef CHROME_BROWSER_UI_COCOA_CONFIRM_BUBBLE_CONTROLLER_H_
      6 #define CHROME_BROWSER_UI_COCOA_CONFIRM_BUBBLE_CONTROLLER_H_
      7 
      8 #import <Cocoa/Cocoa.h>
      9 
     10 #include "base/memory/scoped_ptr.h"
     11 
     12 class ConfirmBubbleModel;
     13 
     14 // A view controller that manages a bubble view and becomes a proxy between
     15 // the view and the ConfirmBubbleModel object. This class is internally used
     16 // in ShowConfirmBubble() and users do not have to change this class directly.
     17 @interface ConfirmBubbleController :
     18     NSViewController<NSTextViewDelegate> {
     19  @private
     20   NSView* parent_;  // weak
     21   CGPoint origin_;
     22   scoped_ptr<ConfirmBubbleModel> model_;
     23 }
     24 
     25 // Creates a ConfirmBubbleController object. The ConfirmBubbleController
     26 // controller takes the ownership of the passed-in ConfirmBubbleModel.
     27 - (id)initWithParent:(NSView*)parent
     28               origin:(CGPoint)origin
     29                model:(ConfirmBubbleModel*)model;
     30 
     31 // Access to the properties of the ConfirmBubbleModel object. These functions
     32 // also converts C++ types returned by the ConfirmBubbleModel object to
     33 // Objective-C types.
     34 - (NSPoint)origin;
     35 - (NSString*)title;
     36 - (NSString*)messageText;
     37 - (NSString*)linkText;
     38 - (NSString*)okButtonText;
     39 - (NSString*)cancelButtonText;
     40 - (BOOL)hasOkButton;
     41 - (BOOL)hasCancelButton;
     42 - (NSImage*)icon;
     43 
     44 // Handle actions from the ConfirmBubbleCocoa objet.
     45 - (void)accept;
     46 - (void)cancel;
     47 - (void)linkClicked;
     48 
     49 @end
     50 
     51 #endif  // CHROME_BROWSER_UI_COCOA_CONFIRM_BUBBLE_CONTROLLER_H_
     52