Source Code (Use browser search to find items of interest.)
Class Index
kscd'LedLamp (./kdemultimedia/kscd/ledlamp.h:29)
class LedLamp : public QFrame
{
Q_OBJECT
public:
enum Type { Rect, Loop };
LedLamp(QWidget *parent=0, Type t=Rect);
enum State { On, Off };
State state() const { return s; }
void setState(State state) { s= state; repaint(false); }
void toggleState() { if (s == On) s= Off; else if (s == Off) s= On; repaint(false); }
public slots:
void toggle() { toggleState(); };
void on() { setState(On); };
void off() { setState(Off); };
protected:
void drawContents(QPainter *);
private:
const int width;
const int height;
const int dx;
State s;
int ledtype;
};
kscd'LedLamp::LedLamp() (./kdemultimedia/kscd/ledlamp.cpp:30)
LedLamp::LedLamp(QWidget *parent, Type t) : QFrame(parent),
width( 10 ), height( 7 ), dx( 4 )
{
// Make sure we're in a sane state
s = Off;
// Set the frame style
// setFrameStyle(Sunken | Box);
setGeometry(0,0,height+1,width+1);
ledtype = t;
} // LedLamp
void
kscd'LedLamp::drawContents() (./kdemultimedia/kscd/ledlamp.cpp:43)
LedLamp::drawContents(QPainter *painter)
{
QBrush lightBrush(this->foregroundColor());
QBrush darkBrush(this->backgroundColor());
// QColor redColor(255,100,100);
// QBrush redBrush(redColor);
QPen darkPen(this->backgroundColor(),1);
QPen lightPen(this->foregroundColor(), 1);
switch(s)
{
case On:
painter->setBrush(lightBrush);
switch (ledtype)
{
case Rect:
painter->drawRect(1,1,width-3, height-2);
break;
case Loop:
painter->setBrush(lightBrush);
painter->setPen(lightPen);
// painter->drawRect(0,0,width,height);
painter->drawLine(0, 2, 0, height-2); // |
painter->drawLine(1, 1, width-4, 1); // ~
painter->drawLine(width-3, 2, width-3, height-2); // |
painter->drawLine(2, height-2, width-3, height-2); //_
painter->drawLine(width-6,0,width-6,2); // ---+
painter->drawLine(3,height-2,3,height); // +---
break;
}
break;
case Off:
painter->setBrush(darkBrush);
switch (ledtype)
{
case Rect:
painter->drawRect(1,1,width-3, height-2);
break;
case Loop:
painter->setBrush(darkBrush);
painter->setPen(darkPen);
painter->drawLine(0, 2, 0, height-2); // |
painter->drawLine(1, 1, width-4, 1); // ~
painter->drawLine(width-3, 2, width-3, height-2); // |
painter->drawLine(2, height-2, width-3, height-2); //_
painter->drawLine(width-6,0,width-6,2); // ---+
painter->drawLine(3,height-2,3,height); // +---
break;
}
// painter->setPen(pen);
// painter->drawLine(2,2,width-2, 2);
//painter->drawLine(2,height-2,width-2,height-2);
// Draw verticals
//int i;
//for (i= 2; i < width-1; i+= dx)
//painter->drawLine(i,2,i,height-2);
break;
default:
fprintf(stderr, "LedLamp: INVALID State (%d)\n", s);
}
} // drawContents