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