I have now implemented multiple inheritance and mixins in build_pgtk.pike, which allows GTK interfaces to be declared as separate classes. A class which contains the declaration "mixin_for foo;" will be able to access the foo-storage of the class it is mixed into, through the use of THIS. Normally "foo" will be "G.Object", since that is where the storage you want is declared.
I converted the gtkfilechooser interface to demonstrate the use.
Note that the order of inheritance is significant to the storage layout, so inherit the main branch first, and any mixins afterwards, to avoid nasty surprises.