aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/gui/epixmap.cpp16
-rw-r--r--lib/gui/epixmap.h2
2 files changed, 16 insertions, 2 deletions
diff --git a/lib/gui/epixmap.cpp b/lib/gui/epixmap.cpp
index 84fec323..f20c1a9f 100644
--- a/lib/gui/epixmap.cpp
+++ b/lib/gui/epixmap.cpp
@@ -3,7 +3,7 @@
#include <lib/gui/ewidgetdesktop.h>
ePixmap::ePixmap(eWidget *parent)
- :eWidget(parent), m_alphatest(false)
+ :eWidget(parent), m_alphatest(false), m_scale(false)
{
}
@@ -13,6 +13,15 @@ void ePixmap::setAlphatest(int alphatest)
setTransparent(alphatest);
}
+void ePixmap::setScale(int scale)
+{
+ if (m_scale != scale)
+ {
+ m_scale = scale;
+ invalidate();
+ }
+}
+
void ePixmap::setPixmap(gPixmap *pixmap)
{
m_pixmap = pixmap;
@@ -76,7 +85,10 @@ int ePixmap::event(int event, void *data, void *data2)
flags = gPainter::BT_ALPHATEST;
else if (m_alphatest == 2)
flags = gPainter::BT_ALPHABLEND;
- painter.blit(m_pixmap, ePoint(0, 0), eRect(), flags);
+ if (m_scale)
+ painter.blitScale(m_pixmap, eRect(ePoint(0, 0), size()), eRect(), flags);
+ else
+ painter.blit(m_pixmap, ePoint(0, 0), eRect(), flags);
}
return 0;
diff --git a/lib/gui/epixmap.h b/lib/gui/epixmap.h
index 1c4a97c8..6280fb34 100644
--- a/lib/gui/epixmap.h
+++ b/lib/gui/epixmap.h
@@ -6,6 +6,7 @@
class ePixmap: public eWidget
{
int m_alphatest;
+ int m_scale;
public:
ePixmap(eWidget *parent);
@@ -13,6 +14,7 @@ public:
void setPixmap(ePtr<gPixmap> &pixmap);
void setPixmapFromFile(const char *filename);
void setAlphatest(int alphatest); /* 1 for alphatest, 2 for alphablend */
+ void setScale(int scale);
protected:
ePtr<gPixmap> m_pixmap;
int event(int event, void *data=0, void *data2=0);