<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.10.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 += 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 Dialog ("Sample", win, Gtk.DialogFlags.DestroyWithParent); dialog.Modal = true; dialog.AddButton ("Close", ResponseType.Close); dialog.Response += new ResponseHandler (on_dialog_response); dialog.Run (); dialog.Destroy (); } void on_dialog_response (object obj, ResponseArgs args) { Console.WriteLine (args.ResponseId); } void on_win_delete (object obj, DeleteEventArgs args) { Application.Quit (); } } } </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> Creates a new <see cref="T:Gtk.Dialog" /> with the specified title and parent widget. 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" />). </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> </Members> </Type>