aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/modules/objects/class_buttongroup.cpp18
-rw-r--r--src/modules/objects/class_hbox.cpp33
-rw-r--r--src/modules/objects/class_layout.cpp48
-rw-r--r--src/modules/objects/class_multilineedit.cpp16
-rw-r--r--src/modules/objects/class_pixmap.cpp17
-rw-r--r--src/modules/objects/class_popupmenu.cpp17
-rw-r--r--src/modules/objects/class_tabwidget.cpp265
-rw-r--r--src/modules/objects/class_tabwidget.h28
-rw-r--r--src/modules/objects/class_tbrowser.cpp41
-rw-r--r--src/modules/objects/class_tbrowser.h12
-rw-r--r--src/modules/objects/class_toolbar.cpp33
-rw-r--r--src/modules/objects/class_toolbar.h10
-rw-r--r--src/modules/objects/class_vbox.cpp33
-rw-r--r--src/modules/objects/object_macros.h17
14 files changed, 182 insertions, 406 deletions
diff --git a/src/modules/objects/class_buttongroup.cpp b/src/modules/objects/class_buttongroup.cpp
index ece10d839..3c61771a8 100644
--- a/src/modules/objects/class_buttongroup.cpp
+++ b/src/modules/objects/class_buttongroup.cpp
@@ -82,22 +82,8 @@ KVSO_CLASS_FUNCTION(buttongroup,addButton)
KVSO_PARAMETER("button",KVS_PT_HOBJECT,0,hObject)
KVSO_PARAMETERS_END(c)
pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
- if (!pObject)
- {
- c->warning(__tr2qs("Widget parameter is not an object"));
- return true;
- }
- if (!pObject->object())
- {
- c->warning(__tr2qs("Widget parameter is not a valid object"));
- return true;
- }
- if(!pObject->object()->isWidgetType())
- {
- c->warning(__tr2qs("Can't add a non-widget object"));
- return true;
- }
- if(pObject->inheritsClass("radiobutton") || pObject->inheritsClass("KviKvsObject"))
+ CHECK_HOBJECT_IS_WIDGET(pObject)
+ if(pObject->inheritsClass("radiobutton") || pObject->inheritsClass("checkbox"))
{
m_pButtonGroup->addButton(((QRadioButton *)(pObject->object())),m_iId);
c->returnValue()->setInteger(m_iId);
diff --git a/src/modules/objects/class_hbox.cpp b/src/modules/objects/class_hbox.cpp
index 3dcf15f7c..bba750723 100644
--- a/src/modules/objects/class_hbox.cpp
+++ b/src/modules/objects/class_hbox.cpp
@@ -140,21 +140,7 @@ KVSO_CLASS_FUNCTION(hbox,setStretchFactor)
KVSO_PARAMETER("stretch",KVS_PT_UNSIGNEDINTEGER,0,uStretch)
KVSO_PARAMETERS_END(c)
pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
- if (!pObject)
- {
- c->warning(__tr2qs("Widget parameter is not an object"));
- return true;
- }
- if (!pObject->object())
- {
- c->warning(__tr2qs("Widget parameter is not a valid object"));
- return true;
- }
- if(!pObject->object()->isWidgetType())
- {
- c->warning(__tr2qs("Can't add a non-widget object"));
- return true;
- }
+ CHECK_HOBJECT_IS_WIDGET(pObject)
if(((KviKvsObject_widget *)pObject)->widget()->parentWidget() != widget())
{
c->warning(__tr2qs("The widget must be a child of this hbox"));
@@ -184,27 +170,12 @@ KVSO_CLASS_FUNCTION(hbox,setAlignment)
KVSO_PARAMETER("alignment",KVS_PT_STRINGLIST,KVS_PF_OPTIONAL,alignment)
KVSO_PARAMETERS_END(c)
pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
- if (!pObject)
- {
- c->warning(__tr2qs("Widget parameter is not an object"));
- return true;
- }
- if (!pObject->object())
- {
- c->warning(__tr2qs("Widget parameter is not a valid object"));
- return true;
- }
- if(!pObject->object()->isWidgetType())
- {
- c->warning(__tr2qs("Can't add a non-widget object"));
- return true;
- }
+ CHECK_HOBJECT_IS_WIDGET(pObject)
if(((KviKvsObject_widget *)pObject)->widget()->parentWidget() != widget())
{
c->warning(__tr2qs("The widget must be a child of this hbox"));
return true;
}
-
int align,sum=0;
for ( QStringList::Iterator it = alignment.begin(); it != alignment.end(); ++it )
{
diff --git a/src/modules/objects/class_layout.cpp b/src/modules/objects/class_layout.cpp
index b32a72f4b..39c342830 100644
--- a/src/modules/objects/class_layout.cpp
+++ b/src/modules/objects/class_layout.cpp
@@ -156,21 +156,7 @@ KVSO_CLASS_FUNCTION(layout,addWidget)
KVSO_PARAMETER("col",KVS_PT_UNSIGNEDINTEGER,0,uCol)
KVSO_PARAMETERS_END(c)
pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
- if (!pObject)
- {
- c->warning(__tr2qs_ctx("Widget parameter is not an object","objects"));
- return true;
- }
- if (!pObject->object())
- {
- c->warning(__tr2qs_ctx("Widget parameter is not a valid object","objects"));
- return true;
- }
- if(!pObject->object()->isWidgetType())
- {
- c->warning(__tr2qs_ctx("Can't add a non-widget object","objects"));
- return true;
- }
+ CHECK_HOBJECT_IS_WIDGET(pObject)
((QGridLayout *)object())->addWidget(((QWidget *)(pObject->object())),uRow,uCol);
return true;
}
@@ -189,21 +175,7 @@ KVSO_CLASS_FUNCTION(layout,addMultiCellWidget)
KVSO_PARAMETER("end_column",KVS_PT_UNSIGNEDINTEGER,0,uEndCol)
KVSO_PARAMETERS_END(c)
pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
- if (!pObject)
- {
- c->warning(__tr2qs_ctx("Widget parameter is not an object","objects"));
- return true;
- }
- if (!pObject->object())
- {
- c->warning(__tr2qs_ctx("Widget parameter is not a valid object","objects"));
- return true;
- }
- if(!pObject->object()->isWidgetType())
- {
- c->warning(__tr2qs_ctx("Can't add a non-widget object","objects"));
- return true;
- }
+ CHECK_HOBJECT_IS_WIDGET(pObject)
// { addWidget(w, fromRow, fromCol, (toRow < 0) ? -1 : toRow - fromRow + 1, (toCol < 0) ? -1 : toCol - fromCol + 1, _align); }
((QGridLayout *)object())->addWidget(((QWidget *)(pObject->object())),uStartRow, uStartCol,(uEndRow < 0) ? -1 : uEndRow - uStartRow + 1, (uEndCol < 0) ? -1 : uEndCol - uStartCol + 1);
return true;
@@ -308,21 +280,7 @@ KVSO_CLASS_FUNCTION(layout,setAlignment)
KVSO_PARAMETER("alignment",KVS_PT_STRINGLIST,KVS_PF_OPTIONAL,alignment)
KVSO_PARAMETERS_END(c)
pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
- if (!pObject)
- {
- c->warning(__tr2qs_ctx("Widget parameter is not an object","objects"));
- return true;
- }
- if (!pObject->object())
- {
- c->warning(__tr2qs_ctx("Widget parameter is not a valid object","objects"));
- return true;
- }
- if(!pObject->object()->isWidgetType())
- {
- c->warning(__tr2qs_ctx("Can't add a non-widget object","objects"));
- return true;
- }
+ CHECK_HOBJECT_IS_WIDGET(pObject)
int index=((QGridLayout *)widget())->indexOf(((QWidget *)(pObject->object())));
if(index ==-1)
{
diff --git a/src/modules/objects/class_multilineedit.cpp b/src/modules/objects/class_multilineedit.cpp
index 3b2f9d232..91dbe6301 100644
--- a/src/modules/objects/class_multilineedit.cpp
+++ b/src/modules/objects/class_multilineedit.cpp
@@ -359,21 +359,7 @@ bool KviKvsObject_textedit::functionAddWidget(KviKvsObjectFunctionCall * c)
KVSO_PARAMETERS_END(c)
pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
if(!widget())return true;
- if (!pObject)
- {
- c->warning(__tr2qs("Widget parameter is not an object"));
- return true;
- }
- if (!pObject->object())
- {
- c->warning(__tr2qs("Widget parameter is not a valid object"));
- return true;
- }
- if(!pObject->object()->isWidgetType())
- {
- c->warning(__tr2qs("Can't add a non-widget object"));
- return true;
- }
+ CHECK_HOBJECT_IS_WIDGET(pObject)
((QTextEdit *)object())->addScrollBarWidget(((QWidget *)(pObject->object())),Qt::AlignLeft);
return true;
}
diff --git a/src/modules/objects/class_pixmap.cpp b/src/modules/objects/class_pixmap.cpp
index fda7a5bb8..6b1336058 100644
--- a/src/modules/objects/class_pixmap.cpp
+++ b/src/modules/objects/class_pixmap.cpp
@@ -110,7 +110,7 @@ KVSO_END_CONSTRUCTOR(KviKvsObject_pixmap)
KVSO_CLASS_FUNCTION(pixmap,fill)
{
CHECK_INTERNAL_POINTER(m_pPixmap)
- KviKvsObject *ob;
+ KviKvsObject *pObject;
kvs_int_t iXoffset,iYoffset;
kvs_hobject_t hObject;
KVSO_PARAMETERS_BEGIN(c)
@@ -119,19 +119,10 @@ KVSO_CLASS_FUNCTION(pixmap,fill)
KVSO_PARAMETER("y_offset",KVS_PT_INT,0,iYoffset)
KVSO_PARAMETERS_END(c)
- ob=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
- if (!ob)
- {
- c->warning(__tr2qs("Widget parameter is not an object"));
- return true;
- }
- if(!ob->object()->isWidgetType())
- {
- c->warning(__tr2qs("Widget object required"));
- return true;
- }
+ pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
+ CHECK_HOBJECT_IS_WIDGET(pObject)
bPixmapModified=true;
- m_pPixmap->fill(((QWidget *)(ob->object())),iXoffset,iYoffset);
+ m_pPixmap->fill(((QWidget *)(pObject->object())),iXoffset,iYoffset);
return true;
}
diff --git a/src/modules/objects/class_popupmenu.cpp b/src/modules/objects/class_popupmenu.cpp
index 66a2eb66c..b54fd03a7 100644
--- a/src/modules/objects/class_popupmenu.cpp
+++ b/src/modules/objects/class_popupmenu.cpp
@@ -312,22 +312,7 @@ KVSO_CLASS_FUNCTION(popupmenu,exec)
KVSO_PARAMETER("y",KVS_PT_UNSIGNEDINTEGER,0,iY)
KVSO_PARAMETERS_END(c)
pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
- if (!pObject)
- {
- c->warning(__tr2qs_ctx("Widget parameter is not an object","objects"));
- return true;
- }
- if (!pObject->object())
- {
- c->warning(__tr2qs_ctx("Widget parameter is not a valid object","objects"));
- return true;
- }
- if(!pObject->object()->isWidgetType())
- {
- c->warning(__tr2qs_ctx("Widget parameter is not a widget object","objects"));
- return true;
- }
-
+ CHECK_HOBJECT_IS_WIDGET(pObject)
((QMenu *)widget())->exec(((QWidget *)(pObject->object()))->mapToGlobal(QPoint(iX,iY)) );
return true;
diff --git a/src/modules/objects/class_tabwidget.cpp b/src/modules/objects/class_tabwidget.cpp
index dc2c3477c..fb509e97c 100644
--- a/src/modules/objects/class_tabwidget.cpp
+++ b/src/modules/objects/class_tabwidget.cpp
@@ -30,6 +30,7 @@
#include "kvi_iconmanager.h"
#include <QTabWidget>
+
/*
@doc: tabwidget
@keyterms:
@@ -67,8 +68,8 @@
Sets the index position of the current tab page to <index>.
!fn: <integer> $currentPageIndex()
Returns the current page index.
- !fn: <string> $label(<index:uinteger>)
- Retunrs the label to the <index>.
+ !fn: <string> $tabLabel(<index:uinteger>)
+ Returns the tab label of the <index>.
!fn: <string> $currentTabLabel()
Returns the label of the current tab.
!fn: $removePage(<tab_widget:object>)
@@ -146,23 +147,23 @@
KVSO_BEGIN_REGISTERCLASS(KviKvsObject_tabwidget,"tabwidget","widget")
- KVSO_REGISTER_HANDLER(KviKvsObject_tabwidget,"addTab", functionaddTab)
- KVSO_REGISTER_HANDLER(KviKvsObject_tabwidget,"insertTab", functioninsertTab)
- KVSO_REGISTER_HANDLER(KviKvsObject_tabwidget,"setTabToolTip", functionsetTabToolTip)
- KVSO_REGISTER_HANDLER(KviKvsObject_tabwidget,"removeTabToolTip", functionremoveTabToolTip)
- KVSO_REGISTER_HANDLER(KviKvsObject_tabwidget,"setTabLabel", functionsetTabLabel)
- KVSO_REGISTER_HANDLER(KviKvsObject_tabwidget,"changeTab", functionchangeTab)
- KVSO_REGISTER_HANDLER(KviKvsObject_tabwidget,"setCurrentPage", functionsetCurrentPage)
- KVSO_REGISTER_HANDLER(KviKvsObject_tabwidget,"currentPageIndex", functioncurrentPageIndex)
- KVSO_REGISTER_HANDLER(KviKvsObject_tabwidget,"label", functiontabLabel)
- KVSO_REGISTER_HANDLER(KviKvsObject_tabwidget,"currentTabLabel", functioncurrentTabLabel)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_tabwidget,addTab)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_tabwidget,insertTab)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_tabwidget,setTabToolTip)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_tabwidget,removeTabToolTip)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_tabwidget,setTabLabel)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_tabwidget,changeTab)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_tabwidget,setCurrentPage)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_tabwidget,currentPageIndex)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_tabwidget,tabLabel)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_tabwidget,currentTabLabel)
- KVSO_REGISTER_HANDLER(KviKvsObject_tabwidget,"count", functioncount)
- KVSO_REGISTER_HANDLER(KviKvsObject_tabwidget,"removePage", functionremovePage)
- KVSO_REGISTER_HANDLER(KviKvsObject_tabwidget,"setTabPosition", functionsetTabPosition)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_tabwidget,count)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_tabwidget,removePage)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_tabwidget,setTabPosition)
// events
- KVSO_REGISTER_HANDLER(KviKvsObject_tabwidget,"currentChangedEvent", functionCurrentChangedEvent)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_tabwidget,currentChangedEvent)
@@ -183,9 +184,10 @@ bool KviKvsObject_tabwidget::init(KviKvsRunTimeContext * pContext,KviKvsVariantL
connect(widget(),SIGNAL(currentChanged(int)),this,SLOT(slotCurrentChanged(int)));
return true;
}
-bool KviKvsObject_tabwidget::functionaddTab(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(tabwidget,addTab)
{
- KviKvsObject *ob;
+ CHECK_INTERNAL_POINTER(widget())
+ KviKvsObject *pObject;
QString szLabel,szIcon;
kvs_hobject_t hObject;
KVSO_PARAMETERS_BEGIN(c)
@@ -193,35 +195,21 @@ bool KviKvsObject_tabwidget::functionaddTab(KviKvsObjectFunctionCall *c)
KVSO_PARAMETER("label",KVS_PT_STRING,0,szLabel)
KVSO_PARAMETER("icon_id",KVS_PT_STRING,KVS_PF_OPTIONAL,szIcon)
KVSO_PARAMETERS_END(c)
- ob=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
- if(!widget())return true;
- if (!ob)
- {
- c->warning(__tr2qs("Widget parameter is not an object"));
- return true;
- }
- if (!ob->object())
- {
- c->warning(__tr2qs("Widget parameter is not a valid object"));
- return true;
- }
- if(!ob->object()->isWidgetType())
- {
- c->warning(__tr2qs("Can't add a non-widget object"));
- return true;
- }
+ pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
+ CHECK_HOBJECT_IS_WIDGET(pObject)
QPixmap * pix = g_pIconManager->getImage(szIcon);
if(pix){
- ((QTabWidget *)widget())->addTab(((QWidget *)(ob->object())),QIcon(*pix),szLabel);
+ ((QTabWidget *)widget())->addTab(((QWidget *)(pObject->object())),QIcon(*pix),szLabel);
}
- else((QTabWidget *)widget())->addTab(((QWidget *)(ob->object())),szLabel);
+ else((QTabWidget *)widget())->addTab(((QWidget *)(pObject->object())),szLabel);
return true;
}
-bool KviKvsObject_tabwidget::functioninsertTab(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(tabwidget,insertTab)
{
- KviKvsObject *ob;
+ CHECK_INTERNAL_POINTER(widget())
+ KviKvsObject *pObject;
QString szLabel,szIcon;
kvs_int_t iIndex;
kvs_hobject_t hObject;
@@ -231,218 +219,148 @@ bool KviKvsObject_tabwidget::functioninsertTab(KviKvsObjectFunctionCall *c)
KVSO_PARAMETER("index",KVS_PT_UNSIGNEDINTEGER,0,iIndex)
KVSO_PARAMETER("icon_id",KVS_PT_STRING,KVS_PF_OPTIONAL,szIcon)
KVSO_PARAMETERS_END(c)
- ob=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
- if(!widget())return true;
- if (!ob)
- {
- c->warning(__tr2qs("Widget parameter is not an object"));
- return true;
- }
- if (!ob->object())
- {
- c->warning(__tr2qs("Widget parameter is not a valid object"));
- return true;
- }
- if(!ob->object()->isWidgetType())
- {
- c->warning(__tr2qs("Can't add a non-widget object"));
- return true;
- }
+ pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
+ CHECK_HOBJECT_IS_WIDGET(pObject)
QPixmap * pix = g_pIconManager->getImage(szIcon);
if(pix){
- ((QTabWidget *)widget())->insertTab(iIndex,(QWidget *)(ob->object()),QIcon(*pix),szLabel);
+ ((QTabWidget *)widget())->insertTab(iIndex,(QWidget *)(pObject->object()),QIcon(*pix),szLabel);
}
- else ((QTabWidget *)widget())->insertTab(iIndex,((QWidget *)(ob->object())),szLabel);
+ else ((QTabWidget *)widget())->insertTab(iIndex,((QWidget *)(pObject->object())),szLabel);
return true;
}
-bool KviKvsObject_tabwidget::functionsetCurrentPage(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(tabwidget,setCurrentPage)
{
+ CHECK_INTERNAL_POINTER(widget())
kvs_int_t iIndex;
KVSO_PARAMETERS_BEGIN(c)
KVSO_PARAMETER("index",KVS_PT_UNSIGNEDINTEGER,0,iIndex)
KVSO_PARAMETERS_END(c)
- if (widget()) ((QTabWidget *)widget())->setCurrentIndex(iIndex);
+ ((QTabWidget *)widget())->setCurrentIndex(iIndex);
return true;
}
-bool KviKvsObject_tabwidget::functionsetTabToolTip(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(tabwidget,setTabToolTip)
{
- KviKvsObject *ob;
+ CHECK_INTERNAL_POINTER(widget())
+ KviKvsObject *pObject;
QString szTooltip;
kvs_hobject_t hObject;
KVSO_PARAMETERS_BEGIN(c)
KVSO_PARAMETER("tab_widget",KVS_PT_HOBJECT,0,hObject)
KVSO_PARAMETER("tooltip",KVS_PT_STRING,0,szTooltip)
KVSO_PARAMETERS_END(c)
- ob=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
- if(!widget())return true;
- if (!ob)
- {
- c->warning(__tr2qs("Widget parameter is not an object"));
- return true;
- }
- if (!ob->object())
- {
- c->warning(__tr2qs("Widget parameter is not a valid object"));
- return true;
- }
- if(!ob->object()->isWidgetType())
- {
- c->warning(__tr2qs("Not a widget object"));
- return true;
- }
- int ctrl = ((QTabWidget *)widget())->indexOf (((QWidget *)(ob->object())));
+ pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
+ CHECK_HOBJECT_IS_WIDGET(pObject)
+ int ctrl = ((QTabWidget *)widget())->indexOf (((QWidget *)(pObject->object())));
if (ctrl == -1)
{
- c->warning(__tr2qs("Can't find the tab "));
+ c->warning(__tr2qs_ctx("Can't find the tab ","objects"));
return true;
}
((QTabWidget *)widget())->setTabToolTip(ctrl,szTooltip);
return true;
}
-bool KviKvsObject_tabwidget::functionremoveTabToolTip(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(tabwidget,removeTabToolTip)
{
- KviKvsObject *ob;
+ CHECK_INTERNAL_POINTER(widget())
+ KviKvsObject *pObject;
kvs_hobject_t hObject;
KVSO_PARAMETERS_BEGIN(c)
KVSO_PARAMETER("tab_widget",KVS_PT_HOBJECT,0,hObject)
KVSO_PARAMETERS_END(c)
- ob=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
- if (!ob)
- {
- c->warning(__tr2qs("Widget parameter is not an object"));
- return true;
- }
- if (!ob->object())
- {
- c->warning(__tr2qs("Widget parameter is not a valid object"));
- return true;
- }
- if(!widget()) return true;
- if(!ob->object()->isWidgetType())
- {
- c->warning(__tr2qs("Not a widget object"));
- return true;
- }
- int ctrl = ((QTabWidget *)widget())->indexOf (((QWidget *)(ob->object()))) ;
+ pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
+ CHECK_HOBJECT_IS_WIDGET(pObject)
+ int ctrl = ((QTabWidget *)widget())->indexOf (((QWidget *)(pObject->object()))) ;
if (ctrl==-1)
{
- c->warning(__tr2qs("Can't find the tab "));
+ c->warning(__tr2qs_ctx("Can't find the tab ","objects"));
return true;
}
((QTabWidget *)widget())->setTabToolTip(ctrl,QString());
return true;
}
-bool KviKvsObject_tabwidget::functionsetTabLabel(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(tabwidget,setTabLabel)
{
- KviKvsObject *ob;
+ CHECK_INTERNAL_POINTER(widget())
+ KviKvsObject *pObject;
QString szLabel;
kvs_hobject_t hObject;
KVSO_PARAMETERS_BEGIN(c)
KVSO_PARAMETER("tab_widget",KVS_PT_HOBJECT,0, hObject)
KVSO_PARAMETER("tooltip",KVS_PT_STRING,0,szLabel)
KVSO_PARAMETERS_END(c)
- ob=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
- if (!ob)
- {
- c->warning(__tr2qs("Widget parameter is not an object"));
- return true;
- }
- if (!ob->object())
- {
- c->warning(__tr2qs("Widget parameter is not a valid object"));
- return true;
- }
- if(!widget())return true;
- if(!ob->object()->isWidgetType())
- {
- c->warning(__tr2qs("Not a widget object"));
- return true;
- }
- int ctrl = ((QTabWidget *)widget())->indexOf (((QWidget *)(ob->object())));
+ pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
+ CHECK_HOBJECT_IS_WIDGET(pObject)
+ int ctrl = ((QTabWidget *)widget())->indexOf (((QWidget *)(pObject->object())));
if (ctrl == -1)
{
- c->warning(__tr2qs("Can't find the tab "));
+ c->warning(__tr2qs_ctx("Can't find the tab ","objects"));
return true;
}
((QTabWidget *)widget())->setTabText(ctrl,szLabel);
return true;
}
-bool KviKvsObject_tabwidget::functioncurrentPageIndex(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(tabwidget,currentPageIndex)
{
+ CHECK_INTERNAL_POINTER(widget())
int index=((QTabWidget *)widget())->currentIndex();
- if (widget()) c->returnValue()->setInteger(index);
+ c->returnValue()->setInteger(index);
return true;
}
-bool KviKvsObject_tabwidget::functiontabLabel(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(tabwidget,tabLabel)
{
+ CHECK_INTERNAL_POINTER(widget())
kvs_uint_t uIndex;
KVSO_PARAMETERS_BEGIN(c)
KVSO_PARAMETER("index",KVS_PT_INT,0,uIndex)
KVSO_PARAMETERS_END(c)
- if (!widget()) return true;
QString label=((QTabWidget *)widget())->tabText(uIndex);
c->returnValue()->setString(label);
return true;
}
-bool KviKvsObject_tabwidget::functioncount(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(tabwidget,count)
{
- if (!widget()) return true;
+ CHECK_INTERNAL_POINTER(widget())
int count = ((QTabWidget *)widget())->count();
c->returnValue()->setInteger(count);
return true;
}
-bool KviKvsObject_tabwidget::functioncurrentTabLabel(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(tabwidget,currentTabLabel)
{
- if (widget())
- {
- int i= ((QTabWidget *)widget())->currentIndex();
- QString label=((QTabWidget *)widget())->tabText(i);
- c->returnValue()->setString(label);
- }
+ CHECK_INTERNAL_POINTER(widget())
+ int i= ((QTabWidget *)widget())->currentIndex();
+ QString label=((QTabWidget *)widget())->tabText(i);
+ c->returnValue()->setString(label);
return true;
}
-bool KviKvsObject_tabwidget::functionremovePage(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(tabwidget,removePage)
{
- KviKvsObject *ob;
+ CHECK_INTERNAL_POINTER(widget())
+ KviKvsObject *pObject;
kvs_hobject_t hObject;
KVSO_PARAMETERS_BEGIN(c)
KVSO_PARAMETER("tab_widget",KVS_PT_HOBJECT,0,hObject)
KVSO_PARAMETERS_END(c)
- ob=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
- if(!widget())return true;
- if (!ob)
- {
- c->warning(__tr2qs("Widget parameter is not an object"));
- return true;
- }
- if (!ob->object())
- {
- c->warning(__tr2qs("Widget parameter is not a valid object"));
- return true;
- }
- if(!ob->object()->isWidgetType())
- {
- c->warning(__tr2qs("Not a widget object"));
- return true;
- }
- int ctrl = ((QTabWidget *)widget())->indexOf (((QWidget *)(ob->object())));
+ pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
+ CHECK_HOBJECT_IS_WIDGET(pObject)
+ int ctrl = ((QTabWidget *)widget())->indexOf (((QWidget *)(pObject->object())));
if (ctrl == -1)
{
- c->warning(__tr2qs("Can't find the tab "));
+ c->warning(__tr2qs_ctx("Can't find the tab ","objects"));
return true;
}
((QTabWidget *)widget())->removeTab(ctrl);
return true;
}
-bool KviKvsObject_tabwidget::functionchangeTab(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(tabwidget,changeTab)
{
- KviKvsObject *ob;
+ CHECK_INTERNAL_POINTER(widget())
+ KviKvsObject *pObject;
QString szLabel,szIcon;
kvs_hobject_t hObject;
KVSO_PARAMETERS_BEGIN(c)
@@ -450,27 +368,12 @@ bool KviKvsObject_tabwidget::functionchangeTab(KviKvsObjectFunctionCall *c)
KVSO_PARAMETER("label",KVS_PT_STRING,0,szLabel)
KVSO_PARAMETER("icon_id",KVS_PT_STRING,KVS_PF_OPTIONAL,szIcon)
KVSO_PARAMETERS_END(c)
- ob=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
- if (!ob)
- {
- c->warning(__tr2qs("Widget parameter is not an object"));
- return true;
- }
- if (!ob->object())
- {
- c->warning(__tr2qs("Widget parameter is not a valid object"));
- return true;
- }
- if(!widget())return true;
- if(!ob->object()->isWidgetType())
- {
- c->warning(__tr2qs("Not a widget object"));
- return true;
- }
- int ctrl = ((QTabWidget *)widget())->indexOf (((QWidget *)(ob->object())));
+ pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
+ CHECK_HOBJECT_IS_WIDGET(pObject)
+ int ctrl = ((QTabWidget *)widget())->indexOf (((QWidget *)(pObject->object())));
if (ctrl == -1)
{
- c->warning(__tr2qs("Can't find the tab "));
+ c->warning(__tr2qs_ctx("Can't find the tab ","objects"));
return true;
}
QPixmap * pix = g_pIconManager->getImage(szIcon);
@@ -478,13 +381,13 @@ bool KviKvsObject_tabwidget::functionchangeTab(KviKvsObjectFunctionCall *c)
((QTabWidget *)widget())->setTabText(ctrl,szLabel);
return true;
}
-bool KviKvsObject_tabwidget::functionsetTabPosition(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(tabwidget,setTabPosition)
{
+ CHECK_INTERNAL_POINTER(widget())
QString szPos;
KVSO_PARAMETERS_BEGIN(c)
KVSO_PARAMETER("tab_position",KVS_PT_STRING,0,szPos)
KVSO_PARAMETERS_END(c)
- if(!widget())return true;
if(KviQString::equalCI(szPos,"Top"))
((QTabWidget *)widget())->setTabPosition(QTabWidget::North);
else if(KviQString::equalCI(szPos,"Bottom"))
@@ -495,7 +398,7 @@ bool KviKvsObject_tabwidget::functionsetTabPosition(KviKvsObjectFunctionCall *c)
-bool KviKvsObject_tabwidget::functionCurrentChangedEvent(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(tabwidget,currentChangedEvent)
{
emitSignal("valueChanged",c,c->params());
diff --git a/src/modules/objects/class_tabwidget.h b/src/modules/objects/class_tabwidget.h
index 95ff95e3e..020f40ca1 100644
--- a/src/modules/objects/class_tabwidget.h
+++ b/src/modules/objects/class_tabwidget.h
@@ -38,20 +38,20 @@ public:
protected:
virtual bool init(KviKvsRunTimeContext * pContext,KviKvsVariantList *pParams);
- bool functionaddTab(KviKvsObjectFunctionCall *c);
- bool functioninsertTab(KviKvsObjectFunctionCall *c);
- bool functionsetTabToolTip(KviKvsObjectFunctionCall *c);
- bool functionremoveTabToolTip(KviKvsObjectFunctionCall *c);
- bool functionsetTabLabel(KviKvsObjectFunctionCall *c);
- bool functionsetCurrentPage(KviKvsObjectFunctionCall *c);
- bool functioncurrentPageIndex(KviKvsObjectFunctionCall *c);
- bool functiontabLabel(KviKvsObjectFunctionCall *c);
- bool functioncurrentTabLabel(KviKvsObjectFunctionCall *c);
- bool functioncount(KviKvsObjectFunctionCall *c);
- bool functionchangeTab(KviKvsObjectFunctionCall *c);
- bool functionCurrentChangedEvent(KviKvsObjectFunctionCall *c);
- bool functionremovePage(KviKvsObjectFunctionCall *c);
- bool functionsetTabPosition(KviKvsObjectFunctionCall *c);
+ bool addTab(KviKvsObjectFunctionCall *c);
+ bool insertTab(KviKvsObjectFunctionCall *c);
+ bool setTabToolTip(KviKvsObjectFunctionCall *c);
+ bool removeTabToolTip(KviKvsObjectFunctionCall *c);
+ bool setTabLabel(KviKvsObjectFunctionCall *c);
+ bool setCurrentPage(KviKvsObjectFunctionCall *c);
+ bool currentPageIndex(KviKvsObjectFunctionCall *c);
+ bool tabLabel(KviKvsObjectFunctionCall *c);
+ bool currentTabLabel(KviKvsObjectFunctionCall *c);
+ bool count(KviKvsObjectFunctionCall *c);
+ bool changeTab(KviKvsObjectFunctionCall *c);
+ bool currentChangedEvent(KviKvsObjectFunctionCall *c);
+ bool removePage(KviKvsObjectFunctionCall *c);
+ bool setTabPosition(KviKvsObjectFunctionCall *c);
protected slots:
void slotCurrentChanged(int);
diff --git a/src/modules/objects/class_tbrowser.cpp b/src/modules/objects/class_tbrowser.cpp
index 7bd056d9a..9393e799b 100644
--- a/src/modules/objects/class_tbrowser.cpp
+++ b/src/modules/objects/class_tbrowser.cpp
@@ -67,12 +67,12 @@
*/
KVSO_BEGIN_REGISTERCLASS(KviKvsObject_textbrowser,"textbrowser","multilineedit")
- KVSO_REGISTER_HANDLER(KviKvsObject_textbrowser,"setSource",function_setSource)
- KVSO_REGISTER_HANDLER(KviKvsObject_textbrowser,"forward",function_forward)
- KVSO_REGISTER_HANDLER(KviKvsObject_textbrowser,"backward",function_backward)
- KVSO_REGISTER_HANDLER(KviKvsObject_textbrowser,"home",function_home)
- KVSO_REGISTER_HANDLER(KviKvsObject_textbrowser,"reload",function_reload)
- KVSO_REGISTER_HANDLER(KviKvsObject_textbrowser,"linkClickedEvent",function_linkClickedEvent)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_textbrowser,setSource)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_textbrowser,forward)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_textbrowser,backward)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_textbrowser,home)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_textbrowser,reload)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_textbrowser,linkClickedEvent)
KVSO_END_REGISTERCLASS(KviKvsObject_textbrowser)
KVSO_BEGIN_CONSTRUCTOR(KviKvsObject_textbrowser,KviKvsObject_textedit)
@@ -91,44 +91,49 @@ bool KviKvsObject_textbrowser::init(KviKvsRunTimeContext * pContext,KviKvsVarian
return true;
}
-bool KviKvsObject_textbrowser::function_setSource(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(textbrowser,setSource)
{
+ CHECK_INTERNAL_POINTER(widget())
QString szFile;
KVSO_PARAMETERS_BEGIN(c)
KVSO_PARAMETER("file_name",KVS_PT_STRING,0,szFile)
KVSO_PARAMETERS_END(c)
if(!QFile::exists(szFile))
{
- c->warning(__tr2qs("I can't find the specified file '%Q'."),&szFile);
+ c->warning(__tr2qs_ctx("I can't find the specified file '%Q'.","objects"),&szFile);
return true;
}
QUrl url;
url.setPath(szFile);
- if (widget()) ((QTextBrowser *)widget())->setSource(url);
+ ((QTextBrowser *)widget())->setSource(url);
return true;
}
-bool KviKvsObject_textbrowser::function_forward(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(textbrowser,forward)
{
- if (widget()) ((QTextBrowser *)widget())->forward();
+ CHECK_INTERNAL_POINTER(widget())
+ ((QTextBrowser *)widget())->forward();
return true;
}
-bool KviKvsObject_textbrowser::function_backward(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(textbrowser,backward)
{
- if (widget()) ((QTextBrowser *)widget())->backward();
+ CHECK_INTERNAL_POINTER(widget())
+ ((QTextBrowser *)widget())->backward();
return true;
}
-bool KviKvsObject_textbrowser::function_home(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(textbrowser,home)
{
- if (widget()) ((QTextBrowser *)widget())->home();
+ CHECK_INTERNAL_POINTER(widget())
+ ((QTextBrowser *)widget())->home();
return true;
}
-bool KviKvsObject_textbrowser::function_reload(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(textbrowser,reload)
{
- if (widget()) ((QTextBrowser *)widget())->reload();
+ CHECK_INTERNAL_POINTER(widget())
+ ((QTextBrowser *)widget())->reload();
return true;
}
@@ -138,7 +143,7 @@ void KviKvsObject_textbrowser::anchorClicked(const QUrl &url)
callFunction(this,"linkClickedEvent",0,&parms);
}
-bool KviKvsObject_textbrowser::function_linkClickedEvent(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(textbrowser,linkClickedEvent)
{
emitSignal("linkClicked",c,c->params());
return true;
diff --git a/src/modules/objects/class_tbrowser.h b/src/modules/objects/class_tbrowser.h
index 05fc6952a..baf6c42d9 100644
--- a/src/modules/objects/class_tbrowser.h
+++ b/src/modules/objects/class_tbrowser.h
@@ -39,12 +39,12 @@ public:
protected:
virtual bool init(KviKvsRunTimeContext * pContext,KviKvsVariantList *pParams);
- bool function_setSource(KviKvsObjectFunctionCall *c);
- bool function_forward(KviKvsObjectFunctionCall *c);
- bool function_backward(KviKvsObjectFunctionCall *c);
- bool function_home(KviKvsObjectFunctionCall *c);
- bool function_reload(KviKvsObjectFunctionCall *c);
- bool function_linkClickedEvent(KviKvsObjectFunctionCall *c);
+ bool setSource(KviKvsObjectFunctionCall *c);
+ bool forward(KviKvsObjectFunctionCall *c);
+ bool backward(KviKvsObjectFunctionCall *c);
+ bool home(KviKvsObjectFunctionCall *c);
+ bool reload(KviKvsObjectFunctionCall *c);
+ bool linkClickedEvent(KviKvsObjectFunctionCall *c);
protected slots:
void anchorClicked(const QUrl &);
};
diff --git a/src/modules/objects/class_toolbar.cpp b/src/modules/objects/class_toolbar.cpp
index 56608a2ea..880878c7b 100644
--- a/src/modules/objects/class_toolbar.cpp
+++ b/src/modules/objects/class_toolbar.cpp
@@ -61,10 +61,10 @@
KVSO_BEGIN_REGISTERCLASS(KviKvsObject_toolbar,"toolbar","object")
- KVSO_REGISTER_HANDLER(KviKvsObject_toolbar,"addSeparator", functionaddSeparator)
- KVSO_REGISTER_HANDLER(KviKvsObject_toolbar,"setLabel", functionsetLabel)
- KVSO_REGISTER_HANDLER(KviKvsObject_toolbar,"label", functionlabel)
- KVSO_REGISTER_HANDLER(KviKvsObject_toolbar,"clear", functionclear)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_toolbar,addSeparator)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_toolbar,setLabel)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_toolbar,label)
+ KVSO_REGISTER_HANDLER_NEW(KviKvsObject_toolbar,clear)
KVSO_END_REGISTERCLASS(KviKvsObject_toolbar)
KVSO_BEGIN_CONSTRUCTOR(KviKvsObject_toolbar,KviKvsObject_widget)
@@ -80,7 +80,7 @@ bool KviKvsObject_toolbar::init(KviKvsRunTimeContext * pContext,KviKvsVariantLis
{
if (!parentObject())
{
- pContext->warning(__tr2qs("the toolbar cannot be a parent-widget!"));
+ pContext->warning(__tr2qs_ctx("the toolbar cannot be a parent-widget!","objects"));
return true;
}
if(parentObject()->inheritsClass("mainwindow"))
@@ -89,35 +89,38 @@ bool KviKvsObject_toolbar::init(KviKvsRunTimeContext * pContext,KviKvsVariantLis
}
else
{
- pContext->warning(__tr2qs("The parent-widget isn't a MainWindow."));
+ pContext->warning(__tr2qs_ctx("The parent-widget isn't a MainWindow.","objects"));
}
return true;
}
-bool KviKvsObject_toolbar::functionaddSeparator(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(toolbar,addSeparator)
{
- if(widget()) ((KviTalToolBar *)widget())->addSeparator();
+ CHECK_INTERNAL_POINTER(widget())
+ ((KviTalToolBar *)widget())->addSeparator();
return true;
}
-bool KviKvsObject_toolbar::functionsetLabel(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(toolbar,setLabel)
{
+ CHECK_INTERNAL_POINTER(widget())
QString szLabel;
KVSO_PARAMETERS_BEGIN(c)
KVSO_PARAMETER("label",KVS_PT_STRING,0,szLabel)
KVSO_PARAMETERS_END(c)
- if (widget()) ((KviTalToolBar *)widget())->setWindowTitle(szLabel);
+ ((KviTalToolBar *)widget())->setWindowTitle(szLabel);
return true;
}
-bool KviKvsObject_toolbar::functionlabel(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(toolbar,label)
{
- if (widget()) c->returnValue()->setString(((KviTalToolBar *)widget())->windowTitle());
+ CHECK_INTERNAL_POINTER(widget())
+ c->returnValue()->setString(((KviTalToolBar *)widget())->windowTitle());
return true;
}
-bool KviKvsObject_toolbar::functionclear(KviKvsObjectFunctionCall *c)
+KVSO_CLASS_FUNCTION(toolbar,clear)
{
- if (widget())
- ((KviTalToolBar *)object())->clear();
+ CHECK_INTERNAL_POINTER(widget())
+ ((KviTalToolBar *)object())->clear();
return true;
}
diff --git a/src/modules/objects/class_toolbar.h b/src/modules/objects/class_toolbar.h
index c4837f448..446dc5e0c 100644
--- a/src/modules/objects/class_toolbar.h
+++ b/src/modules/objects/class_toolbar.h
@@ -37,11 +37,11 @@ public:
protected:
virtual bool init(KviKvsRunTimeContext * pContext,KviKvsVariantList *pParams);
- bool functionaddSeparator(KviKvsObjectFunctionCall *c);
- bool functionsetLabel(KviKvsObjectFunctionCall *c);
- bool functionlabel(KviKvsObjectFunctionCall *c);
- bool functionsetStretchableWidget(KviKvsObjectFunctionCall *c);
- bool functionclear(KviKvsObjectFunctionCall *c);
+ bool addSeparator(KviKvsObjectFunctionCall *c);
+ bool setLabel(KviKvsObjectFunctionCall *c);
+ bool label(KviKvsObjectFunctionCall *c);
+ bool setStretchableWidget(KviKvsObjectFunctionCall *c);
+ bool clear(KviKvsObjectFunctionCall *c);
};
diff --git a/src/modules/objects/class_vbox.cpp b/src/modules/objects/class_vbox.cpp
index 458e9f691..50db8a8ad 100644
--- a/src/modules/objects/class_vbox.cpp
+++ b/src/modules/objects/class_vbox.cpp
@@ -141,22 +141,7 @@ KVSO_CLASS_FUNCTION(vbox,setStretchFactor)
KVSO_PARAMETERS_END(c)
pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
if(!widget())return true;
- if (!pObject)
- {
- c->warning(__tr2qs("Widget parameter is not an object"));
- return true;
- }
- if (!pObject->object())
- {
- c->warning(__tr2qs("Widget parameter is not a valid object"));
- return true;
- }
- if(!pObject->object()->isWidgetType())
- {
- c->warning(__tr2qs("Can't add a non-widget object"));
- return true;
- }
-
+ CHECK_HOBJECT_IS_WIDGET(pObject)
if(((KviKvsObject_widget *)pObject)->widget()->parentWidget() != widget())
{
c->warning(__tr2qs("The widget must be a child of this vbox"));
@@ -186,21 +171,7 @@ KVSO_CLASS_FUNCTION(vbox,setAlignment)
KVSO_PARAMETERS_END(c)
pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
if(!widget())return true;
- if (!pObject)
- {
- c->warning(__tr2qs("Widget parameter is not an object"));
- return true;
- }
- if (!pObject->object())
- {
- c->warning(__tr2qs("Widget parameter is not a valid object"));
- return true;
- }
- if(!pObject->object()->isWidgetType())
- {
- c->warning(__tr2qs("Can't add a non-widget object"));
- return true;
- }
+ CHECK_HOBJECT_IS_WIDGET(pObject)
if(((KviKvsObject_widget *)pObject)->widget()->parentWidget() != widget())
{
c->warning(__tr2qs("The widget must be a child of this hbox"));
diff --git a/src/modules/objects/object_macros.h b/src/modules/objects/object_macros.h
index 634d050e3..15e0cc4da 100644
--- a/src/modules/objects/object_macros.h
+++ b/src/modules/objects/object_macros.h
@@ -105,4 +105,21 @@ g_pKvs##__className##Class->registerFunctionHandler(#__szName,(KviKvsObjectFunct
c->error(__tr2qs_ctx("Internal error: no valid pointer for this object","objects")); \
return false; \
}
+#define CHECK_HOBJECT_IS_WIDGET(__pObject)\
+if (__pObject)\
+ {\
+ c->warning(__tr2qs_ctx("Widget parameter is not an object","objects"));\
+ return true;\
+ }\
+ if (!__pObject->object())\
+ {\
+ c->warning(__tr2qs_ctx("Widget parameter is not a valid object","objects"));\
+ return true;\
+ }\
+ if(!__pObject->object()->isWidgetType())\
+ {\
+ c->warning(__tr2qs_ctx("Widget object requires","objects"));\
+ return true;\
+ }
#endif
+