aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/objects/class_button.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_button.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_button.cpp')
-rw-r--r--src/modules/objects/class_button.cpp136
1 files changed, 70 insertions, 66 deletions
diff --git a/src/modules/objects/class_button.cpp b/src/modules/objects/class_button.cpp
index 57b8158c2..99323cf98 100644
--- a/src/modules/objects/class_button.cpp
+++ b/src/modules/objects/class_button.cpp
@@ -24,28 +24,54 @@
//=============================================================================
#include "kvi_debug.h"
+#include "kvi_locale.h"
#include "kvi_error.h"
#include "kvi_iconmanager.h"
#include "class_button.h"
+#include "class_pixmap.h"
#include <QIcon>
#include <QPushButton>
-KVSO_BEGIN_REGISTERCLASS(KviKvsObject_button,"button","widget")
+#include <kvi_file.h>
+
+
+/*
+ @doc:button
+ @title:
+ button class
+ @type:
+ class
+ @short:
+ Button widget.
+ @inherits:
+ [class]object[/class]
+ [class]button[/class]
+ @description:
+ This widget provides a push button
+ @functions:
+ !fn: $setText([<text:string>])
+ Set the button text.[br]
+ See also [classfnc]$text[/classfnc]().
+ !fn: <string> $text()
+ Return the button text.[br]
+ See also [classfnc]$setText[/classfnc]().
+ !fn: $setImage(<image_id_or_pixmap_object>)
+ Sets the icon for this button.
+ See the [doc:image_id]image identifier[/doc] documentation for the explaination of the <image_id> parameter.
+ @signals:
+ !sg: $clicked()
+ This signal is emitted by the default implementation of [classfnc]$clickEvent[/classfnc]().
+
+*/
- KVSO_REGISTER_HANDLER(KviKvsObject_button,"setText", functionSetText)
- KVSO_REGISTER_HANDLER(KviKvsObject_button,"text", functionText)
- KVSO_REGISTER_HANDLER(KviKvsObject_button,"setAutoDefault", functionSetAutoDefault)
- KVSO_REGISTER_HANDLER(KviKvsObject_button,"setToggleButton", functionSetToggleButton)
- KVSO_REGISTER_HANDLER(KviKvsObject_button,"setOn", functionSetChecked)/*DEPRECATED*/
- KVSO_REGISTER_HANDLER(KviKvsObject_button,"setChecked", functionSetChecked)
- KVSO_REGISTER_HANDLER(KviKvsObject_button,"isOn", functionIsChecked)/*DEPRECATED*/
- KVSO_REGISTER_HANDLER(KviKvsObject_button,"isChecked", functionIsChecked)
- KVSO_REGISTER_HANDLER(KviKvsObject_button,"toggle", functionToggle)
- KVSO_REGISTER_HANDLER(KviKvsObject_button,"clickEvent", functionclickEvent)
- KVSO_REGISTER_HANDLER(KviKvsObject_button,"setImage", functionSetImage)
+KVSO_BEGIN_REGISTERCLASS(KviKvsObject_button,"button","widget")
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_button,setText)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_button,text)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_button,clickEvent)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_button,setImage)
KVSO_END_REGISTERCLASS(KviKvsObject_button)
@@ -65,84 +91,62 @@ bool KviKvsObject_button::init(KviKvsRunTimeContext * pContext,KviKvsVariantList
return true;
}
-bool KviKvsObject_button::functionText(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(button,text)
{
- if(widget()) c->returnValue()->setString(((QPushButton *)widget())->text());
+ CHECK_INTERNAL_QPOINTER(widget())
+ c->returnValue()->setString(((QPushButton *)widget())->text());
return true;
}
-bool KviKvsObject_button::functionSetText(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(button,setText)
{
+ CHECK_INTERNAL_QPOINTER(widget())
QString szText;
KVSO_PARAMETERS_BEGIN(c)
KVSO_PARAMETER("text",KVS_PT_STRING,0,szText)
KVSO_PARAMETERS_END(c)
- if (widget())
- ((QPushButton *)widget())->setText(szText);
- return true;
-}
-bool KviKvsObject_button::functionSetAutoDefault(KviKvsObjectFunctionCall *c)
-{
- bool bEnabled;
- KVSO_PARAMETERS_BEGIN(c)
- KVSO_PARAMETER("bEnabled",KVS_PT_BOOL,0,bEnabled)
- KVSO_PARAMETERS_END(c)
- if(widget())
- ((QPushButton *)widget())->setAutoDefault(bEnabled);
- return true;
-}
-bool KviKvsObject_button::functionSetToggleButton(KviKvsObjectFunctionCall *c)
-{
- bool bEnabled;
- KVSO_PARAMETERS_BEGIN(c)
- KVSO_PARAMETER("bEnabled",KVS_PT_BOOL,0,bEnabled)
- KVSO_PARAMETERS_END(c)
- if(widget())
- ((QPushButton *)widget())->setCheckable(bEnabled);
- return true;
-}
-bool KviKvsObject_button::functionSetChecked(KviKvsObjectFunctionCall *c)
-{
- bool bEnabled;
- KVSO_PARAMETERS_BEGIN(c)
- KVSO_PARAMETER("bEnabled",KVS_PT_BOOL,0,bEnabled)
- KVSO_PARAMETERS_END(c)
- if(widget())
- ((QPushButton *)widget())->setChecked(bEnabled);
- return true;
-}
-
-
-//
-bool KviKvsObject_button::functionIsChecked(KviKvsObjectFunctionCall *c)
-{
- if (widget()) c->returnValue()->setBoolean(((QPushButton *)widget())->isChecked());
- return true;
-}
-bool KviKvsObject_button::functionToggle(KviKvsObjectFunctionCall *c)
-{
- if(widget()) ((QPushButton *)widget())->toggle();
+ ((QPushButton *)widget())->setText(szText);
return true;
}
-bool KviKvsObject_button::functionSetImage(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(button,setImage)
{
- QString icon;
+ CHECK_INTERNAL_QPOINTER(widget())
+ KviKvsVariant icon;
KVSO_PARAMETERS_BEGIN(c)
- KVSO_PARAMETER("icon",KVS_PT_STRING,0,icon)
+ KVSO_PARAMETER("icon_or_hobject",KVS_PT_VARIANT,0,icon)
KVSO_PARAMETERS_END(c)
- if (!widget()) return true;
- QPixmap * pix = g_pIconManager->getImage(icon);
+ if(icon.isHObject())
+ {
+ kvs_hobject_t hObj;
+ icon.asHObject(hObj);
+ KviKvsObject *pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObj);
+ if (!pObject)
+ {
+ c->warning(__tr2qs("Pixmap parameter is not an object!"));
+ return true;
+ }
+ if(pObject->inherits("KviKvsObject_pixmap"))
+ ((QPushButton *)widget())->setIcon(QIcon(*((KviKvsObject_pixmap *)pObject)->getPixmap()));
+ else{
+ c->warning(__tr2qs("Object Pixmap required!"));
+ }
+ return true;
+ }
+ QString szIcon;
+ icon.asString(szIcon);
+ QPixmap * pix = g_pIconManager->getImage(szIcon);
if(pix) ((QPushButton *)widget())->setIcon(*pix);
else((QPushButton *)widget())->setIcon(QIcon());
return true;
}
-bool KviKvsObject_button::functionclickEvent(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(button,clickEvent)
{
emitSignal("clicked",c);
return true;
}
+// slots
void KviKvsObject_button::slotClicked()
{
KviKvsVariantList *params=0;