[brlcad-commits] SF.net SVN: brlcad:[56721] brlcad/trunk/src/libdm/dm-qt.cpp
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <vla...@us...> - 2013-08-09 19:12:39
|
Revision: 56721 http://sourceforge.net/p/brlcad/code/56721 Author: vladbogo Date: 2013-08-09 19:12:35 +0000 (Fri, 09 Aug 2013) Log Message: ----------- Mouse + keyboard events Modified Paths: -------------- brlcad/trunk/src/libdm/dm-qt.cpp Modified: brlcad/trunk/src/libdm/dm-qt.cpp =================================================================== --- brlcad/trunk/src/libdm/dm-qt.cpp 2013-08-09 19:01:42 UTC (rev 56720) +++ brlcad/trunk/src/libdm/dm-qt.cpp 2013-08-09 19:12:35 UTC (rev 56721) @@ -767,12 +767,33 @@ renderNow(); return true; } - else if (ev->type() == QEvent::MouseButtonPress) { + if (ev->type() == 6) { struct bu_vls str = BU_VLS_INIT_ZERO; + QKeyEvent *keyEv = (QKeyEvent *)ev; + bu_vls_printf(&str, "event generate %V <KeyPress-%s>", &dmp->dm_pathName, keyEv->text().data()); + if (Tcl_Eval(dmp->dm_interp, bu_vls_addr(&str)) == TCL_ERROR) { + bu_log("error generate event\n"); + } + return true; + } + if (ev->type() == QEvent::MouseButtonRelease) { + struct bu_vls str = BU_VLS_INIT_ZERO; + bu_vls_printf(&str, "event generate %V <ButtonRelease-1>", &dmp->dm_pathName); + if (Tcl_Eval(dmp->dm_interp, bu_vls_addr(&str)) == TCL_ERROR) { + bu_log("error generate event\n"); + } + return true; + } + if (ev->type() == QEvent::MouseButtonPress) { + struct bu_vls str = BU_VLS_INIT_ZERO; QMouseEvent *mouseEv = (QMouseEvent *)ev; - if (mouseEv->button() == Qt::LeftButton) - bu_vls_printf(&str, "event generate %V <1>", &dmp->dm_pathName); + if (mouseEv->button() == Qt::LeftButton) { + if (mouseEv->modifiers() == Qt::ControlModifier) + bu_vls_printf(&str, "event generate %V <Control-ButtonPress-1>", &dmp->dm_pathName); + else + bu_vls_printf(&str, "event generate %V <1>", &dmp->dm_pathName); + } else bu_vls_printf(&str, "event generate %V <3>", &dmp->dm_pathName); @@ -781,6 +802,17 @@ } return true; } + if (ev->type() == QEvent::MouseMove) { + QMouseEvent *mouseEv = (QMouseEvent *)ev; + + struct bu_vls str = BU_VLS_INIT_ZERO; + bu_vls_printf(&str, "event generate %V <Motion> -x %d -y %d", &dmp->dm_pathName, mouseEv->x(), mouseEv->y()); + + if (Tcl_Eval(dmp->dm_interp, bu_vls_addr(&str)) == TCL_ERROR) { + bu_log("error generate event\n"); + } + return true; + } return QWindow::event(ev); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |