Toc Gallery Index Tree Gtk.File_Selection

Screenshot

No screeshot

Hierarchy

Description

A Gtk_File_Selection is a general widget to interactively select file. It displays a dialog in which the user can navigate through directories, select a file, and even manipulate files with operations like removing, renaming,... Currently, only one file can be selected in the dialog.

Types

  • type Gtk_File_Selection is access all Gtk_File_Selection_Record'Class;
  • type Gtk_File_Selection_Record is new Gtk.Dialog.Gtk_Dialog_Record with private;

Subprograms

    Operations on the dialog

  • procedure Gtk_New (File_Selection : out Gtk_File_Selection; Title : UTF8_String);
    procedure Initialize (File_Selection : access Gtk_File_Selection_Record'Class; Title : UTF8_String);
    Creates or initializes a new file selection dialog. Title is the name of the dialog, as displayed in its title bar.
  • function Get_Type return Gtk.Gtk_Type;
    Return the internal value associated with a Gtk_File_Selection.
  • procedure Set_Filename (File_Selection : access Gtk_File_Selection_Record; Filename : UTF8_String);
    function Get_Filename (File_Selection : access Gtk_File_Selection_Record) return UTF8_String;
    Highlight the given file in the dialog. Note that this does not close the dialog. You can also use this procedure to select the directory to be displayed in the dialog. Along with Complete, this allows you to set some filters in the dialog.
  • function Get_Selections (Filesel : access Gtk_File_Selection_Record) return GNAT.Strings.String_List;
    Retrieves the list of file selections the user has made in the dialog box. This function is intended for use when the user can select multiple files in the file list. The filenames are in the GLib file name encoding. To convert to UTF-8, call g_filename_to_utf8() on each string. The returned value must be freed by the caller
  • procedure Complete (File_Selection : access Gtk_File_Selection_Record; Pattern : UTF8_String);
    Set the filter used to display the files. The pattern is displayed in the entry at the bottom of the dialog, and the list of files displayed in the list.
  • procedure Show_Fileop_Buttons (File_Selection : access Gtk_File_Selection_Record);
    procedure Hide_Fileop_Buttons (File_Selection : access Gtk_File_Selection_Record);
    When this function is called, the dialog includes a series of buttons for file operations (create directory, rename a file, delete a file).
  • procedure Set_Show_File_Op_Buttons (File_Selection : access Gtk_File_Selection_Record; Flag : Boolean);
    Choose whether to display or not the file operation buttons. If Flag is true, calls Show_Fileop_Buttons, otherwise calls Hide_Fileop_Buttons.
  • procedure Set_Select_Multiple (Filesel : access Gtk_File_Selection_Record; Select_Multiple : Boolean);
    function Get_Select_Multiple (Filesel : access Gtk_File_Selection_Record) return Boolean;
    Sets whether the user is allowed to select multiple files in the file list. Use Get_selections to get the list of selected files.
  • Getting the fields

    The following functions are provided to access the fields of the file selection dialog. This dialog is divided into two main areas, the Action_Area which is the top part that contains the list of files, and the button area which is the bottom part that contains the OK and Cancel buttons.
  • function Get_Action_Area (File_Selection : access Gtk_File_Selection_Record) return Gtk.Box.Gtk_Box;
    Return the action area. This is the area that contains the list of files, the filter entry,etc.
  • function Get_Button_Area (File_Selection : access Gtk_File_Selection_Record) return Gtk.Box.Gtk_Box;
    Return the button area. This is the area that contains the OK and Cancel buttons.
  • function Get_Dir_List (File_Selection : access Gtk_File_Selection_Record) return Gtk.Widget.Gtk_Widget;
    Return the list that display the list of directories.
  • function Get_File_List (File_Selection : access Gtk_File_Selection_Record) return Gtk.Widget.Gtk_Widget;
    Return the list that display the list of files in the selected directory
  • function Get_Cancel_Button (File_Selection : access Gtk_File_Selection_Record) return Gtk.Button.Gtk_Button;
    Return the Cancel button. To remove this button from the dialog, call Hide on the return value. The callbacks on this button should simply close the dialog, but should ignore the file selected by the user.
  • function Get_Help_Button (File_Selection : access Gtk_File_Selection_Record) return Gtk.Button.Gtk_Button;
    Return the Help button. To remove this button from the dialog, call Hide on the return value. The callbacks on this button should display a new dialog that explain what file the user should select.
  • function Get_Ok_Button (File_Selection : access Gtk_File_Selection_Record) return Gtk.Button.Gtk_Button;
    Return the OK button. The callbacks on this button should close the dialog and do something with the file selected by the user.
  • function Get_History_Pulldown (File_Selection : access Gtk_File_Selection_Record) return Gtk.Widget.Gtk_Widget;
    Return the menu that display the history of directories for easy access by the user.
  • function Get_Selection_Entry (File_Selection : access Gtk_File_Selection_Record) return Gtk.Widget.Gtk_Widget;
    Return the entry used to set the filter on the list of directories. The simplest way to insert text in this entry is to use the Complete procedure above.
  • function Get_Selection_Text (File_Selection : access Gtk_File_Selection_Record) return Gtk.Widget.Gtk_Widget;
    Return the text displayed just above the Selection_Entry.

Signals

Properties

  • Filename_Property
    UTF8_String
    The currently selected filename.
    See: Set_Filename and Get_Filename
  • Select_Multiple_Property
    Boolean
    Whether to allow multiple files to be selected
  • Show_Fileops_Property
    Boolean
    Whether buttons for creating/manipulating files should

Testgtk source code

This code is part of testgtk, a demo application packaged with GtkAda. Testgtk demonstrates the various widgets of GtkAda
----------------------------------------------------------------------- -- GtkAda - Ada95 binding for the Gimp Toolkit -- -- -- -- Copyright (C) 1998-1999 -- -- Emmanuel Briot, Joel Brobecker and Arnaud Charlet -- -- -- -- This library is free software; you can redistribute it and/or -- -- modify it under the terms of the GNU General Public -- -- License as published by the Free Software Foundation; either -- -- version 2 of the License, or (at your option) any later version. -- -- -- -- This library is distributed in the hope that it will be useful, -- -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- -- General Public License for more details. -- -- -- -- You should have received a copy of the GNU General Public -- -- License along with this library; if not, write to the -- -- Free Software Foundation, Inc., 59 Temple Place - Suite 330, -- -- Boston, MA 02111-1307, USA. -- -- -- -- -- -- -- -- -- -- ----------------------------------------------------------------------- with Gtk.Box; use Gtk.Box; with Gtk.Button; use Gtk.Button; with Gtk.Enums; use Gtk.Enums; with Gtk.File_Selection; use Gtk.File_Selection; with Gtk.Handlers; use Gtk.Handlers; with Gtk.Widget; use Gtk.Widget; with Common; use Common; with Gtk; use Gtk; with Ada.Text_IO; package body Create_File_Selection is type Gtk_File_Selection_Access is access all Gtk_File_Selection; package Destroy_Cb is new Handlers.User_Callback (Gtk_File_Selection_Record, Gtk_File_Selection_Access); package Files_Cb is new Handlers.Callback (Gtk_File_Selection_Record); Window : aliased Gtk_File_Selection; ---------- -- Help -- ---------- function Help return String is begin return "@bGtk_File_Selection@B is the basic widget to ask the user" & " for a file name. It can also give access to basic file and" & " directory manipulation, such as create, rename, delete."; end Help; --------------- -- Destroyed -- --------------- procedure Destroyed (Win : access Gtk_File_Selection_Record'Class; Ptr : in Gtk_File_Selection_Access) is pragma Warnings (Off, Win); begin Ptr.all := null; end Destroyed; -------- -- Ok -- -------- procedure OK (Files : access Gtk_File_Selection_Record'Class) is begin Ada.Text_IO.Put_Line ("Selected " & Get_Filename (Files)); Destroy (Files); end OK; ------------ -- Cancel -- ------------ procedure Cancel (Win : access Gtk_Widget_Record'Class) is begin Destroy (Win); end Cancel; ----------------- -- Show_Fileop -- ----------------- procedure Show_Fileop (Files : access Gtk_File_Selection_Record'Class) is begin Show_Fileop_Buttons (Files); end Show_Fileop; ----------------- -- Hide_Fileop -- ----------------- procedure Hide_Fileop (Files : access Gtk_File_Selection_Record'Class) is begin Hide_Fileop_Buttons (Files); end Hide_Fileop; --------- -- Run -- --------- procedure Run (Frame : access Gtk.Frame.Gtk_Frame_Record'Class) is Button : Gtk_Button; begin Set_Label (Frame, "File Selection"); if Window = null then Gtk_New (Window, Title => "File Selection Dialog"); Hide_Fileop_Buttons (Window); Set_Position (Window, Win_Pos_Mouse); Destroy_Cb.Connect (Window, "destroy", Destroy_Cb.To_Marshaller (Destroyed'Access), Window'Access); Files_Cb.Object_Connect (Get_Ok_Button (Window), "clicked", Files_Cb.To_Marshaller (OK'Access), Slot_Object => Window); Widget_Handler.Object_Connect (Get_Cancel_Button (Window), "clicked", Widget_Handler.To_Marshaller (Cancel'Access), Slot_Object => Window); Gtk_New (Button, Label => "Hide Fileops"); Files_Cb.Object_Connect (Button, "clicked", Files_Cb.To_Marshaller (Hide_Fileop'Access), Slot_Object => Window); Pack_Start (Get_Action_Area (Window), Button, False, False, 0); Show (Button); Gtk_New (Button, Label => "Show Fileops"); Files_Cb.Object_Connect (Button, "clicked", Files_Cb.To_Marshaller (Show_Fileop'Access), Slot_Object => Window); Pack_Start (Get_Action_Area (Window), Button, False, False, 0); Show (Button); Show (Window); else Destroy (Window); end if; end Run; end Create_File_Selection;

Alphabetical Index