OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012 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_UI_WEBUI_OPTIONS_SEARCH_ENGINE_MANAGER_HANDLER_H_ | |
6 #define CHROME_BROWSER_UI_WEBUI_OPTIONS_SEARCH_ENGINE_MANAGER_HANDLER_H_ | |
7 | |
8 #include "chrome/browser/ui/search_engines/edit_search_engine_controller.h" | |
9 #include "chrome/browser/ui/webui/options/options_ui.h" | |
10 #include "ui/base/models/table_model_observer.h" | |
11 | |
12 class Extension; | |
13 class KeywordEditorController; | |
14 | |
15 class SearchEngineManagerHandler : public OptionsPageUIHandler, | |
16 public ui::TableModelObserver, | |
17 public EditSearchEngineControllerDelegate { | |
18 public: | |
19 SearchEngineManagerHandler(); | |
20 virtual ~SearchEngineManagerHandler(); | |
21 | |
22 virtual void InitializeHandler() OVERRIDE; | |
23 | |
24 // OptionsPageUIHandler implementation. | |
25 virtual void GetLocalizedValues( | |
26 base::DictionaryValue* localized_strings) OVERRIDE; | |
27 | |
28 // ui::TableModelObserver implementation. | |
29 virtual void OnModelChanged() OVERRIDE; | |
30 virtual void OnItemsChanged(int start, int length) OVERRIDE; | |
31 virtual void OnItemsAdded(int start, int length) OVERRIDE; | |
32 virtual void OnItemsRemoved(int start, int length) OVERRIDE; | |
33 | |
34 // EditSearchEngineControllerDelegate implementation. | |
35 virtual void OnEditedKeyword(const TemplateURL* template_url, | |
36 const string16& title, | |
37 const string16& keyword, | |
38 const std::string& url) OVERRIDE; | |
39 | |
40 virtual void RegisterMessages() OVERRIDE; | |
41 | |
42 private: | |
43 scoped_ptr<KeywordEditorController> list_controller_; | |
44 scoped_ptr<EditSearchEngineController> edit_controller_; | |
45 | |
46 // Removes the search engine at the given index. Called from WebUI. | |
47 void RemoveSearchEngine(const base::ListValue* args); | |
48 | |
49 // Sets the search engine at the given index to be default. Called from WebUI. | |
50 void SetDefaultSearchEngine(const base::ListValue* args); | |
51 | |
52 // Starts an edit session for the search engine at the given index. If the | |
53 // index is -1, starts editing a new search engine instead of an existing one. | |
54 // Called from WebUI. | |
55 void EditSearchEngine(const base::ListValue* args); | |
56 | |
57 // Validates the given search engine values, and reports the results back | |
58 // to WebUI. Called from WebUI. | |
59 void CheckSearchEngineInfoValidity(const base::ListValue* args); | |
60 | |
61 // Called when an edit is cancelled. | |
62 // Called from WebUI. | |
63 void EditCancelled(const base::ListValue* args); | |
64 | |
65 // Called when an edit is finished and should be saved. | |
66 // Called from WebUI. | |
67 void EditCompleted(const base::ListValue* args); | |
68 | |
69 // Returns a dictionary to pass to WebUI representing the given search engine. | |
70 base::DictionaryValue* CreateDictionaryForEngine(int index, bool is_default); | |
71 | |
72 // Returns a dictionary to pass to WebUI representing the extension. | |
73 base::DictionaryValue* CreateDictionaryForExtension( | |
74 const Extension& extension); | |
75 | |
76 DISALLOW_COPY_AND_ASSIGN(SearchEngineManagerHandler); | |
77 }; | |
78 | |
79 #endif // CHROME_BROWSER_UI_WEBUI_OPTIONS_SEARCH_ENGINE_MANAGER_HANDLER_H_ | |
OLD | NEW |