| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/webui/chromeos/keyboard_overlay_ui.h" | 5 #include "chrome/browser/ui/webui/chromeos/keyboard_overlay_ui.h" |
| 6 | 6 |
| 7 #include "ash/display/display_manager.h" |
| 8 #include "ash/shell.h" |
| 7 #include "base/bind.h" | 9 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
| 9 #include "base/command_line.h" | 11 #include "base/command_line.h" |
| 10 #include "base/memory/weak_ptr.h" | 12 #include "base/memory/weak_ptr.h" |
| 11 #include "base/prefs/pref_service.h" | 13 #include "base/prefs/pref_service.h" |
| 12 #include "base/utf_string_conversions.h" | 14 #include "base/utf_string_conversions.h" |
| 13 #include "base/values.h" | 15 #include "base/values.h" |
| 14 #include "chrome/browser/chromeos/input_method/input_method_configuration.h" | 16 #include "chrome/browser/chromeos/input_method/input_method_configuration.h" |
| 15 #include "chrome/browser/chromeos/input_method/input_method_manager.h" | 17 #include "chrome/browser/chromeos/input_method/input_method_manager.h" |
| 16 #include "chrome/browser/chromeos/input_method/xkeyboard.h" | 18 #include "chrome/browser/chromeos/input_method/xkeyboard.h" |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 184 { "keyboardOverlayPreviousWindow", IDS_KEYBOARD_OVERLAY_PREVIOUS_WINDOW }, | 186 { "keyboardOverlayPreviousWindow", IDS_KEYBOARD_OVERLAY_PREVIOUS_WINDOW }, |
| 185 { "keyboardOverlayPreviousWord", IDS_KEYBOARD_OVERLAY_PREVIOUS_WORD }, | 187 { "keyboardOverlayPreviousWord", IDS_KEYBOARD_OVERLAY_PREVIOUS_WORD }, |
| 186 { "keyboardOverlayPrint", IDS_KEYBOARD_OVERLAY_PRINT }, | 188 { "keyboardOverlayPrint", IDS_KEYBOARD_OVERLAY_PRINT }, |
| 187 { "keyboardOverlayReloadCurrentPage", | 189 { "keyboardOverlayReloadCurrentPage", |
| 188 IDS_KEYBOARD_OVERLAY_RELOAD_CURRENT_PAGE }, | 190 IDS_KEYBOARD_OVERLAY_RELOAD_CURRENT_PAGE }, |
| 189 { "keyboardOverlayReloadIgnoringCache", | 191 { "keyboardOverlayReloadIgnoringCache", |
| 190 IDS_KEYBOARD_OVERLAY_RELOAD_IGNORING_CACHE }, | 192 IDS_KEYBOARD_OVERLAY_RELOAD_IGNORING_CACHE }, |
| 191 { "keyboardOverlayReopenLastClosedTab", | 193 { "keyboardOverlayReopenLastClosedTab", |
| 192 IDS_KEYBOARD_OVERLAY_REOPEN_LAST_CLOSED_TAB }, | 194 IDS_KEYBOARD_OVERLAY_REOPEN_LAST_CLOSED_TAB }, |
| 193 { "keyboardOverlayReportIssue", IDS_KEYBOARD_OVERLAY_REPORT_ISSUE }, | 195 { "keyboardOverlayReportIssue", IDS_KEYBOARD_OVERLAY_REPORT_ISSUE }, |
| 196 { "keyboardOverlayResetScreenZoom", IDS_KEYBOARD_OVERLAY_RESET_SCREEN_ZOOM }, |
| 194 { "keyboardOverlayResetZoom", IDS_KEYBOARD_OVERLAY_RESET_ZOOM }, | 197 { "keyboardOverlayResetZoom", IDS_KEYBOARD_OVERLAY_RESET_ZOOM }, |
| 198 { "keyboardOverlayRotateScreen", IDS_KEYBOARD_OVERLAY_ROTATE_SCREEN }, |
| 195 { "keyboardOverlaySave", IDS_KEYBOARD_OVERLAY_SAVE }, | 199 { "keyboardOverlaySave", IDS_KEYBOARD_OVERLAY_SAVE }, |
| 196 { "keyboardOverlayScreenshotRegion", | 200 { "keyboardOverlayScreenshotRegion", |
| 197 IDS_KEYBOARD_OVERLAY_SCREENSHOT_REGION }, | 201 IDS_KEYBOARD_OVERLAY_SCREENSHOT_REGION }, |
| 198 { "keyboardOverlayScrollUpOnePage", | 202 { "keyboardOverlayScrollUpOnePage", |
| 199 IDS_KEYBOARD_OVERLAY_SCROLL_UP_ONE_PAGE }, | 203 IDS_KEYBOARD_OVERLAY_SCROLL_UP_ONE_PAGE }, |
| 200 { "keyboardOverlaySelectAll", IDS_KEYBOARD_OVERLAY_SELECT_ALL }, | 204 { "keyboardOverlaySelectAll", IDS_KEYBOARD_OVERLAY_SELECT_ALL }, |
| 201 { "keyboardOverlaySelectPreviousInputMethod", | 205 { "keyboardOverlaySelectPreviousInputMethod", |
| 202 IDS_KEYBOARD_OVERLAY_SELECT_PREVIOUS_INPUT_METHOD }, | 206 IDS_KEYBOARD_OVERLAY_SELECT_PREVIOUS_INPUT_METHOD }, |
| 203 { "keyboardOverlaySelectWordAtATime", | 207 { "keyboardOverlaySelectWordAtATime", |
| 204 IDS_KEYBOARD_OVERLAY_SELECT_WORD_AT_A_TIME }, | 208 IDS_KEYBOARD_OVERLAY_SELECT_WORD_AT_A_TIME }, |
| (...skipping 13 matching lines...) Expand all Loading... |
| 218 IDS_KEYBOARD_OVERLAY_TOGGLE_SPEECH_INPUT }, | 222 IDS_KEYBOARD_OVERLAY_TOGGLE_SPEECH_INPUT }, |
| 219 { "keyboardOverlayToggleSpokenFeedback", | 223 { "keyboardOverlayToggleSpokenFeedback", |
| 220 IDS_KEYBOARD_OVERLAY_TOGGLE_SPOKEN_FEEDBACK }, | 224 IDS_KEYBOARD_OVERLAY_TOGGLE_SPOKEN_FEEDBACK }, |
| 221 { "keyboardOverlayUndo", IDS_KEYBOARD_OVERLAY_UNDO }, | 225 { "keyboardOverlayUndo", IDS_KEYBOARD_OVERLAY_UNDO }, |
| 222 { "keyboardOverlayViewKeyboardOverlay", | 226 { "keyboardOverlayViewKeyboardOverlay", |
| 223 IDS_KEYBOARD_OVERLAY_VIEW_KEYBOARD_OVERLAY }, | 227 IDS_KEYBOARD_OVERLAY_VIEW_KEYBOARD_OVERLAY }, |
| 224 { "keyboardOverlayViewSource", IDS_KEYBOARD_OVERLAY_VIEW_SOURCE }, | 228 { "keyboardOverlayViewSource", IDS_KEYBOARD_OVERLAY_VIEW_SOURCE }, |
| 225 { "keyboardOverlayWordMove", IDS_KEYBOARD_OVERLAY_WORD_MOVE }, | 229 { "keyboardOverlayWordMove", IDS_KEYBOARD_OVERLAY_WORD_MOVE }, |
| 226 { "keyboardOverlayZoomIn", IDS_KEYBOARD_OVERLAY_ZOOM_IN }, | 230 { "keyboardOverlayZoomIn", IDS_KEYBOARD_OVERLAY_ZOOM_IN }, |
| 227 { "keyboardOverlayZoomOut", IDS_KEYBOARD_OVERLAY_ZOOM_OUT }, | 231 { "keyboardOverlayZoomOut", IDS_KEYBOARD_OVERLAY_ZOOM_OUT }, |
| 232 { "keyboardOverlayZoomScreenIn", IDS_KEYBOARD_OVERLAY_ZOOM_SCREEN_IN }, |
| 233 { "keyboardOverlayZoomScreenOut", IDS_KEYBOARD_OVERLAY_ZOOM_SCREEN_OUT }, |
| 228 }; | 234 }; |
| 229 | 235 |
| 230 std::string ModifierKeyToLabel(ModifierKey modifier) { | 236 std::string ModifierKeyToLabel(ModifierKey modifier) { |
| 231 for (size_t i = 0; i < arraysize(kModifierToLabels); ++i) { | 237 for (size_t i = 0; i < arraysize(kModifierToLabels); ++i) { |
| 232 if (modifier == kModifierToLabels[i].modifier) { | 238 if (modifier == kModifierToLabels[i].modifier) { |
| 233 return kModifierToLabels[i].label; | 239 return kModifierToLabels[i].label; |
| 234 } | 240 } |
| 235 } | 241 } |
| 236 return ""; | 242 return ""; |
| 237 } | 243 } |
| 238 | 244 |
| 239 content::WebUIDataSource* CreateKeyboardOverlayUIHTMLSource() { | 245 content::WebUIDataSource* CreateKeyboardOverlayUIHTMLSource() { |
| 240 content::WebUIDataSource* source = | 246 content::WebUIDataSource* source = |
| 241 content::WebUIDataSource::Create(chrome::kChromeUIKeyboardOverlayHost); | 247 content::WebUIDataSource::Create(chrome::kChromeUIKeyboardOverlayHost); |
| 242 | 248 |
| 243 for (size_t i = 0; i < arraysize(kI18nContentToMessage); ++i) { | 249 for (size_t i = 0; i < arraysize(kI18nContentToMessage); ++i) { |
| 244 source->AddLocalizedString(kI18nContentToMessage[i].i18n_content, | 250 source->AddLocalizedString(kI18nContentToMessage[i].i18n_content, |
| 245 kI18nContentToMessage[i].message); | 251 kI18nContentToMessage[i].message); |
| 246 } | 252 } |
| 247 | 253 |
| 248 source->AddString("keyboardOverlayLearnMoreURL", UTF8ToUTF16(kLearnMoreURL)); | 254 source->AddString("keyboardOverlayLearnMoreURL", UTF8ToUTF16(kLearnMoreURL)); |
| 249 const char* has_diamond_key_value = | 255 source->AddBoolean("keyboardOverlayHasChromeOSDiamondKey", |
| 250 CommandLine::ForCurrentProcess()->HasSwitch( | 256 CommandLine::ForCurrentProcess()->HasSwitch( |
| 251 switches::kHasChromeOSDiamondKey) ? "true" : "false"; | 257 switches::kHasChromeOSDiamondKey)); |
| 252 source->AddString("keyboardOverlayHasChromeOSDiamondKey", | 258 ash::Shell* shell = ash::Shell::GetInstance(); |
| 253 has_diamond_key_value); | 259 ash::internal::DisplayManager* display_manager = shell->display_manager(); |
| 260 source->AddBoolean("keyboardOverlayIsDisplayRotationEnabled", |
| 261 display_manager->IsDisplayRotationEnabled()); |
| 262 source->AddBoolean("keyboardOverlayIsDisplayUIScalingEnabled", |
| 263 display_manager->IsDisplayUIScalingEnabled()); |
| 254 source->SetJsonPath("strings.js"); | 264 source->SetJsonPath("strings.js"); |
| 255 source->SetUseJsonJSFormatV2(); | 265 source->SetUseJsonJSFormatV2(); |
| 256 source->AddResourcePath("keyboard_overlay.js", IDR_KEYBOARD_OVERLAY_JS); | 266 source->AddResourcePath("keyboard_overlay.js", IDR_KEYBOARD_OVERLAY_JS); |
| 257 source->SetDefaultResource(IDR_KEYBOARD_OVERLAY_HTML); | 267 source->SetDefaultResource(IDR_KEYBOARD_OVERLAY_HTML); |
| 258 return source; | 268 return source; |
| 259 } | 269 } |
| 260 | 270 |
| 261 } // namespace | 271 } // namespace |
| 262 | 272 |
| 263 // The handler for Javascript messages related to the "keyboardoverlay" view. | 273 // The handler for Javascript messages related to the "keyboardoverlay" view. |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 | 372 |
| 363 KeyboardOverlayUI::KeyboardOverlayUI(content::WebUI* web_ui) | 373 KeyboardOverlayUI::KeyboardOverlayUI(content::WebUI* web_ui) |
| 364 : WebDialogUI(web_ui) { | 374 : WebDialogUI(web_ui) { |
| 365 Profile* profile = Profile::FromWebUI(web_ui); | 375 Profile* profile = Profile::FromWebUI(web_ui); |
| 366 KeyboardOverlayHandler* handler = new KeyboardOverlayHandler(profile); | 376 KeyboardOverlayHandler* handler = new KeyboardOverlayHandler(profile); |
| 367 web_ui->AddMessageHandler(handler); | 377 web_ui->AddMessageHandler(handler); |
| 368 | 378 |
| 369 // Set up the chrome://keyboardoverlay/ source. | 379 // Set up the chrome://keyboardoverlay/ source. |
| 370 content::WebUIDataSource::Add(profile, CreateKeyboardOverlayUIHTMLSource()); | 380 content::WebUIDataSource::Add(profile, CreateKeyboardOverlayUIHTMLSource()); |
| 371 } | 381 } |
| OLD | NEW |