On Fri, 23 Jan 2015 10:27:04 GMT, King_DuckZ wrote:

On Thu, 22 Jan 2015 22:35:28 +0100, Mike Wey wrote:

  • How is one supposed to inherit from classes the whose objects are automatically created by Builder?

I don't think you can, GtkBuilder wouldn't know how to instantiate the
derived class.

What about my MyWindow example? That way I can customize the window class, if only I could copy-construct its base class from the ApplicationWindow returned by the builder. Any way I can do that?

I've always solved this situation with 'reparenting':

class MainWindow : Window, View {
...
private void prepare_ui () {

// The very first widget inside the window, this box holds all the
// other widgets
Box b1 = cast(Box) mbuilder.getObject("box1");

// Now one by one get the other widgets inside box1...

// FileChooser buttons
mimagechooser = cast(FileChooserButton) mbuilder.getObject("imagefilechooserbutton");
init_imagefilechooser_button ();

mxmlchooser = cast(FileChooserButton) mbuilder.getObject("xmlfilechooserbutton");
init_xmlfilechooser_button ();

// Drawing Area
mpage_image = cast(DrawingArea) mbuilder.getObject("page_image");
if (mpage_image !is null) {
  mpage_image.addOnDraw (&redraw_page);
  mpage_image.addOnButtonPress (&button_press);
  mpage_image.setHasTooltip (true);
  mpage_image.addOnQueryTooltip (&query_tooltip);
}
...
////////////////////////////////////////////////////////
// Finally reparent the glade window into this one... //
////////////////////////////////////////////////////////

//alias this Widget;
//alias Widget = this;
b1.reparent ( this );

}