-----------------------------------------------------------------------
-- GtkAda - Ada95 binding for Gtk+/Gnome --
-- --
-- Copyright (C) 1998-2000 E. Briot, J. Brobecker and A. Charlet --
-- Copyright (C) 2000-2006 AdaCore --
-- --
-- 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. --
-- --
-- As a special exception, if other files instantiate generics from --
-- this unit, or you link this unit with other files to produce an --
-- executable, this unit does not by itself cause the resulting --
-- executable to be covered by the GNU General Public License. This --
-- exception does not however invalidate any other reasons why the --
-- executable file might be covered by the GNU Public License. --
-----------------------------------------------------------------------
--
-- The Gtk_Image widget displays a graphical image. The image is typically
-- created using Gdk.Image.Gdk_New.
--
-- The pixels in a Gtk_Image may be manipulated by the application after
-- creation, as Gtk_Image store the pixel data on the client side. If you wish
-- to store the pixel data on the server side (thus not allowing manipulation
-- of the data after creation) you should use Gtk_Pixmap.
--
-- 2.8.17
-- Display widgets
-- gtk-image
with Glib.Properties;
with Gdk.Bitmap;
with Gdk.Pixbuf;
with Gdk.Pixmap;
with Gdk.Image;
with Gtk.Enums;
with Gtk.Icon_Factory;
with Gtk.Misc;
with GNAT.Strings;
with Glib.Generic_Properties;
package Gtk.Image is
type Gtk_Image_Record is new Gtk.Misc.Gtk_Misc_Record with private;
type Gtk_Image is access all Gtk_Image_Record'Class;
type Gtk_Image_Type is
(Image_Empty,
Image_Pixmap,
Image_Image,
Image_Pixbuf,
Image_Stock,
Image_Icon_Set,
Image_Animation);
pragma Convention (C, Gtk_Image_Type);
procedure Gtk_New (Image : out Gtk_Image);
procedure Initialize (Image : access Gtk_Image_Record'Class);
-- Creates a new empty image
procedure Gtk_New
(Image : out Gtk_Image;
Val : Gdk.Image.Gdk_Image;
Mask : Gdk.Bitmap.Gdk_Bitmap);
procedure Initialize
(Image : access Gtk_Image_Record'Class;
Val : Gdk.Image.Gdk_Image;
Mask : Gdk.Bitmap.Gdk_Bitmap);
-- Creates or initializes an image
procedure Gtk_New
(Image : out Gtk_Image;
Pixmap : Gdk.Pixmap.Gdk_Pixmap;
Mask : Gdk.Bitmap.Gdk_Bitmap);
procedure Initialize
(Image : access Gtk_Image_Record'Class;
Pixmap : Gdk.Pixmap.Gdk_Pixmap;
Mask : Gdk.Bitmap.Gdk_Bitmap);
-- Creates or initializes an image from its components
procedure Gtk_New
(Image : out Gtk_Image;
Filename : String);
procedure Initialize
(Image : access Gtk_Image_Record'Class;
Filename : String);
-- Creates or initializes an image from a file
procedure Gtk_New
(Image : out Gtk_Image;
Pixbuf : Gdk.Pixbuf.Gdk_Pixbuf);
procedure Initialize
(Image : access Gtk_Image_Record'Class;
Pixbuf : Gdk.Pixbuf.Gdk_Pixbuf);
-- Creates or initializes an image from an existing pixbuf
procedure Gtk_New
(Image : out Gtk_Image;
Stock_Id : String;
Size : Gtk.Enums.Gtk_Icon_Size);
procedure Initialize
(Image : access Gtk_Image_Record'Class;
Stock_Id : String;
Size : Gtk.Enums.Gtk_Icon_Size);
-- Creates or initializes an image from one of the predefined images of
-- gtk+ (see gtk-stock.ads). The image will be scaled to the appropriate
-- format.
procedure Gtk_New
(Image : out Gtk_Image;
Icon_Set : Gtk.Icon_Factory.Gtk_Icon_Set;
Size : Gtk.Enums.Gtk_Icon_Size);
procedure Initialize
(Image : access Gtk_Image_Record'Class;
Icon_Set : Gtk.Icon_Factory.Gtk_Icon_Set;
Size : Gtk.Enums.Gtk_Icon_Size);
-- Creates or initializes an image from a set of icons
procedure Gtk_New
(Image : out Gtk_Image;
Animation : Gdk.Pixbuf.Gdk_Pixbuf_Animation);
procedure Initialize
(Image : access Gtk_Image_Record'Class;
Animation : Gdk.Pixbuf.Gdk_Pixbuf_Animation);
-- Create or initializes a GtkImage displaying the given animation.
procedure Gtk_New_From_Icon_Name
(Image : out Gtk_Image;
Icon_Name : String;
Size : Gtk.Enums.Gtk_Icon_Size);
procedure Initialize_From_Icon_Name
(Image : access Gtk_Image_Record'Class;
Icon_Name : String;
Size : Gtk.Enums.Gtk_Icon_Size);
-- Creates or initialized an image displaying an icon from the current icon
-- theme. If the icon name isn't known, a "broken image" icon will be
-- displayed instead. If the current icon theme is changed, the icon will
-- be updated appropriately.
function Get_Type return Glib.GType;
-- Return the internal value associated with a Gtk_Image.
procedure Set
(Image : access Gtk_Image_Record;
Pixmap : Gdk.Pixmap.Gdk_Pixmap;
Mask : Gdk.Bitmap.Gdk_Bitmap);
procedure Get
(Image : access Gtk_Image_Record;
Pixmap : out Gdk.Pixmap.Gdk_Pixmap;
Mask : out Gdk.Bitmap.Gdk_Bitmap);
-- Set or Get the values of a Gtk_Image.
-- Mask indicates which parts of the image should be transparent.
procedure Set
(Image : access Gtk_Image_Record;
Val : Gdk.Image.Gdk_Image;
Mask : Gdk.Bitmap.Gdk_Bitmap);
procedure Get
(Image : access Gtk_Image_Record;
Val : out Gdk.Image.Gdk_Image;
Mask : out Gdk.Bitmap.Gdk_Bitmap);
-- Set or Get the value of a Gtk_Image.
-- Mask indicates which parts of the image should be transparent.
procedure Set (Image : access Gtk_Image_Record; File : String);
procedure Set
(Image : access Gtk_Image_Record; Pixbuf : Gdk.Pixbuf.Gdk_Pixbuf);
function Get (Image : access Gtk_Image_Record) return Gdk.Pixbuf.Gdk_Pixbuf;
-- Set or get the image stored in Image
procedure Set
(Image : access Gtk_Image_Record;
Stock_Id : String;
Size : Gtk.Enums.Gtk_Icon_Size);
function Get
(Image : access Gtk_Image_Record;
Size : access Gtk.Enums.Gtk_Icon_Size) return String;
-- Set or get the image stored in Image
procedure Set
(Image : access Gtk_Image_Record;
Icon_Set : Gtk.Icon_Factory.Gtk_Icon_Set;
Size : Gtk.Enums.Gtk_Icon_Size);
procedure Get
(Image : access Gtk_Image_Record;
Icon_Set : out Gtk.Icon_Factory.Gtk_Icon_Set;
Size : out Gtk.Enums.Gtk_Icon_Size);
-- Set or get the image stored in Image
procedure Set
(Image : access Gtk_Image_Record;
Animation : Gdk.Pixbuf.Gdk_Pixbuf_Animation);
function Get
(Image : access Gtk_Image_Record) return Gdk.Pixbuf.Gdk_Pixbuf_Animation;
-- Get the Pixbuf Animation being displayed by the given Image. The
-- reference counter for the returned animation is not incremented. This
-- must be done separately if needed.
function Get_Storage_Type
(Image : access Gtk_Image_Record) return Gtk_Image_Type;
-- Indicates how the image was created
procedure Clear (Image : access Gtk_Image_Record);
-- Resets the image to be empty.
procedure Set_From_Icon_Name
(Image : access Gtk_Image_Record;
Icon_Name : String;
Size : Gtk.Enums.Gtk_Icon_Size);
procedure Get_Icon_Name
(Image : access Gtk_Image_Record;
Name : out GNAT.Strings.String_Access;
Size : out Gtk.Enums.Gtk_Icon_Size);
-- Gets the icon name and size being displayed by the image
-- The storage type of the image must be Image_Empty or Image_Icon_Name.
-- The returned string must be freed by the caller.
procedure Set_Pixel_Size
(Image : access Gtk_Image_Record; Pixel_Size : Gint);
function Get_Pixel_Size (Image : access Gtk_Image_Record) return Gint;
-- Sets or Gets the pixel size used for named icons.
-- If the pixel size is set to a value different from -1, it is used
-- instead of the icon size set by Set_From_Icon_Name.
----------------
-- Properties --
----------------
--
-- The following properties are defined for this widget. See
-- Glib.Properties for more information on properties.
--
-- Name: File_Property
-- Type: String
-- Descr: Filename to load and display
--
-- Name: Icon_Name_Property
-- Type: String
-- Descr: The name of the icon from the icon theme
--
-- Name: Icon_Set_Property
-- Type: Boxed
-- Descr: Icon set to display
--
-- Name: Icon_Size_Property
-- Type: Int
-- Descr: Symbolic size to use for stock icon, icon set or named icon
--
-- Name: Image_Property
-- Type: Object
-- Descr: A GdkImage to display
--
-- Name: Mask_Property
-- Type: Object
-- Descr: Mask bitmap to use with GdkImage or GdkPixmap
--
-- Name: Pixbuf_Property
-- Type: Object
-- Descr: A GdkPixbuf to display
--
-- Name: Pixbuf_Animation_Property
-- Type: Object
-- Descr: GdkPixbufAnimation to display
--
-- Name: Pixel_Size_Property
-- Type: Int
-- Descr: Pixel size to use for named icon
--
-- Name: Pixmap_Property
-- Type: Object
-- Descr: A GdkPixmap to display
--
-- Name: Stock_Property
-- Type: String
-- Descr: Stock ID for a stock image to display
--
-- Name: Storage_Type_Property
-- Type: Enum
-- Descr: The representation being used for image data
--
--
package Image_Type_Properties is new
Glib.Generic_Properties.Generic_Internal_Discrete_Property
(Gtk_Image_Type);
type Property_Image_Type is new Image_Type_Properties.Property;
File_Property : constant Glib.Properties.Property_String;
Icon_Name_Property : constant Glib.Properties.Property_String;
-- Icon_Set_Property : constant Glib.Properties.Property_Boxed;
Icon_Size_Property : constant Glib.Properties.Property_Int;
Image_Property : constant Glib.Properties.Property_Object;
Mask_Property : constant Glib.Properties.Property_Object;
Pixbuf_Property : constant Glib.Properties.Property_Object;
Pixbuf_Animation_Property : constant Glib.Properties.Property_Object;
Pixel_Size_Property : constant Glib.Properties.Property_Int;
Pixmap_Property : constant Glib.Properties.Property_Object;
Stock_Property : constant Glib.Properties.Property_String;
Storage_Type_Property : constant Property_Image_Type;
-------------
-- Signals --
-------------
--
-- The following new signals are defined for this widget:
--
private
type Gtk_Image_Record is new Gtk.Misc.Gtk_Misc_Record with null record;
File_Property : constant Glib.Properties.Property_String :=
Glib.Properties.Build ("file");
Icon_Name_Property : constant Glib.Properties.Property_String :=
Glib.Properties.Build ("icon-name");
-- Icon_Set_Property : constant Glib.Properties.Property_Boxed :=
-- Glib.Properties.Build ("icon-set");
Icon_Size_Property : constant Glib.Properties.Property_Int :=
Glib.Properties.Build ("icon-size");
Image_Property : constant Glib.Properties.Property_Object :=
Glib.Properties.Build ("image");
Mask_Property : constant Glib.Properties.Property_Object :=
Glib.Properties.Build ("mask");
Pixbuf_Property : constant Glib.Properties.Property_Object :=
Glib.Properties.Build ("pixbuf");
Pixbuf_Animation_Property : constant Glib.Properties.Property_Object :=
Glib.Properties.Build ("pixbuf-animation");
Pixel_Size_Property : constant Glib.Properties.Property_Int :=
Glib.Properties.Build ("pixel-size");
Pixmap_Property : constant Glib.Properties.Property_Object :=
Glib.Properties.Build ("pixmap");
Stock_Property : constant Glib.Properties.Property_String :=
Glib.Properties.Build ("stock");
Storage_Type_Property : constant Property_Image_Type :=
Build ("storage-type");
pragma Import (C, Get_Type, "gtk_image_get_type");
end Gtk.Image;
-- These subprograms never had a binding, are now obsolescent anyway
-- No binding: gtk_image_get
-- No binding: gtk_image_set