aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/objects/KvsObject_pixmap.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/objects/KvsObject_pixmap.h')
-rw-r--r--src/modules/objects/KvsObject_pixmap.h44
1 files changed, 40 insertions, 4 deletions
diff --git a/src/modules/objects/KvsObject_pixmap.h b/src/modules/objects/KvsObject_pixmap.h
index 154713872..e0845224c 100644
--- a/src/modules/objects/KvsObject_pixmap.h
+++ b/src/modules/objects/KvsObject_pixmap.h
@@ -43,12 +43,45 @@ class KvsObject_pixmap : public KviKvsObject
// Q_PROPERTY(QPixmap pixmap READ getPixmap)
public:
KVSO_DECLARE_OBJECT(KvsObject_pixmap)
- QPixmap * getPixmap();
- void setInternalPixmap(QPixmap *p);
- //QPixmap * pixmap(){ return m_pPixmap; }
+ enum Type { Pixmap, AnimatedPixmap, Image };
+ Type m_currentType;
+ void setInternalPixmap(QPixmap *pPixmap);
+ void setInternalImage(QImage *pImage);
+
+ QImage * getImage()
+ {
+ if(!m_pImage) m_pImage = new QImage();
+ if(m_currentType==Pixmap)
+ {
+ if(m_pPixmap){
+ *m_pImage = m_pPixmap->toImage();
+ delete m_pPixmap;
+ m_pPixmap = 0;
+ }
+ }
+ m_currentType = Image;
+ return m_pImage;
+ }
+
+ QPixmap * getPixmap()
+ {
+ if(!m_pPixmap) m_pPixmap = new QPixmap();
+ if(m_currentType==Image)
+ {
+ if(m_pImage){
+ *m_pPixmap = m_pPixmap->fromImage(*m_pImage);
+ delete m_pImage;
+ m_pImage = 0;
+ }
+ }
+ m_currentType = Pixmap;
+ return m_pPixmap;
+ }
+
protected:
KviAnimatedPixmap * m_pAnimatedPixmap;
QPixmap * m_pPixmap;
+ QImage * m_pImage;
signals:
void aboutToDie();
protected:
@@ -65,8 +98,11 @@ protected:
bool height(KviKvsObjectFunctionCall *c);
bool width(KviKvsObjectFunctionCall *c);
bool grabWidget(KviKvsObjectFunctionCall *c);
-// bool setOpacity(KviKvsObjectFunctionCall *c);
bool loadFromMemoryBuffer(KviKvsObjectFunctionCall *c);
+ bool rotate(KviKvsObjectFunctionCall *c);
+ bool toGrayScale(KviKvsObjectFunctionCall *c);
+ bool mirrored(KviKvsObjectFunctionCall *c);
+ bool setPixel(KviKvsObjectFunctionCall *c);
bool frameChangedEvent(KviKvsObjectFunctionCall *c);