Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(105)

Side by Side Diff: chrome/browser/ui/cocoa/infobar_controller.h

Issue 6377001: [Mac] Organize all infobar files into chrome/browser/ui/cocoa/infobars/.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
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 #import <Cocoa/Cocoa.h>
6
7 #import "base/mac/cocoa_protocols.h"
8 #include "base/scoped_nsobject.h"
9
10 @class AnimatableView;
11 @class HoverCloseButton;
12 @protocol InfoBarContainer;
13 class InfoBarDelegate;
14 @class InfoBarGradientView;
15
16 // A controller for an infobar in the browser window. There is one
17 // controller per infobar view. The base InfoBarController is able to
18 // draw an icon, a text message, and a close button. Subclasses can
19 // override addAdditionalControls to customize the UI.
20 @interface InfoBarController : NSViewController<NSTextViewDelegate> {
21 @private
22 id<InfoBarContainer> containerController_; // weak, owns us
23 BOOL infoBarClosing_;
24
25 @protected
26 IBOutlet InfoBarGradientView* infoBarView_;
27 IBOutlet NSImageView* image_;
28 IBOutlet NSTextField* labelPlaceholder_;
29 IBOutlet NSButton* okButton_;
30 IBOutlet NSButton* cancelButton_;
31 IBOutlet HoverCloseButton* closeButton_;
32
33 // In rare instances, it can be possible for |delegate_| to delete itself
34 // while this controller is still alive. Always check |delegate_| against
35 // NULL before using it.
36 InfoBarDelegate* delegate_; // weak, can be NULL
37
38 // Text fields don't work as well with embedded links as text views, but
39 // text views cannot conveniently be created in IB. The xib file contains
40 // a text field |labelPlaceholder_| that's replaced by this text view |label_|
41 // in -awakeFromNib.
42 scoped_nsobject<NSTextView> label_;
43 };
44
45 // Initializes a new InfoBarController.
46 - (id)initWithDelegate:(InfoBarDelegate*)delegate;
47
48 // Called when someone clicks on the OK or Cancel buttons. Subclasses
49 // must override if they do not hide the buttons.
50 - (void)ok:(id)sender;
51 - (void)cancel:(id)sender;
52
53 // Called when someone clicks on the close button. Dismisses the
54 // infobar without taking any action.
55 - (IBAction)dismiss:(id)sender;
56
57 // Returns a pointer to this controller's view, cast as an AnimatableView.
58 - (AnimatableView*)animatableView;
59
60 // Open or animate open the infobar.
61 - (void)open;
62 - (void)animateOpen;
63
64 // Close or animate close the infobar.
65 - (void)close;
66 - (void)animateClosed;
67
68 // Subclasses can override this method to add additional controls to
69 // the infobar view. This method is called by awakeFromNib. The
70 // default implementation does nothing.
71 - (void)addAdditionalControls;
72
73 // Subclasses must override this method to perform cleanup just before the
74 // infobar closes.
75 - (void)infobarWillClose;
76
77 // Sets the info bar message to the specified |message|.
78 - (void)setLabelToMessage:(NSString*)message;
79
80 // Removes the OK and Cancel buttons and resizes the textfield to use the
81 // space.
82 - (void)removeButtons;
83
84 @property(nonatomic, assign) id<InfoBarContainer> containerController;
85 @property(nonatomic, readonly) InfoBarDelegate* delegate;
86
87 @end
88
89 /////////////////////////////////////////////////////////////////////////
90 // InfoBarController subclasses, one for each InfoBarDelegate
91 // subclass. Each of these subclasses overrides addAdditionalControls to
92 // configure its view as necessary.
93
94 @interface AlertInfoBarController : InfoBarController
95 @end
96
97
98 @interface LinkInfoBarController : InfoBarController
99 // Called when there is a click on the link in the infobar.
100 - (void)linkClicked;
101 @end
102
103
104 @interface ConfirmInfoBarController : InfoBarController
105 // Called when the OK and Cancel buttons are clicked.
106 - (IBAction)ok:(id)sender;
107 - (IBAction)cancel:(id)sender;
108 // Called when there is a click on the link in the infobar.
109 - (void)linkClicked;
110 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698