This file is indexed.

/usr/share/ada/adainclude/gtkada/gdk-display.ads is in libgtkada16.1.0-dev 17.0.2017-2.

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
------------------------------------------------------------------------------
--                                                                          --
--      Copyright (C) 1998-2000 E. Briot, J. Brobecker and A. Charlet       --
--                     Copyright (C) 2000-2017, AdaCore                     --
--                                                                          --
-- This library is free software;  you can redistribute it and/or modify it --
-- under terms of the  GNU General Public License  as published by the Free --
-- Software  Foundation;  either version 3,  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 MERCHAN- --
-- TABILITY or FITNESS FOR A PARTICULAR PURPOSE.                            --
--                                                                          --
--                                                                          --
--                                                                          --
--                                                                          --
--                                                                          --
-- You should have received a copy of the GNU General Public License and    --
-- a copy of the GCC Runtime Library Exception along with this program;     --
-- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
-- <http://www.gnu.org/licenses/>.                                          --
--                                                                          --
------------------------------------------------------------------------------

--  <description>
--  Gdk.Display.Gdk_Display objects purpose are two fold:
--
--  - To manage and provide information about input devices (pointers and
--  keyboards)
--
--  - To manage and provide information about the available Gdk_Screens
--
--  GdkDisplay objects are the GDK representation of an X Display, which can
--  be described as a workstation consisting of a keyboard, a pointing device
--  (such as a mouse) and one or more screens. It is used to open and keep
--  track of various GdkScreen objects currently instantiated by the
--  application. It is also used to access the keyboard(s) and mouse pointer(s)
--  of the display.
--
--  Most of the input device handling has been factored out into the separate
--  Gdk.Device_Manager.Gdk_Device_Manager object. Every display has a device
--  manager, which you can obtain using gdk_display_get_device_manager.
--
--  </description>
pragma Ada_2005;

pragma Warnings (Off, "*is already use-visible*");
with Gdk;         use Gdk;
with Gdk.Event;   use Gdk.Event;
with Gdk.Types;   use Gdk.Types;
with Glib;        use Glib;
with Glib.Object; use Glib.Object;

