From 3f71f581949b23c013b07a266e9aae0edd102a53 Mon Sep 17 00:00:00 2001 From: Fraxinas Date: Wed, 27 May 2009 23:45:01 +0200 Subject: make subtitle font styles skinnable --- lib/gui/esubtitle.cpp | 49 ++++++++++++++++++++++++++++++---------------- lib/gui/esubtitle.h | 24 ++++++++++++++++++++--- lib/python/enigma_python.i | 2 ++ 3 files changed, 55 insertions(+), 20 deletions(-) (limited to 'lib') diff --git a/lib/gui/esubtitle.cpp b/lib/gui/esubtitle.cpp index ca5c20d7..376fa24d 100644 --- a/lib/gui/esubtitle.cpp +++ b/lib/gui/esubtitle.cpp @@ -10,6 +10,8 @@ .... */ +eSubtitleWidget::eSubtitleStyle eSubtitleWidget::subtitleStyles[Subtitle_MAX]; + eSubtitleWidget::eSubtitleWidget(eWidget *parent) : eWidget(parent), m_hide_subtitles_timer(eTimer::create(eApp)) { @@ -131,42 +133,42 @@ int eSubtitleWidget::event(int event, void *data, void *data2) else if (m_page_ok) { int elements = m_page.m_elements.size(); - ePtr font = new gFont("Regular", 38); - painter.setFont(font); + painter.setFont(subtitleStyles[Subtitle_TTX].font); for (int i=0; i font = new gFont("Regular", 38); + subfont_t face; + for (int i=0; i &pixmap, gRegion changed); + + typedef enum { Subtitle_TTX, Subtitle_Regular, Subtitle_Bold, Subtitle_Italic, Subtitle_MAX } subfont_t; + struct eSubtitleStyle + { + subfont_t face; + int have_foreground_color, have_shadow_color; + gRGB foreground_color, shadow_color; + ePoint shadow_offset; + ePtr font; + }; + + static void setFontStyle(subfont_t face, gFont *font, int autoColor, const gRGB &col, const gRGB &shadowCol, const ePoint &shadowOffset); + protected: int event(int event, void *data=0, void *data2=0); - private: int m_page_ok; eDVBTeletextSubtitlePage m_page; @@ -56,6 +72,8 @@ private: gRegion m_visible_region; + static eSubtitleStyle subtitleStyles[Subtitle_MAX]; + ePtr m_pixmap; // pixmap to paint on next evtPaint }; diff --git a/lib/python/enigma_python.i b/lib/python/enigma_python.i index fe0e71ec..2fec2ff1 100644 --- a/lib/python/enigma_python.i +++ b/lib/python/enigma_python.i @@ -69,6 +69,7 @@ is usually caused by not marking PSignals as immutable. #include #include #include +#include #include #include #include @@ -183,6 +184,7 @@ typedef long time_t; %include %include %include +%include %include %include %include -- cgit v1.2.3