summaryrefslogtreecommitdiff
path: root/modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp')
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp64
1 files changed, 64 insertions, 0 deletions
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp
new file mode 100644
index 00000000000..16199f13076
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp
@@ -0,0 +1,64 @@
+// $Id$
+
+#include "NodeItem.h"
+#include <Qt/qbrush.h>
+
+QBrush *NodeItem::normal = new QBrush(Qt::red);
+QBrush *NodeItem::highlighted = new QBrush(Qt::green);
+
+
+NodeItem::NodeItem(Q3Canvas *canvas, NavUnit &unit)
+ : Q3CanvasEllipse(8, 8, canvas),
+ unit_(unit),
+ blink_timer(canvas),
+ is_selected_(0)
+{
+ setBrush(*normal);
+ setZ(128);
+}
+
+
+void NodeItem::moveBy(double dx, double dy, double /* dz */)
+{
+ Q3CanvasEllipse::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)
+ {
+ // FUZZ: disable check_for_lack_ACE_OS
+ connect(&blink_timer, SIGNAL(timeout()),
+ SLOT(timerDone()));
+ // FUZZ: enable check_for_lack_ACE_OS
+
+ blink_timer.start(500);
+ }
+ else
+ {
+ blink_timer.stop();
+ disconnect(SIGNAL(timeout()), this,
+ SLOT(timerDone()));
+ setBrush(*normal);
+ canvas()->update();
+ }
+}