X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fgui%2Fepixmap.cpp;h=bc0d42df86b9d1610e4cd3bd8493c316cd37ac55;hp=176868517055307a9d5e7b50ffdfa27d6405db94;hb=88e31943f018bc4ba2d7b63bafb8f9129114877a;hpb=d7ab294b7c6543df3eb4d59748e5fb71357ab3b1 diff --git a/lib/gui/epixmap.cpp b/lib/gui/epixmap.cpp index 1768685..bc0d42d 100644 --- a/lib/gui/epixmap.cpp +++ b/lib/gui/epixmap.cpp @@ -46,25 +46,25 @@ void ePixmap::setPixmapFromFile(const char *filename) // TODO: This only works for desktop 0 getDesktop(0)->makeCompatiblePixmap(*m_pixmap); - event(evtChangedPixmap); + event(evtChangedPixmap); } void ePixmap::setBorderWidth(int pixel) { - m_border_width=pixel; - invalidate(); + m_border_width=pixel; + invalidate(); } void ePixmap::setBorderColor(const gRGB &color) { - m_border_color=color; - m_have_border_color=true; - invalidate(); + m_border_color=color; + m_have_border_color=true; + invalidate(); } void ePixmap::checkSize() { - /* when we have no pixmap, or a pixmap of different size, we need + /* when we have no pixmap, or a pixmap of different size, we need to enable transparency in any case. */ if (m_pixmap && m_pixmap->size() == size() && !m_alphatest) setTransparent(0); @@ -78,16 +78,16 @@ int ePixmap::event(int event, void *data, void *data2) switch (event) { case evtPaint: - { - ePtr style; + { + ePtr style; - eSize s(size()); - getStyle(style); + eSize s(size()); + getStyle(style); -// we don't clear the background before because of performance reasons. +// we don't clear the background before because of performance reasons. // when the pixmap is too small to fit the whole widget area, the widget is // transparent anyway, so the background is already painted. -// eWidget::event(event, data, data2); +// eWidget::event(event, data, data2); gPainter &painter = *(gPainter*)data2; if (m_pixmap) @@ -102,20 +102,22 @@ int ePixmap::event(int event, void *data, void *data2) if (m_scale) painter.blitScale(m_pixmap, eRect(ePoint(0, 0), size()), eRect(), flags); else - painter.blit(m_pixmap, ePoint(0, 0), eRect(), flags); - } - -// border - if (m_have_border_color) - painter.setForegroundColor(m_border_color); - painter.fill(eRect(0, 0, s.width(), m_border_width)); - painter.fill(eRect(0, m_border_width, m_border_width, s.height()-m_border_width)); - painter.fill(eRect(m_border_width, s.height()-m_border_width, s.width()-m_border_width, m_border_width)); - painter.fill(eRect(s.width()-m_border_width, m_border_width, m_border_width, s.height()-m_border_width)); - - return 0; - } - case evtChangedPixmap: + painter.blit(m_pixmap, ePoint(0, 0), eRect(), flags); + } + + if (m_have_border_color) + painter.setForegroundColor(m_border_color); + + if (m_border_width) { + painter.fill(eRect(0, 0, s.width(), m_border_width)); + painter.fill(eRect(0, m_border_width, m_border_width, s.height()-m_border_width)); + painter.fill(eRect(m_border_width, s.height()-m_border_width, s.width()-m_border_width, m_border_width)); + painter.fill(eRect(s.width()-m_border_width, m_border_width, m_border_width, s.height()-m_border_width)); + } + + return 0; + } + case evtChangedPixmap: checkSize(); invalidate(); return 0;