• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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_EXTENSIONS_EXTENSION_INSTALL_DIALOG_CONTROLER_H_
6 #define CHROME_BROWSER_UI_COCOA_EXTENSIONS_EXTENSION_INSTALL_DIALOG_CONTROLER_H_
7 #pragma once
8 
9 #include <vector>
10 
11 #import <Cocoa/Cocoa.h>
12 
13 #include "base/memory/scoped_nsobject.h"
14 #include "base/string16.h"
15 #include "chrome/browser/extensions/extension_install_ui.h"
16 #include "third_party/skia/include/core/SkBitmap.h"
17 
18 class Extension;
19 class Profile;
20 
21 // A controller for dialog to let the user install an extension. Created by
22 // CrxInstaller.
23 @interface ExtensionInstallDialogController : NSWindowController {
24 @private
25   IBOutlet NSImageView* iconView_;
26   IBOutlet NSTextField* titleField_;
27   IBOutlet NSTextField* subtitleField_;
28   IBOutlet NSTextField* warningsField_;
29   IBOutlet NSBox* warningsBox_;
30   IBOutlet NSButton* cancelButton_;
31   IBOutlet NSButton* okButton_;
32 
33   NSWindow* parentWindow_;  // weak
34   Profile* profile_;  // weak
35   ExtensionInstallUI::Delegate* delegate_;  // weak
36 
37   scoped_nsobject<NSString> title_;
38   scoped_nsobject<NSString> warnings_;
39   scoped_nsobject<NSString> button_;
40   scoped_nsobject<NSString> subtitle_;
41   SkBitmap icon_;
42 }
43 
44 @property(nonatomic, readonly) NSImageView* iconView;
45 @property(nonatomic, readonly) NSTextField* titleField;
46 @property(nonatomic, readonly) NSTextField* subtitleField;
47 @property(nonatomic, readonly) NSTextField* warningsField;
48 @property(nonatomic, readonly) NSBox* warningsBox;
49 @property(nonatomic, readonly) NSButton* cancelButton;
50 @property(nonatomic, readonly) NSButton* okButton;
51 
52 - (id)initWithParentWindow:(NSWindow*)window
53                    profile:(Profile*)profile
54                  extension:(const Extension*)extension
55                   delegate:(ExtensionInstallUI::Delegate*)delegate
56                       icon:(SkBitmap*)bitmap
57                   warnings:(const std::vector<string16>&)warnings
58                       type:(ExtensionInstallUI::PromptType)type;
59 - (void)runAsModalSheet;
60 - (IBAction)cancel:(id)sender;
61 - (IBAction)ok:(id)sender;
62 
63 @end
64 
65 #endif  // CHROME_BROWSER_UI_COCOA_EXTENSIONS_EXTENSION_INSTALL_DIALOG_CONTROLLER_H_
66