From 235907bab3f37c585ae51083918d6c1063ffc46e Mon Sep 17 00:00:00 2001 From: "Adam D. Ruppe" Date: Thu, 3 Jul 2025 08:58:27 -0400 Subject: [PATCH] make it compile again but it prolly won't work too great --- minigui_xml.d | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/minigui_xml.d b/minigui_xml.d index c17008a..2bcf010 100644 --- a/minigui_xml.d +++ b/minigui_xml.d @@ -207,7 +207,7 @@ void initMinigui(Modules...)() static foreach (alias Module; Modules) { - pragma(msg, Module.stringof); + //pragma(msg, Module.stringof); appendMiniguiModule!Module; } } @@ -215,27 +215,38 @@ void initMinigui(Modules...)() void appendMiniguiModule(alias Module, string prefix = null)() { foreach(memberName; __traits(allMembers, Module)) static if(!__traits(isDeprecated, __traits(getMember, Module, memberName))) + static if(memberName != "seperator") { alias Member = ident!(__traits(getMember, Module, memberName)); static if(is(Member == class) && !isAbstractClass!Member && is(Member : Widget) && __traits(getProtection, Member) != "private") { widgetFactoryFunctions[prefix ~ memberName] = (Widget parent, Element element, out Widget widget) { - static if(is(Member : Dialog)) + static if(is(Member : MessageBox)) { - widget = new Member(); + widget = new MessageBox(""); + } + else static if(is(Member : Dialog)) + { + widget = new Member(null, 0, 0); // FIXME } else static if(is(Member : Menu)) { widget = new Menu(null, null); } + else static if(is(Member : TooltipWindow)) + { + widget = null; + } else static if(is(Member : Window)) { widget = new Member("test"); } else { - string[string] args = element.attributes; + string[string] args; + foreach(k, v; element.attributes) + args[k] = v; enum paramNames = ParameterIdentifierTuple!(__traits(getMember, Member, "__ctor")); Parameters!(__traits(getMember, Member, "__ctor")) params; @@ -259,6 +270,10 @@ void appendMiniguiModule(alias Module, string prefix = null)() } else static if(is(typeof(param) == TextLayouter)) params[idx] = null; + else static if(is(typeof(param) == class)) + params[idx] = null; + else static if(is(typeof(param) == delegate)) + params[idx] = null; else params[idx] = to!(typeof(param))(*arg); }