X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/d63d2c3c6cbbd574dda4f8b00ebe6c661735edd5..68b9abe0ee621954569f4c6920c1972f9c0ade3f:/lib/gui/epixmap.cpp diff --git a/lib/gui/epixmap.cpp b/lib/gui/epixmap.cpp index e69de29b..e4e4acc3 100644 --- a/lib/gui/epixmap.cpp +++ b/lib/gui/epixmap.cpp @@ -0,0 +1,48 @@ +#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) +{ + loadPNG(m_pixmap, 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); + } +}