| // Copyright (c) 2012 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. |
| |
| #ifndef CHROME_BROWSER_UI_COCOA_CONFIRM_BUBBLE_COCOA_H_ |
| #define CHROME_BROWSER_UI_COCOA_CONFIRM_BUBBLE_COCOA_H_ |
| |
| #import <Cocoa/Cocoa.h> |
| |
| #include "base/mac/scoped_nsobject.h" |
| |
| @class ConfirmBubbleController; |
| class ConfirmBubbleModel; |
| |
| // A view class that implements a bubble consisting of the following items: |
| // * one icon ("icon") |
| // * one title text ("title") |
| // * one message text ("message") |
| // * one optional link ("link") |
| // * two optional buttons ("ok" and "cancel") |
| // |
| // This bubble is convenient when we wish to ask transient, non-blocking |
| // questions. Unlike a dialog, a bubble menu disappears when we click outside of |
| // its window to avoid blocking user operations. A bubble is laid out as |
| // follows: |
| // |
| // +------------------------+ |
| // | icon title | |
| // | message | |
| // | link | |
| // | [Cancel] [OK] | |
| // +------------------------+ |
| // |
| @interface ConfirmBubbleCocoa : NSView<NSTextViewDelegate> { |
| @private |
| NSView* parent_; // weak |
| ConfirmBubbleController* controller_; // weak |
| |
| // Controls used in this bubble. |
| base::scoped_nsobject<NSImageView> icon_; |
| base::scoped_nsobject<NSTextView> titleLabel_; |
| base::scoped_nsobject<NSTextView> messageLabel_; |
| base::scoped_nsobject<NSButton> okButton_; |
| base::scoped_nsobject<NSButton> cancelButton_; |
| } |
| |
| // Initializes a bubble view. Since this initializer programmatically creates a |
| // custom NSView (i.e. without using a nib file), this function should be called |
| // from loadView: of the controller object which owns this view. |
| - (id)initWithParent:(NSView*)parent |
| controller:(ConfirmBubbleController*)controller; |
| |
| @end |
| |
| // Exposed only for unit testing. |
| @interface ConfirmBubbleCocoa (ExposedForUnitTesting) |
| - (void)clickOk; |
| - (void)clickCancel; |
| - (void)clickLink; |
| @end |
| |
| #endif // CHROME_BROWSER_UI_COCOA_CONFIRM_BUBBLE_COCOA_H_ |