﻿<?xml version="1.0" encoding="utf-8"?><Type Name="Dialog" FullName="Gtk.Dialog"><TypeSignature Language="C#" Maintainer="Duncan Mak" Value="public class Dialog : Gtk.Window" /><AssemblyInfo><AssemblyName>gtk-sharp</AssemblyName><AssemblyPublicKey></AssemblyPublicKey><AssemblyVersion>2.12.0.0</AssemblyVersion></AssemblyInfo><ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the <link location="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details.</ThreadSafetyStatement><Docs><summary>Creates popup windows.</summary><remarks><para><see cref="T:Gtk.Dialog" /> boxes are a convenient way to prompt the user for a small amount of input, eg. to display a message, ask a question, or anything else that does not require extensive effort by the user.</para><para>Gtk# treats a dialog as a window split vertically. The top section is a <see cref="T:Gtk.VBox" />, and is where widgets such as a <see cref="T:Gtk.Label" /> or an <see cref="T:Gtk.Entry" /> should be packed. The bottom area is known as the <see cref="P:Gtk.Dialog.ActionArea" />. This is generally used for packing buttons into the dialog which may perform functions such as cancel, ok, or apply. The two areas are separated by a <see cref="T:Gtk.HSeparator" />.</para><para>The two primary areas of a dialog can be accessed as the <see cref="P:Gtk.Dialog.Vbox" /> property and the <see cref="P:Gtk.Dialog.ActionArea" /> property. To set the dialog to be modal, use the <see cref="P:Gtk.Window.Modal" /> property.</para><para>If you want to block waiting for a dialog to return before returning control flow to your code, you can call <see cref="M:Gtk.Dialog.Run" />. This function enters a recursive main loop and waits for the user to respond to the dialog, returning the <see cref="T:Gtk.ResponseType" /> corresponding to the <see cref="T:Gtk.Button" /> the user clicked.</para><para>For a simple dialog, you would probably use <see cref="T:Gtk.MessageDialog" /> to save yourself some effort. However, you would need to create the <see cref="T:Gtk.Dialog" /> contents manually if you had more than a simple message in the <see cref="T:Gtk.Dialog" />.</para><example><code lang="C#">
using System;
using Gtk;

namespace GtkDialogSample
{
    public class GtkDialogSample
    {
        Dialog dialog;
        Window win;
		
        static void Main()
        {
            new GtkDialogSample ();
        }
	
        GtkDialogSample ()
        {
            Application.Init ();
            win = new Window ("Test");
            win.SetDefaultSize (250, 250);
            win.DeleteEvent += delegate {
			Application.Quit ();
		  }
            
            Button btn = new Button ("Show About");
            btn.Clicked += on_btn_clicked;
            win.Add (btn);
            
            win.ShowAll ();
            Application.Run ();
        }
		
        void on_btn_clicked (object obj, EventArgs args)
        {
            dialog = new Dialog
                ("Sample", win, Gtk.DialogFlags.DestroyWithParent);
            dialog.Modal = true;
            dialog.AddButton ("Close", ResponseType.Close);
            dialog.Response += on_dialog_response;
            dialog.Run ();
            dialog.Destroy ();
        }
		
        void on_dialog_response (object obj, ResponseArgs args)
        {
            Console.WriteLine (args.ResponseId);
        }
    }
}
        </code></example><para>
You also can subclass the <see cref="T:Gtk.Dialog" /> when you want to use the same Dialog on several places in your application.
</para><example><code lang="C#">
using System;
using Gtk;

namespace GtkDialogSample
{

	public class MyDialog:Dialog
	{
	
		public MyDialog(Window w,DialogFlags f ):base("Sample", w, f)
		{
            this.Modal = true;
            this.AddButton ("Close", ResponseType.Close);     	
		}
									
		protected override void OnResponse (ResponseType response_id){
		Console.WriteLine (response_id);
		}
		
	
	}



