Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / cocoa / extensions / extension_install_view_controller.h
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_EXTENSIONS_EXTENSION_INSTALL_VIEW_CONTROLLER_H_
6 #define CHROME_BROWSER_UI_COCOA_EXTENSIONS_EXTENSION_INSTALL_VIEW_CONTROLLER_H_
7
8 #include <vector>
9
10 #import <Cocoa/Cocoa.h>
11
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"
17
18 class Profile;
19
20 namespace content {
21 class PageNavigator;
22 }
23
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_;
34
35   // Present only when the dialog has permission warnings issues to display.
36   IBOutlet NSOutlineView* outlineView_;
37
38   // Present only in the install dialogs with webstore data (inline and
39   // external).
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_;
45
46   Profile* profile_; // weak
47   content::PageNavigator* navigator_;  // weak
48   ExtensionInstallPrompt::Delegate* delegate_;  // weak
49   scoped_refptr<ExtensionInstallPrompt::Prompt> prompt_;
50
51   base::scoped_nsobject<NSArray> warnings_;
52   BOOL isComputingRowHeight_;
53 }
54
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;
67
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;
75
76 @end
77
78 #endif  // CHROME_BROWSER_UI_COCOA_EXTENSIONS_EXTENSION_INSTALL_VIEW_CONTROLLER_H_