+
+enum {
+ KeyPressCommandSetComposition,
+ KeyPressCommandConfirmComposition,
+ KeyPressCommandDeleteText
+};
+
+struct KeyPressCommand {
+ KeyPressCommand(int type) : type(type) { }
+
+ int type;
+};
+
+struct SetCompositionKeyPressCommand : public KeyPressCommand {
+ SetCompositionKeyPressCommand(const String& compositionString, const Vector<WebCore::CompositionUnderline>& underlines, uint64_t cursorPosition)
+ : KeyPressCommand(KeyPressCommandSetComposition), compositionString(compositionString), underlines(underlines), cursorPosition(cursorPosition) { }
+
+ String compositionString;
+ Vector<WebCore::CompositionUnderline> underlines;
+ uint64_t cursorPosition;
+};
+
+struct ConfirmCompositionKeyPressCommand : public KeyPressCommand {
+ ConfirmCompositionKeyPressCommand(const String& compositionString)
+ : KeyPressCommand(KeyPressCommandConfirmComposition), compositionString(compositionString) { }
+
+ String compositionString;
+};
+
+struct DeleteTextKeyPressCommand : public KeyPressCommand {
+ DeleteTextKeyPressCommand(int offset, int count)
+ : KeyPressCommand(KeyPressCommandDeleteText), offset(offset), count(count) { }
+
+ int offset;
+ int count;
+};