    public class GtkDialogSample
    {
        MyDialog dialog;
        Window win;
          
        static void Main()
        {
            new GtkDialogSample ();
        }
     
        GtkDialogSample ()
        {
            Application.Init ();
            win = new Window ("Test");
            win.SetDefaultSize (250, 250);
            win.DeleteEvent += new DeleteEventHandler (on_win_delete);
            
            Button btn = new Button ("Show About");
            btn.Clicked += new EventHandler (on_btn_clicked);
            win.Add (btn);
            
            win.ShowAll ();
            Application.Run ();
        }
          
        void on_btn_clicked (object obj, EventArgs args)
        {
            dialog = new MyDialog(win, Gtk.DialogFlags.DestroyWithParent);
            dialog.Run ();
            dialog.Destroy ();
        }
          
      
          
        void on_win_delete (object obj, DeleteEventArgs args)
        {
            Application.Quit ();
        }
    }    

}
   
  </code></example></remarks></Docs><Base><BaseTypeName>Gtk.Window</BaseTypeName></Base><Interfaces></Interfaces><Members><Member MemberName="AddActionWidget"><MemberSignature Language="C#" Value="public void AddActionWidget (Gtk.Widget child, int response_id);" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="child" Type="Gtk.Widget" /><Parameter Name="response_id" Type="System.Int32" /></Parameters><Docs><summary>Adds an activatable widget to the <see cref="T:Gtk.Dialog.ActionArea" /> of a <see cref="T:Gtk.Dialog" />.</summary><param name="child">an object of type <see cref="T:Gtk.Widget" />.</param><param name="response_id">an object of type <see cref="T:System.UInt32" />.</param><remarks>
            Adds an activatable <see cref="T:Gtk.Widget" /> to the <see cref="T:Gtk.Dialog.ActionArea" /> of a <see cref="T:Gtk.Dialog" />, connecting a signal handler that will <see cref="E:Gtk.Dialog.Response" /> on the <see cref="T:Gtk.Dialog" /> when the <see cref="T:Gtk.Widget" /> is activated.
            The <see cref="T:Gtk.Widget" /> is appended to the end of the <see cref="T:Gtk.Dialog.ActionArea" />. If you want to add a non-activatable <see cref="T:Gtk.Widget" />, simply pack it into the <see cref="T:Gtk.Dialog.ActionArea" /> field of the <see cref="T:Gtk.Dialog" />.
        </remarks></Docs></Member><Member MemberName="Run"><MemberSignature Language="C#" Value="public int Run ();" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters /><Docs><summary>Waits for the <see cref="E:Gtk.Dialog.Response" /> event or the <see cref="T:Gtk.Dialog" /> to be destroyed.</summary><returns>an object of type <see cref="T:System.UInt32" />.</returns><remarks><para>
                Waits for the <see cref="E:Gtk.Dialog.Response" /> event or the <see cref="T:Gtk.Dialog" /> to be destroyed.
                If the <see cref="T:Gtk.Dialog" /> is destroyed during the call to <see cref="M:Gtk.Dialog.Run()" />, <see cref="T:Gtk.Dialog" /> returns <see cref="F:Gtk.ResponseType.None" />.
                Otherwise, it returns the response ID from the <see cref="E:Gtk.Dialog.Response" /> event.
                Before entering the recursive main loop, <see cref="M:Gtk.Dialog.Run()" /> calls <see cref="M:Gtk.Widget.Show()" /> on the <see cref="T:Gtk.Dialog" /> for you.
                Note that you still need to show any children of the <see cref="T:Gtk.Dialog" /> yourself.
            </para><para>
                During <see cref="M:Gtk.Dialog.Run()" />, the default behavior of <see cref="E:Gtk.Window.DeleteEvent" /> is disabled;
                if the <see cref="T:Gtk.Dialog" /> receives <see cref="E:Gtk.Window.DeleteEvent" />, it will not be destroyed as usual, and <see cref="M:Gtk.Dialog.Run()" /> will return <see cref="F:Gtk.ResponseType.DeleteEvent" />.
                Also, during <see cref="M:Gtk.Dialog.Run()" /> the <see cref="T:Gtk.Dialog" /> will be modal.
                You can force <see cref="M:Gtk.Dialog.Run()" /> to return at any time by calling <see cref="M:Gtk.Dialog.Respond" /> to emit the <see cref="E:Gtk.Dialog.Response" /> event.
                Destroying the <see cref="T:Gtk.Dialog" /> during <see cref="M:Gtk.Dialog.Run()" /> is a very bad idea, because your post-run code will not know whether the <see cref="T:Gtk.Dialog" /> was destroyed or not.
            </para><para>
                After <see cref="M:Gtk.Dialog.Run()" /> returns, you are responsible for hiding or destroying the <see cref="T:Gtk.Dialog" /> if you wish to do so.
            </para></remarks></Docs></Member><Member MemberName="Respond"><MemberSignature Language="C#" Value="public void Respond (int response_id);" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="response_id" Type="System.Int32" /></Parameters><Docs><summary>Emits the <see cref="E:Gtk.Dialog.Response" /> event with the given response ID.</summary><param name="response_id">an object of type <see cref="T:System.UInt32" />.</param><remarks>
            Emits the <see cref="E:Gtk.Dialog.Response" /> event with the given response ID.
            Used to indicate that the user has responded to the <see cref="T:Gtk.Dialog" /> in some way;
            typically either you or <see cref="M:Gtk.Dialog.Run()" /> will be monitoring the <see cref="E:Gtk.Dialog.Response" /> event and take appropriate action.
        </remarks></Docs></Member><Member MemberName="AddButton"><MemberSignature Language="C#" Value="public Gtk.Widget AddButton (string button_text, int response_id);" /><MemberType>Method</MemberType><ReturnValue><ReturnType>Gtk.Widget</ReturnType></ReturnValue><Parameters><Parameter Name="button_text" Type="System.String" /><Parameter Name="response_id" Type="System.Int32" /></Parameters><Docs><summary>Adds a <see cref="T:Gtk.Button" /> with the given text.</summary><param name="button_text">an object of type <see cref="T:System.String" />.</param><param name="response_id">an object of type <see cref="T:System.UInt32" />.</param><returns>an object of type <see cref="T:Gtk.Widget" /></returns><remarks>
            Adds a <see cref="T:Gtk.Button" /> with the given text (or a stock button, if button_text is a stock ID)
            and sets things up so that clicking the <see cref="T:Gtk.Button" /> will emit a <see cref="E:Gtk.Dialog.Response" /> with the given response_id.
            The <see cref="T:Gtk.Button" /> is appended to the end of the <see cref="T:Gtk.Dialog.ActionArea" />.
            The <see cref="T:Gtk.Button" /> is returned, but usually you do not need it.
        </remarks></Docs></Member><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public Dialog (IntPtr raw);" /><MemberType>Constructor</MemberType><ReturnValue /><Parameters><Parameter Name="raw" Type="System.IntPtr" /></Parameters><Docs><summary>Internal constructor</summary><param name="raw">Pointer to the C object.</param><remarks><para>This is an internal constructor, and should not be used by user code.</para></remarks></Docs></Member><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public Dialog ();" /><MemberType>Constructor</MemberType><ReturnValue /><Parameters /><Docs><summary>Creates a new dialog box.</summary><remarks>
            Creates a new dialog box.
            This is an internal constructor, and should not be used by user code.
        </remarks></Docs></Member><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public Dialog (string title, Gtk.Window parent, Gtk.DialogFlags flags, object[] button_data);" /><MemberType>Constructor</MemberType><ReturnValue /><Parameters><Parameter Name="title" Type="System.String" /><Parameter Name="parent" Type="Gtk.Window" /><Parameter Name="flags" Type="Gtk.DialogFlags" /><Parameter Name="button_data" Type="System.Object[]"><Attributes><Attribute><AttributeName>System.ParamArray</AttributeName></Attribute></Attributes></Parameter></Parameters><Docs><summary>Creates a new dialog box.</summary><param name="title">a title <see cref="T:System.String" /></param><param name="parent">a parent <see cref="T:Gtk.Window" />, or <see langword="null" /> for an unparented dialog.</param><param name="flags">dialog characteristic such as modality and destruction policy.</param><param name="button_data">a list of button text/response pairs if desired.</param><remarks><para>Creates a new <see cref="T:Gtk.Dialog" /> with the specified title and parent widget.</para><para>
