This file is indexed.

/usr/share/ada/adainclude/gtkada/gtk-enums.ads is in libgtkada2.24.4-dev 2.24.4dfsg-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
-----------------------------------------------------------------------
--               GtkAda - Ada95 binding for Gtk+/Gnome               --
--                                                                   --
--   Copyright (C) 1998-2000 E. Briot, J. Brobecker and A. Charlet   --
--                Copyright (C) 2000-2013, AdaCore                   --
--                                                                   --
-- This library is free software; you can redistribute it and/or     --
-- modify it under the terms of the GNU General Public               --
-- License as published by the Free Software Foundation; either      --
-- version 2 of the License, or (at your option) any later version.  --
--                                                                   --
-- This library is distributed in the hope that it will be useful,   --
-- but WITHOUT ANY WARRANTY; without even the implied warranty of    --
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU --
-- General Public License for more details.                          --
--                                                                   --
-- You should have received a copy of the GNU General Public         --
-- License along with this library; if not, write to the             --
-- Free Software Foundation, Inc., 59 Temple Place - Suite 330,      --
-- Boston, MA 02111-1307, USA.                                       --
--                                                                   --
-----------------------------------------------------------------------

--  <description>
--  This package contains a number of types that are shared by several
--  widgets in GtkAda.
--  </description>
--  <c_version>2.16.6</c_version>

with Glib;
with Glib.Generic_Properties;  use Glib.Generic_Properties;
pragma Elaborate_All (Glib.Generic_Properties);
with Glib.Glist, Glib.GSlist;
pragma Elaborate_All (Glib.Glist);
pragma Elaborate_All (Glib.GSlist);

with System;

