From 3fc5dff1de2389211bae97ba54db3c1370dbab0c Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Thu, 11 Jun 2009 10:20:46 -0500 Subject: Adding in the basic (generated) framework for the status provider object --- src/status-provider.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/status-provider.h (limited to 'src/status-provider.h') diff --git a/src/status-provider.h b/src/status-provider.h new file mode 100644 index 0000000..7d36f02 --- /dev/null +++ b/src/status-provider.h @@ -0,0 +1,31 @@ +#ifndef __STATUS_PROVIDER_H__ +#define __STATUS_PROVIDER_H__ + +#include +#include + +G_BEGIN_DECLS + +#define STATUS_PROVIDER_TYPE (status_provider_get_type ()) +#define STATUS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), STATUS_PROVIDER_TYPE, StatusProvider)) +#define STATUS_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), STATUS_PROVIDER_TYPE, StatusProviderClass)) +#define IS_STATUS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), STATUS_PROVIDER_TYPE)) +#define IS_STATUS_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), STATUS_PROVIDER_TYPE)) +#define STATUS_PROVIDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), STATUS_PROVIDER_TYPE, StatusProviderClass)) + + +typedef struct _StatusProviderClass StatusProviderClass; +struct _StatusProviderClass { + GObjectClass parent_class; +}; + +typedef struct _StatusProvider StatusProvider; +struct _StatusProvider { + GObject parent; +}; + +GType status_provider_get_type (void); + +G_END_DECLS + +#endif -- cgit v1.2.3 From 9b6dcf5696d59e6b6004b8631f4a136f5b90c1d5 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Thu, 11 Jun 2009 12:01:59 -0500 Subject: Providing the first hints at an API --- src/status-provider.h | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'src/status-provider.h') diff --git a/src/status-provider.h b/src/status-provider.h index 7d36f02..bbc86f6 100644 --- a/src/status-provider.h +++ b/src/status-provider.h @@ -13,19 +13,32 @@ G_BEGIN_DECLS #define IS_STATUS_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), STATUS_PROVIDER_TYPE)) #define STATUS_PROVIDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), STATUS_PROVIDER_TYPE, StatusProviderClass)) - -typedef struct _StatusProviderClass StatusProviderClass; -struct _StatusProviderClass { - GObjectClass parent_class; -}; +#define STATUS_PROVIDER_SIGNAL_STATUS_CHANGED "status-changed" typedef struct _StatusProvider StatusProvider; struct _StatusProvider { GObject parent; }; +typedef struct _StatusProviderClass StatusProviderClass; +struct _StatusProviderClass { + /* Signals */ + void (*status_changed) (guint newstatus); + + /* Virtual Functions */ + void (*set_status) (StatusProvider * sp, guint newstatus); + guint (*get_status) (StatusProvider * sp); + + GObjectClass parent_class; +}; + GType status_provider_get_type (void); +void status_provider_set_status (StatusProvider * sp, guint status); +guint status_provider_get_status (StatusProvider * sp); + +void status_provider_emit_status_changed (StatusProvider * sp, guint newstatus); + G_END_DECLS #endif -- cgit v1.2.3 From bac4397f4f402d3588b9fb6153bab8e6f320f8b7 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Thu, 11 Jun 2009 12:06:09 -0500 Subject: Moving the enum into the provider object and changing the name everywhere. --- src/status-provider.h | 24 ++++++++++++++++++------ src/status-service.c | 44 +++++++++++++++++--------------------------- 2 files changed, 35 insertions(+), 33 deletions(-) (limited to 'src/status-provider.h') diff --git a/src/status-provider.h b/src/status-provider.h index bbc86f6..b20f4f0 100644 --- a/src/status-provider.h +++ b/src/status-provider.h @@ -13,6 +13,18 @@ G_BEGIN_DECLS #define IS_STATUS_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), STATUS_PROVIDER_TYPE)) #define STATUS_PROVIDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), STATUS_PROVIDER_TYPE, StatusProviderClass)) +typedef enum +{ + STATUS_PROVIDER_STATUS_ONLINE, + STATUS_PROVIDER_STATUS_AWAY, + STATUS_PROVIDER_STATUS_DND, + STATUS_PROVIDER_STATUS_INVISIBLE, + STATUS_PROVIDER_STATUS_OFFLINE, + /* Leave as last */ + STATUS_PROVIDER_STATUS_LAST +} +StatusProviderStatus; + #define STATUS_PROVIDER_SIGNAL_STATUS_CHANGED "status-changed" typedef struct _StatusProvider StatusProvider; @@ -23,21 +35,21 @@ struct _StatusProvider { typedef struct _StatusProviderClass StatusProviderClass; struct _StatusProviderClass { /* Signals */ - void (*status_changed) (guint newstatus); + void (*status_changed) (StatusProviderStatus newstatus); /* Virtual Functions */ - void (*set_status) (StatusProvider * sp, guint newstatus); - guint (*get_status) (StatusProvider * sp); + void (*set_status) (StatusProvider * sp, StatusProviderStatus newstatus); + StatusProviderStatus (*get_status) (StatusProvider * sp); GObjectClass parent_class; }; GType status_provider_get_type (void); -void status_provider_set_status (StatusProvider * sp, guint status); -guint status_provider_get_status (StatusProvider * sp); +void status_provider_set_status (StatusProvider * sp, StatusProviderStatus status); +StatusProviderStatus status_provider_get_status (StatusProvider * sp); -void status_provider_emit_status_changed (StatusProvider * sp, guint newstatus); +void status_provider_emit_status_changed (StatusProvider * sp, StatusProviderStatus newstatus); G_END_DECLS diff --git a/src/status-service.c b/src/status-service.c index cd131a4..e839b16 100644 --- a/src/status-service.c +++ b/src/status-service.c @@ -9,32 +9,22 @@ #include "dbus-shared-names.h" -typedef enum -{ - STATUS_SERVICE_STATUS_ONLINE, - STATUS_SERVICE_STATUS_AWAY, - STATUS_SERVICE_STATUS_DND, - STATUS_SERVICE_STATUS_INVISIBLE, - STATUS_SERVICE_STATUS_OFFLINE, - /* Leave as last */ - STATUS_SERVICE_STATUS_LAST -} -StatusServiceStatus; - -static const gchar * status_strings [STATUS_SERVICE_STATUS_LAST] = { - /* STATUS_SERVICE_STATUS_ONLINE, */ N_("Available"), - /* STATUS_SERVICE_STATUS_AWAY, */ N_("Away"), - /* STATUS_SERVICE_STATUS_DND */ N_("Busy"), - /* STATUS_SERVICE_STATUS_INVISIBLE */ N_("Invisible"), - /* STATUS_SERVICE_STATUS_OFFLINE, */ N_("Offline") +#include "status-provider.h" + +static const gchar * status_strings [STATUS_PROVIDER_STATUS_LAST] = { + /* STATUS_PROVIDER_STATUS_ONLINE, */ N_("Available"), + /* STATUS_PROVIDER_STATUS_AWAY, */ N_("Away"), + /* STATUS_PROVIDER_STATUS_DND */ N_("Busy"), + /* STATUS_PROVIDER_STATUS_INVISIBLE */ N_("Invisible"), + /* STATUS_PROVIDER_STATUS_OFFLINE, */ N_("Offline") }; -static const gchar * status_icons[STATUS_SERVICE_STATUS_LAST] = { - /* STATUS_SERVICE_STATUS_ONLINE, */ "user-online", - /* STATUS_SERVICE_STATUS_AWAY, */ "user-away", - /* STATUS_SERVICE_STATUS_DND, */ "user-busy", - /* STATUS_SERVICE_STATUS_INVISIBLE, */ "user-invisible", - /* STATUS_SERVICE_STATUS_OFFLINE */ "user-offline" +static const gchar * status_icons[STATUS_PROVIDER_STATUS_LAST] = { + /* STATUS_PROVIDER_STATUS_ONLINE, */ "user-online", + /* STATUS_PROVIDER_STATUS_AWAY, */ "user-away", + /* STATUS_PROVIDER_STATUS_DND, */ "user-busy", + /* STATUS_PROVIDER_STATUS_INVISIBLE, */ "user-invisible", + /* STATUS_PROVIDER_STATUS_OFFLINE */ "user-offline" }; @@ -44,7 +34,7 @@ static GMainLoop * mainloop = NULL; static void menu_click (DbusmenuMenuitem * mi, gpointer data) { - StatusServiceStatus stat = (StatusServiceStatus)GPOINTER_TO_INT(data); + StatusProviderStatus status = (StatusProviderStatus)GPOINTER_TO_INT(data); } @@ -54,8 +44,8 @@ build_menu (gpointer data) DbusmenuMenuitem * root = DBUSMENU_MENUITEM(data); g_return_val_if_fail(root != NULL, FALSE); - StatusServiceStatus i; - for (i = STATUS_SERVICE_STATUS_ONLINE; i < STATUS_SERVICE_STATUS_LAST; i++) { + StatusProviderStatus i; + for (i = STATUS_PROVIDER_STATUS_ONLINE; i < STATUS_PROVIDER_STATUS_LAST; i++) { DbusmenuMenuitem * mi = dbusmenu_menuitem_new(); dbusmenu_menuitem_property_set(mi, "label", _(status_strings[i])); -- cgit v1.2.3 From b89d8f45e6ee34237c4adc12143b97e9afb23094 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Thu, 11 Jun 2009 21:12:17 -0500 Subject: Oops, what a mess up. But this sure makes things unhappy. Nasty to debug segfault. --- src/status-provider.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/status-provider.h') diff --git a/src/status-provider.h b/src/status-provider.h index b20f4f0..87a2ea3 100644 --- a/src/status-provider.h +++ b/src/status-provider.h @@ -34,14 +34,14 @@ struct _StatusProvider { typedef struct _StatusProviderClass StatusProviderClass; struct _StatusProviderClass { + GObjectClass parent_class; + /* Signals */ void (*status_changed) (StatusProviderStatus newstatus); /* Virtual Functions */ void (*set_status) (StatusProvider * sp, StatusProviderStatus newstatus); StatusProviderStatus (*get_status) (StatusProvider * sp); - - GObjectClass parent_class; }; GType status_provider_get_type (void); -- cgit v1.2.3