diff --git a/haxework/gui/GroupView.hx b/haxework/gui/GroupView.hx index d43f7ef..7c5b600 100755 --- a/haxework/gui/GroupView.hx +++ b/haxework/gui/GroupView.hx @@ -36,7 +36,12 @@ class GroupView extends SpriteView implements IGroupView { override public function update():Void { layout.place(this, views); - for (view in views) view.update(); + for (view in views) { + view.update(); + if (view.index > -1) { + content.setChildIndex(view.content, view.index); + } + } super.update(); } diff --git a/haxework/gui/IView.hx b/haxework/gui/IView.hx index 5b5afe7..c9a5156 100755 --- a/haxework/gui/IView.hx +++ b/haxework/gui/IView.hx @@ -53,6 +53,7 @@ interface IView { public var inLayout(default, set):Bool; public var visible(default, set):Bool; + public var index(default, set):Int; public function update():Void; public function invalidate():Void; diff --git a/haxework/gui/View.hx b/haxework/gui/View.hx index a65f130..84a901a 100755 --- a/haxework/gui/View.hx +++ b/haxework/gui/View.hx @@ -52,6 +52,7 @@ class View implements IView { public var inLayout(default, set):Bool; public var visible(default, set):Bool; + public var index(default, set):Int; public function new(content:C) { id = Type.getClassName(Type.getClass(this)) + counter++; @@ -65,6 +66,7 @@ class View implements IView { hAlign = HAlign.NONE; inLayout = true; visible = true; + index = -1; } private function currentSkin():ISkin> { @@ -261,6 +263,14 @@ class View implements IView { } return visible; } + + private function set_index(value:Int):Int { + if (index != value) { + index = value; + invalidateParent(); + } + return index; + } }