aboutsummaryrefslogtreecommitdiff
path: root/engines/gargoyle/events.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/gargoyle/events.cpp')
-rw-r--r--engines/gargoyle/events.cpp47
1 files changed, 44 insertions, 3 deletions
diff --git a/engines/gargoyle/events.cpp b/engines/gargoyle/events.cpp
index 00adce84ab..b1f1823276 100644
--- a/engines/gargoyle/events.cpp
+++ b/engines/gargoyle/events.cpp
@@ -94,6 +94,13 @@ void Events::pollEvents() {
case Common::EVENT_KEYDOWN:
handleKeyDown(event.kbd);
return;
+ case Common::EVENT_WHEELUP:
+ case Common::EVENT_WHEELDOWN:
+ handleScroll(event.type == Common::EVENT_WHEELUP);
+ return;
+ case Common::EVENT_LBUTTONDOWN:
+ case Common::EVENT_RBUTTONDOWN:
+
default:
break;
}
@@ -108,15 +115,15 @@ void Events::handleKeyDown(const Common::KeyState &ks) {
if (ks.keycode == Common::KEYCODE_a)
windows.inputHandleKey(keycode_Home);
else if (ks.keycode == Common::KEYCODE_c)
- clipboard.send();
+ clipboard.send(CLIPBOARD);
else if (ks.keycode == Common::KEYCODE_e)
windows.inputHandleKey(keycode_End);
else if (ks.keycode == Common::KEYCODE_u)
windows.inputHandleKey(keycode_Escape);
else if (ks.keycode == Common::KEYCODE_v)
- clipboard.receive();
+ clipboard.receive(CLIPBOARD);
else if (ks.keycode == Common::KEYCODE_x)
- clipboard.send();
+ clipboard.send(CLIPBOARD);
else if (ks.keycode == Common::KEYCODE_LEFT || ks.keycode == Common::KEYCODE_KP4)
windows.inputHandleKey(keycode_SkipWordLeft);
else if (ks.keycode == Common::KEYCODE_RIGHT || ks.keycode == Common::KEYCODE_KP6)
@@ -156,4 +163,38 @@ void Events::handleKeyDown(const Common::KeyState &ks) {
else windows.inputHandleKey(ks.ascii);
}
+void Events::handleScroll(bool wheelUp) {
+ g_vm->_windows->inputHandleKey(wheelUp ? keycode_MouseWheelUp : keycode_MouseWheelDown);
+}
+
+void Events::handleMouseMove(const Common::Point &pos) {
+ // hyperlinks and selection
+ // TODO: Properly handle commented out lines
+ if (g_vm->_copySelect) {
+ //gdk_window_set_cursor((GTK_WIDGET(widget)->window), gdk_ibeam);
+ g_vm->_windowMask->moveSelection(pos);
+ } else {
+ if (g_vm->_windowMask->getHyperlink(pos)) {
+ //gdk_window_set_cursor((GTK_WIDGET(widget)->window), gdk_hand);
+ } else {
+ //gdk_window_set_cursor((GTK_WIDGET(widget)->window), NULL);
+ }
+ }
+}
+
+void Events::handleButtonDown(bool isLeft, const Common::Point &pos) {
+ if (isLeft)
+ g_vm->_windows->inputHandleClick(pos);
+ else
+ g_vm->_clipboard->receive(PRIMARY);
+}
+
+void Events::handleButtonUp(bool isLeft, const Common::Point &pos) {
+ if (isLeft) {
+ g_vm->_copySelect = false;
+ //gdk_window_set_cursor((GTK_WIDGET(widget)->window), NULL);
+ g_vm->_clipboard->send(PRIMARY);
+ }
+}
+
} // End of namespace Gargoyle