|
|
|
/* This file is part of the TDE libraries
|
|
|
|
Copyright (C) 1996 Martynas Kunigelis
|
|
|
|
|
|
|
|
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.
|
|
|
|
*/
|
|
|
|
/*****************************************************************************
|
|
|
|
* *
|
|
|
|
* KGameProgress -- progress indicator widget for TDE by Martynas Kunigelis *
|
|
|
|
* *
|
|
|
|
*****************************************************************************/
|
|
|
|
|
|
|
|
#ifndef _KPROGRES_H
|
|
|
|
#define _KPROGRES_H "$Id$"
|
|
|
|
|
|
|
|
#include <tqframe.h>
|
|
|
|
#include <tqrangecontrol.h>
|
|
|
|
#include <kdemacros.h>
|
|
|
|
/**
|
|
|
|
* @short A progress indicator widget.
|
|
|
|
*
|
|
|
|
* KGameProgress is derived from TQFrame and TQRangeControl, so
|
|
|
|
* you can use all the methods from those classes. The only difference
|
|
|
|
* is that setValue() is now made a slot, so you can connect
|
|
|
|
* stuff to it.
|
|
|
|
*
|
|
|
|
* None of the constructors take line step and page step as arguments,
|
|
|
|
* so by default they're set to 1 and 10 respectively.
|
|
|
|
*
|
|
|
|
* The Blocked style ignores the textEnabled() setting and displays
|
|
|
|
* no text, since it looks truly ugly (and for other reasons). Signal
|
|
|
|
* percentageChanged() is emitted whenever the value changes so you
|
|
|
|
* can set up a different widget to display the current percentage complete
|
|
|
|
* and connect the signal to it.
|
|
|
|
*
|
|
|
|
* @author Martynas Kunigelis
|
|
|
|
* @version $Id$
|
|
|
|
*/
|
|
|
|
class KDE_EXPORT KGameProgress : public TQFrame, public TQRangeControl
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
TQ_ENUMS( BarStyle )
|
|
|
|
TQ_PROPERTY( int value READ value WRITE setValue)
|
|
|
|
TQ_PROPERTY( BarStyle barStyle READ barStyle WRITE setBarStyle )
|
|
|
|
TQ_PROPERTY( TQColor barColor READ barColor WRITE setBarColor )
|
|
|
|
TQ_PROPERTY( TQPixmap barPixmap READ barPixmap WRITE setBarPixmap )
|
|
|
|
TQ_PROPERTY( Orientation orientation READ orientation WRITE setOrientation )
|
|
|
|
TQ_PROPERTY( bool textEnabled READ textEnabled WRITE setTextEnabled )
|
|
|
|
|
|
|
|
public:
|
|
|
|
/**
|
|
|
|
* Possible values for bar style.
|
|
|
|
*
|
|
|
|
* @p Solid means one continuous progress bar, @p Blocked means a
|
|
|
|
* progress bar made up of several blocks.
|
|
|
|
*/
|
|
|
|
enum BarStyle { Solid, Blocked };
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Construct a horizontal progress bar.
|
|
|
|
*/
|
|
|
|
KGameProgress(TQWidget *parent=0, const char *name=0);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Construct a progress bar with orientation @p orient.
|
|
|
|
*/
|
|
|
|
KGameProgress(Orientation orient, TQWidget *parent=0, const char *name=0);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Construct a progress bar with minimum, maximum and initial values.
|
|
|
|
*/
|
|
|
|
KGameProgress(int minValue, int maxValue, int value, Orientation,
|
|
|
|
TQWidget *parent=0, const char *name=0);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Destruct the progress bar.
|
|
|
|
*/
|
|
|
|
~KGameProgress();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the progress bar style.
|
|
|
|
*
|
|
|
|
* Allowed values are @p Solid and @p Blocked.
|
|
|
|
*/
|
|
|
|
void setBarStyle(BarStyle style);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the color of the progress bar.
|
|
|
|
*/
|
|
|
|
void setBarColor(const TQColor &);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set a pixmap to be shown in the progress bar.
|
|
|
|
*/
|
|
|
|
void setBarPixmap(const TQPixmap &);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the orientation of the progress bar.
|
|
|
|
*
|
|
|
|
* Allowed values are @pQt::Horizontal and @pQt::Vertical.
|
|
|
|
*/
|
|
|
|
void setOrientation(Orientation);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* If this is set to @p true, the progress text will be displayed.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
void setTextEnabled(bool);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Retrieve the bar style.
|
|
|
|
*
|
|
|
|
* @see setBarStyle()
|
|
|
|
*/
|
|
|
|
BarStyle barStyle() const;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Retrieve the bar color.
|
|
|
|
* @see setBarColor()
|
|
|
|
*/
|
|
|
|
const TQColor &barColor() const;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Retrieve the bar pixmap.
|
|
|
|
*
|
|
|
|
* @see setBarPixmap()
|
|
|
|
*/
|
|
|
|
const TQPixmap *barPixmap() const;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Retrive the current status
|
|
|
|
*
|
|
|
|
* @see setValue()
|
|
|
|
*/
|
|
|
|
int value() const { return TQRangeControl::value(); }
|
|
|
|
/**
|
|
|
|
* Retrive the orientation of the progress bar.
|
|
|
|
*
|
|
|
|
* @see setOrientation()
|
|
|
|
*/
|
|
|
|
Orientation orientation() const;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns @p true if progress text will be displayed,
|
|
|
|
* @p false otherwise.
|
|
|
|
*
|
|
|
|
* @see setFormat()
|
|
|
|
*/
|
|
|
|
bool textEnabled() const;
|
|
|
|
|
|
|
|
/**
|
|
|
|
*/
|
|
|
|
virtual TQSize sizeHint() const;
|
|
|
|
|
|
|
|
/**
|
|
|
|
*/
|
|
|
|
virtual TQSize minimumSizeHint() const;
|
|
|
|
|
|
|
|
/**
|
|
|
|
*/
|
|
|
|
virtual TQSizePolicy sizePolicy() const;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Retrieve the current format for printing status text.
|
|
|
|
* @see setFormat()
|
|
|
|
*/
|
|
|
|
TQString format() const;
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the format of the text to use to display status.
|
|
|
|
*
|
|
|
|
* The default format is "%p%" (which looks like "42%".)
|
|
|
|
*
|
|
|
|
* @param format %p is replaced by percentage done, %v is replaced by actual
|
|
|
|
* value, %m is replaced by the maximum value.
|
|
|
|
*/
|
|
|
|
void setFormat(const TQString & format);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the current value of the progress bar to @p value.
|
|
|
|
*
|
|
|
|
* This must be a number in the range 0..100.
|
|
|
|
*/
|
|
|
|
void setValue(int value);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Advance the progress bar by @p prog.
|
|
|
|
*
|
|
|
|
* This method is
|
|
|
|
* provided for convenience and is equivalent with
|
|
|
|
* setValue(value()+prog).
|
|
|
|
*/
|
|
|
|
void advance(int prog);
|
|
|
|
|
|
|
|
signals:
|
|
|
|
/**
|
|
|
|
* Emitted when the state of the progress bar changes.
|
|
|
|
*/
|
|
|
|
void percentageChanged(int);
|
|
|
|
|
|
|
|
protected:
|
|
|
|
/**
|
|
|
|
*/
|
|
|
|
void valueChange();
|
|
|
|
/**
|
|
|
|
*/
|
|
|
|
void rangeChange();
|
|
|
|
/**
|
|
|
|
*/
|
|
|
|
void styleChange( TQStyle& );
|
|
|
|
/**
|
|
|
|
*/
|
|
|
|
void paletteChange( const TQPalette & );
|
|
|
|
/**
|
|
|
|
*/
|
|
|
|
void drawContents( TQPainter * );
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
void paletteChange();
|
|
|
|
|
|
|
|
private:
|
|
|
|
TQPixmap *bar_pixmap;
|
|
|
|
bool use_supplied_bar_color;
|
|
|
|
TQColor bar_color;
|
|
|
|
TQColor bar_text_color;
|
|
|
|
TQColor text_color;
|
|
|
|
TQRect fr;
|
|
|
|
BarStyle bar_style;
|
|
|
|
Orientation orient;
|
|
|
|
bool text_enabled;
|
|
|
|
TQString format_;
|
|
|
|
void initialize();
|
|
|
|
int recalcValue(int);
|
|
|
|
void drawText(TQPainter *);
|
|
|
|
void adjustStyle();
|
|
|
|
|
|
|
|
class KGameProgressPrivate;
|
|
|
|
KGameProgressPrivate *d;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|