From b1b069b5e5bfd50b62054501944a378e6449b74d Mon Sep 17 00:00:00 2001 From: Noldor Date: Thu, 12 Apr 2007 17:20:52 +0000 Subject: added setAttribute to widget classes (QT4 only) git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@483 17fca916-40b9-46aa-a4ea-0a15b648b75c --- src/modules/objects/class_widget.cpp | 51 ++++++++++++++++++++++++++++++++++-- src/modules/objects/class_widget.h | 5 ++++ 2 files changed, 54 insertions(+), 2 deletions(-) (limited to 'src/modules/objects') diff --git a/src/modules/objects/class_widget.cpp b/src/modules/objects/class_widget.cpp index 0026eb102..3076d92ed 100644 --- a/src/modules/objects/class_widget.cpp +++ b/src/modules/objects/class_widget.cpp @@ -69,6 +69,22 @@ const char * const widgettypes_tbl[] = { "NoAutoErase" }; #ifdef COMPILE_USE_QT4 +const Qt::WidgetAttribute widgetattributes_cod[]= { + Qt::WA_OpaquePaintEvent, + Qt::WA_NoSystemBackground, + Qt::WA_PaintOnScreen, + Qt::WA_NoMousePropagation, +}; + +const char * const widgetattributes_tbl[] = { + "opaquePaintEvent", + "noSystemBackground", + "paintOnScreen", + "noMousePropagation", +}; +#define widgetattributes_num (sizeof(widgetattributes_tbl) / sizeof(widgetattributes_tbl[0])) + + const Qt::WindowType widgettypes_cod[] = { #else const int widgettypes_cod[] = { @@ -87,13 +103,13 @@ const int widgettypes_cod[] = { }; - - #ifdef COMPILE_USE_QT4 + #define QT_WIDGET_TABFOCUS Qt::TabFocus #define QT_WIDGET_CLICKFOCUS Qt::ClickFocus #define QT_WIDGET_STRONGFOCUS Qt::StrongFocus #define QT_WIDGET_NOFOCUS Qt::NoFocus + #else #define QT_WIDGET_TABFOCUS QWidget::TabFocus #define QT_WIDGET_CLICKFOCUS QWidget::ClickFocus @@ -598,6 +614,11 @@ KVSO_BEGIN_REGISTERCLASS(KviKvsObject_widget,"widget","object") KVSO_REGISTER_HANDLER(KviKvsObject_widget,"setDynamicToolTip",function_setDynamicToolTip) KVSO_REGISTER_HANDLER(KviKvsObject_widget,"setMask",function_setMask) + // QT4 only +#ifdef COMPILE_USE_QT4 + KVSO_REGISTER_HANDLER(KviKvsObject_widget,"setAttribute",function_setAttribute) +#endif + // events KVSO_REGISTER_STANDARD_NOTHINGRETURN_HANDLER(KviKvsObject_widget,"mousePressEvent") KVSO_REGISTER_STANDARD_NOTHINGRETURN_HANDLER(KviKvsObject_widget,"mouseReleaseEvent") @@ -1704,4 +1725,30 @@ bool KviKvsObject_widget::function_setMask(KviKvsObjectFunctionCall *c) widget()->setMask(mask); return true; } +#ifdef COMPILE_USE_QT4 +bool KviKvsObject_widget::function_setAttribute(KviKvsObjectFunctionCall *c) +{ + QString attribute; + bool bFlag; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("widget_atribute",KVS_PT_STRING,0,attribute) + KVSO_PARAMETER("bool_flag",KVS_PT_BOOLEAN,0,bFlag) + KVSO_PARAMETERS_END(c) + if (!widget()) return true; + bool found=false; + unsigned int j = 0; + for(; j < widgetattributes_num; j++) + { + if(KviQString::equalCI(attribute, widgetattributes_tbl[j])) + { + found=true; + break; + } + } + if(found)widget()->setAttribute(widgetattributes_cod[j],bFlag); + else c->warning(__tr2qs("Unknown widget attribute '%Q'"),&attribute); + return true; +} +#endif + #include "m_class_widget.moc" diff --git a/src/modules/objects/class_widget.h b/src/modules/objects/class_widget.h index c0d222206..76d13d8d0 100644 --- a/src/modules/objects/class_widget.h +++ b/src/modules/objects/class_widget.h @@ -101,6 +101,11 @@ protected: bool function_y(KviKvsObjectFunctionCall *); bool function_setDynamicToolTip(KviKvsObjectFunctionCall *c); bool function_setMask(KviKvsObjectFunctionCall *c); + + +#ifdef COMPILE_USE_QT4 +bool function_setAttribute(KviKvsObjectFunctionCall *c); +#endif signals: void aboutToDie(); -- cgit v1.3.1-10-gc9f91