1/* GDK - The GIMP Drawing Kit
2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18/*
19 * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
20 * file for a list of people on the GTK+ Team. See the ChangeLog
21 * files for a list of changes. These files are distributed with
22 * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
23 */
24
25#ifndef __GDK_CURSOR_H__
26#define __GDK_CURSOR_H__
27
28#if !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION)
29#error "Only <gdk/gdk.h> can be included directly."
30#endif
31
32#include <gdk/gdkversionmacros.h>
33#include <gdk/gdktypes.h>
34#include <gdk-pixbuf/gdk-pixbuf.h>
35
36G_BEGIN_DECLS
37
38#define GDK_TYPE_CURSOR (gdk_cursor_get_type ())
39#define GDK_CURSOR(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_CURSOR, GdkCursor))
40#define GDK_IS_CURSOR(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_CURSOR))
41
42
43/**
44 * GdkCursorType:
45 * @GDK_X_CURSOR: ![](X_cursor.png)
46 * @GDK_ARROW: ![](arrow.png)
47 * @GDK_BASED_ARROW_DOWN: ![](based_arrow_down.png)
48 * @GDK_BASED_ARROW_UP: ![](based_arrow_up.png)
49 * @GDK_BOAT: ![](boat.png)
50 * @GDK_BOGOSITY: ![](bogosity.png)
51 * @GDK_BOTTOM_LEFT_CORNER: ![](bottom_left_corner.png)
52 * @GDK_BOTTOM_RIGHT_CORNER: ![](bottom_right_corner.png)
53 * @GDK_BOTTOM_SIDE: ![](bottom_side.png)
54 * @GDK_BOTTOM_TEE: ![](bottom_tee.png)
55 * @GDK_BOX_SPIRAL: ![](box_spiral.png)
56 * @GDK_CENTER_PTR: ![](center_ptr.png)
57 * @GDK_CIRCLE: ![](circle.png)
58 * @GDK_CLOCK: ![](clock.png)
59 * @GDK_COFFEE_MUG: ![](coffee_mug.png)
60 * @GDK_CROSS: ![](cross.png)
61 * @GDK_CROSS_REVERSE: ![](cross_reverse.png)
62 * @GDK_CROSSHAIR: ![](crosshair.png)
63 * @GDK_DIAMOND_CROSS: ![](diamond_cross.png)
64 * @GDK_DOT: ![](dot.png)
65 * @GDK_DOTBOX: ![](dotbox.png)
66 * @GDK_DOUBLE_ARROW: ![](double_arrow.png)
67 * @GDK_DRAFT_LARGE: ![](draft_large.png)
68 * @GDK_DRAFT_SMALL: ![](draft_small.png)
69 * @GDK_DRAPED_BOX: ![](draped_box.png)
70 * @GDK_EXCHANGE: ![](exchange.png)
71 * @GDK_FLEUR: ![](fleur.png)
72 * @GDK_GOBBLER: ![](gobbler.png)
73 * @GDK_GUMBY: ![](gumby.png)
74 * @GDK_HAND1: ![](hand1.png)
75 * @GDK_HAND2: ![](hand2.png)
76 * @GDK_HEART: ![](heart.png)
77 * @GDK_ICON: ![](icon.png)
78 * @GDK_IRON_CROSS: ![](iron_cross.png)
79 * @GDK_LEFT_PTR: ![](left_ptr.png)
80 * @GDK_LEFT_SIDE: ![](left_side.png)
81 * @GDK_LEFT_TEE: ![](left_tee.png)
82 * @GDK_LEFTBUTTON: ![](leftbutton.png)
83 * @GDK_LL_ANGLE: ![](ll_angle.png)
84 * @GDK_LR_ANGLE: ![](lr_angle.png)
85 * @GDK_MAN: ![](man.png)
86 * @GDK_MIDDLEBUTTON: ![](middlebutton.png)
87 * @GDK_MOUSE: ![](mouse.png)
88 * @GDK_PENCIL: ![](pencil.png)
89 * @GDK_PIRATE: ![](pirate.png)
90 * @GDK_PLUS: ![](plus.png)
91 * @GDK_QUESTION_ARROW: ![](question_arrow.png)
92 * @GDK_RIGHT_PTR: ![](right_ptr.png)
93 * @GDK_RIGHT_SIDE: ![](right_side.png)
94 * @GDK_RIGHT_TEE: ![](right_tee.png)
95 * @GDK_RIGHTBUTTON: ![](rightbutton.png)
96 * @GDK_RTL_LOGO: ![](rtl_logo.png)
97 * @GDK_SAILBOAT: ![](sailboat.png)
98 * @GDK_SB_DOWN_ARROW: ![](sb_down_arrow.png)
99 * @GDK_SB_H_DOUBLE_ARROW: ![](sb_h_double_arrow.png)
100 * @GDK_SB_LEFT_ARROW: ![](sb_left_arrow.png)
101 * @GDK_SB_RIGHT_ARROW: ![](sb_right_arrow.png)
102 * @GDK_SB_UP_ARROW: ![](sb_up_arrow.png)
103 * @GDK_SB_V_DOUBLE_ARROW: ![](sb_v_double_arrow.png)
104 * @GDK_SHUTTLE: ![](shuttle.png)
105 * @GDK_SIZING: ![](sizing.png)
106 * @GDK_SPIDER: ![](spider.png)
107 * @GDK_SPRAYCAN: ![](spraycan.png)
108 * @GDK_STAR: ![](star.png)
109 * @GDK_TARGET: ![](target.png)
110 * @GDK_TCROSS: ![](tcross.png)
111 * @GDK_TOP_LEFT_ARROW: ![](top_left_arrow.png)
112 * @GDK_TOP_LEFT_CORNER: ![](top_left_corner.png)
113 * @GDK_TOP_RIGHT_CORNER: ![](top_right_corner.png)
114 * @GDK_TOP_SIDE: ![](top_side.png)
115 * @GDK_TOP_TEE: ![](top_tee.png)
116 * @GDK_TREK: ![](trek.png)
117 * @GDK_UL_ANGLE: ![](ul_angle.png)
118 * @GDK_UMBRELLA: ![](umbrella.png)
119 * @GDK_UR_ANGLE: ![](ur_angle.png)
120 * @GDK_WATCH: ![](watch.png)
121 * @GDK_XTERM: ![](xterm.png)
122 * @GDK_LAST_CURSOR: last cursor type
123 * @GDK_BLANK_CURSOR: Blank cursor. Since 2.16
124 * @GDK_CURSOR_IS_PIXMAP: type of cursors constructed with
125 * gdk_cursor_new_from_pixbuf()
126 *
127 * Predefined cursors.
128 *
129 * Note that these IDs are directly taken from the X cursor font, and many
130 * of these cursors are either not useful, or are not available on other platforms.
131 *
132 * The recommended way to create cursors is to use gdk_cursor_new_from_name().
133 */
134typedef enum
135{
136 GDK_X_CURSOR = 0,
137 GDK_ARROW = 2,
138 GDK_BASED_ARROW_DOWN = 4,
139 GDK_BASED_ARROW_UP = 6,
140 GDK_BOAT = 8,
141 GDK_BOGOSITY = 10,
142 GDK_BOTTOM_LEFT_CORNER = 12,
143 GDK_BOTTOM_RIGHT_CORNER = 14,
144 GDK_BOTTOM_SIDE = 16,
145 GDK_BOTTOM_TEE = 18,
146 GDK_BOX_SPIRAL = 20,
147 GDK_CENTER_PTR = 22,
148 GDK_CIRCLE = 24,
149 GDK_CLOCK = 26,
150 GDK_COFFEE_MUG = 28,
151 GDK_CROSS = 30,
152 GDK_CROSS_REVERSE = 32,
153 GDK_CROSSHAIR = 34,
154 GDK_DIAMOND_CROSS = 36,
155 GDK_DOT = 38,
156 GDK_DOTBOX = 40,
157 GDK_DOUBLE_ARROW = 42,
158 GDK_DRAFT_LARGE = 44,
159 GDK_DRAFT_SMALL = 46,
160 GDK_DRAPED_BOX = 48,
161 GDK_EXCHANGE = 50,
162 GDK_FLEUR = 52,
163 GDK_GOBBLER = 54,
164 GDK_GUMBY = 56,
165 GDK_HAND1 = 58,
166 GDK_HAND2 = 60,
167 GDK_HEART = 62,
168 GDK_ICON = 64,
169 GDK_IRON_CROSS = 66,
170 GDK_LEFT_PTR = 68,
171 GDK_LEFT_SIDE = 70,
172 GDK_LEFT_TEE = 72,
173 GDK_LEFTBUTTON = 74,
174 GDK_LL_ANGLE = 76,
175 GDK_LR_ANGLE = 78,
176 GDK_MAN = 80,
177 GDK_MIDDLEBUTTON = 82,
178 GDK_MOUSE = 84,
179 GDK_PENCIL = 86,
180 GDK_PIRATE = 88,
181 GDK_PLUS = 90,
182 GDK_QUESTION_ARROW = 92,
183 GDK_RIGHT_PTR = 94,
184 GDK_RIGHT_SIDE = 96,
185 GDK_RIGHT_TEE = 98,
186 GDK_RIGHTBUTTON = 100,
187 = 102,
188 GDK_SAILBOAT = 104,
189 GDK_SB_DOWN_ARROW = 106,
190 GDK_SB_H_DOUBLE_ARROW = 108,
191 GDK_SB_LEFT_ARROW = 110,
192 GDK_SB_RIGHT_ARROW = 112,
193 GDK_SB_UP_ARROW = 114,
194 GDK_SB_V_DOUBLE_ARROW = 116,
195 GDK_SHUTTLE = 118,
196 GDK_SIZING = 120,
197 GDK_SPIDER = 122,
198 GDK_SPRAYCAN = 124,
199 GDK_STAR = 126,
200 GDK_TARGET = 128,
201 GDK_TCROSS = 130,
202 GDK_TOP_LEFT_ARROW = 132,
203 GDK_TOP_LEFT_CORNER = 134,
204 GDK_TOP_RIGHT_CORNER = 136,
205 GDK_TOP_SIDE = 138,
206 GDK_TOP_TEE = 140,
207 GDK_TREK = 142,
208 GDK_UL_ANGLE = 144,
209 GDK_UMBRELLA = 146,
210 GDK_UR_ANGLE = 148,
211 GDK_WATCH = 150,
212 GDK_XTERM = 152,
213 GDK_LAST_CURSOR,
214 GDK_BLANK_CURSOR = -2,
215 GDK_CURSOR_IS_PIXMAP = -1
216} GdkCursorType;
217
218/* Cursors
219 */
220
221GDK_AVAILABLE_IN_ALL
222GType gdk_cursor_get_type (void) G_GNUC_CONST;
223
224GDK_AVAILABLE_IN_ALL
225GdkCursor* gdk_cursor_new_for_display (GdkDisplay *display,
226 GdkCursorType cursor_type);
227GDK_DEPRECATED_IN_3_16_FOR(gdk_cursor_new_for_display)
228GdkCursor* gdk_cursor_new (GdkCursorType cursor_type);
229GDK_AVAILABLE_IN_ALL
230GdkCursor* gdk_cursor_new_from_pixbuf (GdkDisplay *display,
231 GdkPixbuf *pixbuf,
232 gint x,
233 gint y);
234GDK_AVAILABLE_IN_3_10
235GdkCursor* gdk_cursor_new_from_surface (GdkDisplay *display,
236 cairo_surface_t *surface,
237 gdouble x,
238 gdouble y);
239GDK_AVAILABLE_IN_ALL
240GdkCursor* gdk_cursor_new_from_name (GdkDisplay *display,
241 const gchar *name);
242GDK_AVAILABLE_IN_ALL
243GdkDisplay* gdk_cursor_get_display (GdkCursor *cursor);
244GDK_DEPRECATED_IN_3_0_FOR(g_object_ref)
245GdkCursor * gdk_cursor_ref (GdkCursor *cursor);
246GDK_DEPRECATED_IN_3_0_FOR(g_object_unref)
247void gdk_cursor_unref (GdkCursor *cursor);
248GDK_AVAILABLE_IN_ALL
249GdkPixbuf* gdk_cursor_get_image (GdkCursor *cursor);
250GDK_AVAILABLE_IN_3_10
251cairo_surface_t *gdk_cursor_get_surface (GdkCursor *cursor,
252 gdouble *x_hot,
253 gdouble *y_hot);
254GDK_AVAILABLE_IN_ALL
255GdkCursorType gdk_cursor_get_cursor_type (GdkCursor *cursor);
256
257
258G_END_DECLS
259
260#endif /* __GDK_CURSOR_H__ */
261