----------------------------------------------------------------------- -- GtkAda - Ada95 binding for Gtk+/Gnome -- -- -- -- Copyright (C) 1998-2000 E. Briot, J. Brobecker and A. Charlet -- -- Copyright (C) 2000-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. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ----------------------------------------------------------------------- -- -- This package provides the capability to create predefined mouse cursors -- as well as user defined ones. -- -- 1.3.6 -- Gdk, the low-level API -- create_cursors.adb with Glib; with Gdk.Color; package Gdk.Cursor is type Gdk_Cursor is new Gdk.C_Proxy; Null_Cursor : constant Gdk_Cursor; type Gdk_Cursor_Type is (X_Cursor, Arrow, Based_Arrow_Down, Based_Arrow_Up, Boat, Bogosity, Bottom_Left_Corner, Bottom_Right_Corner, Bottom_Side, Bottom_Tee, Box_Spiral, Center_Ptr, Circle, Clock, Coffee_Mug, Cross, Cross_Reverse, Crosshair, Diamond_Cross, Dot, Dotbox, Double_Arrow, Draft_Large, Draft_Small, Draped_Box, Exchange, Fleur, Gobbler, Gumby, Hand1, Hand2, Heart, Icon, Iron_Cross, Left_Ptr, Left_Side, Left_Tee, Leftbutton, Ll_Angle, Lr_Angle, Man, Middlebutton, Mouse, Pencil, Pirate, Plus, Question_Arrow, Right_Ptr, Right_Side, Right_Tee, Rightbutton, Rtl_Logo, Sailboat, Sb_Down_Arrow, Sb_H_Double_Arrow, Sb_Left_Arrow, Sb_Right_Arrow, Sb_Up_Arrow, Sb_V_Double_Arrow, Shuttle, Sizing, Spider, Spraycan, Star, Target, Tcross, Top_Left_Arrow, Top_Left_Corner, Top_Right_Corner, Top_Side, Top_Tee, Trek, Ul_Angle, Umbrella, Ur_Angle, Watch, Xterm); procedure Gdk_New (Widget : out Gdk_Cursor; Cursor_Type : Gdk_Cursor_Type); -- Create a new standard cursor. procedure Gdk_New (Widget : out Gdk_Cursor; Source : Gdk.Gdk_Pixmap; Mask : Gdk.Gdk_Pixmap; Fg : Gdk.Color.Gdk_Color; Bg : Gdk.Color.Gdk_Color; X : Glib.Gint; Y : Glib.Gint); -- Create a new cursor from a given pixmap and mask. -- See also Gdk.Pixbuf.Gdk_New_From_Pixbuf. -- Both the pixmap and mask must have a depth of 1 (i.e. each pixel has -- only 2 values - on or off). The standard cursor size is 16 by 16 pixels. -- - Source is the pixmap specifying the cursor. -- - Mask is the pixmap specifying the mask, which must be the same size -- as source. -- - Fg is the foreground color, used for the bits in the source which are -- enabled. The color does not have to be allocated first. -- - Bg is the background color, used for the bits in the source which are -- disabled. The color does not have to be allocated first. -- - X is the horizontal offset of the 'hotspot' of the cursor. -- - Y is the vertical offset of the 'hotspot' of the cursor. -- procedure Gdk_New_From_Pixbuf (...) -- This function is declared in Gdk.Pixbuf, for dependency circularity -- reasons. It can be used to create a cursor directly from a pixbuf. procedure Gdk_New (Cursor : out Gdk_Cursor; Name : String); -- Create a cursor from a name procedure Destroy (Cursor : Gdk_Cursor); pragma Obsolescent; -- Destroy -- Destroy a cursor, freeing any resources allocated for it. -- Deprecated, use Unref instead. procedure Ref (Cursor : Gdk_Cursor); -- Increment the reference counting for the cursor. procedure Unref (Cursor : Gdk_Cursor); -- Decrement the reference counting for the cursor. -- When this reaches 0, the cursor is destroyed. private Null_Cursor : constant Gdk_Cursor := null; pragma Import (C, Destroy, "gdk_cursor_unref"); pragma Import (C, Ref, "gdk_cursor_ref"); pragma Import (C, Unref, "gdk_cursor_unref"); for Gdk_Cursor_Type'Size use Glib.Gint'Size; for Gdk_Cursor_Type use (X_Cursor => 0, Arrow => 2, Based_Arrow_Down => 4, Based_Arrow_Up => 6, Boat => 8, Bogosity => 10, Bottom_Left_Corner => 12, Bottom_Right_Corner => 14, Bottom_Side => 16, Bottom_Tee => 18, Box_Spiral => 20, Center_Ptr => 22, Circle => 24, Clock => 26, Coffee_Mug => 28, Cross => 30, Cross_Reverse => 32, Crosshair => 34, Diamond_Cross => 36, Dot => 38, Dotbox => 40, Double_Arrow => 42, Draft_Large => 44, Draft_Small => 46, Draped_Box => 48, Exchange => 50, Fleur => 52, Gobbler => 54, Gumby => 56, Hand1 => 58, Hand2 => 60, Heart => 62, Icon => 64, Iron_Cross => 66, Left_Ptr => 68, Left_Side => 70, Left_Tee => 72, Leftbutton => 74, Ll_Angle => 76, Lr_Angle => 78, Man => 80, Middlebutton => 82, Mouse => 84, Pencil => 86, Pirate => 88, Plus => 90, Question_Arrow => 92, Right_Ptr => 94, Right_Side => 96, Right_Tee => 98, Rightbutton => 100, Rtl_Logo => 102, Sailboat => 104, Sb_Down_Arrow => 106, Sb_H_Double_Arrow => 108, Sb_Left_Arrow => 110, Sb_Right_Arrow => 112, Sb_Up_Arrow => 114, Sb_V_Double_Arrow => 116, Shuttle => 118, Sizing => 120, Spider => 122, Spraycan => 124, Star => 126, Target => 128, Tcross => 130, Top_Left_Arrow => 132, Top_Left_Corner => 134, Top_Right_Corner => 136, Top_Side => 138, Top_Tee => 140, Trek => 142, Ul_Angle => 144, Umbrella => 146, Ur_Angle => 148, Watch => 150, Xterm => 152); end Gdk.Cursor;