Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / webui / options / chromeos / pointer_handler.cc
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
3 // found in the LICENSE file.
4
5 #include "chrome/browser/ui/webui/options/chromeos/pointer_handler.h"
6
7 #include "base/basictypes.h"
8 #include "base/strings/utf_string_conversions.h"
9 #include "base/values.h"
10 #include "chrome/common/url_constants.h"
11 #include "chrome/grit/generated_resources.h"
12 #include "content/public/browser/web_ui.h"
13 #include "ui/base/l10n/l10n_util.h"
14
15 namespace chromeos {
16 namespace options {
17
18 PointerHandler::PointerHandler()
19   : has_touchpad_(false),
20     has_mouse_(false) {
21 }
22
23 PointerHandler::~PointerHandler() {
24 }
25
26 void PointerHandler::GetLocalizedValues(
27     base::DictionaryValue* localized_strings) {
28   DCHECK(localized_strings);
29
30   static OptionsStringResource resources[] = {
31     { "pointerOverlayTitleTouchpadOnly",
32         IDS_OPTIONS_POINTER_TOUCHPAD_OVERLAY_TITLE },
33     { "pointerOverlayTitleMouseOnly",
34         IDS_OPTIONS_POINTER_MOUSE_OVERLAY_TITLE },
35     { "pointerOverlayTitleTouchpadMouse",
36         IDS_OPTIONS_POINTER_TOUCHPAD_MOUSE_OVERLAY_TITLE },
37     { "pointerOverlaySectionTitleTouchpad",
38       IDS_OPTIONS_POINTER_OVERLAY_SECTION_TITLE_TOUCHPAD },
39     { "pointerOverlaySectionTitleMouse",
40       IDS_OPTIONS_POINTER_OVERLAY_SECTION_TITLE_MOUSE },
41     { "enableTapToClick",
42       IDS_OPTIONS_SETTINGS_TAP_TO_CLICK_ENABLED_DESCRIPTION },
43     { "primaryMouseRight",
44       IDS_OPTIONS_SETTINGS_PRIMARY_MOUSE_RIGHT_DESCRIPTION },
45     { "traditionalScroll",
46       IDS_OPTIONS_SETTINGS_TRADITIONAL_SCROLL_DESCRIPTION },
47   };
48
49   localized_strings->SetString("naturalScroll",
50       l10n_util::GetStringFUTF16(
51           IDS_OPTIONS_SETTINGS_NATURAL_SCROLL_DESCRIPTION,
52           base::ASCIIToUTF16(chrome::kNaturalScrollHelpURL)));
53
54   RegisterStrings(localized_strings, resources, arraysize(resources));
55 }
56
57
58 void PointerHandler::TouchpadExists(bool exists) {
59   has_touchpad_ = exists;
60   base::FundamentalValue val(exists);
61   web_ui()->CallJavascriptFunction("PointerOverlay.showTouchpadControls", val);
62   UpdateTitle();
63 }
64
65 void PointerHandler::MouseExists(bool exists) {
66   has_mouse_ = exists;
67   base::FundamentalValue val(exists);
68   web_ui()->CallJavascriptFunction("PointerOverlay.showMouseControls", val);
69   UpdateTitle();
70 }
71
72 void PointerHandler::UpdateTitle() {
73   std::string label;
74   if (has_touchpad_) {
75     label = has_mouse_ ? "pointerOverlayTitleTouchpadMouse" :
76         "pointerOverlayTitleTouchpadOnly";
77   } else {
78     label = has_mouse_ ? "pointerOverlayTitleMouseOnly" : "";
79   }
80   base::StringValue val(label);
81   web_ui()->CallJavascriptFunction("PointerOverlay.setTitle", val);
82 }
83
84 }  // namespace options
85 }  // namespace chromeos