forked from AuroraMiddleware/gtk
2a60928157
The preferred api to create cursors is by name, and the GdkCursorType enumeration can directly trace its ancestry to the horrible X cursor font. So lets stop using it.
250 lines
7.8 KiB
C
250 lines
7.8 KiB
C
/* GDK - The GIMP Drawing Kit
|
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser 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
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
/*
|
|
* Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
|
|
* file for a list of people on the GTK+ Team. See the ChangeLog
|
|
* files for a list of changes. These files are distributed with
|
|
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
|
|
*/
|
|
|
|
#ifndef __GDK_CURSOR_H__
|
|
#define __GDK_CURSOR_H__
|
|
|
|
#if !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION)
|
|
#error "Only <gdk/gdk.h> can be included directly."
|
|
#endif
|
|
|
|
#include <gdk/gdkversionmacros.h>
|
|
#include <gdk/gdktypes.h>
|
|
#include <gdk-pixbuf/gdk-pixbuf.h>
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
#define GDK_TYPE_CURSOR (gdk_cursor_get_type ())
|
|
#define GDK_CURSOR(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_CURSOR, GdkCursor))
|
|
#define GDK_IS_CURSOR(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_CURSOR))
|
|
|
|
|
|
/**
|
|
* GdkCursorType:
|
|
* @GDK_X_CURSOR: ![](X_cursor.png)
|
|
* @GDK_ARROW: ![](arrow.png)
|
|
* @GDK_BASED_ARROW_DOWN: ![](based_arrow_down.png)
|
|
* @GDK_BASED_ARROW_UP: ![](based_arrow_up.png)
|
|
* @GDK_BOAT: ![](boat.png)
|
|
* @GDK_BOGOSITY: ![](bogosity.png)
|
|
* @GDK_BOTTOM_LEFT_CORNER: ![](bottom_left_corner.png)
|
|
* @GDK_BOTTOM_RIGHT_CORNER: ![](bottom_right_corner.png)
|
|
* @GDK_BOTTOM_SIDE: ![](bottom_side.png)
|
|
* @GDK_BOTTOM_TEE: ![](bottom_tee.png)
|
|
* @GDK_BOX_SPIRAL: ![](box_spiral.png)
|
|
* @GDK_CENTER_PTR: ![](center_ptr.png)
|
|
* @GDK_CIRCLE: ![](circle.png)
|
|
* @GDK_CLOCK: ![](clock.png)
|
|
* @GDK_COFFEE_MUG: ![](coffee_mug.png)
|
|
* @GDK_CROSS: ![](cross.png)
|
|
* @GDK_CROSS_REVERSE: ![](cross_reverse.png)
|
|
* @GDK_CROSSHAIR: ![](crosshair.png)
|
|
* @GDK_DIAMOND_CROSS: ![](diamond_cross.png)
|
|
* @GDK_DOT: ![](dot.png)
|
|
* @GDK_DOTBOX: ![](dotbox.png)
|
|
* @GDK_DOUBLE_ARROW: ![](double_arrow.png)
|
|
* @GDK_DRAFT_LARGE: ![](draft_large.png)
|
|
* @GDK_DRAFT_SMALL: ![](draft_small.png)
|
|
* @GDK_DRAPED_BOX: ![](draped_box.png)
|
|
* @GDK_EXCHANGE: ![](exchange.png)
|
|
* @GDK_FLEUR: ![](fleur.png)
|
|
* @GDK_GOBBLER: ![](gobbler.png)
|
|
* @GDK_GUMBY: ![](gumby.png)
|
|
* @GDK_HAND1: ![](hand1.png)
|
|
* @GDK_HAND2: ![](hand2.png)
|
|
* @GDK_HEART: ![](heart.png)
|
|
* @GDK_ICON: ![](icon.png)
|
|
* @GDK_IRON_CROSS: ![](iron_cross.png)
|
|
* @GDK_LEFT_PTR: ![](left_ptr.png)
|
|
* @GDK_LEFT_SIDE: ![](left_side.png)
|
|
* @GDK_LEFT_TEE: ![](left_tee.png)
|
|
* @GDK_LEFTBUTTON: ![](leftbutton.png)
|
|
* @GDK_LL_ANGLE: ![](ll_angle.png)
|
|
* @GDK_LR_ANGLE: ![](lr_angle.png)
|
|
* @GDK_MAN: ![](man.png)
|
|
* @GDK_MIDDLEBUTTON: ![](middlebutton.png)
|
|
* @GDK_MOUSE: ![](mouse.png)
|
|
* @GDK_PENCIL: ![](pencil.png)
|
|
* @GDK_PIRATE: ![](pirate.png)
|
|
* @GDK_PLUS: ![](plus.png)
|
|
* @GDK_QUESTION_ARROW: ![](question_arrow.png)
|
|
* @GDK_RIGHT_PTR: ![](right_ptr.png)
|
|
* @GDK_RIGHT_SIDE: ![](right_side.png)
|
|
* @GDK_RIGHT_TEE: ![](right_tee.png)
|
|
* @GDK_RIGHTBUTTON: ![](rightbutton.png)
|
|
* @GDK_RTL_LOGO: ![](rtl_logo.png)
|
|
* @GDK_SAILBOAT: ![](sailboat.png)
|
|
* @GDK_SB_DOWN_ARROW: ![](sb_down_arrow.png)
|
|
* @GDK_SB_H_DOUBLE_ARROW: ![](sb_h_double_arrow.png)
|
|
* @GDK_SB_LEFT_ARROW: ![](sb_left_arrow.png)
|
|
* @GDK_SB_RIGHT_ARROW: ![](sb_right_arrow.png)
|
|
* @GDK_SB_UP_ARROW: ![](sb_up_arrow.png)
|
|
* @GDK_SB_V_DOUBLE_ARROW: ![](sb_v_double_arrow.png)
|
|
* @GDK_SHUTTLE: ![](shuttle.png)
|
|
* @GDK_SIZING: ![](sizing.png)
|
|
* @GDK_SPIDER: ![](spider.png)
|
|
* @GDK_SPRAYCAN: ![](spraycan.png)
|
|
* @GDK_STAR: ![](star.png)
|
|
* @GDK_TARGET: ![](target.png)
|
|
* @GDK_TCROSS: ![](tcross.png)
|
|
* @GDK_TOP_LEFT_ARROW: ![](top_left_arrow.png)
|
|
* @GDK_TOP_LEFT_CORNER: ![](top_left_corner.png)
|
|
* @GDK_TOP_RIGHT_CORNER: ![](top_right_corner.png)
|
|
* @GDK_TOP_SIDE: ![](top_side.png)
|
|
* @GDK_TOP_TEE: ![](top_tee.png)
|
|
* @GDK_TREK: ![](trek.png)
|
|
* @GDK_UL_ANGLE: ![](ul_angle.png)
|
|
* @GDK_UMBRELLA: ![](umbrella.png)
|
|
* @GDK_UR_ANGLE: ![](ur_angle.png)
|
|
* @GDK_WATCH: ![](watch.png)
|
|
* @GDK_XTERM: ![](xterm.png)
|
|
* @GDK_LAST_CURSOR: last cursor type
|
|
* @GDK_BLANK_CURSOR: Blank cursor. Since 2.16
|
|
* @GDK_CURSOR_IS_PIXMAP: type of cursors constructed with
|
|
* gdk_cursor_new_from_pixbuf()
|
|
*
|
|
* Predefined cursors.
|
|
*
|
|
* Note that these IDs are directly taken from the X cursor font, and many
|
|
* of these cursors are either not useful, or are not available on other platforms.
|
|
*
|
|
* The recommended way to create cursors is to use gdk_cursor_new_from_name().
|
|
*/
|
|
typedef enum
|
|
{
|
|
GDK_X_CURSOR = 0,
|
|
GDK_ARROW = 2,
|
|
GDK_BASED_ARROW_DOWN = 4,
|
|
GDK_BASED_ARROW_UP = 6,
|
|
GDK_BOAT = 8,
|
|
GDK_BOGOSITY = 10,
|
|
GDK_BOTTOM_LEFT_CORNER = 12,
|
|
GDK_BOTTOM_RIGHT_CORNER = 14,
|
|
GDK_BOTTOM_SIDE = 16,
|
|
GDK_BOTTOM_TEE = 18,
|
|
GDK_BOX_SPIRAL = 20,
|
|
GDK_CENTER_PTR = 22,
|
|
GDK_CIRCLE = 24,
|
|
GDK_CLOCK = 26,
|
|
GDK_COFFEE_MUG = 28,
|
|
GDK_CROSS = 30,
|
|
GDK_CROSS_REVERSE = 32,
|
|
GDK_CROSSHAIR = 34,
|
|
GDK_DIAMOND_CROSS = 36,
|
|
GDK_DOT = 38,
|
|
GDK_DOTBOX = 40,
|
|
GDK_DOUBLE_ARROW = 42,
|
|
GDK_DRAFT_LARGE = 44,
|
|
GDK_DRAFT_SMALL = 46,
|
|
GDK_DRAPED_BOX = 48,
|
|
GDK_EXCHANGE = 50,
|
|
GDK_FLEUR = 52,
|
|
GDK_GOBBLER = 54,
|
|
GDK_GUMBY = 56,
|
|
GDK_HAND1 = 58,
|
|
GDK_HAND2 = 60,
|
|
GDK_HEART = 62,
|
|
GDK_ICON = 64,
|
|
GDK_IRON_CROSS = 66,
|
|
GDK_LEFT_PTR = 68,
|
|
GDK_LEFT_SIDE = 70,
|
|
GDK_LEFT_TEE = 72,
|
|
GDK_LEFTBUTTON = 74,
|
|
GDK_LL_ANGLE = 76,
|
|
GDK_LR_ANGLE = 78,
|
|
GDK_MAN = 80,
|
|
GDK_MIDDLEBUTTON = 82,
|
|
GDK_MOUSE = 84,
|
|
GDK_PENCIL = 86,
|
|
GDK_PIRATE = 88,
|
|
GDK_PLUS = 90,
|
|
GDK_QUESTION_ARROW = 92,
|
|
GDK_RIGHT_PTR = 94,
|
|
GDK_RIGHT_SIDE = 96,
|
|
GDK_RIGHT_TEE = 98,
|
|
GDK_RIGHTBUTTON = 100,
|
|
GDK_RTL_LOGO = 102,
|
|
GDK_SAILBOAT = 104,
|
|
GDK_SB_DOWN_ARROW = 106,
|
|
GDK_SB_H_DOUBLE_ARROW = 108,
|
|
GDK_SB_LEFT_ARROW = 110,
|
|
GDK_SB_RIGHT_ARROW = 112,
|
|
GDK_SB_UP_ARROW = 114,
|
|
GDK_SB_V_DOUBLE_ARROW = 116,
|
|
GDK_SHUTTLE = 118,
|
|
GDK_SIZING = 120,
|
|
GDK_SPIDER = 122,
|
|
GDK_SPRAYCAN = 124,
|
|
GDK_STAR = 126,
|
|
GDK_TARGET = 128,
|
|
GDK_TCROSS = 130,
|
|
GDK_TOP_LEFT_ARROW = 132,
|
|
GDK_TOP_LEFT_CORNER = 134,
|
|
GDK_TOP_RIGHT_CORNER = 136,
|
|
GDK_TOP_SIDE = 138,
|
|
GDK_TOP_TEE = 140,
|
|
GDK_TREK = 142,
|
|
GDK_UL_ANGLE = 144,
|
|
GDK_UMBRELLA = 146,
|
|
GDK_UR_ANGLE = 148,
|
|
GDK_WATCH = 150,
|
|
GDK_XTERM = 152,
|
|
GDK_LAST_CURSOR,
|
|
GDK_BLANK_CURSOR = -2,
|
|
GDK_CURSOR_IS_PIXMAP = -1
|
|
} GdkCursorType;
|
|
|
|
/* Cursors
|
|
*/
|
|
|
|
GDK_AVAILABLE_IN_ALL
|
|
GType gdk_cursor_get_type (void) G_GNUC_CONST;
|
|
|
|
GDK_AVAILABLE_IN_ALL
|
|
GdkCursor* gdk_cursor_new_from_pixbuf (GdkDisplay *display,
|
|
GdkPixbuf *pixbuf,
|
|
gint x,
|
|
gint y);
|
|
GDK_AVAILABLE_IN_3_10
|
|
GdkCursor* gdk_cursor_new_from_surface (GdkDisplay *display,
|
|
cairo_surface_t *surface,
|
|
gdouble x,
|
|
gdouble y);
|
|
GDK_AVAILABLE_IN_ALL
|
|
GdkCursor* gdk_cursor_new_from_name (GdkDisplay *display,
|
|
const gchar *name);
|
|
GDK_AVAILABLE_IN_ALL
|
|
GdkDisplay* gdk_cursor_get_display (GdkCursor *cursor);
|
|
GDK_AVAILABLE_IN_ALL
|
|
GdkPixbuf* gdk_cursor_get_image (GdkCursor *cursor);
|
|
GDK_AVAILABLE_IN_3_10
|
|
cairo_surface_t *gdk_cursor_get_surface (GdkCursor *cursor,
|
|
gdouble *x_hot,
|
|
gdouble *y_hot);
|
|
|
|
|
|
G_END_DECLS
|
|
|
|
#endif /* __GDK_CURSOR_H__ */
|