| Index: chrome/browser/views/location_bar_view.h
|
| ===================================================================
|
| --- chrome/browser/views/location_bar_view.h (revision 11592)
|
| +++ chrome/browser/views/location_bar_view.h (working copy)
|
| @@ -120,6 +120,7 @@
|
| virtual void AcceptInput();
|
| virtual void FocusLocation();
|
| virtual void FocusSearch();
|
| + virtual void UpdateFeedIcon();
|
| virtual void SaveStateToContents(TabContents* contents);
|
|
|
| static const int kVertMargin;
|
| @@ -224,13 +225,45 @@
|
| class ShowInfoBubbleTask;
|
| class ShowFirstRunBubbleTask;
|
|
|
| + class LocationBarImageView : public views::ImageView,
|
| + public InfoBubbleDelegate {
|
| + public:
|
| + LocationBarImageView();
|
| + virtual ~LocationBarImageView();
|
| +
|
| + // Overridden from view for the mouse hovering.
|
| + virtual void OnMouseMoved(const views::MouseEvent& event);
|
| + virtual void OnMouseExited(const views::MouseEvent& event);
|
| + virtual bool OnMousePressed(const views::MouseEvent& event) = 0;
|
| +
|
| + // InfoBubbleDelegate
|
| + void InfoBubbleClosing(InfoBubble* info_bubble, bool closed_by_escape);
|
| + bool CloseOnEscape() { return true; }
|
| +
|
| + virtual void ShowInfoBubble() = 0;
|
| +
|
| + protected:
|
| + void ShowInfoBubbleImpl(const std::wstring& text, SkColor text_color);
|
| +
|
| + private:
|
| + friend class ShowInfoBubbleTask;
|
| +
|
| + // The currently shown info bubble if any.
|
| + InfoBubble* info_bubble_;
|
| +
|
| + // A task used to display the info bubble when the mouse hovers on the
|
| + // image.
|
| + ShowInfoBubbleTask* show_info_bubble_task_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(LocationBarImageView);
|
| + };
|
| +
|
| // SecurityImageView is used to display the lock or warning icon when the
|
| // current URL's scheme is https.
|
| //
|
| // If a message has been set with SetInfoBubbleText, it displays an info
|
| // bubble when the mouse hovers on the image.
|
| - class SecurityImageView : public views::ImageView,
|
| - public InfoBubbleDelegate {
|
| + class SecurityImageView : public LocationBarImageView {
|
| public:
|
| enum Image {
|
| LOCK = 0,
|
| @@ -244,21 +277,13 @@
|
| void SetImageShown(Image image);
|
|
|
| // Overridden from view for the mouse hovering.
|
| - virtual void OnMouseMoved(const views::MouseEvent& event);
|
| - virtual void OnMouseExited(const views::MouseEvent& event);
|
| virtual bool OnMousePressed(const views::MouseEvent& event);
|
|
|
| - // InfoBubbleDelegate
|
| - void InfoBubbleClosing(InfoBubble* info_bubble, bool closed_by_escape);
|
| - bool CloseOnEscape() { return true; }
|
| -
|
| void set_profile(Profile* profile) { profile_ = profile; }
|
|
|
| + virtual void ShowInfoBubble();
|
| +
|
| private:
|
| - friend class ShowInfoBubbleTask;
|
| -
|
| - void ShowInfoBubble();
|
| -
|
| // The lock icon shown when using HTTPS.
|
| static SkBitmap* lock_icon_;
|
|
|
| @@ -279,6 +304,30 @@
|
| DISALLOW_EVIL_CONSTRUCTORS(SecurityImageView);
|
| };
|
|
|
| + // RssImageView is used to display the RSS icon when the page has a feed that
|
| + // you can subscribe to.
|
| + //
|
| + // If a message has been set with SetInfoBubbleText, it displays an info
|
| + // bubble when the mouse hovers on the image.
|
| + class RssImageView : public LocationBarImageView {
|
| + public:
|
| + explicit RssImageView(ToolbarModel* model);
|
| + virtual ~RssImageView();
|
| +
|
| + // Overridden from view for the mouse hovering.
|
| + virtual bool OnMousePressed(const views::MouseEvent& event);
|
| +
|
| + virtual void ShowInfoBubble();
|
| +
|
| + private:
|
| + // The RSS icon shown when page has a feed.
|
| + static SkBitmap* rss_icon_;
|
| +
|
| + ToolbarModel* model_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(RssImageView);
|
| + };
|
| +
|
| // Both Layout and OnChanged call into this. This updates the contents
|
| // of the 3 views: selected_keyword, keyword_hint and type_search_view. If
|
| // force_layout is true, or one of these views has changed in such a way as
|
| @@ -316,6 +365,9 @@
|
| // Sets the security icon to display. Note that no repaint is done.
|
| void SetSecurityIcon(ToolbarModel::Icon icon);
|
|
|
| + // Sets the RSS icon visibility.
|
| + void SetRssIconVisibility(FeedList* feeds);
|
| +
|
| // Sets the text that should be displayed in the info label and its associated
|
| // tooltip text. Call with an empty string if the info label should be
|
| // hidden.
|
| @@ -381,6 +433,9 @@
|
| // The view that shows the lock/warning when in HTTPS mode.
|
| SecurityImageView security_image_view_;
|
|
|
| + // The view that shows the RSS icon when the page has an RSS feed.
|
| + RssImageView rss_image_view_;
|
| +
|
| // A label displayed after the lock icon to show some extra information.
|
| views::Label info_label_;
|
|
|
|
|