aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar IceN9ne2016-11-30 06:52:25 -0500
committerGravatar IceN9ne2016-11-30 06:52:25 -0500
commit9a2cb9a2f0f0d1a3ba27aedf231fbd7eb01bcce1 (patch)
tree0966a86462965d04c220012997f9f591108aef70 /src
parentKviIrcView: Fix oversized minimum paint width when boolIrcViewWrapMargin is off (diff)
downloadKVIrc-9a2cb9a2f0f0d1a3ba27aedf231fbd7eb01bcce1.tar.gz
KVIrc-9a2cb9a2f0f0d1a3ba27aedf231fbd7eb01bcce1.tar.bz2
KVIrc-9a2cb9a2f0f0d1a3ba27aedf231fbd7eb01bcce1.zip
KvsObject_widget: Add additional size functions
Diffstat (limited to 'src')
-rw-r--r--src/modules/objects/KvsObject_widget.cpp102
-rw-r--r--src/modules/objects/KvsObject_widget.h4
2 files changed, 106 insertions, 0 deletions
diff --git a/src/modules/objects/KvsObject_widget.cpp b/src/modules/objects/KvsObject_widget.cpp
index 5b81be377..eb3009a2b 100644
--- a/src/modules/objects/KvsObject_widget.cpp
+++ b/src/modules/objects/KvsObject_widget.cpp
@@ -232,6 +232,20 @@ const char * const widgettypes_tbl[] = {
Sets the maximum height of this widget to <value>.
The user will not be able to resize the widget to a bigger
value. This value is also used by the [class:layout]layout class[/class].
+ !fn: $setFixedWidth(<value>)
+ Sets the fixed width of this widget to <value>.
+ The user will not be able to resize the widget to a smaller or a bigger
+ value.
+ !fn: $setFixedHeight(<value>)
+ Sets the fixed height of this widget to <value>.
+ The user will not be able to resize the widget to a smaller or a bigger
+ value.
+ !fn: $setFixedSize(<width>,<height>)
+ Sets the fixed width and height of this widget to <width> and <height>.
+ The user will not be able to resize the widget to a smaller or a bigger
+ value.
+ !fn: $setSizePolicy(<width_policy>,<height_policy>)
+ Sets the size policy of this widget.
!fn: $move(<x_or_array>[,<y>])
Moves this widget to the coordinate <x> and <y> relative to its
parent widget (or the desktop if this widget is a toplevel one).
@@ -647,6 +661,10 @@ KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_widget, setMinimumWidth)
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_widget, setMinimumHeight)
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_widget, setMaximumWidth)
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_widget, setMaximumHeight)
+KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_widget, setFixedWidth)
+KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_widget, setFixedHeight)
+KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_widget, setFixedSize)
+KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_widget, setSizePolicy)
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_widget, move)
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_widget, sizeHint)
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_widget, resize)
@@ -1589,6 +1607,90 @@ KVSO_CLASS_FUNCTION(widget, setMaximumHeight)
return true;
}
+KVSO_CLASS_FUNCTION(widget, setFixedWidth)
+{
+ CHECK_INTERNAL_POINTER(widget())
+ kvs_int_t iW;
+ KVSO_PARAMETERS_BEGIN(c)
+ KVSO_PARAMETER("w", KVS_PT_INT, 0, iW)
+ KVSO_PARAMETERS_END(c)
+ widget()->setFixedWidth(iW);
+ return true;
+}
+
+KVSO_CLASS_FUNCTION(widget, setFixedHeight)
+{
+ CHECK_INTERNAL_POINTER(widget())
+ kvs_int_t iH;
+ KVSO_PARAMETERS_BEGIN(c)
+ KVSO_PARAMETER("h", KVS_PT_INT, 0, iH)
+ KVSO_PARAMETERS_END(c)
+ widget()->setFixedHeight(iH);
+ return true;
+}
+
+KVSO_CLASS_FUNCTION(widget, setFixedSize)
+{
+ CHECK_INTERNAL_POINTER(widget())
+ kvs_int_t iW, iH;
+ KVSO_PARAMETERS_BEGIN(c)
+ KVSO_PARAMETER("w", KVS_PT_INT, 0, iW)
+ KVSO_PARAMETER("h", KVS_PT_INT, 0, iH)
+ KVSO_PARAMETERS_END(c)
+ widget()->setFixedSize(iW, iH);
+ return true;
+}
+
+KVSO_CLASS_FUNCTION(widget, setSizePolicy)
+{
+ CHECK_INTERNAL_POINTER(widget())
+ QString szHorizontal, szVertical;
+ KVSO_PARAMETERS_BEGIN(c)
+ KVSO_PARAMETER("h", KVS_PT_STRING, 0, szHorizontal)
+ KVSO_PARAMETER("v", KVS_PT_STRING, 0, szVertical)
+ KVSO_PARAMETERS_END(c)
+
+ QSizePolicy::Policy hPolicy = QSizePolicy::Preferred;
+ if(KviQString::equalCI(szHorizontal, "Fixed"))
+ hPolicy = QSizePolicy::Fixed;
+ else if(KviQString::equalCI(szHorizontal, "Minimum"))
+ hPolicy = QSizePolicy::Minimum;
+ else if(KviQString::equalCI(szHorizontal, "Maximum"))
+ hPolicy = QSizePolicy::Maximum;
+ else if(KviQString::equalCI(szHorizontal, "Preferred"))
+ hPolicy = QSizePolicy::Preferred;
+ else if(KviQString::equalCI(szHorizontal, "Expanding"))
+ hPolicy = QSizePolicy::Expanding;
+ else if(KviQString::equalCI(szHorizontal, "MinimumExpanding"))
+ hPolicy = QSizePolicy::MinimumExpanding;
+ else if(KviQString::equalCI(szHorizontal, "Ignored"))
+ hPolicy = QSizePolicy::Ignored;
+ else
+ c->warning(__tr2qs_ctx("Unknown policy '%Q'", "objects"), &szHorizontal);
+
+ QSizePolicy::Policy vPolicy = QSizePolicy::Preferred;
+ if(KviQString::equalCI(szVertical, "Fixed"))
+ vPolicy = QSizePolicy::Fixed;
+ else if(KviQString::equalCI(szVertical, "Minimum"))
+ vPolicy = QSizePolicy::Minimum;
+ else if(KviQString::equalCI(szVertical, "Maximum"))
+ vPolicy = QSizePolicy::Maximum;
+ else if(KviQString::equalCI(szVertical, "Preferred"))
+ vPolicy = QSizePolicy::Preferred;
+ else if(KviQString::equalCI(szVertical, "Expanding"))
+ vPolicy = QSizePolicy::Expanding;
+ else if(KviQString::equalCI(szVertical, "MinimumExpanding"))
+ vPolicy = QSizePolicy::MinimumExpanding;
+ else if(KviQString::equalCI(szVertical, "Ignored"))
+ vPolicy = QSizePolicy::Ignored;
+ else
+ c->warning(__tr2qs_ctx("Unknown policy '%Q'", "objects"), &szVertical);
+
+ widget()->setSizePolicy(hPolicy, vPolicy);
+
+ return true;
+}
+
KVSO_CLASS_FUNCTION(widget, move)
{
CHECK_INTERNAL_POINTER(widget())
diff --git a/src/modules/objects/KvsObject_widget.h b/src/modules/objects/KvsObject_widget.h
index 888aae80a..4d35b34e1 100644
--- a/src/modules/objects/KvsObject_widget.h
+++ b/src/modules/objects/KvsObject_widget.h
@@ -100,6 +100,9 @@ protected:
bool setBackgroundColor(KviKvsObjectFunctionCall * c);
bool setBackgroundImage(KviKvsObjectFunctionCall * c);
bool setEnabled(KviKvsObjectFunctionCall * c);
+ bool setFixedHeight(KviKvsObjectFunctionCall * c);
+ bool setFixedSize(KviKvsObjectFunctionCall * c);
+ bool setFixedWidth(KviKvsObjectFunctionCall * c);
bool setFocus(KviKvsObjectFunctionCall * c);
bool setFocusPolicy(KviKvsObjectFunctionCall * c);
bool setFont(KviKvsObjectFunctionCall * c);
@@ -112,6 +115,7 @@ protected:
bool setMinimumWidth(KviKvsObjectFunctionCall * c);
bool setMouseTracking(KviKvsObjectFunctionCall * c);
bool setForegroundColor(KviKvsObjectFunctionCall * c);
+ bool setSizePolicy(KviKvsObjectFunctionCall * c);
bool setStyleSheet(KviKvsObjectFunctionCall * c);
bool setToolTip(KviKvsObjectFunctionCall *);
bool setWindowIcon(KviKvsObjectFunctionCall * c);