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)
{
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);
}