------------------------------------------------------------------------------ -- -- -- Copyright (C) 1998-2000 E. Briot, J. Brobecker and A. Charlet -- -- Copyright (C) 2000-2014, AdaCore -- -- -- -- This library is free software; you can redistribute it and/or modify it -- -- under terms of the GNU General Public License as published by the Free -- -- Software Foundation; either version 3, 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 MERCHAN- -- -- TABILITY or FITNESS FOR A PARTICULAR PURPOSE. -- -- -- -- As a special exception under Section 7 of GPL version 3, you are granted -- -- additional permissions described in the GCC Runtime Library Exception, -- -- version 3.1, as published by the Free Software Foundation. -- -- -- -- You should have received a copy of the GNU General Public License and -- -- a copy of the GCC Runtime Library Exception along with this program; -- -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- -- <http://www.gnu.org/licenses/>. -- -- -- ------------------------------------------------------------------------------ pragma Ada_2005; pragma Warnings (Off, "*is already use-visible*");
with GNAT.Strings; use GNAT.Strings;
with Gdk.Display; use Gdk.Display;
with Gdk.Pixbuf; use Gdk.Pixbuf;
with Gdk.Types; use Gdk.Types;
with Glib; use Glib;
package Gtk.Selection_Data is
type Gtk_Selection_Data is new Glib.C_Boxed with null record;
Null_Gtk_Selection_Data : constant Gtk_Selection_Data;
function From_Object (Object : System.Address) return Gtk_Selection_Data;
function From_Object_Free (B : access Gtk_Selection_Data'Class) return Gtk_Selection_Data;
pragma Inline (From_Object_Free, From_Object);
------------------ -- Constructors -- ------------------ function Get_Type return Glib.GType;
pragma Import (C, Get_Type, "gtk_selection_data_get_type");
------------- -- Methods -- ------------- function Copy (Selection : Gtk_Selection_Data) return Gtk_Selection_Data;
-- Makes a copy of a Gtk.Selection_Data.Gtk_Selection_Data structure and -- its data. procedure Free (Selection : Gtk_Selection_Data);
-- Frees a Gtk.Selection_Data.Gtk_Selection_Data structure returned from -- Gtk.Selection_Data.Copy. function Get_Data (Selection : Gtk_Selection_Data) return System.Address;
-- Retrieves the raw data of the selection. -- Since: gtk+ 2.14 function Get_Data_Type
(Selection : Gtk_Selection_Data) return Gdk.Types.Gdk_Atom;
-- Retrieves the data type of the selection. -- Since: gtk+ 2.14 function Get_Display
(Selection : Gtk_Selection_Data) return Gdk.Display.Gdk_Display;
-- Retrieves the display of the selection. -- Since: gtk+ 2.14 function Get_Format (Selection : Gtk_Selection_Data) return Gint;
-- Retrieves the format of the selection. -- Since: gtk+ 2.14 function Get_Length (Selection : Gtk_Selection_Data) return Gint;
-- Retrieves the length of the raw data of the selection. -- Since: gtk+ 2.14 function Get_Pixbuf
(Selection : Gtk_Selection_Data) return Gdk.Pixbuf.Gdk_Pixbuf;
-- Gets the contents of the selection data as a Gdk.Pixbuf.Gdk_Pixbuf. -- Since: gtk+ 2.6 function Set_Pixbuf
(Selection : Gtk_Selection_Data;
Pixbuf : not null access Gdk.Pixbuf.Gdk_Pixbuf_Record'Class)
return Boolean; -- Sets the contents of the selection from a Gdk.Pixbuf.Gdk_Pixbuf The -- pixbuf is converted to the form determined by Selection_Data->target. -- Since: gtk+ 2.6 -- "pixbuf": a Gdk.Pixbuf.Gdk_Pixbuf function Get_Selection
(Selection : Gtk_Selection_Data) return Gdk.Types.Gdk_Atom;
-- Retrieves the selection Gdk.Types.Gdk_Atom of the selection data. -- Since: gtk+ 2.16 function Get_Target
(Selection : Gtk_Selection_Data) return Gdk.Types.Gdk_Atom;
-- Retrieves the target of the selection. -- Since: gtk+ 2.14 function Get_Text (Selection : Gtk_Selection_Data) return UTF8_String;
-- Gets the contents of the selection data as a UTF-8 string. function Set_Text
(Selection : Gtk_Selection_Data;
Str : UTF8_String;
Len : Gint) return Boolean;
-- Sets the contents of the selection from a UTF-8 encoded string. The -- string is converted to the form determined by Selection_Data->target. -- "str": a UTF-8 string -- "len": the length of Str, or -1 if Str is nul-terminated. function Get_Uris
(Selection : Gtk_Selection_Data) return GNAT.Strings.String_List;
-- Gets the contents of the selection data as array of URIs. -- Since: gtk+ 2.6 function Set_Uris
(Selection : Gtk_Selection_Data;
Uris : GNAT.Strings.String_List) return Boolean;
-- Sets the contents of the selection from a list of URIs. The string is -- converted to the form determined by Selection_Data->target. -- Since: gtk+ 2.6 -- "uris": a null-terminated array of strings holding URIs function Targets_Include_Image
(Selection : Gtk_Selection_Data;
Writable : Boolean) return Boolean;
-- Given a Gtk.Selection_Data.Gtk_Selection_Data object holding a list of -- targets, determines if any of the targets in Targets can be used to -- provide a Gdk.Pixbuf.Gdk_Pixbuf. -- Since: gtk+ 2.6 -- "writable": whether to accept only targets for which GTK+ knows how to -- convert a pixbuf into the format function Targets_Include_Text
(Selection : Gtk_Selection_Data) return Boolean;
-- Given a Gtk.Selection_Data.Gtk_Selection_Data object holding a list of -- targets, determines if any of the targets in Targets can be used to -- provide text. function Targets_Include_Uri
(Selection : Gtk_Selection_Data) return Boolean;
-- Given a Gtk.Selection_Data.Gtk_Selection_Data object holding a list of -- targets, determines if any of the targets in Targets can be used to -- provide a list or URIs. -- Since: gtk+ 2.10 ---------------------- -- GtkAda additions -- ---------------------- --------------- -- Selection -- --------------- function Make_Atom (Num : Gulong) return Gdk.Types.Gdk_Atom;
pragma Import (C, Make_Atom, "ada_make_atom");
-- Auxiliary subprogram subtype Gdk_Selection is Gdk.Types.Gdk_Atom;
-- These are predefined atom values for several common selections. -- You are of course free to create new ones, but most of the time you -- should simply use Selection_Primary unless you foresee the need for -- multiple simultaneous selections. -- To access the clipboard on windows machines, you might need to create -- a new selection with Gdk.Property.Atom_Intern ("CLIPBOARD"); Selection_Primary : constant Gdk_Selection := Make_Atom (1);
Selection_Secondary : constant Gdk_Selection := Make_Atom (2);
procedure Selection_Data_Set
(Selection : Gtk_Selection_Data;
The_Type : Gdk.Types.Gdk_Atom;
Format : Gint;
Data : System.Address;
Length : Gint);
-- General form of Selection_Data_Set. -- Any data can be transmitted. Length is the number of bytes in Data. procedure Selection_Data_Set
(Selection : Gtk_Selection_Data;
The_Type : Gdk.Types.Gdk_Atom;
Format : Gint;
Data : String);
-- Set the data for a selection (special case for strings) -- This function is generally called when a drag-and-drop operation -- ask the source widget for the data to be transmitted. In that case, -- a Selection_Data was already transmitted and is given as a handler -- parameter for the signal "drag_data_get". The_Type can simply be -- extracted from the Selection_Data. function Get_Targets
(Selection : Gtk_Selection_Data) return Gdk.Types.Gdk_Atom_Array;
-- Gets the contents of Selection_Data as an array of targets. -- This can be used to interpret the results of getting -- the standard TARGETS target that is always supplied for -- any selection. -- This is different from Get_Target, which indicate the current format -- that the selection contains. Get_Targets only applies when Get_Target -- is "TARGETS". function Get_Data_As_String (Selection : Gtk_Selection_Data) return String;
-- Return the data as a string. -- This is only a convenience function, since it simply creates a string -- from the return of Get_Data. private Null_Gtk_Selection_Data : constant Gtk_Selection_Data := (Glib.C_Boxed with null record);
end Gtk.Selection_Data;