package Gdk.Display is

   type Gdk_Display_Record is new GObject_Record with null record;
   type Gdk_Display is access all Gdk_Display_Record'Class;

   ------------------
   -- Constructors --
   ------------------

   function Get_Type return Glib.GType;
   pragma Import (C, Get_Type, "gdk_display_get_type");

   -------------
   -- Methods --
   -------------

   procedure Beep (Self : not null access Gdk_Display_Record);
   --  Emits a short beep on Display
   --  Since: gtk+ 2.2

   procedure Close (Self : not null access Gdk_Display_Record);
   --  Closes the connection to the windowing system for the given display,
   --  and cleans up associated resources.
   --  Since: gtk+ 2.2

   procedure Flush (Self : not null access Gdk_Display_Record);
   --  Flushes any requests queued for the windowing system; this happens
   --  automatically when the main loop blocks waiting for new events, but if
   --  your application is drawing without returning control to the main loop,
   --  you may need to call this function explicitly. A common case where this
   --  function needs to be called is when an application is executing drawing
   --  commands from a thread other than the thread where the main loop is
   --  running.
   --  This is most useful for X11. On windowing systems where requests are
   --  handled synchronously, this function will do nothing.
   --  Since: gtk+ 2.4

   function Get_Default_Cursor_Size
      (Self : not null access Gdk_Display_Record) return Guint;
   --  Returns the default size to use for cursors on Display.
   --  Since: gtk+ 2.4

   function Get_Default_Group
      (Self : not null access Gdk_Display_Record) return Gdk.Gdk_Window;
   --  Returns the default group leader window for all toplevel windows on
   --  Display. This window is implicitly created by GDK. See
   --  Gdk.Window.Set_Group.
   --  Since: gtk+ 2.4

   function Get_Event
      (Self : not null access Gdk_Display_Record) return Gdk.Event.Gdk_Event;
   --  Gets the next Gdk.Event.Gdk_Event to be processed for Display, fetching
   --  events from the windowing system if necessary.
   --  Since: gtk+ 2.2

   procedure Get_Maximal_Cursor_Size
      (Self   : not null access Gdk_Display_Record;
       Width  : out Guint;
       Height : out Guint);
   --  Gets the maximal size to use for cursors on Display.
   --  Since: gtk+ 2.4
   --  "width": the return location for the maximal cursor width
   --  "height": the return location for the maximal cursor height

   function Get_N_Screens
      (Self : not null access Gdk_Display_Record) return Gint;
   pragma Obsolescent (Get_N_Screens);
   --  Gets the number of screen managed by the Display.
   --  Since: gtk+ 2.2
   --  Deprecated since 3.10, 1

   function Get_Name
      (Self : not null access Gdk_Display_Record) return UTF8_String;
   --  Gets the name of the display.
   --  Since: gtk+ 2.2

   function Has_Pending
      (Self : not null access Gdk_Display_Record) return Boolean;
   --  Returns whether the display has events that are waiting to be
   --  processed.
   --  Since: gtk+ 3.0

   function Is_Closed
      (Self : not null access Gdk_Display_Record) return Boolean;
   --  Finds out if the display has been closed.
   --  Since: gtk+ 2.22

   procedure Keyboard_Ungrab
      (Self : not null access Gdk_Display_Record;
       Time : Guint32);
   pragma Obsolescent (Keyboard_Ungrab);
   --  Release any keyboard grab
   --  Since: gtk+ 2.2
   --  Deprecated since 3.0, 1
   --  "time_": a timestap (e.g GDK_CURRENT_TIME).

   procedure Notify_Startup_Complete
      (Self       : not null access Gdk_Display_Record;
       Startup_Id : UTF8_String);
   --  Indicates to the GUI environment that the application has finished
   --  loading, using a given identifier.
   --  GTK+ will call this function automatically for Gtk.Window.Gtk_Window
   --  with custom startup-notification identifier unless
   --  Gtk.Window.Set_Auto_Startup_Notification is called to disable that
   --  feature.
   --  Since: gtk+ 3.0
   --  "startup_id": a startup-notification identifier, for which notification
   --  process should be completed

   function Peek_Event
      (Self : not null access Gdk_Display_Record) return Gdk.Event.Gdk_Event;
   --  Gets a copy of the first Gdk.Event.Gdk_Event in the Display's event
   --  queue, without removing the event from the queue. (Note that this
   --  function will not get more events from the windowing system. It only
   --  checks the events that have already been moved to the GDK event queue.)
   --  Since: gtk+ 2.2

   function Pointer_Is_Grabbed
      (Self : not null access Gdk_Display_Record) return Boolean;
   pragma Obsolescent (Pointer_Is_Grabbed);
   --  Test if the pointer is grabbed.
   --  Since: gtk+ 2.2
   --  Deprecated since 3.0, 1

   procedure Pointer_Ungrab
      (Self : not null access Gdk_Display_Record;
       Time : Guint32);
   pragma Obsolescent (Pointer_Ungrab);
   --  Release any pointer grab.
   --  Since: gtk+ 2.2
   --  Deprecated since 3.0, 1
   --  "time_": a timestap (e.g. GDK_CURRENT_TIME).

   procedure Put_Event
      (Self  : not null access Gdk_Display_Record;
       Event : Gdk.Event.Gdk_Event);
   --  Appends a copy of the given event onto the front of the event queue for
   --  Display.
   --  Since: gtk+ 2.2
   --  "event": a Gdk.Event.Gdk_Event.

   function Request_Selection_Notification
      (Self      : not null access Gdk_Display_Record;
       Selection : Gdk.Types.Gdk_Atom) return Boolean;
   --  Request Gdk.Event.Gdk_Event_Owner_Change events for ownership changes
   --  of the selection named by the given atom.
   --  Since: gtk+ 2.6
   --  "selection": the Gdk.Types.Gdk_Atom naming the selection for which
   --  ownership change notification is requested

   procedure Set_Double_Click_Distance
      (Self     : not null access Gdk_Display_Record;
       Distance : Guint);
   --  Sets the double click distance (two clicks within this distance count
   --  as a double click and result in a GDK_2_BUTTON_PRESS event). See also
   --  Gdk.Display.Set_Double_Click_Time. Applications should not set this, it
   --  is a global user-configured setting.
   --  Since: gtk+ 2.4
   --  "distance": distance in pixels

   procedure Set_Double_Click_Time
      (Self : not null access Gdk_Display_Record;
       Msec : Guint);
   --  Sets the double click time (two clicks within this time interval count
   --  as a double click and result in a GDK_2_BUTTON_PRESS event).
   --  Applications should not set this, it is a global user-configured
   --  setting.
   --  Since: gtk+ 2.2
   --  "msec": double click time in milliseconds (thousandths of a second)

   function Supports_Clipboard_Persistence
      (Self : not null access Gdk_Display_Record) return Boolean;
   --  Returns whether the speicifed display supports clipboard persistance;
   --  i.e. if it's possible to store the clipboard data after an application
   --  has quit. On X11 this checks if a clipboard daemon is running.
   --  Since: gtk+ 2.6

   function Supports_Composite
      (Self : not null access Gdk_Display_Record) return Boolean;
   --  Returns True if Gdk.Window.Set_Composited can be used to redirect
   --  drawing on the window using compositing.
   --  Currently this only works on X11 with XComposite and XDamage extensions
   --  available.
   --  Since: gtk+ 2.12

   function Supports_Cursor_Alpha
      (Self : not null access Gdk_Display_Record) return Boolean;
   --  Returns True if cursors can use an 8bit alpha channel on Display.
   --  Otherwise, cursors are restricted to bilevel alpha (i.e. a mask).
   --  Since: gtk+ 2.4

   function Supports_Cursor_Color
      (Self : not null access Gdk_Display_Record) return Boolean;
   --  Returns True if multicolored cursors are supported on Display.
   --  Otherwise, cursors have only a forground and a background color.
   --  Since: gtk+ 2.4

   function Supports_Input_Shapes
      (Self : not null access Gdk_Display_Record) return Boolean;
   --  Returns True if gdk_window_input_shape_combine_mask can be used to
   --  modify the input shape of windows on Display.
   --  Since: gtk+ 2.10

   function Supports_Selection_Notification
      (Self : not null access Gdk_Display_Record) return Boolean;
   --  Returns whether Gdk.Event.Gdk_Event_Owner_Change events will be sent
   --  when the owner of a selection changes.
   --  Since: gtk+ 2.6

   function Supports_Shapes
      (Self : not null access Gdk_Display_Record) return Boolean;
   --  Returns True if gdk_window_shape_combine_mask can be used to create
   --  shaped windows on Display.
   --  Since: gtk+ 2.10

   procedure Sync (Self : not null access Gdk_Display_Record);
   --  Flushes any requests queued for the windowing system and waits until
   --  all requests have been handled. This is often used for making sure that
   --  the display is synchronized with the current state of the program.
   --  Calling Gdk.Display.Sync before gdk_error_trap_pop makes sure that any
   --  errors generated from earlier requests are handled before the error trap
   --  is removed.
   --  This is most useful for X11. On windowing systems where requests are
   --  handled synchronously, this function will do nothing.
   --  Since: gtk+ 2.2

   ----------------------
   -- GtkAda additions --
   ----------------------

   procedure Store_Clipboard
     (Display          : not null access Gdk_Display_Record;
      Clipboard_Window : Gdk.Gdk_Window;
      Time             : Guint32;
      Targets          : Gdk.Types.Gdk_Atom_Array);
   --  Issues a request to the clipboard manager to store the clipboard data.
   --  On X11, this is a special program that works according to the
   --  freedesktop clipboard specification, available at <ulink
   --  url="http://www.freedesktop.org/Standards/clipboard-manager-spec">
   --  http://www.freedesktop.org/Standards/clipboard-manager-spec</ulink>>.
   --  Since: gtk+ 2.6
   --  "clipboard_window": a Gdk.Gdk_Window belonging to the clipboard owner
   --  "time_": a timestamp
   --  "targets": an array of targets that should be saved, or null if all
   --  available targets should be saved.
   --  "n_targets": length of the Targets array

   procedure Get_Window_At_Pointer
     (Display : access Gdk_Display_Record;
      Win_X   : out Glib.Gint;
      Win_Y   : out Glib.Gint;
      Win     : out Gdk.Gdk_Window);
   --  Obtains the window underneath the mouse pointer, returning the location
   --  of that window in Win_X, Win_Y. Returns nullif the window
   --  under the mouse pointer is not known to GDK (for example, belongs to
   --  another application).
   --  (Win_X, Win_Y) are relative to the origin of the window under the
   --  pointer.
   --
   --  Obsolescent: use Gdk.Device.Get_Window_At_Position instead.

   ---------------
   -- Functions --
   ---------------

   function Get_Default return Gdk_Display;
   --  Gets the default Gdk.Display.Gdk_Display. This is a convenience
   --  function for: `gdk_display_manager_get_default_display
   --  (gdk_display_manager_get ())`.
   --  Since: gtk+ 2.2

   function Open (Display_Name : UTF8_String) return Gdk_Display;
   --  Opens a display.
   --  Since: gtk+ 2.2
   --  "display_name": the name of the display to open

   function Open_Default_Libgtk_Only return Gdk_Display;
   --  Opens the default display specified by command line arguments or
   --  environment variables, sets it as the default display, and returns it.
   --  gdk_parse_args must have been called first. If the default display has
   --  previously been set, simply returns that. An internal function that
   --  should not be used by applications.

   -------------
   -- Signals --
   -------------

   type Cb_Gdk_Display_Boolean_Void is not null access procedure
     (Self     : access Gdk_Display_Record'Class;
      Is_Error : Boolean);

   type Cb_GObject_Boolean_Void is not null access procedure
     (Self     : access Glib.Object.GObject_Record'Class;
      Is_Error : Boolean);

   Signal_Closed : constant Glib.Signal_Name := "closed";
   procedure On_Closed
      (Self  : not null access Gdk_Display_Record;
       Call  : Cb_Gdk_Display_Boolean_Void;
       After : Boolean := False);
   procedure On_Closed
      (Self  : not null access Gdk_Display_Record;
       Call  : Cb_GObject_Boolean_Void;
       Slot  : not null access Glib.Object.GObject_Record'Class;
       After : Boolean := False);
   --  The ::closed signal is emitted when the connection to the windowing
   --  system for Display is closed.

   type Cb_Gdk_Display_Void is not null access procedure (Self : access Gdk_Display_Record'Class);

   type Cb_GObject_Void is not null access procedure
     (Self : access Glib.Object.GObject_Record'Class);

   Signal_Opened : constant Glib.Signal_Name := "opened";
   procedure On_Opened
      (Self  : not null access Gdk_Display_Record;
       Call  : Cb_Gdk_Display_Void;
       After : Boolean := False);
   procedure On_Opened
      (Self  : not null access Gdk_Display_Record;
       Call  : Cb_GObject_Void;
       Slot  : not null access Glib.Object.GObject_Record'Class;
       After : Boolean := False);
   --  The ::opened signal is emitted when the connection to the windowing
   --  system for Display is opened.

end Gdk.Display;