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

Side by Side Diff: chrome/browser/views/extensions/extension_popup.h

Issue 1774012: Support for clipped experimental popup repositioning (Closed) Base URL: svn://chrome-svn.corp.google.com/chrome/trunk/src/
Patch Set: '' Created 10 years, 7 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
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_VIEWS_EXTENSIONS_EXTENSION_POPUP_H_ 5 #ifndef CHROME_BROWSER_VIEWS_EXTENSIONS_EXTENSION_POPUP_H_
6 #define CHROME_BROWSER_VIEWS_EXTENSIONS_EXTENSION_POPUP_H_ 6 #define CHROME_BROWSER_VIEWS_EXTENSIONS_EXTENSION_POPUP_H_
7 7
8 #include "chrome/browser/extensions/extension_host.h" 8 #include "chrome/browser/extensions/extension_host.h"
9 #include "chrome/browser/views/browser_bubble.h" 9 #include "chrome/browser/views/browser_bubble.h"
10 #include "chrome/browser/views/extensions/extension_view.h" 10 #include "chrome/browser/views/extensions/extension_view.h"
(...skipping 25 matching lines...) Expand all
36 // is ref-counted, and thus will be released shortly after 36 // is ref-counted, and thus will be released shortly after
37 // making this delegate call. 37 // making this delegate call.
38 virtual void ExtensionPopupClosed(ExtensionPopup* popup) {} 38 virtual void ExtensionPopupClosed(ExtensionPopup* popup) {}
39 39
40 // Called when the ExtensionHost is first created for the pop-up view. 40 // Called when the ExtensionHost is first created for the pop-up view.
41 // Note that this is invoked BEFORE the ExtensionPopup is created, and can 41 // Note that this is invoked BEFORE the ExtensionPopup is created, and can
42 // be used to provide extra configuration of the host before it is pushed 42 // be used to provide extra configuration of the host before it is pushed
43 // into the popup. An example use is for automation resource routing in 43 // into the popup. An example use is for automation resource routing in
44 // Chrome-Frame. See extension_popup_api.cc. 44 // Chrome-Frame. See extension_popup_api.cc.
45 virtual void ExtensionHostCreated(ExtensionHost* host) {} 45 virtual void ExtensionHostCreated(ExtensionHost* host) {}
46
47 // Called when the ExtensionPopup is resized. Note that the popup may have
48 // an empty bounds, if a popup is repositioned before the hosted content
49 // has loaded.
50 virtual void ExtensionPopupResized(ExtensionPopup* popup) {}
46 }; 51 };
47 52
48 enum PopupChrome { 53 enum PopupChrome {
49 BUBBLE_CHROME, 54 BUBBLE_CHROME,
50 RECTANGLE_CHROME 55 RECTANGLE_CHROME
51 }; 56 };
52 57
53 virtual ~ExtensionPopup(); 58 virtual ~ExtensionPopup();
54 59
55 // Create and show a popup with |url| positioned adjacent to |relative_to| in 60 // Create and show a popup with |url| positioned adjacent to |relative_to| in
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 98
94 // Some clients wish to do their own custom focus change management. If this 99 // Some clients wish to do their own custom focus change management. If this
95 // is set to false, then the ExtensionPopup will not do anything in response 100 // is set to false, then the ExtensionPopup will not do anything in response
96 // to the BubbleLostFocus() calls it gets from the BrowserBubble. 101 // to the BubbleLostFocus() calls it gets from the BrowserBubble.
97 void set_close_on_lost_focus(bool close_on_lost_focus) { 102 void set_close_on_lost_focus(bool close_on_lost_focus) {
98 close_on_lost_focus_ = close_on_lost_focus; 103 close_on_lost_focus_ = close_on_lost_focus;
99 } 104 }
100 105
101 ExtensionHost* host() const { return extension_host_.get(); } 106 ExtensionHost* host() const { return extension_host_.get(); }
102 107
108 // Assigns the arrow location of the popup view, and updates the popup
109 // border widget, if necessary.
110 void SetArrowPosition(BubbleBorder::ArrowLocation arrow_location);
111 BubbleBorder::ArrowLocation arrow_position() const {
112 return anchor_position_;
113 }
114
115 // Gives the desired bounds (in screen coordinates) given the rect to point
116 // to and the size of the contained contents. Includes all of the
117 // border-chrome surrounding the pop-up as well.
118 gfx::Rect GetOuterBounds() const;
119
103 // BrowserBubble overrides. 120 // BrowserBubble overrides.
104 virtual void Hide(); 121 virtual void Hide();
105 virtual void Show(bool activate); 122 virtual void Show(bool activate);
106 virtual void ResizeToView(); 123 virtual void ResizeToView();
107 124
108 // BrowserBubble::Delegate methods. 125 // BrowserBubble::Delegate methods.
109 virtual void BubbleBrowserWindowMoved(BrowserBubble* bubble); 126 virtual void BubbleBrowserWindowMoved(BrowserBubble* bubble);
110 virtual void BubbleBrowserWindowClosing(BrowserBubble* bubble); 127 virtual void BubbleBrowserWindowClosing(BrowserBubble* bubble);
111 virtual void BubbleGotFocus(BrowserBubble* bubble); 128 virtual void BubbleGotFocus(BrowserBubble* bubble);
112 virtual void BubbleLostFocus(BrowserBubble* bubble, 129 virtual void BubbleLostFocus(BrowserBubble* bubble,
(...skipping 18 matching lines...) Expand all
131 private: 148 private:
132 ExtensionPopup(ExtensionHost* host, 149 ExtensionPopup(ExtensionHost* host,
133 views::Widget* frame, 150 views::Widget* frame,
134 const gfx::Rect& relative_to, 151 const gfx::Rect& relative_to,
135 BubbleBorder::ArrowLocation arrow_location, 152 BubbleBorder::ArrowLocation arrow_location,
136 bool activate_on_show, 153 bool activate_on_show,
137 bool inspect_with_devtools, 154 bool inspect_with_devtools,
138 PopupChrome chrome, 155 PopupChrome chrome,
139 Observer* observer); 156 Observer* observer);
140 157
141 // Gives the desired bounds (in screen coordinates) given the rect to point
142 // to and the size of the contained contents. Includes all of the
143 // border-chrome surrounding the pop-up as well.
144 gfx::Rect GetOuterBounds(const gfx::Rect& position_relative_to,
145 const gfx::Size& contents_size) const;
146
147 // The area on the screen that the popup should be positioned relative to. 158 // The area on the screen that the popup should be positioned relative to.
148 gfx::Rect relative_to_; 159 gfx::Rect relative_to_;
149 160
150 // The contained host for the view. 161 // The contained host for the view.
151 scoped_ptr<ExtensionHost> extension_host_; 162 scoped_ptr<ExtensionHost> extension_host_;
152 163
153 // Flag used to indicate if the pop-up should be activated upon first display. 164 // Flag used to indicate if the pop-up should be activated upon first display.
154 bool activate_on_show_; 165 bool activate_on_show_;
155 166
156 // Flag used to indicate if the pop-up should open a devtools window once 167 // Flag used to indicate if the pop-up should open a devtools window once
(...skipping 24 matching lines...) Expand all
181 192
182 // A cached copy of the arrow-position for the bubble chrome. 193 // A cached copy of the arrow-position for the bubble chrome.
183 // If a black-border was requested, we still need this value to determine 194 // If a black-border was requested, we still need this value to determine
184 // the position of the pop-up in relation to |relative_to_|. 195 // the position of the pop-up in relation to |relative_to_|.
185 BubbleBorder::ArrowLocation anchor_position_; 196 BubbleBorder::ArrowLocation anchor_position_;
186 197
187 DISALLOW_COPY_AND_ASSIGN(ExtensionPopup); 198 DISALLOW_COPY_AND_ASSIGN(ExtensionPopup);
188 }; 199 };
189 200
190 #endif // CHROME_BROWSER_VIEWS_EXTENSIONS_EXTENSION_POPUP_H_ 201 #endif // CHROME_BROWSER_VIEWS_EXTENSIONS_EXTENSION_POPUP_H_
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_popup_api.cc ('k') | chrome/browser/views/extensions/extension_popup.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698