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. pragma Ada_2005; 
  25.  
  26. pragma Warnings (Off, "*is already use-visible*"); 
  27. with Glib.GSlist;             use Glib.GSlist; 
  28. with Glib.Generic_Properties; use Glib.Generic_Properties; 
  29. with Glib.Glist;              use Glib.Glist; 
  30.  
  31. package Gtk.Enums is 
  32.  
  33.    type Gtk_Arrow_Type is ( 
  34.       Arrow_Up, 
  35.       Arrow_Down, 
  36.       Arrow_Left, 
  37.       Arrow_Right, 
  38.       Arrow_None); 
  39.    pragma Convention (C, Gtk_Arrow_Type); 
  40.    --  Used to indicate the direction in which a Gtk.Arrow.Gtk_Arrow should 
  41.    --  point. 
  42.  
  43.    type Gtk_Attach_Options is mod 2 ** Integer'Size; 
  44.    pragma Convention (C, Gtk_Attach_Options); 
  45.    --  Denotes the expansion properties that a widget will have when it (or 
  46.    --  its parent) is resized. 
  47.  
  48.    Expand : constant Gtk_Attach_Options := 1; 
  49.    Shrink : constant Gtk_Attach_Options := 2; 
  50.    Fill : constant Gtk_Attach_Options := 4; 
  51.  
  52.    type Gtk_Button_Box_Style is ( 
  53.       Buttonbox_Spread, 
  54.       Buttonbox_Edge, 
  55.       Buttonbox_Start, 
  56.       Buttonbox_End, 
  57.       Buttonbox_Center); 
  58.    pragma Convention (C, Gtk_Button_Box_Style); 
  59.    --  Used to dictate the style that a Gtk.Button_Box.Gtk_Button_Box uses to 
  60.    --  layout the buttons it contains. (See also: 
  61.    --  Gtk.Vbutton_Box.Gtk_Vbutton_Box and Gtk.Hbutton_Box.Gtk_Hbutton_Box). 
  62.  
  63.    for Gtk_Button_Box_Style use ( 
  64.       Buttonbox_Spread => 1, 
  65.       Buttonbox_Edge => 2, 
  66.       Buttonbox_Start => 3, 
  67.       Buttonbox_End => 4, 
  68.       Buttonbox_Center => 5); 
  69.  
  70.    type Gtk_Corner_Type is ( 
  71.       Corner_Top_Left, 
  72.       Corner_Bottom_Left, 
  73.       Corner_Top_Right, 
  74.       Corner_Bottom_Right); 
  75.    pragma Convention (C, Gtk_Corner_Type); 
  76.    --  Specifies which corner a child widget should be placed in when packed 
  77.    --  into a Gtk.Scrolled_Window.Gtk_Scrolled_Window. This is effectively the 
  78.    --  opposite of where the scroll bars are placed. 
  79.  
  80.    type Gtk_Delete_Type is ( 
  81.       Delete_Chars, 
  82.       Delete_Word_Ends, 
  83.       Delete_Words, 
  84.       Delete_Display_Lines, 
  85.       Delete_Display_Line_Ends, 
  86.       Delete_Paragraph_Ends, 
  87.       Delete_Paragraphs, 
  88.       Delete_Whitespace); 
  89.    pragma Convention (C, Gtk_Delete_Type); 
  90.  
  91.  
  92.    type Gtk_Direction_Type is ( 
  93.       Dir_Tab_Forward, 
  94.       Dir_Tab_Backward, 
  95.       Dir_Up, 
  96.       Dir_Down, 
  97.       Dir_Left, 
  98.       Dir_Right); 
  99.    pragma Convention (C, Gtk_Direction_Type); 
  100.  
  101.  
  102.    type Gtk_Drag_Result is ( 
  103.       Drag_Result_Success, 
  104.       Drag_Result_No_Target, 
  105.       Drag_Result_User_Cancelled, 
  106.       Drag_Result_Timeout_Expired, 
  107.       Drag_Result_Grab_Broken, 
  108.       Drag_Result_Error); 
  109.    pragma Convention (C, Gtk_Drag_Result); 
  110.    --  Gives an indication why a drag operation failed. The value can by 
  111.    --  obtained by connecting to the Gtk.Widget.Gtk_Widget::drag-failed signal. 
  112.  
  113.    type Gtk_Expander_Style is ( 
  114.       Expander_Collapsed, 
  115.       Expander_Semi_Collapsed, 
  116.       Expander_Semi_Expanded, 
  117.       Expander_Expanded); 
  118.    pragma Convention (C, Gtk_Expander_Style); 
  119.    --  Used to specify the style of the expanders drawn by a 
  120.    --  Gtk.Tree_View.Gtk_Tree_View. 
  121.  
  122.    type Gtk_Icon_Size is mod 2 ** Integer'Size; 
  123.    pragma Convention (C, Gtk_Icon_Size); 
  124.  
  125.  
  126.    Icon_Size_Invalid : constant Gtk_Icon_Size := 0; 
  127.    Icon_Size_Menu : constant Gtk_Icon_Size := 1; 
  128.    Icon_Size_Small_Toolbar : constant Gtk_Icon_Size := 2; 
  129.    Icon_Size_Large_Toolbar : constant Gtk_Icon_Size := 3; 
  130.    Icon_Size_Button : constant Gtk_Icon_Size := 4; 
  131.    Icon_Size_Dnd : constant Gtk_Icon_Size := 5; 
  132.    Icon_Size_Dialog : constant Gtk_Icon_Size := 6; 
  133.  
  134.    type Gtk_Junction_Sides is mod 2 ** Integer'Size; 
  135.    pragma Convention (C, Gtk_Junction_Sides); 
  136.    --  Describes how a rendered element connects to adjacent elements. 
  137.  
  138.    Junction_None : constant Gtk_Junction_Sides := 0; 
  139.    Junction_Corner_Topleft : constant Gtk_Junction_Sides := 1; 
  140.    Junction_Corner_Topright : constant Gtk_Junction_Sides := 2; 
  141.    Junction_Corner_Bottomleft : constant Gtk_Junction_Sides := 4; 
  142.    Junction_Corner_Bottomright : constant Gtk_Junction_Sides := 8; 
  143.    Junction_Top : constant Gtk_Junction_Sides := 3; 
  144.    Junction_Bottom : constant Gtk_Junction_Sides := 12; 
  145.    Junction_Left : constant Gtk_Junction_Sides := 5; 
  146.    Junction_Right : constant Gtk_Junction_Sides := 10; 
  147.  
  148.    type Gtk_Justification is ( 
  149.       Justify_Left, 
  150.       Justify_Right, 
  151.       Justify_Center, 
  152.       Justify_Fill); 
  153.    pragma Convention (C, Gtk_Justification); 
  154.    --  Used for justifying the text inside a Gtk.Label.Gtk_Label widget. (See 
  155.    --  also Gtk.Alignment.Gtk_Alignment). 
  156.  
  157.    type Gtk_Menu_Direction_Type is ( 
  158.       Menu_Dir_Parent, 
  159.       Menu_Dir_Child, 
  160.       Menu_Dir_Next, 
  161.       Menu_Dir_Prev); 
  162.    pragma Convention (C, Gtk_Menu_Direction_Type); 
  163.    --  An enumeration representing directional movements within a menu. 
  164.  
  165.    type Gtk_Movement_Step is ( 
  166.       Movement_Logical_Positions, 
  167.       Movement_Visual_Positions, 
  168.       Movement_Words, 
  169.       Movement_Display_Lines, 
  170.       Movement_Display_Line_Ends, 
  171.       Movement_Paragraphs, 
  172.       Movement_Paragraph_Ends, 
  173.       Movement_Pages, 
  174.       Movement_Buffer_Ends, 
  175.       Movement_Horizontal_Pages); 
  176.    pragma Convention (C, Gtk_Movement_Step); 
  177.  
  178.  
  179.    type Gtk_Input_Hints is mod 2 ** Integer'Size; 
  180.    pragma Convention (C, Gtk_Input_Hints); 
  181.    --  Describes hints that might be taken into account by input methods or 
  182.    --  applications. Note that input methods may already tailor their behaviour 
  183.    --  according to the Gtk.Enums.Gtk_Input_Purpose of the entry. 
  184.    -- 
  185.    --  Some common sense is expected when using these flags - mixing 
  186.    --  Gtk_Input_Hint_Lowercase with any of the uppercase hints makes no sense. 
  187.    -- 
  188.    --  This enumeration may be extended in the future; input methods should 
  189.    --  ignore unknown values. 
  190.  
  191.    Input_Hint_None : constant Gtk_Input_Hints := 0; 
  192.    Input_Hint_Spellcheck : constant Gtk_Input_Hints := 1; 
  193.    Input_Hint_No_Spellcheck : constant Gtk_Input_Hints := 2; 
  194.    Input_Hint_Word_Completion : constant Gtk_Input_Hints := 4; 
  195.    Input_Hint_Lowercase : constant Gtk_Input_Hints := 8; 
  196.    Input_Hint_Uppercase_Chars : constant Gtk_Input_Hints := 16; 
  197.    Input_Hint_Uppercase_Words : constant Gtk_Input_Hints := 32; 
  198.    Input_Hint_Uppercase_Sentences : constant Gtk_Input_Hints := 64; 
  199.    Input_Hint_Inhibit_Osk : constant Gtk_Input_Hints := 128; 
  200.  
  201.    type Gtk_Input_Purpose is ( 
  202.       Input_Purpose_Free_Form, 
  203.       Input_Purpose_Alpha, 
  204.       Input_Purpose_Digits, 
  205.       Input_Purpose_Number, 
  206.       Input_Purpose_Phone, 
  207.       Input_Purpose_Url, 
  208.       Input_Purpose_Email, 
  209.       Input_Purpose_Name, 
  210.       Input_Purpose_Password, 
  211.       Input_Purpose_Pin); 
  212.    pragma Convention (C, Gtk_Input_Purpose); 
  213.    --  Describes primary purpose of the input widget. This information is 
  214.    --  useful for on-screen keyboards and similar input methods to decide which 
  215.    --  keys should be presented to the user. 
  216.    -- 
  217.    --  Note that the purpose is not meant to impose a totally strict rule 
  218.    --  about allowed characters, and does not replace input validation. It is 
  219.    --  fine for an on-screen keyboard to let the user override the character 
  220.    --  set restriction that is expressed by the purpose. The application is 
  221.    --  expected to validate the entry contents, even if it specified a purpose. 
  222.    -- 
  223.    --  The difference between Gtk_Input_Purpose_Digits and 
  224.    --  Gtk_Input_Purpose_Number is that the former accepts only digits while 
  225.    --  the latter also some punctuation (like commas or points, plus, minus) 
  226.    --  and 'e' or 'E' as in 3.14E+000. 
  227.    -- 
  228.    --  This enumeration may be extended in the future; input methods should 
  229.    --  interpret unknown values as 'free form'. 
  230.  
  231.    type Gtk_Number_Up_Layout is ( 
  232.       Left_To_Right_Top_To_Bottom, 
  233.       Left_To_Right_Bottom_To_Top, 
  234.       Right_To_Left_Top_To_Bottom, 
  235.       Right_To_Left_Bottom_To_Top, 
  236.       Top_To_Bottom_Left_To_Right, 
  237.       Top_To_Bottom_Right_To_Left, 
  238.       Bottom_To_Top_Left_To_Right, 
  239.       Bottom_To_Top_Right_To_Left); 
  240.    pragma Convention (C, Gtk_Number_Up_Layout); 
  241.    --  Used to determine the layout of pages on a sheet when printing multiple 
  242.    --  pages per sheet. 
  243.  
  244.    type Gtk_Orientation is ( 
  245.       Orientation_Horizontal, 
  246.       Orientation_Vertical); 
  247.    pragma Convention (C, Gtk_Orientation); 
  248.    --  Represents the orientation of widgets which can be switched between 
  249.    --  horizontal and vertical orientation on the fly, like 
  250.    --  Gtk.Toolbar.Gtk_Toolbar. 
  251.  
  252.    type Gtk_Pack_Direction is ( 
  253.       Pack_Direction_Ltr, 
  254.       Pack_Direction_Rtl, 
  255.       Pack_Direction_Ttb, 
  256.       Pack_Direction_Btt); 
  257.    pragma Convention (C, Gtk_Pack_Direction); 
  258.    --  Determines how widgets should be packed inside menubars and menuitems 
  259.    --  contained in menubars. 
  260.  
  261.    type Gtk_Pack_Type is ( 
  262.       Pack_Start, 
  263.       Pack_End); 
  264.    pragma Convention (C, Gtk_Pack_Type); 
  265.    --  Represents the packing location Gtk.Box.Gtk_Box children. (See: 
  266.    --  Gtk.Box.Gtk_Vbox, Gtk.Box.Gtk_Hbox, and Gtk.Button_Box.Gtk_Button_Box). 
  267.  
  268.    type Gtk_Page_Orientation is ( 
  269.       Page_Orientation_Portrait, 
  270.       Page_Orientation_Landscape, 
  271.       Page_Orientation_Reverse_Portrait, 
  272.       Page_Orientation_Reverse_Landscape); 
  273.    pragma Convention (C, Gtk_Page_Orientation); 
  274.  
  275.  
  276.    type Gtk_Page_Set is ( 
  277.       Page_Set_All, 
  278.       Page_Set_Even, 
  279.       Page_Set_Odd); 
  280.    pragma Convention (C, Gtk_Page_Set); 
  281.  
  282.  
  283.    type Gtk_Level_Bar_Mode is ( 
  284.       Level_Bar_Mode_Continuous, 
  285.       Level_Bar_Mode_Discrete); 
  286.    pragma Convention (C, Gtk_Level_Bar_Mode); 
  287.    --  Describes how Gtk.Level_Bar.Gtk_Level_Bar contents should be rendered. 
  288.    --  Note that this enumeration could be extended with additional modes in 
  289.    --  the future. 
  290.  
  291.    type Gtk_Path_Priority_Type is ( 
  292.       Path_Prio_Lowest, 
  293.       Path_Prio_Gtk, 
  294.       Path_Prio_Application, 
  295.       Path_Prio_Theme, 
  296.       Path_Prio_Rc, 
  297.       Path_Prio_Highest); 
  298.    pragma Convention (C, Gtk_Path_Priority_Type); 
  299.  
  300.  
  301.    for Gtk_Path_Priority_Type use ( 
  302.       Path_Prio_Lowest => 0, 
  303.       Path_Prio_Gtk => 4, 
  304.       Path_Prio_Application => 8, 
  305.       Path_Prio_Theme => 10, 
  306.       Path_Prio_Rc => 12, 
  307.       Path_Prio_Highest => 15); 
  308.  
  309.    type Gtk_Path_Type is ( 
  310.       Path_Widget, 
  311.       Path_Widget_Class, 
  312.       Path_Class); 
  313.    pragma Convention (C, Gtk_Path_Type); 
  314.  
  315.  
  316.    type Gtk_Policy_Type is ( 
  317.       Policy_Always, 
  318.       Policy_Automatic, 
  319.       Policy_Never); 
  320.    pragma Convention (C, Gtk_Policy_Type); 
  321.    --  Determines when a scroll bar will be visible. 
  322.  
  323.    type Gtk_Position_Type is ( 
  324.       Pos_Left, 
  325.       Pos_Right, 
  326.       Pos_Top, 
  327.       Pos_Bottom); 
  328.    pragma Convention (C, Gtk_Position_Type); 
  329.    --  Describes which edge of a widget a certain feature is positioned at, 
  330.    --  e.g. the tabs of a Gtk.Notebook.Gtk_Notebook, the handle of a 
  331.    --  Gtk.Handle_Box.Gtk_Handle_Box or the label of a Gtk.Scale.Gtk_Scale. 
  332.  
  333.    type Gtk_Print_Duplex is ( 
  334.       Print_Duplex_Simplex, 
  335.       Print_Duplex_Horizontal, 
  336.       Print_Duplex_Vertical); 
  337.    pragma Convention (C, Gtk_Print_Duplex); 
  338.  
  339.  
  340.    type Gtk_Print_Pages is ( 
  341.       Print_Pages_All, 
  342.       Print_Pages_Current, 
  343.       Print_Pages_Ranges, 
  344.       Print_Pages_Selection); 
  345.    pragma Convention (C, Gtk_Print_Pages); 
  346.  
  347.  
  348.    type Gtk_Print_Quality is ( 
  349.       Print_Quality_Low, 
  350.       Print_Quality_Normal, 
  351.       Print_Quality_High, 
  352.       Print_Quality_Draft); 
  353.    pragma Convention (C, Gtk_Print_Quality); 
  354.  
  355.  
  356.    type Gtk_Region_Flags is mod 2 ** Integer'Size; 
  357.    pragma Convention (C, Gtk_Region_Flags); 
  358.    --  Describes a region within a widget. 
  359.  
  360.    Region_Even : constant Gtk_Region_Flags := 1; 
  361.    Region_Odd : constant Gtk_Region_Flags := 2; 
  362.    Region_First : constant Gtk_Region_Flags := 4; 
  363.    Region_Last : constant Gtk_Region_Flags := 8; 
  364.    Region_Only : constant Gtk_Region_Flags := 16; 
  365.    Region_Sorted : constant Gtk_Region_Flags := 32; 
  366.  
  367.    type Gtk_Relief_Style is ( 
  368.       Relief_Normal, 
  369.       Relief_Half, 
  370.       Relief_None); 
  371.    pragma Convention (C, Gtk_Relief_Style); 
  372.    --  Indicated the relief to be drawn around a Gtk.Button.Gtk_Button. 
  373.  
  374.    type Gtk_Resize_Mode is ( 
  375.       Resize_Parent, 
  376.       Resize_Queue, 
  377.       Resize_Immediate); 
  378.    pragma Convention (C, Gtk_Resize_Mode); 
  379.  
  380.  
  381.    type Gtk_Scroll_Step is ( 
  382.       Scroll_Steps, 
  383.       Scroll_Pages, 
  384.       Scroll_Ends, 
  385.       Scroll_Horizontal_Steps, 
  386.       Scroll_Horizontal_Pages, 
  387.       Scroll_Horizontal_Ends); 
  388.    pragma Convention (C, Gtk_Scroll_Step); 
  389.  
  390.  
  391.    type Gtk_Scroll_Type is ( 
  392.       Scroll_None, 
  393.       Scroll_Jump, 
  394.       Scroll_Step_Backward, 
  395.       Scroll_Step_Forward, 
  396.       Scroll_Page_Backward, 
  397.       Scroll_Page_Forward, 
  398.       Scroll_Step_Up, 
  399.       Scroll_Step_Down, 
  400.       Scroll_Page_Up, 
  401.       Scroll_Page_Down, 
  402.       Scroll_Step_Left, 
  403.       Scroll_Step_Right, 
  404.       Scroll_Page_Left, 
  405.       Scroll_Page_Right, 
  406.       Scroll_Start, 
  407.       Scroll_End); 
  408.    pragma Convention (C, Gtk_Scroll_Type); 
  409.  
  410.  
  411.    type Gtk_Scrollable_Policy is ( 
  412.       Scroll_Minimum, 
  413.       Scroll_Natural); 
  414.    pragma Convention (C, Gtk_Scrollable_Policy); 
  415.    --  Defines the policy to be used in a scrollable widget when updating the 
  416.    --  scrolled window adjustments in a given orientation. 
  417.  
  418.    type Gtk_Selection_Mode is ( 
  419.       Selection_None, 
  420.       Selection_Single, 
  421.       Selection_Browse, 
  422.       Selection_Multiple); 
  423.    pragma Convention (C, Gtk_Selection_Mode); 
  424.    --  Used to control what selections users are allowed to make. 
  425.  
  426.    type Gtk_Sensitivity_Type is ( 
  427.       Sensitivity_Auto, 
  428.       Sensitivity_On, 
  429.       Sensitivity_Off); 
  430.    pragma Convention (C, Gtk_Sensitivity_Type); 
  431.    --  Determines how GTK+ handles the sensitivity of stepper arrows at the 
  432.    --  end of range widgets. 
  433.  
  434.    type Gtk_Shadow_Type is ( 
  435.       Shadow_None, 
  436.       Shadow_In, 
  437.       Shadow_Out, 
  438.       Shadow_Etched_In, 
  439.       Shadow_Etched_Out); 
  440.    pragma Convention (C, Gtk_Shadow_Type); 
  441.    --  Used to change the appearance of an outline typically provided by a 
  442.    --  Gtk.Frame.Gtk_Frame. 
  443.  
  444.    type Gtk_Size_Request_Mode is ( 
  445.       Height_For_Width, 
  446.       Width_For_Height, 
  447.       Constant_Size); 
  448.    pragma Convention (C, Gtk_Size_Request_Mode); 
  449.    --  Specifies a preference for height-for-width or width-for-height 
  450.    --  geometry management. 
  451.  
  452.    type Gtk_Sort_Type is ( 
  453.       Sort_Ascending, 
  454.       Sort_Descending); 
  455.    pragma Convention (C, Gtk_Sort_Type); 
  456.    --  Determines the direction of a sort. 
  457.  
  458.    type Gtk_State_Flags is mod 2 ** Integer'Size; 
  459.    pragma Convention (C, Gtk_State_Flags); 
  460.    --  Describes a widget state. Widget states are used to match the widget 
  461.    --  against CSS pseudo-classes. Note that GTK extends the regular CSS 
  462.    --  classes and sometimes uses different names. 
  463.  
  464.    Gtk_State_Flag_Normal : constant Gtk_State_Flags := 0; 
  465.    Gtk_State_Flag_Active : constant Gtk_State_Flags := 1; 
  466.    Gtk_State_Flag_Prelight : constant Gtk_State_Flags := 2; 
  467.    Gtk_State_Flag_Selected : constant Gtk_State_Flags := 4; 
  468.    Gtk_State_Flag_Insensitive : constant Gtk_State_Flags := 8; 
  469.    Gtk_State_Flag_Inconsistent : constant Gtk_State_Flags := 16; 
  470.    Gtk_State_Flag_Focused : constant Gtk_State_Flags := 32; 
  471.    Gtk_State_Flag_Backdrop : constant Gtk_State_Flags := 64; 
  472.    Gtk_State_Flag_Dir_Ltr : constant Gtk_State_Flags := 128; 
  473.    Gtk_State_Flag_Dir_Rtl : constant Gtk_State_Flags := 256; 
  474.  
  475.    type Gtk_State_Type is ( 
  476.       State_Normal, 
  477.       State_Active, 
  478.       State_Prelight, 
  479.       State_Selected, 
  480.       State_Insensitive, 
  481.       State_Inconsistent, 
  482.       State_Focused); 
  483.    pragma Convention (C, Gtk_State_Type); 
  484.    --  This type indicates the current state of a widget; the state determines 
  485.    --  how the widget is drawn. The Gtk.Enums.Gtk_State_Type enumeration is 
  486.    --  also used to identify different colors in a Gtk.Style.Gtk_Style for 
  487.    --  drawing, so states can be used for subparts of a widget as well as 
  488.    --  entire widgets. 
  489.  
  490.    type Gtk_Target_Flags is mod 2 ** Integer'Size; 
  491.    pragma Convention (C, Gtk_Target_Flags); 
  492.    --  The Gtk.Enums.Gtk_Target_Flags enumeration is used to specify 
  493.    --  constraints on an entry in a Gtk_Target_Table. 
  494.  
  495.    Gtk_Target_Same_App : constant Gtk_Target_Flags := 1; 
  496.    Gtk_Target_Same_Widget : constant Gtk_Target_Flags := 2; 
  497.    Gtk_Target_Other_App : constant Gtk_Target_Flags := 4; 
  498.    Gtk_Target_Other_Widget : constant Gtk_Target_Flags := 8; 
  499.  
  500.    type Gtk_Text_Direction is ( 
  501.       Text_Dir_None, 
  502.       Text_Dir_Ltr, 
  503.       Text_Dir_Rtl); 
  504.    pragma Convention (C, Gtk_Text_Direction); 
  505.  
  506.  
  507.    type Gtk_Text_Window_Type is ( 
  508.       Text_Window_Private, 
  509.       Text_Window_Widget, 
  510.       Text_Window_Text, 
  511.       Text_Window_Left, 
  512.       Text_Window_Right, 
  513.       Text_Window_Top, 
  514.       Text_Window_Bottom); 
  515.    pragma Convention (C, Gtk_Text_Window_Type); 
  516.  
  517.  
  518.    type Gtk_Tree_View_Grid_Lines is ( 
  519.       Grid_Lines_None, 
  520.       Grid_Lines_Horizontal, 
  521.       Grid_Lines_Vertical, 
  522.       Grid_Lines_Both); 
  523.    pragma Convention (C, Gtk_Tree_View_Grid_Lines); 
  524.    --  Used to indicate which grid lines to draw in a tree view. 
  525.  
  526.    type Gtk_Toolbar_Space_Style is ( 
  527.       Toolbar_Space_Empty, 
  528.       Toolbar_Space_Line); 
  529.    pragma Convention (C, Gtk_Toolbar_Space_Style); 
  530.  
  531.  
  532.    type Gtk_Toolbar_Style is ( 
  533.       Toolbar_Icons, 
  534.       Toolbar_Text, 
  535.       Toolbar_Both, 
  536.       Toolbar_Both_Horiz); 
  537.    pragma Convention (C, Gtk_Toolbar_Style); 
  538.    --  Used to customize the appearance of a Gtk.Toolbar.Gtk_Toolbar. Note 
  539.    --  that setting the toolbar style overrides the user's preferences for the 
  540.    --  default toolbar style. Note that if the button has only a label set and 
  541.    --  GTK_TOOLBAR_ICONS is used, the label will be visible, and vice versa. 
  542.  
  543.    type Gtk_Unit is ( 
  544.       None, 
  545.       Points, 
  546.       Inch, 
  547.       Mm); 
  548.    pragma Convention (C, Gtk_Unit); 
  549.  
  550.  
  551.    type Gtk_Window_Position is ( 
  552.       Win_Pos_None, 
  553.       Win_Pos_Center, 
  554.       Win_Pos_Mouse, 
  555.       Win_Pos_Center_Always, 
  556.       Win_Pos_Center_On_Parent); 
  557.    pragma Convention (C, Gtk_Window_Position); 
  558.    --  Window placement can be influenced using this enumeration. Note that 
  559.    --  using GTK_WIN_POS_CENTER_ALWAYS is almost always a bad idea. It won't 
  560.    --  necessarily work well with all window managers or on all windowing 
  561.    --  systems. 
  562.  
  563.    type Gtk_Window_Type is ( 
  564.       Window_Toplevel, 
  565.       Window_Popup); 
  566.    pragma Convention (C, Gtk_Window_Type); 
  567.    --  A Gtk.Window.Gtk_Window can be one of these types. Most things you'd 
  568.    --  consider a "window" should have type GTK_WINDOW_TOPLEVEL; windows with 
  569.    --  this type are managed by the window manager and have a frame by default 
  570.    --  (call Gtk.Window.Set_Decorated to toggle the frame). Windows with type 
  571.    --  GTK_WINDOW_POPUP are ignored by the window manager; window manager 
  572.    --  keybindings won't work on them, the window manager won't decorate the 
  573.    --  window with a frame, many GTK+ features that rely on the window manager 
  574.    --  will not work (e.g. resize grips and maximization/minimization). 
  575.    --  GTK_WINDOW_POPUP is used to implement widgets such as Gtk.Menu.Gtk_Menu 
  576.    --  or tooltips that you normally don't think of as windows per se. Nearly 
  577.    --  all windows should be GTK_WINDOW_TOPLEVEL. In particular, do not use 
  578.    --  GTK_WINDOW_POPUP just to turn off the window borders; use 
  579.    --  Gtk.Window.Set_Decorated for that. 
  580.  
  581.    type Gtk_Wrap_Mode is ( 
  582.       Wrap_None, 
  583.       Wrap_Char, 
  584.       Wrap_Word, 
  585.       Wrap_Word_Char); 
  586.    pragma Convention (C, Gtk_Wrap_Mode); 
  587.    --  Describes a type of line wrapping. 
  588.  
  589.    ---------------------------- 
  590.    -- Enumeration Properties -- 
  591.    ---------------------------- 
  592.  
  593.    package Gtk_Arrow_Type_Properties is 
  594.       new Generic_Internal_Discrete_Property (Gtk_Arrow_Type); 
  595.    type Property_Gtk_Arrow_Type is new Gtk_Arrow_Type_Properties.Property; 
  596.  
  597.    package Gtk_Attach_Options_Properties is 
  598.       new Generic_Internal_Discrete_Property (Gtk_Attach_Options); 
  599.    type Property_Gtk_Attach_Options is new Gtk_Attach_Options_Properties.Property; 
  600.  
  601.    package Gtk_Button_Box_Style_Properties is 
  602.       new Generic_Internal_Discrete_Property (Gtk_Button_Box_Style); 
  603.    type Property_Gtk_Button_Box_Style is new Gtk_Button_Box_Style_Properties.Property; 
  604.  
  605.    package Gtk_Corner_Type_Properties is 
  606.       new Generic_Internal_Discrete_Property (Gtk_Corner_Type); 
  607.    type Property_Gtk_Corner_Type is new Gtk_Corner_Type_Properties.Property; 
  608.  
  609.    package Gtk_Delete_Type_Properties is 
  610.       new Generic_Internal_Discrete_Property (Gtk_Delete_Type); 
  611.    type Property_Gtk_Delete_Type is new Gtk_Delete_Type_Properties.Property; 
  612.  
  613.    package Gtk_Direction_Type_Properties is 
  614.       new Generic_Internal_Discrete_Property (Gtk_Direction_Type); 
  615.    type Property_Gtk_Direction_Type is new Gtk_Direction_Type_Properties.Property; 
  616.  
  617.    package Gtk_Drag_Result_Properties is 
  618.       new Generic_Internal_Discrete_Property (Gtk_Drag_Result); 
  619.    type Property_Gtk_Drag_Result is new Gtk_Drag_Result_Properties.Property; 
  620.  
  621.    package Gtk_Expander_Style_Properties is 
  622.       new Generic_Internal_Discrete_Property (Gtk_Expander_Style); 
  623.    type Property_Gtk_Expander_Style is new Gtk_Expander_Style_Properties.Property; 
  624.  
  625.    package Gtk_Icon_Size_Properties is 
  626.       new Generic_Internal_Discrete_Property (Gtk_Icon_Size); 
  627.    type Property_Gtk_Icon_Size is new Gtk_Icon_Size_Properties.Property; 
  628.  
  629.    package Gtk_Junction_Sides_Properties is 
  630.       new Generic_Internal_Discrete_Property (Gtk_Junction_Sides); 
  631.    type Property_Gtk_Junction_Sides is new Gtk_Junction_Sides_Properties.Property; 
  632.  
  633.    package Gtk_Justification_Properties is 
  634.       new Generic_Internal_Discrete_Property (Gtk_Justification); 
  635.    type Property_Gtk_Justification is new Gtk_Justification_Properties.Property; 
  636.  
  637.    package Gtk_Menu_Direction_Type_Properties is 
  638.       new Generic_Internal_Discrete_Property (Gtk_Menu_Direction_Type); 
  639.    type Property_Gtk_Menu_Direction_Type is new Gtk_Menu_Direction_Type_Properties.Property; 
  640.  
  641.    package Gtk_Movement_Step_Properties is 
  642.       new Generic_Internal_Discrete_Property (Gtk_Movement_Step); 
  643.    type Property_Gtk_Movement_Step is new Gtk_Movement_Step_Properties.Property; 
  644.  
  645.    package Gtk_Input_Hints_Properties is 
  646.       new Generic_Internal_Discrete_Property (Gtk_Input_Hints); 
  647.    type Property_Gtk_Input_Hints is new Gtk_Input_Hints_Properties.Property; 
  648.  
  649.    package Gtk_Input_Purpose_Properties is 
  650.       new Generic_Internal_Discrete_Property (Gtk_Input_Purpose); 
  651.    type Property_Gtk_Input_Purpose is new Gtk_Input_Purpose_Properties.Property; 
  652.  
  653.    package Gtk_Number_Up_Layout_Properties is 
  654.       new Generic_Internal_Discrete_Property (Gtk_Number_Up_Layout); 
  655.    type Property_Gtk_Number_Up_Layout is new Gtk_Number_Up_Layout_Properties.Property; 
  656.  
  657.    package Gtk_Orientation_Properties is 
  658.       new Generic_Internal_Discrete_Property (Gtk_Orientation); 
  659.    type Property_Gtk_Orientation is new Gtk_Orientation_Properties.Property; 
  660.  
  661.    package Gtk_Pack_Direction_Properties is 
  662.       new Generic_Internal_Discrete_Property (Gtk_Pack_Direction); 
  663.    type Property_Gtk_Pack_Direction is new Gtk_Pack_Direction_Properties.Property; 
  664.  
  665.    package Gtk_Pack_Type_Properties is 
  666.       new Generic_Internal_Discrete_Property (Gtk_Pack_Type); 
  667.    type Property_Gtk_Pack_Type is new Gtk_Pack_Type_Properties.Property; 
  668.  
  669.    package Gtk_Page_Orientation_Properties is 
  670.       new Generic_Internal_Discrete_Property (Gtk_Page_Orientation); 
  671.    type Property_Gtk_Page_Orientation is new Gtk_Page_Orientation_Properties.Property; 
  672.  
  673.    package Gtk_Page_Set_Properties is 
  674.       new Generic_Internal_Discrete_Property (Gtk_Page_Set); 
  675.    type Property_Gtk_Page_Set is new Gtk_Page_Set_Properties.Property; 
  676.  
  677.    package Gtk_Level_Bar_Mode_Properties is 
  678.       new Generic_Internal_Discrete_Property (Gtk_Level_Bar_Mode); 
  679.    type Property_Gtk_Level_Bar_Mode is new Gtk_Level_Bar_Mode_Properties.Property; 
  680.  
  681.    package Gtk_Path_Priority_Type_Properties is 
  682.       new Generic_Internal_Discrete_Property (Gtk_Path_Priority_Type); 
  683.    type Property_Gtk_Path_Priority_Type is new Gtk_Path_Priority_Type_Properties.Property; 
  684.  
  685.    package Gtk_Path_Type_Properties is 
  686.       new Generic_Internal_Discrete_Property (Gtk_Path_Type); 
  687.    type Property_Gtk_Path_Type is new Gtk_Path_Type_Properties.Property; 
  688.  
  689.    package Gtk_Policy_Type_Properties is 
  690.       new Generic_Internal_Discrete_Property (Gtk_Policy_Type); 
  691.    type Property_Gtk_Policy_Type is new Gtk_Policy_Type_Properties.Property; 
  692.  
  693.    package Gtk_Position_Type_Properties is 
  694.       new Generic_Internal_Discrete_Property (Gtk_Position_Type); 
  695.    type Property_Gtk_Position_Type is new Gtk_Position_Type_Properties.Property; 
  696.  
  697.    package Gtk_Print_Duplex_Properties is 
  698.       new Generic_Internal_Discrete_Property (Gtk_Print_Duplex); 
  699.    type Property_Gtk_Print_Duplex is new Gtk_Print_Duplex_Properties.Property; 
  700.  
  701.    package Gtk_Print_Pages_Properties is 
  702.       new Generic_Internal_Discrete_Property (Gtk_Print_Pages); 
  703.    type Property_Gtk_Print_Pages is new Gtk_Print_Pages_Properties.Property; 
  704.  
  705.    package Gtk_Print_Quality_Properties is 
  706.       new Generic_Internal_Discrete_Property (Gtk_Print_Quality); 
  707.    type Property_Gtk_Print_Quality is new Gtk_Print_Quality_Properties.Property; 
  708.  
  709.    package Gtk_Region_Flags_Properties is 
  710.       new Generic_Internal_Discrete_Property (Gtk_Region_Flags); 
  711.    type Property_Gtk_Region_Flags is new Gtk_Region_Flags_Properties.Property; 
  712.  
  713.    package Gtk_Relief_Style_Properties is 
  714.       new Generic_Internal_Discrete_Property (Gtk_Relief_Style); 
  715.    type Property_Gtk_Relief_Style is new Gtk_Relief_Style_Properties.Property; 
  716.  
  717.    package Gtk_Resize_Mode_Properties is 
  718.       new Generic_Internal_Discrete_Property (Gtk_Resize_Mode); 
  719.    type Property_Gtk_Resize_Mode is new Gtk_Resize_Mode_Properties.Property; 
  720.  
  721.    package Gtk_Scroll_Step_Properties is 
  722.       new Generic_Internal_Discrete_Property (Gtk_Scroll_Step); 
  723.    type Property_Gtk_Scroll_Step is new Gtk_Scroll_Step_Properties.Property; 
  724.  
  725.    package Gtk_Scroll_Type_Properties is 
  726.       new Generic_Internal_Discrete_Property (Gtk_Scroll_Type); 
  727.    type Property_Gtk_Scroll_Type is new Gtk_Scroll_Type_Properties.Property; 
  728.  
  729.    package Gtk_Scrollable_Policy_Properties is 
  730.       new Generic_Internal_Discrete_Property (Gtk_Scrollable_Policy); 
  731.    type Property_Gtk_Scrollable_Policy is new Gtk_Scrollable_Policy_Properties.Property; 
  732.  
  733.    package Gtk_Selection_Mode_Properties is 
  734.       new Generic_Internal_Discrete_Property (Gtk_Selection_Mode); 
  735.    type Property_Gtk_Selection_Mode is new Gtk_Selection_Mode_Properties.Property; 
  736.  
  737.    package Gtk_Sensitivity_Type_Properties is 
  738.       new Generic_Internal_Discrete_Property (Gtk_Sensitivity_Type); 
  739.    type Property_Gtk_Sensitivity_Type is new Gtk_Sensitivity_Type_Properties.Property; 
  740.  
  741.    package Gtk_Shadow_Type_Properties is 
  742.       new Generic_Internal_Discrete_Property (Gtk_Shadow_Type); 
  743.    type Property_Gtk_Shadow_Type is new Gtk_Shadow_Type_Properties.Property; 
  744.  
  745.    package Gtk_Size_Request_Mode_Properties is 
  746.       new Generic_Internal_Discrete_Property (Gtk_Size_Request_Mode); 
  747.    type Property_Gtk_Size_Request_Mode is new Gtk_Size_Request_Mode_Properties.Property; 
  748.  
  749.    package Gtk_Sort_Type_Properties is 
  750.       new Generic_Internal_Discrete_Property (Gtk_Sort_Type); 
  751.    type Property_Gtk_Sort_Type is new Gtk_Sort_Type_Properties.Property; 
  752.  
  753.    package Gtk_State_Flags_Properties is 
  754.       new Generic_Internal_Discrete_Property (Gtk_State_Flags); 
  755.    type Property_Gtk_State_Flags is new Gtk_State_Flags_Properties.Property; 
  756.  
  757.    package Gtk_State_Type_Properties is 
  758.       new Generic_Internal_Discrete_Property (Gtk_State_Type); 
  759.    type Property_Gtk_State_Type is new Gtk_State_Type_Properties.Property; 
  760.  
  761.    package Gtk_Target_Flags_Properties is 
  762.       new Generic_Internal_Discrete_Property (Gtk_Target_Flags); 
  763.    type Property_Gtk_Target_Flags is new Gtk_Target_Flags_Properties.Property; 
  764.  
  765.    package Gtk_Text_Direction_Properties is 
  766.       new Generic_Internal_Discrete_Property (Gtk_Text_Direction); 
  767.    type Property_Gtk_Text_Direction is new Gtk_Text_Direction_Properties.Property; 
  768.  
  769.    package Gtk_Text_Window_Type_Properties is 
  770.       new Generic_Internal_Discrete_Property (Gtk_Text_Window_Type); 
  771.    type Property_Gtk_Text_Window_Type is new Gtk_Text_Window_Type_Properties.Property; 
  772.  
  773.    package Gtk_Tree_View_Grid_Lines_Properties is 
  774.       new Generic_Internal_Discrete_Property (Gtk_Tree_View_Grid_Lines); 
  775.    type Property_Gtk_Tree_View_Grid_Lines is new Gtk_Tree_View_Grid_Lines_Properties.Property; 
  776.  
  777.    package Gtk_Toolbar_Space_Style_Properties is 
  778.       new Generic_Internal_Discrete_Property (Gtk_Toolbar_Space_Style); 
  779.    type Property_Gtk_Toolbar_Space_Style is new Gtk_Toolbar_Space_Style_Properties.Property; 
  780.  
  781.    package Gtk_Toolbar_Style_Properties is 
  782.       new Generic_Internal_Discrete_Property (Gtk_Toolbar_Style); 
  783.    type Property_Gtk_Toolbar_Style is new Gtk_Toolbar_Style_Properties.Property; 
  784.  
  785.    package Gtk_Unit_Properties is 
  786.       new Generic_Internal_Discrete_Property (Gtk_Unit); 
  787.    type Property_Gtk_Unit is new Gtk_Unit_Properties.Property; 
  788.  
  789.    package Gtk_Window_Position_Properties is 
  790.       new Generic_Internal_Discrete_Property (Gtk_Window_Position); 
  791.    type Property_Gtk_Window_Position is new Gtk_Window_Position_Properties.Property; 
  792.  
  793.    package Gtk_Window_Type_Properties is 
  794.       new Generic_Internal_Discrete_Property (Gtk_Window_Type); 
  795.    type Property_Gtk_Window_Type is new Gtk_Window_Type_Properties.Property; 
  796.  
  797.    package Gtk_Wrap_Mode_Properties is 
  798.       new Generic_Internal_Discrete_Property (Gtk_Wrap_Mode); 
  799.    type Property_Gtk_Wrap_Mode is new Gtk_Wrap_Mode_Properties.Property; 
  800.  
  801.    ---------------------- 
  802.    -- GtkAda additions -- 
  803.    ---------------------- 
  804.  
  805.    function Convert (S : String) return System.Address; 
  806.    function Convert (S : System.Address) return String; 
  807.    package String_List is new Glib.Glist.Generic_List (UTF8_String); 
  808.    package String_SList is new Glib.GSlist.Generic_SList (UTF8_String); 
  809.    --  Warning: when you create this list, new memory gets allocated for 
  810.    --  all the strings. You should use the function Free_String_List 
  811.    --  instead of Glib.Glist.Free to be sure to free this memory. 
  812.  
  813.    procedure Free_String_List (List : in out String_List.Glist); 
  814.    procedure Free_String_List (List : in out String_SList.GSlist); 
  815.    --  Free the memory occupied by all the strings in the list, as well 
  816.    --  as the memory occupied by the list itself. 
  817.  
  818. end Gtk.Enums;