network: Add a boolean 'removable' property to NetObject for future use
Also add GObject getters and setters for the other two properties.
This commit is contained in:
parent
a995cfac99
commit
298489ee16
2 changed files with 102 additions and 0 deletions
|
@ -32,6 +32,15 @@ struct _NetObjectPrivate
|
|||
{
|
||||
gchar *id;
|
||||
gchar *title;
|
||||
gboolean removable;
|
||||
};
|
||||
|
||||
enum {
|
||||
PROP_0,
|
||||
PROP_ID,
|
||||
PROP_TITLE,
|
||||
PROP_REMOVABLE,
|
||||
PROP_LAST
|
||||
};
|
||||
|
||||
enum {
|
||||
|
@ -73,6 +82,20 @@ net_object_set_id (NetObject *object, const gchar *id)
|
|||
object->priv->id = g_strdup (id);
|
||||
}
|
||||
|
||||
gboolean
|
||||
net_object_get_removable (NetObject *object)
|
||||
{
|
||||
g_return_val_if_fail (NET_IS_OBJECT (object), FALSE);
|
||||
return object->priv->removable;
|
||||
}
|
||||
|
||||
void
|
||||
net_object_set_removable (NetObject *object, gboolean removable)
|
||||
{
|
||||
g_return_if_fail (NET_IS_OBJECT (object));
|
||||
object->priv->removable = removable;
|
||||
}
|
||||
|
||||
const gchar *
|
||||
net_object_get_title (NetObject *object)
|
||||
{
|
||||
|
@ -87,6 +110,64 @@ net_object_set_title (NetObject *object, const gchar *title)
|
|||
object->priv->title = g_strdup (title);
|
||||
}
|
||||
|
||||
/**
|
||||
* net_object_get_property:
|
||||
**/
|
||||
static void
|
||||
net_object_get_property (GObject *object_,
|
||||
guint prop_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
NetObject *object = NET_OBJECT (object_);
|
||||
NetObjectPrivate *priv = object->priv;
|
||||
|
||||
switch (prop_id) {
|
||||
case PROP_ID:
|
||||
g_value_set_string (value, priv->id);
|
||||
break;
|
||||
case PROP_TITLE:
|
||||
g_value_set_string (value, priv->title);
|
||||
break;
|
||||
case PROP_REMOVABLE:
|
||||
g_value_set_boolean (value, priv->removable);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* net_object_set_property:
|
||||
**/
|
||||
static void
|
||||
net_object_set_property (GObject *object_,
|
||||
guint prop_id,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
NetObject *object = NET_OBJECT (object_);
|
||||
NetObjectPrivate *priv = object->priv;
|
||||
|
||||
switch (prop_id) {
|
||||
case PROP_ID:
|
||||
g_free (priv->id);
|
||||
priv->id = g_strdup (g_value_get_string (value));
|
||||
break;
|
||||
case PROP_TITLE:
|
||||
g_free (priv->title);
|
||||
priv->title = g_strdup (g_value_get_string (value));
|
||||
break;
|
||||
case PROP_REMOVABLE:
|
||||
priv->removable = g_value_get_boolean (value);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
net_object_finalize (GObject *object)
|
||||
{
|
||||
|
@ -102,8 +183,26 @@ net_object_finalize (GObject *object)
|
|||
static void
|
||||
net_object_class_init (NetObjectClass *klass)
|
||||
{
|
||||
GParamSpec *pspec;
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
object_class->finalize = net_object_finalize;
|
||||
object_class->get_property = net_object_get_property;
|
||||
object_class->set_property = net_object_set_property;
|
||||
|
||||
pspec = g_param_spec_string ("id", NULL, NULL,
|
||||
NULL,
|
||||
G_PARAM_READWRITE);
|
||||
g_object_class_install_property (object_class, PROP_ID, pspec);
|
||||
|
||||
pspec = g_param_spec_string ("title", NULL, NULL,
|
||||
NULL,
|
||||
G_PARAM_READWRITE);
|
||||
g_object_class_install_property (object_class, PROP_TITLE, pspec);
|
||||
|
||||
pspec = g_param_spec_boolean ("removable", NULL, NULL,
|
||||
TRUE,
|
||||
G_PARAM_READWRITE);
|
||||
g_object_class_install_property (object_class, PROP_REMOVABLE, pspec);
|
||||
|
||||
signals[SIGNAL_CHANGED] =
|
||||
g_signal_new ("changed",
|
||||
|
|
|
@ -60,6 +60,9 @@ void net_object_set_title (NetObject *object,
|
|||
const gchar *title);
|
||||
void net_object_emit_changed (NetObject *object);
|
||||
void net_object_emit_removed (NetObject *object);
|
||||
gboolean net_object_get_removable (NetObject *object);
|
||||
void net_object_set_removable (NetObject *object,
|
||||
gboolean removable);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue