Gtk.Recent_Filter

Entities

Simple Types

Record Types

Tagged Types

Access Types

Constants

Subprograms

Generic Instantiations

Description

A Gtk.Recent_Filter.Gtk_Recent_Filter can be used to restrict the files being shown in a Gtk.Recent_Chooser.Gtk_Recent_Chooser. Files can be filtered based on their name (with Gtk.Recent_Filter.Add_Pattern), on their mime type (with Gtk.File_Filter.Add_Mime_Type), on the application that has registered them (with Gtk.Recent_Filter.Add_Application), or by a custom filter function (with Gtk.Recent_Filter.Add_Custom).

Filtering by mime type handles aliasing and subclassing of mime types; e.g. a filter for text/plain also matches a file with mime type application/rtf, since application/rtf is a subclass of text/plain. Note that Gtk.Recent_Filter.Gtk_Recent_Filter allows wildcards for the subtype of a mime type, so you can e.g. filter for image/\*.

Normally, filters are used by adding them to a Gtk.Recent_Chooser.Gtk_Recent_Chooser, see Gtk.Recent_Chooser.Add_Filter, but it is also possible to manually use a filter on a file with Gtk.Recent_Filter.Filter.

Recently used files are supported since GTK+ 2.10.

## GtkRecentFilter as GtkBuildable

The GtkRecentFilter implementation of the GtkBuildable interface supports adding rules using the <mime-types>, <patterns> and <applications> elements and listing the rules within. Specifying a <mime-type>, <pattern> or <application> has the same effect as calling Gtk.Recent_Filter.Add_Mime_Type, Gtk.Recent_Filter.Add_Pattern or Gtk.Recent_Filter.Add_Application.

An example of a UI definition fragment specifying GtkRecentFilter rules:

<object class="GtkRecentFilter">
  <mime-types>
    <mime-type>text/plain</mime-type>
    <mime-type>image/png</mime-type>
  </mime-types>
  <patterns>
    <pattern>*.txt</pattern>
    <pattern>*.png</pattern>
  </patterns>
  <applications>
    <application>gimp</application>
    <application>gedit</application>
    <application>glade</application>
  </applications>
</object>

"+"

