<Type Name="FileSelection" FullName="Gtk.FileSelection">
  <TypeSignature Language="C#" Maintainer="Lee Mallabone" Value="public class FileSelection : Gtk.Dialog" />
  <AssemblyInfo>
    <AssemblyName>gtk-sharp</AssemblyName>
    <AssemblyPublicKey>
    </AssemblyPublicKey>
    <AssemblyVersion>2.6.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 a new dialog for the user to select one or more files, directories, or cancel.</summary>
    <remarks>
      <para>
        <see cref="T:Gtk.FileSelection" /> should be used to retrieve file or directory names from the user. It will create a new dialog window containing a directory list, and a file list corresponding to the current working directory.
    </para>
      <para>
    The filesystem can be navigated using the directory list or the drop-down history menu. Alternatively, the TAB key can be used to navigate using filename completion - common in text based editors such as emacs and jed.</para>
      <para>
    Simple file operations; create directory, delete file, and rename file, are available from buttons at the top of the dialog.</para>
      <para>
    The functionality of the <see cref="T:Gtk.FileSelection" /> can be extended by using the available accessors to the buttons and drop downs.
    </para>
      <example>
        <code lang="C#">
using System;
using Gtk;

class FileSelectionSample
{
	Label lbl;
	FileSelection fs;

	static void Main ()
	{
		new FileSelectionSample ();
	}

	FileSelectionSample ()
	{
		Application.Init ();
		Window win = new Window ("FileSelectionSample");
		win.SetDefaultSize (250,200);
		win.DeleteEvent += new DeleteEventHandler (OnWinDelete);
		VBox vbox = new VBox (true, 1);
		win.Add (vbox);
		Button btn = new Button ("Select a file.");
		btn.Clicked += new EventHandler (OnButtonClicked);
		vbox.Add (btn);
		lbl = new Label ("Selected: ");
		vbox.Add (lbl);
		win.ShowAll ()

		fs = new FileSelection ("Choose a file");
		fs.Response += new ResponseHandler (OnFileSelectionResponse);

		Application.Run ();
	}

	void OnButtonClicked (object o, EventArgs args)
	{
		fs.Run ();
		fs.Hide ();
	}

	void OnFileSelectionResponse (object o, ResponseArgs args)
	{
		if (args.ResponseId == ResponseType.Ok)
		{
			lbl.Text = "Selected: " + fs.Filename;
		}
	}

