make it compile again but it prolly won't work too great

This commit is contained in:
Adam D. Ruppe 2025-07-03 08:58:27 -04:00
parent 716301f01a
commit 235907bab3
1 changed files with 19 additions and 4 deletions

View File

@ -207,7 +207,7 @@ void initMinigui(Modules...)()
static foreach (alias Module; Modules) static foreach (alias Module; Modules)
{ {
pragma(msg, Module.stringof); //pragma(msg, Module.stringof);
appendMiniguiModule!Module; appendMiniguiModule!Module;
} }
} }
@ -215,27 +215,38 @@ void initMinigui(Modules...)()
void appendMiniguiModule(alias Module, string prefix = null)() void appendMiniguiModule(alias Module, string prefix = null)()
{ {
foreach(memberName; __traits(allMembers, Module)) static if(!__traits(isDeprecated, __traits(getMember, Module, memberName))) foreach(memberName; __traits(allMembers, Module)) static if(!__traits(isDeprecated, __traits(getMember, Module, memberName)))
static if(memberName != "seperator")
{ {
alias Member = ident!(__traits(getMember, Module, memberName)); alias Member = ident!(__traits(getMember, Module, memberName));
static if(is(Member == class) && !isAbstractClass!Member && is(Member : Widget) && __traits(getProtection, Member) != "private") static if(is(Member == class) && !isAbstractClass!Member && is(Member : Widget) && __traits(getProtection, Member) != "private")
{ {
widgetFactoryFunctions[prefix ~ memberName] = (Widget parent, Element element, out Widget widget) 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)) else static if(is(Member : Menu))
{ {
widget = new Menu(null, null); widget = new Menu(null, null);
} }
else static if(is(Member : TooltipWindow))
{
widget = null;
}
else static if(is(Member : Window)) else static if(is(Member : Window))
{ {
widget = new Member("test"); widget = new Member("test");
} }
else else
{ {
string[string] args = element.attributes; string[string] args;
foreach(k, v; element.attributes)
args[k] = v;
enum paramNames = ParameterIdentifierTuple!(__traits(getMember, Member, "__ctor")); enum paramNames = ParameterIdentifierTuple!(__traits(getMember, Member, "__ctor"));
Parameters!(__traits(getMember, Member, "__ctor")) params; Parameters!(__traits(getMember, Member, "__ctor")) params;
@ -259,6 +270,10 @@ void appendMiniguiModule(alias Module, string prefix = null)()
} }
else static if(is(typeof(param) == TextLayouter)) else static if(is(typeof(param) == TextLayouter))
params[idx] = null; params[idx] = null;
else static if(is(typeof(param) == class))
params[idx] = null;
else static if(is(typeof(param) == delegate))
params[idx] = null;
else else
params[idx] = to!(typeof(param))(*arg); params[idx] = to!(typeof(param))(*arg);
} }