diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2007-05-28 19:14:58 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2007-05-28 19:14:58 +0000 |
| commit | a5beb7286bff0260e74299fe16cbe1c86de90c76 (patch) | |
| tree | 155e26fafe7173c8fdb49fac38ff61707eb50a8c /lib/gdi/grc.cpp | |
| parent | 49990dc5d536344c2a5793d0d21cb2880e5c5247 (diff) | |
| download | enigma2-a5beb7286bff0260e74299fe16cbe1c86de90c76.tar.gz enigma2-a5beb7286bff0260e74299fe16cbe1c86de90c76.zip | |
use Nemesis' gearwheel as spinner
Diffstat (limited to 'lib/gdi/grc.cpp')
| -rw-r--r-- | lib/gdi/grc.cpp | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/lib/gdi/grc.cpp b/lib/gdi/grc.cpp index e5cab87e..1c8e3a65 100644 --- a/lib/gdi/grc.cpp +++ b/lib/gdi/grc.cpp @@ -572,14 +572,17 @@ void gPainter::end() gDC::gDC() { + m_spinner_pic = 0; } gDC::gDC(gPixmap *pixmap): m_pixmap(pixmap) { + m_spinner_pic = 0; } gDC::~gDC() { + delete[] m_spinner_pic; } void gDC::exec(gOpcode *o) @@ -804,7 +807,8 @@ void gDC::incrementSpinner() static int blub; blub++; - + +#if 0 int i; for (i = 0; i < 5; ++i) @@ -816,14 +820,37 @@ void gDC::incrementSpinner() m_pixmap->fill(eRect(x, y, 10, 10), gRGB(col, col, col)); } +#endif + + m_spinner_temp->blit(*m_spinner_saved, ePoint(0, 0), eRect(ePoint(0, 0), m_spinner_pos.size())); + + if (m_spinner_pic[m_spinner_i]) + m_spinner_temp->blit(*m_spinner_pic[m_spinner_i], ePoint(0, 0), eRect(ePoint(0, 0), m_spinner_pos.size()), gPixmap::blitAlphaTest); + + m_pixmap->blit(*m_spinner_temp, m_spinner_pos.topLeft(), gRegion(m_spinner_pos), 0); + m_spinner_i++; + m_spinner_i %= m_spinner_num; } -void gDC::setSpinner(eRect pos) +void gDC::setSpinner(eRect pos, ePtr<gPixmap> *pic, int len) { ASSERT(m_pixmap); ASSERT(m_pixmap->surface); m_spinner_saved = new gPixmap(pos.size(), m_pixmap->surface->bpp); + m_spinner_temp = new gPixmap(pos.size(), m_pixmap->surface->bpp); m_spinner_pos = pos; + + m_spinner_i = 0; + m_spinner_num = len; + + int i; + if (m_spinner_pic) + delete[] m_spinner_pic; + + m_spinner_pic = new ePtr<gPixmap>[len]; + + for (i = 0; i < len; ++i) + m_spinner_pic[i] = pic[i]; } DEFINE_REF(gDC); |
