first bit of implementation for the textinputcontroller.
[WebKit-https.git] / WebKitTools / DumpRenderTree / qt / jsobjects.cpp
index 07d619abbf9ce772ff24d3e594c4455353c989f5..568816d895ff1444798ce74d12e7762610f24104 100644 (file)
@@ -30,6 +30,7 @@
 #include <qwebframe.h>
 #include <qevent.h>
 #include <qapplication.h>
+#include <qevent.h>
 
 #include "DumpRenderTree.h"
 extern void qt_dump_editing_callbacks(bool b);
@@ -221,3 +222,91 @@ redo:
         return frame;
     return 0;
 }
+
+
+TextInputController::TextInputController(QWebPage *parent)
+{
+}
+
+void TextInputController::doCommand(const QString &command)
+{
+    Qt::KeyboardModifiers modifiers = Qt::NoModifier;
+    int keycode = 0;
+    if (command == "moveBackwardAndModifySelection:") {
+        modifiers |= Qt::ShiftModifier;
+        keycode = Qt::Key_Left;
+    } else if(command =="moveDown:") {
+        keycode = Qt::Key_Down;
+    } else if(command =="moveDownAndModifySelection:") {
+        modifiers |= Qt::ShiftModifier;
+        keycode = Qt::Key_Down;
+    } else if(command =="moveForward:") {
+        keycode = Qt::Key_Right;
+    } else if(command =="moveForwardAndModifySelection:") {
+        modifiers |= Qt::ShiftModifier;
+        keycode = Qt::Key_Right;
+    } else if(command =="moveLeft:") {
+        keycode = Qt::Key_Left;
+    } else if(command =="moveLeftAndModifySelection:") {
+        modifiers |= Qt::ShiftModifier;
+        keycode = Qt::Key_Left;
+    } else if(command =="moveRight:") {
+        keycode = Qt::Key_Right;
+    } else if(command =="moveRightAndModifySelection:") {
+        modifiers |= Qt::ShiftModifier;
+        keycode = Qt::Key_Right;
+    } else if(command =="moveToBeginningOfDocument:") {
+        modifiers |= Qt::ControlModifier;
+        keycode = Qt::Key_Home;
+    } else if(command =="moveToBeginningOfLine:") {
+        keycode = Qt::Key_Home;
+//     } else if(command =="moveToBeginningOfParagraph:") {
+    } else if(command =="moveToEndOfDocument:") {
+        modifiers |= Qt::ControlModifier;
+        keycode = Qt::Key_End;
+    } else if(command =="moveToEndOfLine:") {
+        keycode = Qt::Key_End;
+//     } else if(command =="moveToEndOfParagraph:") {
+    } else if(command =="moveUp:") {
+        keycode = Qt::Key_Up;
+    } else if(command =="moveUpAndModifySelection:") {
+        modifiers |= Qt::ShiftModifier;
+        keycode = Qt::Key_Up;
+    } else if(command =="moveWordBackward:") {
+        modifiers |= Qt::ControlModifier;
+        keycode = Qt::Key_Up;
+    } else if(command =="moveWordBackwardAndModifySelection:") {
+        modifiers |= Qt::ShiftModifier;
+        modifiers |= Qt::ControlModifier;
+        keycode = Qt::Key_Left;
+    } else if(command =="moveWordForward:") {
+        modifiers |= Qt::ControlModifier;
+        keycode = Qt::Key_Right;
+    } else if(command =="moveWordForwardAndModifySelection:") {
+        modifiers |= Qt::ControlModifier;
+        modifiers |= Qt::ShiftModifier;
+        keycode = Qt::Key_Right;
+    } else if(command =="moveWordLeft:") {
+        modifiers |= Qt::ControlModifier;
+        keycode = Qt::Key_Left;
+    } else if(command =="moveWordRight:") {
+        modifiers |= Qt::ControlModifier;
+        keycode = Qt::Key_Left;
+    } else if(command =="moveWordRightAndModifySelection:") {
+        modifiers |= Qt::ShiftModifier;
+        modifiers |= Qt::ControlModifier;
+        keycode = Qt::Key_Right;
+    } else if(command =="moveWordLeftAndModifySelection:") {
+        modifiers |= Qt::ShiftModifier;
+        modifiers |= Qt::ControlModifier;
+        keycode = Qt::Key_Left;
+    } else if(command =="pageDown:") {
+        keycode = Qt::Key_PageDown;        
+    } else if(command =="pageUp:") {
+        keycode = Qt::Key_PageUp;        
+    }
+    QKeyEvent event(QEvent::KeyPress, keycode, modifiers);
+    QApplication::sendEvent(parent(), &event);
+    QKeyEvent event2(QEvent::KeyRelease, keycode, modifiers);
+    QApplication::sendEvent(parent(), &event2);
+}