1. ----------------------------------------------------------------------- 
  2. --               GtkAda - Ada95 binding for Gtk+/Gnome               -- 
  3. --                                                                   -- 
  4. --   Copyright (C) 1998-2000 E. Briot, J. Brobecker and A. Charlet   -- 
  5. --                Copyright (C) 2000-2013, AdaCore                   -- 
  6. --                                                                   -- 
  7. -- This library is free software; you can redistribute it and/or     -- 
  8. -- modify it under the terms of the GNU General Public               -- 
  9. -- License as published by the Free Software Foundation; either      -- 
  10. -- version 2 of the License, or (at your option) any later version.  -- 
  11. --                                                                   -- 
  12. -- This library is distributed in the hope that it will be useful,   -- 
  13. -- but WITHOUT ANY WARRANTY; without even the implied warranty of    -- 
  14. -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -- 
  15. -- General Public License for more details.                          -- 
  16. --                                                                   -- 
  17. -- You should have received a copy of the GNU General Public         -- 
  18. -- License along with this library; if not, write to the             -- 
  19. -- Free Software Foundation, Inc., 59 Temple Place - Suite 330,      -- 
  20. -- Boston, MA 02111-1307, USA.                                       -- 
  21. --                                                                   -- 
  22. -- As a special exception, if other files instantiate generics from  -- 
  23. -- this unit, or you link this unit with other files to produce an   -- 
  24. -- executable, this  unit  does not  by itself cause  the resulting  -- 
  25. -- executable to be covered by the GNU General Public License. This  -- 
  26. -- exception does not however invalidate any other reasons why the   -- 
  27. -- executable file  might be covered by the  GNU Public License.     -- 
  28. ----------------------------------------------------------------------- 
  29.  
  30. --  <description> 
  31. --  This package contains a number of types that are shared by several 
  32. --  widgets in GtkAda. 
  33. --  </description> 
  34. --  <c_version>2.16.6</c_version> 
  35.  
  36. with Glib; 
  37. with Glib.Generic_Properties;  use Glib.Generic_Properties; 
  38. pragma Elaborate_All (Glib.Generic_Properties); 
  39. with Glib.Glist, Glib.GSlist; 
  40. pragma Elaborate_All (Glib.Glist); 
  41. pragma Elaborate_All (Glib.GSlist); 
  42.  
  43. with System; 
  44.  
  45. package Gtk.Enums is 
  46.  
  47.    type Gtk_Anchor_Type is 
  48.      (Anchor_Center, 
  49.       Anchor_North, 
  50.       Anchor_North_West, 
  51.       Anchor_North_East, 
  52.       Anchor_South, 
  53.       Anchor_South_East, 
  54.       Anchor_South_West, 
  55.       Anchor_West, 
  56.       Anchor_East); 
  57.    --  Gtk_Anchor_Type indicates the exact location of the widget on its 
  58.    --  side. Note that not all anchors are relevant for each side. 
  59.    -- 
  60.    --  For instance, if you put a widget on Side_Right, with an anchor of 
  61.    --  Anchor_North, Anchor_North_West or Anchor_North_East, the widget will 
  62.    --  in fact appear on the upper right side of the remaining space in the 
  63.    --  container. 
  64.    -- 
  65.    --  Thus, if a previous child was added on Side_North, then the new child 
  66.    --  will only appear on the second line in the container. The order the 
  67.    --  children are inserted into the container is important. 
  68.  
  69.    pragma Convention (C, Gtk_Anchor_Type); 
  70.  
  71.    Anchor_N  : Gtk_Anchor_Type renames Anchor_North; 
  72.    Anchor_NW : Gtk_Anchor_Type renames Anchor_North_West; 
  73.    Anchor_NE : Gtk_Anchor_Type renames Anchor_North_East; 
  74.    Anchor_S  : Gtk_Anchor_Type renames Anchor_South; 
  75.    Anchor_SW : Gtk_Anchor_Type renames Anchor_South_West; 
  76.    Anchor_SE : Gtk_Anchor_Type renames Anchor_South_East; 
  77.    Anchor_W  : Gtk_Anchor_Type renames Anchor_West; 
  78.    Anchor_E  : Gtk_Anchor_Type renames Anchor_East; 
  79.  
  80.    type Gtk_Arrow_Type is 
  81.      (Arrow_Up, 
  82.       Arrow_Down, 
  83.       Arrow_Left, 
  84.       Arrow_Right); 
  85.    --  The various types of arrows that can be represented by GtkAda 
  86.  
  87.    type Gtk_Attach_Options is new Glib.Guint32; 
  88.    --  The various options used for attaching widgets to tables 
  89.  
  90.    Expand : constant Gtk_Attach_Options := 1; 
  91.    Shrink : constant Gtk_Attach_Options := 2; 
  92.    Fill   : constant Gtk_Attach_Options := 4; 
  93.  
  94.    type Gtk_Button_Box_Style is 
  95.      (Buttonbox_Default_Style, 
  96.       Buttonbox_Spread, 
  97.       Buttonbox_Edge, 
  98.       Buttonbox_Start, 
  99.       Buttonbox_End); 
  100.    --  The style for button boxes 
  101.    --  - Buttonbox_Spread: The children are spread regularly across the box 
  102.    --  - Buttonbox_Edge  : Same as Spread, except that the first and last 
  103.    --                      children are aligned on the border of the box. 
  104.    --  - Buttonbox_Start : The children are put as much to the left (resp. top) 
  105.    --                      as possible in the box. 
  106.    --  - Buttonbox_End   : The children are put as much to the right 
  107.    --                      (resp. bottom) as possible in the box. 
  108.  
  109.    type Gtk_Curve_Type is 
  110.      (Curve_Type_Linear,       --  Linear interpolation 
  111.       Curve_Type_Spline,       --  Spline interpolation 
  112.       Curve_Type_Free);        --  Free form curve 
  113.    --  The curve types that can be used in gtk-curve.ads 
  114.  
  115.    type Gtk_Delete_Type is 
  116.      (Delete_Chars, 
  117.       Delete_Word_Ends, 
  118.       Delete_Words, 
  119.       Delete_Display_Lines, 
  120.       Delete_Display_Line_Ends, 
  121.       Delete_Paragraph_Ends, 
  122.       Delete_Paragraphs, 
  123.       Delete_Whitespace); 
  124.    --  The deletion modes used in the text editor. 
  125.    --  Delete_Word_Ends will delete only the portion of the word to the 
  126.    --  left/right of the cursor if we are in the middle of a word. 
  127.    --  Delete_Paragraph_Ends acts like c-k in Emacs: it deletes the text until, 
  128.    --  but not including, the end of line. 
  129.    --  Delete_Paragraphs acts like c-k in pico: it deletes the whole line. 
  130.    --  Delete_Whitespace acts like M-\ in Emacs, and removes all white spaces 
  131.    --  surrounding the cursor. 
  132.  
  133.    type Gtk_Direction_Type is 
  134.      (Dir_Tab_Forward, 
  135.       Dir_Tab_Backward, 
  136.       Dir_Up, 
  137.       Dir_Down, 
  138.       Dir_Left, 
  139.       Dir_Right); 
  140.    --  Focus movement types 
  141.  
  142.    type Gtk_Expander_Style is 
  143.      (Expander_Collapsed, 
  144.       Expander_Semi_Collapsed, 
  145.       Expander_Semi_Expanded, 
  146.       Expander_Expanded); 
  147.    --  Expander styles, as seen in trees 
  148.  
  149.    type Gtk_Icon_Size is new Gint; 
  150.    Icon_Size_Invalid       : constant Gtk_Icon_Size := 0; 
  151.    Icon_Size_Menu          : constant Gtk_Icon_Size := 1; 
  152.    Icon_Size_Small_Toolbar : constant Gtk_Icon_Size := 2; 
  153.    Icon_Size_Large_Toolbar : constant Gtk_Icon_Size := 3; 
  154.    Icon_Size_Button        : constant Gtk_Icon_Size := 4; 
  155.    Icon_Size_Dnd           : constant Gtk_Icon_Size := 5; 
  156.    Icon_Size_Dialog        : constant Gtk_Icon_Size := 6; 
  157.    --  Built-in stock icon sizes. Depending on the context, icons should be 
  158.    --  displayed larger or smaller (typically, icons in menus are much smaller 
  159.    --  than icons in toolbars for instance). 
  160.    --  New custom icon sizes can be created (see gtk-icon_factory.ads) 
  161.  
  162.    type Gtk_Text_Direction is 
  163.      (Text_Dir_None, 
  164.       Text_Dir_Ltr, 
  165.       Text_Dir_Rtl); 
  166.    --  The directory in which text should be written (left to right or 
  167.    --  right to left). 
  168.  
  169.    type Gtk_Justification is 
  170.      (Justify_Left, 
  171.       Justify_Right, 
  172.       Justify_Center, 
  173.       Justify_Fill); 
  174.    --  Within a paragraph, text can be justified in various ways: aligned on 
  175.    --  the left, aligned on the right, centered, or justified (in which case 
  176.    --  the width of the spaces might vary so that the text is aligned on both 
  177.    --  sides). 
  178.  
  179.    type Gtk_Menu_Direction_Type is 
  180.      (Menu_Dir_Parent, 
  181.       Menu_Dir_Child, 
  182.       Menu_Dir_Next, 
  183.       Menu_Dir_Prev); 
  184.    --  Direction where to move the selection. 
  185.  
  186.    type Gtk_Metric_Type is (Pixels, Inches, Centimeters); 
  187.    --  The unit to use when you display a ruler at the top of a drawing area. 
  188.  
  189.    type Gtk_Movement_Step is 
  190.      (Movement_Logical_Positions, --  move by forw/back graphemes 
  191.       Movement_Visual_Positions,  --  move by left/right graphemes 
  192.       Movement_Words,             --  move by forward/back words 
  193.       Movement_Display_Lines,     --  move up/down lines (wrapped lines) 
  194.       Movement_Display_Line_Ends, --  move up/down lines (wrapped lines) 
  195.       Movement_Paragraphs,        --  move up/down paragraphs 
  196.       Movement_Paragraph_Ends,    --  move to either end of a paragraph 
  197.       Movement_Pages,             --  move by pages 
  198.       Movement_Buffer_Ends,       --  move to ends of the buffer 
  199.       Movement_Horizontal_Pages); --  move horizontally by pages 
  200.    --  The various kind of movements that can be performed within an editor. 
  201.    --  Gtk+ has builtin knowledge of all of the above. 
  202.    --  Note that a paragraph is defined as a new-line ended line. 
  203.  
  204.    type Gtk_Number_Up_Layout is 
  205.      (Left_To_Right_Top_To_Bottom,   --  nick=lrtb 
  206.       Left_To_Right_Bottom_To_Top,   --  nick=lrbt 
  207.       Right_To_Left_Top_To_Bottom,   --  nick=rltb 
  208.       Right_To_Left_Bottom_To_Top,   --  nick=rlbt 
  209.       Top_To_Bottom_Left_To_Right,   --  nick=tblr 
  210.       Top_To_Bottom_Right_To_Left,   --  nick=tbrl 
  211.       Bottom_To_Top_Left_To_Right,   --  nick=btlr 
  212.       Bottom_To_Top_Right_To_Left);  --  nick=btrl 
  213.    --  Used to determine the layout of pages on a sheet when printing multiple 
  214.    --  pages per sheet. 
  215.  
  216.    type Gtk_Scroll_Step is 
  217.      (Scroll_Steps, 
  218.       Scroll_Pages, 
  219.       Scroll_Ends, 
  220.       Scroll_Horizontal_Steps, 
  221.       Scroll_Horizontal_Pages, 
  222.       Scroll_Horizontal_Ends); 
  223.    --  The behavior of scrollbars for editors 
  224.  
  225.    type Gtk_Orientation is (Orientation_Horizontal, Orientation_Vertical); 
  226.    --  Orientation of widgets. Most widgets have no such notion, but for 
  227.    --  instance toolbars can display different kind of information depending 
  228.    --  on their current orientation 
  229.  
  230.    type Gtk_Page_Orientation is 
  231.      (Page_Orientation_Portrait, 
  232.       Page_Orientation_Landscape, 
  233.       Page_Orientation_Reverse_Portrait, 
  234.       Page_Orientation_Reverse_Landscape); 
  235.    --  Orientation of a printed page. 
  236.  
  237.    type Gtk_Corner_Type is 
  238.      (Corner_Top_Left, 
  239.       Corner_Bottom_Left, 
  240.       Corner_Top_Right, 
  241.       Corner_Bottom_Right); 
  242.    --  Type used by Set_Placement below to determine the location of the 
  243.    --  child widget with respect to the scrollbars. 
  244.    --  Corner_Top_Left means the child is in the top left, with the scrollbars 
  245.    --  underneath and to the right. 
  246.  
  247.    type Gtk_Grid_Lines is 
  248.      (Grid_Lines_None, 
  249.       Grid_Lines_Horizontal, 
  250.       Grid_Lines_Vertical, 
  251.       Grid_Lines_Both); 
  252.    --  Used to indicate which grid lines to draw in a tree view. 
  253.  
  254.    type Gtk_Pack_Type is (Pack_Start, Pack_End); 
  255.    --  Whether items should be added at the start or at the end of the list of 
  256.    --  children for a widget. This impacts the visual rendering of containers 
  257.  
  258.    type Gtk_Path_Priority_Type is mod 2 ** 32; 
  259.    --  Priorities for path lookups 
  260.  
  261.    Path_Prio_Lowest      : constant Gtk_Path_Priority_Type := 0; 
  262.    Path_Prio_Gtk         : constant Gtk_Path_Priority_Type := 4; 
  263.    Path_Prio_Application : constant Gtk_Path_Priority_Type := 8; 
  264.    Path_Prio_Theme       : constant Gtk_Path_Priority_Type := 10; 
  265.    Path_Prio_RC          : constant Gtk_Path_Priority_Type := 12; 
  266.    Path_Prio_Highest     : constant Gtk_Path_Priority_Type := 15; 
  267.    Path_Prio_Mask        : constant Gtk_Path_Priority_Type := 16#0f#; 
  268.  
  269.    type Gtk_Path_Type is (Path_Widget, Path_Widget_Class, Path_Class); 
  270.    --  Widget path types 
  271.  
  272.    type Gtk_Policy_Type is (Policy_Always, Policy_Automatic, Policy_Never); 
  273.    --  When should scrollbars be made visible in Gtk_Scrolled_Window 
  274.  
  275.    type Gtk_Position_Type is 
  276.      (Pos_Left, 
  277.       Pos_Right, 
  278.       Pos_Top, 
  279.       Pos_Bottom); 
  280.    --  Use to define the position of children within a container 
  281.  
  282.    type Gtk_Page_Set is 
  283.      (Page_Set_All, 
  284.       Page_Set_Even, 
  285.       Page_Set_Odd); 
  286.    --  The set of pages to print 
  287.  
  288.    type Gtk_Print_Duplex is 
  289.      (Print_Duplex_Simplex, 
  290.       Print_Duplex_Horizontal, 
  291.       Print_Duplex_Vertical); 
  292.    --  Whether/how to print on both sides of a sheet. 
  293.  
  294.    type Gtk_Print_Pages is 
  295.      (Print_Pages_All, 
  296.       Print_Pages_Current, 
  297.       Print_Pages_Ranges); 
  298.    --  Which pages to print. 
  299.  
  300.    type Gtk_Print_Quality is 
  301.      (Print_Quality_Low, 
  302.       Print_Quality_Normal, 
  303.       Print_Quality_High, 
  304.       Print_Quality_Draft); 
  305.    --  Quality of printed output. 
  306.  
  307.    type Gtk_Relief_Style is (Relief_Normal, Relief_Half, Relief_None); 
  308.    --  Explains how the border of widgets should be displayed 
  309.  
  310.    type Gtk_Resize_Mode is 
  311.      (Resize_Parent,     --  Pass request to the parent 
  312.       Resize_Queue,      --  Queue resizes on this widget 
  313.       Resize_Immediate); --  Perform the resizes now 
  314.    --  The resizing of widgets is generally done asynchronously, for efficiency 
  315.    --  reasons. This can have some impact on the visual rendering of the widget 
  316.    --  which might be an issue in some cases. 
  317.    --  This type is only used when you are writting your own containers. 
  318.  
  319.    type Gtk_Scroll_Type is 
  320.      (Scroll_None, 
  321.       Scroll_Jump, 
  322.       Scroll_Step_Backward, 
  323.       Scroll_Step_Forward, 
  324.       Scroll_Page_Backward, 
  325.       Scroll_Page_Forward, 
  326.       Scroll_Step_Up, 
  327.       Scroll_Step_Down, 
  328.       Scroll_Page_Up, 
  329.       Scroll_Page_Down, 
  330.       Scroll_Step_Left, 
  331.       Scroll_Step_Right, 
  332.       Scroll_Page_Left, 
  333.       Scroll_Page_Right, 
  334.       Scroll_Start, 
  335.       Scroll_End); 
  336.    --  How clists should be scrolled 
  337.  
  338.    type Gtk_Selection_Mode is 
  339.      (Selection_None, 
  340.       Selection_Single, 
  341.       Selection_Browse, 
  342.       Selection_Multiple); 
  343.    --  Indicates what selection is allowed in a tree (no selection allowed, a 
  344.    --  single line, a single line when the mouse is released, or multiple 
  345.    --  lines). 
  346.  
  347.    type Gtk_Sensitivity_Type is 
  348.      (Gtk_Sensitivity_Auto, 
  349.       Gtk_Sensitivity_On, 
  350.       Gtk_Sensitivity_Off); 
  351.    --  Determines how GTK+ handles the sensitivity of stepper arrows at 
  352.    --  the end of range widgets. 
  353.  
  354.    type Gtk_Shadow_Type is 
  355.      (Shadow_None, 
  356.       Shadow_In, 
  357.       Shadow_Out, 
  358.       Shadow_Etched_In, 
  359.       Shadow_Etched_Out); 
  360.    --  The type of shadows that can be drawn around widgets 
  361.  
  362.    type Gtk_State_Type is 
  363.      (State_Normal, 
  364.       State_Active, 
  365.       State_Prelight, 
  366.       State_Selected, 
  367.       State_Insensitive); 
  368.    --  Widgets can be in various states. This impacts their visual rendering, 
  369.    --  but can also impact whether they react to events or not (they do not 
  370.    --  when in State_Insensitive mode). 
  371.  
  372.    type Gtk_Toolbar_Style is 
  373.      (Toolbar_Icons, 
  374.       Toolbar_Text, 
  375.       Toolbar_Both, 
  376.       Toolbar_Both_Horiz); 
  377.    --  The style of toolbars. Toolbar_Both_Horiz indicates that both icon and 
  378.    --  text should be displayed, arranged horizontally. 
  379.  
  380.    type Gtk_Unit is (Pixel, Points, Inch, MM); 
  381.    --  Unit of distance measurement. 
  382.  
  383.    type Gtk_Update_Type is 
  384.      (Update_Continuous, 
  385.       Update_Discontinuous, 
  386.       Update_Delayed); 
  387.    --  For some widgets, this indicates how often they should be updated 
  388.  
  389.    type Gtk_Visibility is 
  390.      (Visibility_None, 
  391.       Visibility_Partial, 
  392.       Visibility_Full); 
  393.    --  Generic visibility flags. This indicate how visible a window currently 
  394.    --  is. 
  395.  
  396.    type Gtk_Window_Position is 
  397.      (Win_Pos_None, 
  398.       Win_Pos_Center, 
  399.       Win_Pos_Mouse, 
  400.       Win_Pos_Center_Always, 
  401.       Win_Pos_Center_On_Parent); 
  402.    --  The position at which a new window should be initially displayed on the 
  403.    --  screen. 
  404.  
  405.    type Gtk_Window_Type is 
  406.      (Window_Toplevel, 
  407.       Window_Popup); 
  408.    --  GtkAda supports multiple types of windows. They all act as top-level 
  409.    --  containers, but the amount of decoration is different. A popup window 
  410.    --  has no title bar for instance. 
  411.  
  412.    type Gtk_Wrap_Mode is 
  413.      (Wrap_None, 
  414.       Wrap_Char, 
  415.       Wrap_Word, 
  416.       Wrap_Word_Char); 
  417.    --  Text wrapping algorithm. This indicates where a text widget is allowed 
  418.    --  to break its contents to display multiple lines when a line doesn't fit 
  419.    --  on the screen. 
  420.  
  421.    type Gtk_Sort_Type is 
  422.      (Sort_Ascending, 
  423.       Sort_Descending); 
  424.    --  How to sort 
  425.  
  426.    type Gtk_Pack_Direction is 
  427.      (Pack_Direction_LTR, 
  428.       Pack_Direction_RTL, 
  429.       Pack_Direction_TTB, 
  430.       Pack_Direction_BTT); 
  431.    --  The direction in which children should be packed in their parents 
  432.    --  (Left-to-Right, Right-To-Left, Top-To-Bottom or Bottom-To-Top) 
  433.  
  434.    type Gtk_Text_Window_Type is 
  435.      (Text_Window_Private, 
  436.       Text_Window_Widget, 
  437.       Text_Window_Text, 
  438.       Text_Window_Left, 
  439.       Text_Window_Right, 
  440.       Text_Window_Top, 
  441.       Text_Window_Bottom); 
  442.    --  The various components of a Gtk.Text_View widget 
  443.  
  444.    ------------------------------- 
  445.    --  Some Glib instantiations -- 
  446.    ------------------------------- 
  447.  
  448.    function Convert (S : String) return System.Address; 
  449.    function Convert (S : System.Address) return String; 
  450.    function Convert_I (I : Gint) return System.Address; 
  451.    function Convert_A (S : System.Address) return Gint; 
  452.    pragma Import (C, Convert_I, "convert_i"); 
  453.    pragma Import (C, Convert_A, "convert_a"); 
  454.  
  455.    package String_List is new Glib.Glist.Generic_List (UTF8_String); 
  456.    package String_SList is new Glib.GSlist.Generic_SList (UTF8_String); 
  457.    --  Warning: when you create this list, new memory gets allocated for 
  458.    --  all the strings. You should use the function Free_String_List 
  459.    --  instead of Glib.Glist.Free to be sure to free this memory. 
  460.  
  461.    procedure Free_String_List (List : in out String_List.Glist); 
  462.    procedure Free_String_List (List : in out String_SList.GSlist); 
  463.    --  Free the memory occupied by all the strings in the list, as well 
  464.    --  as the memory occupied by the list itself. 
  465.  
  466.    package Gint_List is new 
  467.      Glib.Glist.Generic_List (Gint, Convert_I, Convert_A); 
  468.  
  469.    function Convert_UI (I : Guint) return System.Address; 
  470.    function Convert_UA (S : System.Address) return Guint; 
  471.    pragma Import (C, Convert_UI, "convert_ui"); 
  472.    pragma Import (C, Convert_UA, "convert_ua"); 
  473.    package Guint_List is new 
  474.      Glib.Glist.Generic_List (Guint, Convert_UI, Convert_UA); 
  475.  
  476.    pragma Convention (C, Gtk_Arrow_Type); 
  477.    pragma Convention (C, Gtk_Button_Box_Style); 
  478.    pragma Convention (C, Gtk_Curve_Type); 
  479.    pragma Convention (C, Gtk_Delete_Type); 
  480.    pragma Convention (C, Gtk_Direction_Type); 
  481.    pragma Convention (C, Gtk_Grid_Lines); 
  482.    pragma Convention (C, Gtk_Path_Type); 
  483.    pragma Convention (C, Gtk_Expander_Style); 
  484.    pragma Convention (C, Gtk_Text_Direction); 
  485.    pragma Convention (C, Gtk_Justification); 
  486.    pragma Convention (C, Gtk_Menu_Direction_Type); 
  487.    pragma Convention (C, Gtk_Metric_Type); 
  488.    pragma Convention (C, Gtk_Movement_Step); 
  489.    pragma Convention (C, Gtk_Number_Up_Layout); 
  490.    pragma Convention (C, Gtk_Orientation); 
  491.    pragma Convention (C, Gtk_Page_Orientation); 
  492.    pragma Convention (C, Gtk_Corner_Type); 
  493.    pragma Convention (C, Gtk_Pack_Type); 
  494.    pragma Convention (C, Gtk_Policy_Type); 
  495.    pragma Convention (C, Gtk_Position_Type); 
  496.    pragma Convention (C, Gtk_Page_Set); 
  497.    pragma Convention (C, Gtk_Print_Duplex); 
  498.    pragma Convention (C, Gtk_Print_Pages); 
  499.    pragma Convention (C, Gtk_Print_Quality); 
  500.    pragma Convention (C, Gtk_Relief_Style); 
  501.    pragma Convention (C, Gtk_Resize_Mode); 
  502.    pragma Convention (C, Gtk_Scroll_Type); 
  503.    pragma Convention (C, Gtk_Selection_Mode); 
  504.    pragma Convention (C, Gtk_Sensitivity_Type); 
  505.    pragma Convention (C, Gtk_Shadow_Type); 
  506.    pragma Convention (C, Gtk_State_Type); 
  507.    pragma Convention (C, Gtk_Text_Window_Type); 
  508.    pragma Convention (C, Gtk_Toolbar_Style); 
  509.    pragma Convention (C, Gtk_Update_Type); 
  510.    pragma Convention (C, Gtk_Unit); 
  511.    pragma Convention (C, Gtk_Visibility); 
  512.    pragma Convention (C, Gtk_Window_Position); 
  513.    pragma Convention (C, Gtk_Window_Type); 
  514.    pragma Convention (C, Gtk_Wrap_Mode); 
  515.    pragma Convention (C, Gtk_Sort_Type); 
  516.  
  517.    ---------------- 
  518.    -- Properties -- 
  519.    ---------------- 
  520.    --  The following packages and types are used to represent properties of 
  521.    --  the given type. They are used in the packages that use these properties 
  522.  
  523.    package Relief_Style_Properties is new 
  524.      Generic_Internal_Discrete_Property (Gtk_Relief_Style); 
  525.    package Resize_Mode_Properties is new 
  526.      Generic_Internal_Discrete_Property (Gtk_Resize_Mode); 
  527.    package Arrow_Type_Properties is new 
  528.      Generic_Internal_Discrete_Property (Gtk_Arrow_Type); 
  529.    package Shadow_Type_Properties is new 
  530.      Generic_Internal_Discrete_Property (Gtk_Shadow_Type); 
  531.    package Update_Type_Properties is new 
  532.      Generic_Internal_Discrete_Property (Gtk_Update_Type); 
  533.    package Position_Type_Properties is new 
  534.      Generic_Internal_Discrete_Property (Gtk_Position_Type); 
  535.    package Toolbar_Style_Properties is new 
  536.      Generic_Internal_Discrete_Property (Gtk_Toolbar_Style); 
  537.    package Justification_Properties is new 
  538.      Generic_Internal_Discrete_Property (Gtk_Justification); 
  539.    package Orientation_Properties is new 
  540.      Generic_Internal_Discrete_Property (Gtk_Orientation); 
  541.    package Window_Type_Properties is new 
  542.      Generic_Internal_Discrete_Property (Gtk_Window_Type); 
  543.    package Window_Position_Properties is new 
  544.      Generic_Internal_Discrete_Property (Gtk_Window_Position); 
  545.    package Text_Direction_Properties is new 
  546.      Generic_Internal_Discrete_Property (Gtk_Text_Direction); 
  547.    package Wrap_Mode_Properties is new 
  548.      Generic_Internal_Discrete_Property (Gtk_Text_Direction); 
  549.    package Policy_Properties is new 
  550.      Generic_Internal_Discrete_Property (Gtk_Policy_Type); 
  551.    package Pack_Direction_Properties is new 
  552.      Generic_Internal_Discrete_Property (Gtk_Pack_Direction); 
  553.    package Sort_Type_Properties is new 
  554.      Generic_Internal_Discrete_Property (Gtk_Sort_Type); 
  555.    package Metric_Type_Properties is new 
  556.      Generic_Internal_Discrete_Property (Gtk_Metric_Type); 
  557.    package Pack_Type_Properties is new 
  558.      Generic_Internal_Discrete_Property (Gtk_Pack_Type); 
  559.    package Icon_Size_Properties is new 
  560.      Generic_Internal_Discrete_Property (Gtk_Icon_Size); 
  561.    package Selection_Mode_Properties is new 
  562.      Generic_Internal_Discrete_Property (Gtk_Selection_Mode); 
  563.    package Sensitivity_Properties is new 
  564.      Generic_Internal_Discrete_Property (Gtk_Sensitivity_Type); 
  565.    package BBox_Style_Properties is new 
  566.      Generic_Internal_Discrete_Property (Gtk_Button_Box_Style); 
  567.    package Curve_Type_Properties is new 
  568.      Generic_Internal_Discrete_Property (Gtk_Curve_Type); 
  569.  
  570.    type Property_Gtk_Relief_Style  is new Relief_Style_Properties.Property; 
  571.    type Property_Gtk_Resize_Mode   is new Resize_Mode_Properties.Property; 
  572.    type Property_Gtk_Arrow_Type    is new Arrow_Type_Properties.Property; 
  573.    type Property_Gtk_Shadow_Type   is new Shadow_Type_Properties.Property; 
  574.    type Property_Gtk_Update_Type   is new Update_Type_Properties.Property; 
  575.    type Property_Gtk_Position_Type is new Position_Type_Properties.Property; 
  576.    type Property_Gtk_Toolbar_Style is new Toolbar_Style_Properties.Property; 
  577.    type Property_Gtk_Button_Box_Style is new BBox_Style_Properties.Property; 
  578.    type Property_Gtk_Justification is new Justification_Properties.Property; 
  579.    type Property_Gtk_Orientation   is new Orientation_Properties.Property; 
  580.    type Property_Gtk_Window_Type   is new Window_Type_Properties.Property; 
  581.    type Property_Gtk_Window_Position is new 
  582.      Window_Position_Properties.Property; 
  583.    type Property_Gtk_Text_Direction is new Text_Direction_Properties.Property; 
  584.    type Property_Gtk_Wrap_Mode     is new Wrap_Mode_Properties.Property; 
  585.    type Property_Gtk_Policy_Type   is new Policy_Properties.Property; 
  586.    type Property_Pack_Direction    is new Pack_Direction_Properties.Property; 
  587.    type Property_Sort_Type         is new Sort_Type_Properties.Property; 
  588.    type Property_Metric_Type       is new Metric_Type_Properties.Property; 
  589.    type Property_Pack_Type         is new Pack_Type_Properties.Property; 
  590.    type Property_Gtk_Icon_Size     is new Icon_Size_Properties.Property; 
  591.    type Property_Gtk_Selection_Mode is new Selection_Mode_Properties.Property; 
  592.    type Property_Gtk_Sensitivity_Type is new Sensitivity_Properties.Property; 
  593.    type Property_Gtk_Curve_Type    is new Curve_Type_Properties.Property; 
  594.  
  595.    ----------------- 
  596.    -- Obsolescent -- 
  597.    ----------------- 
  598.    --  All subprograms below are now obsolescent in gtk+. They might be removed 
  599.    --  from future versions of gtk+ (and therefore GtkAda). 
  600.    --  To find out whether your code uses any of these, we recommend compiling 
  601.    --  with the -gnatwj switch 
  602.    --  <doc_ignore> 
  603.  
  604.    type Gtk_Side_Type is (Side_Top, Side_Bottom, Side_Left, Side_Right); 
  605.    --  pragma Obsolescent; 
  606.    pragma Convention (C, Gtk_Side_Type); 
  607.  
  608.    type Gtk_Match_Type is 
  609.      (Match_All, Match_All_Tail, Match_Head, Match_Tail, 
  610.       Match_Exact, Match_Last); 
  611.    --  pragma Obsolescent; 
  612.    pragma Convention (C, Gtk_Match_Type); 
  613.  
  614.    type Gtk_Preview_Type is (Preview_Color, Preview_Grayscale); 
  615.    --  pragma Obsolescent; 
  616.    pragma Convention (C, Gtk_Preview_Type); 
  617.  
  618.    type Gtk_Submenu_Direction is (Direction_Left, Direction_Right); 
  619.    --  pragma Obsolescent; 
  620.  
  621.    type Gtk_Submenu_Placement is (Top_Bottom, Left_Right); 
  622.    --  pragma Obsolescent; 
  623.  
  624.    type Gtk_Toolbar_Space_Style is (Toolbar_Space_Empty, Toolbar_Space_Line); 
  625.    --  pragma Obsolescent; 
  626.  
  627.    pragma Convention (C, Gtk_Toolbar_Space_Style); 
  628.  
  629.    package Toolbar_Space_Style_Properties is new 
  630.      Generic_Internal_Discrete_Property (Gtk_Toolbar_Space_Style); 
  631.    type Property_Toolbar_Space_Style is new 
  632.      Toolbar_Space_Style_Properties.Property; 
  633.  
  634.    type Gtk_Tree_View_Mode is (Tree_View_Line, Tree_View_Item); 
  635.    --  pragma Obsolescent; 
  636.  
  637.    pragma Convention (C, Gtk_Submenu_Direction); 
  638.    pragma Convention (C, Gtk_Submenu_Placement); 
  639.    pragma Convention (C, Gtk_Tree_View_Mode); 
  640.    --  </doc_ignore> 
  641.  
  642.    --  These comments are for the sake of our automatic tool to check whether 
  643.    --  the bindings are up-to-date. They indicate that the functions are part 
  644.    --  of GtkAda itself, no gtk+ 
  645.    --  External binding: convert_ui 
  646.    --  External binding: convert_ua 
  647.    --  External binding: convert_i 
  648.    --  External binding: convert_a 
  649. end Gtk.Enums;