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 21 source->SetDefaultResource(IDR_KEYBOARD_WEBUI_INDEX); 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); 30 source->AddResourcePath("elements/kb-key.html", IDR_KEYBOARD_ELEMENTS_KEY); 31 source->AddResourcePath("elements/kb-key-base.html", 32 IDR_KEYBOARD_ELEMENTS_KEY_BASE); 33 source->AddResourcePath("elements/kb-keyboard.html", 34 IDR_KEYBOARD_ELEMENTS_KEYBOARD); 35 source->AddResourcePath("elements/kb-keyset.html", 36 IDR_KEYBOARD_ELEMENTS_KEYSET); 37 source->AddResourcePath("elements/kb-row.html", IDR_KEYBOARD_ELEMENTS_ROW); 38 source->AddResourcePath("images/microphone.svg", 39 IDR_KEYBOARD_IMAGES_MICROPHONE); 40 source->AddResourcePath("images/microphone-green.svg", 41 IDR_KEYBOARD_IMAGES_MICROPHONE_GREEN); 42 source->AddResourcePath("layouts/latin-accents.js", 43 IDR_KEYBOARD_LAYOUTS_LATIN_ACCENTS); 44 source->AddResourcePath("main.js", IDR_KEYBOARD_MAIN_JS); 45 source->AddResourcePath("polymer.min.js", IDR_KEYBOARD_POLYMER); 46 source->AddResourcePath("voice_input.js", IDR_KEYBOARD_VOICE_INPUT_JS); 47 48 // These files are specific to the WebUI version 49 source->AddResourcePath("api_adapter.js", IDR_KEYBOARD_WEBUI_API_ADAPTER_JS); 50 source->AddResourcePath("constants.js", IDR_KEYBOARD_WEBUI_CONSTANTS_JS); 51 source->AddResourcePath("layouts/qwerty.html", IDR_KEYBOARD_WEBUI_QWERTY); 52 source->AddResourcePath("main.css", IDR_KEYBOARD_WEBUI_MAIN_CSS); 53 54 return source; 55 } 56 57 } // namespace 58 59 namespace keyboard { 60 61 KeyboardUIController::KeyboardUIController(content::WebUI* web_ui) 62 : WebUIController(web_ui) { 63 content::BrowserContext* browser_context = 64 web_ui->GetWebContents()->GetBrowserContext(); 65 web_ui->AddMessageHandler(new KeyboardUIHandler()); 66 content::WebUIDataSource::Add( 67 browser_context, 68 CreateKeyboardUIDataSource()); 69 } 70 71 KeyboardUIController::~KeyboardUIController() {} 72 73 } // namespace keyboard 74