addded text view

This commit is contained in:
2013-08-29 15:36:42 +02:00
parent d77a733c6a
commit 7f3ba591f3
8 changed files with 159 additions and 7 deletions

View File

@@ -1,9 +1,9 @@
{
"type":"haxework.gui.HGroupView",
"type":"haxework.gui.VGroupView",
"layoutHAlign":"~haxework.gui.core.HAlign:CENTER",
"layoutVAlign":"~haxework.gui.core.VAlign:MIDDLE",
"paddings":20,
"layoutMargin":100,
"layoutMargin":10,
"skin":{"type":"haxework.gui.skin.ColorSkin", "color":"0xff0000"},
"views":[
{
@@ -22,6 +22,41 @@
"leftMargin":5,
"rightMargin":10,
"skin":{"type":"haxework.gui.skin.ColorSkin", "color":"0x0000ff"}
},
{
"type":"haxework.gui.HGroupView",
"layoutHAlign":"~haxework.gui.core.HAlign:LEFT",
"layoutVAlign":"~haxework.gui.core.VAlign:MIDDLE",
"pWidth":100,
"height":30,
"paddings":3,
"layoutMargin":3,
"skin":{"type":"haxework.gui.skin.ColorSkin", "color":"0xffff00"},
"views":[
{
"type":"haxework.gui.LabelView",
"width":100,
"pHeight":100,
"skin":{"type":"haxework.gui.skin.ColorSkin", "color":"0x00ffff"},
"text":"Text1"
},
{
"type":"haxework.gui.LabelView",
"contentSize":true,
"skin":{"type":"haxework.gui.skin.ColorSkin", "color":"0x00ffff"},
"text":"Text2",
"fontFamily":"Georgia",
"fontColor":"0xffffff"
},
{
"type":"haxework.gui.LabelView",
"contentSize":true,
"skin":{"type":"haxework.gui.skin.ColorSkin", "color":"0x00ffff"},
"text":"Text 3333333333 ddd",
"fontFamily":"Tahoma",
"fontColor":"0xff0000"
}
]
}
]
}

View File

@@ -1,6 +1,15 @@
package haxework.gui;
//ToDo:
import haxework.gui.View;
import haxework.gui.GroupView;
import haxework.gui.HGroupView;
import haxework.gui.VGroupView;
import haxework.gui.TextView;
import haxework.gui.LabelView;
import haxework.gui.skin.ColorSkin;
class GuiBuilder {
private function new() {}
@@ -27,9 +36,13 @@ class GuiBuilder {
var a:Array<String> = s.substr(1).split(":");
var e:Enum<Dynamic> = Type.resolveEnum(a[0]);
value = Type.createEnum(e, a[1]);
} else if (~/0x[A-Fa-f\d]{6}/.match(value)) {
value = Std.parseInt(value);
}
} else if (Std.is(value, Float)) {
} else if (Std.is(value, Bool)) {
} else {
var o:Dynamic = build(value);
fill(o, value);

9
haxework/gui/ITextView.hx Executable file
View File

@@ -0,0 +1,9 @@
package haxework.gui;
interface ITextView<C, T> extends IView<C> {
public var textField(default, null):T;
public var text(default, set):String;
public var fontFamily(default, set):String;
public var fontColor(default, set):Int;
public var fontSize(default, set):Float;
}

View File

@@ -23,6 +23,8 @@ interface IView<C> {
public var pWidth(default, set):Float;
public var pHeight(default, set):Float;
public var contentSize(default, set):Bool;
public var hAlign(default, set):HAlign;
public var vAlign(default, set):VAlign;

17
haxework/gui/LabelView.hx Executable file
View File

@@ -0,0 +1,17 @@
package haxework.gui;
import flash.text.TextFieldAutoSize;
class LabelView extends TextView {
public function new() {
super();
textField.autoSize = TextFieldAutoSize.CENTER;
}
override public function update():Void {
super.update();
textField.x = (width - textField.width) / 2;
textField.y = (height - textField.height) / 2;
}
}

View File

@@ -7,11 +7,6 @@ import flash.display.DisplayObject;
import flash.events.Event;
import flash.display.Sprite;
//ToDo:
import haxework.gui.HGroupView;
import haxework.gui.VGroupView;
import haxework.gui.skin.ColorSkin;
class Root {
private var view:IView<Sprite>;

70
haxework/gui/TextView.hx Executable file
View File

@@ -0,0 +1,70 @@
package haxework.gui;
import flash.text.TextFormat;
import flash.display.Sprite;
import flash.text.TextField;
class TextView extends View implements ITextView<Sprite, TextField> {
public var textField(default, null):TextField;
public var text(default, set):String;
public var fontFamily(default, set):String;
public var fontColor(default, set):Int;
public var fontSize(default, set):Float;
private var textFormat:TextFormat;
public function new() {
super();
textField = new TextField();
textFormat = textField.defaultTextFormat;
textFormat.font = "Arial";
textFormat.size = 16;
content.addChild(textField);
}
private function set_text(value:String):String {
if (text != value) {
text = value;
textField.text = text;
invalidate();
}
return text;
}
private function set_fontFamily(value:String):String {
if (fontFamily != value) {
fontFamily = value;
textFormat.font = fontFamily;
invalidate();
}
return fontFamily;
}
private function set_fontColor(value:Int):Int {
if (fontColor != value) {
fontColor = value;
textFormat.color = fontColor;
invalidate();
}
return fontColor;
}
private function set_fontSize(value:Float):Float {
if (fontSize != value) {
fontSize = value;
textFormat.size = fontSize;
invalidate();
}
return fontSize;
}
override public function update():Void {
textField.setTextFormat(textFormat);
if (contentSize) {
width = textField.width;
height = textField.height;
}
super.update();
}
}

View File

@@ -32,6 +32,8 @@ class View implements IView<Sprite> {
public var pWidth(default, set):Float;
public var pHeight(default, set):Float;
public var contentSize(default, set):Bool;
public var hAlign(default, set):HAlign;
public var vAlign(default, set):VAlign;
@@ -152,6 +154,15 @@ class View implements IView<Sprite> {
return pHeight;
}
private function set_contentSize(value:Bool):Bool {
if (contentSize != value) {
contentSize = value;
invalidate();
invalidateParent();
}
return contentSize;
}
private function set_hAlign(value:HAlign):HAlign {
if (hAlign != value) {
hAlign = value;