mirror of https://github.com/adamdruppe/arsd.git
make it compile again but it prolly won't work too great
This commit is contained in:
parent
716301f01a
commit
235907bab3
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue