----------------------------------------------------------------------- -- GtkAda - Ada95 binding for Gtk+/Gnome -- -- -- -- Copyright (C) 2006-2007, 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. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ----------------------------------------------------------------------- -- -- Gdk_Display objects purpose are two fold: -- - To grab/ungrab keyboard focus and mouse pointer -- - To manage and provide information about the Gdk_Screen(s) available -- for this Gdk_Display -- Gdk_Display objects are the GDK representation of the 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 Gdk_Screen objects currently instanciated by the -- application. It is also used to grab and release the keyboard and the mouse -- pointer. -- -- 2.8.17 -- Gdk, the low-level API -- Gdk_Screen with Gdk.Event; with Gdk.Types; with Glib.Object; package Gdk.Display is type Gdk_Display_Record is new Glib.Object.GObject_Record with null record; type Gdk_Display is access all Gdk_Display_Record'Class; function Get_Type return Glib.GType; -- Return the internal type associated with a Gdk_Display function Open (Display_Name : String) return Gdk_Display; -- Open a new display. Display_Name follows the unix convention, and should -- have the format host:screen, for instance "foo.com:0". function Get_Default return Gdk_Display; -- Gets the default Gdk_Display function Get_Name (Display : access Gdk_Display_Record) return String; -- Return the name of the screen function Get_N_Screens (Display : access Gdk_Display_Record) return Glib.Gint; -- Return the number of screens managed by the display. -- See the function Gdk.Screen.Get_Screen or Gdk.Screen.Get_Default_Screen procedure Pointer_Ungrab (Display : access Gdk_Display_Record; Time : Glib.Guint32 := Gdk.Types.Current_Time); -- Release any pointer grab. procedure Keyboard_Ungrab (Display : access Gdk_Display_Record; Time : Glib.Guint32 := Gdk.Types.Current_Time); -- Release any keyboard grab function Pointer_Is_Grabbed (Display : access Gdk_Display_Record) return Boolean; -- Test if the pointer is grabbed. procedure Beep (Display : access Gdk_Display_Record); -- Emits a short beep on display procedure Sync (Display : 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 -- 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. procedure Flush (Display : 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 explicitely. 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. procedure Close (Display : access Gdk_Display_Record); -- Closes the connection to the windowing system for the given display, -- and cleans up associated resources. function Get_Event (Display : access Gdk_Display_Record) return Gdk.Event.Gdk_Event; -- Gets the next Gdk_Event to be processed for Display, fetching events -- from the windowing system if necessary. -- null is returned if no events are pending. -- The returned Gdk_Event must be freed with Gdk.Event.Free function Peek_Event (Display : access Gdk_Display_Record) return Gdk.Event.Gdk_Event; -- Gets a copy of the first 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.) -- null is returned if there are no events in the queue. The returned event -- should be freed with Gdk.Event.Free. procedure Put_Event (Display : 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. procedure Set_Double_Click_Time (Display : access Gdk_Display_Record; Msec : Glib.Guint); -- Sets the double click time (two clicks within this time interval count -- as a double click and result in a GDK_2BUTTON_PRESS event). Applications -- should not set this, it is a global user-configured setting. procedure Set_Double_Click_Distance (Display : access Gdk_Display_Record; Distance : Glib.Guint); -- Sets the double click distance (two clicks within this distance count as -- a double click and result in a GDK_2BUTTON_PRESS event). See also -- Set_Double_Click_Time. Applications should not set this, it is a global -- user-configured setting. 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. function Supports_Cursor_Color (Display : 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. function Supports_Cursor_Alpha (Display : 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). function Get_Default_Cursor_Size (Display : access Gdk_Display_Record) return Glib.Guint; -- Returns the default size to use for cursors on display. procedure Get_Maximal_Cursor_Size (Display : access Gdk_Display_Record; Width : out Glib.Guint; Height : out Glib.Guint); -- Gets the maximal size to use for cursors on display function Get_Default_Group (Display : 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. function Supports_Selection_Notification (Display : access Gdk_Display_Record) return Boolean; -- Returns whether Gdk.Event.Owner_Change events will be sent when the -- owner of a selection changes. function Request_Selection_Notification (Display : access Gdk_Display_Record; Selection : Gdk.Types.Gdk_Atom) return Boolean; -- Request Gdk.Event.Owner_Change events for ownership changes of the -- selection named by the given atom. function Supports_Clipboard_Persistence (Display : access Gdk_Display_Record) return Boolean; -- Returns whether the specifed 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. procedure Store_Clipboard (Display : access Gdk_Display_Record; Clipboard_Window : Gdk.Gdk_Window; Time : Glib.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 -- http://www.freedesktop.org/Standards/clipboard-manager-spec. -- See also Gtk.Clipboard.Store. ------------- -- Signals -- ------------- -- -- The following new signals are defined for this object: -- -- - "closed" -- procedure Handler -- (Display : access Gdk_Display_Record'Class; -- Is_Error : Boolean); -- The ::closed signal is emitted when the connection to the windowing -- system for display is closed. Is_Error is set to true if the -- connection is closed due to an error. -- Signal_Closed : constant Glib.Signal_Name := "closed"; private pragma Import (C, Get_Type, "gdk_display_get_type"); end Gdk.Display; -- Binding provided in gdk-screen.ads for circularity dependencies reasons: -- No binding: gdk_display_get_default_screen -- No binding: gdk_display_get_pointer -- No binding: gdk_display_get_screen -- No binding: gdk_display_warp_pointer -- Binding might be nice later: -- No binding: gdk_display_set_pointer_hooks -- No binding needed (too low-level): -- No binding: gdk_display_get_core_pointer -- No binding: gdk_display_list_devices -- No binding: gdk_display_add_client_message_filter -- Function has no implementation -- No binding: gdk_display_open_default_libgtk_only