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

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

Issue 6269009: Move loose extension files in c/b/ui/cocoa/ into the extensions/ subdir... (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 #ifndef CHROME_BROWSER_UI_COCOA_EXTENSION_INSTALLED_BUBBLE_CONTROLLER_H_
6 #define CHROME_BROWSER_UI_COCOA_EXTENSION_INSTALLED_BUBBLE_CONTROLLER_H_
7 #pragma once
8
9 #import <Cocoa/Cocoa.h>
10
11 #import "base/mac/cocoa_protocols.h"
12 #include "base/scoped_ptr.h"
13 #import "chrome/browser/ui/cocoa/browser_window_controller.h"
14 #include "third_party/skia/include/core/SkBitmap.h"
15
16 class Browser;
17 class Extension;
18 class ExtensionLoadedNotificationObserver;
19 @class HoverCloseButton;
20 @class InfoBubbleView;
21
22 namespace extension_installed_bubble {
23
24 // Maximum height or width of extension's icon (corresponds to Windows & GTK).
25 const int kIconSize = 43;
26
27 // Outer vertical margin for text, icon, and closing x.
28 const int kOuterVerticalMargin = 15;
29
30 // Inner vertical margin for text messages.
31 const int kInnerVerticalMargin = 10;
32
33 // We use a different kind of notification for each of these extension types.
34 typedef enum {
35 kBrowserAction,
36 kGeneric,
37 kOmniboxKeyword,
38 kPageAction
39 } ExtensionType;
40
41 }
42
43 // Controller for the extension installed bubble. This bubble pops up after
44 // an extension has been installed to inform the user that the install happened
45 // properly, and to let the user know how to manage this extension in the
46 // future.
47 @interface ExtensionInstalledBubbleController :
48 NSWindowController<NSWindowDelegate> {
49 @private
50 NSWindow* parentWindow_; // weak
51 const Extension* extension_; // weak
52 Browser* browser_; // weak
53 scoped_nsobject<NSImage> icon_;
54
55 extension_installed_bubble::ExtensionType type_;
56
57 // We need to remove the page action immediately when the browser window
58 // closes while this bubble is still open, so the bubble's closing animation
59 // doesn't overlap browser destruction.
60 BOOL pageActionRemoved_;
61
62 // Lets us register for EXTENSION_LOADED notifications. The actual
63 // notifications are sent to the observer object, which proxies them
64 // back to the controller.
65 scoped_ptr<ExtensionLoadedNotificationObserver> extensionObserver_;
66
67 // References below are weak, being obtained from the nib.
68 IBOutlet InfoBubbleView* infoBubbleView_;
69 IBOutlet HoverCloseButton* closeButton_;
70 IBOutlet NSImageView* iconImage_;
71 IBOutlet NSTextField* extensionInstalledMsg_;
72 // Only shown for page actions and omnibox keywords.
73 IBOutlet NSTextField* extraInfoMsg_;
74 IBOutlet NSTextField* extensionInstalledInfoMsg_;
75 }
76
77 @property (nonatomic, readonly) const Extension* extension;
78 @property (nonatomic) BOOL pageActionRemoved;
79
80 // Initialize the window, and then create observers to wait for the extension
81 // to complete loading, or the browser window to close.
82 - (id)initWithParentWindow:(NSWindow*)parentWindow
83 extension:(const Extension*)extension
84 browser:(Browser*)browser
85 icon:(SkBitmap)icon;
86
87 // Action for close button.
88 - (IBAction)closeWindow:(id)sender;
89
90 // Displays the extension installed bubble. This callback is triggered by
91 // the extensionObserver when the extension has completed loading.
92 - (void)showWindow:(id)sender;
93
94 // Clears our weak pointer to the Extension. This callback is triggered by
95 // the extensionObserver when the extension is unloaded.
96 - (void)extensionUnloaded:(id)sender;
97
98 @end
99
100 @interface ExtensionInstalledBubbleController(ExposedForTesting)
101
102 - (void)removePageActionPreviewIfNecessary;
103 - (NSWindow*)initializeWindow;
104 - (int)calculateWindowHeight;
105 - (void)setMessageFrames:(int)newWindowHeight;
106 - (NSRect)getExtensionInstalledMsgFrame;
107 - (NSRect)getExtraInfoMsgFrame;
108 - (NSRect)getExtensionInstalledInfoMsgFrame;
109
110 @end // ExtensionInstalledBubbleController(ExposedForTesting)
111
112 #endif // CHROME_BROWSER_UI_COCOA_EXTENSION_INSTALLED_BUBBLE_CONTROLLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698