diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2008-03-27 19:19:33 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2008-03-27 19:19:33 +0000 |
| commit | d101ae667283bfd67a287556fcc3cf468539102a (patch) | |
| tree | 360669f725f1dce364ce16c841d25e37f1e66ea7 /lib/gui | |
| parent | 912690ec8896bf6dfda931a6846516cc3b4ca979 (diff) | |
| download | enigma2-d101ae667283bfd67a287556fcc3cf468539102a.tar.gz enigma2-d101ae667283bfd67a287556fcc3cf468539102a.zip | |
make eSubtitleWidget more flexible
Diffstat (limited to 'lib/gui')
| -rw-r--r-- | lib/gui/esubtitle.cpp | 17 | ||||
| -rw-r--r-- | lib/gui/esubtitle.h | 3 |
2 files changed, 15 insertions, 5 deletions
diff --git a/lib/gui/esubtitle.cpp b/lib/gui/esubtitle.cpp index aef09a2e..80211b4d 100644 --- a/lib/gui/esubtitle.cpp +++ b/lib/gui/esubtitle.cpp @@ -75,6 +75,12 @@ void eSubtitleWidget::clearPage() m_visible_region.rects.clear(); } +void eSubtitleWidget::setPixmap(ePtr<gPixmap> &pixmap, gRegion changed) +{ + m_pixmap = pixmap; + invalidate(changed); +} + int eSubtitleWidget::event(int event, void *data, void *data2) { switch (event) @@ -85,14 +91,15 @@ int eSubtitleWidget::event(int event, void *data, void *data2) gPainter &painter = *(gPainter*)data2; getStyle(style); - eWidget::event(event, data, data2); - ePtr<gFont> font = new gFont("Regular", 38); - painter.setFont(font); - - if (m_page_ok) + + if (m_pixmap) + painter.blit(m_pixmap, ePoint(0,0)); + else if (m_page_ok) { int elements = m_page.m_elements.size(); + ePtr<gFont> font = new gFont("Regular", 38); + painter.setFont(font); for (int i=0; i<elements; ++i) { eDVBTeletextSubtitlePageElement &element = m_page.m_elements[i]; diff --git a/lib/gui/esubtitle.h b/lib/gui/esubtitle.h index 4d65e177..15542773 100644 --- a/lib/gui/esubtitle.h +++ b/lib/gui/esubtitle.h @@ -16,6 +16,7 @@ public: void setPage(const eDVBSubtitlePage &p); void clearPage(); + void setPixmap(ePtr<gPixmap> &pixmap, gRegion changed); protected: int event(int event, void *data=0, void *data2=0); @@ -29,6 +30,8 @@ private: eTimer m_hide_subtitles_timer; gRegion m_visible_region; + + ePtr<gPixmap> m_pixmap; // pixmap to paint on next evtPaint }; #endif |