The <see cref="T:Gtk.DialogFlags" /> argument can be used to make the dialog modal (<see cref="F:Gtk.DialogFlags.Modal" />)
and/or to have it destroyed along with its parent (<see cref="F:Gtk.DialogFlags.DestroyWithParent" />).
</para><example><code lang="C#">
using System;
using Gtk;

class MainClass
{
	public static void Main (string[] args)
	{
		Application.Init ();

		// Shows two buttons that use stock icons, and a custom button
		//    Add button will return 1000
		//    Delete button will return 2000
		//    "My Own Butotn" will return 3000
		Dialog d = new Gtk.Dialog ("What to do?", null, DialogFlags.Modal, 
					   Stock.Add,    1000,
					   Stock.Delete, 2000,
					   "My Own Button", 3000);
		int response = d.Run ();
		if (response == (int) ResponseType.DeleteEvent)
			Console.WriteLine ("The user closed the dialog box");
		   
		Console.WriteLine (response);
	}
}
  </code></example></remarks><since version="Gtk# 2.4" /></Docs></Member><Member MemberName="VBox"><MemberSignature Language="C#" Value="public Gtk.VBox VBox { get; };" /><MemberType>Property</MemberType><ReturnValue><ReturnType>Gtk.VBox</ReturnType></ReturnValue><Docs><summary>The <see cref="T:Gtk.VBox" /> that contains other widgets in this dialog.</summary><value>an object of type <see cref="T:Gtk.VBox" />.</value><remarks /></Docs></Member><Member MemberName="HasSeparator"><MemberSignature Language="C#" Value="public bool HasSeparator { set; get; };" /><MemberType>Property</MemberType><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters></Parameters><Docs><summary>Whether to display a <see cref="T:Gtk.HSeperator" />.</summary><value>an object of type <see cref="T:System.Boolean" /></value><remarks>Whether to display a <see cref="T:Gtk.HSeperator" /> in the <see cref="T:Gtk.Dialog" /> above the <see cref="P:Gtk.Dialog.ActionArea" /></remarks></Docs><Attributes><Attribute><AttributeName>GLib.Property("has-separator")</AttributeName></Attribute></Attributes></Member><Member MemberName="Response"><MemberSignature Language="C#" Value="public event Gtk.ResponseHandler Response;" /><MemberType>Event</MemberType><ReturnValue><ReturnType>Gtk.ResponseHandler</ReturnType></ReturnValue><Parameters /><Docs><summary>            
	  Emitted when an action widget is clicked, the <see cref="T:Gtk.Dialog" />
          receives a delete event, or the application programmer calls <see cref="M:Gtk.Dialog.Respond(System.Int32)" />.
          </summary><remarks>
          On a delete event, the response ID is <see cref="F:Gtk.ResponseType.None" />.
          Otherwise, it depends on which action widget was clicked.
	</remarks></Docs><Attributes><Attribute><AttributeName>GLib.Signal("response")</AttributeName></Attribute></Attributes></Member><Member MemberName="Close"><MemberSignature Language="C#" Value="public event EventHandler Close;" /><MemberType>Event</MemberType><ReturnValue><ReturnType>System.EventHandler</ReturnType></ReturnValue><Parameters /><Docs><summary>Emitted when the dialog is closed.</summary><remarks /></Docs><Attributes><Attribute><AttributeName>GLib.Signal("close")</AttributeName></Attribute></Attributes></Member><Member MemberName="ActionArea"><MemberSignature Language="C#" Value="public Gtk.HButtonBox ActionArea { get; };" /><MemberType>Property</MemberType><ReturnValue><ReturnType>Gtk.HButtonBox</ReturnType></ReturnValue><Parameters /><Docs><summary>The area of the Dialog where the action widgets are placed.</summary><value>a <see cref="T:Gtk.HButtonBox" /></value><remarks /></Docs></Member><Member MemberName="GType"><MemberSignature Language="C#" Value="public static GLib.GType GType { get; };" /><MemberType>Property</MemberType><ReturnValue><ReturnType>GLib.GType</ReturnType></ReturnValue><Parameters /><Docs><summary>GType Property.</summary><value>a <see cref="T:GLib.GType" /></value><remarks>Returns the native <see cref="T:GLib.GType" /> value for <see cref="T:Gtk.Dialog" />.</remarks></Docs></Member><Member MemberName="OnClose"><MemberSignature Language="C#" Value="protected virtual void OnClose ();" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters /><Docs><summary>Default handler for the <see cref="M:Gtk.Dialog.Close" /> event.</summary><remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.Dialog.Close" /> event.</remarks></Docs></Member><Member MemberName=".ctor"><MemberSignature Language="C#" Value="protected Dialog (GLib.GType gtype);" /><MemberType>Constructor</MemberType><ReturnValue /><Parameters><Parameter Name="gtype" Type="GLib.GType" /></Parameters><Docs><summary>Protected Constructor.</summary><param name="gtype">a <see cref="T:GLib.GType" /></param><remarks>Chain to this constructor if you have manually registered a native <see cref="T:GLib.GType" /> value for your subclass.</remarks></Docs><Attributes><Attribute><AttributeName>System.Obsolete</AttributeName></Attribute></Attributes></Member><Member MemberName="AddActionWidget"><MemberSignature Language="C#" Value="public void AddActionWidget (Gtk.Widget child, Gtk.ResponseType response);" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="child" Type="Gtk.Widget" /><Parameter Name="response" Type="Gtk.ResponseType" /></Parameters><Docs><summary>Adds an activatable widget to the <see cref="T:Gtk.Dialog.ActionArea" /> of a <see cref="T:Gtk.Dialog" />.</summary><param name="child">a <see cref="T:Gtk.Widget" /></param><param name="response">a <see cref="T:Gtk.ResponseType" /></param><remarks>
            Adds an activatable <see cref="T:Gtk.Widget" /> to the <see cref="T:Gtk.Dialog.ActionArea" /> of a <see cref="T:Gtk.Dialog" />, connecting a signal handler that will <see cref="E:Gtk.Dialog.Response" /> on the <see cref="T:Gtk.Dialog" /> when the <see cref="T:Gtk.Widget" /> is activated.
            The <see cref="T:Gtk.Widget" /> is appended to the end of the <see cref="T:Gtk.Dialog.ActionArea" />. If you want to add a non-activatable <see cref="T:Gtk.Widget" />, simply pack it into the <see cref="T:Gtk.Dialog.ActionArea" /> field of the <see cref="T:Gtk.Dialog" />.
        </remarks></Docs></Member><Member MemberName="AddButton"><MemberSignature Language="C#" Value="public Gtk.Widget AddButton (string button_text, Gtk.ResponseType response);" /><MemberType>Method</MemberType><ReturnValue><ReturnType>Gtk.Widget</ReturnType></ReturnValue><Parameters><Parameter Name="button_text" Type="System.String" /><Parameter Name="response" Type="Gtk.ResponseType" /></Parameters><Docs><summary>Adds a new response button to the dialog.</summary><param name="button_text">a <see cref="T:System.String" />, text for the button</param><param name="response">a <see cref="T:Gtk.ResponseType" />, the numeric response code emitted when the button is pressed.</param><returns>a <see cref="T:Gtk.Widget" />representing the button added.</returns><remarks /><since version="Gtk# 2.4" /></Docs></Member><Member MemberName="Respond"><MemberSignature Language="C#" Value="public void Respond (Gtk.ResponseType response);" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="response" Type="Gtk.ResponseType" /></Parameters><Docs><summary>Activate one of the responses.</summary><param name="response">a <see cref="T:System.Int32" />, the chosen response.</param><remarks /></Docs></Member><Member MemberName="DefaultResponse"><MemberSignature Language="C#" Value="public Gtk.ResponseType DefaultResponse { set; };" /><MemberType>Property</MemberType><ReturnValue><ReturnType>Gtk.ResponseType</ReturnType></ReturnValue><Docs><summary>Sets the default response_id.</summary><value>a <see cref="T:Gtk.ResponseType" /></value><remarks>Sets the default response_id.</remarks></Docs></Member><Member MemberName="OnResponse"><MemberSignature Language="C#" Value="protected virtual void OnResponse (Gtk.ResponseType response_id);" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="response_id" Type="Gtk.ResponseType" /></Parameters><Docs><summary>Default handler for the <see cref="M:Gtk.Dialog.Response" /> event.</summary><param name="response_id">a <see cref="T:System.Int32" /></param><remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.Dialog.Response" /> event.</remarks></Docs></Member><Member MemberName="SetResponseSensitive"><MemberSignature Language="C#" Value="public void SetResponseSensitive (Gtk.ResponseType response_id, bool setting);" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="response_id" Type="Gtk.ResponseType" /><Parameter Name="setting" Type="System.Boolean" /></Parameters><Docs><summary>A convenient way to sensitize/desensitize dialog buttons.</summary><param name="response_id">a <see cref="T:System.Int32" /></param><param name="setting">a <see cref="T:System.Boolean" /></param><remarks>Sets <see cref="P:Gtk.Widget.Sensitive" /> = <see langword="true" /> for each widget in the <see cref="P:Gtk.Dialog.ActionArea" /> with the given response_id. A convenient way to sensitize/desensitize dialog buttons.</remarks></Docs></Member><Member MemberName="SetAlternativeButtonOrderFromArray"><MemberSignature Language="C#" Value="public int SetAlternativeButtonOrderFromArray (int n_params);" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters><Parameter Name="n_params" Type="System.Int32" /></Parameters><Docs><summary>To be added</summary><param name="n_params">a <see cref="T:System.Int32" /></param><returns>a <see cref="T:System.Int32" /></returns><remarks>To be added</remarks><since version="Gtk# 2.6" /></Docs></Member><Member MemberName="GetResponseForWidget"><MemberSignature Language="C#" Value="public int GetResponseForWidget (Gtk.Widget widget);" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters><Parameter Name="widget" Type="Gtk.Widget" /></Parameters><Docs><param name="widget">A <see cref="T:Gtk.Widget" /> in the action area of the dialog.</param><summary>Gets the response id associated with an action area Widget.</summary><returns>an <see cref="T:System.Int32" /> representing the response id or <see cref="F:Gtk.Response.None" /> if the widget has no response id set.</returns><remarks /><since version="Gtk# 2.8" /></Docs></Member><Member MemberName="AlternativeButtonOrder"><MemberSignature Language="C#" Value="public int[] AlternativeButtonOrder { set; };" /><MemberType>Property</MemberType><ReturnValue><ReturnType>System.Int32[]</ReturnType></ReturnValue><Docs><summary>AlternativeButtonOrder property.</summary><value>An array of Response IDs.</value><remarks>Sets the button order to an alternative arrangement when the gtk-alternive-button-order setting is <see langword="true" />.</remarks><since version="Gtk# 2.10" /></Docs></Member></Members></Type>