With the above D code, I get the error:
none of the overloads of connectData are callable using argument types
void delegate(Notepad np)
does not match
extern (C) void function() cHandler
connectData seems to be a low level function since most of the parameters are extern(C)
Should I subclass every button? I'd prefer to do what I do in C, set the callback and give it data (an object) to operate on.