From fcbac5587ebe13877df15d1124a1d86cd9851be5 Mon Sep 17 00:00:00 2001 From: shmyga Date: Thu, 14 Nov 2019 16:48:51 +0300 Subject: [PATCH] [view] add focus method --- src/main/haxework/view/frame/FrameSwitcher.hx | 5 +---- src/main/haxework/view/group/GroupView.hx | 8 +++++++- src/main/haxework/view/group/IGroupView.hx | 4 +++- src/main/haxework/view/popup/PopupManager.hx | 1 + 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/haxework/view/frame/FrameSwitcher.hx b/src/main/haxework/view/frame/FrameSwitcher.hx index 47e4cde..9a50aa6 100755 --- a/src/main/haxework/view/frame/FrameSwitcher.hx +++ b/src/main/haxework/view/frame/FrameSwitcher.hx @@ -58,10 +58,7 @@ class FrameSwitcher extends GroupView { addView(current); toUpdate(); update(); - //ToDo: - if (content.stage != null) { - content.stage.focus = current.content; - } + focus(current); current.onShow(data); if (animate != null) { animate.cancel(); diff --git a/src/main/haxework/view/group/GroupView.hx b/src/main/haxework/view/group/GroupView.hx index 03fabb7..daa9f22 100755 --- a/src/main/haxework/view/group/GroupView.hx +++ b/src/main/haxework/view/group/GroupView.hx @@ -67,7 +67,7 @@ class OverflowControl { } @:style(true) class GroupView extends SpriteView implements IGroupView { - public var container(null, null):DisplayObjectContainer; + public var container(default, null):DisplayObjectContainer; public var views(default, set):Array>; @:style public var layout(default, default):ILayout; @@ -253,6 +253,12 @@ class OverflowControl { } } + public function focus(?view:IView):Void { + if (container.stage != null) { + container.stage.focus = view != null ? view.content : content; + } + } + override private function get_rect():Rectangle { var result = super.get_rect(); result.x += overflowControlX.offset; diff --git a/src/main/haxework/view/group/IGroupView.hx b/src/main/haxework/view/group/IGroupView.hx index b0cf0c9..ae45bcd 100755 --- a/src/main/haxework/view/group/IGroupView.hx +++ b/src/main/haxework/view/group/IGroupView.hx @@ -11,7 +11,7 @@ interface IGroupView extends IView { public var overflowX(default, set):Float; public var overflowY(default, set):Float; - public var container(null, null):DisplayObjectContainer; + public var container(default, null):DisplayObjectContainer; public var views(default, set):Array>; public function containsView(view:IView):Bool; @@ -25,4 +25,6 @@ interface IGroupView extends IView { public function removeView(view:IView):IView; public function removeAllViews():Void; + + public function focus(?view:IView):Void; } diff --git a/src/main/haxework/view/popup/PopupManager.hx b/src/main/haxework/view/popup/PopupManager.hx index 10c3d3d..1b873ea 100755 --- a/src/main/haxework/view/popup/PopupManager.hx +++ b/src/main/haxework/view/popup/PopupManager.hx @@ -38,6 +38,7 @@ class PopupManager { public function remove(popup:P):Void { if (root.containsView(popup)) { root.removeView(popup); + root.focus(); } }