1 #include <lib/gui/epositiongauge.h>
2 #include <lib/gui/epixmap.h>
4 ePositionGauge::ePositionGauge(eWidget *parent)
7 m_point_widget = new ePixmap(this);
8 m_point_widget->setAlphatest(1);
13 ePositionGauge::~ePositionGauge()
15 delete m_point_widget;
18 void ePositionGauge::setLength(const pts_t &len)
20 eDebug("set len: %llx", len);
27 void ePositionGauge::setPosition(const pts_t &pos)
29 eDebug("set position: %llx", pos);
30 if (m_position == pos)
36 void ePositionGauge::setInColor(const gRGB &color)
41 void ePositionGauge::setPointer(gPixmap *pixmap, const ePoint ¢er)
43 m_point_center = center;
44 m_point_widget->setPixmap(pixmap);
45 m_point_widget->resize(pixmap->size());
49 int ePositionGauge::event(int event, void *data, void *data2)
55 ePtr<eWindowStyle> style;
56 gPainter &painter = *(gPainter*)data2;
61 style->paintBackground(painter, ePoint(0,0), s);
62 style->setStyle(painter, eWindowStyle::styleLabel); // TODO - own style
63 painter.setForegroundColor(gRGB(0x225b7395));
65 painter.fill(eRect(0, 10, s.width(), s.height()-14));
67 // painter.setForegroundColor(gRGB(0x00000000));
68 painter.fill(eRect(s.width() - 2, 2, s.width() - 1, s.height() - 4));
69 painter.fill(eRect(0, 2, 2, s.height() - 4));
73 if (m_have_border_color)
74 painter.setForegroundColor(m_border_color);
75 painter.fill(eRect(0, 0, s.width(), m_border_width));
76 painter.fill(eRect(0, m_border_width, m_border_width, s.height()-m_border_width));
77 painter.fill(eRect(m_border_width, s.height()-m_border_width, s.width()-m_border_width, m_border_width));
78 painter.fill(eRect(s.width()-m_border_width, m_border_width, m_border_width, s.height()-m_border_width));
83 case evtChangedPosition:
86 return eWidget::event(event, data, data2);
90 void ePositionGauge::updatePosition()
95 int width = size().width();
96 int x = width * m_position / m_length;
98 int base = (size().height() - 10) / 2;
100 m_point_widget->move(ePoint(m_pos - m_point_center.x(), base - m_point_center.y()));