[view] add focus method

This commit is contained in:
2019-11-14 16:48:51 +03:00
parent 78f4ae3a03
commit fcbac5587e
4 changed files with 12 additions and 6 deletions

View File

@@ -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();

View File

@@ -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<IView<Dynamic>>;
@:style public var layout(default, default):ILayout;
@@ -253,6 +253,12 @@ class OverflowControl {
}
}
public function focus(?view:IView<Dynamic>):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;

View File

@@ -11,7 +11,7 @@ interface IGroupView extends IView<Dynamic> {
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<IView<Dynamic>>;
public function containsView(view:IView<Dynamic>):Bool;
@@ -25,4 +25,6 @@ interface IGroupView extends IView<Dynamic> {
public function removeView(view:IView<Dynamic>):IView<Dynamic>;
public function removeAllViews():Void;
public function focus(?view:IView<Dynamic>):Void;
}

View File

@@ -38,6 +38,7 @@ class PopupManager {
public function remove(popup:P):Void {
if (root.containsView(popup)) {
root.removeView(popup);
root.focus();
}
}