|
@@ -1,28 +1,24 @@
|
|
|
package h2d.uikit;
|
|
|
import h2d.uikit.Property;
|
|
|
-import h2d.uikit.CssParser.Value;
|
|
|
+import h2d.uikit.CssValue;
|
|
|
|
|
|
-final class Object extends Component<h2d.Object> {
|
|
|
-
|
|
|
- static var p_min_width : Property<Null<Int>>;
|
|
|
- static var p_min_height : Property<Null<Int>>;
|
|
|
- static var p_max_width : Property<Null<Int>>;
|
|
|
+final class Object2D extends Component<h2d.Object> {
|
|
|
|
|
|
function new() {
|
|
|
- super("object",h2d.Object,h2d.Object.new,null);
|
|
|
+ super("object",h2d.Object.new,null);
|
|
|
|
|
|
// h2d.Object properties
|
|
|
- addHandler( defineProp("name",parseIdent,null), (o,v) -> o.name = v);
|
|
|
- addHandler( defineProp("x", parseFloat, 0), (o,v) -> o.x = v);
|
|
|
- addHandler( defineProp("y", parseFloat, 0), (o,v) -> o.y = v);
|
|
|
- addHandler( defineProp("alpha", parseFloat, 1), (o,v) -> o.alpha = v);
|
|
|
- addHandler( defineProp("rotation", parseFloat, 0), (o,v) -> o.rotation = v * Math.PI / 180);
|
|
|
- addHandler( defineProp("visible", parseBool, true), (o,v) -> o.visible = v);
|
|
|
- addHandler( defineProp("scale", parseScale, { x : 1, y : 1 }), (o,v) -> { o.scaleX = v.x; o.scaleY = v.y; });
|
|
|
- addHandler( defineProp("blend", parseBlend, Alpha), (o,v) -> o.blendMode = v);
|
|
|
+ addHandler( "name", parseIdent, null, (o,v) -> o.name = v);
|
|
|
+ addHandler( "x", parseFloat, 0, (o,v) -> o.x = v);
|
|
|
+ addHandler( "y", parseFloat, 0, (o,v) -> o.y = v);
|
|
|
+ addHandler( "alpha", parseFloat, 1, (o,v) -> o.alpha = v);
|
|
|
+ addHandler( "rotation", parseFloat, 0, (o,v) -> o.rotation = v * Math.PI / 180);
|
|
|
+ addHandler( "visible", parseBool, true, (o,v) -> o.visible = v);
|
|
|
+ addHandler( "scale", parseScale, { x : 1, y : 1 }, (o,v) -> { o.scaleX = v.x; o.scaleY = v.y; });
|
|
|
+ addHandler( "blend", parseBlend, Alpha, (o,v) -> o.blendMode = v);
|
|
|
|
|
|
// flow properties
|
|
|
- addHandler( defineProp("margin", parseBox, { left : 0, top : 0, right : 0, bottom : 0 }), (o,v) -> {
|
|
|
+ addHandler( "margin", parseBox, { left : 0, top : 0, right : 0, bottom : 0 }, (o,v) -> {
|
|
|
var p = getFlowProps(o);
|
|
|
if( p != null ) {
|
|
|
p.paddingLeft = v.left;
|
|
@@ -31,67 +27,64 @@ final class Object extends Component<h2d.Object> {
|
|
|
p.paddingBottom = v.bottom;
|
|
|
}
|
|
|
});
|
|
|
- addHandler( defineProp("margin-left", parseInt, 0), (o,v) -> {
|
|
|
+ addHandler( "margin-left", parseInt, 0, (o,v) -> {
|
|
|
var p = getFlowProps(o);
|
|
|
if( p != null ) p.paddingLeft = v;
|
|
|
});
|
|
|
- addHandler( defineProp("margin-top", parseInt, 0), (o,v) -> {
|
|
|
+ addHandler( "margin-top", parseInt, 0, (o,v) -> {
|
|
|
var p = getFlowProps(o);
|
|
|
if( p != null ) p.paddingTop = v;
|
|
|
});
|
|
|
- addHandler( defineProp("margin-right", parseInt, 0), (o,v) -> {
|
|
|
+ addHandler( "margin-right", parseInt, 0, (o,v) -> {
|
|
|
var p = getFlowProps(o);
|
|
|
if( p != null ) p.paddingRight = v;
|
|
|
});
|
|
|
- addHandler( defineProp("margin-bottom", parseInt, 0), (o,v) -> {
|
|
|
+ addHandler( "margin-bottom", parseInt, 0, (o,v) -> {
|
|
|
var p = getFlowProps(o);
|
|
|
if( p != null ) p.paddingBottom = v;
|
|
|
});
|
|
|
- addHandler( defineProp("align", parseAlign, { h : null, v : null }), (o,v) -> {
|
|
|
+ addHandler( "align", parseAlign, { h : null, v : null }, (o,v) -> {
|
|
|
var p = getFlowProps(o);
|
|
|
if( p != null ) {
|
|
|
p.horizontalAlign = v.h;
|
|
|
p.verticalAlign = v.v;
|
|
|
}
|
|
|
});
|
|
|
- addHandler( defineProp("halign", parseHAlign, null), (o,v) -> {
|
|
|
+ addHandler( "halign", parseHAlign, null, (o,v) -> {
|
|
|
var p = getFlowProps(o);
|
|
|
if( p != null ) p.horizontalAlign = v;
|
|
|
});
|
|
|
- addHandler( defineProp("valign", parseVAlign, null), (o,v) -> {
|
|
|
+ addHandler( "valign", parseVAlign, null, (o,v) -> {
|
|
|
var p = getFlowProps(o);
|
|
|
if( p != null ) p.verticalAlign = v;
|
|
|
});
|
|
|
- addHandler( defineProp("position",parsePosition,false), (o,v) -> {
|
|
|
+ addHandler( "position",parsePosition, false, (o,v) -> {
|
|
|
var p = getFlowProps(o);
|
|
|
if( p != null ) p.isAbsolute = v;
|
|
|
});
|
|
|
- addHandler( defineProp("offset", parseXY, { x : 0, y : 0 }), (o,v) -> {
|
|
|
+ addHandler( "offset", parseXY, { x : 0, y : 0 }, (o,v) -> {
|
|
|
var p = getFlowProps(o);
|
|
|
if( p != null ) {
|
|
|
p.offsetX = Std.int(v.x);
|
|
|
p.offsetY = Std.int(v.y);
|
|
|
}
|
|
|
});
|
|
|
- addHandler( defineProp("offset-x", parseInt, 0), (o,v) -> {
|
|
|
+ addHandler( "offset-x", parseInt, 0, (o,v) -> {
|
|
|
var p = getFlowProps(o);
|
|
|
if( p != null ) p.offsetX = v;
|
|
|
});
|
|
|
- addHandler( defineProp("offset-y", parseInt, 0), (o,v) -> {
|
|
|
+ addHandler( "offset-y", parseInt, 0, (o,v) -> {
|
|
|
var p = getFlowProps(o);
|
|
|
if( p != null ) p.offsetY = v;
|
|
|
});
|
|
|
-
|
|
|
- addHandler( p_min_width = defineProp("min-width",parseNone.bind(parseInt),null), (o,v) -> {
|
|
|
+ addHandler( "min-width",parseNone.bind(parseInt),null, (o,v) -> {
|
|
|
var p = getFlowProps(o);
|
|
|
if( p != null ) p.minWidth = v;
|
|
|
});
|
|
|
- addHandler( p_min_height = defineProp("min-height",parseNone.bind(parseInt),null), (o,v) -> {
|
|
|
+ addHandler( "min-height",parseNone.bind(parseInt),null, (o,v) -> {
|
|
|
var p = getFlowProps(o);
|
|
|
if( p != null ) p.minHeight = v;
|
|
|
});
|
|
|
-
|
|
|
- p_max_width = defineProp("max-width",parseNone.bind(parseInt),null);
|
|
|
}
|
|
|
|
|
|
function getFlowProps( o : h2d.Object ) {
|
|
@@ -129,19 +122,19 @@ final class Object extends Component<h2d.Object> {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public static var inst = new Object();
|
|
|
+ public static var inst = new Object2D();
|
|
|
}
|
|
|
|
|
|
final class Drawable extends Component<h2d.Drawable> {
|
|
|
|
|
|
function new() {
|
|
|
- super("drawable",h2d.Drawable,function(_) throw "assert",Object.inst);
|
|
|
- addHandler(defineProp("color", parseColorF, new h3d.Vector(1,1,1,1)), (o,v) -> o.color.load(v));
|
|
|
- addHandler(defineProp("smooth", parseAuto.bind(parseBool), null), (o,v) -> o.smooth = v);
|
|
|
- addHandler(defineProp("tilewrap", parseBool, false), (o,v) -> o.tileWrap = v);
|
|
|
+ super("drawable",function(_) throw "assert",Object2D.inst);
|
|
|
+ addHandler("color", parseColorF, new h3d.Vector(1,1,1,1), (o,v) -> o.color.load(v));
|
|
|
+ addHandler("smooth", parseAuto.bind(parseBool), null, (o,v) -> o.smooth = v);
|
|
|
+ addHandler("tilewrap", parseBool, false, (o,v) -> o.tileWrap = v);
|
|
|
}
|
|
|
|
|
|
- function parseColorF( v : CssParser.Value ) : h3d.Vector {
|
|
|
+ function parseColorF( v : CssValue ) : h3d.Vector {
|
|
|
var c = parseColor(v);
|
|
|
var v = new h3d.Vector();
|
|
|
v.setColor(c);
|
|
@@ -155,8 +148,8 @@ final class Drawable extends Component<h2d.Drawable> {
|
|
|
final class Bitmap extends Component<h2d.Bitmap> {
|
|
|
|
|
|
public function new() {
|
|
|
- super("bitmap",h2d.Bitmap,function(p) return new h2d.Bitmap(h2d.Tile.fromColor(0xFF00FF,16,16),p), Drawable.inst);
|
|
|
- addHandler(defineProp("src",parseTile,null),(o,v) -> o.tile = v);
|
|
|
+ super("bitmap",function(p) return new h2d.Bitmap(h2d.Tile.fromColor(0xFF00FF,16,16),p), Drawable.inst);
|
|
|
+ addHandler("src",parseTile,null,(o,v) -> o.tile = v);
|
|
|
}
|
|
|
|
|
|
static var inst = new Bitmap();
|
|
@@ -166,14 +159,14 @@ final class Bitmap extends Component<h2d.Bitmap> {
|
|
|
final class Flow extends Component<h2d.Flow> {
|
|
|
|
|
|
public function new() {
|
|
|
- super("flow",h2d.Flow,h2d.Flow.new, Object.inst);
|
|
|
- addHandler(defineProp("width",parseAuto.bind(parseInt),null),(o,v) -> { o.minWidth = o.maxWidth = v; });
|
|
|
- addHandler(defineProp("height",parseAuto.bind(parseInt),null),(o,v) -> { o.minHeight = o.maxHeight = v; });
|
|
|
- addHandler(@:privateAccess Object.p_min_width,(o,v) -> o.minWidth = v);
|
|
|
- addHandler(@:privateAccess Object.p_min_height,(o,v) -> o.minHeight = v);
|
|
|
- addHandler(@:privateAccess Object.p_max_width,(o,v) -> o.maxWidth = v);
|
|
|
- addHandler(defineProp("max-height",parseNone.bind(parseInt),null),(o,v) -> o.maxHeight = v);
|
|
|
- addHandler(defineProp("background",parseBackground,null),(o,v) -> {
|
|
|
+ super("flow",h2d.Flow.new, Object2D.inst);
|
|
|
+ addHandler("width",parseAuto.bind(parseInt),null,(o,v) -> { o.minWidth = o.maxWidth = v; });
|
|
|
+ addHandler("height",parseAuto.bind(parseInt),null,(o,v) -> { o.minHeight = o.maxHeight = v; });
|
|
|
+ addHandler("min-width",parseNone.bind(parseInt),null,(o,v) -> o.minWidth = v);
|
|
|
+ addHandler("max-width",parseNone.bind(parseInt),null,(o,v) -> o.maxWidth = v);
|
|
|
+ addHandler("min-height",parseNone.bind(parseInt),null,(o,v) -> o.minHeight = v);
|
|
|
+ addHandler("max-height",parseNone.bind(parseInt),null,(o,v) -> o.maxHeight = v);
|
|
|
+ addHandler("background",parseBackground,null,(o,v) -> {
|
|
|
if( v == null ) {
|
|
|
o.backgroundTile = null;
|
|
|
o.borderWidth = o.borderHeight = 0;
|
|
@@ -183,23 +176,23 @@ final class Flow extends Component<h2d.Flow> {
|
|
|
o.borderHeight = v.borderH;
|
|
|
}
|
|
|
});
|
|
|
- addHandler(defineProp("debug", parseBool, false), (o,v) -> o.debug = v);
|
|
|
- addHandler(defineProp("padding", parseBox, { left : 0, top : 0, bottom : 0, right : 0 }), (o,v) -> {
|
|
|
+ addHandler("debug", parseBool, false, (o,v) -> o.debug = v);
|
|
|
+ addHandler("padding", parseBox, { left : 0, top : 0, bottom : 0, right : 0 }, (o,v) -> {
|
|
|
o.paddingLeft = v.left;
|
|
|
o.paddingRight = v.right;
|
|
|
o.paddingTop = v.top;
|
|
|
o.paddingBottom = v.bottom;
|
|
|
});
|
|
|
- addHandler(defineProp("padding-left", parseInt, 0), (o,v) -> o.paddingLeft = v);
|
|
|
- addHandler(defineProp("padding-right", parseInt, 0), (o,v) -> o.paddingRight = v);
|
|
|
- addHandler(defineProp("padding-top", parseInt, 0), (o,v) -> o.paddingTop = v);
|
|
|
- addHandler(defineProp("padding-bottom", parseInt, 0), (o,v) -> o.paddingBottom = v);
|
|
|
- addHandler(defineProp("content-align", parseAlign, { h : null, v : null }), (o,v) -> {
|
|
|
+ addHandler("padding-left", parseInt, 0, (o,v) -> o.paddingLeft = v);
|
|
|
+ addHandler("padding-right", parseInt, 0, (o,v) -> o.paddingRight = v);
|
|
|
+ addHandler("padding-top", parseInt, 0, (o,v) -> o.paddingTop = v);
|
|
|
+ addHandler("padding-bottom", parseInt, 0, (o,v) -> o.paddingBottom = v);
|
|
|
+ addHandler("content-align", parseAlign, { h : null, v : null }, (o,v) -> {
|
|
|
o.horizontalAlign = v.h;
|
|
|
o.verticalAlign = v.v;
|
|
|
});
|
|
|
- addHandler(defineProp("content-halign", parseVAlign, null), (o,v) -> o.horizontalAlign = v);
|
|
|
- addHandler(defineProp("content-valign", parseHAlign, null), (o,v) -> o.verticalAlign = v);
|
|
|
+ addHandler("content-halign", parseVAlign, null, (o,v) -> o.horizontalAlign = v);
|
|
|
+ addHandler("content-valign", parseHAlign, null, (o,v) -> o.verticalAlign = v);
|
|
|
}
|
|
|
|
|
|
function parseBackground(value) {
|
|
@@ -219,17 +212,17 @@ final class Flow extends Component<h2d.Flow> {
|
|
|
final class Text extends Component<h2d.Text> {
|
|
|
|
|
|
public function new() {
|
|
|
- super("text",h2d.Text,function(p) return new h2d.Text(hxd.res.DefaultFont.get(),p), Drawable.inst);
|
|
|
- addHandler( defineProp("text",parseText,""), (o,v) -> o.text = v);
|
|
|
- addHandler( defineProp("font",parseFont,null), (o,v) -> o.font = v == null ? hxd.res.DefaultFont.get() : v );
|
|
|
- addHandler( defineProp("letter-spacing",parseInt,1), (o,v) -> o.letterSpacing = v);
|
|
|
- addHandler( defineProp("line-spacing",parseInt,0), (o,v) -> o.lineSpacing = v);
|
|
|
- addHandler( @:privateAccess Object.p_max_width, (o,v) -> o.maxWidth = v);
|
|
|
- addHandler( defineProp("text-align",parseTextAlign, Left), (o,v) -> o.textAlign = v);
|
|
|
- addHandler( defineProp("text-shadow",parseNone.bind(parseTextShadow), null), (o,v) -> o.dropShadow = v);
|
|
|
+ super("text",function(p) return new h2d.Text(hxd.res.DefaultFont.get(),p), Drawable.inst);
|
|
|
+ addHandler("text",parseText,"", (o,v) -> o.text = v);
|
|
|
+ addHandler("font",parseFont,null, (o,v) -> o.font = v == null ? hxd.res.DefaultFont.get() : v );
|
|
|
+ addHandler("letter-spacing",parseInt,1, (o,v) -> o.letterSpacing = v);
|
|
|
+ addHandler("line-spacing",parseInt,0, (o,v) -> o.lineSpacing = v);
|
|
|
+ addHandler("max-width",parseNone.bind(parseInt),null,(o,v) -> o.maxWidth = v);
|
|
|
+ addHandler("text-align",parseTextAlign, Left, (o,v) -> o.textAlign = v);
|
|
|
+ addHandler("text-shadow",parseNone.bind(parseTextShadow), null, (o,v) -> o.dropShadow = v);
|
|
|
}
|
|
|
|
|
|
- function parseTextAlign( value : CssParser.Value ) : h2d.Text.Align {
|
|
|
+ function parseTextAlign( value : CssValue ) : h2d.Text.Align {
|
|
|
return switch( parseIdent(value) ) {
|
|
|
case "left": Left;
|
|
|
case "right": Right;
|
|
@@ -238,7 +231,7 @@ final class Text extends Component<h2d.Text> {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- function parseText( value : CssParser.Value ) {
|
|
|
+ function parseText( value : CssValue ) {
|
|
|
return switch( value ) {
|
|
|
case VString(str): str;
|
|
|
case VIdent(i): i;
|
|
@@ -246,7 +239,7 @@ final class Text extends Component<h2d.Text> {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- function parseTextShadow( value : CssParser.Value ) {
|
|
|
+ function parseTextShadow( value : CssValue ) {
|
|
|
return switch( value ) {
|
|
|
case VGroup(vl):
|
|
|
return { dx : parseFloat(vl[0]), dy : parseFloat(vl[1]), color : vl.length >= 3 ? parseColor(vl[2]) : 0, alpha : vl.length >= 4 ? parseFloat(vl[3]) : 1 };
|
|
@@ -255,7 +248,7 @@ final class Text extends Component<h2d.Text> {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- function parseFont( value : CssParser.Value ) {
|
|
|
+ function parseFont( value : CssValue ) {
|
|
|
var path = parsePath(value);
|
|
|
return loadResource(path).to(hxd.res.BitmapFont).toFont();
|
|
|
}
|