Index: remoting/client/input/keyboard_input_strategy.h |
diff --git a/remoting/client/input/keyboard_input_strategy.h b/remoting/client/input/keyboard_input_strategy.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9f91c06023ce8a9c757175decd75406fd3dc5c6f |
--- /dev/null |
+++ b/remoting/client/input/keyboard_input_strategy.h |
@@ -0,0 +1,39 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef REMOTING_CLIENT_INPUT_KEYBOARD_INPUT_STRATEGY_H_ |
+#define REMOTING_CLIENT_INPUT_KEYBOARD_INPUT_STRATEGY_H_ |
+ |
+#include <queue> |
+#include <string> |
+ |
+namespace remoting { |
+ |
+#define ALT_RIGHT 0x01 |
nicholss
2017/05/12 18:54:16
These are not used yet.
joedow
2017/05/12 19:13:17
drive-by: other native code uses ui::DomCode::ALT_
nicholss
2017/05/12 20:45:58
those are not what I want. I am making a bit mask
|
+#define ALT_LEFT 0x02 |
+#define SHIFT 0x04 |
+#define CTRL 0x08 |
+#define CMD 0x10 |
+ |
+struct KeyEvent { |
joedow
2017/05/12 19:13:17
Could you use the KeyEvent struct in the protobuf
nicholss
2017/05/12 20:45:57
Maybe. the side-effects of the fields in the prot
|
+ int keycode; |
+ bool keydown; |
+}; |
+ |
+// This is an interface used by |KeyboardInterpreter| to customize how keyboard |
+// input is handled. |
+class KeyboardInputStrategy { |
+ public: |
+ virtual ~KeyboardInputStrategy() {} |
+ |
+ // Convert a string to a |KeyEventList|. |
+ virtual std::queue<KeyEvent> ConvertTextEvent(const std::string& text, |
+ uint8_t modifiers) = 0; |
+ |
+ // Convert a delete to a |KeyEventList|. |
+ virtual std::queue<KeyEvent> ConvertDeleteEvent(uint8_t modifiers) = 0; |
+}; |
+ |
+} // namespace remoting |
+#endif // REMOTING_CLIENT_INPUT_KEYBOARD_INPUT_STRATEGY_H_ |