[Workman-devel] [PATCH 3/4] Add state property to WorkmanObject
Daniel P. Berrange
berrange at redhat.com
Thu Feb 28 10:36:07 UTC 2013
On Wed, Feb 27, 2013 at 05:55:36PM -0600, Josh Poimboeuf wrote:
> Add the WorkmanState property to WorkmanObject. Also remove get_state()
> from the class struct since the subclasses won't override it.
> ---
> workman/workman-object.c | 21 +++++++++++++++++++--
> workman/workman-object.h | 3 ---
> 2 files changed, 19 insertions(+), 5 deletions(-)
>
> diff --git a/workman/workman-object.c b/workman/workman-object.c
> index 55aa7cf..11bf434 100644
> --- a/workman/workman-object.c
> +++ b/workman/workman-object.c
> @@ -31,12 +31,14 @@ G_DEFINE_ABSTRACT_TYPE(WorkmanObject, workman_object, G_TYPE_OBJECT);
>
> struct _WorkmanObjectPrivate {
> gchar *name;
> + WorkmanState state;
> };
>
>
> enum {
> PROP_0,
> PROP_NAME,
> + PROP_STATE,
> };
>
>
> @@ -53,6 +55,9 @@ workman_object_get_property(GObject *object,
> case PROP_NAME:
> g_value_set_string(value, self->priv->name);
> break;
> + case PROP_STATE:
> + g_value_set_uint(value, self->priv->state);
> + break;
> default:
> G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
> break;
> @@ -72,6 +77,9 @@ workman_object_set_property(GObject *object,
> case PROP_NAME:
> self->priv->name = g_value_dup_string(value);
> break;
> + case PROP_STATE:
> + self->priv->state = g_value_get_uint(value);
> + break;
> default:
> G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
> break;
> @@ -109,6 +117,16 @@ workman_object_class_init(WorkmanObjectClass *klass)
> G_PARAM_STATIC_STRINGS);
> g_object_class_install_property(g_klass, PROP_NAME, pspec);
>
> + pspec = g_param_spec_uint("state",
> + "State",
> + "The object's WorkmanState",
> + 0,
> + G_MAXUINT,
> + 0,
> + G_PARAM_READWRITE |
> + G_PARAM_CONSTRUCT_ONLY |
> + G_PARAM_STATIC_STRINGS);
> + g_object_class_install_property(g_klass, PROP_STATE, pspec);
GLib actually has a g_param_spec_enum you can use in preference
to this. It will ensure that type checking is done on the range
of values which be set.
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the Workman-devel
mailing list