Files
recycled-ni-neutrino/src/gui/widget/progressbar.h
[CST] Focus f789c1e8c6 Fix black color corruption after scan; Change progressbar logic to follow progressbar_color setting, if bar created with blink enabled
git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@333 e54a6e83-5905-42d5-8d5c-058d10e6a962


Origin commit data
------------------
Branch: ni/coolstream
Commit: e642e6f345
Author: [CST] Focus <focus.cst@gmail.com>
Date: 2010-02-13 (Sat, 13 Feb 2010)



------------------
This commit was generated by Migit
2010-02-13 10:52:19 +00:00

135 lines
4.3 KiB
C++

/*
* $Id$
*
* (C) 2008 by dbt <info@dbox2-tuning.de>
*
* 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
* (at your option) 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., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#ifndef __gui_widget_progressbar_h__
#define __gui_widget_progressbar_h__
#include "config.h"
#include <gui/color.h>
#include <driver/framebuffer.h>
#include <driver/fontrenderer.h>
#include <system/settings.h>
#include <string>
class CProgressBar
{
private:
CFrameBuffer * frameBuffer;
int font_pbar;
int frame_widht;
int last_width;
int red, green, yellow;
bool blink, invert, bl_changed;
int width, height;
void realpaint(const int pos_x, const int pos_y,
const int value, const int max_value,
const fb_pixel_t activebar_col,
const fb_pixel_t passivebar_col,
const fb_pixel_t backgroundbar_col,
const fb_pixel_t shadowbar_col,
const char *upper_labeltext,
const uint8_t uppertext_col,
const char *iconfile,
bool paintZero);
public:
/* parameters:
blinkenligts: true if you want code to follow progressbar_color. needed, no default.
w, h: width / height of bar. Can later be set with paintProgressbar.
paintProgressBar2 can oly be used if w and h are set.
r, g, b: percentage of the bar where red/green/yellow is used.
only used if blinkenlights == true.
inv: false => red on the left side, true: red on right side. */
CProgressBar(const bool blinkenlights,
const int w = -1,
const int h = -1,
const int r = 40,
const int g = 100,
const int b =70,
const bool inv = false);
~CProgressBar();
/// void paintProgressBar(...)
/*!
description of parameters:
position of progressbar:
pos_x > start position on screen x
pos_y > start position on screen y
pb_width > with of progressbar
pb_height > height of progressbar
definitions of values:
value > value, you will display
max_value > maximal value that you will display
appearance:
activebar_col > color of inner bar that shows the current value
passivebar_col > color of passive bar
frame_col > general frame color of progressbar, set 0 for no frame
shadowbar_col color > shadow behind progressbar, set 0 for no shadow
upper_labeltext > optional, label text, will be painted upper/left the progressbar
uppertext_col > optional, but necessary with label text, color of label text
iconfile > optional, name of iconfile
paintZero > optional, if set to true and value = 0, then paints a diagonal line instead of active bar as symbolic for a zero value
*/
void paintProgressBar ( const int pos_x,
const int pos_y,
const int pb_width,
const int pb_height,
const int value,
const int max_value,
const fb_pixel_t activebar_col = 0,
const fb_pixel_t passivebar_col = 0,
const fb_pixel_t frame_col = 0,
const fb_pixel_t shadowbar_col = 0,
const char * upper_labeltext = NULL,
const uint8_t uppertext_col = 0,
const char * iconfile = NULL,
bool paintZero = false);
void paintProgressBar2 (const int pos_x,
const int pos_y,
const int value,
const int max_value = 100,
const fb_pixel_t activebar_col = 0,
const fb_pixel_t passivebar_col = 0,
const fb_pixel_t frame_col = 0,
const fb_pixel_t shadowbar_col = 0,
const char * upper_labeltext = NULL,
const uint8_t uppertext_col = 0,
const char * iconfile = NULL,
bool paintZero = false);
void paintProgressBarDefault ( const int pos_x,
const int pos_y,
const int pb_width,
const int pb_height,
const int value,
const int max_value);
void reset() { last_width = -1; } /* force update on next paint */
};
#endif /* __gui_widget_progressbar_h__ */