From a07d9eb3663d219280ed6b91a03b9143414b5859 Mon Sep 17 00:00:00 2001 From: shmyga Date: Mon, 11 Mar 2019 22:37:31 +0300 Subject: [PATCH] fixes for openfl html5 build --- README.md | 35 ++++++++++++++-------------- demo/src/demo/popup/ColorPopup.yaml | 2 +- src/main/haxework/gui/GroupView.hx | 34 --------------------------- src/main/haxework/gui/IGroupView.hx | 6 ----- src/main/haxework/gui/TextView.hx | 4 +++- src/main/haxework/gui/ViewUpdater.hx | 2 +- 6 files changed, 23 insertions(+), 60 deletions(-) diff --git a/README.md b/README.md index 60105a6..5a69cf4 100755 --- a/README.md +++ b/README.md @@ -8,28 +8,29 @@ Gui framework for Haxe. ### Example -Build form using `haxework.gui.ViewBuilder`. +Build form using macro @:template. form.json: ```json { - "@type":"haxework.gui.VGroupView", - "skin":{"@type":"haxework.gui.skin.ColorSkin", "color":"0xffff00"}, - "paddings":20, - "layoutMargin":10, + "$type": "haxework.gui.VGroupView", + "skin": [{"$type": "haxework.gui.skin.ColorSkin", "color": "0xffff00"}], + "geometry.padding": 20, + "layout.margin": 10, "views":[ { - "id":"view1", + "id": "view1", "type":"haxework.gui.SpriteView", - "pWidth":100, "pHeight":100, - "skin":{"@type":"haxework.gui.skin.ColorSkin", "color":"0xff0000"} + "geometry.size.stretch": true, + "skin":[{"$type":"haxework.gui.skin.ColorSkin", "color": "0xff0000"}] }, { - "id":"view2", - "type":"haxework.gui.SpriteView", - "pWidth":100, "height":50, - "skin":{"@type":"haxework.gui.skin.ColorSkin", "color":"0x00ff00"} + "id": "view2", + "type": "haxework.gui.SpriteView", + "geometry.size.width": "100%", + "geometry.size.height": 50, + "skin": [{"$type":"haxework.gui.skin.ColorSkin", "color": "0x00ff00"}] } ] } @@ -38,8 +39,8 @@ form.json: ```haxe @:template("form.json") class FormView extends VGroupView { - @:view public var view1:IView; - @:view("view2") public var anyVarName:IView; + @:view public var view1:SpriteView; + @:view("view2") public var anyVarName:SpriteView; } var form = new FormView(); @@ -57,9 +58,9 @@ trace(form.anyVarName); ```haxe new JsonLoader().GET("http://example.com/file.json") .then(function(data) { - trace("Json Ok: " + data); + trace("Json Ok: " + data); }) .catchError(function(error) { - trace("Json Fail: " + error); + trace("Json Fail: " + error); }); -``` \ No newline at end of file +``` diff --git a/demo/src/demo/popup/ColorPopup.yaml b/demo/src/demo/popup/ColorPopup.yaml index 97a416e..4763ec6 100644 --- a/demo/src/demo/popup/ColorPopup.yaml +++ b/demo/src/demo/popup/ColorPopup.yaml @@ -9,7 +9,7 @@ view: skinId: panel views: - id: colors - $type: haxework.gui.DataView + $type: haxework.gui.DataView geometry.size.stretch: true layout: $type: haxework.gui.layout.TailLayout diff --git a/src/main/haxework/gui/GroupView.hx b/src/main/haxework/gui/GroupView.hx index 038d04c..a803227 100755 --- a/src/main/haxework/gui/GroupView.hx +++ b/src/main/haxework/gui/GroupView.hx @@ -10,13 +10,10 @@ class GroupView extends SpriteView implements IGroupView { public var views(default, set):Array>; public var layout(default, default):ILayout; - private var viewsById:Map>; - public function new(?layout:ILayout) { super(); this.layout = layout == null ? new DefaultLayout() : layout; views = []; - viewsById = new Map>(); } override private function set_width(value:Float):Float { @@ -61,7 +58,6 @@ class GroupView extends SpriteView implements IGroupView { public function addView(view:IView):IView { views.push(view); - viewsById.set(view.id, view); if (view.content != null) content.addChild(view.content); view.parent = this; toUpdate(); @@ -71,7 +67,6 @@ class GroupView extends SpriteView implements IGroupView { public function insertView(view:IView, index:Int):IView { if (index < 0) index = views.length + index; views.insert(index, view); - viewsById.set(view.id, view); if (view.content != null) content.addChild(view.content); view.parent = this; toUpdate(); @@ -80,7 +75,6 @@ class GroupView extends SpriteView implements IGroupView { public function addViewFirst(view:IView):IView { views.unshift(view); - viewsById.set(view.id, view); content.addChild(view.content); view.parent = this; toUpdate(); @@ -89,7 +83,6 @@ class GroupView extends SpriteView implements IGroupView { public function removeView(view:IView):IView { view.parent = null; - viewsById.remove(view.id); views.remove(view); if (view.content != null) content.removeChild(view.content); toUpdate(); @@ -101,31 +94,4 @@ class GroupView extends SpriteView implements IGroupView { removeView(views[0]); } } - - public function removeViewById(id:String):IView { - if (viewsById.exists(id)) { - return removeView(viewsById.get(id)); - } else { - return null; - } - } - - public function findViewById>(id:String, ?clazz:Class):Null { - var idd:Array = id.split(":"); - if (idd.length > 1) { - var id0 = idd.shift(); - if (viewsById.exists(id0)) { - var g:GroupView = findViewById(id0); - return g.findViewById(idd.join(":"), clazz); - } else { - return null; - } - } else { - if (viewsById.exists(id)) { - return cast viewsById.get(id); - } else { - return null; - } - } - } } diff --git a/src/main/haxework/gui/IGroupView.hx b/src/main/haxework/gui/IGroupView.hx index 615bf3f..770033a 100755 --- a/src/main/haxework/gui/IGroupView.hx +++ b/src/main/haxework/gui/IGroupView.hx @@ -1,8 +1,6 @@ package haxework.gui; import flash.display.DisplayObjectContainer; -import haxework.gui.core.HAlign; -import haxework.gui.core.VAlign; import haxework.gui.layout.ILayout; interface IGroupView extends IView { @@ -20,8 +18,4 @@ interface IGroupView extends IView { public function removeView(view:IView):IView; public function removeAllViews():Void; - - public function removeViewById(id:String):IView; - - public function findViewById>(id:String, ?clazz:Class):Null; } diff --git a/src/main/haxework/gui/TextView.hx b/src/main/haxework/gui/TextView.hx index de77477..6a130af 100755 --- a/src/main/haxework/gui/TextView.hx +++ b/src/main/haxework/gui/TextView.hx @@ -144,7 +144,9 @@ class TextView extends SpriteView implements ITextView { private function updateTextSize():Void { var size = TextUtil.getSize(textField); - setContentSize(size.x, size.y, "text"); + if (!Math.isNaN(size.x) && !Math.isNaN(size.y)) { + setContentSize(size.x, size.y, "text"); + } } override public function update():Void { diff --git a/src/main/haxework/gui/ViewUpdater.hx b/src/main/haxework/gui/ViewUpdater.hx index ddbf981..fa12fce 100644 --- a/src/main/haxework/gui/ViewUpdater.hx +++ b/src/main/haxework/gui/ViewUpdater.hx @@ -45,7 +45,7 @@ class ViewUpdater { if (updateViews.length > count) { repeat++; if (repeat > 100) { - L.e("ViewUpdater", 'repeat limit: ${updateViews}'); + L.e("ViewUpdater", 'repeat limit: ${[for (view in updateViews) view.id]}'); return; } }