	void OnWinDelete (object o, DeleteEventArgs args)
	{
		Application.Quit ();
	}
} 
  </code>
      </example>
    </remarks>
  </Docs>
  <Base>
    <BaseTypeName>Gtk.Dialog</BaseTypeName>
  </Base>
  <Interfaces>
  </Interfaces>
  <Members>
    <Member MemberName="Complete">
      <MemberSignature Language="C#" Value="public void Complete (string pattern);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="pattern" Type="System.String" />
      </Parameters>
      <Docs>
        <summary>Restrict the visible files and directories to those that match the given <paramref name="pattern" />.</summary>
        <param name="pattern">A simple wildcard pattern such as '*.txt'.</param>
        <remarks>
          <para>This method attempts to match <paramref name="pattern" /> to a valid filenames or subdirectories in the current directory. If a match can be made, the matched filename will appear in the text entry field of the <see cref="T:Gtk.FileSelection" />. If a partial match can be made, the "Files" list will contain those file names which have been partially matched, and the "Folders" list will show those directories with a partial match.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="ShowFileopButtons">
      <MemberSignature Language="C#" Value="public void ShowFileopButtons ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Ensures that the file operation buttons are visible.</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="HideFileopButtons">
      <MemberSignature Language="C#" Value="public void HideFileopButtons ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Ensures that the file operation buttons are hidden.</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public FileSelection (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 FileSelection (string title);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="title" Type="System.String" />
      </Parameters>
      <Docs>
        <summary>The main way to construct a new file selector.</summary>
        <param name="title">A title that will appear in the window's title bar.</param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="ActionArea">
      <MemberSignature Language="C#" Value="public Gtk.HButtonBox ActionArea { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.HButtonBox</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The widget enclosing the items that can be acted upon.</summary>
        <value>an object of type <see cref="T:Gtk.HButtonBox" /></value>
        <remarks>(FIXME: how is this different from ButtonArea? Gtk+ docs are thin about this.)</remarks>
      </Docs>
    </Member>
    <Member MemberName="ButtonArea">
      <MemberSignature Language="C#" Value="public Gtk.HButtonBox ButtonArea { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.HButtonBox</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>A widget to contain all the button objects in this dialog.</summary>
        <value>an object of type <see cref="T:Gtk.HButtonBox" /></value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="FileopRenFile">
      <MemberSignature Language="C#" Value="public Gtk.Button FileopRenFile { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.Button</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The 'rename file' button of this file selector.</summary>
        <value />
        <remarks>
          <para>This button may or may not be visible, see <see cref="M:Gtk.FileSelection.ShowFileopButtons()" /> and <see cref="M:Gtk.FileSelection.ShowFileopButtons()" />.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="FileopDelFile">
      <MemberSignature Language="C#" Value="public Gtk.Button FileopDelFile { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.Button</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The 'delete' button of this file selector.</summary>
        <value />
        <remarks>
          <para>This button may or may not be visible, see <see cref="M:Gtk.FileSelection.ShowFileopButtons()" /> and <see cref="M:Gtk.FileSelection.ShowFileopButtons()" />.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="FileopCDir">
      <MemberSignature Language="C#" Value="public Gtk.Button FileopCDir { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.Button</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The 'create directory' button of this file selector.</summary>
        <value />
        <remarks>
          <para>This button may or may not be visible, see <see cref="M:Gtk.FileSelection.ShowFileopButtons()" /> and <see cref="M:Gtk.FileSelection.ShowFileopButtons()" />.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="FileopFile">
      <MemberSignature Language="C#" Value="public string FileopFile { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The filename selected by this <see cref="T:Gtk.FileSelection" />.</summary>
        <value>an object of type <see cref="T:System.String" /></value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="FileopEntry">
      <MemberSignature Language="C#" Value="public Gtk.Entry FileopEntry { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.Entry</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The main <see cref="T:Gtk.Entry" /> widget of this <see cref="T:Gtk.FileSelection" />.</summary>
        <value />
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="FileopDialog">
      <MemberSignature Language="C#" Value="public Gtk.MessageDialog FileopDialog { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.MessageDialog</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The dialog box for confirming actions, if necessary.</summary>
        <value>an object of type <see cref="T:Gtk.MessageDialog" /></value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="HistoryMenu">
      <MemberSignature Language="C#" Value="public Gtk.Menu HistoryMenu { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.Menu</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The <see cref="T:Gtk.Menu" /> that is displayed by the <see cref="P:Gtk.FileSelection.HistoryPulldown" />.</summary>
        <value>A menu containing the file system paths higher than the selected directory, and the user's directory history.</value>
        <remarks>
          <para>Note that this <see cref="T:Gtk.Widget" /> does not just contain history, it contains a list of directories above the current directory in the filesystem as well as user directory history.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="HistoryPulldown">
      <MemberSignature Language="C#" Value="public Gtk.OptionMenu HistoryPulldown { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.OptionMenu</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The drop down menu containing directories in the filesystem above the selected directory, and the user's directory history.</summary>
        <value>The <see cref="T:Gtk.OptionMenu" /> at the top of the file selector.</value>
        <remarks>
          <para>This widget displays the menu returned by <see cref="P:Gtk.FileSelection.HistoryMenu" />.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="HelpButton">
      <MemberSignature Language="C#" Value="public Gtk.Button HelpButton { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.Button</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>A help button, not displayed by default.</summary>
        <value />
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="CancelButton">
      <MemberSignature Language="C#" Value="public Gtk.Button CancelButton { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.Button</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The 'cancel' button of this file selector.</summary>
        <value />
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="OkButton">
      <MemberSignature Language="C#" Value="public Gtk.Button OkButton { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.Button</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The 'OK' button of this file selector.</summary>
        <value />
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="SelectionText">
      <MemberSignature Language="C#" Value="public Gtk.Label SelectionText { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.Label</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The text to display about the file to be selected.</summary>
        <value>an object of type <see cref="T:Gtk.Label" /></value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="SelectionEntry">
      <MemberSignature Language="C#" Value="public Gtk.Entry SelectionEntry { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.Entry</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The text-entry widget for entering a filename into.</summary>
        <value>an object of type <see cref="T:Gtk.Entry" /></value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="FileList">
      <MemberSignature Language="C#" Value="public Gtk.TreeView FileList { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeView</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The <see cref="T:Gtk.TreeView" /> widget that displays files in this file selector.</summary>
        <value />
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="DirList">
      <MemberSignature Language="C#" Value="public Gtk.TreeView DirList { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeView</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The <see cref="T:Gtk.TreeView" /> widget that displays directories in this file selector.</summary>
        <value />
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="MainVBox">
      <MemberSignature Language="C#" Value="public Gtk.VBox MainVBox { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.VBox</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>The main <see cref="T:Gtk.VBox" /> in the file selector.</summary>
        <value>a <see cref="T:Gtk.VBox" /></value>
        <remarks>
        </remarks>
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="Selections">
      <MemberSignature Language="C#" Value="public string[] Selections { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String[]</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Get the files that are selected</summary>
        <value>An array of file paths</value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="ShowFileops">
      <MemberSignature Language="C#" Value="public bool ShowFileops { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Manage whether buttons are displayed for doing file operations.</summary>
        <value>
          <see langword="true" /> for buttons to be shown, <see langword="false" /> otherwise.</value>
        <remarks>
          <para>This manipulates whether the buttons for creating a directory, deleting files and renaming files, are displayed.</para>
        </remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property(Name="show_fileops")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="Filename">
      <MemberSignature Language="C#" Value="public string Filename { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Manage the selected filename.</summary>
        <value>The selected filename in the on-disk encoding.</value>
        <remarks>
          <para>If <paramref name="value" /> includes a directory path, then the requestor will open with that path as its current working directory. The encoding of filename is the on-disk encoding, which may not be UTF-8.</para>
        </remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property(Name="filename")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="SelectMultiple">
      <MemberSignature Language="C#" Value="public bool SelectMultiple { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Manage whether more than one file can be selected.</summary>
        <value>
          <see langword="true" /> if multiple selections are allowed, <see langword="false" /> otherwise.</value>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property(Name="select_multiple")</AttributeName>
        </Attribute>
      </Attributes>
    </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.FileSelection" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected FileSelection (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(Message=null, IsError=False)</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
  </Members>
</Type>