add flag to cable scan to do a network search
[enigma2.git] / lib / gui / epixmap.cpp
1 #include <lib/gui/epixmap.h>
2 #include <lib/gdi/epng.h>
3 #include <lib/gui/ewidgetdesktop.h>
4
5 ePixmap::ePixmap(eWidget *parent)
6         :eWidget(parent), m_alphatest(false)
7 {
8 }
9
10 void ePixmap::setAlphatest(bool alphatest)
11 {
12         m_alphatest = alphatest;
13         setTransparent(alphatest);
14 }
15
16 void ePixmap::setPixmap(gPixmap *pixmap)
17 {
18         m_pixmap = pixmap;
19         event(evtChangedPixmap);
20 }
21
22 void ePixmap::setPixmapFromFile(const char *filename)
23 {
24         loadPNG(m_pixmap, filename);
25                 
26                 // TODO
27         getDesktop()->makeCompatiblePixmap(*m_pixmap);
28         event(evtChangedPixmap);
29 }
30
31 int ePixmap::event(int event, void *data, void *data2)
32 {
33         switch (event)
34         {
35         case evtPaint:
36         {
37                 ePtr<eWindowStyle> style;
38                 
39                 getStyle(style);
40                 
41 //              eWidget::event(event, data, data2);
42                 
43                 gPainter &painter = *(gPainter*)data2;
44                 if (m_pixmap)
45                         painter.blit(m_pixmap, ePoint(0, 0), eRect(), m_alphatest?gPainter::BT_ALPHATEST:0);
46                 
47                 return 0;
48         }
49         case evtChangedPixmap:
50                 invalidate();
51                 return 0;
52         default:
53                 return eWidget::event(event, data, data2);
54         }
55 }