aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/objects/class_pixmap.cpp
diff options
context:
space:
mode:
authorGravatar Noldor2008-10-10 16:41:27 +0000
committerGravatar Noldor2008-10-10 16:41:27 +0000
commit6cdf85ca8f437918f6ca661816cd38c82640674d (patch)
tree0558279dd7b58ef90c117b0d13bb0b9553de231b /src/modules/objects/class_pixmap.cpp
parentLinking fix (diff)
downloadKVIrc-6cdf85ca8f437918f6ca661816cd38c82640674d.tar.gz
KVIrc-6cdf85ca8f437918f6ca661816cd38c82640674d.tar.bz2
KVIrc-6cdf85ca8f437918f6ca661816cd38c82640674d.zip
object module restyling/enhancement(work in progress)
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@2689 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/objects/class_pixmap.cpp')
-rw-r--r--src/modules/objects/class_pixmap.cpp32
1 files changed, 31 insertions, 1 deletions
diff --git a/src/modules/objects/class_pixmap.cpp b/src/modules/objects/class_pixmap.cpp
index 1f15a5fc3..a2f0eb9cd 100644
--- a/src/modules/objects/class_pixmap.cpp
+++ b/src/modules/objects/class_pixmap.cpp
@@ -24,6 +24,8 @@
//=============================================================================
#include "class_pixmap.h"
+#include "class_memorybuffer.h"
+
#include "kvi_debug.h"
#include "kvi_locale.h"
@@ -76,7 +78,10 @@ KVSO_BEGIN_REGISTERCLASS(KviKvsObject_pixmap,"pixmap","object")
KVSO_REGISTER_HANDLER(KviKvsObject_pixmap,"fill",functionfill)
KVSO_REGISTER_HANDLER(KviKvsObject_pixmap,"resize",functionresize)
KVSO_REGISTER_HANDLER(KviKvsObject_pixmap,"load",functionload)
+ KVSO_REGISTER_HANDLER(KviKvsObject_pixmap,"loadFromMemoryBuffer",functionloadFromMemoryBuffer)
+
KVSO_REGISTER_HANDLER(KviKvsObject_pixmap,"height",functionheight)
+
KVSO_REGISTER_HANDLER(KviKvsObject_pixmap,"width",functionwidth)
KVSO_REGISTER_HANDLER(KviKvsObject_pixmap,"setOpacity",functionsetOpacity)
KVSO_REGISTER_HANDLER(KviKvsObject_pixmap,"scale",functionscale)
@@ -200,6 +205,32 @@ bool KviKvsObject_pixmap::functionload(KviKvsObjectFunctionCall *c)
bPixmapModified=true;
return true;
}
+bool KviKvsObject_pixmap::functionloadFromMemoryBuffer(KviKvsObjectFunctionCall *c)
+{
+ KviKvsObject * pObject;
+ kvs_hobject_t hObject;
+ KVSO_PARAMETERS_BEGIN(c)
+ KVSO_PARAMETER("hobject",KVS_PT_HOBJECT,0,hObject)
+ KVSO_PARAMETERS_END(c)
+ pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
+ if (!pObject)
+ {
+ c->warning(__tr2qs("Buffer parameter is not an object"));
+ return true;
+ }
+ if (!pObject->inherits("KviKvsObjet_memorybuffer"))
+ {
+ c->warning(__tr2qs("Buffer parameter is not a memorybuffer object"));
+ return true;
+ }
+
+ m_pPixmap->loadFromData(((KviKvsObject_memorybuffer *)pObject)->dataBuffer());
+
+ bPixmapModified=true;
+
+ return true;
+}
+
bool KviKvsObject_pixmap::functionheight(KviKvsObjectFunctionCall *c)
{
c->returnValue()->setInteger(m_pPixmap->height());
@@ -224,7 +255,6 @@ bool KviKvsObject_pixmap::functionsetOpacity(KviKvsObjectFunctionCall *c)
KVSO_PARAMETERS_BEGIN(c)
KVSO_PARAMETER("opacity_factor",KVS_PT_DOUBLE,0,dOpacity)
KVSO_PARAMETER("destination",KVS_PT_HOBJECT,0,hObject)
-
KVSO_PARAMETER("x_offset",KVS_PT_UNSIGNEDINTEGER,KVS_PF_OPTIONAL,uXoffset)
KVSO_PARAMETER("y_offset",KVS_PT_UNSIGNEDINTEGER,KVS_PF_OPTIONAL,uYoffset)
KVSO_PARAMETER("width",KVS_PT_UNSIGNEDINTEGER,KVS_PF_OPTIONAL,uWidth)