#include #include #include ePixmap::ePixmap(eWidget *parent): eWidget(parent) { } void ePixmap::setPixmap(gPixmap *pixmap) { m_pixmap = pixmap; event(evtChangedPixmap); } void ePixmap::setPixmapFromFile(const char *filename) { // use direct filename for absolute path or relative to enigma2 DATADIR otherwise if (filename[0] == '/') loadPNG(m_pixmap, filename); else loadPNG(m_pixmap, strcat(DATADIR "/enigma2/", filename)); // TODO getDesktop()->makeCompatiblePixmap(*m_pixmap); event(evtChangedPixmap); } int ePixmap::event(int event, void *data, void *data2) { switch (event) { case evtPaint: { ePtr style; getStyle(style); // eWidget::event(event, data, data2); gPainter &painter = *(gPainter*)data2; if (m_pixmap) painter.blit(m_pixmap, ePoint(0, 0)); return 0; } case evtChangedPixmap: invalidate(); return 0; default: return eWidget::event(event, data, data2); } }