function "+"
  (Widget : access Gtk_Recent_Filter_Record'Class)
return Gtk.Buildable.Gtk_Buildable
Parameters
Widget
Return Value

"-"

function "-"
  (Interf : Gtk.Buildable.Gtk_Buildable)
return Gtk_Recent_Filter
Parameters
Interf
Return Value

Add_Age

procedure Add_Age
   (Filter : not null access Gtk_Recent_Filter_Record;
    Days   : Glib.Gint)

Adds a rule that allows resources based on their age - that is, the number of days elapsed since they were last modified. Since: gtk+ 2.10

Parameters
Filter
Days

number of days

Add_Application

procedure Add_Application
   (Filter      : not null access Gtk_Recent_Filter_Record;
    Application : UTF8_String)

Adds a rule that allows resources based on the name of the application that has registered them. Since: gtk+ 2.10

Parameters
Filter
Application

an application name

Add_Custom

procedure Add_Custom
   (Filter       : not null access Gtk_Recent_Filter_Record;
    Needed       : Gtk_Recent_Filter_Flags;
    Func         : Gtk_Recent_Filter_Func;
    Data_Destroy : Glib.G_Destroy_Notify_Address)

Adds a rule to a filter that allows resources based on a custom callback function. The bitfield 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. Since: gtk+ 2.10

Parameters
Filter
Needed

bitfield of flags indicating the information that the custom filter function needs.

Func

callback function; if the function returns True, then the file will be displayed.

Data_Destroy

function to call to free Data when it is no longer needed.

Add_Group

procedure Add_Group
   (Filter : not null access Gtk_Recent_Filter_Record;
    Group  : UTF8_String)

Adds a rule that allows resources based on the name of the group to which they belong Since: gtk+ 2.10

Parameters
Filter
Group

a group name

Add_Mime_Type

procedure Add_Mime_Type
   (Filter    : not null access Gtk_Recent_Filter_Record;
    Mime_Type : UTF8_String)

Adds a rule that allows resources based on their registered MIME type. Since: gtk+ 2.10

Parameters
Filter
Mime_Type

a MIME type

Add_Pattern

procedure Add_Pattern
   (Filter  : not null access Gtk_Recent_Filter_Record;
    Pattern : UTF8_String)

Adds a rule that allows resources based on a pattern matching their display name. Since: gtk+ 2.10

Parameters
Filter
Pattern

a file pattern

Add_Pixbuf_Formats

procedure Add_Pixbuf_Formats
   (Filter : not null access Gtk_Recent_Filter_Record)

Adds a rule allowing image files in the formats supported by GdkPixbuf. Since: gtk+ 2.10

Parameters
Filter

Convert

function Convert (R : Gtk.Recent_Filter.Gtk_Recent_Filter) return System.Address
Parameters
R
Return Value

Convert

function Convert (R : System.Address) return Gtk.Recent_Filter.Gtk_Recent_Filter
Parameters
R
Return Value

Filter

function Filter
   (Filter      : not null access Gtk_Recent_Filter_Record;
    Filter_Info : Gtk_Recent_Filter_Info) return Boolean

Tests whether a file should be displayed according to Filter. The Gtk.Recent_Filter.Gtk_Recent_Filter_Info Filter_Info should include the fields returned from Gtk.Recent_Filter.Get_Needed, and must set the Gtk.Recent_Filter.Gtk_Recent_Filter_Info.contains field of Filter_Info to indicate which fields have been set. This function will not typically be used by applications; it is intended principally for use in the implementation of Gtk.Recent_Chooser.Gtk_Recent_Chooser. Since: gtk+ 2.10

Parameters
Filter
Filter_Info

a Gtk.Recent_Filter.Gtk_Recent_Filter_Info containing information about a recently used resource

Return Value

True if the file should be displayed

From_Object_Free

function From_Object_Free (B : access Gtk_Recent_Filter_Info) return Gtk_Recent_Filter_Info

A GtkRecentFilterInfo struct is used to pass information about the tested file to Gtk.Recent_Filter.Filter.

Parameters
B
Return Value

Get_Name

function Get_Name
   (Filter : not null access Gtk_Recent_Filter_Record) return UTF8_String

Gets the human-readable name for the filter. See Gtk.Recent_Filter.Set_Name. Since: gtk+ 2.10

Parameters
Filter
Return Value

the name of the filter, or null. The returned string is owned by the filter object and should not be freed.

Get_Needed

function Get_Needed
   (Filter : not null access Gtk_Recent_Filter_Record)
    return Gtk_Recent_Filter_Flags

Gets the fields that need to be filled in for the Gtk.Recent_Filter.Gtk_Recent_Filter_Info passed to Gtk.Recent_Filter.Filter This function will not typically be used by applications; it is intended principally for use in the implementation of Gtk.Recent_Chooser.Gtk_Recent_Chooser. Since: gtk+ 2.10

Parameters
Filter
Return Value

bitfield of flags indicating needed fields when calling Gtk.Recent_Filter.Filter

Get_Type

function Get_Type return Glib.GType
Return Value

Gtk_New

procedure Gtk_New (Filter : out Gtk_Recent_Filter)

Creates a new Gtk.Recent_Filter.Gtk_Recent_Filter with no rules added to it. Such filter does not accept any recently used resources, so is not particularly useful until you add rules with Gtk.Recent_Filter.Add_Pattern, Gtk.Recent_Filter.Add_Mime_Type, Gtk.Recent_Filter.Add_Application, Gtk.Recent_Filter.Add_Age. To create a filter that accepts any recently used resource, use:

GtkRecentFilter *filter = gtk_recent_filter_new ();
gtk_recent_filter_add_pattern (filter, "*");

Since: gtk+ 2.10 Initialize does nothing if the object was already created with another call to Initialize* or G_New.

Parameters
Filter

Gtk_Recent_Filter

type Gtk_Recent_Filter is access all Gtk_Recent_Filter_Record'Class;

Gtk_Recent_Filter_Flags

type Gtk_Recent_Filter_Flags is mod 2 ** Integer'Size;

These flags indicate what parts of a Gtk.Recent_Filter.Gtk_Recent_Filter_Info struct are filled or need to be filled.

Gtk_Recent_Filter_Flags_Properties

package Gtk_Recent_Filter_Flags_Properties is
   new Generic_Internal_Discrete_Property (Gtk_Recent_Filter_Flags);

Gtk_Recent_Filter_Func

type Gtk_Recent_Filter_Func is access function (Filter_Info : Gtk_Recent_Filter_Info) return Boolean;

The type of function that is used with custom filters, see Gtk.Recent_Filter.Add_Custom.

Parameters
Filter_Info

a Gtk.Recent_Filter.Gtk_Recent_Filter_Info that is filled according to the Needed flags passed to Gtk.Recent_Filter.Add_Custom

Return Value

True if the file should be displayed

Gtk_Recent_Filter_Info

type Gtk_Recent_Filter_Info is record
   Contains : Gtk_Recent_Filter_Flags;
   URI : Gtkada.Types.Chars_Ptr;
   Display_Name : Gtkada.Types.Chars_Ptr;
   Mime_Type : Gtkada.Types.Chars_Ptr;
   Applications : Gtkada.Types.char_array_access;
   Groups : Gtkada.Types.char_array_access;
   Age : Glib.Gint := 0;
end record;
Record fields
Contains
URI
Display_Name
Mime_Type
Applications
Groups
Age

Gtk_Recent_Filter_List

package Gtk_Recent_Filter_List is new Generic_SList (Gtk.Recent_Filter.Gtk_Recent_Filter);

Gtk_Recent_Filter_New

function Gtk_Recent_Filter_New return Gtk_Recent_Filter

Creates a new Gtk.Recent_Filter.Gtk_Recent_Filter with no rules added to it. Such filter does not accept any recently used resources, so is not particularly useful until you add rules with Gtk.Recent_Filter.Add_Pattern, Gtk.Recent_Filter.Add_Mime_Type, Gtk.Recent_Filter.Add_Application, Gtk.Recent_Filter.Add_Age. To create a filter that accepts any recently used resource, use:

GtkRecentFilter *filter = gtk_recent_filter_new ();
gtk_recent_filter_add_pattern (filter, "*");

Since: gtk+ 2.10

Return Value

Gtk_Recent_Filter_Record

type Gtk_Recent_Filter_Record is new GObject_Record with null record;

Implements_Gtk_Buildable

package Implements_Gtk_Buildable is new Glib.Types.Implements
  (Gtk.Buildable.Gtk_Buildable, Gtk_Recent_Filter_Record, Gtk_Recent_Filter);

Initialize

procedure Initialize
   (Filter : not null access Gtk_Recent_Filter_Record'Class)

Creates a new Gtk.Recent_Filter.Gtk_Recent_Filter with no rules added to it. Such filter does not accept any recently used resources, so is not particularly useful until you add rules with Gtk.Recent_Filter.Add_Pattern, Gtk.Recent_Filter.Add_Mime_Type, Gtk.Recent_Filter.Add_Application, Gtk.Recent_Filter.Add_Age. To create a filter that accepts any recently used resource, use:

GtkRecentFilter *filter = gtk_recent_filter_new ();
gtk_recent_filter_add_pattern (filter, "*");

Since: gtk+ 2.10 Initialize does nothing if the object was already created with another call to Initialize* or G_New.

Parameters
Filter

Property_Gtk_Recent_Filter_Flags

type Property_Gtk_Recent_Filter_Flags is new Gtk_Recent_Filter_Flags_Properties.Property;

Recent_Filter_Age

Recent_Filter_Age : constant Gtk_Recent_Filter_Flags := 32;

Recent_Filter_Application

Recent_Filter_Application : constant Gtk_Recent_Filter_Flags := 8;

Recent_Filter_Display_Name

Recent_Filter_Display_Name : constant Gtk_Recent_Filter_Flags := 2;

Recent_Filter_Group

Recent_Filter_Group : constant Gtk_Recent_Filter_Flags := 16;

Recent_Filter_Mime_Type

Recent_Filter_Mime_Type : constant Gtk_Recent_Filter_Flags := 4;

Recent_Filter_Uri

Recent_Filter_Uri : constant Gtk_Recent_Filter_Flags := 1;

Set_Name

procedure Set_Name
   (Filter : not null access Gtk_Recent_Filter_Record;
    Name   : UTF8_String)

Sets the human-readable name of the filter; this is the string that will be displayed in the recently used resources selector user interface if there is a selectable list of filters. Since: gtk+ 2.10

Parameters
Filter
Name

then human readable name of Filter