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-key-codes.html",
     34                           IDR_KEYBOARD_ELEMENTS_KEY_CODES);
     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-modifier-key.html",
     40                           IDR_KEYBOARD_ELEMENTS_MODIFIER_KEY);
     41   source->AddResourcePath("elements/kb-options-menu.html",
     42                           IDR_KEYBOARD_ELEMENTS_OPTIONS_MENU);
     43   source->AddResourcePath("elements/kb-row.html", IDR_KEYBOARD_ELEMENTS_ROW);
     44   source->AddResourcePath("elements/kb-shift-key.html",
     45                           IDR_KEYBOARD_ELEMENTS_SHIFT_KEY);
     46   source->AddResourcePath("images/back.svg",
     47                           IDR_KEYBOARD_IMAGES_BACK);
     48   source->AddResourcePath("images/brightness-down.svg",
     49                           IDR_KEYBOARD_IMAGES_BRIGHTNESS_DOWN);
     50   source->AddResourcePath("images/brightness-up.svg",
     51                           IDR_KEYBOARD_IMAGES_BRIGHTNESS_UP);
     52   source->AddResourcePath("images/change-window.svg",
     53                           IDR_KEYBOARD_IMAGES_CHANGE_WINDOW);
     54   source->AddResourcePath("images/down.svg",
     55                           IDR_KEYBOARD_IMAGES_DOWN);
     56   source->AddResourcePath("images/forward.svg",
     57                           IDR_KEYBOARD_IMAGES_FORWARD);
     58   source->AddResourcePath("images/fullscreen.svg",
     59                           IDR_KEYBOARD_IMAGES_FULLSCREEN);
     60   source->AddResourcePath("images/left.svg",
     61                           IDR_KEYBOARD_IMAGES_LEFT);
     62   source->AddResourcePath("images/microphone.svg",
     63                           IDR_KEYBOARD_IMAGES_MICROPHONE);
     64   source->AddResourcePath("images/microphone-green.svg",
     65                           IDR_KEYBOARD_IMAGES_MICROPHONE_GREEN);
     66   source->AddResourcePath("images/mute.svg",
     67                           IDR_KEYBOARD_IMAGES_MUTE);
     68   source->AddResourcePath("images/reload.svg",
     69                           IDR_KEYBOARD_IMAGES_RELOAD);
     70   source->AddResourcePath("images/right.svg",
     71                           IDR_KEYBOARD_IMAGES_RIGHT);
     72   source->AddResourcePath("images/search.svg",
     73                           IDR_KEYBOARD_IMAGES_SEARCH);
     74   source->AddResourcePath("images/shutdown.svg",
     75                           IDR_KEYBOARD_IMAGES_SHUTDOWN);
     76   source->AddResourcePath("images/up.svg",
     77                           IDR_KEYBOARD_IMAGES_UP);
     78   source->AddResourcePath("images/volume-down.svg",
     79                           IDR_KEYBOARD_IMAGES_VOLUME_DOWN);
     80   source->AddResourcePath("images/volume-up.svg",
     81                           IDR_KEYBOARD_IMAGES_VOLUME_UP);
     82   source->AddResourcePath("layouts/latin-accents.js",
     83                           IDR_KEYBOARD_LAYOUTS_LATIN_ACCENTS);
     84   source->AddResourcePath("layouts/numeric.html", IDR_KEYBOARD_LAYOUTS_NUMERIC);
     85   source->AddResourcePath("layouts/system-qwerty.html",
     86                           IDR_KEYBOARD_LAYOUTS_SYSTEM_QWERTY);
     87   source->AddResourcePath("main.js", IDR_KEYBOARD_MAIN_JS);
     88   source->AddResourcePath("polymer_loader.js", IDR_KEYBOARD_POLYMER_LOADER);
     89   source->AddResourcePath("voice_input.js", IDR_KEYBOARD_VOICE_INPUT_JS);
     90 
     91   // These files are specific to the WebUI version
     92   source->AddResourcePath("api_adapter.js", IDR_KEYBOARD_WEBUI_API_ADAPTER_JS);
     93   source->AddResourcePath("constants.js", IDR_KEYBOARD_WEBUI_CONSTANTS_JS);
     94   source->AddResourcePath("layouts/qwerty.html", IDR_KEYBOARD_WEBUI_QWERTY);
     95   source->AddResourcePath("main.css", IDR_KEYBOARD_WEBUI_MAIN_CSS);
     96 
     97   return source;
     98 }
     99 
    100 }  // namespace
    101 
    102 namespace keyboard {
    103 
    104 KeyboardUIController::KeyboardUIController(content::WebUI* web_ui)
    105     : WebUIController(web_ui) {
    106   content::BrowserContext* browser_context =
    107       web_ui->GetWebContents()->GetBrowserContext();
    108   web_ui->AddMessageHandler(new KeyboardUIHandler());
    109   content::WebUIDataSource::Add(
    110       browser_context,
    111       CreateKeyboardUIDataSource());
    112 }
    113 
    114 KeyboardUIController::~KeyboardUIController() {}
    115 
    116 }  // namespace keyboard
    117