Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if (builder.hasSuperClass("haxe.ui.core.Component") == false) {
- return "Must have a superclass of haxe.ui.core.Component";
- }
- if (builder.constructor == null) {
- return "A class building component must have a constructor";
- }
- ModuleMacros.populateClassMap();
- var xml = builder.getClassMetaValue("xml");
- var namedComponents:Map<String, String> = new Map<String, String>();
- var expr = ComponentMacros.buildComponentFromString([], xml, namedComponents);
- var codeBuilder = new CodeBuilder(expr);
- codeBuilder.add(macro
- addComponent(c0)
- );
- var createChildrenFn = builder.findFunction("createChildren");
- if (createChildrenFn == null) {
- createChildrenFn = builder.addFunction("createChildren", macro {
- super.createChildren();
- }, [APrivate, AOverride]);
- }
- createChildrenFn.add(codeBuilder);
- for (id in namedComponents.keys()) {
- var safeId:String = StringUtil.capitalizeHyphens(id);
- var cls:String = namedComponents.get(id);
- builder.addVar(safeId, TypeTools.toComplexType(Context.getType(cls)));
- builder.constructor.add(macro
- $i{safeId} = findComponent($v{id}, $p{cls.split(".")}, true)
- , 1);
- }
- return null;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement