child(int) works with const widget objects too

This commit is contained in:
Denis Feklushkin 2017-10-26 22:00:51 +07:00
parent ead1cff962
commit 9c85ab7deb
2 changed files with 3 additions and 8 deletions

View File

@ -244,12 +244,7 @@ struct ObjectList(T) {
@property int count() const { return _count; } @property int count() const { return _count; }
alias length = count; alias length = count;
/** get item by index */ /** get item by index */
T get(int index) { inout(T) get(int index) inout {
assert(index >= 0 && index < _count, "child index out of range");
return _list[index];
}
/** get const item by index */
const(T) get(int index) const {
assert(index >= 0 && index < _count, "child index out of range"); assert(index >= 0 && index < _count, "child index out of range");
return _list[index]; return _list[index];
} }

View File

@ -1525,7 +1525,7 @@ public:
/// returns number of children of this widget /// returns number of children of this widget
@property int childCount() { return 0; } @property int childCount() { return 0; }
/// returns child by index /// returns child by index
Widget child(int index) { return null; } inout(Widget) child(int index) inout { return null; }
/// adds child, returns added item /// adds child, returns added item
Widget addChild(Widget item) { assert(false, "addChild: children not suported for this widget type"); } Widget addChild(Widget item) { assert(false, "addChild: children not suported for this widget type"); }
/// adds child, returns added item /// adds child, returns added item
@ -1741,7 +1741,7 @@ class WidgetGroup : Widget {
/// returns number of children of this widget /// returns number of children of this widget
@property override int childCount() const { return _children.count; } @property override int childCount() const { return _children.count; }
/// returns child by index /// 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 /// adds child, returns added item
override Widget addChild(Widget item) { return _children.add(item).parent(this); } override Widget addChild(Widget item) { return _children.add(item).parent(this); }
/// inserts child at given index, returns inserted item /// inserts child at given index, returns inserted item