diff options
Diffstat (limited to 'chrome/browser/ui/webui/options2/search_engine_manager_handler.h')
-rw-r--r-- | chrome/browser/ui/webui/options2/search_engine_manager_handler.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/chrome/browser/ui/webui/options2/search_engine_manager_handler.h b/chrome/browser/ui/webui/options2/search_engine_manager_handler.h new file mode 100644 index 0000000..aa6815d --- /dev/null +++ b/chrome/browser/ui/webui/options2/search_engine_manager_handler.h @@ -0,0 +1,79 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_UI_WEBUI_OPTIONS2_SEARCH_ENGINE_MANAGER_HANDLER_H_ +#define CHROME_BROWSER_UI_WEBUI_OPTIONS2_SEARCH_ENGINE_MANAGER_HANDLER_H_ + +#include "chrome/browser/ui/search_engines/edit_search_engine_controller.h" +#include "chrome/browser/ui/webui/options2/options_ui2.h" +#include "ui/base/models/table_model_observer.h" + +class Extension; +class KeywordEditorController; + +class SearchEngineManagerHandler : public OptionsPage2UIHandler, + public ui::TableModelObserver, + public EditSearchEngineControllerDelegate { + public: + SearchEngineManagerHandler(); + virtual ~SearchEngineManagerHandler(); + + virtual void Initialize() OVERRIDE; + + // OptionsPage2UIHandler implementation. + virtual void GetLocalizedValues( + base::DictionaryValue* localized_strings) OVERRIDE; + + // ui::TableModelObserver implementation. + virtual void OnModelChanged() OVERRIDE; + virtual void OnItemsChanged(int start, int length) OVERRIDE; + virtual void OnItemsAdded(int start, int length) OVERRIDE; + virtual void OnItemsRemoved(int start, int length) OVERRIDE; + + // EditSearchEngineControllerDelegate implementation. + virtual void OnEditedKeyword(const TemplateURL* template_url, + const string16& title, + const string16& keyword, + const std::string& url) OVERRIDE; + + virtual void RegisterMessages() OVERRIDE; + + private: + scoped_ptr<KeywordEditorController> list_controller_; + scoped_ptr<EditSearchEngineController> edit_controller_; + + // Removes the search engine at the given index. Called from WebUI. + void RemoveSearchEngine(const base::ListValue* args); + + // Sets the search engine at the given index to be default. Called from WebUI. + void SetDefaultSearchEngine(const base::ListValue* args); + + // Starts an edit session for the search engine at the given index. If the + // index is -1, starts editing a new search engine instead of an existing one. + // Called from WebUI. + void EditSearchEngine(const base::ListValue* args); + + // Validates the given search engine values, and reports the results back + // to WebUI. Called from WebUI. + void CheckSearchEngineInfoValidity(const base::ListValue* args); + + // Called when an edit is cancelled. + // Called from WebUI. + void EditCancelled(const base::ListValue* args); + + // Called when an edit is finished and should be saved. + // Called from WebUI. + void EditCompleted(const base::ListValue* args); + + // Returns a dictionary to pass to WebUI representing the given search engine. + base::DictionaryValue* CreateDictionaryForEngine(int index, bool is_default); + + // Returns a dictionary to pass to WebUI representing the extension. + base::DictionaryValue* CreateDictionaryForExtension( + const Extension& extension); + + DISALLOW_COPY_AND_ASSIGN(SearchEngineManagerHandler); +}; + +#endif // CHROME_BROWSER_UI_WEBUI_OPTIONS2_SEARCH_ENGINE_MANAGER_HANDLER_H_ |