~ubuntu-branches/ubuntu/intrepid/libgtkada2/intrepid

« back to all changes in this revision

Viewing changes to src/gdk-screen.adb

  • Committer: Bazaar Package Importer
  • Author(s): Luca Falavigna
  • Date: 2008-08-11 09:46:51 UTC
  • mfrom: (6.1.1 squeeze)
  • Revision ID: james.westby@ubuntu.com-20080811094651-9mjd6acwa98ffw5c
Tags: 2.12.0-2ubuntu1
Add lpia to supported architectures.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
-----------------------------------------------------------------------
 
2
--              GtkAda - Ada95 binding for Gtk+/Gnome                --
 
3
--                                                                   --
 
4
--                Copyright (C) 2006-2007, AdaCore                   --
 
5
--                                                                   --
 
6
-- This library is free software; you can redistribute it and/or     --
 
7
-- modify it under the terms of the GNU General Public               --
 
8
-- License as published by the Free Software Foundation; either      --
 
9
-- version 2 of the License, or (at your option) any later version.  --
 
10
--                                                                   --
 
11
-- This library is distributed in the hope that it will be useful,   --
 
12
-- but WITHOUT ANY WARRANTY; without even the implied warranty of    --
 
13
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU --
 
14
-- General Public License for more details.                          --
 
15
--                                                                   --
 
16
-- You should have received a copy of the GNU General Public         --
 
17
-- License along with this library; if not, write to the             --
 
18
-- Free Software Foundation, Inc., 59 Temple Place - Suite 330,      --
 
19
-- Boston, MA 02111-1307, USA.                                       --
 
20
--                                                                   --
 
21
-----------------------------------------------------------------------
 
22
 
 
23
with Gdk;                      use Gdk;
 
24
with Gdk.Display;              use Gdk.Display;
 
25
with Gdk.Rectangle;            use Gdk.Rectangle;
 
26
with Gdk.Types;                use Gdk.Types;
 
27
with Glib;                     use Glib;
 
28
with Glib.Object;              use Glib.Object;
 
29
with Glib.Values;              use Glib.Values;
 
30
with Interfaces.C.Strings;     use Interfaces.C.Strings;
 
31
with System;                   use System;
 
32
 
 
33
package body Gdk.Screen is
 
34
 
 
35
   ----------------
 
36
   -- Get_Screen --
 
37
   ----------------
 
38
 
 
39
   function Get_Screen
 
40
     (Display    : access Gdk_Display_Record'Class;
 
41
      Screen_Num : Gint)
 
42
      return Gdk_Screen
 
43
   is
 
44
      function Internal
 
45
        (Display    : System.Address;
 
46
         Screen_Num : Gint)
 
47
         return System.Address;
 
48
      pragma Import (C, Internal, "gdk_display_get_screen");
 
49
      --  External binding: gdk_display_get_screen
 
50
      Stub : Gdk_Screen_Record;
 
51
   begin
 
52
      return Gdk_Screen
 
53
        (Get_User_Data
 
54
          (Internal (Get_Object (Display), Screen_Num), Stub));
 
55
   end Get_Screen;
 
56
 
 
57
   ------------------------
 
58
   -- Get_Default_Screen --
 
59
   ------------------------
 
60
 
 
61
   function Get_Default_Screen
 