package Gtk.Enums is

   type Gtk_Anchor_Type is
     (Anchor_Center,
      Anchor_North,
      Anchor_North_West,
      Anchor_North_East,
      Anchor_South,
      Anchor_South_East,
      Anchor_South_West,
      Anchor_West,
      Anchor_East);
   --  Gtk_Anchor_Type indicates the exact location of the widget on its
   --  side. Note that not all anchors are relevant for each side.
   --
   --  For instance, if you put a widget on Side_Right, with an anchor of
   --  Anchor_North, Anchor_North_West or Anchor_North_East, the widget will
   --  in fact appear on the upper right side of the remaining space in the
   --  container.
   --
   --  Thus, if a previous child was added on Side_North, then the new child
   --  will only appear on the second line in the container. The order the
   --  children are inserted into the container is important.

   pragma Convention (C, Gtk_Anchor_Type);

   Anchor_N  : Gtk_Anchor_Type renames Anchor_North;
   Anchor_NW : Gtk_Anchor_Type renames Anchor_North_West;
   Anchor_NE : Gtk_Anchor_Type renames Anchor_North_East;
   Anchor_S  : Gtk_Anchor_Type renames Anchor_South;
   Anchor_SW : Gtk_Anchor_Type renames Anchor_South_West;
   Anchor_SE : Gtk_Anchor_Type renames Anchor_South_East;
   Anchor_W  : Gtk_Anchor_Type renames Anchor_West;
   Anchor_E  : Gtk_Anchor_Type renames Anchor_East;

   type Gtk_Arrow_Type is
     (Arrow_Up,
      Arrow_Down,
      Arrow_Left,
      Arrow_Right);
   --  The various types of arrows that can be represented by GtkAda

   type Gtk_Attach_Options is new Glib.Guint32;
   --  The various options used for attaching widgets to tables

   Expand : constant Gtk_Attach_Options := 1;
   Shrink : constant Gtk_Attach_Options := 2;
   Fill   : constant Gtk_Attach_Options := 4;

   type Gtk_Button_Box_Style is
     (Buttonbox_Default_Style,
      Buttonbox_Spread,
      Buttonbox_Edge,
      Buttonbox_Start,
      Buttonbox_End);
   --  The style for button boxes
   --  - Buttonbox_Spread: The children are spread regularly across the box
   --  - Buttonbox_Edge  : Same as Spread, except that the first and last
   --                      children are aligned on the border of the box.
   --  - Buttonbox_Start : The children are put as much to the left (resp. top)
   --                      as possible in the box.
   --  - Buttonbox_End   : The children are put as much to the right
   --                      (resp. bottom) as possible in the box.

   type Gtk_Curve_Type is
     (Curve_Type_Linear,       --  Linear interpolation
      Curve_Type_Spline,       --  Spline interpolation
      Curve_Type_Free);        --  Free form curve
   --  The curve types that can be used in gtk-curve.ads

   type Gtk_Delete_Type is
     (Delete_Chars,
      Delete_Word_Ends,
      Delete_Words,
      Delete_Display_Lines,
      Delete_Display_Line_Ends,
      Delete_Paragraph_Ends,
      Delete_Paragraphs,
      Delete_Whitespace);
   --  The deletion modes used in the text editor.
   --  Delete_Word_Ends will delete only the portion of the word to the
   --  left/right of the cursor if we are in the middle of a word.
   --  Delete_Paragraph_Ends acts like c-k in Emacs: it deletes the text until,
   --  but not including, the end of line.
   --  Delete_Paragraphs acts like c-k in pico: it deletes the whole line.
   --  Delete_Whitespace acts like M-\ in Emacs, and removes all white spaces
   --  surrounding the cursor.

   type Gtk_Direction_Type is
     (Dir_Tab_Forward,
      Dir_Tab_Backward,
      Dir_Up,
      Dir_Down,
      Dir_Left,
      Dir_Right);
   --  Focus movement types

   type Gtk_Expander_Style is
     (Expander_Collapsed,
      Expander_Semi_Collapsed,
      Expander_Semi_Expanded,
      Expander_Expanded);
   --  Expander styles, as seen in trees

   type Gtk_Icon_Size is new Gint;
   Icon_Size_Invalid       : constant Gtk_Icon_Size := 0;
   Icon_Size_Menu          : constant Gtk_Icon_Size := 1;
   Icon_Size_Small_Toolbar : constant Gtk_Icon_Size := 2;
   Icon_Size_Large_Toolbar : constant Gtk_Icon_Size := 3;
   Icon_Size_Button        : constant Gtk_Icon_Size := 4;
   Icon_Size_Dnd           : constant Gtk_Icon_Size := 5;
   Icon_Size_Dialog        : constant Gtk_Icon_Size := 6;
   --  Built-in stock icon sizes. Depending on the context, icons should be
   --  displayed larger or smaller (typically, icons in menus are much smaller
   --  than icons in toolbars for instance).
   --  New custom icon sizes can be created (see gtk-icon_factory.ads)

   type Gtk_Text_Direction is
     (Text_Dir_None,
      Text_Dir_Ltr,
      Text_Dir_Rtl);
   --  The directory in which text should be written (left to right or
   --  right to left).

   type Gtk_Justification is
     (Justify_Left,
      Justify_Right,
      Justify_Center,
      Justify_Fill);
   --  Within a paragraph, text can be justified in various ways: aligned on
   --  the left, aligned on the right, centered, or justified (in which case
   --  the width of the spaces might vary so that the text is aligned on both
   --  sides).

   type Gtk_Menu_Direction_Type is
     (Menu_Dir_Parent,
      Menu_Dir_Child,
      Menu_Dir_Next,
      Menu_Dir_Prev);
   --  Direction where to move the selection.

   type Gtk_Metric_Type is (Pixels, Inches, Centimeters);
   --  The unit to use when you display a ruler at the top of a drawing area.

   type Gtk_Movement_Step is
     (Movement_Logical_Positions, --  move by forw/back graphemes
      Movement_Visual_Positions,  --  move by left/right graphemes
      Movement_Words,             --  move by forward/back words
      Movement_Display_Lines,     --  move up/down lines (wrapped lines)
      Movement_Display_Line_Ends, --  move up/down lines (wrapped lines)
      Movement_Paragraphs,        --  move up/down paragraphs
      Movement_Paragraph_Ends,    --  move to either end of a paragraph
      Movement_Pages,             --  move by pages
      Movement_Buffer_Ends,       --  move to ends of the buffer
      Movement_Horizontal_Pages); --  move horizontally by pages
   --  The various kind of movements that can be performed within an editor.
   --  Gtk+ has builtin knowledge of all of the above.
   --  Note that a paragraph is defined as a new-line ended line.

   type Gtk_Number_Up_Layout is
     (Left_To_Right_Top_To_Bottom,   --  nick=lrtb
      Left_To_Right_Bottom_To_Top,   --  nick=lrbt
      Right_To_Left_Top_To_Bottom,   --  nick=rltb
      Right_To_Left_Bottom_To_Top,   --  nick=rlbt
      Top_To_Bottom_Left_To_Right,   --  nick=tblr
      Top_To_Bottom_Right_To_Left,   --  nick=tbrl
      Bottom_To_Top_Left_To_Right,   --  nick=btlr
      Bottom_To_Top_Right_To_Left);  --  nick=btrl
   --  Used to determine the layout of pages on a sheet when printing multiple
   --  pages per sheet.

   type Gtk_Scroll_Step is
     (Scroll_Steps,
      Scroll_Pages,
      Scroll_Ends,
      Scroll_Horizontal_Steps,
      Scroll_Horizontal_Pages,
      Scroll_Horizontal_Ends);
   --  The behavior of scrollbars for editors

   type Gtk_Orientation is (Orientation_Horizontal, Orientation_Vertical);
   --  Orientation of widgets. Most widgets have no such notion, but for
   --  instance toolbars can display different kind of information depending
   --  on their current orientation

   type Gtk_Page_Orientation is
     (Page_Orientation_Portrait,
      Page_Orientation_Landscape,
      Page_Orientation_Reverse_Portrait,
      Page_Orientation_Reverse_Landscape);
   --  Orientation of a printed page.

   type Gtk_Corner_Type is
     (Corner_Top_Left,
      Corner_Bottom_Left,
      Corner_Top_Right,
      Corner_Bottom_Right);
   --  Type used by Set_Placement below to determine the location of the
   --  child widget with respect to the scrollbars.
   --  Corner_Top_Left means the child is in the top left, with the scrollbars
   --  underneath and to the right.

   type Gtk_Grid_Lines is
     (Grid_Lines_None,
      Grid_Lines_Horizontal,
      Grid_Lines_Vertical,
      Grid_Lines_Both);
   --  Used to indicate which grid lines to draw in a tree view.

   type Gtk_Pack_Type is (Pack_Start, Pack_End);
   --  Whether items should be added at the start or at the end of the list of
   --  children for a widget. This impacts the visual rendering of containers

   type Gtk_Path_Priority_Type is mod 2 ** 32;
   --  Priorities for path lookups

   Path_Prio_Lowest      : constant Gtk_Path_Priority_Type := 0;
   Path_Prio_Gtk         : constant Gtk_Path_Priority_Type := 4;
   Path_Prio_Application : constant Gtk_Path_Priority_Type := 8;
   Path_Prio_Theme       : constant Gtk_Path_Priority_Type := 10;
   Path_Prio_RC          : constant Gtk_Path_Priority_Type := 12;
   Path_Prio_Highest     : constant Gtk_Path_Priority_Type := 15;
   Path_Prio_Mask        : constant Gtk_Path_Priority_Type := 16#0f#;

   type Gtk_Path_Type is (Path_Widget, Path_Widget_Class, Path_Class);
   --  Widget path types

   type Gtk_Policy_Type is (Policy_Always, Policy_Automatic, Policy_Never);
   --  When should scrollbars be made visible in Gtk_Scrolled_Window

   type Gtk_Position_Type is
     (Pos_Left,
      Pos_Right,
      Pos_Top,
      Pos_Bottom);
   --  Use to define the position of children within a container

   type Gtk_Page_Set is
     (Page_Set_All,
      Page_Set_Even,
      Page_Set_Odd);
   --  The set of pages to print

   type Gtk_Print_Duplex is
     (Print_Duplex_Simplex,
      Print_Duplex_Horizontal,
      Print_Duplex_Vertical);
   --  Whether/how to print on both sides of a sheet.

   type Gtk_Print_Pages is
     (Print_Pages_All,
      Print_Pages_Current,
      Print_Pages_Ranges);
   --  Which pages to print.

   type Gtk_Print_Quality is
     (Print_Quality_Low,
      Print_Quality_Normal,
      Print_Quality_High,
      Print_Quality_Draft);
   --  Quality of printed output.

   type Gtk_Relief_Style is (Relief_Normal, Relief_Half, Relief_None);
   --  Explains how the border of widgets should be displayed

   type Gtk_Resize_Mode is
     (Resize_Parent,     --  Pass request to the parent
      Resize_Queue,      --  Queue resizes on this widget
      Resize_Immediate); --  Perform the resizes now
   --  The resizing of widgets is generally done asynchronously, for efficiency
   --  reasons. This can have some impact on the visual rendering of the widget
   --  which might be an issue in some cases.
   --  This type is only used when you are writting your own containers.

   type Gtk_Scroll_Type is
     (Scroll_None,
      Scroll_Jump,
      Scroll_Step_Backward,
      Scroll_Step_Forward,
      Scroll_Page_Backward,
      Scroll_Page_Forward,
      Scroll_Step_Up,
      Scroll_Step_Down,
      Scroll_Page_Up,
      Scroll_Page_Down,
      Scroll_Step_Left,
      Scroll_Step_Right,
      Scroll_Page_Left,
      Scroll_Page_Right,
      Scroll_Start,
      Scroll_End);
   --  How clists should be scrolled

   type Gtk_Selection_Mode is
     (Selection_None,
      Selection_Single,
      Selection_Browse,
      Selection_Multiple);
   --  Indicates what selection is allowed in a tree (no selection allowed, a
   --  single line, a single line when the mouse is released, or multiple
   --  lines).

   type Gtk_Sensitivity_Type is
     (Gtk_Sensitivity_Auto,
      Gtk_Sensitivity_On,
      Gtk_Sensitivity_Off);
   --  Determines how GTK+ handles the sensitivity of stepper arrows at
   --  the end of range widgets.

   type Gtk_Shadow_Type is
     (Shadow_None,
      Shadow_In,
      Shadow_Out,
      Shadow_Etched_In,
      Shadow_Etched_Out);
   --  The type of shadows that can be drawn around widgets

   type Gtk_State_Type is
     (State_Normal,
      State_Active,
      State_Prelight,
      State_Selected,
      State_Insensitive);
   --  Widgets can be in various states. This impacts their visual rendering,
   --  but can also impact whether they react to events or not (they do not
   --  when in State_Insensitive mode).

   type Gtk_Toolbar_Style is
     (Toolbar_Icons,
      Toolbar_Text,
      Toolbar_Both,
      Toolbar_Both_Horiz);
   --  The style of toolbars. Toolbar_Both_Horiz indicates that both icon and
   --  text should be displayed, arranged horizontally.

   type Gtk_Unit is (Pixel, Points, Inch, MM);
   --  Unit of distance measurement.

   type Gtk_Update_Type is
     (Update_Continuous,
      Update_Discontinuous,
      Update_Delayed);
   --  For some widgets, this indicates how often they should be updated

   type Gtk_Visibility is
     (Visibility_None,
      Visibility_Partial,
      Visibility_Full);
   --  Generic visibility flags. This indicate how visible a window currently
   --  is.

   type Gtk_Window_Position is
     (Win_Pos_None,
      Win_Pos_Center,
      Win_Pos_Mouse,
      Win_Pos_Center_Always,
      Win_Pos_Center_On_Parent);
   --  The position at which a new window should be initially displayed on the
   --  screen.

   type Gtk_Window_Type is
     (Window_Toplevel,
      Window_Popup);
   --  GtkAda supports multiple types of windows. They all act as top-level
   --  containers, but the amount of decoration is different. A popup window
   --  has no title bar for instance.

   type Gtk_Wrap_Mode is
     (Wrap_None,
      Wrap_Char,
      Wrap_Word,
      Wrap_Word_Char);
   --  Text wrapping algorithm. This indicates where a text widget is allowed
   --  to break its contents to display multiple lines when a line doesn't fit
   --  on the screen.

   type Gtk_Sort_Type is
     (Sort_Ascending,
      Sort_Descending);
   --  How to sort

   type Gtk_Pack_Direction is
     (Pack_Direction_LTR,
      Pack_Direction_RTL,
      Pack_Direction_TTB,
      Pack_Direction_BTT);
   --  The direction in which children should be packed in their parents
   --  (Left-to-Right, Right-To-Left, Top-To-Bottom or Bottom-To-Top)

   type Gtk_Text_Window_Type is
     (Text_Window_Private,
      Text_Window_Widget,
      Text_Window_Text,
      Text_Window_Left,
      Text_Window_Right,
      Text_Window_Top,
      Text_Window_Bottom);
   --  The various components of a Gtk.Text_View widget

   -------------------------------
   --  Some Glib instantiations --
   -------------------------------

   function Convert (S : String) return System.Address;
   function Convert (S : System.Address) return String;
   function Convert_I (I : Gint) return System.Address;
   function Convert_A (S : System.Address) return Gint;
   pragma Import (C, Convert_I, "convert_i");
   pragma Import (C, Convert_A, "convert_a");

   package String_List is new Glib.Glist.Generic_List (UTF8_String);
   package String_SList is new Glib.GSlist.Generic_SList (UTF8_String);
   --  Warning: when you create this list, new memory gets allocated for
   --  all the strings. You should use the function Free_String_List
   --  instead of Glib.Glist.Free to be sure to free this memory.

   procedure Free_String_List (List : in out String_List.Glist);
   procedure Free_String_List (List : in out String_SList.GSlist);
   --  Free the memory occupied by all the strings in the list, as well
   --  as the memory occupied by the list itself.

   package Gint_List is new
     Glib.Glist.Generic_List (Gint, Convert_I, Convert_A);

   function Convert_UI (I : Guint) return System.Address;
   function Convert_UA (S : System.Address) return Guint;
   pragma Import (C, Convert_UI, "convert_ui");
   pragma Import (C, Convert_UA, "convert_ua");
   package Guint_List is new
     Glib.Glist.Generic_List (Guint, Convert_UI, Convert_UA);

   pragma Convention (C, Gtk_Arrow_Type);
   pragma Convention (C, Gtk_Button_Box_Style);
   pragma Convention (C, Gtk_Curve_Type);
   pragma Convention (C, Gtk_Delete_Type);
   pragma Convention (C, Gtk_Direction_Type);
   pragma Convention (C, Gtk_Grid_Lines);
   pragma Convention (C, Gtk_Path_Type);
   pragma Convention (C, Gtk_Expander_Style);
   pragma Convention (C, Gtk_Text_Direction);
   pragma Convention (C, Gtk_Justification);
   pragma Convention (C, Gtk_Menu_Direction_Type);
   pragma Convention (C, Gtk_Metric_Type);
   pragma Convention (C, Gtk_Movement_Step);
   pragma Convention (C, Gtk_Number_Up_Layout);
   pragma Convention (C, Gtk_Orientation);
   pragma Convention (C, Gtk_Page_Orientation);
   pragma Convention (C, Gtk_Corner_Type);
   pragma Convention (C, Gtk_Pack_Type);
   pragma Convention (C, Gtk_Policy_Type);
   pragma Convention (C, Gtk_Position_Type);
   pragma Convention (C, Gtk_Page_Set);
   pragma Convention (C, Gtk_Print_Duplex);
   pragma Convention (C, Gtk_Print_Pages);
   pragma Convention (C, Gtk_Print_Quality);
   pragma Convention (C, Gtk_Relief_Style);
   pragma Convention (C, Gtk_Resize_Mode);
   pragma Convention (C, Gtk_Scroll_Type);
   pragma Convention (C, Gtk_Selection_Mode);
   pragma Convention (C, Gtk_Sensitivity_Type);
   pragma Convention (C, Gtk_Shadow_Type);
   pragma Convention (C, Gtk_State_Type);
   pragma Convention (C, Gtk_Text_Window_Type);
   pragma Convention (C, Gtk_Toolbar_Style);
   pragma Convention (C, Gtk_Update_Type);
   pragma Convention (C, Gtk_Unit);
   pragma Convention (C, Gtk_Visibility);
   pragma Convention (C, Gtk_Window_Position);
   pragma Convention (C, Gtk_Window_Type);
   pragma Convention (C, Gtk_Wrap_Mode);
   pragma Convention (C, Gtk_Sort_Type);

   ----------------
   -- Properties --
   ----------------
   --  The following packages and types are used to represent properties of
   --  the given type. They are used in the packages that use these properties

   package Relief_Style_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Relief_Style);
   package Resize_Mode_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Resize_Mode);
   package Arrow_Type_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Arrow_Type);
   package Shadow_Type_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Shadow_Type);
   package Update_Type_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Update_Type);
   package Position_Type_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Position_Type);
   package Toolbar_Style_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Toolbar_Style);
   package Justification_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Justification);
   package Orientation_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Orientation);
   package Window_Type_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Window_Type);
   package Window_Position_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Window_Position);
   package Text_Direction_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Text_Direction);
   package Wrap_Mode_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Text_Direction);
   package Policy_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Policy_Type);
   package Pack_Direction_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Pack_Direction);
   package Sort_Type_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Sort_Type);
   package Metric_Type_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Metric_Type);
   package Pack_Type_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Pack_Type);
   package Icon_Size_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Icon_Size);
   package Selection_Mode_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Selection_Mode);
   package Sensitivity_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Sensitivity_Type);
   package BBox_Style_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Button_Box_Style);
   package Curve_Type_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Curve_Type);

   type Property_Gtk_Relief_Style  is new Relief_Style_Properties.Property;
   type Property_Gtk_Resize_Mode   is new Resize_Mode_Properties.Property;
   type Property_Gtk_Arrow_Type    is new Arrow_Type_Properties.Property;
   type Property_Gtk_Shadow_Type   is new Shadow_Type_Properties.Property;
   type Property_Gtk_Update_Type   is new Update_Type_Properties.Property;
   type Property_Gtk_Position_Type is new Position_Type_Properties.Property;
   type Property_Gtk_Toolbar_Style is new Toolbar_Style_Properties.Property;
   type Property_Gtk_Button_Box_Style is new BBox_Style_Properties.Property;
   type Property_Gtk_Justification is new Justification_Properties.Property;
   type Property_Gtk_Orientation   is new Orientation_Properties.Property;
   type Property_Gtk_Window_Type   is new Window_Type_Properties.Property;
   type Property_Gtk_Window_Position is new
     Window_Position_Properties.Property;
   type Property_Gtk_Text_Direction is new Text_Direction_Properties.Property;
   type Property_Gtk_Wrap_Mode     is new Wrap_Mode_Properties.Property;
   type Property_Gtk_Policy_Type   is new Policy_Properties.Property;
   type Property_Pack_Direction    is new Pack_Direction_Properties.Property;
   type Property_Sort_Type         is new Sort_Type_Properties.Property;
   type Property_Metric_Type       is new Metric_Type_Properties.Property;
   type Property_Pack_Type         is new Pack_Type_Properties.Property;
   type Property_Gtk_Icon_Size     is new Icon_Size_Properties.Property;
   type Property_Gtk_Selection_Mode is new Selection_Mode_Properties.Property;
   type Property_Gtk_Sensitivity_Type is new Sensitivity_Properties.Property;
   type Property_Gtk_Curve_Type    is new Curve_Type_Properties.Property;

   -----------------
   -- Obsolescent --
   -----------------
   --  All subprograms below are now obsolescent in gtk+. They might be removed
   --  from future versions of gtk+ (and therefore GtkAda).
   --  To find out whether your code uses any of these, we recommend compiling
   --  with the -gnatwj switch
   --  <doc_ignore>

   type Gtk_Side_Type is (Side_Top, Side_Bottom, Side_Left, Side_Right);
   --  pragma Obsolescent;
   pragma Convention (C, Gtk_Side_Type);

   type Gtk_Match_Type is
     (Match_All, Match_All_Tail, Match_Head, Match_Tail,
      Match_Exact, Match_Last);
   --  pragma Obsolescent;
   pragma Convention (C, Gtk_Match_Type);

   type Gtk_Preview_Type is (Preview_Color, Preview_Grayscale);
   --  pragma Obsolescent;
   pragma Convention (C, Gtk_Preview_Type);

   type Gtk_Submenu_Direction is (Direction_Left, Direction_Right);
   --  pragma Obsolescent;

   type Gtk_Submenu_Placement is (Top_Bottom, Left_Right);
   --  pragma Obsolescent;

   type Gtk_Toolbar_Space_Style is (Toolbar_Space_Empty, Toolbar_Space_Line);
   --  pragma Obsolescent;

   pragma Convention (C, Gtk_Toolbar_Space_Style);

   package Toolbar_Space_Style_Properties is new
     Generic_Internal_Discrete_Property (Gtk_Toolbar_Space_Style);
   type Property_Toolbar_Space_Style is new
     Toolbar_Space_Style_Properties.Property;

   type Gtk_Tree_View_Mode is (Tree_View_Line, Tree_View_Item);
   --  pragma Obsolescent;

   pragma Convention (C, Gtk_Submenu_Direction);
   pragma Convention (C, Gtk_Submenu_Placement);
   pragma Convention (C, Gtk_Tree_View_Mode);
   --  </doc_ignore>

   --  These comments are for the sake of our automatic tool to check whether
   --  the bindings are up-to-date. They indicate that the functions are part
   --  of GtkAda itself, no gtk+
   --  External binding: convert_ui
   --  External binding: convert_ua
   --  External binding: convert_i
   --  External binding: convert_a
end Gtk.Enums;