]> Pileus Git - ~andy/gtk/blob - gdk/gdkcursor.h
stylecontext: Do invalidation on first resize container
[~andy/gtk] / gdk / gdkcursor.h
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: <inlinegraphic format="PNG" fileref="X_cursor.png"></inlinegraphic>
46  * @GDK_ARROW: <inlinegraphic format="PNG" fileref="arrow.png"></inlinegraphic>
47  * @GDK_BASED_ARROW_DOWN: <inlinegraphic format="PNG" fileref="based_arrow_down.png"></inlinegraphic>
48  * @GDK_BASED_ARROW_UP: <inlinegraphic format="PNG" fileref="based_arrow_up.png"></inlinegraphic>
49  * @GDK_BOAT: <inlinegraphic format="PNG" fileref="boat.png"></inlinegraphic>
50  * @GDK_BOGOSITY: <inlinegraphic format="PNG" fileref="bogosity.png"></inlinegraphic>
51  * @GDK_BOTTOM_LEFT_CORNER: <inlinegraphic format="PNG" fileref="bottom_left_corner.png"></inlinegraphic>
52  * @GDK_BOTTOM_RIGHT_CORNER: <inlinegraphic format="PNG" fileref="bottom_right_corner.png"></inlinegraphic>
53  * @GDK_BOTTOM_SIDE: <inlinegraphic format="PNG" fileref="bottom_side.png"></inlinegraphic>
54  * @GDK_BOTTOM_TEE: <inlinegraphic format="PNG" fileref="bottom_tee.png"></inlinegraphic>
55  * @GDK_BOX_SPIRAL: <inlinegraphic format="PNG" fileref="box_spiral.png"></inlinegraphic>
56  * @GDK_CENTER_PTR: <inlinegraphic format="PNG" fileref="center_ptr.png"></inlinegraphic>
57  * @GDK_CIRCLE: <inlinegraphic format="PNG" fileref="circle.png"></inlinegraphic>
58  * @GDK_CLOCK: <inlinegraphic format="PNG" fileref="clock.png"></inlinegraphic>
59  * @GDK_COFFEE_MUG: <inlinegraphic format="PNG" fileref="coffee_mug.png"></inlinegraphic>
60  * @GDK_CROSS: <inlinegraphic format="PNG" fileref="cross.png"></inlinegraphic>
61  * @GDK_CROSS_REVERSE: <inlinegraphic format="PNG" fileref="cross_reverse.png"></inlinegraphic>
62  * @GDK_CROSSHAIR: <inlinegraphic format="PNG" fileref="crosshair.png"></inlinegraphic>
63  * @GDK_DIAMOND_CROSS: <inlinegraphic format="PNG" fileref="diamond_cross.png"></inlinegraphic>
64  * @GDK_DOT: <inlinegraphic format="PNG" fileref="dot.png"></inlinegraphic>
65  * @GDK_DOTBOX: <inlinegraphic format="PNG" fileref="dotbox.png"></inlinegraphic>
66  * @GDK_DOUBLE_ARROW: <inlinegraphic format="PNG" fileref="double_arrow.png"></inlinegraphic>
67  * @GDK_DRAFT_LARGE: <inlinegraphic format="PNG" fileref="draft_large.png"></inlinegraphic>
68  * @GDK_DRAFT_SMALL: <inlinegraphic format="PNG" fileref="draft_small.png"></inlinegraphic>
69  * @GDK_DRAPED_BOX: <inlinegraphic format="PNG" fileref="draped_box.png"></inlinegraphic>
70  * @GDK_EXCHANGE: <inlinegraphic format="PNG" fileref="exchange.png"></inlinegraphic>
71  * @GDK_FLEUR: <inlinegraphic format="PNG" fileref="fleur.png"></inlinegraphic>
72  * @GDK_GOBBLER: <inlinegraphic format="PNG" fileref="gobbler.png"></inlinegraphic>
73  * @GDK_GUMBY: <inlinegraphic format="PNG" fileref="gumby.png"></inlinegraphic>
74  * @GDK_HAND1: <inlinegraphic format="PNG" fileref="hand1.png"></inlinegraphic>
75  * @GDK_HAND2: <inlinegraphic format="PNG" fileref="hand2.png"></inlinegraphic>
76  * @GDK_HEART: <inlinegraphic format="PNG" fileref="heart.png"></inlinegraphic>
77  * @GDK_ICON: <inlinegraphic format="PNG" fileref="icon.png"></inlinegraphic>
78  * @GDK_IRON_CROSS: <inlinegraphic format="PNG" fileref="iron_cross.png"></inlinegraphic>
79  * @GDK_LEFT_PTR: <inlinegraphic format="PNG" fileref="left_ptr.png"></inlinegraphic>
80  * @GDK_LEFT_SIDE: <inlinegraphic format="PNG" fileref="left_side.png"></inlinegraphic>
81  * @GDK_LEFT_TEE: <inlinegraphic format="PNG" fileref="left_tee.png"></inlinegraphic>
82  * @GDK_LEFTBUTTON: <inlinegraphic format="PNG" fileref="leftbutton.png"></inlinegraphic>
83  * @GDK_LL_ANGLE: <inlinegraphic format="PNG" fileref="ll_angle.png"></inlinegraphic>
84  * @GDK_LR_ANGLE: <inlinegraphic format="PNG" fileref="lr_angle.png"></inlinegraphic>
85  * @GDK_MAN: <inlinegraphic format="PNG" fileref="man.png"></inlinegraphic>
86  * @GDK_MIDDLEBUTTON: <inlinegraphic format="PNG" fileref="middlebutton.png"></inlinegraphic>
87  * @GDK_MOUSE: <inlinegraphic format="PNG" fileref="mouse.png"></inlinegraphic>
88  * @GDK_PENCIL: <inlinegraphic format="PNG" fileref="pencil.png"></inlinegraphic>
89  * @GDK_PIRATE: <inlinegraphic format="PNG" fileref="pirate.png"></inlinegraphic>
90  * @GDK_PLUS: <inlinegraphic format="PNG" fileref="plus.png"></inlinegraphic>
91  * @GDK_QUESTION_ARROW: <inlinegraphic format="PNG" fileref="question_arrow.png"></inlinegraphic>
92  * @GDK_RIGHT_PTR: <inlinegraphic format="PNG" fileref="right_ptr.png"></inlinegraphic>
93  * @GDK_RIGHT_SIDE: <inlinegraphic format="PNG" fileref="right_side.png"></inlinegraphic>
94  * @GDK_RIGHT_TEE: <inlinegraphic format="PNG" fileref="right_tee.png"></inlinegraphic>
95  * @GDK_RIGHTBUTTON: <inlinegraphic format="PNG" fileref="rightbutton.png"></inlinegraphic>
96  * @GDK_RTL_LOGO: <inlinegraphic format="PNG" fileref="rtl_logo.png"></inlinegraphic>
97  * @GDK_SAILBOAT: <inlinegraphic format="PNG" fileref="sailboat.png"></inlinegraphic>
98  * @GDK_SB_DOWN_ARROW: <inlinegraphic format="PNG" fileref="sb_down_arrow.png"></inlinegraphic>
99  * @GDK_SB_H_DOUBLE_ARROW: <inlinegraphic format="PNG" fileref="sb_h_double_arrow.png"></inlinegraphic>
100  * @GDK_SB_LEFT_ARROW: <inlinegraphic format="PNG" fileref="sb_left_arrow.png"></inlinegraphic>
101  * @GDK_SB_RIGHT_ARROW: <inlinegraphic format="PNG" fileref="sb_right_arrow.png"></inlinegraphic>
102  * @GDK_SB_UP_ARROW: <inlinegraphic format="PNG" fileref="sb_up_arrow.png"></inlinegraphic>
103  * @GDK_SB_V_DOUBLE_ARROW: <inlinegraphic format="PNG" fileref="sb_v_double_arrow.png"></inlinegraphic>
104  * @GDK_SHUTTLE: <inlinegraphic format="PNG" fileref="shuttle.png"></inlinegraphic>
105  * @GDK_SIZING: <inlinegraphic format="PNG" fileref="sizing.png"></inlinegraphic>
106  * @GDK_SPIDER: <inlinegraphic format="PNG" fileref="spider.png"></inlinegraphic>
107  * @GDK_SPRAYCAN: <inlinegraphic format="PNG" fileref="spraycan.png"></inlinegraphic>
108  * @GDK_STAR: <inlinegraphic format="PNG" fileref="star.png"></inlinegraphic>
109  * @GDK_TARGET: <inlinegraphic format="PNG" fileref="target.png"></inlinegraphic>
110  * @GDK_TCROSS: <inlinegraphic format="PNG" fileref="tcross.png"></inlinegraphic>
111  * @GDK_TOP_LEFT_ARROW: <inlinegraphic format="PNG" fileref="top_left_arrow.png"></inlinegraphic>
112  * @GDK_TOP_LEFT_CORNER: <inlinegraphic format="PNG" fileref="top_left_corner.png"></inlinegraphic>
113  * @GDK_TOP_RIGHT_CORNER: <inlinegraphic format="PNG" fileref="top_right_corner.png"></inlinegraphic>
114  * @GDK_TOP_SIDE: <inlinegraphic format="PNG" fileref="top_side.png"></inlinegraphic>
115  * @GDK_TOP_TEE: <inlinegraphic format="PNG" fileref="top_tee.png"></inlinegraphic>
116  * @GDK_TREK: <inlinegraphic format="PNG" fileref="trek.png"></inlinegraphic>
117  * @GDK_UL_ANGLE: <inlinegraphic format="PNG" fileref="ul_angle.png"></inlinegraphic>
118  * @GDK_UMBRELLA: <inlinegraphic format="PNG" fileref="umbrella.png"></inlinegraphic>
119  * @GDK_UR_ANGLE: <inlinegraphic format="PNG" fileref="ur_angle.png"></inlinegraphic>
120  * @GDK_WATCH: <inlinegraphic format="PNG" fileref="watch.png"></inlinegraphic>
121  * @GDK_XTERM: <inlinegraphic format="PNG" fileref="xterm.png"></inlinegraphic>
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  * The standard cursors available.
128  */
129 typedef enum
130 {
131   GDK_X_CURSOR            = 0,
132   GDK_ARROW               = 2,
133   GDK_BASED_ARROW_DOWN    = 4,
134   GDK_BASED_ARROW_UP      = 6,
135   GDK_BOAT                = 8,
136   GDK_BOGOSITY            = 10,
137   GDK_BOTTOM_LEFT_CORNER  = 12,
138   GDK_BOTTOM_RIGHT_CORNER = 14,
139   GDK_BOTTOM_SIDE         = 16,
140   GDK_BOTTOM_TEE          = 18,
141   GDK_BOX_SPIRAL          = 20,
142   GDK_CENTER_PTR          = 22,
143   GDK_CIRCLE              = 24,
144   GDK_CLOCK               = 26,
145   GDK_COFFEE_MUG          = 28,
146   GDK_CROSS               = 30,
147   GDK_CROSS_REVERSE       = 32,
148   GDK_CROSSHAIR           = 34,
149   GDK_DIAMOND_CROSS       = 36,
150   GDK_DOT                 = 38,
151   GDK_DOTBOX              = 40,
152   GDK_DOUBLE_ARROW        = 42,
153   GDK_DRAFT_LARGE         = 44,
154   GDK_DRAFT_SMALL         = 46,
155   GDK_DRAPED_BOX          = 48,
156   GDK_EXCHANGE            = 50,
157   GDK_FLEUR               = 52,
158   GDK_GOBBLER             = 54,
159   GDK_GUMBY               = 56,
160   GDK_HAND1               = 58,
161   GDK_HAND2               = 60,
162   GDK_HEART               = 62,
163   GDK_ICON                = 64,
164   GDK_IRON_CROSS          = 66,
165   GDK_LEFT_PTR            = 68,
166   GDK_LEFT_SIDE           = 70,
167   GDK_LEFT_TEE            = 72,
168   GDK_LEFTBUTTON          = 74,
169   GDK_LL_ANGLE            = 76,
170   GDK_LR_ANGLE            = 78,
171   GDK_MAN                 = 80,
172   GDK_MIDDLEBUTTON        = 82,
173   GDK_MOUSE               = 84,
174   GDK_PENCIL              = 86,
175   GDK_PIRATE              = 88,
176   GDK_PLUS                = 90,
177   GDK_QUESTION_ARROW      = 92,
178   GDK_RIGHT_PTR           = 94,
179   GDK_RIGHT_SIDE          = 96,
180   GDK_RIGHT_TEE           = 98,
181   GDK_RIGHTBUTTON         = 100,
182   GDK_RTL_LOGO            = 102,
183   GDK_SAILBOAT            = 104,
184   GDK_SB_DOWN_ARROW       = 106,
185   GDK_SB_H_DOUBLE_ARROW   = 108,
186   GDK_SB_LEFT_ARROW       = 110,
187   GDK_SB_RIGHT_ARROW      = 112,
188   GDK_SB_UP_ARROW         = 114,
189   GDK_SB_V_DOUBLE_ARROW   = 116,
190   GDK_SHUTTLE             = 118,
191   GDK_SIZING              = 120,
192   GDK_SPIDER              = 122,
193   GDK_SPRAYCAN            = 124,
194   GDK_STAR                = 126,
195   GDK_TARGET              = 128,
196   GDK_TCROSS              = 130,
197   GDK_TOP_LEFT_ARROW      = 132,
198   GDK_TOP_LEFT_CORNER     = 134,
199   GDK_TOP_RIGHT_CORNER    = 136,
200   GDK_TOP_SIDE            = 138,
201   GDK_TOP_TEE             = 140,
202   GDK_TREK                = 142,
203   GDK_UL_ANGLE            = 144,
204   GDK_UMBRELLA            = 146,
205   GDK_UR_ANGLE            = 148,
206   GDK_WATCH               = 150,
207   GDK_XTERM               = 152,
208   GDK_LAST_CURSOR,
209   GDK_BLANK_CURSOR        = -2,
210   GDK_CURSOR_IS_PIXMAP    = -1
211 } GdkCursorType;
212
213 /* Cursors
214  */
215
216 GType      gdk_cursor_get_type           (void) G_GNUC_CONST;
217
218 GdkCursor* gdk_cursor_new_for_display    (GdkDisplay      *display,
219                                           GdkCursorType    cursor_type);
220 #ifndef GDK_MULTIHEAD_SAFE
221 GdkCursor* gdk_cursor_new                (GdkCursorType    cursor_type);
222 #endif
223 GdkCursor* gdk_cursor_new_from_pixbuf    (GdkDisplay      *display,
224                                           GdkPixbuf       *pixbuf,
225                                           gint             x,
226                                           gint             y);
227 GdkCursor*  gdk_cursor_new_from_name     (GdkDisplay      *display,
228                                           const gchar     *name);
229 GdkDisplay* gdk_cursor_get_display       (GdkCursor       *cursor);
230 GDK_DEPRECATED_IN_3_0_FOR(g_object_ref)
231 GdkCursor * gdk_cursor_ref               (GdkCursor       *cursor);
232 GDK_DEPRECATED_IN_3_0_FOR(g_object_unref)
233 void        gdk_cursor_unref             (GdkCursor       *cursor);
234 GdkPixbuf*  gdk_cursor_get_image         (GdkCursor       *cursor);
235 GdkCursorType gdk_cursor_get_cursor_type (GdkCursor       *cursor);
236
237
238 G_END_DECLS
239
240 #endif /* __GDK_CURSOR_H__ */