Torne (Richard Coles) | c2e0dbd | 2013-05-09 18:35:53 +0100 | [diff] [blame] | 1 | // Copyright (c) 2013 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 "ui/keyboard/keyboard_ui_controller.h" |
| 6 | |
| 7 | #include "content/public/browser/browser_context.h" |
| 8 | #include "content/public/browser/web_contents.h" |
| 9 | #include "content/public/browser/web_ui.h" |
| 10 | #include "content/public/browser/web_ui_data_source.h" |
| 11 | #include "grit/keyboard_resources.h" |
| 12 | #include "ui/keyboard/keyboard_constants.h" |
| 13 | #include "ui/keyboard/keyboard_ui_handler.h" |
| 14 | |
| 15 | namespace { |
| 16 | |
| 17 | content::WebUIDataSource* CreateKeyboardUIDataSource() { |
| 18 | content::WebUIDataSource* source = |
| 19 | content::WebUIDataSource::Create(keyboard::kKeyboardWebUIHost); |
| 20 | |
Ben Murdoch | 7dbb3d5 | 2013-07-17 14:55:54 +0100 | [diff] [blame] | 21 | source->SetDefaultResource(IDR_KEYBOARD_WEBUI_INDEX); |
Ben Murdoch | bbcdd45 | 2013-07-25 10:06:34 +0100 | [diff] [blame] | 22 | source->AddResourcePath("elements/kb-altkey.html", |
| 23 | IDR_KEYBOARD_ELEMENTS_ALTKEY); |
| 24 | source->AddResourcePath("elements/kb-altkey-container.html", |
| 25 | IDR_KEYBOARD_ELEMENTS_ALTKEY_CONTAINER); |
| 26 | source->AddResourcePath("elements/kb-altkey-data.html", |
| 27 | IDR_KEYBOARD_ELEMENTS_ALTKEY_DATA); |
| 28 | source->AddResourcePath("elements/kb-altkey-set.html", |
| 29 | IDR_KEYBOARD_ELEMENTS_ALTKEY_SET); |
Ben Murdoch | eb525c5 | 2013-07-10 11:40:50 +0100 | [diff] [blame] | 30 | source->AddResourcePath("elements/kb-key.html", IDR_KEYBOARD_ELEMENTS_KEY); |
Ben Murdoch | 7dbb3d5 | 2013-07-17 14:55:54 +0100 | [diff] [blame] | 31 | source->AddResourcePath("elements/kb-key-base.html", |
| 32 | IDR_KEYBOARD_ELEMENTS_KEY_BASE); |
Torne (Richard Coles) | 3551c9c | 2013-08-23 16:39:15 +0100 | [diff] [blame] | 33 | source->AddResourcePath("elements/kb-key-codes.html", |
| 34 | IDR_KEYBOARD_ELEMENTS_KEY_CODES); |
Ben Murdoch | eb525c5 | 2013-07-10 11:40:50 +0100 | [diff] [blame] | 35 | source->AddResourcePath("elements/kb-keyboard.html", |
| 36 | IDR_KEYBOARD_ELEMENTS_KEYBOARD); |
| 37 | source->AddResourcePath("elements/kb-keyset.html", |
| 38 | IDR_KEYBOARD_ELEMENTS_KEYSET); |
| 39 | source->AddResourcePath("elements/kb-row.html", IDR_KEYBOARD_ELEMENTS_ROW); |
Torne (Richard Coles) | d0247b1 | 2013-09-19 22:36:51 +0100 | [diff] [blame] | 40 | source->AddResourcePath("elements/kb-shift-key.html", |
| 41 | IDR_KEYBOARD_ELEMENTS_SHIFT_KEY); |
Torne (Richard Coles) | 4e180b6 | 2013-10-18 15:46:22 +0100 | [diff] [blame^] | 42 | source->AddResourcePath("images/back.svg", |
| 43 | IDR_KEYBOARD_IMAGES_BACK); |
| 44 | source->AddResourcePath("images/brightness-down.svg", |
| 45 | IDR_KEYBOARD_IMAGES_BRIGHTNESS_DOWN); |
| 46 | source->AddResourcePath("images/brightness-up.svg", |
| 47 | IDR_KEYBOARD_IMAGES_BRIGHTNESS_UP); |
| 48 | source->AddResourcePath("images/change-window.svg", |
| 49 | IDR_KEYBOARD_IMAGES_CHANGE_WINDOW); |
| 50 | source->AddResourcePath("images/down.svg", |
| 51 | IDR_KEYBOARD_IMAGES_DOWN); |
| 52 | source->AddResourcePath("images/forward.svg", |
| 53 | IDR_KEYBOARD_IMAGES_FORWARD); |
| 54 | source->AddResourcePath("images/fullscreen.svg", |
| 55 | IDR_KEYBOARD_IMAGES_FULLSCREEN); |
| 56 | source->AddResourcePath("images/left.svg", |
| 57 | IDR_KEYBOARD_IMAGES_LEFT); |
Ben Murdoch | 7dbb3d5 | 2013-07-17 14:55:54 +0100 | [diff] [blame] | 58 | source->AddResourcePath("images/microphone.svg", |
| 59 | IDR_KEYBOARD_IMAGES_MICROPHONE); |
| 60 | source->AddResourcePath("images/microphone-green.svg", |
| 61 | IDR_KEYBOARD_IMAGES_MICROPHONE_GREEN); |
Torne (Richard Coles) | 4e180b6 | 2013-10-18 15:46:22 +0100 | [diff] [blame^] | 62 | source->AddResourcePath("images/mute.svg", |
| 63 | IDR_KEYBOARD_IMAGES_MUTE); |
| 64 | source->AddResourcePath("images/reload.svg", |
| 65 | IDR_KEYBOARD_IMAGES_RELOAD); |
| 66 | source->AddResourcePath("images/right.svg", |
| 67 | IDR_KEYBOARD_IMAGES_RIGHT); |
| 68 | source->AddResourcePath("images/shutdown.svg", |
| 69 | IDR_KEYBOARD_IMAGES_SHUTDOWN); |
| 70 | source->AddResourcePath("images/up.svg", |
| 71 | IDR_KEYBOARD_IMAGES_UP); |
| 72 | source->AddResourcePath("images/volume-down.svg", |
| 73 | IDR_KEYBOARD_IMAGES_VOLUME_DOWN); |
| 74 | source->AddResourcePath("images/volume-up.svg", |
| 75 | IDR_KEYBOARD_IMAGES_VOLUME_UP); |
Ben Murdoch | bbcdd45 | 2013-07-25 10:06:34 +0100 | [diff] [blame] | 76 | source->AddResourcePath("layouts/latin-accents.js", |
| 77 | IDR_KEYBOARD_LAYOUTS_LATIN_ACCENTS); |
Torne (Richard Coles) | 58537e2 | 2013-09-12 12:10:22 +0100 | [diff] [blame] | 78 | source->AddResourcePath("layouts/numeric.html", IDR_KEYBOARD_LAYOUTS_NUMERIC); |
Torne (Richard Coles) | 4e180b6 | 2013-10-18 15:46:22 +0100 | [diff] [blame^] | 79 | source->AddResourcePath("layouts/system-qwerty.html", |
| 80 | IDR_KEYBOARD_LAYOUTS_SYSTEM_QWERTY); |
Torne (Richard Coles) | c2e0dbd | 2013-05-09 18:35:53 +0100 | [diff] [blame] | 81 | source->AddResourcePath("main.js", IDR_KEYBOARD_MAIN_JS); |
Ben Murdoch | eb525c5 | 2013-07-10 11:40:50 +0100 | [diff] [blame] | 82 | source->AddResourcePath("polymer.min.js", IDR_KEYBOARD_POLYMER); |
| 83 | source->AddResourcePath("voice_input.js", IDR_KEYBOARD_VOICE_INPUT_JS); |
Torne (Richard Coles) | c2e0dbd | 2013-05-09 18:35:53 +0100 | [diff] [blame] | 84 | |
| 85 | // These files are specific to the WebUI version |
Torne (Richard Coles) | c2e0dbd | 2013-05-09 18:35:53 +0100 | [diff] [blame] | 86 | source->AddResourcePath("api_adapter.js", IDR_KEYBOARD_WEBUI_API_ADAPTER_JS); |
Ben Murdoch | eb525c5 | 2013-07-10 11:40:50 +0100 | [diff] [blame] | 87 | source->AddResourcePath("constants.js", IDR_KEYBOARD_WEBUI_CONSTANTS_JS); |
Ben Murdoch | 7dbb3d5 | 2013-07-17 14:55:54 +0100 | [diff] [blame] | 88 | source->AddResourcePath("layouts/qwerty.html", IDR_KEYBOARD_WEBUI_QWERTY); |
Ben Murdoch | eb525c5 | 2013-07-10 11:40:50 +0100 | [diff] [blame] | 89 | source->AddResourcePath("main.css", IDR_KEYBOARD_WEBUI_MAIN_CSS); |
Torne (Richard Coles) | c2e0dbd | 2013-05-09 18:35:53 +0100 | [diff] [blame] | 90 | |
| 91 | return source; |
| 92 | } |
| 93 | |
| 94 | } // namespace |
| 95 | |
| 96 | namespace keyboard { |
| 97 | |
| 98 | KeyboardUIController::KeyboardUIController(content::WebUI* web_ui) |
| 99 | : WebUIController(web_ui) { |
| 100 | content::BrowserContext* browser_context = |
| 101 | web_ui->GetWebContents()->GetBrowserContext(); |
| 102 | web_ui->AddMessageHandler(new KeyboardUIHandler()); |
| 103 | content::WebUIDataSource::Add( |
| 104 | browser_context, |
| 105 | CreateKeyboardUIDataSource()); |
| 106 | } |
| 107 | |
| 108 | KeyboardUIController::~KeyboardUIController() {} |
| 109 | |
| 110 | } // namespace keyboard |