// Druid.custom - Gnome.Druid customizations
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of version 2 of the Lesser GNU General 
// Public License as published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this program; if not, write to the
// Free Software Foundation, Inc., 59 Temple Place - Suite 330,
// Boston, MA 02111-1307, USA.

		[DllImport("gnomeui-2")]
		static extern IntPtr gnome_druid_new_with_window(IntPtr title, IntPtr parent, bool close_on_cancel, out IntPtr window);

		Gtk.Widget new_with_window (string title, Gtk.Widget parent, bool close_on_cancel)
		{
			IntPtr handle;
			IntPtr ntitle = GLib.Marshaller.StringToPtrGStrdup (title);
			Raw = gnome_druid_new_with_window (ntitle, parent == null ? IntPtr.Zero : parent.Handle, close_on_cancel, out handle);
			GLib.Marshaller.Free (ntitle);
			return GLib.Object.GetObject (handle) as Gtk.Widget;
		}

		public Druid (string title, bool close_on_cancel, out Gtk.Widget window) : base (IntPtr.Zero)
		{
			if (GetType () != typeof (Druid)) {
				CreateNativeObject (new string[0], new GLib.Value [0]);
				window = ConstructWithWindow (title, null, close_on_cancel);
				return;
			}
			window = new_with_window (title, null, close_on_cancel);
		}

		public Druid (string title, bool close_on_cancel) : base (IntPtr.Zero)
		{
			if (GetType () != typeof (Druid)) {
				CreateNativeObject (new string[0], new GLib.Value[0]);
				ConstructWithWindow (title, null, close_on_cancel);
				return;
			}
			new_with_window (title, null, close_on_cancel);
		}

		public Druid (string title, Gtk.Window parent, bool close_on_cancel) : base (IntPtr.Zero)
		{
			if (GetType () != typeof (Druid)) {
				CreateNativeObject (new string[0], new GLib.Value[0]);
				ConstructWithWindow (title, parent, close_on_cancel);
				return;
			}
			new_with_window (title, parent, close_on_cancel);
		}

		public Druid (string title, Gtk.Window parent, bool close_on_cancel, out Gtk.Widget window) : base (IntPtr.Zero)
		{
			if (GetType () != typeof (Druid)) {
				CreateNativeObject (new string[0], new GLib.Value[0]);
				window = ConstructWithWindow (title, parent, close_on_cancel);
				return;
			}
			window = new_with_window(title, parent, close_on_cancel);
                }

