diff options
Diffstat (limited to 'modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp')
-rw-r--r-- | modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp | 63 |
1 files changed, 63 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..f1567d8f4c0 --- /dev/null +++ b/modules/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(); + } +} |