Index: chrome/browser/protector/setting_change.h |
diff --git a/chrome/browser/protector/setting_change.h b/chrome/browser/protector/setting_change.h |
index 0a1e1d2910bebd3e7117d16202c40548da56be73..4b5ee84ea0bd15b4571a0287a069068159178b98 100644 |
--- a/chrome/browser/protector/setting_change.h |
+++ b/chrome/browser/protector/setting_change.h |
@@ -21,49 +21,42 @@ class Protector; |
// Base class for setting change tracked by Protector. |
class SettingChange { |
public: |
- // IDs of changes Protector currently tracks. |
- enum Type { |
- // Default search engine has been changed. |
- kSearchEngineChanged, |
- |
- // Home page has been changed. |
- kHomePageChanged, |
- }; |
- |
- explicit SettingChange(Type type) : type_(type) {} |
+ SettingChange() {} |
virtual ~SettingChange() {} |
- Type type() const { return type_; } |
+ // Applies initial actions to the setting if needed. Must be called before |
+ // any other calls are made, including text getters. |
+ virtual void Init(Protector* protector) {} |
+ |
+ // Persists new setting if needed. |
+ virtual void Apply(Protector* protector) {} |
- // Returns the old setting presentation to be shown to user. |
- // Returns empty string if the old setting is unavailable. |
- virtual string16 GetOldSetting() const = 0; |
+ // Restores old setting if needed. |
+ virtual void Discard(Protector* protector) {} |
- // Returns the new setting presentation to be shown to user. |
- virtual string16 GetNewSetting() const = 0; |
+ // Returns the wrench menu item and bubble title. |
+ virtual string16 GetTitle() const = 0; |
- // Persists new setting if needed. |
- virtual void Accept(Protector* protector) {} |
+ // Returns the bubble message text. |
+ virtual string16 GetMessage() const = 0; |
- // Restores old setting value if needed. |
- virtual void Revert(Protector* protector) {} |
+ // Returns text for the button to apply the change with |Apply|. |
+ // Returns empty string if no apply button should be shown. |
+ virtual string16 GetApplyButtonText() const = 0; |
- // Called when user ignored the change. |
- virtual void DoDefault(Protector* protector) {} |
+ // Returns text for the button to discard the change with |Discard|. |
+ virtual string16 GetDiscardButtonText() const = 0; |
private: |
- // Type of the change. Used for strings lookup by UI. |
- // TODO(avayvod): Refactor string selection logic via polymorphism. |
- Type type_; |
- |
DISALLOW_COPY_AND_ASSIGN(SettingChange); |
}; |
-typedef std::vector<SettingChange*> SettingChangeVector; |
-typedef void (SettingChange::*SettingChangeAction)(Protector*); |
+// TODO(ivankr): CompositeSettingChange that incapsulates multiple |
+// SettingChange instances. |
// Allocates and initializes SettingChange implementation for default search |
-// provider setting. |
+// provider setting. Both |actual| and |backup| may be NULL if corresponding |
+// values are unknown or invalid. |
SettingChange* CreateDefaultSearchProviderChange( |
const TemplateURL* actual, |
const TemplateURL* backup); |