• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef CHROME_BROWSER_CONTENT_SETTING_IMAGE_MODEL_H_
6 #define CHROME_BROWSER_CONTENT_SETTING_IMAGE_MODEL_H_
7 #pragma once
8 
9 #include <string>
10 
11 #include "chrome/common/content_settings_types.h"
12 
13 class TabContents;
14 
15 // This model provides data (icon ids and tooltip) for the content setting icons
16 // that are displayed in the location bar.
17 class ContentSettingImageModel {
18  public:
~ContentSettingImageModel()19   virtual ~ContentSettingImageModel() {}
20 
21   // Factory function.
22   static ContentSettingImageModel* CreateContentSettingImageModel(
23      ContentSettingsType content_settings_type);
24 
25   // Notifies this model that its setting might have changed and it may need to
26   // update its visibility, icon and tooltip.
27   virtual void UpdateFromTabContents(TabContents* tab_contents) = 0;
28 
get_content_settings_type()29   ContentSettingsType get_content_settings_type() const {
30     return content_settings_type_;
31   }
is_visible()32   bool is_visible() const { return is_visible_; }
get_icon()33   int get_icon() const { return icon_; }
34   // Returns the resource ID of a string to show when the icon appears, or 0 if
35   // we don't wish to show anything.
explanatory_string_id()36   int explanatory_string_id() const { return explanatory_string_id_; }
get_tooltip()37   std::string get_tooltip() const { return tooltip_; }
38 
39  protected:
40   explicit ContentSettingImageModel(ContentSettingsType content_settings_type);
set_visible(bool visible)41   void set_visible(bool visible) { is_visible_ = visible; }
set_icon(int icon)42   void set_icon(int icon) { icon_ = icon; }
set_explanatory_string_id(int text_id)43   void set_explanatory_string_id(int text_id) {
44     explanatory_string_id_ = text_id;
45   }
set_tooltip(const std::string & tooltip)46   void set_tooltip(const std::string& tooltip) { tooltip_ = tooltip; }
47 
48  private:
49   const ContentSettingsType content_settings_type_;
50   bool is_visible_;
51   int icon_;
52   int explanatory_string_id_;
53   std::string tooltip_;
54 };
55 
56 #endif  // CHROME_BROWSER_CONTENT_SETTING_IMAGE_MODEL_H_
57