From 91d588d622017df6d537e0a5567f374824a3c7d9 Mon Sep 17 00:00:00 2001 From: shmyga Date: Tue, 5 May 2015 12:14:24 +0300 Subject: [PATCH] added style support to GuiBuilder --- haxework/gui/GuiBuilder.hx | 8 +++++++- haxework/gui/LabelView.hx | 1 + haxework/gui/TextView.hx | 5 ++++- haxework/resources/IResources.hx | 3 +++ haxework/resources/Resources.hx | 11 +++++++++++ 5 files changed, 26 insertions(+), 2 deletions(-) diff --git a/haxework/gui/GuiBuilder.hx b/haxework/gui/GuiBuilder.hx index dfdebb5..8bfee6f 100755 --- a/haxework/gui/GuiBuilder.hx +++ b/haxework/gui/GuiBuilder.hx @@ -123,9 +123,15 @@ class GuiF { } public function fill() { + if (Reflect.hasField(data, "style")) { + var style = Provider.get(IResources).styles.get(Reflect.field(data, "style")); + for (key in Reflect.fields(style)) { + Reflect.setField(data, key, Reflect.field(style, key)); + } + } var fields:Array = Reflect.fields(data); for (field in fields) { - if (field == "type") continue; + if (field == "type" || field == "style") continue; if (field == "_includes") continue; var value:Dynamic = Reflect.field(data, field); if (field == "_include") { diff --git a/haxework/gui/LabelView.hx b/haxework/gui/LabelView.hx index dc8d8c9..618e36b 100755 --- a/haxework/gui/LabelView.hx +++ b/haxework/gui/LabelView.hx @@ -11,6 +11,7 @@ class LabelView extends TextView { fill = false; textField.selectable = false; textField.wordWrap = false; + textField.multiline = true; layoutHAlign = HAlign.CENTER; layoutVAlign = VAlign.MIDDLE; } diff --git a/haxework/gui/TextView.hx b/haxework/gui/TextView.hx index 389b4ec..ec5d25f 100755 --- a/haxework/gui/TextView.hx +++ b/haxework/gui/TextView.hx @@ -41,6 +41,7 @@ class TextView extends SpriteView implements ITextView { textFormat = textField.defaultTextFormat; textFormat.font = "Arial"; textFormat.size = 16; + textFormat.align = TextFormatAlign.CENTER; content.addChild(textField); } @@ -150,8 +151,10 @@ class TextView extends SpriteView implements ITextView { if (contentSize && !Std.is(skin, ISize)) { #if html5 var h = textField.textHeight; - if (h > textFormat.size * 1.5) h = h / 2; + //var w = textField.textWidth; + //if (h > textFormat.size * 1.5) h = h / 2; textField.height = h; + //textField.width = w; #end width = textField.width + paddings * 2; height = textField.height + paddings * 2; diff --git a/haxework/resources/IResources.hx b/haxework/resources/IResources.hx index 9900a91..4bde7bd 100755 --- a/haxework/resources/IResources.hx +++ b/haxework/resources/IResources.hx @@ -10,4 +10,7 @@ interface IResources { public var movie(default, null):ResMap; public var text(default, null):ResMap; public var float(default, null):ResMap; + public var styles(default, null):ResMap; + + public function loadStyles(asset:String):Void; } \ No newline at end of file diff --git a/haxework/resources/Resources.hx b/haxework/resources/Resources.hx index 08821de..a1400d3 100755 --- a/haxework/resources/Resources.hx +++ b/haxework/resources/Resources.hx @@ -1,5 +1,7 @@ package haxework.resources; +import openfl.Assets; +import haxe.Json; import flash.display.MovieClip; import haxework.core.Tuple; import haxe.ds.StringMap; @@ -51,6 +53,7 @@ class Resources implements IResources { public var movie(default, null):ResMap; public var text(default, null):ResMap; public var float(default, null):ResMap; + public var styles(default, null):ResMap; public function new() { image = new ResMap(); @@ -58,5 +61,13 @@ class Resources implements IResources { movie = new ResMap(); text = new ResMap(); float = new ResMap(); + styles = new ResMap(); + } + + public function loadStyles(asset:String):Void { + var stylesData = Json.parse(Assets.getText(asset)); + for (key in Reflect.fields(stylesData)) { + styles.put(key, Reflect.field(stylesData, key)); + } } } \ No newline at end of file