------------------------------------------------------------------------------
-- --
-- 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>
-- Gtk.Icon_Theme.Gtk_Icon_Theme provides a facility for looking up icons by
-- name and size. The main reason for using a name rather than simply
-- providing a filename is to allow different icons to be used depending on
-- what 'icon theme' is selected by the user. The operation of icon themes on
-- Linux and Unix follows the <ulink
-- url="http://www.freedesktop.org/Standards/icon-theme-spec">Icon Theme
-- Specification</ulink>. There is a default icon theme, named 'hicolor' where
-- applications should install their icons, but more additional application
-- themes can be installed as operating system vendors and users choose.
--
-- Named icons are similar to the <xref
-- linkend="gtk3-Themeable-Stock-Images"/> facility, and the distinction
-- between the two may be a bit confusing. A few things to keep in mind:
--
-- * Stock images usually are used in conjunction with <xref
-- linkend="gtk3-Stock-Items"/>, such as GTK_STOCK_OK or GTK_STOCK_OPEN. Named
-- icons are easier to set up and therefore are more useful for new icons that
-- an application wants to add, such as application icons or window icons.
--
-- * Stock images can only be loaded at the symbolic sizes defined by the
-- Gtk.Enums.Gtk_Icon_Size enumeration, or by custom sizes defined by
-- Gtk.Icon_Factory.Icon_Size_Register, while named icons are more flexible
-- and any pixel size can be specified.
--
-- * Because stock images are closely tied to stock items, and thus to
-- actions in the user interface, stock images may come in multiple variants
-- for different widget states or writing directions.
--
-- A good rule of thumb is that if there is a stock image for what you want
-- to use, use it, otherwise use a named icon. It turns out that internally
-- stock images are generally defined in terms of one or more named icons. (An
-- example of the more than one case is icons that depend on writing
-- direction; GTK_STOCK_GO_FORWARD uses the two themed icons
-- "gtk-stock-go-forward-ltr" and "gtk-stock-go-forward-rtl".)
--
-- In many cases, named themes are used indirectly, via Gtk.Image.Gtk_Image
-- or stock items, rather than directly, but looking up icons directly is also
-- simple. The Gtk.Icon_Theme.Gtk_Icon_Theme object acts as a database of all
-- the icons in the current theme. You can create new
-- Gtk.Icon_Theme.Gtk_Icon_Theme objects, but it's much more efficient to use
-- the standard icon theme for the Gdk.Screen.Gdk_Screen so that the icon
-- information is shared with other people looking up icons. In the case where
-- the default screen is being used, looking up an icon can be as simple as:
--
-- GError *error = NULL;
-- GtkIconTheme *icon_theme;
-- GdkPixbuf *pixbuf;
-- icon_theme = gtk_icon_theme_get_default ();
-- pixbuf = gtk_icon_theme_load_icon (icon_theme,
-- "my-icon-name", // icon name
-- 48, // size
-- 0, // flags
-- &error);
-- if (!pixbuf)
-- {
-- g_warning ("Couldn't load icon: %s", error->message);
-- g_error_free (error);
-- }
-- else
-- {
-- // Use the pixbuf
-- g_object_unref (pixbuf);
-- }
--
--
-- </description>
pragma Ada_2005;
pragma Warnings (Off, "*is already use-visible*");
with GNAT.Strings; use GNAT.Strings;
with Gdk.Pixbuf; use Gdk.Pixbuf;
with Gdk.RGBA; use Gdk.RGBA;
with Gdk.Rectangle; use Gdk.Rectangle;
with Gdk.Screen; use Gdk.Screen;
with Gdk.Types; use Gdk.Types;
with Glib; use Glib;
with Glib.G_Icon; use Glib.G_Icon;
with Glib.Generic_Properties; use Glib.Generic_Properties;
with Glib.Object; use Glib.Object;
with Gtk.Enums; use Gtk.Enums;
with Gtk.Style; use Gtk.Style;
with Gtk.Style_Context; use Gtk.Style_Context;
package Gtk.Icon_Theme is
type Gtk_Icon_Theme_Record is new GObject_Record with null record;
type Gtk_Icon_Theme is access all Gtk_Icon_Theme_Record'Class;
type Gtk_Icon_Lookup_Flags is mod 2 ** Integer'Size;
pragma Convention (C, Gtk_Icon_Lookup_Flags);
-- Used to specify options for Gtk.Icon_Theme.Lookup_Icon
Icon_Lookup_No_Svg : constant Gtk_Icon_Lookup_Flags := 1;
Icon_Lookup_Force_Svg : constant Gtk_Icon_Lookup_Flags := 2;
Icon_Lookup_Use_Builtin : constant Gtk_Icon_Lookup_Flags := 4;
Icon_Lookup_Generic_Fallback : constant Gtk_Icon_Lookup_Flags := 8;
Icon_Lookup_Force_Size : constant Gtk_Icon_Lookup_Flags := 16;
type Gtk_Icon_Info_Record is new GObject_Record with null record;
type Gtk_Icon_Info is access all Gtk_Icon_Info_Record'Class;
----------------------------
-- Enumeration Properties --
----------------------------
package Gtk_Icon_Lookup_Flags_Properties is
new Generic_Internal_Discrete_Property (Gtk_Icon_Lookup_Flags);
type Property_Gtk_Icon_Lookup_Flags is new Gtk_Icon_Lookup_Flags_Properties.Property;
------------------
-- Constructors --
------------------
procedure Gtk_New (Icon_Theme : out Gtk_Icon_Theme);
procedure Initialize
(Icon_Theme : not null access Gtk_Icon_Theme_Record'Class);
-- Creates a new icon theme object. Icon theme objects are used to lookup
-- up an icon by name in a particular icon theme. Usually, you'll want to
-- use Gtk.Icon_Theme.Get_Default or Gtk.Icon_Theme.Get_For_Screen rather
-- than creating a new icon theme object for scratch.
-- Since: gtk+ 2.4
function Gtk_Icon_Theme_New return Gtk_Icon_Theme;
-- Creates a new icon theme object. Icon theme objects are used to lookup
-- up an icon by name in a particular icon theme. Usually, you'll want to
-- use Gtk.Icon_Theme.Get_Default or Gtk.Icon_Theme.Get_For_Screen rather
-- than creating a new icon theme object for scratch.
-- Since: gtk+ 2.4
function Get_Type return Glib.GType;
pragma Import (C, Get_Type, "gtk_icon_theme_get_type");
procedure Gtk_New_For_Pixbuf
(Icon_Info : out Gtk_Icon_Info;
Icon_Theme : not null access Gtk_Icon_Theme_Record'Class;
Pixbuf : not null access Gdk.Pixbuf.Gdk_Pixbuf_Record'Class);
procedure Initialize_For_Pixbuf
(Icon_Info : not null access Gtk_Icon_Info_Record'Class;
Icon_Theme : not null access Gtk_Icon_Theme_Record'Class;
Pixbuf : not null access Gdk.Pixbuf.Gdk_Pixbuf_Record'Class);
-- Creates a Gtk.Icon_Theme.Gtk_Icon_Info for a Gdk.Pixbuf.Gdk_Pixbuf.
-- Since: gtk+ 2.14
-- "icon_theme": a Gtk.Icon_Theme.Gtk_Icon_Theme
-- "pixbuf": the pixbuf to wrap in a Gtk.Icon_Theme.Gtk_Icon_Info
function Gtk_Icon_Info_New_For_Pixbuf
(Icon_Theme : not null access Gtk_Icon_Theme_Record'Class;
Pixbuf : not null access Gdk.Pixbuf.Gdk_Pixbuf_Record'Class)
return Gtk_Icon_Info;
-- Creates a Gtk.Icon_Theme.Gtk_Icon_Info for a Gdk.Pixbuf.Gdk_Pixbuf.
-- Since: gtk+ 2.14
-- "icon_theme": a Gtk.Icon_Theme.Gtk_Icon_Theme
-- "pixbuf": the pixbuf to wrap in a Gtk.Icon_Theme.Gtk_Icon_Info
function Icon_Info_Get_Type return Glib.GType;
pragma Import (C, Icon_Info_Get_Type, "gtk_icon_info_get_type");
-------------
-- Methods --
-------------
procedure Append_Search_Path
(Icon_Theme : not null access Gtk_Icon_Theme_Record;
Path : UTF8_String);
-- Appends a directory to the search path. See
-- Gtk.Icon_Theme.Set_Search_Path.
-- Since: gtk+ 2.4
-- "path": directory name to append to the icon path
function Choose_Icon
(Icon_Theme : not null access Gtk_Icon_Theme_Record'Class;
Icon_Names : GNAT.Strings.String_List;
Size : Gint;
Flags : Gtk_Icon_Lookup_Flags) return Gtk_Icon_Info;
-- Looks up a named icon and returns a structure containing information
-- such as the filename of the icon. The icon can then be rendered into a
-- pixbuf using Gtk.Icon_Theme.Load_Icon. (gtk_icon_theme_load_icon
-- combines these two steps if all you need is the pixbuf.)
-- If Icon_Names contains more than one name, this function tries them all
-- in the given order before falling back to inherited icon themes.
-- Since: gtk+ 2.12
-- "icon_names": null-terminated array of icon names to lookup
-- "size": desired icon size
-- "flags": flags modifying the behavior of the icon lookup
function Get_Example_Icon_Name
(Icon_Theme : not null access Gtk_Icon_Theme_Record)
return UTF8_String;
-- Gets the name of an icon that is representative of the current theme
-- (for instance, to use when presenting a list of themes to the user.)
-- Since: gtk+ 2.4
function Get_Icon_Sizes
(Icon_Theme : not null access Gtk_Icon_Theme_Record;
Icon_Name : UTF8_String) return Gint_Array;
-- Returns an array of integers describing the sizes at which the icon is
-- available without scaling. A size of -1 means that the icon is available
-- in a scalable format. The array is zero-terminated.
-- Since: gtk+ 2.6
-- "icon_name": the name of an icon
function Get_Search_Path
(Icon_Theme : not null access Gtk_Icon_Theme_Record)
return GNAT.Strings.String_List;
-- Gets the current search path. See Gtk.Icon_Theme.Set_Search_Path.
-- Since: gtk+ 2.4
procedure Set_Search_Path
(Icon_Theme : not null access Gtk_Icon_Theme_Record;
Path : GNAT.Strings.String_List);
-- Sets the search path for the icon theme object. When looking for an
-- icon theme, GTK+ will search for a subdirectory of one or more of the
-- directories in Path with the same name as the icon theme. (Themes from
-- multiple of the path elements are combined to allow themes to be
-- extended by adding icons in the user's home directory.)
-- In addition if an icon found isn't found either in the current icon
-- theme or the default icon theme, and an image file with the right name
-- is found directly in one of the elements of Path, then that image will
-- be used for the icon name. (This is legacy feature, and new icons should
-- be put into the default icon theme, which is called DEFAULT_THEME_NAME,
-- rather than directly on the icon path.)
-- Since: gtk+ 2.4
-- "path": array of directories that are searched for icon themes
function Has_Icon
(Icon_Theme : not null access Gtk_Icon_Theme_Record;
Icon_Name : UTF8_String) return Boolean;
-- Checks whether an icon theme includes an icon for a particular name.
-- Since: gtk+ 2.4
-- "icon_name": the name of an icon
function List_Contexts
(Icon_Theme : not null access Gtk_Icon_Theme_Record)
return Gtk.Enums.String_List.Glist;
-- Gets the list of contexts available within the current hierarchy of
-- icon themes
-- Since: gtk+ 2.12
function List_Icons
(Icon_Theme : not null access Gtk_Icon_Theme_Record;
Context : UTF8_String := "") return Gtk.Enums.String_List.Glist;
-- Lists the icons in the current icon theme. Only a subset of the icons
-- can be listed by providing a context string. The set of values for the
-- context string is system dependent, but will typically include such
-- values as "Applications" and "MimeTypes".
-- Since: gtk+ 2.4
-- "context": a string identifying a particular type of icon, or null to
-- list all icons.
function Load_Icon
(Icon_Theme : not null access Gtk_Icon_Theme_Record;
Icon_Name : UTF8_String;
Size : Gint;
Flags : Gtk_Icon_Lookup_Flags) return Gdk.Pixbuf.Gdk_Pixbuf;
-- Looks up an icon in an icon theme, scales it to the given size and
-- renders it into a pixbuf. This is a convenience function; if more
-- details about the icon are needed, use Gtk.Icon_Theme.Lookup_Icon
-- followed by Gtk.Icon_Theme.Load_Icon.
-- Note that you probably want to listen for icon theme changes and update
-- the icon. This is usually done by connecting to the GtkWidget::style-set
-- signal. If for some reason you do not want to update the icon when the
-- icon theme changes, you should consider using gdk_pixbuf_copy to make a
-- private copy of the pixbuf returned by this function. Otherwise GTK+ may
-- need to keep the old icon theme loaded, which would be a waste of
-- memory.
-- Since: gtk+ 2.4
-- "icon_name": the name of the icon to lookup
-- "size": the desired icon size. The resulting icon may not be exactly
-- this size; see Gtk.Icon_Theme.Load_Icon.
-- "flags": flags modifying the behavior of the icon lookup
function Load_Icon
(Icon_Info : not null access Gtk_Icon_Info_Record)
return Gdk.Pixbuf.Gdk_Pixbuf;
-- Renders an icon previously looked up in an icon theme using
-- Gtk.Icon_Theme.Lookup_Icon; the size will be based on the size passed to
-- Gtk.Icon_Theme.Lookup_Icon. Note that the resulting pixbuf may not be
-- exactly this size; an icon theme may have icons that differ slightly
-- from their nominal sizes, and in addition GTK+ will avoid scaling icons
-- that it considers sufficiently close to the requested size or for which
-- the source image would have to be scaled up too far. (This maintains
-- sharpness.). This behaviour can be changed by passing the
-- Gtk.Icon_Theme.Icon_Lookup_Force_Size flag when obtaining the
-- Gtk.Icon_Theme.Gtk_Icon_Info. If this flag has been specified, the
-- pixbuf returned by this function will be scaled to the exact size.
-- Since: gtk+ 2.4
function Lookup_By_Gicon
(Icon_Theme : not null access Gtk_Icon_Theme_Record'Class;
Icon : Glib.G_Icon.G_Icon;
Size : Gint;
Flags : Gtk_Icon_Lookup_Flags) return Gtk_Icon_Info;
-- Looks up an icon and returns a structure containing information such as
-- the filename of the icon. The icon can then be rendered into a pixbuf
-- using Gtk.Icon_Theme.Load_Icon.
-- Since: gtk+ 2.14
-- "icon": the Glib.G_Icon.G_Icon to look up
-- "size": desired icon size
-- "flags": flags modifying the behavior of the icon lookup
function Lookup_Icon
(Icon_Theme : not null access Gtk_Icon_Theme_Record'Class;
Icon_Name : UTF8_String;
Size : Gint;
Flags : Gtk_Icon_Lookup_Flags) return Gtk_Icon_Info;
-- Looks up a named icon and returns a structure containing information
-- such as the filename of the icon. The icon can then be rendered into a
-- pixbuf using Gtk.Icon_Theme.Load_Icon. (gtk_icon_theme_load_icon
-- combines these two steps if all you need is the pixbuf.)
-- Since: gtk+ 2.4
-- "icon_name": the name of the icon to lookup
-- "size": desired icon size
-- "flags": flags modifying the behavior of the icon lookup
procedure Prepend_Search_Path
(Icon_Theme : not null access Gtk_Icon_Theme_Record;
Path : UTF8_String);
-- Prepends a directory to the search path. See
-- Gtk.Icon_Theme.Set_Search_Path.
-- Since: gtk+ 2.4
-- "path": directory name to prepend to the icon path
function Rescan_If_Needed
(Icon_Theme : not null access Gtk_Icon_Theme_Record) return Boolean;
-- Checks to see if the icon theme has changed; if it has, any currently
-- cached information is discarded and will be reloaded next time
-- Icon_Theme is accessed.
-- Since: gtk+ 2.4
procedure Set_Custom_Theme
(Icon_Theme : not null access Gtk_Icon_Theme_Record;
Theme_Name : UTF8_String := "");
-- Sets the name of the icon theme that the Gtk.Icon_Theme.Gtk_Icon_Theme
-- object uses overriding system configuration. This function cannot be
-- called on the icon theme objects returned from
-- Gtk.Icon_Theme.Get_Default and Gtk.Icon_Theme.Get_For_Screen.
-- Since: gtk+ 2.4
-- "theme_name": name of icon theme to use instead of configured theme, or
-- null to unset a previously set custom theme
procedure Set_Screen
(Icon_Theme : not null access Gtk_Icon_Theme_Record;
Screen : not null access Gdk.Screen.Gdk_Screen_Record'Class);
-- Sets the screen for an icon theme; the screen is used to track the
-- user's currently configured icon theme, which might be different for
-- different screens.
-- Since: gtk+ 2.4
-- "screen": a Gdk.Screen.Gdk_Screen
function Copy
(Icon_Info : not null access Gtk_Icon_Info_Record)
return Gtk_Icon_Info;
pragma Obsolescent (Copy);
-- Make a copy of a Gtk.Icon_Theme.Gtk_Icon_Info.
-- Since: gtk+ 2.4
-- Deprecated since 3.8, Use g_object_ref
procedure Free (Icon_Info : not null access Gtk_Icon_Info_Record);
pragma Obsolescent (Free);
-- Free a Gtk.Icon_Theme.Gtk_Icon_Info and associated information
-- Since: gtk+ 2.4
-- Deprecated since 3.8, Use g_object_unref
function Get_Attach_Points
(Icon_Info : not null access Gtk_Icon_Info_Record)
return Gdk.Types.Gdk_Points_Array;
-- Fetches the set of attach points for an icon. An attach point is a
-- location in the icon that can be used as anchor points for attaching
-- emblems or overlays to the icon.
-- Since: gtk+ 2.4
function Get_Base_Size
(Icon_Info : not null access Gtk_Icon_Info_Record) return Gint;
-- Gets the base size for the icon. The base size is a size for the icon
-- that was specified by the icon theme creator. This may be different than
-- the actual size of image; an example of this is small emblem icons that
-- can be attached to a larger icon. These icons will be given the same
-- base size as the larger icons to which they are attached.
-- Since: gtk+ 2.4
function Get_Builtin_Pixbuf
(Icon_Info : not null access Gtk_Icon_Info_Record)
return Gdk.Pixbuf.Gdk_Pixbuf;
-- Gets the built-in image for this icon, if any. To allow GTK+ to use
-- built in icon images, you must pass the
-- Gtk.Icon_Theme.Icon_Lookup_Use_Builtin to Gtk.Icon_Theme.Lookup_Icon.
-- Since: gtk+ 2.4
function Get_Display_Name
(Icon_Info : not null access Gtk_Icon_Info_Record) return UTF8_String;
-- Gets the display name for an icon. A display name is a string to be
-- used in place of the icon name in a user visible context like a list of
-- icons.
-- Since: gtk+ 2.4
procedure Get_Embedded_Rect
(Icon_Info : not null access Gtk_Icon_Info_Record;
Rectangle : out Gdk.Rectangle.Gdk_Rectangle;
Has_Embedded_Rectangle : out Boolean);
-- Gets the coordinates of a rectangle within the icon that can be used
-- for display of information such as a preview of the contents of a text
-- file. See Gtk.Icon_Theme.Set_Raw_Coordinates for further information
-- about the coordinate system.
-- Since: gtk+ 2.4
-- "rectangle": Gdk.Rectangle.Gdk_Rectangle in which to store embedded
-- rectangle coordinates; coordinates are only stored when this function
-- returns True.
function Get_Filename
(Icon_Info : not null access Gtk_Icon_Info_Record) return UTF8_String;
-- Gets the filename for the icon. If the
-- Gtk.Icon_Theme.Icon_Lookup_Use_Builtin flag was passed to
-- Gtk.Icon_Theme.Lookup_Icon, there may be no filename if a builtin icon
-- is returned; in this case, you should use
-- Gtk.Icon_Theme.Get_Builtin_Pixbuf.
-- Since: gtk+ 2.4
function Load_Symbolic
(Icon_Info : not null access Gtk_Icon_Info_Record;
Fg : Gdk.RGBA.Gdk_RGBA;
Success_Color : Gdk.RGBA.Gdk_RGBA;
Warning_Color : Gdk.RGBA.Gdk_RGBA;
Error_Color : Gdk.RGBA.Gdk_RGBA;
Was_Symbolic : access Boolean) return Gdk.Pixbuf.Gdk_Pixbuf;
-- Loads an icon, modifying it to match the system colours for the
-- foreground, success, warning and error colors provided. If the icon is
-- not a symbolic one, the function will return the result from
-- Gtk.Icon_Theme.Load_Icon.
-- This allows loading symbolic icons that will match the system theme.
-- Unless you are implementing a widget, you will want to use
-- g_themed_icon_new_with_default_fallbacks to load the icon.
-- As implementation details, the icon loaded needs to be of SVG type,
-- contain the "symbolic" term as the last component of the icon name, and
-- use the 'fg', 'success', 'warning' and 'error' CSS styles in the SVG
-- file itself.
-- See the <ulink
-- url="http://www.freedesktop.org/wiki/SymbolicIcons">Symbolic Icons
-- spec</ulink> for more information about symbolic icons.
-- Since: gtk+ 3.0
-- "fg": a Gdk.RGBA.Gdk_RGBA representing the foreground color of the icon
-- "success_color": a Gdk.RGBA.Gdk_RGBA representing the warning color of
-- the icon or null to use the default color
-- "warning_color": a Gdk.RGBA.Gdk_RGBA representing the warning color of
-- the icon or null to use the default color
-- "error_color": a Gdk.RGBA.Gdk_RGBA representing the error color of the
-- icon or null to use the default color (allow-none)
-- "was_symbolic": a Boolean, returns whether the loaded icon was a
-- symbolic one and whether the Fg color was applied to it.
function Load_Symbolic_For_Context
(Icon_Info : not null access Gtk_Icon_Info_Record;
Context : not null access Gtk.Style_Context.Gtk_Style_Context_Record'Class;
Was_Symbolic : access Boolean) return Gdk.Pixbuf.Gdk_Pixbuf;
-- Loads an icon, modifying it to match the system colors for the
-- foreground, success, warning and error colors provided. If the icon is
-- not a symbolic one, the function will return the result from
-- Gtk.Icon_Theme.Load_Icon. This function uses the regular foreground
-- color and the symbolic colors with the names "success_color",
-- "warning_color" and "error_color" from the context.
-- This allows loading symbolic icons that will match the system theme.
-- See Gtk.Icon_Theme.Load_Symbolic for more details.
-- Since: gtk+ 3.0
-- "context": a Gtk.Style_Context.Gtk_Style_Context
-- "was_symbolic": a Boolean, returns whether the loaded icon was a
-- symbolic one and whether the Fg color was applied to it.
function Load_Symbolic_For_Style
(Icon_Info : not null access Gtk_Icon_Info_Record;
Style : not null access Gtk.Style.Gtk_Style_Record'Class;
State : Gtk.Enums.Gtk_State_Type;
Was_Symbolic : access Boolean) return Gdk.Pixbuf.Gdk_Pixbuf;
pragma Obsolescent (Load_Symbolic_For_Style);
-- Loads an icon, modifying it to match the system colours for the
-- foreground, success, warning and error colors provided. If the icon is
-- not a symbolic one, the function will return the result from
-- Gtk.Icon_Theme.Load_Icon.
-- This allows loading symbolic icons that will match the system theme.
-- See Gtk.Icon_Theme.Load_Symbolic for more details.
-- Since: gtk+ 3.0
-- Deprecated since 3.0, Use Gtk.Icon_Theme.Load_Symbolic_For_Context
-- instead
-- "style": a Gtk.Style.Gtk_Style to take the colors from
-- "state": the widget state to use for colors
-- "was_symbolic": a Boolean, returns whether the loaded icon was a
-- symbolic one and whether the Fg color was applied to it.
procedure Set_Raw_Coordinates
(Icon_Info : not null access Gtk_Icon_Info_Record;
Raw_Coordinates : Boolean);
-- Sets whether the coordinates returned by
-- Gtk.Icon_Theme.Get_Embedded_Rect and Gtk.Icon_Theme.Get_Attach_Points
-- should be returned in their original form as specified in the icon
-- theme, instead of scaled appropriately for the pixbuf returned by
-- Gtk.Icon_Theme.Load_Icon.
-- Raw coordinates are somewhat strange; they are specified to be with
-- respect to the unscaled pixmap for PNG and XPM icons, but for SVG icons,
-- they are in a 1000x1000 coordinate space that is scaled to the final
-- size of the icon. You can determine if the icon is an SVG icon by using
-- Gtk.Icon_Theme.Get_Filename, and seeing if it is non-null and ends in
-- '.svg'.
-- This function is provided primarily to allow compatibility wrappers for
-- older API's, and is not expected to be useful for applications.
-- Since: gtk+ 2.4
-- "raw_coordinates": whether the coordinates of embedded rectangles and
-- attached points should be returned in their original (unscaled) form.
---------------
-- Functions --
---------------
procedure Add_Builtin_Icon
(Icon_Name : UTF8_String;
Size : Gint;
Pixbuf : not null access Gdk.Pixbuf.Gdk_Pixbuf_Record'Class);
-- Registers a built-in icon for icon theme lookups. The idea of built-in
-- icons is to allow an application or library that uses themed icons to
-- function requiring files to be present in the file system. For instance,
-- the default images for all of GTK+'s stock icons are registered as
-- built-icons.
-- In general, if you use Gtk.Icon_Theme.Add_Builtin_Icon you should also
-- install the icon in the icon theme, so that the icon is generally
-- available.
-- This function will generally be used with pixbufs loaded via
-- gdk_pixbuf_new_from_inline.
-- Since: gtk+ 2.4
-- "icon_name": the name of the icon to register
-- "size": the size at which to register the icon (different images can be
-- registered for the same icon name at different sizes.)
-- "pixbuf": Gdk.Pixbuf.Gdk_Pixbuf that contains the image to use for
-- Icon_Name.
function Get_Default return Gtk_Icon_Theme;
-- Gets the icon theme for the default screen. See
-- Gtk.Icon_Theme.Get_For_Screen.
-- Since: gtk+ 2.4
function Get_For_Screen
(Screen : not null access Gdk.Screen.Gdk_Screen_Record'Class)
return Gtk_Icon_Theme;
-- Gets the icon theme object associated with Screen; if this function has
-- not previously been called for the given screen, a new icon theme object
-- will be created and associated with the screen. Icon theme objects are
-- fairly expensive to create, so using this function is usually a better
-- choice than calling than Gtk.Icon_Theme.Gtk_New and setting the screen
-- yourself; by using this function a single icon theme object will be
-- shared between users.
-- Since: gtk+ 2.4
-- "screen": a Gdk.Screen.Gdk_Screen
-------------
-- Signals --
-------------
type Cb_Gtk_Icon_Theme_Void is not null access procedure (Self : access Gtk_Icon_Theme_Record'Class);
type Cb_GObject_Void is not null access procedure
(Self : access Glib.Object.GObject_Record'Class);
Signal_Changed : constant Glib.Signal_Name := "changed";
procedure On_Changed
(Self : not null access Gtk_Icon_Theme_Record;
Call : Cb_Gtk_Icon_Theme_Void;
After : Boolean := False);
procedure On_Changed
(Self : not null access Gtk_Icon_Theme_Record;
Call : Cb_GObject_Void;
Slot : not null access Glib.Object.GObject_Record'Class;
After : Boolean := False);
-- Emitted when the current icon theme is switched or GTK+ detects that a
-- change has occurred in the contents of the current icon theme.
end Gtk.Icon_Theme;