1 #ifndef __lib_gui_subtitle_h
2 #define __lib_gui_subtitle_h
4 #include <lib/gui/ewidget.h>
5 #include <lib/dvb/teletext.h>
6 #include <lib/dvb/subtitle.h>
8 struct ePangoSubtitlePageElement
11 std::string m_pango_line;
13 ePangoSubtitlePageElement(const gRGB &color, const std::string &text)
14 : m_color(color), m_pango_line(text)
19 struct ePangoSubtitlePage
23 int m_timeout; /* in milliseconds */
24 std::vector<ePangoSubtitlePageElement> m_elements;
25 void clear() { m_elements.clear(); }
28 class eDVBTeletextSubtitlePage;
29 class eDVBPangoSubtitlePage;
30 class ePangoSubtitlePage;
32 class eSubtitleWidget: public eWidget, public Object
35 eSubtitleWidget(eWidget *parent);
37 void setPage(const eDVBTeletextSubtitlePage &p);
38 void setPage(const eDVBSubtitlePage &p);
39 void setPage(const ePangoSubtitlePage &p);
42 void setPixmap(ePtr<gPixmap> &pixmap, gRegion changed);
44 int event(int event, void *data=0, void *data2=0);
48 eDVBTeletextSubtitlePage m_page;
51 eDVBSubtitlePage m_dvb_page;
54 ePangoSubtitlePage m_pango_page;
56 ePtr<eTimer> m_hide_subtitles_timer;
58 gRegion m_visible_region;
60 ePtr<gPixmap> m_pixmap; // pixmap to paint on next evtPaint
61 std::string replace_all(const std::string &in, const std::string &entity, const std::string &symbol);