diff options
Diffstat (limited to 'src/modules')
20 files changed, 411 insertions, 1186 deletions
diff --git a/src/modules/dcc/libkvidcc.cpp b/src/modules/dcc/libkvidcc.cpp index 42bc757fc..c8736216b 100644 --- a/src/modules/dcc/libkvidcc.cpp +++ b/src/modules/dcc/libkvidcc.cpp @@ -1626,7 +1626,43 @@ static bool dcc_kvs_cmd_abort(KviKvsModuleCommandCall * c) return true; } +/* + @doc: dcc.setBandwidthLimit + @type: + command + @title: + dcc.setBandwidthLimit + @short: + Set the bandwidthlimit of a dcc.send session. + @syntax: + dcc.setBandwidthLimit [-q] [dcc_id:uint] + @description: + Terminates the Direct Client Connection specified by <dcc_id>.[br] + If <dcc_id> is omitted then the DCC Session associated + to the current window is assumed.[br] + If <dcc_id> is not a valid DCC session identifier (or it is omitted + and the current window has no associated DCC session) then + this function prints a warning unless the -q switch is used.[br] + If <dcc_id> does not refers to a file transfer a warning will be printing unless the -q switch is used.[br] + See the [module:dcc]dcc module[/module] documentation for more informations.[br] + @examples: +*/ +static bool dcc_kvs_cmd_setBandwidthLimit(KviKvsModuleCommandCall * c) +{ + kvs_uint_t uDccId,uVal; + KVSM_PARAMETERS_BEGIN(c) + KVSM_PARAMETER("limit_value",KVS_PT_UINT,0,uVal) + KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId) + KVSM_PARAMETERS_END(c) + KviDccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c,!c->switches()->find('q',"quiet")); + if(dcc) + { + if (dcc->transfer())dcc->transfer()->setBandwidthLimit(uVal); + else if (!c->switches()->find('q',"quiet"))c->warning(__tr2qs_ctx("This DCC session is not a DCC transfer session","dcc")); + } + return true; +} /* @doc: dcc.protocol @type: @@ -2671,6 +2707,7 @@ static bool dcc_module_init(KviModule * m) KVSM_REGISTER_SIMPLE_COMMAND(m,"rsend",dcc_kvs_cmd_rsend); KVSM_REGISTER_SIMPLE_COMMAND(m,"get",dcc_kvs_cmd_get); KVSM_REGISTER_SIMPLE_COMMAND(m,"abort",dcc_kvs_cmd_abort); + KVSM_REGISTER_SIMPLE_COMMAND(m,"setBandwidthLimit",dcc_kvs_cmd_setBandwidthLimit); // FIXME: file upload / download state ? diff --git a/src/modules/objects/Makefile.am b/src/modules/objects/Makefile.am index 4af0b833b..aedff5261 100644 --- a/src/modules/objects/Makefile.am +++ b/src/modules/objects/Makefile.am @@ -1,144 +1,146 @@ -############################################################################### -# KVirc IRC client Makefile - 10.03.2000 Szymon Stefanek <stefanek@tin.it> -############################################################################### - -AM_CPPFLAGS = -I$(SS_TOPSRCDIR)/src/kvilib/include/ -I$(SS_TOPSRCDIR)/src/kvirc/include/ \ -$(SS_INCDIRS) $(SS_CPPFLAGS) -DGLOBAL_KVIRC_DIR=\"$(globalkvircdir)\" - -pluglib_LTLIBRARIES = libkviobjects.la - -libkviobjects_la_LDFLAGS = -module -avoid-version $(SS_LDFLAGS) $(SS_LIBDIRS) - -libkviobjects_la_SOURCES = libkviobjects.cpp \ - class_button.cpp \ - class_checkbox.cpp \ - class_combobox.cpp \ - class_dialog.cpp \ - class_dockwindow.cpp \ - class_file.cpp \ - class_groupbox.cpp \ - class_image.cpp \ - class_label.cpp \ - class_layout.cpp \ - class_lcd.cpp \ - class_lineedit.cpp \ - class_list.cpp \ - class_listbox.cpp \ - class_listview.cpp \ - class_listviewitem.cpp \ - class_mainwindow.cpp \ - class_menubar.cpp \ - class_multilineedit.cpp \ - class_popupmenu.cpp \ - class_process.cpp \ - class_progressbar.cpp \ - class_radiobutton.cpp \ - class_slider.cpp \ - class_socket.cpp \ - class_spinbox.cpp \ - class_tabwidget.cpp \ - class_toolbar.cpp \ - class_toolbutton.cpp \ - class_painter.cpp \ - class_pixmap.cpp \ - class_tbrowser.cpp \ - class_widget.cpp \ - class_window.cpp \ - class_wizard.cpp \ - class_workspace.cpp \ - class_wrapper.cpp \ - class_urllabel.cpp \ - class_xmlreader.cpp \ - class_vbox.cpp \ - class_hbox.cpp - - -libkviobjects_la_LIBADD = $(SS_LIBLINK) ../../kvilib/build/libkvilib.la - -noinst_HEADERS= class_button.h \ - class_checkbox.h \ - class_combobox.h \ - class_dialog.h \ - class_dockwindow.h \ - class_file.h \ - class_groupbox.h \ - class_image.h \ - class_label.h \ - class_layout.h \ - class_lcd.h \ - class_lineedit.h \ - class_list.h \ - class_listbox.h \ - class_listview.h \ - class_listviewitem.h \ - class_mainwindow.h \ - class_menubar.h \ - class_multilineedit.h \ - class_painter.h \ - class_pixmap.h \ - class_popupmenu.h \ - class_process.h \ - class_progressbar.h \ - class_radiobutton.h \ - class_slider.h \ - class_socket.h \ - class_spinbox.h \ - class_tabwidget.h \ - class_tbrowser.h \ - class_toolbar.h \ - class_toolbutton.h \ - class_urllabel.h \ - class_widget.h \ - class_window.h \ - class_wizard.h \ - class_workspace.h \ - class_wrapper.h \ - class_xmlreader.h \ - class_vbox.h \ - class_hbox.h \ - object_macros.h - -m_%.moc: %.h - $(SS_QT_MOC) $< -o $@ - -class_checkbox.cpp: m_class_checkbox.moc -class_combobox.cpp: m_class_combobox.moc -class_button.cpp: m_class_button.moc -class_dialog.cpp: m_class_dialog.moc -class_dockwindow.cpp: m_class_dockwindow.moc -class_file.cpp: m_class_file.moc -class_groupbox.cpp: m_class_groupbox.moc -class_image.cpp: m_class_image.moc -class_label.cpp: m_class_label.moc -class_layout.cpp: m_class_layout.moc -class_lcd.cpp: m_class_lcd.moc -class_lineedit.cpp: m_class_lineedit.moc -class_list.cpp: m_class_list.moc -class_listbox.cpp: m_class_listbox.moc -class_listview.cpp: m_class_listview.moc -class_listviewitem.cpp: m_class_listviewitem.moc -class_listbox.cpp: m_class_listbox.moc -class_mainwindow.cpp: m_class_mainwindow.moc -class_menubar.cpp: m_class_menubar.moc -class_multilineedit.cpp: m_class_multilineedit.moc -class_painter.cpp: m_class_painter.moc -class_pixmap.cpp: m_class_pixmap.moc -class_popupmenu.cpp: m_class_popupmenu.moc -class_process.cpp: m_class_process.moc -class_progressbar.cpp: m_class_progressbar.moc -class_radiobutton.cpp: m_class_radiobutton.moc -class_slider.cpp: m_class_slider.moc -class_socket.cpp: m_class_socket.moc -class_spinbox.cpp: m_class_spinbox.moc -class_tabwidget.cpp: m_class_tabwidget.moc -class_tbrowser.cpp: m_class_tbrowser.moc -class_toolbar.cpp: m_class_toolbar.moc -class_toolbutton.cpp: m_class_toolbutton.moc -class_urllabel.cpp: m_class_urllabel.moc -class_widget.cpp: m_class_widget.moc -class_window.cpp: m_class_window.moc -class_wizard.cpp: m_class_wizard.moc -class_workspace.cpp: m_class_workspace.moc -class_wrapper.cpp: m_class_wrapper.moc -class_xmlreader.cpp: m_class_xmlreader.moc - +###############################################################################
+# KVirc IRC client Makefile - 10.03.2000 Szymon Stefanek <stefanek@tin.it>
+###############################################################################
+
+AM_CPPFLAGS = -I$(SS_TOPSRCDIR)/src/kvilib/include/ -I$(SS_TOPSRCDIR)/src/kvirc/include/ \
+$(SS_INCDIRS) $(SS_CPPFLAGS) -DGLOBAL_KVIRC_DIR=\"$(globalkvircdir)\"
+
+pluglib_LTLIBRARIES = libkviobjects.la
+
+libkviobjects_la_LDFLAGS = -module -avoid-version $(SS_LDFLAGS) $(SS_LIBDIRS)
+
+libkviobjects_la_SOURCES = libkviobjects.cpp \
+ class_button.cpp \
+ class_buttongroup.cpp \
+ class_checkbox.cpp \
+ class_combobox.cpp \
+ class_dialog.cpp \
+ class_dockwindow.cpp \
+ class_file.cpp \
+ class_groupbox.cpp \
+ class_image.cpp \
+ class_label.cpp \
+ class_layout.cpp \
+ class_lcd.cpp \
+ class_lineedit.cpp \
+ class_list.cpp \
+ class_listbox.cpp \
+ class_listview.cpp \
+ class_listviewitem.cpp \
+ class_mainwindow.cpp \
+ class_menubar.cpp \
+ class_multilineedit.cpp \
+ class_popupmenu.cpp \
+ class_process.cpp \
+ class_progressbar.cpp \
+ class_radiobutton.cpp \
+ class_slider.cpp \
+ class_socket.cpp \
+ class_spinbox.cpp \
+ class_tabwidget.cpp \
+ class_toolbar.cpp \
+ class_toolbutton.cpp \
+ class_painter.cpp \
+ class_pixmap.cpp \
+ class_tbrowser.cpp \
+ class_widget.cpp \
+ class_window.cpp \
+ class_wizard.cpp \
+ class_workspace.cpp \
+ class_wrapper.cpp \
+ class_urllabel.cpp \
+ class_xmlreader.cpp \
+ class_vbox.cpp \
+ class_hbox.cpp
+
+
+libkviobjects_la_LIBADD = $(SS_LIBLINK) ../../kvilib/build/libkvilib.la
+
+noinst_HEADERS= class_button.h \
+ class_buttongroup.h \
+ class_checkbox.h \
+ class_combobox.h \
+ class_dialog.h \
+ class_dockwindow.h \
+ class_file.h \
+ class_groupbox.h \
+ class_image.h \
+ class_label.h \
+ class_layout.h \
+ class_lcd.h \
+ class_lineedit.h \
+ class_list.h \
+ class_listbox.h \
+ class_listview.h \
+ class_listviewitem.h \
+ class_mainwindow.h \
+ class_menubar.h \
+ class_multilineedit.h \
+ class_painter.h \
+ class_pixmap.h \
+ class_popupmenu.h \
+ class_process.h \
+ class_progressbar.h \
+ class_radiobutton.h \
+ class_slider.h \
+ class_socket.h \
+ class_spinbox.h \
+ class_tabwidget.h \
+ class_tbrowser.h \
+ class_toolbar.h \
+ class_toolbutton.h \
+ class_urllabel.h \
+ class_widget.h \
+ class_window.h \
+ class_wizard.h \
+ class_workspace.h \
+ class_wrapper.h \
+ class_xmlreader.h \
+ class_vbox.h \
+ class_hbox.h \
+ object_macros.h
+
+m_%.moc: %.h
+ $(SS_QT_MOC) $< -o $@
+
+class_checkbox.cpp: m_class_checkbox.moc
+class_combobox.cpp: m_class_combobox.moc
+class_button.cpp: m_class_button.moc
+class_dialog.cpp: m_class_dialog.moc
+class_dockwindow.cpp: m_class_dockwindow.moc
+class_file.cpp: m_class_file.moc
+class_groupbox.cpp: m_class_groupbox.moc
+class_image.cpp: m_class_image.moc
+class_label.cpp: m_class_label.moc
+class_layout.cpp: m_class_layout.moc
+class_lcd.cpp: m_class_lcd.moc
+class_lineedit.cpp: m_class_lineedit.moc
+class_list.cpp: m_class_list.moc
+class_listbox.cpp: m_class_listbox.moc
+class_listview.cpp: m_class_listview.moc
+class_listviewitem.cpp: m_class_listviewitem.moc
+class_listbox.cpp: m_class_listbox.moc
+class_mainwindow.cpp: m_class_mainwindow.moc
+class_menubar.cpp: m_class_menubar.moc
+class_multilineedit.cpp: m_class_multilineedit.moc
+class_painter.cpp: m_class_painter.moc
+class_pixmap.cpp: m_class_pixmap.moc
+class_popupmenu.cpp: m_class_popupmenu.moc
+class_process.cpp: m_class_process.moc
+class_progressbar.cpp: m_class_progressbar.moc
+class_radiobutton.cpp: m_class_radiobutton.moc
+class_slider.cpp: m_class_slider.moc
+class_socket.cpp: m_class_socket.moc
+class_spinbox.cpp: m_class_spinbox.moc
+class_tabwidget.cpp: m_class_tabwidget.moc
+class_tbrowser.cpp: m_class_tbrowser.moc
+class_toolbar.cpp: m_class_toolbar.moc
+class_toolbutton.cpp: m_class_toolbutton.moc
+class_urllabel.cpp: m_class_urllabel.moc
+class_widget.cpp: m_class_widget.moc
+class_window.cpp: m_class_window.moc
+class_wizard.cpp: m_class_wizard.moc
+class_workspace.cpp: m_class_workspace.moc
+class_wrapper.cpp: m_class_wrapper.moc
+class_xmlreader.cpp: m_class_xmlreader.moc
+
diff --git a/src/modules/objects/class_buttongroup.cpp b/src/modules/objects/class_buttongroup.cpp new file mode 100644 index 000000000..72446f3fe --- /dev/null +++ b/src/modules/objects/class_buttongroup.cpp @@ -0,0 +1,79 @@ +//
+// File : class_buttongroup.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) 1999-2005 Szymon Stefanek (pragma at kvirc dot net)
+//
+// 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. ,59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+
+#include <qbuttongroup.h>
+#include "class_buttongroup.h"
+#include <qradiobutton.h>
+#include "kvi_error.h"
+#include "kvi_debug.h"
+
+#include "kvi_locale.h"
+#include "kvi_iconmanager.h"
+
+
+/*
+ @doc: buttongroup
+ @keyterms:
+ buttongroup object class,
+ @title:
+ buttongroup class
+ @type:
+ class
+ @short:
+ Provides a buttongroup bar.
+ @inherits:
+ [class]groupbox[/class]
+ [class]object[/class]
+ [class]widget[/class]
+ @description:
+ This widget organizes buttons in a group.
+ 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 function to manage the layout automatically.
+ The class ineriths groupbox.
+
+ @functions:
+
+*/
+
+KVSO_BEGIN_REGISTERCLASS(KviKvsObject_buttongroup,"buttongroup","groupbox")
+
+KVSO_END_REGISTERCLASS(KviKvsObject_buttongroup)
+
+KVSO_BEGIN_CONSTRUCTOR(KviKvsObject_buttongroup,KviKvsObject_groupbox)
+
+KVSO_END_CONSTRUCTOR(KviKvsObject_buttongroup)
+
+
+KVSO_BEGIN_DESTRUCTOR(KviKvsObject_buttongroup)
+
+KVSO_END_CONSTRUCTOR(KviKvsObject_buttongroup)
+
+bool KviKvsObject_buttongroup::init(KviKvsRunTimeContext * pContext,KviKvsVariantList *pParams)
+{
+ QButtonGroup *group=new QButtonGroup(parentScriptWidget(),name());
+ setObject(group, true);
+ return true;
+}
+
+
diff --git a/src/modules/objects/class_buttongroup.h b/src/modules/objects/class_buttongroup.h new file mode 100644 index 000000000..0a3757891 --- /dev/null +++ b/src/modules/objects/class_buttongroup.h @@ -0,0 +1,64 @@ +#ifndef _CLASS_BUTTONGROUP_H_
+#define _CLASS_BUTTONGROUP_H_
+//
+// File : class_buttongroup.h
+// Creation date : Jan 23 CEST 2007
+// by Alessandro Carbone(Noldor)
+//
+// This file is part of the KVirc irc client distribution
+// Copyright (C) 1999-2005 Szymon Stefanek (pragma at kvirc dot net)
+//
+// 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. ,59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+
+
+
+#include <qbuttongroup.h>
+#include "class_groupbox.h"
+#include "object_macros.h"
+
+class KviKvsObject_buttongroup : public KviKvsObject_groupbox
+{
+public:
+ KVSO_DECLARE_OBJECT(KviKvsObject_buttongroup)
+public:
+ QWidget * widget() { return (QWidget *)object(); };
+protected:
+ virtual bool init(KviKvsRunTimeContext * pContext,KviKvsVariantList *pParams);
+
+ /*
+ bool functionSetTitle(KviKvsObjectFunctionCall *c);
+ bool functionTitle(KviKvsObjectFunctionCall *c);
+ bool functionSetFlat(KviKvsObjectFunctionCall *c);
+ bool functionIsFlat(KviKvsObjectFunctionCall *c);
+ bool functionSetCheckable(KviKvsObjectFunctionCall *c);
+ bool functionIsCheckable(KviKvsObjectFunctionCall *c);
+ bool functionSetInsideMargin(KviKvsObjectFunctionCall *c);
+ bool functionInsideMargin(KviKvsObjectFunctionCall *c);
+ bool functionSetInsideSpacing(KviKvsObjectFunctionCall *c);
+ bool functionInsideSpacing(KviKvsObjectFunctionCall *c);
+ bool functionSetColumns(KviKvsObjectFunctionCall *c);
+ bool functionColumns(KviKvsObjectFunctionCall *c);
+ bool functionAddSpace(KviKvsObjectFunctionCall *c);
+ bool functionAlignment(KviKvsObjectFunctionCall *c);
+ bool functionSetAlignment(KviKvsObjectFunctionCall *c);
+ bool functionSetOrientation(KviKvsObjectFunctionCall *c);
+ bool functionIsChecked(KviKvsObjectFunctionCall *c);
+ bool functionSetChecked(KviKvsObjectFunctionCall *c);
+ bool functionSetColumnLayout(KviKvsObjectFunctionCall *c);
+*/
+};
+#endif //!_CLASS_GROUPBOX_H_
+
diff --git a/src/modules/objects/class_combobox.cpp b/src/modules/objects/class_combobox.cpp index 804e2e65f..f8c3d3d6b 100644 --- a/src/modules/objects/class_combobox.cpp +++ b/src/modules/objects/class_combobox.cpp @@ -285,7 +285,7 @@ bool KviKvsObject_combobox::functionsetEditText(KviKvsObjectFunctionCall *c) bool KviKvsObject_combobox::functiontextAt(KviKvsObjectFunctionCall *c) { - kvs_int_t uIndex; + kvs_uint_t uIndex; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("index",KVS_PT_UNSIGNEDINTEGER,0,uIndex) KVSO_PARAMETERS_END(c) diff --git a/src/modules/objects/class_listbox.cpp b/src/modules/objects/class_listbox.cpp index 93e25aecc..efd576acd 100644 --- a/src/modules/objects/class_listbox.cpp +++ b/src/modules/objects/class_listbox.cpp @@ -100,7 +100,9 @@ This function is called by KVIrc when the current item changes. !fn: <index:integer> $onItemEvent() This function is called by KVIrc when the current item pointed by the mouse changes and gives in $0 the item index. - + !fn: <array:x,y,width,height> $itemRect(<item:index>) + Returns the rectangle on the screen that item occupies, or an invalid rectangle if item is 0 or is not currently visible. + @signals: !sg: <string> $currentItemChange() This signal is emitted by the default implementation of [classfnc]$currentItemChangeEvent[/classfnc]().[br] diff --git a/src/modules/objects/class_listview.cpp b/src/modules/objects/class_listview.cpp index 52def7893..fde5d507b 100644 --- a/src/modules/objects/class_listview.cpp +++ b/src/modules/objects/class_listview.cpp @@ -62,7 +62,7 @@ that items can be selected by the mouse actions: experiment with the two modes :). The NoSelection mode has obviously no selection at all. @functions: - !fn: $addColumn(<text_label:string> <width:integer>) + !fn: $addColumn(<text_label:string> <width:unsigned integer>) Adds a width pixels wide column with the column header label to the list view. !fn: $setSorting(<column:integer>,<bAscending:boolean>) @@ -318,10 +318,10 @@ bool KviKvsObject_listview::function_setSelectionMode(KviKvsObjectFunctionCall * bool KviKvsObject_listview::function_setSorting(KviKvsObjectFunctionCall *c) { - kvs_int_t iCol; + kvs_uint_t iCol; bool bEnabled; KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("column",KVS_PT_INT,0,iCol) + KVSO_PARAMETER("column",KVS_PT_UNSIGNEDINTEGER,0,iCol) KVSO_PARAMETER("benabled",KVS_PT_BOOL,0,bEnabled) KVSO_PARAMETERS_END(c) if (widget()) ((QListView *)widget())->setSorting(iCol,bEnabled); diff --git a/src/modules/objects/class_listviewitem.cpp b/src/modules/objects/class_listviewitem.cpp index 62f8f1128..98a17f3e3 100644 --- a/src/modules/objects/class_listviewitem.cpp +++ b/src/modules/objects/class_listviewitem.cpp @@ -385,13 +385,13 @@ bool KviKvsObject_listviewitem::function_text(KviKvsObjectFunctionCall *c) bool KviKvsObject_listviewitem::function_setPixmap(KviKvsObjectFunctionCall *c) { - kvs_int_t uCol; + kvs_uint_t uCol; KviKvsObject *obPixmap; kvs_hobject_t obHpixmap; KviKvsVariant * vPixmap; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("column",KVS_PT_UNSIGNEDINTEGER,0,uCol) - KVSO_PARAMETER("column",KVS_PT_VARIANT,0,vPixmap) + KVSO_PARAMETER("pixmap",KVS_PT_VARIANT,0,vPixmap) KVSO_PARAMETERS_END(c) QPixmap *pix = 0; if(vPixmap->isHObject()) diff --git a/src/modules/objects/class_multilineedit.cpp b/src/modules/objects/class_multilineedit.cpp index d4fb3c534..f836980d7 100644 --- a/src/modules/objects/class_multilineedit.cpp +++ b/src/modules/objects/class_multilineedit.cpp @@ -81,20 +81,20 @@ static int mod_cod[] = { ommited, the line is put at end. !fn: $removeLine(<line:integer>) Removes line number <line>. - !fn: $insertAt(<txt:string>, <line:integer>, <col:integer>) + !fn: $insertAt(<txt:string>, <line:uinteger>, <col:uinteger>) Inserts txt at line number line, after character number col in the line. If txt contains newline characters, new lines are inserted. !fn: <integer> $numLines() Returns number of lines in the widget. - !fn: $setCursorPosition(<line:integer>, <col:integer>, <mark:boolean>) + !fn: $setCursorPosition(<line:integer>, <col:uinteger>, <mark:boolean>) Sets the cursor position to character number col in line number line. The parameters are adjusted to lie within the legal range.[br] If mark is 1, the selection is cleared. otherwise it is extended !fn: <line,col:integer> $cursorPosition() - Returns current cursor position in "<line:integer>, <col:integer>" format. + Returns current cursor position in "<line:uinteger>, <col:uinteger>" format. !fn: $setReadOnly(<bReadOnly:boolean>) Sets the editor to be read-only if bReadOnly is 1 or removes the read-only status is ReadOnly is 0 @@ -395,12 +395,12 @@ bool KviKvsObject_mledit::functionRemoveLine(KviKvsObjectFunctionCall *c) bool KviKvsObject_mledit::functionInsertAt(KviKvsObjectFunctionCall *c) { - kvs_int_t iLine,iCol; + kvs_uint_t iLine,iCol; QString szInsert; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("text",KVS_PT_STRING,0,szInsert) - KVSO_PARAMETER("line",KVS_PT_INT,0,iLine) - KVSO_PARAMETER("col",KVS_PT_INT,0,iCol) + KVSO_PARAMETER("line",KVS_PT_UNSIGNEDINTEGER,0,iLine) + KVSO_PARAMETER("col",KVS_PT_UNSIGNEDINTEGER,0,iCol) KVSO_PARAMETERS_END(c) if(!widget())return true; if(iLine < 0 || iCol < 0 || iLine > ((QMultiLineEdit *)widget())->numLines()) @@ -421,7 +421,7 @@ bool KviKvsObject_mledit::functionSetCursorPosition(KviKvsObjectFunctionCall *c) { bool bFlag; - kvs_int_t iLine,iCol; + kvs_uint_t iLine,iCol; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("line",KVS_PT_UNSIGNEDINTEGER,0,iLine) KVSO_PARAMETER("col",KVS_PT_UNSIGNEDINTEGER,0,iCol) @@ -524,7 +524,7 @@ bool KviKvsObject_mledit::functionLength(KviKvsObjectFunctionCall *c) bool KviKvsObject_mledit::functionSetMaxLines(KviKvsObjectFunctionCall *c) { - kvs_int_t imaxLines; + kvs_uint_t imaxLines; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("max_lines",KVS_PT_UNSIGNEDINTEGER,0,imaxLines) KVSO_PARAMETERS_END(c) @@ -842,12 +842,12 @@ bool KviKvsObject_mledit::functionsetColor(KviKvsObjectFunctionCall *c) bool KviKvsObject_mledit::functionsetPointSize(KviKvsObjectFunctionCall *c) { - kvs_int_t iPointSize; + kvs_uint_t uPointSize; KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("point_size",KVS_PT_UNSIGNEDINTEGER,0,iPointSize) + KVSO_PARAMETER("point_size",KVS_PT_UNSIGNEDINTEGER,0,uPointSize) KVSO_PARAMETERS_END(c) if (widget()) - ((QMultiLineEdit *)widget())->setPointSize(iPointSize); + ((QMultiLineEdit *)widget())->setPointSize(uPointSize); return true; } diff --git a/src/modules/objects/class_painter.cpp b/src/modules/objects/class_painter.cpp index e6cd4815a..5b8bc437a 100644 --- a/src/modules/objects/class_painter.cpp +++ b/src/modules/objects/class_painter.cpp @@ -516,7 +516,7 @@ bool KviKvsObject_painter::functionSetFont(KviKvsObjectFunctionCall *c) } bool KviKvsObject_painter::functionSetFontSize(KviKvsObjectFunctionCall *c) { - kvs_int_t uSize; + kvs_uint_t uSize; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("size",KVS_PT_UNSIGNEDINTEGER,0,uSize) KVSO_PARAMETERS_END(c) diff --git a/src/modules/objects/class_popupmenu.cpp b/src/modules/objects/class_popupmenu.cpp index 8ff9a2e19..ee0762ae1 100644 --- a/src/modules/objects/class_popupmenu.cpp +++ b/src/modules/objects/class_popupmenu.cpp @@ -55,20 +55,20 @@ The widget is treats as a separator; this means that the item is not selectable and you can, for example, simply insert a label if you need a popup menu with a title. !fn: $insertHandle(<text_label:string>,<popupmenu:object>,[icon]) Inserts a submenu with optional icon into the popup menu. - !fn: $exec([<widget:objects>,<x:integer>,<y:integer>]) + !fn: $exec([<widget:objects>,<x:uinteger>,<y:integer>]) If called without paramaters show the popup menu at the current pointer position.[br] With the optional parameters show the popup menu at the coordinate x,y widget parameter relative. - !fn: $removeItem(<popup_id:integer>) + !fn: $removeItem(<popup_id:Uinteger>) Removes the menu item that has the identifier id. - !fn: $removeItemAt(<index:integer>) + !fn: $removeItemAt(<index:uinteger>) Removes the menu item at position index. - !fn: $insertSeparator(<index:integer>) + !fn: $insertSeparator(<index:uinteger>) Inserts a separator at position index.[br] If the index is negative the separator becomes the last menu item. - !fn: $activatedEvent(<popup_id:integer>) + !fn: $activatedEvent(<popup_id:uinteger>) This function is called when a menu item and return the the item id.[br] The default implementation emits the [classfnc]$activated[/classfnc]() signal. - !fn: $highligthtedEvent(<popup_id:integer>) + !fn: $highligthtedEvent(<popup_id:uinteger>) This function is called when a menu item is highlighted and return the item id.[br] The default implementation emits the [classfnc]$highlighted[/classfnc]() signal. @signals: @@ -278,7 +278,7 @@ bool KviKvsObject_popupmenu::functionexec(KviKvsObjectFunctionCall *c) } KviKvsObject *pObject; - kvs_int_t iX,iY; + kvs_uint_t iX,iY; QString szLabel,szIcon; kvs_hobject_t hObject; KVSO_PARAMETERS_BEGIN(c) @@ -309,7 +309,7 @@ bool KviKvsObject_popupmenu::functionexec(KviKvsObjectFunctionCall *c) } bool KviKvsObject_popupmenu::functionremoveItem(KviKvsObjectFunctionCall *c) { - kvs_int_t uItem; + kvs_uint_t uItem; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("item_id",KVS_PT_UNSIGNEDINTEGER,0,uItem) KVSO_PARAMETERS_END(c) @@ -318,7 +318,7 @@ bool KviKvsObject_popupmenu::functionremoveItem(KviKvsObjectFunctionCall *c) } bool KviKvsObject_popupmenu::functionremoveItemAt(KviKvsObjectFunctionCall *c) { - kvs_int_t uIndex; + kvs_uint_t uIndex; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("index",KVS_PT_UNSIGNEDINTEGER,0,uIndex) KVSO_PARAMETERS_END(c) @@ -328,7 +328,7 @@ bool KviKvsObject_popupmenu::functionremoveItemAt(KviKvsObjectFunctionCall *c) bool KviKvsObject_popupmenu::functioninsertSeparator(KviKvsObjectFunctionCall *c) { - kvs_int_t uIndex; + kvs_uint_t uIndex; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("index",KVS_PT_UNSIGNEDINTEGER,0,uIndex) KVSO_PARAMETERS_END(c) diff --git a/src/modules/objects/class_progressbar.cpp b/src/modules/objects/class_progressbar.cpp index fd5c12619..cece149a7 100644 --- a/src/modules/objects/class_progressbar.cpp +++ b/src/modules/objects/class_progressbar.cpp @@ -45,10 +45,10 @@ @description: This widget can be used to display a horizontal progress bar. @functions: - !fn: $setProgress(<steps_value:integer>) + !fn: $setProgress(<steps_value:uinteger>) Set the amount of steps completed. See also [classfnc]$settotalSteps[/classfnc]() - !fn: $settotalSteps(<total_steps:integer>) + !fn: $settotalSteps(<total_steps:uinteger>) The progress bar uses the concept of steps; you give it the total number of steps and the number of steps completed so far and it will display the percentage of steps that have been completed. See also [classfnc]$setProgress[/classfnc]() @@ -95,7 +95,7 @@ bool KviKvsObject_progressbar::init(KviKvsRunTimeContext * pContext,KviKvsVarian bool KviKvsObject_progressbar::functionSetProgress(KviKvsObjectFunctionCall *c) { - kvs_int_t iProgress; + kvs_uint_t iProgress; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("step_value",KVS_PT_UNSIGNEDINTEGER,0,iProgress) KVSO_PARAMETERS_END(c) @@ -104,7 +104,7 @@ bool KviKvsObject_progressbar::functionSetProgress(KviKvsObjectFunctionCall *c) } bool KviKvsObject_progressbar::functionSetTotalSteps(KviKvsObjectFunctionCall *c) { - kvs_int_t iSteps; + kvs_uint_t iSteps; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("total_steps",KVS_PT_UNSIGNEDINTEGER,0,iSteps) KVSO_PARAMETERS_END(c) diff --git a/src/modules/objects/class_socket.cpp b/src/modules/objects/class_socket.cpp index fbabdad85..09bc0fb57 100644 --- a/src/modules/objects/class_socket.cpp +++ b/src/modules/objects/class_socket.cpp @@ -359,832 +359,6 @@ void KviScriptSocketObject::reset() [/example] */ -/* -#define REG_FH(__name,__func) \ - g_pSocketClass->registerFunctionHandler(__name,(KviScriptObjectFunctionHandlerProc)(KVI_PTR2MEMBER(KviScriptSocketObject::__func)),0,true) - - -void KviScriptSocketObject::registerSelf() -{ - KviScriptObjectClass * base = g_pScriptObjectController->lookupClass("object"); - - __range_valid(base); - g_pSocketClass = new KviScriptObjectClass(base,"socket",socketClassCreateInstance,true); - - REG_FH("status",functionStatus); - REG_FH("remotePort",functionRemotePort); - REG_FH("remoteIp",functionRemoteIp); - REG_FH("localIp",functionLocalIp); - REG_FH("localPort",functionLocalPort); - REG_FH("connect",functionConnect); - REG_FH("connectTimeout",functionConnectTimeout); - REG_FH("setConnectTimeout",functionSetConnectTimeout); - REG_FH("close",functionClose); - REG_FH("read",functionRead); - REG_FH("readHex",functionReadHex); - REG_FH("write",functionWrite); - REG_FH("writeHex",functionWriteHex); - REG_FH("listen",functionListen); - REG_FH("accept",functionAccept); - - g_pSocketClass->registerEmptyFunctionHandler("connectEvent"); - g_pSocketClass->registerEmptyFunctionHandler("connectFailedEvent"); - g_pSocketClass->registerEmptyFunctionHandler("disconnectEvent"); - g_pSocketClass->registerEmptyFunctionHandler("dataAvailableEvent"); - g_pSocketClass->registerEmptyFunctionHandler("incomingConnectionEvent"); -} - -#undef REG_FH - -void KviScriptSocketObject::unregisterSelf() -{ - delete g_pSocketClass; // this will delete all the objects of this class - g_pSocketClass = 0; -} - -bool KviScriptSocketObject::functionStatus(KviCommand *c,KviParameterList *,KviStr &buffer) -{ - buffer.append(KviStr::Format,"%d",m_iStatus); - return true; -} - -bool KviScriptSocketObject::functionClose(KviCommand *c,KviParameterList *,KviStr &buffer) -{ - if((m_pOutBuffer->size() != 0) && (m_iStatus == KVI_SCRIPT_SOCKET_STATUS_CONNECTED)) - tryFlush(); - - reset(); - return true; -} - -bool KviScriptSocketObject::functionConnectTimeout(KviCommand *c,KviParameterList *,KviStr &buffer) -{ - buffer.append(KviStr::Format,"%u",m_uConnectTimeout); - return true; -} - -bool KviScriptSocketObject::functionSetConnectTimeout(KviCommand *c,KviParameterList *params,KviStr &buffer) -{ - ENTER_STACK_FRAME(c,"socket::setConnectTimeout"); - KviStr szTimeout = params->safeFirstParam(); - bool bOk; - unsigned int uTimeout = szTimeout.toUInt(&bOk); - if(!bOk) - { - c->warning(__tr("Invalid timeout (%s)"),szTimeout.ptr()); - return c->leaveStackFrame(); - } - m_uConnectTimeout = uTimeout; - return c->leaveStackFrame(); -} - -bool KviScriptSocketObject::functionRemotePort(KviCommand *c,KviParameterList * params,KviStr &buffer) -{ - buffer.append(KviStr::Format,"%u",m_uRemotePort); - return true; -} - -bool KviScriptSocketObject::functionRemoteIp(KviCommand *c,KviParameterList * params,KviStr &buffer) -{ - buffer.append(m_szRemoteIp); - return true; -} - -bool KviScriptSocketObject::functionLocalPort(KviCommand *c,KviParameterList * params,KviStr &buffer) -{ - buffer.append(KviStr::Format,"%u",m_uLocalPort); - return true; -} - -bool KviScriptSocketObject::functionLocalIp(KviCommand *c,KviParameterList * params,KviStr &buffer) -{ - buffer.append(m_szLocalIp); - return true; -} - -bool KviScriptSocketObject::functionListen(KviCommand *c,KviParameterList * params,KviStr &buffer) -{ - ENTER_STACK_FRAME(c,"socket::listen"); - if((m_sock != KVI_INVALID_SOCKET) || (m_iStatus != KVI_SCRIPT_SOCKET_STATUS_DISCONNECTED)) - { - c->warning(__tr("Another connection in progress")); - buffer.append('0'); - return c->leaveStackFrame(); - } - - KviStr szPort = *(params->safeFirst()); - if(szPort.hasData()) - { - bool bOk; - m_uLocalPort = szPort.toUShort(&bOk); - if(!bOk) - { - c->warning(__tr("Invalid port specified: the kernel will choose one")); - m_uLocalPort = 0; - } - } else m_uLocalPort = 0; - - KviStr m_szLocalIp = *(params->safeNext()); - - params->safeNext(); - m_bIpV6 = params->getBool(); - -#ifndef COMPILE_IPV6_SUPPORT - if(m_bIpV6) - { - c->warning(__tr("No IPV6 support in this executable")); - buffer.append('0'); - reset(); - return c->leaveStackFrame(); - } -#endif - - bool bGotIp = false; - - if(m_szLocalIp.hasData()) - { - // Check the address type - if(kvi_isValidStringIp(m_szLocalIp.ptr()))bGotIp = true; - else { -#ifdef COMPILE_IPV6_SUPPORT - if(kvi_isValidStringIp_V6(m_szLocalIp.ptr())) - { - bGotIp = true; - m_bIpV6 = true; - } else { -#else - c->warning(__tr("Invalid IP address specified (%s)"),m_szLocalIp.ptr()); - buffer.append('0'); - reset(); - return c->leaveStackFrame(); -#endif -#ifdef COMPILE_IPV6_SUPPORT - } -#endif - } - } - - -#ifdef COMPILE_IPV6_SUPPORT - m_sock = kvi_socket_create(m_bIpV6 ? KVI_SOCKET_PF_INET6 : KVI_SOCKET_PF_INET, - KVI_SOCKET_TYPE_STREAM,KVI_SOCKET_PROTO_TCP); -#else - m_sock = kvi_socket_create(KVI_SOCKET_PF_INET,KVI_SOCKET_TYPE_STREAM,KVI_SOCKET_PROTO_TCP); -#endif - - if(m_sock == KVI_INVALID_SOCKET) - { - c->warning(__tr("Socket creation failed")); - buffer.append('0'); - reset(); - return c->leaveStackFrame(); - } - - if(m_szLocalIp.hasData()) - { -#ifdef COMPILE_IPV6_SUPPORT - KviSockaddr sa(m_szLocalIp.ptr(),m_uLocalPort,m_bIpV6); -#else - KviSockaddr sa(m_szLocalIp.ptr(),m_uLocalPort,false); -#endif - if(!sa.socketAddress()) - { - c->warning(__tr("Invalid socket address")); - reset(); - buffer.append('0'); - return c->leaveStackFrame(); - } - - if(!kvi_socket_bind(m_sock,sa.socketAddress(),((int)(sa.addressLength())))) - { - c->warning(__tr("Bind failure")); - reset(); - buffer.append('0'); - return c->leaveStackFrame(); - } - } else { -#ifdef COMPILE_IPV6_SUPPORT - KviSockaddr sa(m_uLocalPort,m_bIpV6); -#else - KviSockaddr sa(m_uLocalPort,false); -#endif - if(!sa.socketAddress()) - { - c->warning(__tr("Invalid socket address")); - reset(); - buffer.append('0'); - return c->leaveStackFrame(); - } - - if(!kvi_socket_bind(m_sock,sa.socketAddress(),((int)(sa.addressLength())))) - { - c->warning(__tr("Bind failure")); - reset(); - buffer.append('0'); - return c->leaveStackFrame(); - } - } - - - if(!kvi_socket_listen(m_sock,5)) - { - c->warning(__tr("Listen failure")); - reset(); - buffer.append('0'); - return c->leaveStackFrame(); - } - - - // Reread the port in case we're binding to a random one (0) - -#ifdef COMPILE_IPV6_SUPPORT - KviSockaddr sareal(0,m_bIpV6); -#else - KviSockaddr sareal(0,false); -#endif - - int size = (int)sareal.addressLength(); - - if(kvi_socket_getsockname(m_sock,sareal.socketAddress(),&size)) - { - m_uLocalPort = sareal.port(); - sareal.getStringAddress(m_szLocalIp); - } - - // and setup the READ notifier... - m_pSn = new QSocketNotifier(m_sock,QSocketNotifier::Read); - QObject::connect(m_pSn,SIGNAL(activated(int)),this,SLOT(incomingConnection(int))); - m_pSn->setEnabled(true); - - m_iStatus = KVI_SCRIPT_SOCKET_STATUS_LISTENING; - - buffer.append('1'); - - return c->leaveStackFrame(); -} - -void KviScriptSocketObject::incomingConnection(int) -{ -#ifdef COMPILE_IPV6_SUPPORT - struct sockaddr_in6 hostSockAddr6; -#endif - struct sockaddr_in hostSockAddr; - - int size = sizeof(hostSockAddr); - struct sockaddr * addr = (struct sockaddr *)&hostSockAddr; - -#ifdef COMPILE_IPV6_SUPPORT - if(m_bIpV6) - { - addr = (struct sockaddr *)&hostSockAddr6; - size = sizeof(hostSockAddr6); - } -#endif - - // Incoming connection - m_secondarySock = kvi_socket_accept(m_sock,addr,&size); - if(m_secondarySock != KVI_INVALID_SOCKET) - { - // Connected -#ifdef COMPILE_IPV6_SUPPORT - if(m_bIpV6) - { - m_uSecondaryPort = ntohs(((struct sockaddr_in6 *)addr)->sin6_port); - if(!kvi_binaryIpToStringIp_V6(((struct sockaddr_in6 *)addr)->sin6_addr,m_szSecondaryIp)) - m_szSecondaryIp = __tr("unknown"); - } else { -#endif - m_uSecondaryPort = ntohs(((struct sockaddr_in *)addr)->sin_port); - if(!kvi_binaryIpToStringIp(((struct sockaddr_in *)addr)->sin_addr,m_szSecondaryIp)) - m_szSecondaryIp = __tr("unknown"); -#ifdef COMPILE_IPV6_SUPPORT - } -#endif - callEventFunction("incomingConnectionEvent",0,0); - if(m_secondarySock != KVI_INVALID_SOCKET) - { - kvi_socket_close(m_secondarySock); - m_secondarySock = KVI_INVALID_SOCKET; - m_uSecondaryPort = 0; - m_szSecondaryIp.clear(); - } - - } // else..huh ?... wait for the next notifier call -} - -void KviScriptSocketObject::acceptConnection(kvi_socket_t s,unsigned short int uPort,const char * szIp) -{ - reset(); - m_sock = s; - m_uRemotePort = uPort; - m_szRemoteIp = szIp; -#ifdef COMPILE_IPV6_SUPPORT - KviSockaddr sareal(0,m_bIpV6); -#else - KviSockaddr sareal(0,false); -#endif - - int size = (int)sareal.addressLength(); - - if(kvi_socket_getsockname(m_sock,sareal.socketAddress(),&size)) - { - m_uLocalPort = sareal.port(); - sareal.getStringAddress(m_szLocalIp); - } - - m_iStatus = KVI_SCRIPT_SOCKET_STATUS_CONNECTED; - - m_pSn = new QSocketNotifier((int)m_sock,QSocketNotifier::Read); - QObject::connect(m_pSn,SIGNAL(activated(int)),this,SLOT(readNotifierFired(int))); - m_pSn->setEnabled(true); -} - - -bool KviScriptSocketObject::functionAccept(KviCommand *c,KviParameterList * params,KviStr &buffer) -{ - ENTER_STACK_FRAME(c,"socket::accept"); - - KviScriptObject * ob = g_pScriptObjectController->lookupObject(params->safeFirstParam()); - - if(!ob) - { - c->warning(__tr("No socket object specified")); - return c->leaveStackFrame(); - } - - if(!ob->inherits("KviScriptSocketObject")) - { - c->warning(__tr("Invalid socket object specified (it doesn't inherit from socket)")); - return c->leaveStackFrame(); - } - - if(m_secondarySock != KVI_INVALID_SOCKET) - { - ((KviScriptSocketObject *)ob)->acceptConnection(m_secondarySock,m_uSecondaryPort,m_szSecondaryIp.ptr()); - - m_secondarySock = KVI_INVALID_SOCKET; - m_uSecondaryPort = 0; - m_szSecondaryIp.clear(); - } else { - c->warning(__tr("There is no connection to accept!")); - } - return c->leaveStackFrame(); -} - -bool KviScriptSocketObject::functionConnect(KviCommand *c,KviParameterList * params,KviStr &buffer) -{ - ENTER_STACK_FRAME(c,"socket::connect"); - if((m_sock != KVI_INVALID_SOCKET) || (m_iStatus != KVI_SCRIPT_SOCKET_STATUS_DISCONNECTED)) - { - c->warning(__tr("Another connection in progress")); - buffer.append("0"); - return c->leaveStackFrame(); - } - - m_szRemoteIp = params->safeFirstParam(); - KviStr szRemotePort = params->safeNextParam(); - bool bOk; - m_uRemotePort = szRemotePort.toUShort(&bOk); - if(!bOk) - { - c->warning(__tr("Invalid port (%s)"),szRemotePort.ptr()); - buffer.append('0'); - return c->leaveStackFrame(); - } - -#ifdef COMPILE_IPV6_SUPPORT - if(kvi_isValidStringIp(m_szRemoteIp.ptr()) || kvi_isValidStringIp_V6(m_szRemoteIp.ptr())) -#else - if(kvi_isValidStringIp(m_szRemoteIp.ptr())) -#endif - { - m_iStatus = KVI_SCRIPT_SOCKET_STATUS_CONNECTING; - delayedConnect(); - } else { - m_iStatus = KVI_SCRIPT_SOCKET_STATUS_DNS; - delayedLookupRemoteIp(); - } - buffer.append('1'); - return c->leaveStackFrame(); -} - -void KviScriptSocketObject::delayedConnect() -{ - if(m_pDelayTimer)delete m_pDelayTimer; - m_pDelayTimer = new QTimer(); - connect(m_pDelayTimer,SIGNAL(timeout()),this,SLOT(doConnect())); - m_pDelayTimer->start(0,true); -} - -void KviScriptSocketObject::doConnect() -{ - if(m_pDelayTimer)delete m_pDelayTimer; - m_pDelayTimer = 0; - - - KviSockaddr sa(m_szRemoteIp.ptr(),m_uRemotePort,!kvi_isValidStringIp(m_szRemoteIp.ptr())); - - if(!sa.socketAddress()) - { - unsigned int uOldConnectionId = m_uConnectionId; - callEventFunction("connectFailedEvent",0,new KviParameterList( - new KviStr(KviStr::Format,__tr("Invalid ip address (%s)"),m_szRemoteIp.ptr()))); - if(m_uConnectionId == uOldConnectionId)reset(); - // else it has already been called! - return; - } - - - // create the socket -#ifdef COMPILE_IPV6_SUPPORT - m_bIpV6 = sa.isIpV6(); - m_sock = kvi_socket_create(sa.isIpV6() ? KVI_SOCKET_PF_INET6 : KVI_SOCKET_PF_INET,KVI_SOCKET_TYPE_STREAM,KVI_SOCKET_PROTO_TCP); -#else - m_bIpV6 = false; - m_sock = kvi_socket_create(KVI_SOCKET_PF_INET,KVI_SOCKET_TYPE_STREAM,KVI_SOCKET_PROTO_TCP); -#endif - - if(m_sock == KVI_INVALID_SOCKET) - { - unsigned int uOldConnectionId = m_uConnectionId; - callEventFunction("connectFailedEvent",0,new KviParameterList( - new KviStr(__tr("Failed to create the socket")))); - if(m_uConnectionId == uOldConnectionId)reset(); - // else it has already been called! - return; - } - - if(!kvi_socket_setNonBlocking(m_sock)) - { - unsigned int uOldConnectionId = m_uConnectionId; - callEventFunction("connectFailedEvent",0,new KviParameterList( - new KviStr(__tr("Failed to setup a nonblocking socket")))); - if(m_uConnectionId == uOldConnectionId)reset(); - // else it has already been called! - return; - } - - if(!kvi_socket_connect(m_sock,sa.socketAddress(),((int)(sa.addressLength())))) - { - int err = kvi_socket_error(); - if(!kvi_socket_recoverableConnectError(err)) - { - // Ops... - int sockError=err; - if(sockError==0) - { - // Zero error ?...let's look closer - int iSize=sizeof(int); - if(!kvi_socket_getsockopt(m_sock,SOL_SOCKET,SO_ERROR, - (void *)&sockError,&iSize))sockError=0; - } - unsigned int uOldConnectionId = m_uConnectionId; - callEventFunction("connectFailedEvent",0,new KviParameterList( - new KviStr(KviStr::Format,__tr("Connect failure: %s"),KviError::getDescription(KviError::translateSystemError(sockError)).utf8().data()))); - if(m_uConnectionId == uOldConnectionId)reset(); - // else it has already been called! - return; - } - } - - m_pDelayTimer = new QTimer(); - connect(m_pDelayTimer,SIGNAL(timeout()),this,SLOT(connectTimeout())); - m_pDelayTimer->start(m_uConnectTimeout,true); - - m_pSn = new QSocketNotifier((int)m_sock,QSocketNotifier::Write); - QObject::connect(m_pSn,SIGNAL(activated(int)),this,SLOT(writeNotifierFired(int))); - m_pSn->setEnabled(true); -} - -void KviScriptSocketObject::connectTimeout() -{ - unsigned int uOldConnectionId = m_uConnectionId; - callEventFunction("connectFailedEvent",0,new KviParameterList( - new KviStr(__tr("Connect attempt timed out")))); - if(m_uConnectionId == uOldConnectionId)reset(); - // else it has already been called! -} -/* -void KviScriptSocketObject::delayedLookupRemoteIp() -{ - if(m_pDelayTimer)delete m_pDelayTimer; - m_pDelayTimer = new QTimer(); - connect(m_pDelayTimer,SIGNAL(timeout()),this,SLOT(lookupRemoteIp())); - m_pDelayTimer->start(0,true); -} - -void KviScriptSocketObject::lookupRemoteIp() -{ - if(m_pDelayTimer)delete m_pDelayTimer; - m_pDelayTimer = 0; - if(m_pDns)delete m_pDns; - m_pDns = new KviDns(); - connect(m_pDns,SIGNAL(lookupDone(KviDns *)),this,SLOT(lookupDone(KviDns *))); - if(!m_pDns->lookup(m_szRemoteIp.ptr(),KviDns::Any)) - { - unsigned int uOldConnectionId = m_uConnectionId; - callEventFunction("connectFailedEvent",0,new KviParameterList( - new KviStr(__tr("Can't start the DNS thread")))); - if(m_uConnectionId == uOldConnectionId)reset(); - // else it has already been called! - } -} - -void KviScriptSocketObject::lookupDone(KviDns *pDns) -{ - if(pDns->state() != KviDns::Success) - { - unsigned int uOldConnectionId = m_uConnectionId; - callEventFunction("connectFailedEvent",0,new KviParameterList( - new KviStr(KviError::getDescription(pDns->error())))); - if(m_uConnectionId == uOldConnectionId)reset(); - // else it has already been called! - return; - } - m_szRemoteIp = pDns->firstIpAddress(); - delete m_pDns; - m_pDns = 0; - doConnect(); -} - -void KviScriptSocketObject::writeNotifierFired(int) -{ - if(m_pSn) - { - delete m_pSn; - m_pSn = 0; - } - if(m_pDelayTimer) - { - delete m_pDelayTimer; - m_pDelayTimer = 0; - } - - // Check for errors... - int sockError; - int iSize=sizeof(int); - if(!kvi_socket_getsockopt(m_sock,SOL_SOCKET,SO_ERROR,(void *)&sockError,&iSize))sockError = -1; - //sockError = 0; - if(sockError != 0) - { - //debug("Failed here %d",sockError); - //failed - if(sockError > 0)sockError = KviError::translateSystemError(sockError); - else sockError = KviError_unknownError; //Error 0 ? - unsigned int uOldConnectionId = m_uConnectionId; - callEventFunction("connectFailedEvent",0,new KviParameterList( - new KviStr(KviError::getDescription(sockError)))); - if(m_uConnectionId == uOldConnectionId)reset(); - // else it has already been called! - } else { - // Succesfully connected - // create the correct read notifier now... - m_pSn = new QSocketNotifier((int)m_sock,QSocketNotifier::Read); - QObject::connect(m_pSn,SIGNAL(activated(int)),this,SLOT(readNotifierFired(int))); - m_pSn->setEnabled(true); - -#ifdef COMPILE_IPV6_SUPPORT - KviSockaddr sareal(0,m_bIpV6); -#else - KviSockaddr sareal(0,false); -#endif - int size = (int)sareal.addressLength(); - if(kvi_socket_getsockname(m_sock,sareal.socketAddress(),&size)) - { - m_uLocalPort = sareal.port(); - sareal.getStringAddress(m_szLocalIp); - } - unsigned int uOldConnectionId = m_uConnectionId; - callEventFunction("connectEvent",0,0); - if(m_uConnectionId == uOldConnectionId) - m_iStatus = KVI_SCRIPT_SOCKET_STATUS_CONNECTED; - // else the connection has been already changed! - } -} - -void KviScriptSocketObject::readNotifierFired(int) -{ - //read data - if((m_uInBufferLen - m_uInDataLen) < KVI_READ_CHUNK) - { - m_uInBufferLen += KVI_IN_BUFFER_ALLOC_CHUNK; - m_pInBuffer = (char *)kvi_realloc(m_pInBuffer,m_uInBufferLen); - } - - int readLength = kvi_socket_recv(m_sock,m_pInBuffer + m_uInDataLen,KVI_READ_CHUNK); - - if(readLength <= 0) - { - if(readLength==0) - { - unsigned int uOldConnectionId = m_uConnectionId; - callEventFunction("disconnectEvent",0,0); - if(m_uConnectionId == uOldConnectionId)reset(); - // else it has already been called! - return; - } else { - //check for transmission errors - int err = kvi_socket_error(); -#ifdef COMPILE_ON_WINDOWS - if((err != EAGAIN) && (err != EINTR) && (err != WSAEWOULDBLOCK)) -#else - if((err != EAGAIN) && (err != EINTR)) -#endif - { - unsigned int uOldConnectionId = m_uConnectionId; - if(err > 0) - { - callEventFunction("disconnectEvent",0,new KviParameterList( - new KviStr(KviError::getDescription(KviError::translateSystemError(err))))); - } else { - callEventFunction("disconnectEvent",0,new KviParameterList( - new KviStr(KviError::getDescription(KviError_remoteEndClosedConnection)))); - } - if(m_uConnectionId == uOldConnectionId)reset(); - // else it has already been called! - return; - } //else transient error...wait again... - } - return; // can do nothing - } - // readLength > 0 - m_uInDataLen += readLength; - - KviStr * s = new KviStr(); - s->setNum(m_uInDataLen); - - - unsigned int uOldConnectionId = m_uConnectionId; - callEventFunction("dataAvailableEvent",0,new KviParameterList(s)); - if(m_uConnectionId == uOldConnectionId) - { - if(m_uInDataLen > (4096 * 1024)) // too much data in buffer (not reading) - { - callEventFunction("disconnectEvent",0,new KviParameterList( - new KviStr(__tr("Too much unprocessed incoming data (you've left this socket unmanaged ?)")))); - reset(); - } - } -} - -void KviScriptSocketObject::eatInData(unsigned int uLen) -{ - if(uLen > m_uInDataLen)uLen = m_uInDataLen; - - m_uInDataLen -= uLen; - - if(m_uInDataLen > 0) - { - kvi_memmove(m_pInBuffer,m_pInBuffer + uLen,m_uInDataLen); - } - - unsigned int uSpace = m_uInBufferLen - m_uInDataLen; - - if(uSpace > KVI_IN_BUFFER_ALLOC_CHUNK) - { - m_uInBufferLen -= KVI_IN_BUFFER_ALLOC_CHUNK; - m_pInBuffer = (char *)kvi_realloc(m_pInBuffer,m_uInBufferLen); - } -} - -unsigned int KviScriptSocketObject::readGetLength(KviParameterList * params) -{ - KviStr * pszLen = params->safeFirst(); - unsigned int uLen = m_uInDataLen; - if(pszLen) - { - bool bOk; - uLen = pszLen->toInt(&bOk); - if(!bOk)uLen = m_uInDataLen; - } - - if(uLen > m_uInDataLen)uLen = m_uInDataLen; - return uLen; -} - -bool KviScriptSocketObject::functionRead(KviCommand *c,KviParameterList * params,KviStr &buffer) -{ - unsigned int uLen = readGetLength(params); - - if(uLen > 0) - { - // convert NULLS to char 255 - for(unsigned int i = 0;i < uLen;i++) - { - if(!m_pInBuffer[i])m_pInBuffer[i] = (char)(255); - } - - buffer.append(m_pInBuffer,uLen); - - eatInData(uLen); - } - return true; -} - -bool KviScriptSocketObject::functionReadHex(KviCommand *c,KviParameterList * params,KviStr &buffer) -{ - unsigned int uLen = readGetLength(params); - - if(uLen > 0) - { - KviStr szTmp; - szTmp.bufferToHex(m_pInBuffer,uLen); - buffer.append(szTmp); - eatInData(uLen); - } - return true; -} - -bool KviScriptSocketObject::functionWrite(KviCommand *c,KviParameterList * params,KviStr &buffer) -{ - KviStr * pszData = params->safeFirst(); - - if(pszData) - { - if(pszData->len() > 0) - { - m_pOutBuffer->append((const unsigned char *)(pszData->ptr()),pszData->len()); - delayedFlush(0); - } - } - return true; -} - -bool KviScriptSocketObject::functionWriteHex(KviCommand *c,KviParameterList * params,KviStr &buffer) -{ - KviStr * pszData = params->safeFirst(); - int len = 0; - if(pszData) - { - if(pszData->len() > 0) - { - char * ptr; - len = pszData->hexToBuffer(&ptr); - if(len > 0) - { - m_pOutBuffer->append((const unsigned char *)(ptr),len); - delayedFlush(0); - KviStr::freeBuffer(ptr); - } - } - } - buffer.append(KviStr::Format,"%d",len); - return true; -} - -void KviScriptSocketObject::delayedFlush(unsigned int uTimeout) -{ - if(m_pFlushTimer->isActive())m_pFlushTimer->stop(); - m_pFlushTimer->start(uTimeout); -} - -void KviScriptSocketObject::tryFlush() -{ - if(m_pFlushTimer->isActive())m_pFlushTimer->stop(); - - if(m_pOutBuffer->size() == 0) - { - return; - } - - int result = kvi_socket_send(m_sock,m_pOutBuffer->data(),m_pOutBuffer->size()); - - if(result >= 0) - { - if(result == m_pOutBuffer->size()) - { - m_pOutBuffer->clear(); - } else { - if(result > 0)m_pOutBuffer->remove(result); - delayedFlush(500); - } - } else { - // Oops...error ? - int err = kvi_socket_error(); -#ifdef COMPILE_ON_WINDOWS - if((err == EAGAIN) || (err == EINTR) || (err = WSAEWOULDBLOCK)) -#else - if((err == EAGAIN)||(err == EINTR)) -#endif - { - // Transient error...partial send as before... - // Async continue... - delayedFlush(500); - return; - } else { - // Disconnected... :( - unsigned int uOldConnectionId = m_uConnectionId; - callEventFunction("disconnectEvent",0,new KviParameterList( - new KviStr(KviError::getDescription(KviError::translateSystemError(err))))); - if(m_uConnectionId == uOldConnectionId)reset(); - // else it has already been called! - return; - } - } -} - -*/ -//=========================================================================== KVSO_BEGIN_REGISTERCLASS(KviKvsObject_socket,"socket","object") KVSO_REGISTER_HANDLER(KviKvsObject_socket,"status",functionStatus) @@ -1273,7 +447,7 @@ bool KviKvsObject_socket::functionConnectTimeout(KviKvsObjectFunctionCall *c) bool KviKvsObject_socket::functionSetConnectTimeout(KviKvsObjectFunctionCall *c) { - kvs_int_t uTimeout; + kvs_uint_t uTimeout; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("time_out",KVS_PT_UNSIGNEDINTEGER,0,uTimeout) KVSO_PARAMETERS_END(c) @@ -1305,12 +479,6 @@ bool KviKvsObject_socket::functionLocalIp(KviKvsObjectFunctionCall *c) return true; } - - - - - - bool KviKvsObject_socket::functionAccept(KviKvsObjectFunctionCall *c) { KviKvsObject * pObject; @@ -1349,8 +517,6 @@ bool KviKvsObject_socket::functionAccept(KviKvsObjectFunctionCall *c) - - bool KviKvsObject_socket::functionWriteHex(KviKvsObjectFunctionCall *c) { QString m_szHex; @@ -1398,7 +564,6 @@ bool KviKvsObject_socket::functionWriteHex(KviKvsObjectFunctionCall *c) bool KviKvsObject_socket::functionConnect(KviKvsObjectFunctionCall *c) { - KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("remote_ip",KVS_PT_STRING,0,m_szRemoteIp) KVSO_PARAMETER("remote_port",KVS_PT_UNSIGNEDINTEGER,0,m_uRemotePort) @@ -1452,7 +617,7 @@ bool KviKvsObject_socket::functionListen(KviKvsObjectFunctionCall *c) c->returnValue()->setBoolean(false); return true; } - kvs_int_t uLocalPort; + kvs_uint_t uLocalPort; QString m_szLocalIp; bool m_bIpV6; KVSO_PARAMETERS_BEGIN(c) diff --git a/src/modules/objects/class_tabwidget.cpp b/src/modules/objects/class_tabwidget.cpp index 7ddaf4fbf..351fa7045 100644 --- a/src/modules/objects/class_tabwidget.cpp +++ b/src/modules/objects/class_tabwidget.cpp @@ -48,7 +48,7 @@ @functions: !fn: $addTab(<widget:object>,<text_label:string>,[<icon_id>]) Adds another page to the tab view with the text label and optional icon. - !fn: $insertTab(<widget:object>,<tex_label:string>,<index:integer>) + !fn: $insertTab(<widget:object>,<tex_label:string>,<index:uinteger>) Inserts another tab and page to the tab view with name and label-text specified.[br] If index is not specified, the tab is simply appended.[br] Otherwise the new tab is inserted at the specified position. @@ -60,16 +60,16 @@ Sets the tab label for <tab_widget> to label. !fn: $changeTab(<tab_widget:object>,<label:text>,[<icon_id>]) Defines a new label, and optional icon, for the tab . - !fn: $setCurrentPage(<index:integer>) + !fn: $setCurrentPage(<index:uinteger>) Sets the index position of the current tab page to <index>. !fn: <integer> $currentPageIndex() Returns the current page index. - !fn: <string> $label(<index:integer>) + !fn: <string> $label(<index:uinteger>) Retunrs the label to the <index>. !fn: <string> $currentTabLabel() Returns the label of the current tab. !fn: $setMargin(<margin:integer>) - Sets the margin in this tab widget to <number int>. + Sets the margin in this tab widget to <margin>. !fn: <integer> $margin() Returns the margin in this tab widget. !fn: $removePage(<tab_widget:object>) @@ -224,7 +224,7 @@ bool KviKvsObject_tabwidget::functioninsertTab(KviKvsObjectFunctionCall *c) { KviKvsObject *ob; QString szLabel,szIcon; - kvs_int_t uIndex; + kvs_uint_t uIndex; kvs_hobject_t hObject; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("tab_widget",KVS_PT_HOBJECT,0,hObject) @@ -257,11 +257,11 @@ bool KviKvsObject_tabwidget::functioninsertTab(KviKvsObjectFunctionCall *c) bool KviKvsObject_tabwidget::functionsetCurrentPage(KviKvsObjectFunctionCall *c) { - kvs_int_t iIndex; + kvs_uint_t uIndex; KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("index",KVS_PT_INT,0,iIndex) + KVSO_PARAMETER("index",KVS_PT_UNSIGNEDINTEGER,0,uIndex) KVSO_PARAMETERS_END(c) - if (widget()) ((QTabWidget *)widget())->setCurrentPage(iIndex); + if (widget()) ((QTabWidget *)widget())->setCurrentPage(uIndex); return true; } bool KviKvsObject_tabwidget::functionsetTabToolTip(KviKvsObjectFunctionCall *c) @@ -375,22 +375,22 @@ bool KviKvsObject_tabwidget::functioncurrentPageIndex(KviKvsObjectFunctionCall * } bool KviKvsObject_tabwidget::functiontabLabel(KviKvsObjectFunctionCall *c) { - kvs_int_t iIndex; + kvs_uint_t uIndex; KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("index",KVS_PT_INT,0,iIndex) + KVSO_PARAMETER("index",KVS_PT_INT,0,uIndex) KVSO_PARAMETERS_END(c) if (!widget()) return true; - QString label=((QTabWidget *)widget())->label(iIndex); + QString label=((QTabWidget *)widget())->label(uIndex); c->returnValue()->setString(label); return true; } bool KviKvsObject_tabwidget::functionsetMargin(KviKvsObjectFunctionCall *c) { - kvs_int_t uMargin; + kvs_int_t iMargin; KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("margin",KVS_PT_UNSIGNEDINTEGER,0,uMargin) + KVSO_PARAMETER("margin",KVS_PT_INT,0,iMargin) KVSO_PARAMETERS_END(c) - if (widget()) ((QTabWidget *)widget())->setMargin(uMargin); + if (widget()) ((QTabWidget *)widget())->setMargin(iMargin); return true; } bool KviKvsObject_tabwidget::functionmargin(KviKvsObjectFunctionCall *c) diff --git a/src/modules/objects/class_urllabel.cpp b/src/modules/objects/class_urllabel.cpp index 454b1ab6e..f37d76e20 100644 --- a/src/modules/objects/class_urllabel.cpp +++ b/src/modules/objects/class_urllabel.cpp @@ -157,137 +157,7 @@ bool KviScriptUrlLabelObject::eventFilter(QObject * o, QEvent * e) Returns true if the label reacts on single clicks, false if it reacts only on double clicks. */ -/* -#define urlLabelFuncReg(__nam, __func) \ - g_pUrlLabelClass->registerFunctionHandler(__nam, \ - (KviScriptObjectFunctionHandlerProc)(KVI_PTR2MEMBER(KviScriptUrlLabelObject::__func)),\ - 0, true); - -void KviScriptUrlLabelObject::registerSelf() -{ - KviScriptObjectClass * base = g_pScriptObjectController-> \ - lookupClass("label"); - __range_valid(base); - - g_pUrlLabelClass = new KviScriptObjectClass(base, "urllabel", - urlLabelClassCreateInstance, true); - - urlLabelFuncReg("setUrl", functionSetUrl); - urlLabelFuncReg("url", functionUrl); - urlLabelFuncReg("setAction", functionSetAction); - urlLabelFuncReg("action", functionAction); - urlLabelFuncReg("setText", functionSetText); - urlLabelFuncReg("setCursorChange", functionSetCursorChange); - urlLabelFuncReg("cursorChange", functionCursorChange); - urlLabelFuncReg("setUseSingleClick", functionSetUseSingleClick); - urlLabelFuncReg("useSingleClick", functionUseSingleClick); -} - -void KviScriptUrlLabelObject::unregisterSelf() -{ - delete g_pUrlLabelClass; - g_pUrlLabelClass = 0; -} - -bool KviScriptUrlLabelObject::functionSetUrl(KviCommand * c, KviParameterList * p, \ - KviStr & b) -{ - if(!widget()) - return true; - - ENTER_STACK_FRAME(c, "urllabel::setUrl"); - - KviStr * url = p->first(); - if(url->isEmpty()) - return c->error(KviError_notEnoughParameters); - - m_url = url->ptr(); - return c->leaveStackFrame(); -} - -bool KviScriptUrlLabelObject::functionUrl(KviCommand * c, KviParameterList * p, \ - KviStr & b) -{ - b.append(m_url); - return true; -} - -bool KviScriptUrlLabelObject::functionSetAction(KviCommand * c, KviParameterList * p,\ - KviStr & b) -{ - if(!widget()) - return true; - - ENTER_STACK_FRAME(c, "urllabel::setAction"); - - KviStr * act = p->first(); - if(act->isEmpty()) - return c->error(KviError_notEnoughParameters); - - m_action = act->ptr(); - return c->leaveStackFrame(); -} - -bool KviScriptUrlLabelObject::functionAction(KviCommand * c, KviParameterList * p, - KviStr & b) -{ - b.append(m_action); - return true; -} - -bool KviScriptUrlLabelObject::functionSetText(KviCommand * c, KviParameterList * p, \ - KviStr & b) -{ - if(widget()) - { - if(p->first()) - ((QLabel *)widget())->setText(p->first()->ptr()); - else - ((QLabel *)widget())->setText("[!-NULL-!]"); - } - - ((QLabel *)widget())->setFixedSize(((QLabel *)widget())->sizeHint()); - - return true; -} - -bool KviScriptUrlLabelObject::functionSetCursorChange(KviCommand * c, \ - KviParameterList *p, KviStr & b) -{ - if(!widget()) - return true; - - if(m_changeCursor = p->getBool()) - widget()->setCursor(Qt::pointingHandCursor); - else - widget()->setCursor(Qt::arrowCursor); - - return true; -} - -bool KviScriptUrlLabelObject::functionCursorChange(KviCommand * c, \ - KviParameterList * p, KviStr & b) -{ - b.append((m_changeCursor ? '1' : '0')); - return true; -} - -bool KviScriptUrlLabelObject::functionSetUseSingleClick(KviCommand * c, \ - KviParameterList * p, KviStr & b) -{ - m_useSingleClick = p->getBool(); - return true; -} - -bool KviScriptUrlLabelObject::functionUseSingleClick(KviCommand * c, \ - KviParameterList * p, KviStr & b) -{ - b.append((m_useSingleClick ? '1' : '0')); - return true; -} -*/ -// ======================================================================== KVSO_BEGIN_REGISTERCLASS(KviKvsObject_urlabel,"urlabel","label") KVSO_REGISTER_HANDLER(KviKvsObject_urlabel,"setUrl",functionsetUrl) diff --git a/src/modules/objects/class_vbox.cpp b/src/modules/objects/class_vbox.cpp index 7a16f256b..d87a24c5c 100644 --- a/src/modules/objects/class_vbox.cpp +++ b/src/modules/objects/class_vbox.cpp @@ -41,9 +41,9 @@ @description: The vbox class widget provides vertical geometry management for its child widgets. @functions: - !fn: $setSpacing(<spacing:uint>) + !fn: $setSpacing(<spacing:int>) Sets the default spacing of the widgets in pixels - !fn: $setMargin(<margin:uint>) + !fn: $setMargin(<margin:int>) Sets the dimension of the layout margin : the distance from the border to the outermost child widget edges. !fn: $setStretchFactor(<widget:hobject>,<stretch:uint>) Sets the stretch factor of widget to stretch. @@ -73,21 +73,21 @@ bool KviKvsObject_vbox::init(KviKvsRunTimeContext * pContext,KviKvsVariantList * bool KviKvsObject_vbox::functionsetMargin(KviKvsObjectFunctionCall *c) { - kvs_uint_t uMargin; + kvs_int_t iMargin; KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("margin",KVS_PT_UNSIGNEDINTEGER,0,uMargin) + KVSO_PARAMETER("margin",KVS_PT_INT,0,iMargin) KVSO_PARAMETERS_END(c) - if (widget()) ((QVBox *)widget())->setMargin(uMargin); + if (widget()) ((QVBox *)widget())->setMargin(iMargin); return true; } bool KviKvsObject_vbox::functionsetSpacing(KviKvsObjectFunctionCall *c) { - kvs_uint_t uSpacing; + kvs_int_t iSpacing; KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("spacing",KVS_PT_UNSIGNEDINTEGER,0,uSpacing) + KVSO_PARAMETER("spacing",KVS_PT_INT,0,iSpacing) KVSO_PARAMETERS_END(c) - if (widget()) ((QVBox *)widget())->setSpacing(uSpacing); + if (widget()) ((QVBox *)widget())->setSpacing(iSpacing); return true; } diff --git a/src/modules/objects/class_widget.cpp b/src/modules/objects/class_widget.cpp index 856006cce..c20de62dc 100644 --- a/src/modules/objects/class_widget.cpp +++ b/src/modules/objects/class_widget.cpp @@ -392,7 +392,10 @@ const int widgettypes_cod[] = { !fn: integer $globalCursorX() Return the x coordinate of mouse pointer global position. !fn: integer $globalCursorY() - Return the y coordinate of the mouse pointer global position. + Return the y coordinate of the mo>use pointer global position. + !fn: setDynamicTooltip(<text:string>,<x:integer>,<y:integer>,<width:uinteger>,<height:uinteger>) + Immediately pops up a tip saying text and removes the tip once the cursor moves out of rectangle at x,y widget coordinates and with width/height dimension. + See also [classfnc]$mayTipEvent[/classfnc]. @examples: [example] %Widget = $new(widget) @@ -562,8 +565,6 @@ KVSO_BEGIN_REGISTERCLASS(KviKvsObject_widget,"widget","object") KVSO_REGISTER_HANDLER(KviKvsObject_widget,"setBackgroundImage",function_setBackgroundImage) KVSO_REGISTER_HANDLER(KviKvsObject_widget,"backgroundColor",function_backgroundColor) KVSO_REGISTER_HANDLER(KviKvsObject_widget,"foregroundColor",function_foregroundColor) - KVSO_REGISTER_HANDLER(KviKvsObject_widget,"enableDynamicToolTip",function_enableDynamicToolTip) - KVSO_REGISTER_HANDLER(KviKvsObject_widget,"disableDynamicToolTip",function_disableDynamicToolTip) KVSO_REGISTER_HANDLER(KviKvsObject_widget,"setDynamicToolTip",function_setDynamicToolTip) // events @@ -1616,27 +1617,14 @@ bool KviKvsObject_widget::function_globalCursorY(KviKvsObjectFunctionCall *c) if(widget())c->returnValue()->setInteger(QCursor::pos().y()); return true; } -bool KviKvsObject_widget::function_enableDynamicToolTip(KviKvsObjectFunctionCall *c) -{ - if (!m_pTip) m_pTip=new KviKvsTip(this,widget()); - return true; -} -bool KviKvsObject_widget::function_disableDynamicToolTip(KviKvsObjectFunctionCall *c) -{ - if (m_pTip) - { - delete m_pTip; - m_pTip=0; - } - return true; -} bool KviKvsObject_widget::function_setDynamicToolTip(KviKvsObjectFunctionCall *c) { if (!m_pTip)m_pTip=new KviKvsTip(this,widget()); QString szTip; - kvs_int_t iXstart,iYstart,uWidth,uHeight; + kvs_int_t iXstart,iYstart; + kvs_uint_t uWidth,uHeight; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("tip_text",KVS_PT_STRING,0,szTip) KVSO_PARAMETER("x_start",KVS_PT_INT,0,iXstart) diff --git a/src/modules/objects/class_widget.h b/src/modules/objects/class_widget.h index 38f7a5414..c0fe565c9 100644 --- a/src/modules/objects/class_widget.h +++ b/src/modules/objects/class_widget.h @@ -99,8 +99,6 @@ protected: bool function_width(KviKvsObjectFunctionCall *); bool function_x(KviKvsObjectFunctionCall *); bool function_y(KviKvsObjectFunctionCall *); - bool function_enableDynamicToolTip(KviKvsObjectFunctionCall *c); - bool function_disableDynamicToolTip(KviKvsObjectFunctionCall *c); bool function_setDynamicToolTip(KviKvsObjectFunctionCall *c); signals: diff --git a/src/modules/objects/libkviobjects.cpp b/src/modules/objects/libkviobjects.cpp index 2d6412c3f..4606c2083 100644 --- a/src/modules/objects/libkviobjects.cpp +++ b/src/modules/objects/libkviobjects.cpp @@ -63,6 +63,7 @@ #include "class_radiobutton.h"
#include "class_process.h"
#include "class_groupbox.h"
+#include "class_buttongroup.h"
#include "class_tabwidget.h"
#include "class_workspace.h"
#include "class_popupmenu.h"
@@ -121,6 +122,7 @@ static bool objects_module_cleanup(KviModule *m) KviKvsObject_hbox::unregisterSelf();
KviKvsObject_vbox::unregisterSelf();
KviKvsObject_label::unregisterSelf();
+ KviKvsObject_buttongroup::unregisterSelf();
KviKvsObject_groupbox::unregisterSelf();
KviKvsObject_dialog::unregisterSelf();
KviKvsObject_checkbox::unregisterSelf();
@@ -927,6 +929,7 @@ static bool objects_module_can_unload(KviModule *m) KviKvsObject_checkbox::registerSelf();
KviKvsObject_dialog::registerSelf();
KviKvsObject_groupbox::registerSelf();
+ KviKvsObject_buttongroup::registerSelf();
KviKvsObject_label::registerSelf();
KviKvsObject_vbox::registerSelf();
KviKvsObject_hbox::registerSelf();
diff --git a/src/modules/objects/objects_vc05.vcproj b/src/modules/objects/objects_vc05.vcproj index 0981e8304..202c3895a 100644 --- a/src/modules/objects/objects_vc05.vcproj +++ b/src/modules/objects/objects_vc05.vcproj @@ -214,6 +214,10 @@ >
</File>
<File
+ RelativePath=".\class_buttongroup.cpp"
+ >
+ </File>
+ <File
RelativePath=".\class_checkbox.cpp"
>
</File>
@@ -406,6 +410,19 @@ </FileConfiguration>
</File>
<File
+ RelativePath=".\class_buttongroup.h"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine=""
+ Outputs=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
RelativePath=".\class_checkbox.h"
>
<FileConfiguration
|
