|
|
|
/*
|
|
|
|
This file is part of the TDE games library
|
|
|
|
Copyright (C) 2001,2002,2003 Nicolas Hadacek (hadacek@kde.org)
|
|
|
|
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU Library General Public
|
|
|
|
License version 2 as published by the Free Software Foundation.
|
|
|
|
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
Library General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU Library General Public License
|
|
|
|
along with this library; see the file COPYING.LIB. If not, write to
|
|
|
|
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
|
|
Boston, MA 02110-1301, USA.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __KGAMELCD_H
|
|
|
|
#define __KGAMELCD_H
|
|
|
|
|
|
|
|
#include <tqlcdnumber.h>
|
|
|
|
#include <tqvaluevector.h>
|
|
|
|
#include <kdemacros.h>
|
|
|
|
|
|
|
|
class TQLabel;
|
|
|
|
class TQTimer;
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
/**
|
|
|
|
* This class is a visually enhanced @ref TQLCDNumber:
|
|
|
|
* <ul>
|
|
|
|
* <li> It can show an additional string before the integer being
|
|
|
|
* displayed.</li>
|
|
|
|
* <li> Its foreground and background colors can easily be modified. </li>
|
|
|
|
* <li> It can be highlighted for a short time. </li>
|
|
|
|
* </ul>
|
|
|
|
*
|
|
|
|
* @since 3.2
|
|
|
|
*/
|
|
|
|
class KDE_EXPORT KGameLCD : public TQLCDNumber
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
KGameLCD(uint nbDigits, TQWidget *parent = 0, const char *name = 0);
|
|
|
|
|
|
|
|
~KGameLCD();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the default background color.
|
|
|
|
*/
|
|
|
|
void setDefaultBackgroundColor(const TQColor &color);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the default foreground color.
|
|
|
|
*/
|
|
|
|
void setDefaultColor(const TQColor &color);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set highlight color.
|
|
|
|
*/
|
|
|
|
void setHighlightColor(const TQColor &color);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the string that will be displayed before the integer number to be
|
|
|
|
* displayed. By default this string is null.
|
|
|
|
*/
|
|
|
|
void setLeadingString(const TQString &s);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the highlight duration in milliseconds. The default value is
|
|
|
|
* 800 milliseconds.
|
|
|
|
*/
|
|
|
|
void setHighlightTime(uint time);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Reset the foreground color to the default one.
|
|
|
|
*/
|
|
|
|
void resetColor();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the foreground color.
|
|
|
|
*/
|
|
|
|
void setColor(const TQColor &color);
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
/**
|
|
|
|
* Highlight the LCD with the TQColorGourp::HighlightedText color
|
|
|
|
* for a small time (setHighlightTime).
|
|
|
|
*/
|
|
|
|
void highlight();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Display the given integer with the (optionnal) leading string.
|
|
|
|
*
|
|
|
|
* Note: we cannot use display(int) since TQLCDNumber::display is
|
|
|
|
* not virtual... And you cannot use TQLCDNumber::intValue() to retrieve
|
|
|
|
* the given value.
|
|
|
|
*/
|
|
|
|
void displayInt(int value);
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
void timeout() { highlight(false); }
|
|
|
|
|
|
|
|
private:
|
|
|
|
TQColor _fgColor, _hlColor;
|
|
|
|
TQString _lead;
|
|
|
|
uint _htime;
|
|
|
|
TQTimer *_timer;
|
|
|
|
|
|
|
|
class KGameLCDPrivate;
|
|
|
|
KGameLCDPrivate *d;
|
|
|
|
|
|
|
|
void highlight(bool light);
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
/**
|
|
|
|
* This class is a digital clock widget. It has a maximum duration of
|
|
|
|
* 3599 seconds (one hour) and it gets updated every second.
|
|
|
|
*
|
|
|
|
* @since 3.2
|
|
|
|
*/
|
|
|
|
class KDE_EXPORT KGameLCDClock : public KGameLCD
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
KGameLCDClock(TQWidget *parent = 0, const char *name = 0);
|
|
|
|
|
|
|
|
~KGameLCDClock();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return the total number of seconds elapsed.
|
|
|
|
*/
|
|
|
|
uint seconds() const;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return the time as a string to be displayed: "mm:ss".
|
|
|
|
*/
|
|
|
|
TQString pretty() const;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the time.
|
|
|
|
*/
|
|
|
|
void setTime(uint seconds);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the time (format should be "mm:ss").
|
|
|
|
*/
|
|
|
|
void setTime(const TQString &s);
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
/**
|
|
|
|
* Stop the clock and reset it to zero.
|
|
|
|
*/
|
|
|
|
virtual void reset();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Stop the clock but do not reset it to zero.
|
|
|
|
*/
|
|
|
|
virtual void stop();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Start the clock from the current time.
|
|
|
|
*/
|
|
|
|
virtual void start();
|
|
|
|
|
|
|
|
protected slots:
|
|
|
|
virtual void timeoutClock();
|
|
|
|
|
|
|
|
private:
|
|
|
|
TQTimer *_timerClock;
|
|
|
|
uint _sec, _min;
|
|
|
|
|
|
|
|
class KGameLCDClockPrivate;
|
|
|
|
KGameLCDClockPrivate *d;
|
|
|
|
|
|
|
|
void showTime();
|
|
|
|
};
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
/**
|
|
|
|
* This widget holds a list of @ref TQLCDNumber arranged in a vertical layout.
|
|
|
|
* It also shows a label at the top of the list.
|
|
|
|
*
|
|
|
|
* @since 3.2
|
|
|
|
*/
|
|
|
|
class KDE_EXPORT KGameLCDList : public TQWidget
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
/**
|
|
|
|
* Constructor.
|
|
|
|
*
|
|
|
|
* @param title is the content of the top label.
|
|
|
|
* @param parent passed to the TQWidget constructor
|
|
|
|
* @param name passed to the TQWidget constructor
|
|
|
|
*/
|
|
|
|
KGameLCDList(const TQString &title,
|
|
|
|
TQWidget *parent = 0, const char *name = 0);
|
|
|
|
KGameLCDList(TQWidget *parent = 0, const char *name = 0);
|
|
|
|
|
|
|
|
~KGameLCDList();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Append a TQLCDNumber at the bottom of the list.
|
|
|
|
* The TQLCDNumber should have the KGameLCDList as parent.
|
|
|
|
*/
|
|
|
|
void append(TQLCDNumber *lcd);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Append a TQLCDNumber at the bottom of the list.
|
|
|
|
* The TQLCDNumber should have the KGameLCDList as parent.
|
|
|
|
*/
|
|
|
|
void append(const TQString &leading, TQLCDNumber *lcd);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Delete all @ref TQLCDNumber and clear the list.
|
|
|
|
*/
|
|
|
|
void clear();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return the title label.
|
|
|
|
*/
|
|
|
|
TQLabel *title() const { return _title; }
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return the TQLCDNumber at index @param i
|
|
|
|
*/
|
|
|
|
TQLCDNumber *lcd(uint i) const { return _lcds[i]; }
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return the number of TQLCDNumber in the list.
|
|
|
|
*/
|
|
|
|
uint size() const { return _lcds.size(); }
|
|
|
|
|
|
|
|
private:
|
|
|
|
TQLabel *_title;
|
|
|
|
TQValueVector<TQLCDNumber *> _lcds;
|
|
|
|
|
|
|
|
class KGameLCDListPrivate;
|
|
|
|
KGameLCDListPrivate *d;
|
|
|
|
|
|
|
|
void init(const TQString &title);
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|