added frameswicther
This commit is contained in:
39
haxework/frame/FrameSwitcher.hx
Executable file
39
haxework/frame/FrameSwitcher.hx
Executable file
@@ -0,0 +1,39 @@
|
||||
package haxework.frame;
|
||||
|
||||
import flash.display.Sprite;
|
||||
import haxework.gui.IView;
|
||||
import haxework.gui.GroupView;
|
||||
|
||||
class FrameSwitcher extends GroupView implements IFrameSwitcher<Sprite> {
|
||||
|
||||
public var current(default, null):Null<IView<Sprite>>;
|
||||
private var frames:Map<String, IView<Sprite>>;
|
||||
|
||||
public function new() {
|
||||
super();
|
||||
frames = new Map<String, IView<Sprite>>();
|
||||
current = null;
|
||||
}
|
||||
|
||||
public function change(id:String):IView<Sprite> {
|
||||
if (current != null) {
|
||||
if (current.id == id) return current;
|
||||
removeView(current);
|
||||
}
|
||||
current = frames.get(id);
|
||||
addView(current);
|
||||
return current;
|
||||
}
|
||||
|
||||
override public function set_views(value:Array<IView<Sprite>>):Array<IView<Sprite>> {
|
||||
views = [];
|
||||
if (value.length > 0) {
|
||||
for (view in value) {
|
||||
view.pWidth = 100;
|
||||
view.pHeight = 100;
|
||||
frames.set(view.id, view);
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
8
haxework/frame/IFrameSwitcher.hx
Executable file
8
haxework/frame/IFrameSwitcher.hx
Executable file
@@ -0,0 +1,8 @@
|
||||
package haxework.frame;
|
||||
|
||||
import haxework.gui.IView;
|
||||
|
||||
interface IFrameSwitcher<C> extends IView<C> {
|
||||
public var current(default, null):Null<IView<C>>;
|
||||
public function change(id:String):IView<C>;
|
||||
}
|
||||
@@ -51,6 +51,7 @@ class GroupView extends View implements IGroupView<Sprite> {
|
||||
viewsById.set(view.id, view);
|
||||
content.addChild(view.content);
|
||||
view.parent = this;
|
||||
invalidate();
|
||||
return view;
|
||||
}
|
||||
|
||||
@@ -59,6 +60,7 @@ class GroupView extends View implements IGroupView<Sprite> {
|
||||
viewsById.remove(view.id);
|
||||
views.remove(view);
|
||||
content.removeChild(view.content);
|
||||
invalidate();
|
||||
return view;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,8 @@ import haxework.gui.ButtonView;
|
||||
import haxework.gui.skin.ColorSkin;
|
||||
import haxework.gui.skin.ButtonColorSkin;
|
||||
|
||||
import haxework.frame.FrameSwitcher;
|
||||
|
||||
class GuiBuilder {
|
||||
|
||||
private function new() {}
|
||||
|
||||
Reference in New Issue
Block a user