------------------------------------------------------------------------------ -- -- -- 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/>. -- -- -- ------------------------------------------------------------------------------ -- <description> -- An icon set represents a single icon in various sizes and widget states. -- It can provide a Gdk_Pixbuf for a given size and state on request, and -- automatically caches some of the rendered Gdk_Pixbuf objects. -- -- Normally you would use Gtk.Widget.Render_Icon instead of using icon sets -- directly. The one case where you'd use an icon set is to create -- application-specific icon sets to place in an icon factory. -- -- </description> pragma Ada_2005; pragma Warnings (Off, "*is already use-visible*");
with Gdk.Pixbuf; use Gdk.Pixbuf;
with Glib; use Glib;
with Gtk.Enums; use Gtk.Enums;
with Gtk.Icon_Source; use Gtk.Icon_Source;
with Gtk.Style; use Gtk.Style;
with Gtk.Style_Context; use Gtk.Style_Context;
with Gtk.Widget; use Gtk.Widget;
package Gtk.Icon_Set is
type Gtk_Icon_Set is new Glib.C_Boxed with null record;
Null_Gtk_Icon_Set : constant Gtk_Icon_Set;
function From_Object (Object : System.Address) return Gtk_Icon_Set;
function From_Object_Free (B : access Gtk_Icon_Set'Class) return Gtk_Icon_Set;
pragma Inline (From_Object_Free, From_Object);
------------------ -- Constructors -- ------------------ procedure Gtk_New (Self : out Gtk_Icon_Set);
-- Creates a new Gtk.Icon_Set.Gtk_Icon_Set. A Gtk.Icon_Set.Gtk_Icon_Set -- represents a single icon in various sizes and widget states. It can -- provide a Gdk.Pixbuf.Gdk_Pixbuf for a given size and state on request, -- and automatically caches some of the rendered Gdk.Pixbuf.Gdk_Pixbuf -- objects. -- Normally you would use Gtk.Widget.Render_Icon_Pixbuf instead of using -- Gtk.Icon_Set.Gtk_Icon_Set directly. The one case where you'd use -- Gtk.Icon_Set.Gtk_Icon_Set is to create application-specific icon sets to -- place in a Gtk.Icon_Factory.Gtk_Icon_Factory. function Gtk_Icon_Set_New return Gtk_Icon_Set;
-- Creates a new Gtk.Icon_Set.Gtk_Icon_Set. A Gtk.Icon_Set.Gtk_Icon_Set -- represents a single icon in various sizes and widget states. It can -- provide a Gdk.Pixbuf.Gdk_Pixbuf for a given size and state on request, -- and automatically caches some of the rendered Gdk.Pixbuf.Gdk_Pixbuf -- objects. -- Normally you would use Gtk.Widget.Render_Icon_Pixbuf instead of using -- Gtk.Icon_Set.Gtk_Icon_Set directly. The one case where you'd use -- Gtk.Icon_Set.Gtk_Icon_Set is to create application-specific icon sets to -- place in a Gtk.Icon_Factory.Gtk_Icon_Factory. procedure Gtk_New_From_Pixbuf
(Self : out Gtk_Icon_Set;
Pixbuf : not null access Gdk.Pixbuf.Gdk_Pixbuf_Record'Class);
-- Creates a new Gtk.Icon_Set.Gtk_Icon_Set with Pixbuf as the -- default/fallback source image. If you don't add any additional -- Gtk.Icon_Source.Gtk_Icon_Source to the icon set, all variants of the -- icon will be created from Pixbuf, using scaling, pixelation, etc. as -- required to adjust the icon size or make the icon look -- insensitive/prelighted. -- "pixbuf": a Gdk.Pixbuf.Gdk_Pixbuf function Gtk_Icon_Set_New_From_Pixbuf
(Pixbuf : not null access Gdk.Pixbuf.Gdk_Pixbuf_Record'Class)
return Gtk_Icon_Set;
-- Creates a new Gtk.Icon_Set.Gtk_Icon_Set with Pixbuf as the -- default/fallback source image. If you don't add any additional -- Gtk.Icon_Source.Gtk_Icon_Source to the icon set, all variants of the -- icon will be created from Pixbuf, using scaling, pixelation, etc. as -- required to adjust the icon size or make the icon look -- insensitive/prelighted. -- "pixbuf": a Gdk.Pixbuf.Gdk_Pixbuf function Get_Type return Glib.GType;
pragma Import (C, Get_Type, "gtk_icon_set_get_type");
------------- -- Methods -- ------------- procedure Add_Source
(Self : Gtk_Icon_Set;
Source : Gtk.Icon_Source.Gtk_Icon_Source);
-- Icon sets have a list of Gtk.Icon_Source.Gtk_Icon_Source, which they -- use as base icons for rendering icons in different states and sizes. -- Icons are scaled, made to look insensitive, etc. in -- Gtk.Icon_Set.Render_Icon, but Gtk.Icon_Set.Gtk_Icon_Set needs base -- images to work with. The base images and when to use them are described -- by a Gtk.Icon_Source.Gtk_Icon_Source. -- This function copies Source, so you can reuse the same source -- immediately without affecting the icon set. -- An example of when you'd use this function: a web browser's "Back to -- Previous Page" icon might point in a different direction in Hebrew and -- in English; it might look different when insensitive; and it might -- change size depending on toolbar mode (small/large icons). So a single -- icon set would contain all those variants of the icon, and you might add -- a separate source for each one. -- You should nearly always add a "default" icon source with all fields -- wildcarded, which will be used as a fallback if no more specific source -- matches. Gtk.Icon_Set.Gtk_Icon_Set always prefers more specific icon -- sources to more generic icon sources. The order in which you add the -- sources to the icon set does not matter. -- gtk_icon_set_new_from_pixbuf creates a new icon set with a default icon -- source based on the given pixbuf. -- "source": a Gtk.Icon_Source.Gtk_Icon_Source function Copy (Self : Gtk_Icon_Set) return Gtk_Icon_Set;
-- Copies Icon_Set by value. function Get_Sizes (Self : Gtk_Icon_Set) return Gint_Array;
-- Obtains a list of icon sizes this icon set can render. The returned -- array must be freed with g_free. function Ref (Self : Gtk_Icon_Set) return Gtk_Icon_Set;
-- Increments the reference count on Icon_Set. function Render_Icon
(Self : Gtk_Icon_Set;
Style : access Gtk.Style.Gtk_Style_Record'Class;
Direction : Gtk.Enums.Gtk_Text_Direction;
State : Gtk.Enums.Gtk_State_Type;
Size : Gtk.Enums.Gtk_Icon_Size;
Widget : access Gtk.Widget.Gtk_Widget_Record'Class;
Detail : UTF8_String := "") return Gdk.Pixbuf.Gdk_Pixbuf;
pragma Obsolescent (Render_Icon);
-- Renders an icon using gtk_style_render_icon. In most cases, -- Gtk.Widget.Render_Icon is better, since it automatically provides most -- of the arguments from the current widget settings. This function never -- returns null; if the icon can't be rendered (perhaps because an image -- file fails to load), a default "missing image" icon will be returned -- instead. -- Deprecated since 3.0, Use Gtk.Icon_Set.Render_Icon_Pixbuf instead -- "style": a Gtk.Style.Gtk_Style associated with Widget, or null -- "direction": text direction -- "state": widget state -- "size": icon size. A size of (GtkIconSize)-1 means render at the size -- of the source and don't scale. -- "widget": widget that will display the icon, or null. The only use that -- is typically made of this is to determine the appropriate -- Gdk.Screen.Gdk_Screen. -- "detail": detail to pass to the theme engine, or null. Note that -- passing a detail of anything but null will disable caching. function Render_Icon_Pixbuf
(Self : Gtk_Icon_Set;
Context : not null access Gtk.Style_Context.Gtk_Style_Context_Record'Class;
Size : Gtk.Enums.Gtk_Icon_Size) return Gdk.Pixbuf.Gdk_Pixbuf;
-- Renders an icon using gtk_render_icon_pixbuf. In most cases, -- Gtk.Widget.Render_Icon_Pixbuf is better, since it automatically provides -- most of the arguments from the current widget settings. This function -- never returns null; if the icon can't be rendered (perhaps because an -- image file fails to load), a default "missing image" icon will be -- returned instead. -- Since: gtk+ 3.0 -- "context": a Gtk.Style_Context.Gtk_Style_Context -- "size": icon size. A size of (GtkIconSize)-1 means render at the size -- of the source and don't scale. procedure Unref (Self : Gtk_Icon_Set);
-- Decrements the reference count on Icon_Set, and frees memory if the -- reference count reaches 0. ---------------------- -- GtkAda additions -- ---------------------- function Lookup_Icon_Set
(Style : access Gtk.Style.Gtk_Style_Record'Class; Stock_Id : String)
return Gtk_Icon_Set;
-- Retrieve an icon set by its name. The icon might exist in various sizes, -- that can be manipulated through the result set private Null_Gtk_Icon_Set : constant Gtk_Icon_Set := (Glib.C_Boxed with null record);
end Gtk.Icon_Set;