diff options
author | Benjamin Otte <otte@redhat.com> | 2010-12-20 13:35:39 +0100 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2010-12-21 12:07:05 -0500 |
commit | 28b2d7e5da2ee5d62b74ac4d3c06214fcdaf1cdb (patch) | |
tree | c0472457bcddac43b496c95f61a0be4c067f556e /gdk/gdkcursor.c | |
parent | 3e068e921fa114d3668c53a239ac618f8fcd5110 (diff) | |
download | gtk+-28b2d7e5da2ee5d62b74ac4d3c06214fcdaf1cdb.tar.gz |
gdk: Make cursor-type a property of the cursor
Diffstat (limited to 'gdk/gdkcursor.c')
-rw-r--r-- | gdk/gdkcursor.c | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/gdk/gdkcursor.c b/gdk/gdkcursor.c index 840e8fcf62..9e27829cf7 100644 --- a/gdk/gdkcursor.c +++ b/gdk/gdkcursor.c @@ -29,6 +29,7 @@ #include "gdkcursor.h" #include "gdkcursorprivate.h" #include "gdkdisplayprivate.h" +#include "gdkintl.h" #include "gdkinternals.h" @@ -59,11 +60,66 @@ * The #GdkCursor structure represents a cursor. Its contents are private. */ +enum { + PROP_0, + PROP_CURSOR_TYPE +}; + G_DEFINE_ABSTRACT_TYPE (GdkCursor, gdk_cursor, G_TYPE_OBJECT) static void +gdk_cursor_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + GdkCursor *cursor = GDK_CURSOR (object); + + switch (prop_id) + { + case PROP_CURSOR_TYPE: + g_value_set_enum (value, cursor->type); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gdk_cursor_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GdkCursor *cursor = GDK_CURSOR (object); + + switch (prop_id) + { + case PROP_CURSOR_TYPE: + cursor->type = g_value_get_enum (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void gdk_cursor_class_init (GdkCursorClass *cursor_class) { + GObjectClass *object_class = G_OBJECT_CLASS (cursor_class); + + object_class->get_property = gdk_cursor_get_property; + object_class->set_property = gdk_cursor_set_property; + + g_object_class_install_property (object_class, + PROP_CURSOR_TYPE, + g_param_spec_enum ("cursor-type", + P_("Cursor type"), + P_("Standard cursor type"), + GDK_TYPE_CURSOR_TYPE, GDK_X_CURSOR, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); } static void |