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

Side by Side Diff: chrome/browser/ui/gtk/location_bar_view_gtk.h

Issue 9693047: Add Extension Keybinding test for page actions. This is to facilitate an upcoming port of the PageA… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 9 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
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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_UI_GTK_LOCATION_BAR_VIEW_GTK_H_ 5 #ifndef CHROME_BROWSER_UI_GTK_LOCATION_BAR_VIEW_GTK_H_
6 #define CHROME_BROWSER_UI_GTK_LOCATION_BAR_VIEW_GTK_H_ 6 #define CHROME_BROWSER_UI_GTK_LOCATION_BAR_VIEW_GTK_H_
7 #pragma once 7 #pragma once
8 8
9 #include <gtk/gtk.h> 9 #include <gtk/gtk.h>
10 10
(...skipping 30 matching lines...) Expand all
41 class ContentSettingBubbleGtk; 41 class ContentSettingBubbleGtk;
42 class ExtensionAction; 42 class ExtensionAction;
43 class ThemeServiceGtk; 43 class ThemeServiceGtk;
44 class SkBitmap; 44 class SkBitmap;
45 class ToolbarModel; 45 class ToolbarModel;
46 46
47 namespace content { 47 namespace content {
48 class WebContents; 48 class WebContents;
49 } 49 }
50 50
51 namespace ui {
52 class AcceleratorGtk;
53 }
54
51 class LocationBarViewGtk : public AutocompleteEditController, 55 class LocationBarViewGtk : public AutocompleteEditController,
52 public LocationBar, 56 public LocationBar,
53 public LocationBarTesting, 57 public LocationBarTesting,
54 public content::NotificationObserver { 58 public content::NotificationObserver {
55 public: 59 public:
56 explicit LocationBarViewGtk(Browser* browser); 60 explicit LocationBarViewGtk(Browser* browser);
57 virtual ~LocationBarViewGtk(); 61 virtual ~LocationBarViewGtk();
58 62
59 void Init(bool popup_window_mode); 63 void Init(bool popup_window_mode);
60 64
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 204
201 // The label's default requisition (cached so we can animate accordingly). 205 // The label's default requisition (cached so we can animate accordingly).
202 GtkRequisition label_req_; 206 GtkRequisition label_req_;
203 207
204 base::WeakPtrFactory<ContentSettingImageViewGtk> weak_factory_; 208 base::WeakPtrFactory<ContentSettingImageViewGtk> weak_factory_;
205 209
206 DISALLOW_COPY_AND_ASSIGN(ContentSettingImageViewGtk); 210 DISALLOW_COPY_AND_ASSIGN(ContentSettingImageViewGtk);
207 }; 211 };
208 212
209 class PageActionViewGtk : public ImageLoadingTracker::Observer, 213 class PageActionViewGtk : public ImageLoadingTracker::Observer,
214 public content::NotificationObserver,
210 public ExtensionContextMenuModel::PopupDelegate { 215 public ExtensionContextMenuModel::PopupDelegate {
211 public: 216 public:
212 PageActionViewGtk(LocationBarViewGtk* owner, ExtensionAction* page_action); 217 PageActionViewGtk(LocationBarViewGtk* owner, ExtensionAction* page_action);
213 virtual ~PageActionViewGtk(); 218 virtual ~PageActionViewGtk();
214 219
215 GtkWidget* widget() { return event_box_.get(); } 220 GtkWidget* widget() { return event_box_.get(); }
216 221
217 ExtensionAction* page_action() { return page_action_; } 222 ExtensionAction* page_action() { return page_action_; }
218 223
219 void set_preview_enabled(bool preview_enabled) { 224 void set_preview_enabled(bool preview_enabled) {
220 preview_enabled_ = preview_enabled; 225 preview_enabled_ = preview_enabled;
221 } 226 }
222 227
223 bool IsVisible(); 228 bool IsVisible();
224 229
225 // Called to notify the PageAction that it should determine whether to be 230 // Called to notify the PageAction that it should determine whether to be
226 // visible or hidden. |contents| is the TabContents that is active, |url| 231 // visible or hidden. |contents| is the TabContents that is active, |url|
227 // is the current page URL. 232 // is the current page URL.
228 void UpdateVisibility(content::WebContents* contents, const GURL& url); 233 void UpdateVisibility(content::WebContents* contents, const GURL& url);
229 234
230 // A callback from ImageLoadingTracker for when the image has loaded. 235 // A callback from ImageLoadingTracker for when the image has loaded.
231 virtual void OnImageLoaded(const gfx::Image& image, 236 virtual void OnImageLoaded(const gfx::Image& image,
232 const std::string& extension_id, 237 const std::string& extension_id,
233 int index) OVERRIDE; 238 int index) OVERRIDE;
234 239
235 // Simulate left mouse click on the page action button. 240 // Simulate left mouse click on the page action button.
236 void TestActivatePageAction(); 241 void TestActivatePageAction();
237 242
243 // Implement the content::NotificationObserver interface.
244 virtual void Observe(int type,
245 const content::NotificationSource& source,
246 const content::NotificationDetails& details) OVERRIDE;
247
238 // Overridden from ExtensionContextMenuModel::PopupDelegate: 248 // Overridden from ExtensionContextMenuModel::PopupDelegate:
239 virtual void InspectPopup(ExtensionAction* action) OVERRIDE; 249 virtual void InspectPopup(ExtensionAction* action) OVERRIDE;
240 250
241 private: 251 private:
242 // Show the popup for this page action. If |devtools| is true, show it 252 // Show the popup for this page action. If |devtools| is true, show it
243 // with a debugger window attached. Returns true if a popup was shown. 253 // with a debugger window attached. Returns true if a popup was shown.
244 bool ShowPopup(bool devtools); 254 bool ShowPopup(bool devtools);
245 255
256 // Connect the accelerator for the page action popup.
257 void ConnectPageActionAccelerator();
258
259 // Disconnect the accelerator for the page action popup.
260 void DisconnectPageActionAccelerator();
261
246 CHROMEGTK_CALLBACK_1(PageActionViewGtk, gboolean, OnButtonPressed, 262 CHROMEGTK_CALLBACK_1(PageActionViewGtk, gboolean, OnButtonPressed,
247 GdkEventButton*); 263 GdkEventButton*);
248 CHROMEGTK_CALLBACK_1(PageActionViewGtk, gboolean, OnExposeEvent, 264 CHROMEGTK_CALLBACK_1(PageActionViewGtk, gboolean, OnExposeEvent,
249 GdkEventExpose*); 265 GdkEventExpose*);
266 CHROMEGTK_CALLBACK_0(PageActionViewGtk, void, OnRealize);
267
268 // The accelerator handler for when the shortcuts to open the popup is
269 // struck.
270 static gboolean OnGtkAccelerator(GtkAccelGroup* accel_group,
271 GObject* acceleratable,
272 guint keyval,
273 GdkModifierType modifier,
274 void* user_data);
250 275
251 // The location bar view that owns us. 276 // The location bar view that owns us.
252 LocationBarViewGtk* owner_; 277 LocationBarViewGtk* owner_;
253 278
254 // The PageAction that this view represents. The PageAction is not owned by 279 // The PageAction that this view represents. The PageAction is not owned by
255 // us, it resides in the extension of this particular profile. 280 // us, it resides in the extension of this particular profile.
256 ExtensionAction* page_action_; 281 ExtensionAction* page_action_;
257 282
258 // A cache of all the different icon paths associated with this page action. 283 // A cache of all the different icon paths associated with this page action.
259 typedef std::map<std::string, GdkPixbuf*> PixbufMap; 284 typedef std::map<std::string, GdkPixbuf*> PixbufMap;
(...skipping 12 matching lines...) Expand all
272 // The widgets for this page action. 297 // The widgets for this page action.
273 ui::OwnedWidgetGtk event_box_; 298 ui::OwnedWidgetGtk event_box_;
274 ui::OwnedWidgetGtk image_; 299 ui::OwnedWidgetGtk image_;
275 300
276 // The tab id we are currently showing the icon for. 301 // The tab id we are currently showing the icon for.
277 int current_tab_id_; 302 int current_tab_id_;
278 303
279 // The URL we are currently showing the icon for. 304 // The URL we are currently showing the icon for.
280 GURL current_url_; 305 GURL current_url_;
281 306
307 // The native browser window of the location bar that owns us.
308 gfx::NativeWindow window_;
309
310 // The Notification registrar.
311 content::NotificationRegistrar registrar_;
312
313 // The accelerator group used to handle accelerators, owned by this object.
314 GtkAccelGroup* accel_group_;
315
316 // The keybinding accelerator registered to show the page action popup.
317 scoped_ptr<ui::AcceleratorGtk> keybinding_;
318
282 // This is used for post-install visual feedback. The page_action icon 319 // This is used for post-install visual feedback. The page_action icon
283 // is briefly shown even if it hasn't been enabled by its extension. 320 // is briefly shown even if it hasn't been enabled by its extension.
284 bool preview_enabled_; 321 bool preview_enabled_;
285 322
286 // The context menu view and model for this extension action. 323 // The context menu view and model for this extension action.
287 scoped_ptr<MenuGtk> context_menu_; 324 scoped_ptr<MenuGtk> context_menu_;
288 scoped_refptr<ExtensionContextMenuModel> context_menu_model_; 325 scoped_refptr<ExtensionContextMenuModel> context_menu_model_;
289 326
290 DISALLOW_COPY_AND_ASSIGN(PageActionViewGtk); 327 DISALLOW_COPY_AND_ASSIGN(PageActionViewGtk);
291 }; 328 };
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
443 // The last search keyword that was shown via the |tab_to_search_box_|. 480 // The last search keyword that was shown via the |tab_to_search_box_|.
444 string16 last_keyword_; 481 string16 last_keyword_;
445 482
446 // Used to change the visibility of the star decoration. 483 // Used to change the visibility of the star decoration.
447 BooleanPrefMember edit_bookmarks_enabled_; 484 BooleanPrefMember edit_bookmarks_enabled_;
448 485
449 DISALLOW_COPY_AND_ASSIGN(LocationBarViewGtk); 486 DISALLOW_COPY_AND_ASSIGN(LocationBarViewGtk);
450 }; 487 };
451 488
452 #endif // CHROME_BROWSER_UI_GTK_LOCATION_BAR_VIEW_GTK_H_ 489 #endif // CHROME_BROWSER_UI_GTK_LOCATION_BAR_VIEW_GTK_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698