Revision: 56601
http://sourceforge.net/p/brlcad/code/56601
Author: vladbogo
Date: 2013-08-05 21:00:36 +0000 (Mon, 05 Aug 2013)
Log Message:
-----------
Send Tk button press events when Qt mouse events occur.
Modified Paths:
--------------
brlcad/trunk/include/dm-qt.h
brlcad/trunk/src/libdm/dm-qt.cpp
Modified: brlcad/trunk/include/dm-qt.h
===================================================================
--- brlcad/trunk/include/dm-qt.h 2013-08-05 20:40:05 UTC (rev 56600)
+++ brlcad/trunk/include/dm-qt.h 2013-08-05 21:00:36 UTC (rev 56601)
@@ -38,7 +38,7 @@
class QTkMainWindow: public QWindow {
public:
- QTkMainWindow(QPixmap *p, QWindow *parent = 0);
+ QTkMainWindow(QPixmap *p, QWindow *parent = 0, struct dm *d = NULL);
virtual void render(QPainter *painter);
public slots:
@@ -54,6 +54,7 @@
QPixmap *pixmap;
QBackingStore *m_backingStore;
bool m_update_pending;
+ struct dm *dmp;
};
Modified: brlcad/trunk/src/libdm/dm-qt.cpp
===================================================================
--- brlcad/trunk/src/libdm/dm-qt.cpp 2013-08-05 20:40:05 UTC (rev 56600)
+++ brlcad/trunk/src/libdm/dm-qt.cpp 2013-08-05 21:00:36 UTC (rev 56601)
@@ -39,6 +39,7 @@
#include "dm.h"
#include "dm_xvars.h"
+
HIDDEN bool
qt_sendRepaintEvent(struct dm *dmp)
{
@@ -735,14 +736,14 @@
};
-QTkMainWindow::QTkMainWindow(QPixmap *p, QWindow *win)
+QTkMainWindow::QTkMainWindow(QPixmap *p, QWindow *win, struct dm *d)
: QWindow(win)
, m_update_pending(false)
{
m_backingStore = new QBackingStore(this);
create();
pixmap = p;
-
+ dmp = d;
}
void QTkMainWindow::exposeEvent(QExposeEvent *)
@@ -766,6 +767,21 @@
renderNow();
return true;
}
+ else 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);
+ else
+ bu_vls_printf(&str, "event generate %V <3>", &dmp->dm_pathName);
+
+ if (Tcl_Eval(dmp->dm_interp, bu_vls_addr(&str)) == TCL_ERROR) {
+ bu_log("error generate event\n");
+ }
+ bu_log("AICI\n");
+ return true;
+ }
return QWindow::event(ev);
}
@@ -852,7 +868,13 @@
}
if (bu_vls_strlen(&init_proc_vls) == 0)
bu_vls_strcpy(&init_proc_vls, "bind_dm");
-
+
+ /* initialize dm specific variables */
+ pubvars->devmotionnotify = LASTEvent;
+ pubvars->devbuttonpress = LASTEvent;
+ pubvars->devbuttonrelease = LASTEvent;
+ dmp->dm_aspect = 1.0;
+
if (dmp->dm_top) {
/* Make xtkwin a toplevel window */
pubvars->xtkwin = Tk_CreateWindowFromPath(interp, tkwin,
@@ -945,7 +967,7 @@
privars->pix = new QPixmap(dmp->dm_width, dmp->dm_height);
- privars->win = new QTkMainWindow(privars->pix, window);
+ privars->win = new QTkMainWindow(privars->pix, window, dmp);
privars->win->resize(dmp->dm_width, dmp->dm_height);
privars->win->show();
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent
caught up. So what steps can you take to put your SQL databases under
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits