ButtonListenerServices

immutable
auto ButtonListenerServices = q{ static foreach (member; __traits(derivedMembers, typeof(this))) { static if (typeof(super).stringof == "Canvas") { static if (mixin("hasUDA!(" ~ typeof(this).stringof ~ "." ~ member ~ ", Signal)")) { static foreach (el; ["RightClick", "LeftClick", "MouseMove", "MouseInside", "Update"]) { static if (member.stringof == "\"on" ~ el ~ getUDAs!(__traits(getMember, this, member), Signal)[0].id ~ "\"") { if (element.id == getUDAs!(__traits(getMember, this, member), Signal)[0].id) { mixin("element.on" ~ el ~ " = &on" ~ el ~ getUDAs!(__traits(getMember, this, member), Signal)[0].id ~ ";"); } } } } } } };

Meta