62
     (Display : access Gdk_Display_Record'Class)
 
63
      return Gdk_Screen
 
64
   is
 
65
      function Internal
 
66
        (Display : System.Address)
 
67
         return System.Address;
 
68
      pragma Import (C, Internal, "gdk_display_get_default_screen");
 
69
      --  External binding: gdk_display_get_default_screen
 
70
      Stub : Gdk_Screen_Record;
 
71
   begin
 
72
      return Gdk_Screen
 
73
        (Get_User_Data
 
74
          (Internal (Get_Object (Display)), Stub));
 
75
   end Get_Default_Screen;
 
76
 
 
77
   -----------------
 
78
   -- Get_Pointer --
 
79
   -----------------
 
80
 
 
81
   procedure Get_Pointer
 
82
     (Display : access Gdk_Display_Record'Class;
 
83
      Screen  : out Gdk_Screen;
 
84
      X       : out Gint;
 
85
      Y       : out Gint;
 
86
      Mask    : out Gdk_Modifier_Type)
 
87
   is
 
88
      procedure Internal
 
89
        (Display : System.Address;
 
90
         Screen  : out System.Address;
 
91
         X       : out Gint;
 
92
         Y       : out Gint;
 
93
         Mask    : out Gdk_Modifier_Type);
 
94
      pragma Import (C, Internal, "gdk_display_get_pointer");
 
95
      --  External binding: gdk_display_get_pointer
 
96
 
 
97
      S    : System.Address;
 
98
      Stub : Gdk_Screen_Record;
 
99
 
 
100
   begin
 
101
      Internal (Get_Object (Display), S, X, Y, Mask);
 
102
      Screen := Gdk_Screen (Get_User_Data (S, Stub));
 
103
   end Get_Pointer;
 
104
 
 
105
   -----------------
 
106
   -- Get_Default --
 
107
   -----------------
 
108
 
 
109
   function Get_Default return Gdk_Screen is
 
110
      function Internal return System.Address;
 
111
      pragma Import (C, Internal, "gdk_screen_get_default");
 
112
      Stub : Gdk_Screen_Record;
 
113
   begin
 
114
      return Gdk_Screen (Get_User_Data (Internal, Stub));
 
115
   end Get_Default;
 
116
 
 
117
   --------------------------
 
118
   -- Get_Default_Colormap --
 
119
   --------------------------
 
120
 
 
121
   function Get_Default_Colormap
 
122
     (Screen : access Gdk_Screen_Record)
 
123
      return Gdk_Colormap
 
124
   is
 
125
      function Internal (Screen : System.Address) return Gdk_Colormap;
 
126
      pragma Import (C, Internal, "gdk_screen_get_default_colormap");
 
127
   begin
 
128
      return Internal (Get_Object (Screen));
 
129
   end Get_Default_Colormap;
 
130
 
 
131
   -----------------
 
132
   -- Get_Display --
 
133
   -----------------
 
134
 
 
135
   function Get_Display
 
136
     (Screen : access Gdk_Screen_Record)
 
137
      return Gdk_Display
 
138
   is
 
139
      function Internal (Screen : System.Address) return System.Address;
 
140
      pragma Import (C, Internal, "gdk_screen_get_display");
 
141
      Stub : Gdk_Display_Record;
 
142
   begin
 
143
      return Gdk_Display
 
144
        (Get_User_Data (Internal (Get_Object (Screen)), Stub));
 
145
   end Get_Display;
 
146
 
 
147
   ----------------
 
148
   -- Get_Height --
 
149
   ----------------
 
150
 
 
151
   function Get_Height (Screen : access Gdk_Screen_Record) return Gint is
 
152
      function Internal (Screen : System.Address) return Gint;
 
153
      pragma Import (C, Internal, "gdk_screen_get_height");
 
154
   begin
 
155
      return Internal (Get_Object (Screen));
 
156
   end Get_Height;
 
157
 
 
158
   -------------------
 
159
   -- Get_Height_Mm --
 
160
   -------------------
 
161
 
 
162
   function Get_Height_Mm (Screen : access Gdk_Screen_Record) return Gint is
 
163
      function Internal (Screen : System.Address) return Gint;
 
164
      pragma Import (C, Internal, "gdk_screen_get_height_mm");
 
165
   begin
 
166
      return Internal (Get_Object (Screen));
 
167
   end Get_Height_Mm;
 
168
 
 
169
   --------------------------
 
170
   -- Get_Monitor_At_Point --
 
171
   --------------------------
 
172
 
 
173
   function Get_Monitor_At_Point
 
174
     (Screen : access Gdk_Screen_Record;
 
175
      X      : Gint;
 
176
      Y      : Gint)
 
177
      return Gint
 
178
   is
 
179
      function Internal
 
180
        (Screen : System.Address;
 
181
         X      : Gint;
 
182
         Y      : Gint)
 
183
         return Gint;
 
184
      pragma Import (C, Internal, "gdk_screen_get_monitor_at_point");
 
185
   begin
 
186
      return Internal (Get_Object (Screen), X, Y);
 
187
   end Get_Monitor_At_Point;
 
188
 
 
189
   ---------------------------
 
190
   -- Get_Monitor_At_Window --
 
191
   ---------------------------
 
192
 
 
193
   function Get_Monitor_At_Window
 
194
     (Screen : access Gdk_Screen_Record;
 
195
      Window : Gdk_Window)
 
196
      return Gint
 
197
   is
 
198
      function Internal
 
199
        (Screen : System.Address;
 
200
         Window : Gdk_Window)
 
201
         return Gint;
 
202
      pragma Import (C, Internal, "gdk_screen_get_monitor_at_window");
 
203
   begin
 
204
      return Internal (Get_Object (Screen), Window);
 
205
   end Get_Monitor_At_Window;
 
206
 
 
207
   --------------------------
 
208
   -- Get_Monitor_Geometry --
 
209
   --------------------------
 
210
 
 
211
   procedure Get_Monitor_Geometry
 
212
     (Screen      : access Gdk_Screen_Record;
 
213
      Monitor_Num : Gint;
 
214
      Dest        : out Gdk_Rectangle)
 
215
   is
 
216
      procedure Internal
 
217
        (Screen      : System.Address;
 
218
         Monitor_Num : Gint;
 
219
         Dest        : out Gdk_Rectangle);
 
220
      pragma Import (C, Internal, "gdk_screen_get_monitor_geometry");
 
221
   begin
 
222
      Internal (Get_Object (Screen), Monitor_Num, Dest);
 
223
   end Get_Monitor_Geometry;
 
224
 
 
225
   --------------------
 
226
   -- Get_N_Monitors --
 
227
   --------------------
 
228
 
 
229
   function Get_N_Monitors (Screen : access Gdk_Screen_Record) return Gint is
 
230
      function Internal (Screen : System.Address) return Gint;
 
231
      pragma Import (C, Internal, "gdk_screen_get_n_monitors");
 
232
   begin
 
233
      return Internal (Get_Object (Screen));
 
234
   end Get_N_Monitors;
 
235
 
 
236
   ----------------
 
237
   -- Get_Number --
 
238
   ----------------
 
239
 
 
240
   function Get_Number (Screen : access Gdk_Screen_Record) return Gint is
 
241
      function Internal (Screen : System.Address) return Gint;
 
242
      pragma Import (C, Internal, "gdk_screen_get_number");
 
243
   begin
 
244
      return Internal (Get_Object (Screen));
 
245
   end Get_Number;
 
246
 
 
247
   ----------------------
 
248
   -- Get_Rgb_Colormap --
 
249
   ----------------------
 
250
 
 
251
   function Get_Rgb_Colormap
 
252
     (Screen : access Gdk_Screen_Record) return Gdk_Colormap
 
253
   is
 
254
      function Internal (Screen : System.Address) return Gdk_Colormap;
 
255
      pragma Import (C, Internal, "gdk_screen_get_rgb_colormap");
 
256
   begin
 
257
      return Internal (Get_Object (Screen));
 
258
   end Get_Rgb_Colormap;
 
259
 
 
260
   --------------------
 
261
   -- Get_Rgb_Visual --
 
262
   --------------------
 
263
 
 
264
   function Get_Rgb_Visual
 
265
     (Screen : access Gdk_Screen_Record) return Gdk_Visual
 
266
   is
 
267
      function Internal (Screen : System.Address) return Gdk_Visual;
 
268
      pragma Import (C, Internal, "gdk_screen_get_rgb_visual");
 
269
   begin
 
270
      return Internal (Get_Object (Screen));
 
271
   end Get_Rgb_Visual;
 
272
 
 
273
   -----------------------
 
274
   -- Get_Rgba_Colormap --
 
275
   -----------------------
 
276
 
 
277
   function Get_Rgba_Colormap
 
278
     (Screen : access Gdk_Screen_Record)
 
279
      return Gdk_Colormap
 
280
   is
 
281
      function Internal (Screen : System.Address) return Gdk_Colormap;
 
282
      pragma Import (C, Internal, "gdk_screen_get_rgba_colormap");
 
283
   begin
 
284
      return Internal (Get_Object (Screen));
 
285
   end Get_Rgba_Colormap;
 
286
 
 
287
   ---------------------
 
288
   -- Get_Rgba_Visual --
 
289
   ---------------------
 
290
 
 
291
   function Get_Rgba_Visual
 
292
     (Screen : access Gdk_Screen_Record)
 
293
      return Gdk_Visual
 
294
   is
 
295
      function Internal (Screen : System.Address) return Gdk_Visual;
 
296
      pragma Import (C, Internal, "gdk_screen_get_rgba_visual");
 
297
   begin
 
298
      return Internal (Get_Object (Screen));
 
299
   end Get_Rgba_Visual;
 
300
 
 
301
   ---------------------
 
302
   -- Get_Root_Window --
 
303
   ---------------------
 
304
 
 
305
   function Get_Root_Window
 
306
     (Screen : access Gdk_Screen_Record)
 
307
      return Gdk_Window
 
308
   is
 
309
      function Internal (Screen : System.Address) return Gdk_Window;
 
310
      pragma Import (C, Internal, "gdk_screen_get_root_window");
 
311
   begin
 
312
      return Internal (Get_Object (Screen));
 
313
   end Get_Root_Window;
 
314
 
 
315
   -----------------
 
316
   -- Get_Setting --
 
317
   -----------------
 
318
 
 
319
   procedure Get_Setting
 
320
     (Screen : access Gdk_Screen_Record;
 
321
      Name   : String;
 
322
      Value  : out GValue;
 
323
      Found  : out Boolean)
 
324
   is
 
325
      function Internal
 
326
        (Screen : System.Address;
 
327
         Name   : String;
 
328
         Value  : access GValue)
 
329
         return Gboolean;
 
330
      pragma Import (C, Internal, "gdk_screen_get_setting");
 
331
      Val : aliased GValue;
 
332
   begin
 
333
      Found := Boolean'Val
 
334
        (Internal (Get_Object (Screen), Name & ASCII.NUL, Val'Access));
 
335
      Value := Val;
 
336
   end Get_Setting;
 
337
 
 
338
   -------------------------
 
339
   -- Get_System_Colormap --
 
340
   -------------------------
 
341
 
 
342
   function Get_System_Colormap
 
343
     (Screen : access Gdk_Screen_Record)
 
344
      return Gdk_Colormap
 
345
   is
 
346
      function Internal (Screen : System.Address) return Gdk_Colormap;
 
347
      pragma Import (C, Internal, "gdk_screen_get_system_colormap");
 
348
   begin
 
349
      return Internal (Get_Object (Screen));
 
350
   end Get_System_Colormap;
 
351
 
 
352
   -----------------------
 
353
   -- Get_System_Visual --
 
354
   -----------------------
 
355
 
 
356
   function Get_System_Visual
 
357
     (Screen : access Gdk_Screen_Record)
 
358
      return Gdk_Visual
 
359
   is
 
360
      function Internal (Screen : System.Address) return Gdk_Visual;
 
361
      pragma Import (C, Internal, "gdk_screen_get_system_visual");
 
362
   begin
 
363
      return Internal (Get_Object (Screen));
 
364
   end Get_System_Visual;
 
365
 
 
366
   ---------------
 
367
   -- Get_Width --
 
368
   ---------------
 
369
 
 
370
   function Get_Width
 
371
     (Screen : access Gdk_Screen_Record)
 
372
      return Gint
 
373
   is
 
374
      function Internal (Screen : System.Address) return Gint;
 
375
      pragma Import (C, Internal, "gdk_screen_get_width");
 
376
   begin
 
377
      return Internal (Get_Object (Screen));
 
378
   end Get_Width;
 
379
 
 
380
   ------------------
 
381
   -- Get_Width_Mm --
 
382
   ------------------
 
383
 
 
384
   function Get_Width_Mm (Screen : access Gdk_Screen_Record) return Gint is
 
385
      function Internal (Screen : System.Address) return Gint;
 
386
      pragma Import (C, Internal, "gdk_screen_get_width_mm");
 
387
   begin
 
388
      return Internal (Get_Object (Screen));
 
389
   end Get_Width_Mm;
 
390
 
 
391
   -----------------------
 
392
   -- Make_Display_Name --
 
393
   -----------------------
 
394
 
 
395
   function Make_Display_Name
 
396
     (Screen : access Gdk_Screen_Record)
 
397
      return String
 
398
   is
 
399
      function Internal (Screen : System.Address) return chars_ptr;
 
400
      pragma Import (C, Internal, "gdk_screen_make_display_name");
 
401
      Val : chars_ptr := Internal (Get_Object (Screen));
 
402
      Result : constant String := Value (Val);
 
403
   begin
 
404
      Free (Val);
 
405
      return Result;
 
406
   end Make_Display_Name;
 
407
 
 
408
   --------------------------
 
409
   -- Set_Default_Colormap --
 
410
   --------------------------
 
411
 
 
412
   procedure Set_Default_Colormap
 
413
     (Screen   : access Gdk_Screen_Record;
 
414
      Colormap : Gdk_Colormap)
 
415
   is
 
416
      procedure Internal
 
417
        (Screen   : System.Address;
 
418
         Colormap : Gdk_Colormap);
 
419
      pragma Import (C, Internal, "gdk_screen_set_default_colormap");
 
420
   begin
 
421
      Internal (Get_Object (Screen), Colormap);
 
422
   end Set_Default_Colormap;
 
423
 
 
424
   ------------------
 
425
   -- Warp_Pointer --
 
426
   ------------------
 
427
 
 
428
   procedure Warp_Pointer
 
429
     (Display : access Gdk.Display.Gdk_Display_Record'Class;
 
430
      Screen  : access Gdk_Screen_Record;
 
431
      X       : Glib.Gint;
 
432
      Y       : Glib.Gint)
 
433
   is
 
434
      procedure Internal (D, S : System.Address; X, Y : Gint);
 
435
      pragma Import (C, Internal, "gdk_display_warp_pointer");
 
436
      --  External binding: gdk_display_warp_pointer
 
437
   begin
 
438
      Internal (Get_Object (Display), Get_Object (Screen), X, Y);
 
439
   end Warp_Pointer;
 
440
 
 
441
end Gdk.Screen;