| GDK Reference Manual | |||
|---|---|---|---|
| <<< Previous Page | Home | Up | Next Page >>> | 
| #include <gdk/gdk.h> struct GdkCursor; enum GdkCursorType; GdkCursor* gdk_cursor_new (GdkCursorType cursor_type); GdkCursor* gdk_cursor_new_from_pixmap (GdkPixmap *source, GdkPixmap *mask, GdkColor *fg, GdkColor *bg, gint x, gint y); void gdk_cursor_destroy (GdkCursor *cursor); | 
| typedef enum
{
#include <gdk/gdkcursors.h>
  GDK_LAST_CURSOR,
  GDK_CURSOR_IS_PIXMAP = -1
} GdkCursorType; | 
The standard cursors available.
| GdkCursor* gdk_cursor_new (GdkCursorType cursor_type); | 
Creates a new standard cursor.
| cursor_type : | the type of the cursor. | 
| Returns : | a new GdkCursor. | 
| GdkCursor* gdk_cursor_new_from_pixmap (GdkPixmap *source, GdkPixmap *mask, GdkColor *fg, GdkColor *bg, gint x, gint y); | 
Creates a new cursor from a given pixmap and mask. 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.
Example 1. Creating a custom cursor.
| /* This data is in X bitmap format, and can be created with the 'bitmap'
   utility. */
define cursor1_width 16
define cursor1_height 16
static unsigned char cursor1_bits[] = {
   0x80, 0x01, 0x40, 0x02, 0x20, 0x04, 0x10, 0x08, 0x08, 0x10, 0x04, 0x20,
   0x82, 0x41, 0x41, 0x82, 0x41, 0x82, 0x82, 0x41, 0x04, 0x20, 0x08, 0x10,
   0x10, 0x08, 0x20, 0x04, 0x40, 0x02, 0x80, 0x01};
static unsigned char cursor1mask_bits[] = {
   0x80, 0x01, 0xc0, 0x03, 0x60, 0x06, 0x30, 0x0c, 0x18, 0x18, 0x8c, 0x31,
   0xc6, 0x63, 0x63, 0xc6, 0x63, 0xc6, 0xc6, 0x63, 0x8c, 0x31, 0x18, 0x18,
   0x30, 0x0c, 0x60, 0x06, 0xc0, 0x03, 0x80, 0x01};
  GdkCursor *cursor;
  GdkPixmap *source, *mask;
  GdkColor fg = { 0, 65535, 0, 0 }; /* Red. */
  GdkColor bg = { 0, 0, 0, 65535 }; /* Blue. */
  source = gdk_bitmap_create_from_data (NULL, cursor1_bits,
					cursor1_width, cursor1_height);
  mask = gdk_bitmap_create_from_data (NULL, cursor1mask_bits,
				      cursor1_width, cursor1_height);
  cursor = gdk_cursor_new_from_pixmap (source, mask, &fg, &bg, 8, 8);
  gdk_pixmap_unref (source);
  gdk_pixmap_unref (mask);
  gdk_window_set_cursor (widget->window, cursor); | 
| source : | the pixmap specifying the cursor. | 
| mask : | the pixmap specifying the mask, which must be the same size as source. | 
| fg : | the foreground color, used for the bits in the source which are 1. The color does not have to be allocated first. | 
| bg : | the background color, used for the bits in the source which are 0. The color does not have to be allocated first. | 
| x : | the horizontal offset of the 'hotspot' of the cursor. | 
| y : | the vertical offset of the 'hotspot' of the cursor. | 
| Returns : | a new GdkCursor. |