<Type Name="FileFilter" FullName="Gtk.FileFilter">
  <TypeSignature Language="C#" Maintainer="auto" Value="public class FileFilter : Gtk.Object" />
  <AssemblyInfo>
    <AssemblyName>gtk-sharp</AssemblyName>
    <AssemblyPublicKey>[00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00 00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00 71 EB 6C 55 75 52 9C BF 72 44 F7 A6 EA 05 62 84 F9 EA E0 3B CF F2 CC 13 2C 9C 49 0A B3 09 EA B0 B5 6B CE 44 9D F5 03 D9 C0 A8 1E 52 05 85 CD BE 70 E2 FB 90 43 4B AC 04 FA 62 22 A8 00 98 B7 A1 A7 B3 AF 99 1A 41 23 24 BB 43 25 F6 B8 65 BB 64 EB F6 D1 C2 06 D5 73 2D DF BC 70 A7 38 9E E5 3E 0C 24 6E 32 79 74 1A D0 05 03 E4 98 42 E1 9B F3 7B 19 8B 40 21 26 CB 36 89 C2 EA 64 96 A4 7C B4]</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>This class sets up a filter to include or exclude particular
    kinds of files; useful in file selection dialogs.</summary>
    <remarks>
      <para> Simple example showing FileFilter within the FileChooserDialog example:
<example><code lang="C#">
public class MainWindow: Gtk.Window {
	
	protected virtual void OnBtnLoadFileClicked(object sender, System.EventArgs e)
	{
		Gtk.FileChooserDialog fc=
		new Gtk.FileChooserDialog("Choose the file to open",
		                            this,
		                            FileChooserAction.Open,
		                            Gtk.Stock.Cancel,ResponseType.Cancel,
		                            Gtk.Stock.Open,ResponseType.Accept);
		//filter begins here...
		FileFilter filter = new FileFilter();
		filter.Name = "PNG and JPEG images";
		filter.AddMimeType("image/png");
		filter.AddPattern("*.png");
		filter.AddMimeType("image/jpeg");
		filter.AddPattern("*.jpg");
		fc.AddFilter(filter);
		//second filter
		filter = new FileFilter();
		filter.Name = "PNG Images (*.png)";
		filter.AddMimeType("image/png");
		filter.AddPattern("*.png");
		fc.AddFilter(filter);
		//end filter code
		if (fc.Run() == (int)ResponseType.Accept) 
		{
			System.Console.WriteLine
		}
		//Don't forget to call Destroy() or the FileChooserDialog window won't get closed.
		fc.Destroy();
	}
  </code></example></para>
    </remarks>
    <since version="Gtk# 2.4" />
  </Docs>
  <Base>
    <BaseTypeName>Gtk.Object</BaseTypeName>
  </Base>
  <Interfaces>
  </Interfaces>
  <Members>
    <Member MemberName="AddMimeType">
      <MemberSignature Language="C#" Value="public void AddMimeType (string mime_type);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="mime_type" Type="System.String" />
      </Parameters>
      <Docs>
        <summary>Adds a rule allowing a given MIME type to a filter.</summary>
        <param name="mime_type">a <see cref="T:System.String" /></param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="AddPattern">
      <MemberSignature Language="C#" Value="public void AddPattern (string pattern);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="pattern" Type="System.String" />
      </Parameters>
      <Docs>
        <summary>Adds a rule allowing a shell style glob to a filter.</summary>
        <param name="pattern">a <see cref="T:System.String" /></param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Filter">
      <MemberSignature Language="C#" Value="public bool Filter (Gtk.FileFilterInfo filter_info);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="filter_info" Type="Gtk.FileFilterInfo" />
      </Parameters>
      <Docs>
        <summary>Tests whether a file should be displayed according to this filter.</summary>
        <param name="filter_info">a <see cref="T:Gtk.FileFilterInfo" /></param>
        <returns>a <see cref="T:System.Boolean" />, TRUE if the file should be displayed.</returns>
        <remarks>
	  The <see cref="T:Gtk.FileFilterInfo" /> structure 
	  <paramref name="filter_info" /> should include
	  the fields returned from <see cref="M:Gtk.FileFilter.GetNeeded" />.
	  This function will not typically be used by applications; it
	  is intended principally for use in the implementation of
	  <see cref="T:Gtk.FileChooser" />.
	  </remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected FileFilter (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 />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>System.Obsolete</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public FileFilter (IntPtr raw);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="raw" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <summary>Constructor for internal use only.</summary>
        <param name="raw">a <see cref="T:System.IntPtr" /></param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public FileFilter ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>Creates a new file filter with no rules attached to it.</summary>
        <remarks>
	  A newly-created filter doesn't accept any files, so is not
	  particularly useful until you add rules with
	  <see cref="M:Gtk.FileFilter.AddMimeType" />,
	  <see cref="M:Gtk.FileFilter.AddPattern" />, or
	  <see cref="M:Gtk.FileFilter.AddCustom" />.
	</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>The <see cref="T:GLib.GType" /> of this object.</summary>
        <value>a <see cref="T:GLib.GType" /></value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Name">
      <MemberSignature Language="C#" Value="public string Name { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>The human-readable name of the filter.</summary>
        <value>a <see cref="T:System.String" /></value>
        <remarks>
	  This is the string that will be displayed in the file selector 
	  user interface if there is a selectable list of filters.
	</remarks>
      </Docs>
    </Member>
    <Member MemberName="Needed">
      <MemberSignature Language="C#" Value="public Gtk.FileFilterFlags Needed { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.FileFilterFlags</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
	  Gets the fields that need to be filled in for the structure 
	  passed to <see cref="M:Gtk.FileFilter.Filter" />.
	</summary>
        <value>a <see cref="T:Gtk.FileFilterFlags" />, flags that list the needed fields when calling <see cref="M:Gtk.FileFilter.Filter" />.</value>
        <remarks>
	  This function will not typically be used by applications; it
	  is intended principally for use in the implementation of
	  <see cref="T:Gtk.FileChooser" />.
	</remarks>
      </Docs>
    </Member>
    <Member MemberName="AddCustom">
      <MemberSignature Language="C#" Value="public void AddCustom (Gtk.FileFilterFlags needed, Gtk.FileFilterFunc func);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="needed" Type="Gtk.FileFilterFlags" />
        <Parameter Name="func" Type="Gtk.FileFilterFunc" />
      </Parameters>
      <Docs>
        <summary>Adds a rule to a filter that allows files based on a custom callback function.</summary>
        <param name="needed">a <see cref="T:System.Int32" /></param>
        <param name="func">a <see cref="T:Gtk.FileFilterFunc" /></param>
        <remarks>
	  The bitfield <paramref name="needed" /> which is passed in provides information
	  about what sorts of information that the filter function needs;
	  this allows GTK+ to avoid retrieving expensive information when
	  it isn't needed by the filter.
	  </remarks>
      </Docs>
    </Member>
    <Member MemberName="AddPixbufFormats">
      <MemberSignature Language="C#" Value="public void AddPixbufFormats ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added</summary>
        <remarks>To be added</remarks>
        <since version="Gtk# 2.6" />
      </Docs>
    </Member>
  </Members>
</Type>
