diff --git a/src/lime/tools/ApplicationData.hx b/src/lime/tools/ApplicationData.hx index bf5876f89..301917209 100644 --- a/src/lime/tools/ApplicationData.hx +++ b/src/lime/tools/ApplicationData.hx @@ -1,7 +1,7 @@ package lime.tools; -typedef ApplicationData = -{ +@:forward +abstract ApplicationData({ @:optional var file:String; @:optional var init:String; @:optional var main:String; @@ -9,4 +9,16 @@ typedef ApplicationData = @:optional var preloader:String; @:optional var swfVersion:Float; @:optional var url:String; +}) from Dynamic +{ + @:noCompletion + public static var expectedFields:ApplicationData = { + file: "", + init: "", + main: "", + path: "", + preloader: "", + swfVersion: 0.0, + url: "" + }; } diff --git a/src/lime/tools/MetaData.hx b/src/lime/tools/MetaData.hx index 1849064f0..2e859905a 100644 --- a/src/lime/tools/MetaData.hx +++ b/src/lime/tools/MetaData.hx @@ -1,7 +1,7 @@ package lime.tools; -typedef MetaData = -{ +@:forward +abstract MetaData({ @:optional var buildNumber:String; @:optional var company:String; @:optional var companyId:String; @@ -10,4 +10,17 @@ typedef MetaData = @:optional var packageName:String; @:optional var title:String; @:optional var version:String; +}) from Dynamic +{ + @:noCompletion + public static var expectedFields:MetaData = { + buildNumber: "", + company: "", + companyId: "", + companyUrl: "", + description: "", + packageName: "", + title: "", + version: "" + }; } diff --git a/src/lime/tools/ProjectXMLParser.hx b/src/lime/tools/ProjectXMLParser.hx index cafeb9457..e71d87c73 100644 --- a/src/lime/tools/ProjectXMLParser.hx +++ b/src/lime/tools/ProjectXMLParser.hx @@ -7,9 +7,6 @@ import lime.tools.Asset; import lime.tools.AssetType; import lime.tools.Dependency; import lime.tools.HXProject; -import lime.tools._types.ApplicationDataType; -import lime.tools._types.MetaDataType; -import lime.tools._types.WindowDataType; #if lime import lime.utils.AssetManifest; #end @@ -442,11 +439,11 @@ class ProjectXMLParser extends HXProject name = "packageName"; } - if (Reflect.hasField(ApplicationDataType.fields, name)) + if (Reflect.hasField(ApplicationData.expectedFields, name)) { Reflect.setField(app, name, value); } - else if (Reflect.hasField(MetaDataType.fields, name)) + else if (Reflect.hasField(MetaData.expectedFields, name)) { Reflect.setField(meta, name, value); } @@ -859,7 +856,7 @@ class ProjectXMLParser extends HXProject name = "packageName"; } - if (Reflect.hasField(MetaDataType.fields, name)) + if (Reflect.hasField(MetaData.expectedFields, name)) { Reflect.setField(meta, name, value); } @@ -2009,11 +2006,11 @@ class ProjectXMLParser extends HXProject Reflect.setField(windows[id], "colorDepth", Std.parseInt(value)); default: - if (Reflect.hasField(WindowDataType.fields, name)) + if (Reflect.hasField(WindowData.expectedFields, name)) { Reflect.setField(windows[id], name, value == "true"); } - else if (Reflect.hasField(WindowDataType.fields, formatAttributeName(name))) + else if (Reflect.hasField(WindowData.expectedFields, formatAttributeName(name))) { Reflect.setField(windows[id], formatAttributeName(name), value == "true"); } diff --git a/src/lime/tools/WindowData.hx b/src/lime/tools/WindowData.hx index c6141bafb..d861cd23b 100644 --- a/src/lime/tools/WindowData.hx +++ b/src/lime/tools/WindowData.hx @@ -1,7 +1,7 @@ package lime.tools; -typedef WindowData = -{ +@:forward +abstract WindowData({ @:optional var width:Int; @:optional var height:Int; @:optional var x:Float; @@ -31,4 +31,38 @@ typedef WindowData = @:optional var minimized:Bool; @:optional var maximized:Bool; @:optional var hidden:Bool; +}) from Dynamic +{ + @:noCompletion + public static var expectedFields:WindowData = { + width: 0, + height: 0, + x: 0.0, + y: 0.0, + background: 0, + parameters: "", + fps: 0, + hardware: false, + display: 0, + resizable: false, + borderless: false, + vsync: false, + fullscreen: false, + allowHighDPI: false, + alwaysOnTop: false, + antialiasing: 0, + orientation: Orientation.AUTO, + allowShaders: false, + requireShaders: false, + depthBuffer: false, + stencilBuffer: false, + title: "", + #if (js && html5) + element: null, + #end + colorDepth: 0, + minimized: false, + maximized: false, + hidden: false + }; } diff --git a/src/lime/tools/_types/ApplicationDataType.hx b/src/lime/tools/_types/ApplicationDataType.hx deleted file mode 100644 index 5f6123cb3..000000000 --- a/src/lime/tools/_types/ApplicationDataType.hx +++ /dev/null @@ -1,17 +0,0 @@ -package lime.tools._types; - -import lime.tools.ApplicationData; - -class ApplicationDataType -{ - public static var fields:ApplicationData = - { - file: "", - init: "", - main: "", - path: "", - preloader: "", - swfVersion: 0.0, - url: "" - } -} diff --git a/src/lime/tools/_types/MetaDataType.hx b/src/lime/tools/_types/MetaDataType.hx deleted file mode 100644 index d96214039..000000000 --- a/src/lime/tools/_types/MetaDataType.hx +++ /dev/null @@ -1,18 +0,0 @@ -package lime.tools._types; - -import lime.tools.MetaData; - -class MetaDataType -{ - public static var fields:MetaData = - { - buildNumber: "", - company: "", - companyId: "", - companyUrl: "", - description: "", - packageName: "", - title: "", - version: "" - } -} diff --git a/src/lime/tools/_types/WindowDataType.hx b/src/lime/tools/_types/WindowDataType.hx deleted file mode 100644 index 7745382e4..000000000 --- a/src/lime/tools/_types/WindowDataType.hx +++ /dev/null @@ -1,39 +0,0 @@ -package lime.tools._types; - -import lime.tools.WindowData; - -class WindowDataType -{ - public static var fields:WindowData = - { - width: 0, - height: 0, - x: 0.0, - y: 0.0, - background: 0, - parameters: "", - fps: 0, - hardware: false, - display: 0, - resizable: false, - borderless: false, - vsync: false, - fullscreen: false, - allowHighDPI: false, - alwaysOnTop: false, - antialiasing: 0, - orientation: Orientation.AUTO, - allowShaders: false, - requireShaders: false, - depthBuffer: false, - stencilBuffer: false, - title: "", - #if (js && html5) - element: null, - #end - colorDepth: 0, - minimized: false, - maximized: false, - hidden: false - } -} \ No newline at end of file diff --git a/tools/CommandLineTools.hx b/tools/CommandLineTools.hx index cf897ad80..8f693435a 100644 --- a/tools/CommandLineTools.hx +++ b/tools/CommandLineTools.hx @@ -10,9 +10,6 @@ import hxp.*; import lime.system.CFFI; import lime.tools.HXProject; import lime.tools.*; -import lime.tools._types.ApplicationDataType; -import lime.tools._types.MetaDataType; -import lime.tools._types.WindowDataType; import sys.io.File; import sys.io.Process; import sys.FileSystem; @@ -1863,9 +1860,9 @@ class CommandLineTools var fieldValue = Reflect.field(project, field); var typeValue:Dynamic = switch (field) { - case "app": ApplicationDataType.fields; - case "meta": MetaDataType.fields; - case "window": WindowDataType.fields; + case "app": ApplicationData.expectedFields; + case "meta": MetaData.expectedFields; + case "window": WindowData.expectedFields; default: fieldValue; }; @@ -2133,9 +2130,9 @@ class CommandLineTools var fieldReference = Reflect.field(overrides, fieldName); var typeValue:Dynamic = switch (fieldName) { - case "app": ApplicationDataType.fields; - case "meta": MetaDataType.fields; - case "window": WindowDataType.fields; + case "app": ApplicationData.expectedFields; + case "meta": MetaData.expectedFields; + case "window": WindowData.expectedFields; default: fieldReference; };