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

Unified Diff: chrome/browser/cocoa/location_bar_view_mac.h

Issue 600133: Mac: Content blocked icons. (Closed)
Patch Set: comments andybons Created 10 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/cocoa/location_bar_view_mac.h
diff --git a/chrome/browser/cocoa/location_bar_view_mac.h b/chrome/browser/cocoa/location_bar_view_mac.h
index 19d88d1c68f610d111a13fc362bbebeb2c73f002..75241f8d782a9925da7d4476ec9261cd4455cacd 100644
--- a/chrome/browser/cocoa/location_bar_view_mac.h
+++ b/chrome/browser/cocoa/location_bar_view_mac.h
@@ -13,11 +13,13 @@
#include "base/scoped_nsobject.h"
#include "base/scoped_ptr.h"
+#include "base/scoped_vector.h"
#include "chrome/browser/autocomplete/autocomplete_edit.h"
#include "chrome/browser/autocomplete/autocomplete_edit_view_mac.h"
#include "chrome/browser/extensions/image_loading_tracker.h"
#include "chrome/browser/location_bar.h"
#include "chrome/browser/toolbar_model.h"
+#include "chrome/common/content_settings_types.h"
#include "third_party/skia/include/core/SkBitmap.h"
@class AutocompleteTextField;
@@ -150,6 +152,15 @@ class LocationBarViewMac : public AutocompleteEditController,
const NSAttributedString* GetLabel() const { return label_; }
bool IsVisible() const { return visible_; }
+ // Returns the tooltip for this image view or |nil| if there is none.
+ virtual const NSString* GetToolTip() { return nil; }
+
+ // Called on mouse down.
+ virtual void OnMousePressed(NSRect bounds) {}
+
+ // Called to get the icon's context menu. Return |nil| for no menu.
+ virtual NSMenu* GetMenu() { return nil; }
+
private:
scoped_nsobject<NSImage> image_;
@@ -178,8 +189,8 @@ class LocationBarViewMac : public AutocompleteEditController,
// Sets the image to the appropriate icon.
void SetImageShown(Image image);
- // Shows the page info dialog. Virtual so it can be overridden for testing.
- virtual bool OnMousePressed();
+ // Shows the page info dialog.
+ virtual void OnMousePressed(NSRect bounds);
private:
// The lock icon shown when using HTTPS. Loaded lazily, the first time it's
@@ -223,8 +234,7 @@ class LocationBarViewMac : public AutocompleteEditController,
virtual NSSize GetImageSize();
// Either notify listeners or show a popup depending on the Page Action.
- // Virtual so it can be overridden for testing.
- virtual bool OnMousePressed(NSRect bounds);
+ virtual void OnMousePressed(NSRect bounds);
// Overridden from ImageLoadingTracker.
virtual void OnImageLoaded(SkBitmap* image, size_t index);
@@ -239,7 +249,10 @@ class LocationBarViewMac : public AutocompleteEditController,
void SetToolTip(std::string tooltip);
// Returns the tooltip for this Page Action image or |nil| if there is none.
- const NSString* GetToolTip();
+ virtual const NSString* GetToolTip();
+
+ // Overridden to return a menu.
+ virtual NSMenu* GetMenu();
protected:
// For unit testing only.
@@ -293,6 +306,38 @@ class LocationBarViewMac : public AutocompleteEditController,
DISALLOW_COPY_AND_ASSIGN(PageActionImageView);
};
+ // ContentBlockedImageView is used to display the content settings images
+ // when types of contents are blocked on the current page.
+ class ContentBlockedImageView : public LocationBarImageView {
+ public:
+ ContentBlockedImageView(ContentSettingsType settings_type,
+ LocationBarViewMac* owner,
+ Profile* profile);
+ virtual ~ContentBlockedImageView();
+
+ // Shows a content settings bubble.
+ void OnMousePressed(NSRect bounds);
+
+ // Returns the settings type this shows up for.
+ ContentSettingsType settings_type() { return settings_type_; }
+
+ // Returns the tooltip for this Page Action image or |nil| if there is none.
+ virtual const NSString* GetToolTip();
+
+ private:
+ void SetToolTip(NSString* tooltip);
+
+ // The type of content handled by this view.
+ ContentSettingsType settings_type_;
+
+ LocationBarViewMac* owner_;
+ Profile* profile_;
+ scoped_nsobject<NSString> tooltip_;
+
+ DISALLOW_COPY_AND_ASSIGN(ContentBlockedImageView);
+ };
+ typedef ScopedVector<ContentBlockedImageView> ContentBlockedViews;
+
class PageActionViewList {
public:
PageActionViewList(LocationBarViewMac* location_bar,
@@ -341,6 +386,10 @@ class LocationBarViewMac : public AutocompleteEditController,
// Posts |notification| to the default notification center.
void PostNotification(const NSString* notification);
+ // Updates visibility of the content blocked icons based on the current
+ // tab contents state.
+ void RefreshContentBlockedViews();
+
scoped_ptr<AutocompleteEditViewMac> edit_view_;
CommandUpdater* command_updater_; // Weak, owned by Browser.
@@ -361,6 +410,9 @@ class LocationBarViewMac : public AutocompleteEditController,
// Any installed Page Actions.
PageActionViewList page_action_views_;
+ // The content blocked views.
+ ContentBlockedViews content_blocked_views_;
+
Profile* profile_;
Browser* browser_;
« no previous file with comments | « chrome/browser/cocoa/extension_installed_bubble_controller.mm ('k') | chrome/browser/cocoa/location_bar_view_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698