[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); addView(current);
toUpdate(); toUpdate();
update(); update();
//ToDo: focus(current);
if (content.stage != null) {
content.stage.focus = current.content;
}
current.onShow(data); current.onShow(data);
if (animate != null) { if (animate != null) {
animate.cancel(); animate.cancel();

View File

@@ -67,7 +67,7 @@ class OverflowControl {
} }
@:style(true) class GroupView extends SpriteView implements IGroupView { @: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>>; public var views(default, set):Array<IView<Dynamic>>;
@:style public var layout(default, default):ILayout; @: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 { override private function get_rect():Rectangle {
var result = super.get_rect(); var result = super.get_rect();
result.x += overflowControlX.offset; result.x += overflowControlX.offset;

View File

@@ -11,7 +11,7 @@ interface IGroupView extends IView<Dynamic> {
public var overflowX(default, set):Float; public var overflowX(default, set):Float;
public var overflowY(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 var views(default, set):Array<IView<Dynamic>>;
public function containsView(view:IView<Dynamic>):Bool; 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 removeView(view:IView<Dynamic>):IView<Dynamic>;
public function removeAllViews():Void; 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 { public function remove(popup:P):Void {
if (root.containsView(popup)) { if (root.containsView(popup)) {
root.removeView(popup); root.removeView(popup);
root.focus();
} }
} }