From c601b5a27f74b16158adafe429faefbe573e64a2 Mon Sep 17 00:00:00 2001 From: Szymon Tomasz Stefanek Date: Sat, 1 Jan 2011 20:19:56 +0000 Subject: The big rename for modules. Still some details remaining. git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5284 17fca916-40b9-46aa-a4ea-0a15b648b75c --- src/modules/objects/KvsObject_groupBox.cpp | 335 +++++++++++++++++++++++++++++ 1 file changed, 335 insertions(+) create mode 100644 src/modules/objects/KvsObject_groupBox.cpp (limited to 'src/modules/objects/KvsObject_groupBox.cpp') diff --git a/src/modules/objects/KvsObject_groupBox.cpp b/src/modules/objects/KvsObject_groupBox.cpp new file mode 100644 index 000000000..03042d795 --- /dev/null +++ b/src/modules/objects/KvsObject_groupBox.cpp @@ -0,0 +1,335 @@ +//============================================================================= +// +// File : KvsObject_groupBox.cpp +// Creation date : Fri Jan 28 14:21:48 CEST 2005 +// by Tonino Imbesi(Grifisx) and Alessandro Carbone(Noldor) +// +// This file is part of the KVIrc irc client distribution +// Copyright (C) 2005-2009 Alessandro Carbone (elfonol at gmail dot com) +// +// This program is FREE software. You can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your opinion) any later version. +// +// This program is distributed in the HOPE that it will be USEFUL, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, write to the Free Software Foundation, +// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +// +//============================================================================= + +#include +#include "KvsObject_groupBox.h" +#include "KviError.h" +#include "kvi_debug.h" + +#include "KviLocale.h" +#include "KviIconManager.h" + + +// Tables used in $setAlignment, $alignment and in $setOrientation & $orientation + +const char * const align_tbl[] = { + "Left", + "Right", + "HCenter" +}; + +const int align_cod[] = { + Qt::AlignLeft, + Qt::AlignRight, + Qt::AlignHCenter +}; + +#define align_num (sizeof(align_tbl) / sizeof(align_tbl[0])) + + +/* + @doc: groupbox + @keyterms: + groupbox object class, + @title: + groupbox class + @type: + class + @short: + Provides a groupbox bar. + @inherits: + [class]object[/class] + [class]widget[/class] + @description: + This widget can be used to display a groupbox. + It will be usually a parent for other child controls. + You can either use a child layout to manage the children geometries + or use $setColumnLayout to manage the layout automatically. + @functions: + !fn: $setTitle() + Sets the group box title to . + !fn: $title() + Returns the group box title text. + !fn: $setFlat() + Sets whether the group box is painted flat. Valid Values are 1 or 0. + !fn: $isFlat() + Returns 1 (TRUE) if the group box is painted flat; otherwise returns 0 (FALSE). + !fn: $isCheckable() + Returns 1 (TRUE) if the group box has a checkbox in its title; otherwise returns 0 (FALSE). + !fn: $setCheckable() + Sets whether the group box has a checkbox in its title: Valid values are 1 or 0. + !fn: $setInsideMargin() + Sets the the width of the inside margin to m pixels. + !fn: $insideMargin() + Returns the width of the empty space between the items in the group and margin of groupbox. + !fn: $setInsideSpacing() + Sets the width of the empty space between each of the items in the group to m pixels. + !fn: $insideSpacing() + Returns the width of the empty space between each of the items in the group. + !fn: $addSpace() + Adds an empty cell at the next free position. + !fn: $alignment() + Returns the alignment of the group box title. + !fn: $setAlignment() + Set the alignment of the groupbox; Valid values are Left,Right,HCenter. + !fn: $setOrientation + Sets the group box's orientation. Valid values are: Horizontal, Vertical. + @examples: + [example] + //Let's start. + //First we'll create the main widget. as a dialog + %widget=$new(dialog) + %layout=$new(layout,%widget) + //then the groupbox + %gb=$new(groupbox,%widget) + %gb->$setTitle(Login) + %gb->$setAlignment("Left") + // add the gbox to the main layout + %layout->$addWidget(%gb,0,0) + // now we create the user field (labels + lineedit) + // in a horizontal box + %hbox=$new(hbox,%gb) + %labeluser=$new(label,%hbox) + %labeluser->$settext(User: ) + %inputuser=$new(lineedit,%hbox) + //now we create the pass field (labels + lineedit). + // in a horizontal box + %hbox=$new(hbox,%gb) + %labelpass=$new(label,%hbox) + %labelpass->$settext(Pass: ) + %inputpass=$new(lineedit,%hbox) + %inputpass->$setechomode("password") + // now we create the ok/cancel box buttons + %hbox=$new(hbox,%gb) + %btnok=$new(button,%hbox) + %btnok->$settext("OK") + %btncancel=$new(button,%hbox) + %btncancel->$settext("Cancel") + + //Let's show our nice form + %widget->$show() + [/example] + +*/ + +KVSO_BEGIN_REGISTERCLASS(KvsObject_groupBox,"groupbox","widget") + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_groupBox,setTitle) + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_groupBox,title) + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_groupBox,setFlat) + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_groupBox,isFlat) + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_groupBox,setCheckable) + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_groupBox,isCheckable) + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_groupBox,setInsideMargin) + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_groupBox,insideMargin) + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_groupBox,setInsideSpacing) + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_groupBox,insideSpacing) + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_groupBox,addSpace) + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_groupBox,alignment) + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_groupBox,setAlignment) + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_groupBox,setOrientation) + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_groupBox,isChecked) + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_groupBox,setChecked) + +KVSO_END_REGISTERCLASS(KvsObject_groupBox) + +KVSO_BEGIN_CONSTRUCTOR(KvsObject_groupBox,KvsObject_widget) + +KVSO_END_CONSTRUCTOR(KvsObject_groupBox) + + +KVSO_BEGIN_DESTRUCTOR(KvsObject_groupBox) + +KVSO_END_CONSTRUCTOR(KvsObject_groupBox) + +bool KvsObject_groupBox::init(KviKvsRunTimeContext *,KviKvsVariantList *) +{ + KviTalGroupBox *groupbox=new KviTalGroupBox(getName(),parentScriptWidget()); + + groupbox->setOrientation(Qt::Horizontal); + groupbox->setObjectName(getName()); + setObject(groupbox,true); + return true; +} + +KVSO_CLASS_FUNCTION(groupBox,setTitle) +{ + CHECK_INTERNAL_POINTER(widget()) + QString szTitle; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("title",KVS_PT_STRING,0,szTitle) + KVSO_PARAMETERS_END(c) + ((KviTalGroupBox *)widget())->setTitle(szTitle); + return true; +} +KVSO_CLASS_FUNCTION(groupBox,title) +{ + CHECK_INTERNAL_POINTER(widget()) + c->returnValue()->setString(((KviTalGroupBox *)widget())->title()); + return true; +} +KVSO_CLASS_FUNCTION(groupBox,setFlat) +{ + CHECK_INTERNAL_POINTER(widget()) + bool bEnabled; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("bFlag",KVS_PT_BOOL,0,bEnabled) + KVSO_PARAMETERS_END(c) + ((KviTalGroupBox *)widget())->setFlat(bEnabled); + return true; +} +KVSO_CLASS_FUNCTION(groupBox,isFlat) +{ + CHECK_INTERNAL_POINTER(widget()) + c->returnValue()->setBoolean(((KviTalGroupBox *)widget())->isFlat()); + return true; +} +KVSO_CLASS_FUNCTION(groupBox,setCheckable) +{ + CHECK_INTERNAL_POINTER(widget()) + bool bEnabled; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("bFlag",KVS_PT_BOOL,0,bEnabled) + KVSO_PARAMETERS_END(c) + ((KviTalGroupBox *)widget())->setCheckable(bEnabled); + return true; +} +KVSO_CLASS_FUNCTION(groupBox,isCheckable) +{ + CHECK_INTERNAL_POINTER(widget()) + c->returnValue()->setBoolean(((KviTalGroupBox *)widget())->isCheckable()); + return true; +} +KVSO_CLASS_FUNCTION(groupBox,setChecked) +{ + CHECK_INTERNAL_POINTER(widget()) + bool bEnabled; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("bFlag",KVS_PT_BOOL,0,bEnabled) + KVSO_PARAMETERS_END(c) + ((KviTalGroupBox *)widget())->setChecked(bEnabled); + return true; +} +KVSO_CLASS_FUNCTION(groupBox,isChecked) +{ + CHECK_INTERNAL_POINTER(widget()) + c->returnValue()->setBoolean(((KviTalGroupBox *)widget())->isChecked()); + return true; +} +KVSO_CLASS_FUNCTION(groupBox,setInsideMargin) +{ + CHECK_INTERNAL_POINTER(widget()) + kvs_uint_t uMargin; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("margin",KVS_PT_UNSIGNEDINTEGER,0,uMargin) + KVSO_PARAMETERS_END(c) + ((KviTalGroupBox *)widget())->setInsideMargin(uMargin); + return true; +} +KVSO_CLASS_FUNCTION(groupBox,insideMargin) +{ + CHECK_INTERNAL_POINTER(widget()) + c->returnValue()->setInteger(((KviTalGroupBox *)widget())->insideMargin()); + return true; +} +KVSO_CLASS_FUNCTION(groupBox,setInsideSpacing) +{ + CHECK_INTERNAL_POINTER(widget()) + kvs_uint_t uSpacing; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("spacing",KVS_PT_UNSIGNEDINTEGER,0,uSpacing) + KVSO_PARAMETERS_END(c) + ((KviTalGroupBox *)widget())->setInsideSpacing(uSpacing); + return true; +} +KVSO_CLASS_FUNCTION(groupBox,insideSpacing) +{ + CHECK_INTERNAL_POINTER(widget()) + c->returnValue()->setInteger(((KviTalGroupBox *)widget())->insideSpacing()); + return true; +} + +KVSO_CLASS_FUNCTION(groupBox,addSpace) +{ + CHECK_INTERNAL_POINTER(widget()) + kvs_uint_t iSpace; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("colums",KVS_PT_UNSIGNEDINTEGER,0,iSpace) + KVSO_PARAMETERS_END(c) + (((KviTalGroupBox *)widget())->addSpace(iSpace)); + return true; +} + +KVSO_CLASS_FUNCTION(groupBox,setAlignment) +{ + CHECK_INTERNAL_POINTER(widget()) + QString szAlign; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("alignment",KVS_PT_STRING,0,szAlign) + KVSO_PARAMETERS_END(c) + for(unsigned int i = 0; i < align_num; i++) + { + if(KviQString::equalCI(szAlign, align_tbl[i])) + { + ((KviTalGroupBox *)widget())->setAlignment(align_cod[i]); + return true; + } + } + c->warning(__tr2qs_ctx("Unknown alignment '%Q'","objets"),&szAlign); + return true; +} + +KVSO_CLASS_FUNCTION(groupBox,alignment) +{ + CHECK_INTERNAL_POINTER(widget()) + int mode = ((KviTalGroupBox *)widget())->alignment(); + QString szAlignment=""; + for(unsigned int i = 0; i < align_num; i++) + { + if(mode == align_cod[i]) + { + szAlignment=align_tbl[i]; + break; + } + } + c->returnValue()->setString(szAlignment); + return true; +} + +KVSO_CLASS_FUNCTION(groupBox,setOrientation) +{ + CHECK_INTERNAL_POINTER(widget()) + QString szMode; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("orientation",KVS_PT_STRING,0,szMode) + KVSO_PARAMETERS_END(c) + if(KviQString::equalCI(szMode, "Horizontal")) + ((KviTalGroupBox *)widget())->setOrientation(Qt::Vertical); + else + if(KviQString::equalCI(szMode, "Vertical")) + ((KviTalGroupBox *)widget())->setOrientation(Qt::Horizontal); + else c->warning( __tr2qs_ctx("Unknown orientation '%Q'","objects"),&szMode); + + return true; +} -- cgit v1.3.1-10-gc9f91