summaryrefslogtreecommitdiff
path: root/modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp
blob: 16199f13076a13f18d6354b876f44b100b38c5c4 (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
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();
  }
}