GtkSharp/doc/en/Gtk/Dialog.xml

538 lines
24 KiB
XML
Raw Normal View History

<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>
<AssemblyPublicKey>
</AssemblyPublicKey>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyCulture>neutral</AssemblyCulture>
<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;
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>
<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="Finalize">
<MemberSignature Language="C#" Value="protected override 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, 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[]" />
</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>
<returns>a <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="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>
<returns>an object of type <see cref="T:Gtk.VBox" />.</returns>
<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 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>
</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>
</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>
<returns>a <see cref="T:Gtk.HButtonBox" /></returns>
<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>
<returns>a <see cref="T:GLib.GType" /></returns>
<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>
<returns>a <see cref="T:Gtk.Dialog" /></returns>
<remarks>Chain to this constructor if you have manually registered a native <see cref="T:GLib.GType" /> value for your subclass.</remarks>
</Docs>
</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 />
</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>
<returns>a <see cref="T:Gtk.ResponseType" /></returns>
<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>
</Members>
</Type>