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

Side by Side Diff: chrome/browser/views/location_bar_view.h

Issue 332021: Move page actions over to ExtensionAction2 (Closed)
Patch Set: Review feedback Created 11 years, 1 month 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_LOCATION_BAR_VIEW_H_ 5 #ifndef CHROME_BROWSER_VIEWS_LOCATION_BAR_VIEW_H_
6 #define CHROME_BROWSER_VIEWS_LOCATION_BAR_VIEW_H_ 6 #define CHROME_BROWSER_VIEWS_LOCATION_BAR_VIEW_H_
7 7
8 #include <string> 8 #include <string>
9 #include <map>
9 #include <vector> 10 #include <vector>
10 11
11 #include "app/gfx/font.h" 12 #include "app/gfx/font.h"
12 #include "base/gfx/rect.h" 13 #include "base/gfx/rect.h"
13 #include "chrome/browser/autocomplete/autocomplete_edit.h" 14 #include "chrome/browser/autocomplete/autocomplete_edit.h"
14 #include "chrome/browser/extensions/image_loading_tracker.h" 15 #include "chrome/browser/extensions/image_loading_tracker.h"
15 #include "chrome/browser/location_bar.h" 16 #include "chrome/browser/location_bar.h"
16 #include "chrome/browser/tab_contents/tab_contents.h" 17 #include "chrome/browser/tab_contents/tab_contents.h"
17 #include "chrome/browser/toolbar_model.h" 18 #include "chrome/browser/toolbar_model.h"
18 #include "chrome/browser/views/info_bubble.h" 19 #include "chrome/browser/views/info_bubble.h"
19 #include "views/controls/image_view.h" 20 #include "views/controls/image_view.h"
20 #include "views/controls/label.h" 21 #include "views/controls/label.h"
21 #include "views/controls/native/native_view_host.h" 22 #include "views/controls/native/native_view_host.h"
22 #include "views/painter.h" 23 #include "views/painter.h"
23 24
24 #if defined(OS_WIN) 25 #if defined(OS_WIN)
25 #include "chrome/browser/autocomplete/autocomplete_edit_view_win.h" 26 #include "chrome/browser/autocomplete/autocomplete_edit_view_win.h"
26 #else 27 #else
27 #include "chrome/browser/autocomplete/autocomplete_edit_view_gtk.h" 28 #include "chrome/browser/autocomplete/autocomplete_edit_view_gtk.h"
28 #endif 29 #endif
29 30
30 class BubblePositioner; 31 class BubblePositioner;
31 class CommandUpdater; 32 class CommandUpdater;
33 class ExtensionAction2;
32 class GURL; 34 class GURL;
33 class PageAction;
34 class Profile; 35 class Profile;
35 36
36 ///////////////////////////////////////////////////////////////////////////// 37 /////////////////////////////////////////////////////////////////////////////
37 // 38 //
38 // LocationBarView class 39 // LocationBarView class
39 // 40 //
40 // The LocationBarView class is a View subclass that paints the background 41 // The LocationBarView class is a View subclass that paints the background
41 // of the URL bar strip and contains its content. 42 // of the URL bar strip and contains its content.
42 // 43 //
43 ///////////////////////////////////////////////////////////////////////////// 44 /////////////////////////////////////////////////////////////////////////////
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 DISALLOW_COPY_AND_ASSIGN(SecurityImageView); 342 DISALLOW_COPY_AND_ASSIGN(SecurityImageView);
342 }; 343 };
343 344
344 // PageActionImageView is used to display the icon for a given PageAction 345 // PageActionImageView is used to display the icon for a given PageAction
345 // and notify the extension when the icon is clicked. 346 // and notify the extension when the icon is clicked.
346 class PageActionImageView : public LocationBarImageView, 347 class PageActionImageView : public LocationBarImageView,
347 public ImageLoadingTracker::Observer { 348 public ImageLoadingTracker::Observer {
348 public: 349 public:
349 PageActionImageView(LocationBarView* owner, 350 PageActionImageView(LocationBarView* owner,
350 Profile* profile, 351 Profile* profile,
351 const ExtensionAction* page_action, 352 ExtensionAction2* page_action,
352 const BubblePositioner* bubble_positioner); 353 const BubblePositioner* bubble_positioner);
353 virtual ~PageActionImageView(); 354 virtual ~PageActionImageView();
354 355
355 const ExtensionActionState* GetPageActionState(); 356 ExtensionAction2* page_action() { return page_action_; }
357
358 int current_tab_id() { return current_tab_id_; }
356 359
357 // Overridden from view for the mouse hovering. 360 // Overridden from view for the mouse hovering.
358 virtual bool OnMousePressed(const views::MouseEvent& event); 361 virtual bool OnMousePressed(const views::MouseEvent& event);
359 362
360 // Overridden from LocationBarImageView. 363 // Overridden from LocationBarImageView.
361 virtual void ShowInfoBubble(); 364 virtual void ShowInfoBubble();
362 virtual void Paint(gfx::Canvas* canvas);
363 365
364 // Overridden from ImageLoadingTracker. 366 // Overridden from ImageLoadingTracker.
365 virtual void OnImageLoaded(SkBitmap* image, size_t index); 367 virtual void OnImageLoaded(SkBitmap* image, size_t index);
366 368
367 // Called to notify the PageAction that it should determine whether to be 369 // Called to notify the PageAction that it should determine whether to be
368 // visible or hidden. |contents| is the TabContents that is active, |url| 370 // visible or hidden. |contents| is the TabContents that is active, |url|
369 // is the current page URL. 371 // is the current page URL.
370 void UpdateVisibility(TabContents* contents, const GURL& url); 372 void UpdateVisibility(TabContents* contents, const GURL& url);
371 373
372 private: 374 private:
373 // The location bar view that owns us. 375 // The location bar view that owns us.
374 LocationBarView* owner_; 376 LocationBarView* owner_;
375 377
376 // The current profile (not owned by us). 378 // The current profile (not owned by us).
377 Profile* profile_; 379 Profile* profile_;
378 380
379 // The PageAction that this view represents. The PageAction is not owned by 381 // The PageAction that this view represents. The PageAction is not owned by
380 // us, it resides in the extension of this particular profile. 382 // us, it resides in the extension of this particular profile.
381 const ExtensionAction* page_action_; 383 ExtensionAction2* page_action_;
382 384
383 // The icons representing different states for the page action. 385 // A cache of bitmaps the page actions might need to show, mapped by path.
384 std::vector<SkBitmap> page_action_icons_; 386 typedef std::map<std::string, SkBitmap> PageActionMap;
387 PageActionMap page_action_icons_;
385 388
386 // The object that is waiting for the image loading to complete 389 // The object that is waiting for the image loading to complete
387 // asynchronously. 390 // asynchronously.
388 ImageLoadingTracker* tracker_; 391 ImageLoadingTracker* tracker_;
389 392
390 // The tab id we are currently showing the icon for. 393 // The tab id we are currently showing the icon for.
391 int current_tab_id_; 394 int current_tab_id_;
392 395
393 // The URL we are currently showing the icon for. 396 // The URL we are currently showing the icon for.
394 GURL current_url_; 397 GURL current_url_;
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 // The positioner that places the omnibox and info bubbles. 538 // The positioner that places the omnibox and info bubbles.
536 const BubblePositioner* bubble_positioner_; 539 const BubblePositioner* bubble_positioner_;
537 540
538 // Storage of string needed for accessibility. 541 // Storage of string needed for accessibility.
539 std::wstring accessible_name_; 542 std::wstring accessible_name_;
540 543
541 DISALLOW_COPY_AND_ASSIGN(LocationBarView); 544 DISALLOW_COPY_AND_ASSIGN(LocationBarView);
542 }; 545 };
543 546
544 #endif // CHROME_BROWSER_VIEWS_LOCATION_BAR_VIEW_H_ 547 #endif // CHROME_BROWSER_VIEWS_LOCATION_BAR_VIEW_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698