On 14-10-17 15:27, Russel Winder wrote:

I think this is just me needing reassurance…

Gtk has (amongst others) the application level events activate and startup. For C++ gtkmm gives conventional names to the handlers as part of the inheritance hierarchy from Gio::Application. Rust (gtk-rs) on the other hand just presents the functions to bind handlers since it doesn't have inheritance per se (it handles the Gtk inheritance but doesn't offer anything to application developers).

D has classes and inheritance as C++, but GtkD doesn't present an inheritance hierarchy as gtkmm does, it just presents the binding functions as gtk-rs does.

At first sight this would seem to mean GtkD isn't going the class/inheritance route for handling Gtk but is going the functions route. I am guessing this is a consequence of doing the easiest simplest transform of the C API using the GIR files, whereas gtkmm puts a lot of effort to make as C++-like a binding as possible.

I am not saying GtkD should replicate the gtkmm architecture, but has it been constructively eschewed?

Could you elaborate a bit more about the inheritance, or is it just
about the signals?