OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/extensions/extension_input_api.h" | 5 #include "chrome/browser/extensions/extension_input_api.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
(...skipping 27 matching lines...) Expand all Loading... |
38 const char kKeyDown[] = "keydown"; | 38 const char kKeyDown[] = "keydown"; |
39 const char kKeyUp[] = "keyup"; | 39 const char kKeyUp[] = "keyup"; |
40 | 40 |
41 // Errors. | 41 // Errors. |
42 const char kUnknownEventTypeError[] = "Unknown event type."; | 42 const char kUnknownEventTypeError[] = "Unknown event type."; |
43 const char kUnknownOrUnsupportedKeyIdentiferError[] = "Unknown or unsupported " | 43 const char kUnknownOrUnsupportedKeyIdentiferError[] = "Unknown or unsupported " |
44 "key identifier."; | 44 "key identifier."; |
45 const char kUnsupportedModifier[] = "Unsupported modifier."; | 45 const char kUnsupportedModifier[] = "Unsupported modifier."; |
46 const char kNoValidRecipientError[] = "No valid recipient for event."; | 46 const char kNoValidRecipientError[] = "No valid recipient for event."; |
47 const char kKeyEventUnprocessedError[] = "Event was not handled."; | 47 const char kKeyEventUnprocessedError[] = "Event was not handled."; |
| 48 const char kInvalidHeight[] = "Invalid height."; |
48 #if defined(OS_CHROMEOS) && defined(TOUCH_UI) | 49 #if defined(OS_CHROMEOS) && defined(TOUCH_UI) |
49 const char kCrosLibraryNotLoadedError[] = "Cros shared library not loaded."; | 50 const char kCrosLibraryNotLoadedError[] = "Cros shared library not loaded."; |
50 #endif | 51 #endif |
51 | 52 |
52 ui::EventType GetTypeFromString(const std::string& type) { | 53 ui::EventType GetTypeFromString(const std::string& type) { |
53 if (type == kKeyDown) { | 54 if (type == kKeyDown) { |
54 return ui::ET_KEY_PRESSED; | 55 return ui::ET_KEY_PRESSED; |
55 } else if (type == kKeyUp) { | 56 } else if (type == kKeyUp) { |
56 return ui::ET_KEY_RELEASED; | 57 return ui::ET_KEY_RELEASED; |
57 } | 58 } |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 } | 138 } |
138 | 139 |
139 #if defined(TOUCH_UI) | 140 #if defined(TOUCH_UI) |
140 bool HideKeyboardFunction::RunImpl() { | 141 bool HideKeyboardFunction::RunImpl() { |
141 NotificationService::current()->Notify( | 142 NotificationService::current()->Notify( |
142 NotificationType::HIDE_KEYBOARD_INVOKED, | 143 NotificationType::HIDE_KEYBOARD_INVOKED, |
143 Source<HideKeyboardFunction>(this), | 144 Source<HideKeyboardFunction>(this), |
144 NotificationService::NoDetails()); | 145 NotificationService::NoDetails()); |
145 return true; | 146 return true; |
146 } | 147 } |
| 148 |
| 149 bool SetKeyboardHeightFunction::RunImpl() { |
| 150 int height = 0; |
| 151 EXTENSION_FUNCTION_VALIDATE(args_->GetInteger(0, &height)); |
| 152 |
| 153 if (height < 0) { |
| 154 error_ = kInvalidHeight; |
| 155 return false; |
| 156 } |
| 157 |
| 158 // TODO(penghuang) Check the height is not greater than height of browser view |
| 159 // and set the height of virtual keyboard directly instead of using |
| 160 // notification. |
| 161 NotificationService::current()->Notify( |
| 162 NotificationType::SET_KEYBOARD_HEIGHT_INVOKED, |
| 163 Source<SetKeyboardHeightFunction>(this), |
| 164 Details<int>(&height)); |
| 165 return true; |
| 166 } |
147 #endif | 167 #endif |
148 | 168 |
149 #if defined(OS_CHROMEOS) && defined(TOUCH_UI) | 169 #if defined(OS_CHROMEOS) && defined(TOUCH_UI) |
150 // TODO(yusukes): This part should be moved to extension_input_api_chromeos.cc. | 170 // TODO(yusukes): This part should be moved to extension_input_api_chromeos.cc. |
151 bool SendHandwritingStrokeFunction::RunImpl() { | 171 bool SendHandwritingStrokeFunction::RunImpl() { |
152 chromeos::CrosLibrary* cros_library = chromeos::CrosLibrary::Get(); | 172 chromeos::CrosLibrary* cros_library = chromeos::CrosLibrary::Get(); |
153 if (!cros_library->EnsureLoaded()) { | 173 if (!cros_library->EnsureLoaded()) { |
154 error_ = kCrosLibraryNotLoadedError; | 174 error_ = kCrosLibraryNotLoadedError; |
155 return false; | 175 return false; |
156 } | 176 } |
(...skipping 26 matching lines...) Expand all Loading... |
183 // TODO(yusukes): Add a parameter for an input context ID. | 203 // TODO(yusukes): Add a parameter for an input context ID. |
184 int stroke_count = 0; // zero means 'clear all strokes'. | 204 int stroke_count = 0; // zero means 'clear all strokes'. |
185 if (HasOptionalArgument(0)) { | 205 if (HasOptionalArgument(0)) { |
186 EXTENSION_FUNCTION_VALIDATE(args_->GetInteger(0, &stroke_count)); | 206 EXTENSION_FUNCTION_VALIDATE(args_->GetInteger(0, &stroke_count)); |
187 EXTENSION_FUNCTION_VALIDATE(stroke_count >= 0); | 207 EXTENSION_FUNCTION_VALIDATE(stroke_count >= 0); |
188 } | 208 } |
189 cros_library->GetInputMethodLibrary()->CancelHandwritingStrokes(stroke_count); | 209 cros_library->GetInputMethodLibrary()->CancelHandwritingStrokes(stroke_count); |
190 return true; | 210 return true; |
191 } | 211 } |
192 #endif | 212 #endif |
OLD | NEW |