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 36 G_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 */ 134 typedef 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 GDK_RTL_LOGO = 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 221 GDK_AVAILABLE_IN_ALL 222 GType gdk_cursor_get_type (void) G_GNUC_CONST; 223 224 GDK_AVAILABLE_IN_ALL 225 GdkCursor* gdk_cursor_new_for_display (GdkDisplay *display, 226 GdkCursorType cursor_type); 227 GDK_DEPRECATED_IN_3_16_FOR(gdk_cursor_new_for_display) 228 GdkCursor* gdk_cursor_new (GdkCursorType cursor_type); 229 GDK_AVAILABLE_IN_ALL 230 GdkCursor* gdk_cursor_new_from_pixbuf (GdkDisplay *display, 231 GdkPixbuf *pixbuf, 232 gint x, 233 gint y); 234 GDK_AVAILABLE_IN_3_10 235 GdkCursor* gdk_cursor_new_from_surface (GdkDisplay *display, 236 cairo_surface_t *surface, 237 gdouble x, 238 gdouble y); 239 GDK_AVAILABLE_IN_ALL 240 GdkCursor* gdk_cursor_new_from_name (GdkDisplay *display, 241 const gchar *name); 242 GDK_AVAILABLE_IN_ALL 243 GdkDisplay* gdk_cursor_get_display (GdkCursor *cursor); 244 GDK_DEPRECATED_IN_3_0_FOR(g_object_ref) 245 GdkCursor * gdk_cursor_ref (GdkCursor *cursor); 246 GDK_DEPRECATED_IN_3_0_FOR(g_object_unref) 247 void gdk_cursor_unref (GdkCursor *cursor); 248 GDK_AVAILABLE_IN_ALL 249 GdkPixbuf* gdk_cursor_get_image (GdkCursor *cursor); 250 GDK_AVAILABLE_IN_3_10 251 cairo_surface_t *gdk_cursor_get_surface (GdkCursor *cursor, 252 gdouble *x_hot, 253 gdouble *y_hot); 254 GDK_AVAILABLE_IN_ALL 255 GdkCursorType gdk_cursor_get_cursor_type (GdkCursor *cursor); 256 257 258 G_END_DECLS 259 260 #endif /* __GDK_CURSOR_H__ */ 261