summaryrefslogtreecommitdiff
path: root/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp')
-rw-r--r--CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp63
1 files changed, 63 insertions, 0 deletions
diff --git a/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp b/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp
new file mode 100644
index 00000000000..f1567d8f4c0
--- /dev/null
+++ b/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp
@@ -0,0 +1,63 @@
+// $Id$
+
+#include "NodeItem.h"
+//#include <qbrush.h>
+
+
+QBrush *NodeItem::normal = new QBrush(red);
+QBrush *NodeItem::highlighted = new QBrush(green);
+
+
+NodeItem::NodeItem(QCanvas *canvas, NavUnit &unit)
+ : QCanvasEllipse(8, 8, canvas),
+ unit_(unit),
+ blink_timer(canvas),
+ is_selected_(0)
+{
+ setBrush(*normal);
+ setZ(128);
+}
+
+
+void NodeItem::moveBy(double dx, double dy, double /* dz */)
+{
+ QCanvasEllipse::moveBy (dx, dy);
+}
+
+
+void
+NodeItem::timerDone()
+{
+ if(selected())
+ {
+ if(brush() == *normal)
+ setBrush(*highlighted);
+ else
+ setBrush(*normal);
+
+ canvas()->update();
+ }
+}
+
+
+void
+NodeItem::setSelected(bool yes)
+{
+ is_selected_ = yes;
+
+ if(yes)
+ {
+ connect(&blink_timer, SIGNAL(timeout()),
+ SLOT(timerDone()));
+
+ blink_timer.start(500);
+ }
+ else
+ {
+ blink_timer.stop();
+ disconnect(SIGNAL(timeout()), this,
+ SLOT(timerDone()));
+ setBrush(*normal);
+ canvas()->update();
+ }
+}