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.
5 #ifndef CHROME_BROWSER_UI_COCOA_EXTENSIONS_EXTENSION_INSTALL_VIEW_CONTROLLER_H_
6 #define CHROME_BROWSER_UI_COCOA_EXTENSIONS_EXTENSION_INSTALL_VIEW_CONTROLLER_H_
10 #import <Cocoa/Cocoa.h>
12 #include "base/mac/scoped_nsobject.h"
13 #include "base/memory/ref_counted.h"
14 #include "base/strings/string16.h"
15 #include "chrome/browser/extensions/extension_install_prompt.h"
16 #include "ui/gfx/image/image_skia.h"
24 // Displays the extension or bundle install prompt, and notifies the
25 // ExtensionInstallPrompt::Delegate of success or failure
26 @interface ExtensionInstallViewController
: NSViewController
27 <NSOutlineViewDataSource
,
28 NSOutlineViewDelegate
> {
29 IBOutlet NSImageView
* iconView_
;
30 IBOutlet NSTextField
* titleField_
;
31 IBOutlet NSTextField
* itemsField_
;
32 IBOutlet NSButton
* cancelButton_
;
33 IBOutlet NSButton
* okButton_
;
35 // Present only when the dialog has permission warnings issues to display.
36 IBOutlet NSOutlineView
* outlineView_
;
38 // Present only in the install dialogs with webstore data (inline and
40 IBOutlet NSBox
* warningsSeparator_
; // Only when there are permissions.
41 IBOutlet NSView
* ratingStars_
;
42 IBOutlet NSTextField
* ratingCountField_
;
43 IBOutlet NSTextField
* userCountField_
;
44 IBOutlet NSButton
* storeLinkButton_
;
46 Profile
* profile_
; // weak
47 content::PageNavigator
* navigator_
; // weak
48 ExtensionInstallPrompt::Delegate
* delegate_
; // weak
49 scoped_refptr
<ExtensionInstallPrompt::Prompt
> prompt_
;
51 base::scoped_nsobject
<NSArray
> warnings_
;
52 BOOL isComputingRowHeight_
;
55 // For unit test use only.
56 @
property(nonatomic
, readonly
) NSImageView
* iconView
;
57 @
property(nonatomic
, readonly
) NSTextField
* titleField
;
58 @
property(nonatomic
, readonly
) NSTextField
* itemsField
;
59 @
property(nonatomic
, readonly
) NSButton
* cancelButton
;
60 @
property(nonatomic
, readonly
) NSButton
* okButton
;
61 @
property(nonatomic
, readonly
) NSOutlineView
* outlineView
;
62 @
property(nonatomic
, readonly
) NSBox
* warningsSeparator
;
63 @
property(nonatomic
, readonly
) NSView
* ratingStars
;
64 @
property(nonatomic
, readonly
) NSTextField
* ratingCountField
;
65 @
property(nonatomic
, readonly
) NSTextField
* userCountField
;
66 @
property(nonatomic
, readonly
) NSButton
* storeLinkButton
;
68 - (id
)initWithProfile
:(Profile
*)profile
69 navigator
:(content::PageNavigator
*)navigator
70 delegate
:(ExtensionInstallPrompt::Delegate
*)delegate
71 prompt
:(scoped_refptr
<ExtensionInstallPrompt::Prompt
>)prompt
;
72 - (IBAction
)storeLinkClicked
:(id
)sender
; // Callback for "View details" link.
73 - (IBAction
)cancel
:(id
)sender
;
74 - (IBAction
)ok
:(id
)sender
;
78 #endif // CHROME_BROWSER_UI_COCOA_EXTENSIONS_EXTENSION_INSTALL_VIEW_CONTROLLER_H_