Hi Mike,

I've come across this a few times in the wrapper code where one of the constructors for an object takes an argument of the same type is the constructor produces. For instance, one of the Adjustment constructors looks like this:

	/**
	 * Sets our main struct and passes it to the parent class.
	 */
	public this (GtkAdjustment* gtkAdjustment, bool ownedRef = false)
	{
		this.gtkAdjustment = gtkAdjustment;
		super(cast(GObject*)gtkAdjustment, ownedRef);
	}

I have a vague memory of finding out how to use this type of constructor from a while back, but I can't remember how and I can't find a sample file in GtkD. Sadly, I also seem to have neglected to take notes (shame on me). At first glance, it seems impossible to use. I mean, how can I instantiate an object passing itself as an argument if it doesn't yet exist?

Or is not actually a constructor?

I keep running across this, so I'm hoping you can unbend my brain.