diff options
author | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2009-04-07 23:47:57 +0200 |
---|---|---|
committer | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2009-04-07 23:52:46 +0200 |
commit | d69d85f06fa6dc22ac4c7789e4140e32d119a7f1 (patch) | |
tree | 1d2311bfdba616136d0ac26f8cbe9ab73c88f0e4 /src/gui/widgets/progressbar.h | |
parent | 303c1f69761e90b83d4809e911f7785ec66b46aa (diff) | |
download | mana-d69d85f06fa6dc22ac4c7789e4140e32d119a7f1.tar.gz mana-d69d85f06fa6dc22ac4c7789e4140e32d119a7f1.tar.bz2 mana-d69d85f06fa6dc22ac4c7789e4140e32d119a7f1.tar.xz mana-d69d85f06fa6dc22ac4c7789e4140e32d119a7f1.zip |
Moved basic widgets into the gui/widgets directory
In an attempt to make the GUI code a little more structured, basic
widgets are now put in gui/widgets. Many includes were also cleaned up.
Diffstat (limited to 'src/gui/widgets/progressbar.h')
-rw-r--r-- | src/gui/widgets/progressbar.h | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/src/gui/widgets/progressbar.h b/src/gui/widgets/progressbar.h new file mode 100644 index 00000000..e75b1d44 --- /dev/null +++ b/src/gui/widgets/progressbar.h @@ -0,0 +1,136 @@ +/* + * The Mana World + * Copyright (C) 2004 The Mana World Development Team + * + * This file is part of The Mana World. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef PROGRESSBAR_H +#define PROGRESSBAR_H + +#include <string> + +#include <guichan/widget.hpp> + +#include <SDL_types.h> + +class ImageRect; + +/** + * A progress bar. + * + * \ingroup GUI + */ +class ProgressBar : public gcn::Widget +{ + public: + /** + * Constructor, initializes the progress with the given value. + */ + ProgressBar(float progress = 0.0f, + unsigned int width = 40, unsigned int height = 7, + Uint8 red = 150, Uint8 green = 150, Uint8 blue = 150); + + /** + * Destructor. + */ + ~ProgressBar(); + + /** + * Performs progress bar logic (fading colors) + */ + void logic(); + + /** + * Draws the progress bar. + */ + void draw(gcn::Graphics *graphics); + + /** + * Sets the current progress. + */ + void setProgress(float progress); + + /** + * Returns the current progress. + */ + float getProgress() const { return mProgress; } + + /** + * Change the filling of the progress bar. + */ + void setColor(Uint8, Uint8 green, Uint8 blue); + + /** + * Returns the red value of color. + */ + Uint8 getRed() const { return mRed; } + + /** + * Returns the green value of color. + */ + Uint8 getGreen() const { return mGreen; } + + /** + * Returns the blue value of color. + */ + Uint8 getBlue() const { return mBlue; } + + /** + * Sets the text shown on the progress bar. + */ + void setText(const std::string &text) + { mText = text; } + + /** + * Returns the text shown on the progress bar. + */ + const std::string &text() const + { return mText; } + + /** + * Set wether the progress is moved smoothly. + */ + void setSmoothProgress(bool smoothProgress) + { mSmoothProgress = smoothProgress; } + + /** + * Set wether the color changing is made smoothly. + */ + void setSmoothColorChange(bool smoothColorChange) + { mSmoothColorChange = smoothColorChange; } + + + private: + float mProgress, mProgressToGo; + bool mSmoothProgress; + + Uint8 mRed, mGreen, mBlue; + Uint8 mRedToGo, mGreenToGo, mBlueToGo; + bool mSmoothColorChange; + + std::string mText; + bool mUpdated; + + static ImageRect mBorder; + static int mInstances; + static float mAlpha; + + static const gcn::Color TEXT_COLOR; +}; + +#endif |