1. ------------------------------------------------------------------------------ 
  2. --                                                                          -- 
  3. --      Copyright (C) 1998-2000 E. Briot, J. Brobecker and A. Charlet       -- 
  4. --                     Copyright (C) 2000-2014, AdaCore                     -- 
  5. --                                                                          -- 
  6. -- This library is free software;  you can redistribute it and/or modify it -- 
  7. -- under terms of the  GNU General Public License  as published by the Free -- 
  8. -- Software  Foundation;  either version 3,  or (at your  option) any later -- 
  9. -- version. This library is distributed in the hope that it will be useful, -- 
  10. -- but WITHOUT ANY WARRANTY;  without even the implied warranty of MERCHAN- -- 
  11. -- TABILITY or FITNESS FOR A PARTICULAR PURPOSE.                            -- 
  12. --                                                                          -- 
  13. -- As a special exception under Section 7 of GPL version 3, you are granted -- 
  14. -- additional permissions described in the GCC Runtime Library Exception,   -- 
  15. -- version 3.1, as published by the Free Software Foundation.               -- 
  16. --                                                                          -- 
  17. -- You should have received a copy of the GNU General Public License and    -- 
  18. -- a copy of the GCC Runtime Library Exception along with this program;     -- 
  19. -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    -- 
  20. -- <http://www.gnu.org/licenses/>.                                          -- 
  21. --                                                                          -- 
  22. ------------------------------------------------------------------------------ 
  23.  
  24. --  <description> 
  25. --  GtkSettings provide a mechanism to share global settings between 
  26. --  applications. 
  27. -- 
  28. --  On the X window system, this sharing is realized by an <ulink 
  29. --  url="http://www.freedesktop.org/wiki/Specifications/xsettings-spec">XSettings</ulink> 
  30. --  manager that is usually part of the desktop environment, along with 
  31. --  utilities that let the user change these settings. In the absence of an 
  32. --  Xsettings manager, GTK+ reads default values for settings from 
  33. --  'settings.ini' files in '/etc/gtk-3.0', '$XDG_CONFIG_DIRS/gtk-3.0' and 
  34. --  '$XDG_CONFIG_HOME/gtk-3.0'. These files must be valid key files (see 
  35. --  Gkey.File.Gkey_File), and have a section called Settings. Themes can also 
  36. --  provide default values for settings by installing a 'settings.ini' file 
  37. --  next to their 'gtk.css' file. 
  38. -- 
  39. --  Applications can override system-wide settings with 
  40. --  Gtk.Settings.Set_String_Property, Gtk.Settings.Set_Long_Property, etc. This 
  41. --  should be restricted to special cases though; GtkSettings are not meant as 
  42. --  an application configuration facility. When doing so, you need to be aware 
  43. --  that settings that are specific to individual widgets may not be available 
  44. --  before the widget type has been realized at least once. The following 
  45. --  example demonstrates a way to do this: 
  46. -- 
  47. --    gtk_init (&argc, &argv); 
  48. --    /* make sure the type is realized */ 
  49. --    g_type_class_unref (g_type_class_ref (GTK_TYPE_IMAGE_MENU_ITEM)); 
  50. --    g_object_set (gtk_settings_get_default (), "gtk-menu-images", FALSE, NULL); 
  51. -- 
  52. --  There is one GtkSettings instance per screen. It can be obtained with 
  53. --  Gtk.Settings.Get_For_Screen, but in many cases, it is more convenient to 
  54. --  use gtk_widget_get_settings. Gtk.Settings.Get_Default returns the 
  55. --  GtkSettings instance for the default screen. 
  56. -- 
  57. --  </description> 
  58. pragma Ada_2005; 
  59.  
  60. pragma Warnings (Off, "*is already use-visible*"); 
  61. with Gdk.Screen;         use Gdk.Screen; 
  62. with Glib;               use Glib; 
  63. with Glib.Object;        use Glib.Object; 
  64. with Glib.Properties;    use Glib.Properties; 
  65. with Glib.Types;         use Glib.Types; 
  66. with Glib.Values;        use Glib.Values; 
  67. with Gtk.Enums;          use Gtk.Enums; 
  68. with Gtk.Style_Provider; use Gtk.Style_Provider; 
  69. with Gtk.Widget;         use Gtk.Widget; 
  70.  
  71. package Gtk.Settings is 
  72.  
  73.    type Gtk_Settings_Record is new GObject_Record with null record; 
  74.    type Gtk_Settings is access all Gtk_Settings_Record'Class; 
  75.  
  76.    ------------------ 
  77.    -- Constructors -- 
  78.    ------------------ 
  79.  
  80.    function Get_Type return Glib.GType; 
  81.    pragma Import (C, Get_Type, "gtk_settings_get_type"); 
  82.  
  83.    ------------- 
  84.    -- Methods -- 
  85.    ------------- 
  86.  
  87.    procedure Set_Double_Property 
  88.       (Self     : not null access Gtk_Settings_Record; 
  89.        Name     : UTF8_String; 
  90.        V_Double : Gdouble; 
  91.        Origin   : UTF8_String); 
  92.  
  93.    procedure Set_Long_Property 
  94.       (Self   : not null access Gtk_Settings_Record; 
  95.        Name   : UTF8_String; 
  96.        V_Long : Glong; 
  97.        Origin : UTF8_String); 
  98.  
  99.    procedure Set_String_Property 
  100.       (Self     : not null access Gtk_Settings_Record; 
  101.        Name     : UTF8_String; 
  102.        V_String : UTF8_String; 
  103.        Origin   : UTF8_String); 
  104.  
  105.    ---------------------- 
  106.    -- GtkAda additions -- 
  107.    ---------------------- 
  108.  
  109.    procedure Set_Property_Value 
  110.      (Settings : not null access Gtk_Settings_Record; 
  111.       Name     : String; 
  112.       Value    : GValue; 
  113.       Origin   : String); 
  114.  
  115.    --------------------------------------------- 
  116.    -- Inherited subprograms (from interfaces) -- 
  117.    --------------------------------------------- 
  118.  
  119.    procedure Get_Style_Property 
  120.       (Self  : not null access Gtk_Settings_Record; 
  121.        Path  : Gtk.Widget.Gtk_Widget_Path; 
  122.        State : Gtk.Enums.Gtk_State_Flags; 
  123.        Pspec : in out Glib.Param_Spec; 
  124.        Value : out Glib.Values.GValue; 
  125.        Found : out Boolean); 
  126.  
  127.    --------------- 
  128.    -- Functions -- 
  129.    --------------- 
  130.  
  131.    function Get_Default return Gtk_Settings; 
  132.    --  Gets the Gtk.Settings.Gtk_Settings object for the default GDK screen, 
  133.    --  creating it if necessary. See Gtk.Settings.Get_For_Screen. 
  134.  
  135.    function Get_For_Screen 
  136.       (Screen : not null access Gdk.Screen.Gdk_Screen_Record'Class) 
  137.        return Gtk_Settings; 
  138.    --  Gets the Gtk.Settings.Gtk_Settings object for Screen, creating it if 
  139.    --  necessary. 
  140.    --  Since: gtk+ 2.2 
  141.    --  "screen": a Gdk.Screen.Gdk_Screen. 
  142.  
  143.    procedure Install_Property (Pspec : in out Glib.Param_Spec); 
  144.  
  145.    ---------------- 
  146.    -- Properties -- 
  147.    ---------------- 
  148.    --  The following properties are defined for this widget. See 
  149.    --  Glib.Properties for more information on properties) 
  150.  
  151.    Color_Hash_Property : constant Glib.Properties.Property_Boxed; 
  152.    --  Type: GLib.Hash_Table 
  153.    --  Holds a hash table representation of the 
  154.    --  Gtk.Settings.Gtk_Settings:gtk-color-scheme setting, mapping color names 
  155.    --  to Gdk.Color.Gdk_Color<!-- -->s. 
  156.  
  157.    Gtk_Alternative_Button_Order_Property : constant Glib.Properties.Property_Boolean; 
  158.  
  159.    Gtk_Alternative_Sort_Arrows_Property : constant Glib.Properties.Property_Boolean; 
  160.    --  Controls the direction of the sort indicators in sorted list and tree 
  161.    --  views. By default an arrow pointing down means the column is sorted in 
  162.    --  ascending order. When set to True, this order will be inverted. 
  163.  
  164.    Gtk_Application_Prefer_Dark_Theme_Property : constant Glib.Properties.Property_Boolean; 
  165.    --  Whether the application prefers to use a dark theme. If a GTK+ theme 
  166.    --  includes a dark variant, it will be used instead of the configured 
  167.    --  theme. 
  168.    -- 
  169.    --  Some applications benefit from minimizing the amount of light pollution 
  170.    --  that interferes with the content. Good candidates for dark themes are 
  171.    --  photo and video editors that make the actual content get all the 
  172.    --  attention and minimize the distraction of the chrome. 
  173.    -- 
  174.    --  Dark themes should not be used for documents, where large spaces are 
  175.    --  white/light and the dark chrome creates too much contrast (web browser, 
  176.    --  text editor...). 
  177.  
  178.    Gtk_Auto_Mnemonics_Property : constant Glib.Properties.Property_Boolean; 
  179.    --  Whether mnemonics should be automatically shown and hidden when the 
  180.    --  user presses the mnemonic activator. 
  181.  
  182.    Gtk_Button_Images_Property : constant Glib.Properties.Property_Boolean; 
  183.  
  184.    Gtk_Can_Change_Accels_Property : constant Glib.Properties.Property_Boolean; 
  185.  
  186.    Gtk_Color_Palette_Property : constant Glib.Properties.Property_String; 
  187.  
  188.    Gtk_Color_Scheme_Property : constant Glib.Properties.Property_String; 
  189.    --  A palette of named colors for use in themes. The format of the string 
  190.    --  is 
  191.    -- 
  192.    --    name1: color1 
  193.    --    name2: color2 
  194.    --    ... 
  195.    -- 
  196.    --  Color names must be acceptable as identifiers in the <link 
  197.    --  linkend="gtk-Resource-Files">gtkrc</link> syntax, and color 
  198.    --  specifications must be in the format accepted by gdk_color_parse. 
  199.    -- 
  200.    --  Note that due to the way the color tables from different sources are 
  201.    --  merged, color specifications will be converted to hexadecimal form when 
  202.    --  getting this property. 
  203.    -- 
  204.    --  Starting with GTK+ 2.12, the entries can alternatively be separated by 
  205.    --  ';' instead of newlines: 
  206.    -- 
  207.    --    name1: color1; name2: color2; ... 
  208.  
  209.    Gtk_Cursor_Blink_Property : constant Glib.Properties.Property_Boolean; 
  210.    --  Whether the cursor should blink. 
  211.    -- 
  212.    --  Also see the Gtk.Settings.Gtk_Settings:gtk-cursor-blink-timeout 
  213.    --  setting, which allows more flexible control over cursor blinking. 
  214.  
  215.    Gtk_Cursor_Blink_Time_Property : constant Glib.Properties.Property_Int; 
  216.  
  217.    Gtk_Cursor_Blink_Timeout_Property : constant Glib.Properties.Property_Int; 
  218.    --  Time after which the cursor stops blinking, in seconds. The timer is 
  219.    --  reset after each user interaction. 
  220.    -- 
  221.    --  Setting this to zero has the same effect as setting 
  222.    --  Gtk.Settings.Gtk_Settings:gtk-cursor-blink to False. 
  223.  
  224.    Gtk_Cursor_Theme_Name_Property : constant Glib.Properties.Property_String; 
  225.  
  226.    Gtk_Cursor_Theme_Size_Property : constant Glib.Properties.Property_Int; 
  227.  
  228.    Gtk_Dnd_Drag_Threshold_Property : constant Glib.Properties.Property_Int; 
  229.  
  230.    Gtk_Double_Click_Distance_Property : constant Glib.Properties.Property_Int; 
  231.  
  232.    Gtk_Double_Click_Time_Property : constant Glib.Properties.Property_Int; 
  233.  
  234.    Gtk_Enable_Accels_Property : constant Glib.Properties.Property_Boolean; 
  235.    --  Whether menu items should have visible accelerators which can be 
  236.    --  activated. 
  237.  
  238.    Gtk_Enable_Animations_Property : constant Glib.Properties.Property_Boolean; 
  239.  
  240.    Gtk_Enable_Event_Sounds_Property : constant Glib.Properties.Property_Boolean; 
  241.    --  Whether to play any event sounds at all. 
  242.    -- 
  243.    --  See the <ulink 
  244.    --  url="http://www.freedesktop.org/wiki/Specifications/sound-theme-spec">Sound 
  245.    --  Theme spec</ulink> for more information on event sounds and sound 
  246.    --  themes. 
  247.    -- 
  248.    --  GTK+ itself does not support event sounds, you have to use a loadable 
  249.    --  module like the one that comes with libcanberra. 
  250.  
  251.    Gtk_Enable_Input_Feedback_Sounds_Property : constant Glib.Properties.Property_Boolean; 
  252.    --  Whether to play event sounds as feedback to user input. 
  253.    -- 
  254.    --  See the <ulink 
  255.    --  url="http://www.freedesktop.org/wiki/Specifications/sound-theme-spec">Sound 
  256.    --  Theme spec</ulink> for more information on event sounds and sound 
  257.    --  themes. 
  258.    -- 
  259.    --  GTK+ itself does not support event sounds, you have to use a loadable 
  260.    --  module like the one that comes with libcanberra. 
  261.  
  262.    Gtk_Enable_Mnemonics_Property : constant Glib.Properties.Property_Boolean; 
  263.    --  Whether labels and menu items should have visible mnemonics which can 
  264.    --  be activated. 
  265.  
  266.    Gtk_Enable_Primary_Paste_Property : constant Glib.Properties.Property_Boolean; 
  267.    --  Whether a middle click on a mouse should paste the 'PRIMARY' clipboard 
  268.    --  content at the cursor location. 
  269.  
  270.    Gtk_Enable_Tooltips_Property : constant Glib.Properties.Property_Boolean; 
  271.    --  Whether tooltips should be shown on widgets. 
  272.  
  273.    Gtk_Entry_Password_Hint_Timeout_Property : constant Glib.Properties.Property_Uint; 
  274.    --  How long to show the last input character in hidden entries. This value 
  275.    --  is in milliseconds. 0 disables showing the last char. 600 is a good 
  276.    --  value for enabling it. 
  277.  
  278.    Gtk_Entry_Select_On_Focus_Property : constant Glib.Properties.Property_Boolean; 
  279.  
  280.    Gtk_Error_Bell_Property : constant Glib.Properties.Property_Boolean; 
  281.    --  When True, keyboard navigation and other input-related errors will 
  282.    --  cause a beep. Since the error bell is implemented using Gdk.Window.Beep, 
  283.    --  the windowing system may offer ways to configure the error bell in many 
  284.    --  ways, such as flashing the window or similar visual effects. 
  285.  
  286.    Gtk_Fallback_Icon_Theme_Property : constant Glib.Properties.Property_String; 
  287.  
  288.    Gtk_File_Chooser_Backend_Property : constant Glib.Properties.Property_String; 
  289.  
  290.    Gtk_Font_Name_Property : constant Glib.Properties.Property_String; 
  291.  
  292.    Gtk_Fontconfig_Timestamp_Property : constant Glib.Properties.Property_Uint; 
  293.  
  294.    Gtk_Icon_Sizes_Property : constant Glib.Properties.Property_String; 
  295.    --  A list of icon sizes. The list is separated by colons, and item has the 
  296.    --  form: 
  297.    -- 
  298.    --  <replaceable>size-name</replaceable> = <replaceable>width</replaceable> 
  299.    --  , <replaceable>height</replaceable> 
  300.    --  E.g. "gtk-menu=16,16:gtk-button=20,20:gtk-dialog=48,48". GTK+ itself 
  301.    --  use the following named icon sizes: gtk-menu, gtk-button, 
  302.    --  gtk-small-toolbar, gtk-large-toolbar, gtk-dnd, gtk-dialog. Applications 
  303.    --  can register their own named icon sizes with 
  304.    --  Gtk.Icon_Factory.Icon_Size_Register. 
  305.  
  306.    Gtk_Icon_Theme_Name_Property : constant Glib.Properties.Property_String; 
  307.  
  308.    Gtk_Im_Module_Property : constant Glib.Properties.Property_String; 
  309.    --  Which IM (input method) module should be used by default. This is the 
  310.    --  input method that will be used if the user has not explicitly chosen 
  311.    --  another input method from the IM context menu. This also can be a 
  312.    --  colon-separated list of input methods, which GTK+ will try in turn until 
  313.    --  it finds one available on the system. 
  314.    -- 
  315.    --  See Gtk.IM_Context.Gtk_IM_Context and see the 
  316.    --  Gtk.Settings.Gtk_Settings:gtk-show-input-method-menu property. 
  317.  
  318.    Gtk_Im_Preedit_Style_Property : constant Glib.Properties.Property_Boxed; 
  319.    --  Type: IMPreedit_Style 
  320.  
  321.    Gtk_Im_Status_Style_Property : constant Glib.Properties.Property_Boxed; 
  322.    --  Type: IMStatus_Style 
  323.  
  324.    Gtk_Key_Theme_Name_Property : constant Glib.Properties.Property_String; 
  325.  
  326.    Gtk_Keynav_Cursor_Only_Property : constant Glib.Properties.Property_Boolean; 
  327.    --  When True, keyboard navigation should be able to reach all widgets by 
  328.    --  using the cursor keys only. Tab, Shift etc. keys can't be expected to be 
  329.    --  present on the used input device. 
  330.  
  331.    Gtk_Keynav_Wrap_Around_Property : constant Glib.Properties.Property_Boolean; 
  332.    --  When True, some widgets will wrap around when doing keyboard 
  333.    --  navigation, such as menus, menubars and notebooks. 
  334.  
  335.    Gtk_Label_Select_On_Focus_Property : constant Glib.Properties.Property_Boolean; 
  336.  
  337.    Gtk_Menu_Bar_Accel_Property : constant Glib.Properties.Property_String; 
  338.  
  339.    Gtk_Menu_Bar_Popup_Delay_Property : constant Glib.Properties.Property_Int; 
  340.  
  341.    Gtk_Menu_Images_Property : constant Glib.Properties.Property_Boolean; 
  342.  
  343.    Gtk_Menu_Popdown_Delay_Property : constant Glib.Properties.Property_Int; 
  344.  
  345.    Gtk_Menu_Popup_Delay_Property : constant Glib.Properties.Property_Int; 
  346.  
  347.    Gtk_Modules_Property : constant Glib.Properties.Property_String; 
  348.  
  349.    Gtk_Primary_Button_Warps_Slider_Property : constant Glib.Properties.Property_Boolean; 
  350.    --  Whether a click in a Gtk.GRange.Gtk_Range trough should scroll to the 
  351.    --  click position or scroll by a single page in the respective direction. 
  352.  
  353.    Gtk_Print_Backends_Property : constant Glib.Properties.Property_String; 
  354.    --  A comma-separated list of print backends to use in the print dialog. 
  355.    --  Available print backends depend on the GTK+ installation, and may 
  356.    --  include "file", "cups", "lpr" or "papi". 
  357.  
  358.    Gtk_Print_Preview_Command_Property : constant Glib.Properties.Property_String; 
  359.    --  A command to run for displaying the print preview. The command should 
  360.    --  contain a %f placeholder, which will get replaced by the path to the pdf 
  361.    --  file. The command may also contain a %s placeholder, which will get 
  362.    --  replaced by the path to a file containing the print settings in the 
  363.    --  format produced by Gtk.Print_Settings.To_File. 
  364.    -- 
  365.    --  The preview application is responsible for removing the pdf file and 
  366.    --  the print settings file when it is done. 
  367.  
  368.    Gtk_Recent_Files_Enabled_Property : constant Glib.Properties.Property_Boolean; 
  369.    --  Whether GTK+ should keep track of items inside the recently used 
  370.    --  resources list. If set to False, the list will always be empty. 
  371.  
  372.    Gtk_Recent_Files_Limit_Property : constant Glib.Properties.Property_Int; 
  373.    --  The number of recently used files that should be displayed by default 
  374.    --  by Gtk.Recent_Chooser.Gtk_Recent_Chooser implementations and by the 
  375.    --  Gtk.File_Chooser.Gtk_File_Chooser. A value of -1 means every recently 
  376.    --  used file stored. 
  377.  
  378.    Gtk_Recent_Files_Max_Age_Property : constant Glib.Properties.Property_Int; 
  379.    --  The maximum age, in days, of the items inside the recently used 
  380.    --  resources list. Items older than this setting will be excised from the 
  381.    --  list. If set to 0, the list will always be empty; if set to -1, no item 
  382.    --  will be removed. 
  383.  
  384.    Gtk_Scrolled_Window_Placement_Property : constant Gtk.Enums.Property_Gtk_Corner_Type; 
  385.    --  Where the contents of scrolled windows are located with respect to the 
  386.    --  scrollbars, if not overridden by the scrolled window's own placement. 
  387.  
  388.    Gtk_Shell_Shows_App_Menu_Property : constant Glib.Properties.Property_Boolean; 
  389.  
  390.    Gtk_Shell_Shows_Menubar_Property : constant Glib.Properties.Property_Boolean; 
  391.  
  392.    Gtk_Show_Input_Method_Menu_Property : constant Glib.Properties.Property_Boolean; 
  393.  
  394.    Gtk_Show_Unicode_Menu_Property : constant Glib.Properties.Property_Boolean; 
  395.  
  396.    Gtk_Sound_Theme_Name_Property : constant Glib.Properties.Property_String; 
  397.    --  The XDG sound theme to use for event sounds. 
  398.    -- 
  399.    --  See the <ulink 
  400.    --  url="http://www.freedesktop.org/wiki/Specifications/sound-theme-spec">Sound 
  401.    --  Theme spec</ulink> for more information on event sounds and sound 
  402.    --  themes. 
  403.    -- 
  404.    --  GTK+ itself does not support event sounds, you have to use a loadable 
  405.    --  module like the one that comes with libcanberra. 
  406.  
  407.    Gtk_Split_Cursor_Property : constant Glib.Properties.Property_Boolean; 
  408.  
  409.    Gtk_Theme_Name_Property : constant Glib.Properties.Property_String; 
  410.  
  411.    Gtk_Timeout_Expand_Property : constant Glib.Properties.Property_Int; 
  412.  
  413.    Gtk_Timeout_Initial_Property : constant Glib.Properties.Property_Int; 
  414.  
  415.    Gtk_Timeout_Repeat_Property : constant Glib.Properties.Property_Int; 
  416.  
  417.    Gtk_Toolbar_Icon_Size_Property : constant Gtk.Enums.Property_Gtk_Icon_Size; 
  418.    --  The size of icons in default toolbars. 
  419.  
  420.    Gtk_Toolbar_Style_Property : constant Gtk.Enums.Property_Gtk_Toolbar_Style; 
  421.    --  The size of icons in default toolbars. 
  422.  
  423.    Gtk_Tooltip_Browse_Mode_Timeout_Property : constant Glib.Properties.Property_Int; 
  424.    --  Amount of time, in milliseconds, after which the browse mode will be 
  425.    --  disabled. 
  426.    -- 
  427.    --  See Gtk.Settings.Gtk_Settings:gtk-tooltip-browse-timeout for more 
  428.    --  information about browse mode. 
  429.  
  430.    Gtk_Tooltip_Browse_Timeout_Property : constant Glib.Properties.Property_Int; 
  431.    --  Controls the time after which tooltips will appear when browse mode is 
  432.    --  enabled, in milliseconds. 
  433.    -- 
  434.    --  Browse mode is enabled when the mouse pointer moves off an object where 
  435.    --  a tooltip was currently being displayed. If the mouse pointer hits 
  436.    --  another object before the browse mode timeout expires (see 
  437.    --  Gtk.Settings.Gtk_Settings:gtk-tooltip-browse-mode-timeout), it will take 
  438.    --  the amount of milliseconds specified by this setting to popup the 
  439.    --  tooltip for the new object. 
  440.  
  441.    Gtk_Tooltip_Timeout_Property : constant Glib.Properties.Property_Int; 
  442.    --  Time, in milliseconds, after which a tooltip could appear if the cursor 
  443.    --  is hovering on top of a widget. 
  444.  
  445.    Gtk_Touchscreen_Mode_Property : constant Glib.Properties.Property_Boolean; 
  446.    --  When True, there are no motion notify events delivered on this screen, 
  447.    --  and widgets can't use the pointer hovering them for any essential 
  448.    --  functionality. 
  449.  
  450.    Gtk_Visible_Focus_Property : constant Gtk.Enums.Property_Gtk_Policy_Type; 
  451.    --  Whether 'focus rectangles' should be always visible, never visible, or 
  452.    --  hidden until the user starts to use the keyboard. 
  453.  
  454.    Gtk_Xft_Antialias_Property : constant Glib.Properties.Property_Int; 
  455.  
  456.    Gtk_Xft_Dpi_Property : constant Glib.Properties.Property_Int; 
  457.  
  458.    Gtk_Xft_Hinting_Property : constant Glib.Properties.Property_Int; 
  459.  
  460.    Gtk_Xft_Hintstyle_Property : constant Glib.Properties.Property_String; 
  461.  
  462.    Gtk_Xft_Rgba_Property : constant Glib.Properties.Property_String; 
  463.  
  464.    ---------------- 
  465.    -- Interfaces -- 
  466.    ---------------- 
  467.    --  This class implements several interfaces. See Glib.Types 
  468.    -- 
  469.    --  - "StyleProvider" 
  470.  
  471.    package Implements_Gtk_Style_Provider is new Glib.Types.Implements 
  472.      (Gtk.Style_Provider.Gtk_Style_Provider, Gtk_Settings_Record, Gtk_Settings); 
  473.    function "+" 
  474.      (Widget : access Gtk_Settings_Record'Class) 
  475.    return Gtk.Style_Provider.Gtk_Style_Provider 
  476.    renames Implements_Gtk_Style_Provider.To_Interface; 
  477.    function "-" 
  478.      (Interf : Gtk.Style_Provider.Gtk_Style_Provider) 
  479.    return Gtk_Settings 
  480.    renames Implements_Gtk_Style_Provider.To_Object; 
  481.  
  482. private 
  483.    Gtk_Xft_Rgba_Property : constant Glib.Properties.Property_String := 
  484.      Glib.Properties.Build ("gtk-xft-rgba"); 
  485.    Gtk_Xft_Hintstyle_Property : constant Glib.Properties.Property_String := 
  486.      Glib.Properties.Build ("gtk-xft-hintstyle"); 
  487.    Gtk_Xft_Hinting_Property : constant Glib.Properties.Property_Int := 
  488.      Glib.Properties.Build ("gtk-xft-hinting"); 
  489.    Gtk_Xft_Dpi_Property : constant Glib.Properties.Property_Int := 
  490.      Glib.Properties.Build ("gtk-xft-dpi"); 
  491.    Gtk_Xft_Antialias_Property : constant Glib.Properties.Property_Int := 
  492.      Glib.Properties.Build ("gtk-xft-antialias"); 
  493.    Gtk_Visible_Focus_Property : constant Gtk.Enums.Property_Gtk_Policy_Type := 
  494.      Gtk.Enums.Build ("gtk-visible-focus"); 
  495.    Gtk_Touchscreen_Mode_Property : constant Glib.Properties.Property_Boolean := 
  496.      Glib.Properties.Build ("gtk-touchscreen-mode"); 
  497.    Gtk_Tooltip_Timeout_Property : constant Glib.Properties.Property_Int := 
  498.      Glib.Properties.Build ("gtk-tooltip-timeout"); 
  499.    Gtk_Tooltip_Browse_Timeout_Property : constant Glib.Properties.Property_Int := 
  500.      Glib.Properties.Build ("gtk-tooltip-browse-timeout"); 
  501.    Gtk_Tooltip_Browse_Mode_Timeout_Property : constant Glib.Properties.Property_Int := 
  502.      Glib.Properties.Build ("gtk-tooltip-browse-mode-timeout"); 
  503.    Gtk_Toolbar_Style_Property : constant Gtk.Enums.Property_Gtk_Toolbar_Style := 
  504.      Gtk.Enums.Build ("gtk-toolbar-style"); 
  505.    Gtk_Toolbar_Icon_Size_Property : constant Gtk.Enums.Property_Gtk_Icon_Size := 
  506.      Gtk.Enums.Build ("gtk-toolbar-icon-size"); 
  507.    Gtk_Timeout_Repeat_Property : constant Glib.Properties.Property_Int := 
  508.      Glib.Properties.Build ("gtk-timeout-repeat"); 
  509.    Gtk_Timeout_Initial_Property : constant Glib.Properties.Property_Int := 
  510.      Glib.Properties.Build ("gtk-timeout-initial"); 
  511.    Gtk_Timeout_Expand_Property : constant Glib.Properties.Property_Int := 
  512.      Glib.Properties.Build ("gtk-timeout-expand"); 
  513.    Gtk_Theme_Name_Property : constant Glib.Properties.Property_String := 
  514.      Glib.Properties.Build ("gtk-theme-name"); 
  515.    Gtk_Split_Cursor_Property : constant Glib.Properties.Property_Boolean := 
  516.      Glib.Properties.Build ("gtk-split-cursor"); 
  517.    Gtk_Sound_Theme_Name_Property : constant Glib.Properties.Property_String := 
  518.      Glib.Properties.Build ("gtk-sound-theme-name"); 
  519.    Gtk_Show_Unicode_Menu_Property : constant Glib.Properties.Property_Boolean := 
  520.      Glib.Properties.Build ("gtk-show-unicode-menu"); 
  521.    Gtk_Show_Input_Method_Menu_Property : constant Glib.Properties.Property_Boolean := 
  522.      Glib.Properties.Build ("gtk-show-input-method-menu"); 
  523.    Gtk_Shell_Shows_Menubar_Property : constant Glib.Properties.Property_Boolean := 
  524.      Glib.Properties.Build ("gtk-shell-shows-menubar"); 
  525.    Gtk_Shell_Shows_App_Menu_Property : constant Glib.Properties.Property_Boolean := 
  526.      Glib.Properties.Build ("gtk-shell-shows-app-menu"); 
  527.    Gtk_Scrolled_Window_Placement_Property : constant Gtk.Enums.Property_Gtk_Corner_Type := 
  528.      Gtk.Enums.Build ("gtk-scrolled-window-placement"); 
  529.    Gtk_Recent_Files_Max_Age_Property : constant Glib.Properties.Property_Int := 
  530.      Glib.Properties.Build ("gtk-recent-files-max-age"); 
  531.    Gtk_Recent_Files_Limit_Property : constant Glib.Properties.Property_Int := 
  532.      Glib.Properties.Build ("gtk-recent-files-limit"); 
  533.    Gtk_Recent_Files_Enabled_Property : constant Glib.Properties.Property_Boolean := 
  534.      Glib.Properties.Build ("gtk-recent-files-enabled"); 
  535.    Gtk_Print_Preview_Command_Property : constant Glib.Properties.Property_String := 
  536.      Glib.Properties.Build ("gtk-print-preview-command"); 
  537.    Gtk_Print_Backends_Property : constant Glib.Properties.Property_String := 
  538.      Glib.Properties.Build ("gtk-print-backends"); 
  539.    Gtk_Primary_Button_Warps_Slider_Property : constant Glib.Properties.Property_Boolean := 
  540.      Glib.Properties.Build ("gtk-primary-button-warps-slider"); 
  541.    Gtk_Modules_Property : constant Glib.Properties.Property_String := 
  542.      Glib.Properties.Build ("gtk-modules"); 
  543.    Gtk_Menu_Popup_Delay_Property : constant Glib.Properties.Property_Int := 
  544.      Glib.Properties.Build ("gtk-menu-popup-delay"); 
  545.    Gtk_Menu_Popdown_Delay_Property : constant Glib.Properties.Property_Int := 
  546.      Glib.Properties.Build ("gtk-menu-popdown-delay"); 
  547.    Gtk_Menu_Images_Property : constant Glib.Properties.Property_Boolean := 
  548.      Glib.Properties.Build ("gtk-menu-images"); 
  549.    Gtk_Menu_Bar_Popup_Delay_Property : constant Glib.Properties.Property_Int := 
  550.      Glib.Properties.Build ("gtk-menu-bar-popup-delay"); 
  551.    Gtk_Menu_Bar_Accel_Property : constant Glib.Properties.Property_String := 
  552.      Glib.Properties.Build ("gtk-menu-bar-accel"); 
  553.    Gtk_Label_Select_On_Focus_Property : constant Glib.Properties.Property_Boolean := 
  554.      Glib.Properties.Build ("gtk-label-select-on-focus"); 
  555.    Gtk_Keynav_Wrap_Around_Property : constant Glib.Properties.Property_Boolean := 
  556.      Glib.Properties.Build ("gtk-keynav-wrap-around"); 
  557.    Gtk_Keynav_Cursor_Only_Property : constant Glib.Properties.Property_Boolean := 
  558.      Glib.Properties.Build ("gtk-keynav-cursor-only"); 
  559.    Gtk_Key_Theme_Name_Property : constant Glib.Properties.Property_String := 
  560.      Glib.Properties.Build ("gtk-key-theme-name"); 
  561.    Gtk_Im_Status_Style_Property : constant Glib.Properties.Property_Boxed := 
  562.      Glib.Properties.Build ("gtk-im-status-style"); 
  563.    Gtk_Im_Preedit_Style_Property : constant Glib.Properties.Property_Boxed := 
  564.      Glib.Properties.Build ("gtk-im-preedit-style"); 
  565.    Gtk_Im_Module_Property : constant Glib.Properties.Property_String := 
  566.      Glib.Properties.Build ("gtk-im-module"); 
  567.    Gtk_Icon_Theme_Name_Property : constant Glib.Properties.Property_String := 
  568.      Glib.Properties.Build ("gtk-icon-theme-name"); 
  569.    Gtk_Icon_Sizes_Property : constant Glib.Properties.Property_String := 
  570.      Glib.Properties.Build ("gtk-icon-sizes"); 
  571.    Gtk_Fontconfig_Timestamp_Property : constant Glib.Properties.Property_Uint := 
  572.      Glib.Properties.Build ("gtk-fontconfig-timestamp"); 
  573.    Gtk_Font_Name_Property : constant Glib.Properties.Property_String := 
  574.      Glib.Properties.Build ("gtk-font-name"); 
  575.    Gtk_File_Chooser_Backend_Property : constant Glib.Properties.Property_String := 
  576.      Glib.Properties.Build ("gtk-file-chooser-backend"); 
  577.    Gtk_Fallback_Icon_Theme_Property : constant Glib.Properties.Property_String := 
  578.      Glib.Properties.Build ("gtk-fallback-icon-theme"); 
  579.    Gtk_Error_Bell_Property : constant Glib.Properties.Property_Boolean := 
  580.      Glib.Properties.Build ("gtk-error-bell"); 
  581.    Gtk_Entry_Select_On_Focus_Property : constant Glib.Properties.Property_Boolean := 
  582.      Glib.Properties.Build ("gtk-entry-select-on-focus"); 
  583.    Gtk_Entry_Password_Hint_Timeout_Property : constant Glib.Properties.Property_Uint := 
  584.      Glib.Properties.Build ("gtk-entry-password-hint-timeout"); 
  585.    Gtk_Enable_Tooltips_Property : constant Glib.Properties.Property_Boolean := 
  586.      Glib.Properties.Build ("gtk-enable-tooltips"); 
  587.    Gtk_Enable_Primary_Paste_Property : constant Glib.Properties.Property_Boolean := 
  588.      Glib.Properties.Build ("gtk-enable-primary-paste"); 
  589.    Gtk_Enable_Mnemonics_Property : constant Glib.Properties.Property_Boolean := 
  590.      Glib.Properties.Build ("gtk-enable-mnemonics"); 
  591.    Gtk_Enable_Input_Feedback_Sounds_Property : constant Glib.Properties.Property_Boolean := 
  592.      Glib.Properties.Build ("gtk-enable-input-feedback-sounds"); 
  593.    Gtk_Enable_Event_Sounds_Property : constant Glib.Properties.Property_Boolean := 
  594.      Glib.Properties.Build ("gtk-enable-event-sounds"); 
  595.    Gtk_Enable_Animations_Property : constant Glib.Properties.Property_Boolean := 
  596.      Glib.Properties.Build ("gtk-enable-animations"); 
  597.    Gtk_Enable_Accels_Property : constant Glib.Properties.Property_Boolean := 
  598.      Glib.Properties.Build ("gtk-enable-accels"); 
  599.    Gtk_Double_Click_Time_Property : constant Glib.Properties.Property_Int := 
  600.      Glib.Properties.Build ("gtk-double-click-time"); 
  601.    Gtk_Double_Click_Distance_Property : constant Glib.Properties.Property_Int := 
  602.      Glib.Properties.Build ("gtk-double-click-distance"); 
  603.    Gtk_Dnd_Drag_Threshold_Property : constant Glib.Properties.Property_Int := 
  604.      Glib.Properties.Build ("gtk-dnd-drag-threshold"); 
  605.    Gtk_Cursor_Theme_Size_Property : constant Glib.Properties.Property_Int := 
  606.      Glib.Properties.Build ("gtk-cursor-theme-size"); 
  607.    Gtk_Cursor_Theme_Name_Property : constant Glib.Properties.Property_String := 
  608.      Glib.Properties.Build ("gtk-cursor-theme-name"); 
  609.    Gtk_Cursor_Blink_Timeout_Property : constant Glib.Properties.Property_Int := 
  610.      Glib.Properties.Build ("gtk-cursor-blink-timeout"); 
  611.    Gtk_Cursor_Blink_Time_Property : constant Glib.Properties.Property_Int := 
  612.      Glib.Properties.Build ("gtk-cursor-blink-time"); 
  613.    Gtk_Cursor_Blink_Property : constant Glib.Properties.Property_Boolean := 
  614.      Glib.Properties.Build ("gtk-cursor-blink"); 
  615.    Gtk_Color_Scheme_Property : constant Glib.Properties.Property_String := 
  616.      Glib.Properties.Build ("gtk-color-scheme"); 
  617.    Gtk_Color_Palette_Property : constant Glib.Properties.Property_String := 
  618.      Glib.Properties.Build ("gtk-color-palette"); 
  619.    Gtk_Can_Change_Accels_Property : constant Glib.Properties.Property_Boolean := 
  620.      Glib.Properties.Build ("gtk-can-change-accels"); 
  621.    Gtk_Button_Images_Property : constant Glib.Properties.Property_Boolean := 
  622.      Glib.Properties.Build ("gtk-button-images"); 
  623.    Gtk_Auto_Mnemonics_Property : constant Glib.Properties.Property_Boolean := 
  624.      Glib.Properties.Build ("gtk-auto-mnemonics"); 
  625.    Gtk_Application_Prefer_Dark_Theme_Property : constant Glib.Properties.Property_Boolean := 
  626.      Glib.Properties.Build ("gtk-application-prefer-dark-theme"); 
  627.    Gtk_Alternative_Sort_Arrows_Property : constant Glib.Properties.Property_Boolean := 
  628.      Glib.Properties.Build ("gtk-alternative-sort-arrows"); 
  629.    Gtk_Alternative_Button_Order_Property : constant Glib.Properties.Property_Boolean := 
  630.      Glib.Properties.Build ("gtk-alternative-button-order"); 
  631.    Color_Hash_Property : constant Glib.Properties.Property_Boxed := 
  632.      Glib.Properties.Build ("color-hash"); 
  633. end Gtk.Settings;