Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(58)

Side by Side Diff: chrome/browser/chromeos/dom_ui/keyboard_overlay_ui.cc

Issue 4226001: Implement DOM UI version of keyboard overlay. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: '' Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2009 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 #include "chrome/browser/chromeos/dom_ui/keyboard_overlay_ui.h"
6
7 #include "app/l10n_util.h"
8 #include "app/resource_bundle.h"
9 #include "base/callback.h"
10 #include "base/values.h"
11 #include "base/weak_ptr.h"
12 #include "chrome/browser/browser_thread.h"
13 #include "chrome/browser/dom_ui/chrome_url_data_manager.h"
14 #include "chrome/common/jstemplate_builder.h"
15 #include "chrome/common/url_constants.h"
16 #include "grit/browser_resources.h"
17 #include "grit/generated_resources.h"
18
19 #if defined(OS_CHROMEOS)
20 #include "chrome/browser/chromeos/cros/cros_library.h"
21 #endif
22
23 class KeyboardOverlayUIHTMLSource : public ChromeURLDataManager::DataSource {
24 public:
25 KeyboardOverlayUIHTMLSource();
26
27 // Called when the keyboard overlay has requested a resource underneath
28 // the path we registered.
29 virtual void StartDataRequest(const std::string& path,
30 bool is_off_the_record,
31 int request_id);
32 virtual std::string GetMimeType(const std::string&) const {
33 return "text/html";
34 }
35
36 private:
37 ~KeyboardOverlayUIHTMLSource() {}
38
39 DISALLOW_COPY_AND_ASSIGN(KeyboardOverlayUIHTMLSource);
40 };
41
42
43 // The handler for Javascript messages related to the "keyboardoverlay" view.
44 class KeyboardOverlayHandler
45 : public DOMMessageHandler,
46 public base::SupportsWeakPtr<KeyboardOverlayHandler> {
47 public:
48 KeyboardOverlayHandler();
49 virtual ~KeyboardOverlayHandler();
50
51 // DOMMessageHandler implementation.
52 virtual DOMMessageHandler* Attach(DOMUI* dom_ui);
53 virtual void RegisterMessages();
54
55 private:
56 DISALLOW_COPY_AND_ASSIGN(KeyboardOverlayHandler);
57 };
58
59 ////////////////////////////////////////////////////////////////////////////////
60 //
61 // KeyboardOverlayUIHTMLSource
62 //
63 ////////////////////////////////////////////////////////////////////////////////
64
65 KeyboardOverlayUIHTMLSource::KeyboardOverlayUIHTMLSource()
66 : DataSource(chrome::kChromeUIKeyboardOverlayHost,
67 MessageLoop::current()) {
68 }
69
70 void KeyboardOverlayUIHTMLSource::StartDataRequest(const std::string& path,
71 bool is_off_the_record,
72 int request_id) {
73 DictionaryValue localized_strings;
74 localized_strings.SetString("keyboardOverlayTitle",
75 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_TITLE));
76 localized_strings.SetString("keyboardOverlayInstructions",
77 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_INSTRUCTIONS));
78 localized_strings.SetString("keyboardOverlayActivateLastTab",
79 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_LAST_TAB));
80 localized_strings.SetString("keyboardOverlayActivateNextTab",
81 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_NEXT_TAB));
82 localized_strings.SetString("keyboardOverlayActivatePreviousTab",
83 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_PREVIOUS_TAB));
84 localized_strings.SetString("keyboardOverlayActivateTab1",
85 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_1));
86 localized_strings.SetString("keyboardOverlayActivateTab2",
87 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_2));
88 localized_strings.SetString("keyboardOverlayActivateTab3",
89 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_3));
90 localized_strings.SetString("keyboardOverlayActivateTab4",
91 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_4));
92 localized_strings.SetString("keyboardOverlayActivateTab5",
93 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_5));
94 localized_strings.SetString("keyboardOverlayActivateTab6",
95 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_6));
96 localized_strings.SetString("keyboardOverlayActivateTab7",
97 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_7));
98 localized_strings.SetString("keyboardOverlayActivateTab8",
99 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_8));
100 localized_strings.SetString("keyboardOverlayAddWwwAndComAndOpenAddress",
101 l10n_util::GetStringUTF16(
102 IDS_KEYBOARD_OVERLAY_ADD_WWW_AND_COM_AND_OPEN_ADDRESS));
103 localized_strings.SetString("keyboardOverlayBookmarkCurrentPage",
104 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_BOOKMARK_CURRENT_PAGE));
105 localized_strings.SetString("keyboardOverlayBookmarkAllTabs",
106 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_BOOKMARK_ALL_TABS));
107 localized_strings.SetString("keyboardOverlayCloseTab",
108 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_CLOSE_TAB));
109 localized_strings.SetString("keyboardOverlayCloseWindow",
110 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_CLOSE_WINDOW));
111 localized_strings.SetString("keyboardOverlayDeleteWord",
112 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_DELETE_WORD));
113 localized_strings.SetString("keyboardOverlayDeveloperTools",
114 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_DEVELOPER_TOOLS));
115 localized_strings.SetString("keyboardOverlayFindAgain",
116 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_FIND_AGAIN));
117 localized_strings.SetString("keyboardOverlayFindPrevious",
118 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_FIND_PREVIOUS));
119 localized_strings.SetString("keyboardOverlayFindPrevious",
120 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_FIND_PREVIOUS));
121 localized_strings.SetString("keyboardOverlayFindText",
122 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_FIND_TEXT));
123 localized_strings.SetString("keyboardOverlayFocusAddressBar",
124 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_FOCUS_ADDRESS_BAR));
125 localized_strings.SetString("keyboardOverlayFocusAddressBar",
126 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_FOCUS_ADDRESS_BAR));
127 localized_strings.SetString("keyboardOverlayFocusAddressBarInSearchMode",
128 l10n_util::GetStringUTF16(
129 IDS_KEYBOARD_OVERLAY_FOCUS_ADDRESS_BAR_IN_SEARCH_MODE));
130 localized_strings.SetString("keyboardOverlayDomInspector",
131 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_DOM_INSPECTOR));
132 localized_strings.SetString("keyboardOverlayDownloads",
133 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_DOWNLOADS));
134 localized_strings.SetString("keyboardOverlayTaskManager",
135 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_TASK_MANAGER));
136 localized_strings.SetString("keyboardOverlayBack",
137 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_BACK));
138 localized_strings.SetString("keyboardOverlayForward",
139 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_FORWARD));
140 localized_strings.SetString("keyboardOverlayForward",
141 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_FORWARD));
142 localized_strings.SetString("keyboardOverlayHistory",
143 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_HISTORY));
144 localized_strings.SetString("keyboardOverlayNewTab",
145 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_NEW_TAB));
146 localized_strings.SetString("keyboardOverlayOpenAddressInNewTab",
147 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_OPEN_ADDRESS_IN_NEW_TAB));
148 localized_strings.SetString("keyboardOverlayNewIncognitoWindow",
149 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_NEW_INCOGNITO_WINDOW));
150 localized_strings.SetString("keyboardOverlayNewWindow",
151 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_NEW_WINDOW));
152 localized_strings.SetString("keyboardOverlayPasteAsPlainText",
153 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_PASTE_AS_PLAIN_TEXT));
154 localized_strings.SetString("keyboardOverlayPrint",
155 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_PRINT));
156 localized_strings.SetString("keyboardOverlayReloadCurrentPage",
157 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_RELOAD_CURRENT_PAGE));
158 localized_strings.SetString("keyboardOverlayReopenLastClosedTab",
159 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_REOPEN_LAST_CLOSED_TAB));
160 localized_strings.SetString("keyboardOverlayResetZoom",
161 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_RESET_ZOOM));
162 localized_strings.SetString("keyboardOverlaySelectWordAtATime",
163 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_SELECT_WORD_AT_A_TIME));
164 localized_strings.SetString("keyboardOverlayToggleBookmarkBar",
165 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_TOGGLE_BOOKMARK_BAR));
166 localized_strings.SetString("keyboardOverlayViewSource",
167 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_VIEW_SOURCE));
168 localized_strings.SetString("keyboardOverlayZoomIn",
169 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ZOOM_IN));
170 localized_strings.SetString("keyboardOverlayZoomOut",
171 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ZOOM_OUT));
172 localized_strings.SetString("keyboardOverlayResetZoom",
173 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_RESET_ZOOM));
174 localized_strings.SetString("keyboardOverlayFocusAddressBarInSearchMode",
175 l10n_util::GetStringUTF16(
176 IDS_KEYBOARD_OVERLAY_FOCUS_ADDRESS_BAR_IN_SEARCH_MODE));
177 localized_strings.SetString("keyboardOverlayFullScreen",
178 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_FULL_SCREEN));
179 localized_strings.SetString("keyboardOverlayTakeScreenshot",
180 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_TAKE_SCREENSHOT));
181 localized_strings.SetString("keyboardOverlayHome",
182 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_HOME));
183 localized_strings.SetString("keyboardOverlayEnd",
184 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_END));
185 localized_strings.SetString("keyboardOverlayNextWindow",
186 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_NEXT_WINDOW));
187 localized_strings.SetString("keyboardOverlayContentBrowser",
188 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_CONTENT_BROWSER));
189 localized_strings.SetString("keyboardOverlayPageUp",
190 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_PAGE_UP));
191 localized_strings.SetString("keyboardOverlayPageDown",
192 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_PAGE_DOWN));
193 localized_strings.SetString("keyboardOverlayPreviousWindow",
194 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_PREVIOUS_WINDOW));
195 localized_strings.SetString("keyboardOverlayUseExternalMonitor",
196 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_USE_EXTERNAL_MONITOR));
197 localized_strings.SetString("keyboardOverlayReloadIgnoringCache",
198 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_RELOAD_IGNORING_CACHE));
199 localized_strings.SetString("keyboardOverlaySave",
200 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_SAVE));
201 localized_strings.SetString("keyboardOverlayScrollUpOnePage",
202 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_SCROLL_UP_ONE_PAGE));
203 localized_strings.SetString("keyboardOverlaySettings",
204 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_SETTINGS));
205 localized_strings.SetString("keyboardOverlaySignOut",
206 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_SIGN_OUT));
207 localized_strings.SetString("keyboardOverlayUndo",
208 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_UNDO));
209 localized_strings.SetString("keyboardOverlayWordMove",
210 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_WORD_MOVE));
211 localized_strings.SetString("keyboardOverlaySelectAll",
212 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_SELECT_ALL));
213 localized_strings.SetString("keyboardOverlaySelectPreviousInputMethod",
214 l10n_util::GetStringUTF16(
215 IDS_KEYBOARD_OVERLAY_SELECT_PREVIOUS_INPUT_METHOD));
216 localized_strings.SetString("keyboardOverlayCycleThroughInputMethods",
217 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_CYCLE_THROUGH_INPUT_METHODS ));
218 localized_strings.SetString("keyboardOverlayCloseWindow",
219 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_CLOSE_WINDOW));
220 localized_strings.SetString("keyboardOverlayViewKeyboardOverlay",
221 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_VIEW_KEYBOARD_OVERLAY));
222 localized_strings.SetString("keyboardOverlayCut",
223 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_CUT));
224 localized_strings.SetString("keyboardOverlayCopy",
225 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_COPY));
226 localized_strings.SetString("keyboardOverlayPaste",
227 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_PASTE));
228 localized_strings.SetString("keyboardOverlayHelp",
229 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_HELP));
230
231 static const base::StringPiece keyboard_overlay_html(
232 ResourceBundle::GetSharedInstance().GetRawDataResource(
233 IDR_KEYBOARD_OVERLAY_HTML));
234 const std::string full_html = jstemplate_builder::GetI18nTemplateHtml(
235 keyboard_overlay_html, &localized_strings);
236
237 scoped_refptr<RefCountedBytes> html_bytes(new RefCountedBytes);
238 html_bytes->data.resize(full_html.size());
239 std::copy(full_html.begin(), full_html.end(), html_bytes->data.begin());
240
241 SendResponse(request_id, html_bytes);
242 }
243
244 ////////////////////////////////////////////////////////////////////////////////
245 //
246 // KeyboardOverlayHandler
247 //
248 ////////////////////////////////////////////////////////////////////////////////
249 KeyboardOverlayHandler::KeyboardOverlayHandler() {
250 }
251
252 KeyboardOverlayHandler::~KeyboardOverlayHandler() {
253 }
254
255 DOMMessageHandler* KeyboardOverlayHandler::Attach(DOMUI* dom_ui) {
256 return DOMMessageHandler::Attach(dom_ui);
257 }
258
259 void KeyboardOverlayHandler::RegisterMessages() {
260 }
261
262 ////////////////////////////////////////////////////////////////////////////////
263 //
264 // KeyboardOverlayUI
265 //
266 ////////////////////////////////////////////////////////////////////////////////
267
268 KeyboardOverlayUI::KeyboardOverlayUI(TabContents* contents)
269 : HtmlDialogUI(contents) {
270 KeyboardOverlayHandler* handler = new KeyboardOverlayHandler();
271 AddMessageHandler((handler)->Attach(this));
272 KeyboardOverlayUIHTMLSource* html_source = new KeyboardOverlayUIHTMLSource();
273
274 // Set up the chrome://keyboardoverlay/ source.
275 BrowserThread::PostTask(
276 BrowserThread::IO, FROM_HERE,
277 NewRunnableMethod(
278 Singleton<ChromeURLDataManager>::get(),
279 &ChromeURLDataManager::AddDataSource,
280 make_scoped_refptr(html_source)));
281 }
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/dom_ui/keyboard_overlay_ui.h ('k') | chrome/browser/dom_ui/dom_ui_factory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698