summaryrefslogtreecommitdiff
path: root/trunk/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp
blob: f1567d8f4c08feaf03673b57d26a053b1c368c11 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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();
  }
}