From ead1cff962593c0f6c4433125a6c0a41c7ee385e Mon Sep 17 00:00:00 2001 From: Denis Feklushkin Date: Thu, 26 Oct 2017 20:44:02 +0700 Subject: [PATCH 1/4] const added --- src/dlangui/widgets/controls.d | 2 +- src/dlangui/widgets/widget.d | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dlangui/widgets/controls.d b/src/dlangui/widgets/controls.d index 18d54d0b..b5db5363 100644 --- a/src/dlangui/widgets/controls.d +++ b/src/dlangui/widgets/controls.d @@ -95,7 +95,7 @@ class TextWidget : Widget { protected UIString _text; /// get widget text - override @property dstring text() { return _text; } + override @property dstring text() const { return _text; } /// set text to show override @property Widget text(dstring s) { _text = s; diff --git a/src/dlangui/widgets/widget.d b/src/dlangui/widgets/widget.d index 3ac0e600..8f2be7af 100644 --- a/src/dlangui/widgets/widget.d +++ b/src/dlangui/widgets/widget.d @@ -1739,7 +1739,7 @@ class WidgetGroup : Widget { protected WidgetList _children; /// returns number of children of this widget - @property override int childCount() { return _children.count; } + @property override int childCount() const { return _children.count; } /// returns child by index override Widget child(int index) { return _children.get(index); } /// adds child, returns added item From 9c85ab7deb42c64dba0017f2f9fbc1d22b8977ad Mon Sep 17 00:00:00 2001 From: Denis Feklushkin Date: Thu, 26 Oct 2017 22:00:51 +0700 Subject: [PATCH 2/4] child(int) works with const widget objects too --- src/dlangui/core/collections.d | 7 +------ src/dlangui/widgets/widget.d | 4 ++-- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/dlangui/core/collections.d b/src/dlangui/core/collections.d index 223508d4..23e9bef8 100644 --- a/src/dlangui/core/collections.d +++ b/src/dlangui/core/collections.d @@ -244,12 +244,7 @@ struct ObjectList(T) { @property int count() const { return _count; } alias length = count; /** get item by index */ - T get(int index) { - assert(index >= 0 && index < _count, "child index out of range"); - return _list[index]; - } - /** get const item by index */ - const(T) get(int index) const { + inout(T) get(int index) inout { assert(index >= 0 && index < _count, "child index out of range"); return _list[index]; } diff --git a/src/dlangui/widgets/widget.d b/src/dlangui/widgets/widget.d index 8f2be7af..fd3a2f8d 100644 --- a/src/dlangui/widgets/widget.d +++ b/src/dlangui/widgets/widget.d @@ -1525,7 +1525,7 @@ public: /// returns number of children of this widget @property int childCount() { return 0; } /// returns child by index - Widget child(int index) { return null; } + inout(Widget) child(int index) inout { return null; } /// adds child, returns added item Widget addChild(Widget item) { assert(false, "addChild: children not suported for this widget type"); } /// adds child, returns added item @@ -1741,7 +1741,7 @@ class WidgetGroup : Widget { /// returns number of children of this widget @property override int childCount() const { return _children.count; } /// returns child by index - override Widget child(int index) { return _children.get(index); } + override inout(Widget) child(int index) inout { return _children.get(index); } /// adds child, returns added item override Widget addChild(Widget item) { return _children.add(item).parent(this); } /// inserts child at given index, returns inserted item From 6db5d2cece846932f46f5784c6b136477c087054 Mon Sep 17 00:00:00 2001 From: Denis Feklushkin Date: Thu, 26 Oct 2017 22:05:37 +0700 Subject: [PATCH 3/4] childCount() const --- src/dlangui/widgets/widget.d | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dlangui/widgets/widget.d b/src/dlangui/widgets/widget.d index fd3a2f8d..7111524a 100644 --- a/src/dlangui/widgets/widget.d +++ b/src/dlangui/widgets/widget.d @@ -1523,7 +1523,7 @@ public: // Widget hierarhy methods /// returns number of children of this widget - @property int childCount() { return 0; } + @property int childCount() const { return 0; } /// returns child by index inout(Widget) child(int index) inout { return null; } /// adds child, returns added item From 925224fdf80768640a3c4bcdd5a28b8cf90dae98 Mon Sep 17 00:00:00 2001 From: Denis Feklushkin Date: Fri, 27 Oct 2017 15:21:15 +0700 Subject: [PATCH 4/4] class Button text() const --- src/dlangui/widgets/controls.d | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dlangui/widgets/controls.d b/src/dlangui/widgets/controls.d index b5db5363..d5c65705 100644 --- a/src/dlangui/widgets/controls.d +++ b/src/dlangui/widgets/controls.d @@ -529,7 +529,7 @@ class RadioButton : ImageTextButton { /// Text only button class Button : Widget { protected UIString _text; - override @property dstring text() { return _text; } + override @property dstring text() const { return _text; } override @property Widget text(dstring s) { _text = s; requestLayout(); return this; } override @property Widget text(UIString s) { _text = s; requestLayout(); return this; } @property Widget textResource(string s) { _text = s; requestLayout(); return this; }