diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2005-01-09 16:29:34 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2005-01-09 16:29:34 +0000 |
| commit | ba02fb4aced5868d047a5bffbd2ed87583daee4d (patch) | |
| tree | bcfea66b1f7fd2212539a99abc074de1424ac9a0 /lib/gui/eslider.cpp | |
| parent | 2494509cd031727d92c6556089c99711d16d8af9 (diff) | |
| download | enigma2-ba02fb4aced5868d047a5bffbd2ed87583daee4d.tar.gz enigma2-ba02fb4aced5868d047a5bffbd2ed87583daee4d.zip | |
- add more python stuff
- fix some gui/gdi
- add eslider
- improve windowstyle
Diffstat (limited to 'lib/gui/eslider.cpp')
| -rw-r--r-- | lib/gui/eslider.cpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/lib/gui/eslider.cpp b/lib/gui/eslider.cpp new file mode 100644 index 00000000..20b3ab47 --- /dev/null +++ b/lib/gui/eslider.cpp @@ -0,0 +1,56 @@ +#include <lib/gui/eslider.h> + +eSlider::eSlider(eWidget *parent): eWidget(parent) +{ +} + +int eSlider::event(int event, void *data, void *data2) +{ + switch (event) + { + case evtPaint: + { + ePtr<eWindowStyle> style; + gPainter &painter = *(gPainter*)data2; + + + getStyle(style); + style->paintBackground(painter, ePoint(0, 0), size()); + style->setForegroundStyle(painter); + painter.fill(m_currently_filled); + + return 0; + } + case evtChangedSlider: + { + + int num_pix = 0; + if (m_min < m_max) + num_pix = size().width() * m_value / (m_max - m_min); + gRegion old_currently_filled = m_currently_filled; + m_currently_filled = eRect(0, 0, num_pix, size().height()); + + // redraw what *was* filled before and now isn't. + invalidate(m_currently_filled - old_currently_filled); + // redraw what wasn't filled before and is now. + invalidate(old_currently_filled - m_currently_filled); + + return 0; + } + default: + return eWidget::event(event, data, data2); + } +} + +void eSlider::setValue(int value) +{ + m_value = value; + event(evtChangedSlider); +} + +void eSlider::setRange(int min, int max) +{ + m_min = min; + m_max = max; + event(evtChangedSlider); +} |
