Home | History | Annotate | Download | only in keyboard
      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