Source Code (Use browser search to find items of interest.)
Class Index
ksirtet'GiftPool (./kdegames/ksirtet/misc_ui.h:87)
class GiftPool : public QHBox
{
Q_OBJECT
public:
GiftPool(uint nbLeds, uint maxToSend,
QWidget *parent, const char *name=0);
QSize sizeHint() const;
QSizePolicy sizePolicy() const;
void put(uint);
uint take();
bool pending() const { return ready; }
private slots:
void timeout() { ready = TRUE; }
private:
QArray<Led *> leds;
uint _timeout, nb, max;
bool ready;
};
ksirtet'GiftPool::GiftPool() (./kdegames/ksirtet/misc_ui.cpp:171)
GiftPool::GiftPool(uint nbLeds, uint m,
QWidget *parent, const char *name)
: QHBox(parent, name), _timeout(GIFT_POOL_TIMEOUT), nb(0), max(m), ready(false)
{
setSpacing(LED_SPACING);
leds.resize(nbLeds);
for (uint i=0; i<nbLeds; i++) leds[i] = new Led(yellow, this);
}
ksirtet'GiftPool::sizeHint() (./kdegames/ksirtet/misc_ui.cpp:180)
QSize GiftPool::sizeHint() const
{
QSize s = (leds.size() ? leds[0]->sizeHint() : QSize());
return QSize((s.width()+LED_SPACING)*leds.size()-LED_SPACING, s.height());
}
ksirtet'GiftPool::sizePolicy() (./kdegames/ksirtet/misc_ui.cpp:186)
QSizePolicy GiftPool::sizePolicy() const
{
return QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
}
ksirtet'GiftPool::put() (./kdegames/ksirtet/misc_ui.cpp:191)
void GiftPool::put(uint n)
{
if ( n==0 ) return;
if ( nb==0 && !ready ) QTimer::singleShot(_timeout, this, SLOT(timeout()));
uint e = QMIN(nb+n, leds.size());
for (uint i=nb; i<e; i++) leds[i]->on();
uint f = QMIN(nb+n-e, leds.size());
for (uint i=0; i<f; i++) leds[i]->setColor(red);
nb += n;
}
ksirtet'GiftPool::take() (./kdegames/ksirtet/misc_ui.cpp:202)
uint GiftPool::take()
{
ASSERT(ready);
for (uint i=0; i<leds.size(); i++) {
leds[i]->setColor(yellow);
leds[i]->off();
}
if ( nb>max ) {
uint p = nb - max;
nb = 0;
put(p);
return max;
} else {
ready = FALSE;
uint t = nb;
nb = 0;
return t;
}
}