Implement that a text selection handle can be moved over another text selection handle.
[framework/web/webkit-efl.git] / Source / WebKit2 / WebProcess / WebPage / WebPage.h
old mode 100644 (file)
new mode 100755 (executable)
index 147122f..8c69ad3
@@ -195,6 +195,42 @@ class WebUserMediaClient;
 
 #if ENABLE(TIZEN_ISF_PORT)
 class NativeWebKeyboardEvent;
+
+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;
+};
 #endif
 
 class WebPage : public APIObject, public CoreIPC::MessageSender<WebPage> {
@@ -236,6 +272,9 @@ public:
 #if ENABLE(TIZEN_ISF_PORT)
     void didCancelComposition(WebCore::Node*);
 
+    void prepareKeyDownEvent();
+    void swapKeyPressCommands(Vector<OwnPtr<KeyPressCommand> >&);
+
     void getCursorOffset(int&);
     void getSurroundingTextAndCursorOffset(String&, int&);
     void getSelectionRect(bool, WebCore::IntRect&);
@@ -297,9 +336,14 @@ public:
     // FIXME: We could genericize these into a DrawingArea client interface. Would that be beneficial?
     void drawRect(WebCore::GraphicsContext&, const WebCore::IntRect&);
 #if ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
-    void selectClosestWord(const WebCore::IntPoint&, bool isStartedTextSelectionFromOutside, bool& result);
-    void setLeftSelection(const WebCore::IntPoint&, bool& result);
-    void setRightSelection(const WebCore::IntPoint&, bool& result);
+    enum HandleMovingDirection {
+        HandleMovingDirectionNone = 0,
+        HandleMovingDirectionNormal,
+        HandleMovingDirectionReverse,
+    };
+    void selectClosestWord(const WebCore::IntPoint&, bool& result);
+    void setLeftSelection(const WebCore::IntPoint&, const int direction, int& result);
+    void setRightSelection(const WebCore::IntPoint&, const int direction, int& result);
     void getSelectionHandlers(WebCore::IntRect& leftRect, WebCore::IntRect& rightRect);
     void getSelectionText(String& result);
     void selectionRangeClear(bool& result);
@@ -740,10 +784,6 @@ public:
     WebCore::HTTPHeaderMap customHeaders();
 #endif
 
-#if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
-    void getTextStyleStateForSelection();
-#endif
-
 #if PLATFORM(GTK) && USE(TEXTURE_MAPPER_GL)
     uint64_t nativeWindowHandle() { return m_nativeWindowHandle; }
 #endif
@@ -757,9 +797,11 @@ public:
 #endif
 
 #if ENABLE(TIZEN_SCREEN_READER)
-    void raiseTapEvent(const WebCore::IntPoint&, const WebCore::IntPoint&);
     void moveScreenReaderFocus(bool, bool&);
     void moveScreenReaderFocusByPoint(const WebCore::IntPoint&);
+    void clearScreenReaderFocus();
+    void raiseTapEvent(const WebCore::IntPoint&, const WebCore::IntPoint&, bool&);
+    void adjustScreenReaderFocusedObjectValue(bool);
     void recalcScreenReaderFocusRect();
     void updateScreenReaderFocus(WebCore::RenderObject*);
     void clearScreenReader();
@@ -1150,6 +1192,11 @@ private:
 #if ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
     EditorState m_editorState;
 #endif
+
+#if ENABLE(TIZEN_ISF_PORT)
+    bool m_prepareKeyDownEvent;
+    Vector<OwnPtr<KeyPressCommand> > m_keyPressCommands;
+#endif
 };
 
 #if ENABLE(TIZEN_NATIVE_MEMORY_SNAPSHOT)