fbd-event: Add sender property
This allows us to store the DBus sender
This commit is contained in:
+39
-1
@@ -25,6 +25,7 @@ enum {
|
||||
PROP_END_REASON,
|
||||
PROP_FEEDBACKS_ENDED,
|
||||
PROP_TIMEOUT,
|
||||
PROP_SENDER,
|
||||
PROP_LAST_PROP,
|
||||
};
|
||||
static GParamSpec *props[PROP_LAST_PROP];
|
||||
@@ -35,6 +36,7 @@ typedef struct _FbdEvent {
|
||||
guint id;
|
||||
char *app_id;
|
||||
char *event;
|
||||
char *sender;
|
||||
|
||||
int timeout;
|
||||
gboolean expired;
|
||||
@@ -118,6 +120,10 @@ fbd_event_set_property (GObject *object,
|
||||
case PROP_END_REASON:
|
||||
fbd_event_set_end_reason (self, g_value_get_enum (value));
|
||||
break;
|
||||
case PROP_SENDER:
|
||||
g_free (self->sender);
|
||||
self->sender = g_value_dup_string (value);
|
||||
break;
|
||||
case PROP_FEEDBACKS_ENDED:
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
@@ -152,6 +158,9 @@ fbd_event_get_property (GObject *object,
|
||||
case PROP_FEEDBACKS_ENDED:
|
||||
g_value_set_boolean (value, self->ended);
|
||||
break;
|
||||
case PROP_SENDER:
|
||||
g_value_set_string (value, self->sender);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
break;
|
||||
@@ -181,6 +190,7 @@ fbd_event_finalize (GObject *object)
|
||||
|
||||
g_clear_pointer (&self->app_id, g_free);
|
||||
g_clear_pointer (&self->event, g_free);
|
||||
g_clear_pointer (&self->sender, g_free);
|
||||
|
||||
G_OBJECT_CLASS (fbd_event_parent_class)->finalize (object);
|
||||
}
|
||||
@@ -245,6 +255,19 @@ fbd_event_class_init (FbdEventClass *klass)
|
||||
FBD_EVENT_END_REASON_NATURAL,
|
||||
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
|
||||
|
||||
/**
|
||||
* FbdEvent:Sender:
|
||||
*
|
||||
* The DBus name of the sender
|
||||
*/
|
||||
props[PROP_SENDER] =
|
||||
g_param_spec_string (
|
||||
"sender",
|
||||
"",
|
||||
"",
|
||||
NULL,
|
||||
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
|
||||
|
||||
g_object_class_install_properties (object_class, PROP_LAST_PROP, props);
|
||||
|
||||
/**
|
||||
@@ -267,13 +290,14 @@ fbd_event_init (FbdEvent *self)
|
||||
}
|
||||
|
||||
FbdEvent *
|
||||
fbd_event_new (int id, const char *app_id, const char *event, int timeout)
|
||||
fbd_event_new (int id, const char *app_id, const char *event, int timeout, const char *sender)
|
||||
{
|
||||
return FBD_EVENT (g_object_new (FBD_TYPE_EVENT,
|
||||
"id", id,
|
||||
"app_id", app_id,
|
||||
"event", event,
|
||||
"timeout", timeout,
|
||||
"sender", sender,
|
||||
NULL));
|
||||
}
|
||||
|
||||
@@ -447,3 +471,17 @@ fbd_event_get_end_reason (FbdEvent *self)
|
||||
|
||||
return self->end_reason;
|
||||
}
|
||||
|
||||
/**
|
||||
* fbd_event_get_sender:
|
||||
* @self: The Event
|
||||
*
|
||||
* Returns: The DBus sender that triggered the event.
|
||||
*/
|
||||
const char *
|
||||
fbd_event_get_sender (FbdEvent *self)
|
||||
{
|
||||
g_return_val_if_fail (FBD_IS_EVENT (self), FBD_EVENT_END_REASON_NATURAL);
|
||||
|
||||
return self->sender;
|
||||
}
|
||||
|
||||
+2
-1
@@ -33,7 +33,7 @@ typedef enum _FbdEventTimeout {
|
||||
|
||||
G_DECLARE_FINAL_TYPE (FbdEvent, fbd_event, FBD, EVENT, GObject);
|
||||
|
||||
FbdEvent *fbd_event_new (gint id, const char *app_id, const char *event, int timeout);
|
||||
FbdEvent *fbd_event_new (gint id, const char *app_id, const char *event, int timeout, const char *sender);
|
||||
const char *fbd_event_get_event (FbdEvent *event);
|
||||
const char *fbd_event_get_app_id (FbdEvent *event);
|
||||
guint fbd_event_get_id (FbdEvent *event);
|
||||
@@ -48,5 +48,6 @@ int fbd_event_remove_feedback (FbdEvent *self,
|
||||
void fbd_event_run_feedbacks (FbdEvent *self);
|
||||
void fbd_event_end_feedbacks (FbdEvent *self);
|
||||
gboolean fbd_event_get_feedbacks_ended (FbdEvent *self);
|
||||
const char *fbd_event_get_sender (FbdEvent *self);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
Reference in New Issue
Block a user