-----------------------------------------------------------------------
-- GtkAda - Ada95 binding for Gtk+/Gnome --
-- --
-- Copyright (C) 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. --
-- --
-----------------------------------------------------------------------
-- <description>
-- This package contains various subprograms to easily share settings between
-- applications, or even between various parts of your application.
-- </description>
-- <c_version>2.8.17</c_version>
-- <group>Configuration and Themes</group>
with Gdk;
with Glib.Object;
with Glib.Values;
with Gtk.Style;
with Interfaces.C.Strings;
package Gtk.Settings is
type Gtk_Settings_Record is new Glib.Object.GObject_Record with null record;
type Gtk_Settings is access all Gtk_Settings_Record'Class;
function Get_Default return Gtk_Settings;
-- Gets the settings object for the default GDK screen, creating
-- it if necessary.
function Get_For_Screen (Screen : Gdk.Gdk_Screen) return Gtk_Settings;
-- Gets the settings object for Screen, creating it if necessary.
function Get_Type return Glib.GType;
-- Return the internal type used to identify a Gtk_Settings
procedure Install_Property (Pspec : Glib.Param_Spec);
-- Declares a property that can be shared among various parts of the
-- application
procedure Install_Property_Parser
(Pspec : Glib.Param_Spec;
Parser : Gtk.Style.Gtk_Rc_Property_Parser);
-- Install a new parser for the given property. This parser is responsible
-- for reading the property's value in a gtk configuration file, and
-- convert it to a suitable value.
--------------------------------
-- Precoded parsing functions --
--------------------------------
function Parse_Color
(Pspec : Glib.Param_Spec;
Rc_String : Interfaces.C.Strings.chars_ptr;
Value : access Glib.Values.GValue) return Gboolean;
function Parse_Enum
(Pspec : Glib.Param_Spec;
Rc_String : Interfaces.C.Strings.chars_ptr;
Value : access Glib.Values.GValue) return Gboolean;
function Parse_Flags
(Pspec : Glib.Param_Spec;
Rc_String : Interfaces.C.Strings.chars_ptr;
Value : access Glib.Values.GValue) return Gboolean;
function Parse_Requisition
(Pspec : Glib.Param_Spec;
Rc_String : Interfaces.C.Strings.chars_ptr;
Value : access Glib.Values.GValue) return Gboolean;
function Parse_Border
(Pspec : Glib.Param_Spec;
Rc_String : Interfaces.C.Strings.chars_ptr;
Value : access Glib.Values.GValue) return Gboolean;
-- These functions parse some of the predefined property types
-----------------------------------
-- Setting predefined properties --
-----------------------------------
procedure Set_Property_Value
(Settings : access Gtk_Settings_Record;
Name : String;
Value : Glib.Values.GValue;
Origin : String);
procedure Set_String_Property
(Settings : access Gtk_Settings_Record;
Name : String;
Value : String;
Origin : String);
procedure Set_Long_Property
(Settings : access Gtk_Settings_Record;
Name : String;
Value : Glong;
Origin : String);
procedure Set_Double_Property
(Settings : access Gtk_Settings_Record;
Name : String;
Value : Gdouble;
Origin : String);
-- Set the value of a property. This automatically propagates the new
-- value to all listeners, so that they can refresh themselves.
-- Origin should be something like "filename:line" for rc files, or the
-- name of the function that sets it otherwise
----------------
-- Properties --
----------------
-- The following settings are predefined
-- - "gtk-alternative-button-order" : Boolean
-- Whether buttons in dialogs should use the alternative button order.
-- This is used on systems like windows where OK and Cancel buttons are
-- generally in an order different from that of GNOME and GTK
--
-- - "gtk-button-images": Boolean
-- Whether stock icons should be shown in buttons.
--
-- - "gtk-can-change-accels": Boolean
-- Whether menu accelerators can be changed by pressing a key over the
-- menu item.
--
-- - "gtk-color-palette": String
-- Palette to use in the color selector. See Gtk.Color_Selection.
-- Default is "black:white:gray50:red:purple"
--
-- - "gtk-cursor-blink": Boolean
-- Whether the cursor should blink.
--
-- - "gtk-cursor-blink-time": Gint
-- Length of the cursor blink cycle, in milliseconds. (>= 100)
--
-- - "gtk-cursor-theme-name": String
-- Name of the cursor theme to use.
--
-- - "gtk-cursor-theme-size": Gint
-- Size to use for cursors (0 to 128)
--
-- - "gtk-dnd-drag-threshold": Gint
-- Number of pixels the cursor can move before dragging (>= 1)
--
-- - "gtk-double-click-distance": Gint
-- Maximum distance allowed between two clicks for them to be considered
-- a double click (in pixels).
--
-- - "gtk-double-click-time": Gint
-- Maximum time allowed between two clicks for them to be considered a
-- double click (in milliseconds).
--
-- - "gtk-entry-select-on-focus": Boolean
-- Whether to select the contents of an entry when it is focused.
--
-- - "gtk-fallback-icon-theme": String
-- Name of a icon theme to fall back to.
--
-- - "gtk-file-chooser-backend": String
-- The default file system backend to use in the file chooser. See also
-- Gtk.File_System
--
-- - "gtk-font-name": String
-- Name of default font to use.
--
-- - "gtk-icon-sizes": String
-- List of icon sizes (gtk-menu=16,16:gtk-button=20,20...)
--
-- - "gtk-icon-theme-name": String
-- Name of icon theme to use (default="hicolor")
--
-- - "gtk-key-theme-name": String
-- Name of key theme RC file to load (for instance "Emacs")
--
-- - "gtk-menu-bar-accel": String
-- Keybinding to activate the menu bar (default="F10")
--
-- - "gtk-menu-bar-popup-delay": Gint
-- Delay before the submenus of a menu bar appear (Default=0)
--
-- - "gtk-menu-images": Boolean
-- Whether images should be shown in menus (Default=True)
--
-- - "gtk-menu-popdown-delay": Gint
-- The time before hiding a submenu when the pointer is moving towards
-- the submenu (Default=1000)
--
-- - "gtk-menu-popup-delay": Gint
-- Minimum time the pointer must stay over a menu item before the submenu
-- appear (Default=225)
--
-- - "gtk-modules": String
-- List of currently active GTK modules.
--
-- - "gtk-split-cursor": Boolean
-- Whether two cursors should be displayed for mixed left-to-right and
-- right-to-left text (Default True)
--
-- - "gtk-theme-name": String
-- Name of theme RC file to load (Default: "Raleigh")
--
-- - "gtk-toolbar-icon-size": Gtk_Icon_Size
-- Size of icons in default toolbars (default=Large)
--
-- - "gtk-toolbar-style": Gtk_Toolbar_Style
-- Whether default toolbars have text only, text and icons, icons only,
-- etc (default: both)
--
-- - "gtk-xft-antialias": Gint
-- Whether to antialias Xft fonts; 0=no, 1=yes, -1=default
--
-- - "gtk-xft-dpi": Gint
-- Resolution for Xft, in 1024 * dots/inch. -1 to use default value.
--
-- - "gtk-xft-hinting": Gint
-- Whether to hint Xft fonts; 0=no, 1=yes, -1=default.
--
-- - "gtk-xft-hintstyle": String
-- What degree of hinting to use; hintnone, hintslight, hintmedium, or
-- hintfull.
--
-- - "gtk-xft-rgba": String
-- Type of subpixel antialiasing; none, rgb, bgr, vrgb, vbgr.
Gtk_Alternative_Button_Order : constant String :=
"gtk-alternative-button-order";
Gtk_Button_Images : constant String := "gtk-button-images";
Gtk_Can_Change_Accels : constant String := "gtk-can-change-accels";
Gtk_Color_Palette : constant String := "gtk-color-palette";
Gtk_Cursor_Blink : constant String := "gtk-cursor-blink";
Gtk_Cursor_Blink_Time : constant String := "gtk-cursor-blink-time";
Gtk_Cursor_Theme_Name : constant String := "gtk-cursor-theme-name";
Gtk_Cursor_Theme_Size : constant String := "gtk-cursor-theme-size";
Gtk_Dnd_Drag_Threshold : constant String := "gtk-dnd-drag-threshold";
Gtk_Double_Click_Distance : constant String := "gtk-double-click-distance";
Gtk_Double_Click_Time : constant String := "gtk-double-click-time";
Gtk_Entry_Select_On_Focus : constant String := "gtk-entry-select-on-focus";
Gtk_Fallback_Icon_Theme : constant String := "gtk-fallback-icon-theme";
Gtk_File_Chooser_Backend : constant String := "gtk-file-chooser-backend";
Gtk_Font_Name : constant String := "gtk-font-name";
Gtk_Icon_Sizes : constant String := "gtk-icon-sizes";
Gtk_Icon_Theme_Name : constant String := "gtk-icon-theme-name";
Gtk_Key_Theme_Name : constant String := "gtk-key-theme-name";
Gtk_Menu_Bar_Accel : constant String := "gtk-menu-bar-accel";
Gtk_Menu_Bar_Popup_Delay : constant String := "gtk-menu-bar-popup-delay";
Gtk_Menu_Images : constant String := "gtk-menu-images";
Gtk_Menu_Popdown_Delay : constant String := "gtk-menu-popdown-delay";
Gtk_Menu_Popup_Delay : constant String := "gtk-menu-popup-delay";
Gtk_Modules : constant String := "gtk-modules";
Gtk_Split_Cursor : constant String := "gtk-split-cursor";
Gtk_Theme_Name : constant String := "gtk-theme-name";
Gtk_Toolbar_Icon_Size : constant String := "gtk-toolbar-icon-size";
Gtk_Toolbar_Style : constant String := "gtk-toolbar-style";
Gtk_Xft_Antialias : constant String := "gtk-xft-antialias";
Gtk_Xft_Dpi : constant String := "gtk-xft-dpi";
Gtk_Xft_Hinting : constant String := "gtk-xft-hinting";
Gtk_Xft_Hintstyle : constant String := "gtk-xft-hintstyle";
Gtk_Xft_Rgba : constant String := "gtk-xft-rgba";
private
pragma Import (C, Get_Type, "gtk_settings_get_type");
pragma Import (C, Install_Property_Parser,
"gtk_settings_install_property_parser");
pragma Import (C, Install_Property, "gtk_settings_install_property");
pragma Import (C, Parse_Color, "gtk_rc_property_parse_color");
pragma Import (C, Parse_Enum, "gtk_rc_property_parse_enum");
pragma Import (C, Parse_Flags, "gtk_rc_property_parse_flags");
pragma Import (C, Parse_Requisition, "gtk_rc_property_parse_requisition");
pragma Import (C, Parse_Border, "gtk_rc_property_parse_border");
end Gtk.Settings;