----------------------------------------------------------------------- -- GtkAda - Ada95 binding for Gtk+/Gnome -- -- -- -- Copyright (C) 2006-2009, 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_Screen objects are the GDK representation of a physical screen. It is -- used throughout GDK and GTK+ to specify which screen the top level windows -- are to be displayed on. It is also used to query the screen specification -- and default settings such as the default colormap (Get_Default_Colormap), -- the screen width (Get_Width), etc. -- -- Note that a screen may consist of multiple monitors which are merged to -- form a large screen area. -- -- 2.8.17 -- 2.12 for some of the functions -- Gdk, the low-level API -- Gdk_Display with Gdk.Display; with Gdk.Rectangle; with Gdk.Types; with Glib.Object; with Glib.Values; package Gdk.Screen is type Gdk_Screen_Record is new Glib.Object.GObject_Record with null record; type Gdk_Screen is access all Gdk_Screen_Record'Class; function Get_Type return Glib.GType; -- Return the internal type used for screens ------------- -- Display -- ------------- -- These subprograms should really be in gdk-display.ads to match what is -- done for gtk+ itself, but that would create dependency circularities. -- Ada 2005 has support for these, but we want GtkAda to build with Ada95 -- compilers. function Get_Screen (Display : access Gdk.Display.Gdk_Display_Record'Class; Screen_Num : Glib.Gint) return Gdk_Screen; -- Returns a screen object for one of the screens of the display. function Get_Default_Screen (Display : access Gdk.Display.Gdk_Display_Record'Class) return Gdk_Screen; -- Get the default Gdk_Screen for display. procedure Get_Pointer (Display : access Gdk.Display.Gdk_Display_Record'Class; Screen : out Gdk_Screen; X : out Glib.Gint; Y : out Glib.Gint; Mask : out Gdk.Types.Gdk_Modifier_Type); -- Gets the current location of the pointer and the current modifier -- mask for a given display. -- (X, Y) are coordinates relative to the root window on the display procedure Warp_Pointer (Display : access Gdk.Display.Gdk_Display_Record'Class; Screen : access Gdk_Screen_Record; X : Glib.Gint; Y : Glib.Gint); -- Warps the pointer of display to the point x,y on the screen screen, -- unless the pointer is confined to a window by a grab, in which case it -- will be moved as far as allowed by the grab. Warping the pointer creates -- events as if the user had moved the mouse instantaneously to the -- destination. -- -- Note that the pointer should normally be under the control of the user. -- This function was added to cover some rare use cases like keyboard -- navigation support for the color picker in the GtkColorSelectionDialog. ------------- -- Screens -- ------------- function Get_Default return Gdk_Screen; -- Gets the default screen for the default display function Get_Display (Screen : access Gdk_Screen_Record) return Gdk.Display.Gdk_Display; -- Gets the display to which the screen belongs. procedure Set_Default_Colormap (Screen : access Gdk_Screen_Record; Colormap : Gdk.Gdk_Colormap); function Get_Default_Colormap (Screen : access Gdk_Screen_Record) return Gdk.Gdk_Colormap; -- Gets the default colormap for screen. function Get_System_Colormap (Screen : access Gdk_Screen_Record) return Gdk.Gdk_Colormap; -- Gets the system's colormap for screen function Get_System_Visual (Screen : access Gdk_Screen_Record) return Gdk.Gdk_Visual; -- Get the system's default visual for screen. This is the visual for the -- root window of the display. The return value should not be freed. function Get_Rgb_Colormap (Screen : access Gdk_Screen_Record) return Gdk.Gdk_Colormap; -- Gets the preferred colormap for rendering image data on screen. Not a -- very useful function; historically, GDK could only render RGB image data -- to one colormap and visual, but in the current version it can render to -- any colormap and visual. So there's no need to call this function. function Get_Rgb_Visual (Screen : access Gdk_Screen_Record) return Gdk.Gdk_Visual; -- Gets a "preferred visual" chosen by GdkRGB for rendering image data on -- screen. In previous versions of GDK, this was the only visual GdkRGB -- could use for rendering. In current versions, it's simply the visual -- GdkRGB would have chosen as the optimal one in those previous versions. -- GdkRGB can now render to drawables with any visual. function Get_Rgba_Colormap (Screen : access Gdk_Screen_Record) return Gdk.Gdk_Colormap; -- Gets a colormap to use for creating windows or pixmaps with an alpha -- channel. The windowing system on which GTK+ is running may not support -- this capability, in which case NULL will be returned. Even if a non-NULL -- value is returned, its possible that the window's alpha channel won't be -- honored when displaying the window on the screen: in particular, for X -- an appropriate windowing manager and compositing manager must be running -- to provide appropriate display. function Get_Rgba_Visual (Screen : access Gdk_Screen_Record) return Gdk.Gdk_Visual; -- Gets a visual to use for creating windows or pixmaps with an alpha -- channel. See the docs for Get_Rgba_Colormap for caveats. function Get_Root_Window (Screen : access Gdk_Screen_Record) return Gdk.Gdk_Window; -- Gets the root window of screen. function Get_Number (Screen : access Gdk_Screen_Record) return Glib.Gint; -- Gets the index of screen among the screens in the display to which it -- belongs. function Get_Width (Screen : access Gdk_Screen_Record) return Glib.Gint; function Get_Height (Screen : access Gdk_Screen_Record) return Glib.Gint; -- Gets the size of screen in pixels function Get_Width_Mm (Screen : access Gdk_Screen_Record) return Glib.Gint; function Get_Height_Mm (Screen : access Gdk_Screen_Record) return Glib.Gint; -- Gets the width of screen in millimeters. Note that on some X servers -- this value will not be correct. function Make_Display_Name (Screen : access Gdk_Screen_Record) return String; -- Determines the name to pass to Gdk.Display.Open to get a GdkDisplay with -- this screen as the default screen. function Get_N_Monitors (Screen : access Gdk_Screen_Record) return Glib.Gint; -- Returns the number of monitors which screen consists of. function Is_Composited (Screen : access Gdk_Screen_Record) return Boolean; -- Returns whether windows with an RGBA visual can reasonably be expected -- to have their alpha channel drawn correctly on the screen. -- -- On X11 this function returns whether a compositing manager is -- compositing Screen. -- -- Since: 2.10 -------------- -- Monitors -- -------------- procedure Get_Monitor_Geometry (Screen : access Gdk_Screen_Record; Monitor_Num : Glib.Gint; Dest : out Gdk.Rectangle.Gdk_Rectangle); -- Retrieves the Gdk_Rectangle representing the size and position of the -- individual monitor within the entire screen area. -- Note that the size of the entire screen area can be retrieved via -- Get_Width and Get_Height. function Get_Monitor_At_Point (Screen : access Gdk_Screen_Record; X : Glib.Gint; Y : Glib.Gint) return Glib.Gint; -- Returns the monitor number in which the point (X,Y) is located. -- These are coordinates within the virtual screen. The closest monitor is -- returned when (X, Y) is not in any monitor function Get_Monitor_At_Window (Screen : access Gdk_Screen_Record; Window : Gdk.Gdk_Window) return Glib.Gint; -- Returns the number of the monitor in which the largest area of the -- bounding rectangle of Window resides. procedure Get_Setting (Screen : access Gdk_Screen_Record; Name : String; Value : out Glib.Values.GValue; Found : out Boolean); -- Retrieves a desktop-wide setting such as double-click time for the -- Gdk_Screen screen. ------------- -- Signals -- ------------- -- -- -- - "size_changed" -- procedure Handler (Screen : access Gdk_Screen_Record'Class); -- Emitted when the pixel width or height of a screen changes. -- Signal_Size_Changed : constant Glib.Signal_Name := "size_changed"; private pragma Import (C, Get_Type, "gdk_screen_get_type"); end Gdk.Screen; -- Reserved for internal use by gtk+: -- No binding: gdk_screen_set_font_options_libgtk_only -- No binding: gdk_screen_set_resolution_libgtk_only -- No binding: gdk_screen_get_resolution_libgtk_only -- No binding: gdk_screen_get_font_options_libgtk_only -- Low-level: -- No binding: gdk_screen_broadcast_client_message -- Binding would be nice, requires a list of C_Proxy: -- No binding: gdk_screen_get_toplevel_windows -- No binding: gdk_screen_list_visuals