<Type Name="Dialog" FullName="Gtk.Dialog"> <TypeSignature Language="C#" Value="public class Dialog : Gtk.Window, Implementor, IWrapper, IWrapper, IDisposable" Maintainer="Duncan Mak" /> <AssemblyInfo> <AssemblyName>gtk-sharp</AssemblyName> <AssemblyVersion>0.0.0.0</AssemblyVersion> <Attributes /> </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; using GtkSharp; 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", 5); 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> </remarks> </Docs> <Base> <BaseTypeName>Gtk.Window</BaseTypeName> </Base> <Interfaces> <Interface> <InterfaceName>Atk.Implementor</InterfaceName> </Interface> <Interface> <InterfaceName>GLib.IWrapper</InterfaceName> </Interface> <Interface> <InterfaceName>GLib.IWrapper</InterfaceName> </Interface> <Interface> <InterfaceName>System.IDisposable</InterfaceName> </Interface> </Interfaces> <Attributes /> <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 detroyed.</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="SetResponseSensitive"> <MemberSignature Language="C#" Value="public void SetResponseSensitive (int response_id, bool setting);" /> <MemberType>Method</MemberType> <ReturnValue> <ReturnType>System.Void</ReturnType> </ReturnValue> <Parameters> <Parameter Name="response_id" Type="System.Int32" /> <Parameter Name="setting" Type="System.Boolean" /> </Parameters> <Docs> <summary>A convenient way to sensitize/desensitize dialog buttons.</summary> <param name="response_id">an object of type <see cref="T:System.UInt32" />.</param> <param name="setting">an object of type <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="Finalize"> <MemberSignature Language="C#" Value="protected virtual void Finalize ();" /> <MemberType>Method</MemberType> <ReturnValue> <ReturnType>System.Void</ReturnType> </ReturnValue> <Parameters /> <Docs> <summary>Disposes the resources associated with the object.</summary> <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> <returns>An instance of Dialog, wrapping the C object.</returns> <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> <returns>an object of type <see cref="T:Gtk.Dialog" />.</returns> <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);" /> <MemberType>Constructor</MemberType> <ReturnValue /> <Parameters> <Parameter Name="title" Type="System.String" /> <Parameter Name="parent" Type="Gtk.Window" /> <Parameter Name="flags" Type="Gtk.DialogFlags" /> </Parameters> <Docs> <summary>Creates a new dialog box.</summary> <param name="title">an object of type <see cref="T:System.String" />.</param> <param name="parent">an object of type <see cref="T:Gtk.Window" />.</param> <param name="flags">an object of type <see cref="T:Gtk.DialogFlags" />.</param> <returns>an object of type <see cref="T:Gtk.Dialog" />.</returns> <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> </Docs> </Member> <Member MemberName="GType"> <MemberSignature Language="C#" Value="public static uint GType { get; };" /> <MemberType>Property</MemberType> <ReturnValue> <ReturnType>System.UInt32</ReturnType> </ReturnValue> <Docs> <summary>The <see cref="T:GLib.Type" /> for <see cref="T:Gtk.Dialog" />.</summary> <returns>The <see cref="T:GLib.Type" /> for the <see cref="T:Gtk.Dialog" /> class.</returns> <remarks /> </Docs> </Member> <Member MemberName="ActionArea"> <MemberSignature Language="C#" Value="public Gtk.VBox ActionArea { get; };" /> <MemberType>Property</MemberType> <ReturnValue> <ReturnType>Gtk.VBox</ReturnType> </ReturnValue> <Docs> <summary>To be added</summary> <returns>an object of type <see cref="T:Gtk.VBox" /></returns> <remarks>To be added</remarks> </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>To be added</summary> <returns>an object of type <see cref="T:Gtk.VBox" />.</returns> <remarks>To be added</remarks> </Docs> </Member> <Member MemberName="DefaultResponse"> <MemberSignature Language="C#" Value="public int DefaultResponse { set; };" /> <MemberType>Property</MemberType> <ReturnValue> <ReturnType>System.Int32</ReturnType> </ReturnValue> <Parameters> </Parameters> <Docs> <summary>Sets the default response_id.</summary> <param name="value">an object of type <see cref="T:System.Int32" /></param> <returns>an object of type <see cref="T:System.Int32" /></returns> <remarks>Sets the default response_id.</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> <param name="value">an object of type <see cref="T:System.Boolean" /></param> <returns>an object of type <see cref="T:System.Boolean" /></returns> <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> </Member> <Member MemberName="Response"> <MemberSignature Language="C#" Value="public event GtkSharp.ResponseHandler Response;" /> <MemberType>Event</MemberType> <ReturnValue><ReturnType>GtkSharp.ResponseHandler</ReturnType></ReturnValue> <Parameters /> <Docs> <summary>To be added</summary> <remarks> 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)" />. 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> </Member> <Member MemberName="Close"> <MemberSignature Language="C#" Value="public event EventHandler Close;" /> <MemberType>Event</MemberType> <ReturnValue><ReturnType>System.EventHandler</ReturnType></ReturnValue> <Parameters /> <Docs> <summary>To be added</summary> <remarks>To be added</remarks> </Docs> </Member> <Member MemberName=".ctor"> <MemberSignature Language="C#" Value="protected Dialog (GLib.Type gtype);" /> <MemberType>Constructor</MemberType> <ReturnValue /> <Parameters> <Parameter Name="gtype" Type="GLib.Type" /> </Parameters> <Docs> <summary>Internal constructor</summary> <param name="gtype">GLib type for the type</param> <returns>Creates a new instance of Dialog, using the GLib-provided type</returns> <remarks> <para>This is a constructor used by derivative types of <see cref="T:Gtk.Dialog" /> that would have their own GLib type assigned to it. This is not typically used by C# code.</para> </remarks> </Docs> </Member> </Members> </Type>