aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/example-service.xml4
-rw-r--r--src/indicator-example.c377
-rw-r--r--src/settings-shared.h2
3 files changed, 187 insertions, 196 deletions
diff --git a/src/example-service.xml b/src/example-service.xml
index ed57fe0..6f19914 100644
--- a/src/example-service.xml
+++ b/src/example-service.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<node name="/">
- <interface name="com.example.indicator.example.service">
+ <interface name="com.example.indicator.example.service">
<!-- Methods -->
<!-- Signals -->
- </interface>
+ </interface>
</node>
diff --git a/src/indicator-example.c b/src/indicator-example.c
index 025e2d9..abfa063 100644
--- a/src/indicator-example.c
+++ b/src/indicator-example.c
@@ -48,7 +48,6 @@ with this program. If not, see <http://www.gnu.org/licenses/>.
#include "dbus-shared.h"
#include "settings-shared.h"
-
#define INDICATOR_EXAMPLE_TYPE (indicator_example_get_type ())
#define INDICATOR_EXAMPLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), INDICATOR_EXAMPLE_TYPE, IndicatorExample))
#define INDICATOR_EXAMPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), INDICATOR_EXAMPLE_TYPE, IndicatorExampleClass))
@@ -61,51 +60,51 @@ typedef struct _IndicatorExampleClass IndicatorExampleClass;
typedef struct _IndicatorExamplePrivate IndicatorExamplePrivate;
struct _IndicatorExampleClass {
- IndicatorObjectClass parent_class;
+ IndicatorObjectClass parent_class;
};
struct _IndicatorExample {
- IndicatorObject parent;
- IndicatorExamplePrivate * priv;
+ IndicatorObject parent;
+ IndicatorExamplePrivate *priv;
};
struct _IndicatorExamplePrivate {
- GtkLabel * label;
+ GtkLabel *label;
- IndicatorServiceManager * sm;
- DbusmenuGtkMenu * menu;
+ IndicatorServiceManager *sm;
+ DbusmenuGtkMenu *menu;
- GCancellable * service_proxy_cancel;
- GDBusProxy * service_proxy;
+ GCancellable *service_proxy_cancel;
+ GDBusProxy *service_proxy;
- GtkSizeGroup * indicator_right_group;
+ GtkSizeGroup *indicator_right_group;
};
typedef struct _indicator_item_t indicator_item_t;
struct _indicator_item_t {
- IndicatorExample * self;
- DbusmenuMenuitem * mi;
- GtkWidget * gmi;
- GtkWidget * icon;
- GtkWidget * label;
- GtkWidget * right;
+ IndicatorExample *self;
+ DbusmenuMenuitem *mi;
+ GtkWidget *gmi;
+ GtkWidget *icon;
+ GtkWidget *label;
+ GtkWidget *right;
};
#define INDICATOR_EXAMPLE_GET_PRIVATE(o) \
(G_TYPE_INSTANCE_GET_PRIVATE ((o), INDICATOR_EXAMPLE_TYPE, IndicatorExamplePrivate))
-GType indicator_example_get_type (void);
+GType indicator_example_get_type(void);
-static void indicator_example_class_init (IndicatorExampleClass *klass);
-static void indicator_example_init (IndicatorExample *self);
-static void indicator_example_dispose (GObject *object);
-static void indicator_example_finalize (GObject *object);
-static GtkLabel * get_label (IndicatorObject * io);
-static GtkMenu * get_menu (IndicatorObject * io);
-static const gchar * get_accessible_desc (IndicatorObject * io);
-static void update_label (IndicatorExample * io, GDateTime ** example);
-static void receive_signal (GDBusProxy * proxy, gchar * sender_name, gchar * signal_name, GVariant * parameters, gpointer user_data);
-static void service_proxy_cb (GObject * object, GAsyncResult * res, gpointer user_data);
+static void indicator_example_class_init(IndicatorExampleClass *klass);
+static void indicator_example_init(IndicatorExample *self);
+static void indicator_example_dispose(GObject *object);
+static void indicator_example_finalize(GObject *object);
+static GtkLabel *get_label(IndicatorObject *io);
+static GtkMenu *get_menu(IndicatorObject *io);
+static const gchar *get_accessible_desc(IndicatorObject *io);
+static void update_label(IndicatorExample *io);
+static void receive_signal(GDBusProxy *proxy, gchar *sender_name, gchar *signal_name, GVariant *parameters, gpointer user_data);
+static void service_proxy_cb(GObject *object, GAsyncResult *res, gpointer user_data);
/* Indicator Module Config */
INDICATOR_SET_VERSION
@@ -114,268 +113,260 @@ INDICATOR_SET_TYPE(INDICATOR_EXAMPLE_TYPE)
G_DEFINE_TYPE (IndicatorExample, indicator_example, INDICATOR_OBJECT_TYPE);
static void
-indicator_example_class_init (IndicatorExampleClass *klass)
+indicator_example_class_init(IndicatorExampleClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
- g_type_class_add_private (klass, sizeof (IndicatorExamplePrivate));
+ g_type_class_add_private(klass, sizeof(IndicatorExamplePrivate));
- object_class->dispose = indicator_example_dispose;
- object_class->finalize = indicator_example_finalize;
+ object_class->dispose = indicator_example_dispose;
+ object_class->finalize = indicator_example_finalize;
- IndicatorObjectClass * io_class = INDICATOR_OBJECT_CLASS(klass);
+ IndicatorObjectClass *io_class = INDICATOR_OBJECT_CLASS(klass);
- io_class->get_label = get_label;
- io_class->get_menu = get_menu;
- io_class->get_accessible_desc = get_accessible_desc;
+ io_class->get_label = get_label;
+ io_class->get_menu = get_menu;
+ io_class->get_accessible_desc = get_accessible_desc;
- return;
+ return;
}
static void
-menu_visible_notfy_cb(GtkWidget * menu, G_GNUC_UNUSED GParamSpec *pspec, gpointer user_data)
+menu_visible_notify_cb(GtkWidget *menu, G_GNUC_UNUSED GParamSpec *pspec, gpointer user_data)
{
- IndicatorExample * self = INDICATOR_EXAMPLE(user_data);
- g_debug("notify visible signal received");
-
- // we should only react if we're currently visible
- gboolean visible;
- g_object_get(G_OBJECT(menu), "visible", &visible, NULL);
- if (visible) return;
- g_debug("notify visible menu hidden");
+ IndicatorExample *self = INDICATOR_EXAMPLE(user_data);
+ g_debug("notify visible signal received");
+
+ // we should only react if we're currently visible
+ gboolean visible;
+ g_object_get(G_OBJECT(menu), "visible", &visible, NULL);
+ if (visible) return;
+ g_debug("notify visible menu hidden");
}
static void
-indicator_example_init (IndicatorExample *self)
+indicator_example_init(IndicatorExample *self)
{
- self->priv = INDICATOR_EXAMPLE_GET_PRIVATE(self);
+ self->priv = INDICATOR_EXAMPLE_GET_PRIVATE(self);
+
+ self->priv->label = NULL;
- self->priv->label = NULL;
+ self->priv->service_proxy = NULL;
- self->priv->service_proxy = NULL;
+ self->priv->sm = NULL;
+ self->priv->menu = NULL;
- self->priv->sm = NULL;
- self->priv->menu = NULL;
+ self->priv->sm = indicator_service_manager_new_version(SERVICE_NAME, SERVICE_VERSION);
+ self->priv->indicator_right_group = GTK_SIZE_GROUP(gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL));
- self->priv->sm = indicator_service_manager_new_version(SERVICE_NAME, SERVICE_VERSION);
- self->priv->indicator_right_group = GTK_SIZE_GROUP(gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL));
+ self->priv->menu = dbusmenu_gtkmenu_new(SERVICE_NAME, MENU_OBJ);
- self->priv->menu = dbusmenu_gtkmenu_new(SERVICE_NAME, MENU_OBJ);
+ g_signal_connect(self->priv->menu, "notify::visible", G_CALLBACK(menu_visible_notify_cb), self);
- g_signal_connect(self->priv->menu, "notify::visible", G_CALLBACK(menu_visible_notfy_cb), self);
-
- DbusmenuGtkClient *client = dbusmenu_gtkmenu_get_client(self->priv->menu);
+ DbusmenuGtkClient *client = dbusmenu_gtkmenu_get_client(self->priv->menu);
- self->priv->service_proxy_cancel = g_cancellable_new();
+ self->priv->service_proxy_cancel = g_cancellable_new();
- g_dbus_proxy_new_for_bus (G_BUS_TYPE_SESSION,
- G_DBUS_PROXY_FLAGS_NONE,
- NULL,
- SERVICE_NAME,
- SERVICE_OBJ,
- SERVICE_IFACE,
- self->priv->service_proxy_cancel,
- service_proxy_cb,
- self);
+ g_dbus_proxy_new_for_bus(G_BUS_TYPE_SESSION,
+ G_DBUS_PROXY_FLAGS_NONE,
+ NULL,
+ SERVICE_NAME,
+ SERVICE_OBJ,
+ SERVICE_IFACE,
+ self->priv->service_proxy_cancel,
+ service_proxy_cb,
+ self);
- return;
+ return;
}
/* Callback from trying to create the proxy for the serivce, this
could include starting the service. Sometime it'll fail and
we'll try to start that dang service again! */
static void
-service_proxy_cb (GObject * object, GAsyncResult * res, gpointer user_data)
+service_proxy_cb(GObject *object, GAsyncResult *res, gpointer user_data)
{
- GError * error = NULL;
+ GError *error = NULL;
- IndicatorExample * self = INDICATOR_EXAMPLE(user_data);
- g_return_if_fail(self != NULL);
+ IndicatorExample *self = INDICATOR_EXAMPLE(user_data);
+ g_return_if_fail(self != NULL);
- GDBusProxy * proxy = g_dbus_proxy_new_for_bus_finish(res, &error);
+ GDBusProxy *proxy = g_dbus_proxy_new_for_bus_finish(res, &error);
- IndicatorExamplePrivate * priv = INDICATOR_EXAMPLE_GET_PRIVATE(self);
+ IndicatorExamplePrivate *priv = INDICATOR_EXAMPLE_GET_PRIVATE(self);
- if (priv->service_proxy_cancel != NULL) {
- g_object_unref(priv->service_proxy_cancel);
- priv->service_proxy_cancel = NULL;
- }
+ if(priv->service_proxy_cancel != NULL) {
+ g_object_unref(priv->service_proxy_cancel);
+ priv->service_proxy_cancel = NULL;
+ }
- if (error != NULL) {
- g_warning("Could not grab DBus proxy for %s: %s", SERVICE_NAME, error->message);
- g_error_free(error);
- return;
- }
+ if(error != NULL) {
+ g_warning("Could not grab DBus proxy for %s: %s", SERVICE_NAME, error->message);
+ g_error_free(error);
+ return;
+ }
- /* Okay, we're good to grab the proxy at this point, we're
- sure that it's ours. */
- priv->service_proxy = proxy;
+ /* Okay, we're good to grab the proxy at this point, we're
+ sure that it's ours. */
+ priv->service_proxy = proxy;
- g_signal_connect(proxy, "g-signal", G_CALLBACK(receive_signal), self);
+ g_signal_connect(proxy, "g-signal", G_CALLBACK(receive_signal), self);
- return;
+ return;
}
static void
-indicator_example_dispose (GObject *object)
+indicator_example_dispose(GObject *object)
{
- IndicatorExample * self = INDICATOR_EXAMPLE(object);
-
- if (self->priv->label != NULL) {
- g_object_unref(self->priv->label);
- self->priv->label = NULL;
- }
-
- if (self->priv->menu != NULL) {
- g_object_unref(G_OBJECT(self->priv->menu));
- self->priv->menu = NULL;
- }
-
- if (self->priv->sm != NULL) {
- g_object_unref(G_OBJECT(self->priv->sm));
- self->priv->sm = NULL;
- }
-
- if (self->priv->service_proxy != NULL) {
- g_object_unref(self->priv->service_proxy);
- self->priv->service_proxy = NULL;
- }
-
- if (self->priv->indicator_right_group != NULL) {
- g_object_unref(G_OBJECT(self->priv->indicator_right_group));
- self->priv->indicator_right_group = NULL;
- }
-
- G_OBJECT_CLASS (indicator_example_parent_class)->dispose (object);
- return;
+ IndicatorExample *self = INDICATOR_EXAMPLE(object);
+
+ if(self->priv->label != NULL) {
+ g_object_unref(self->priv->label);
+ self->priv->label = NULL;
+ }
+
+ if(self->priv->menu != NULL) {
+ g_object_unref(G_OBJECT(self->priv->menu));
+ self->priv->menu = NULL;
+ }
+
+ if(self->priv->sm != NULL) {
+ g_object_unref(G_OBJECT(self->priv->sm));
+ self->priv->sm = NULL;
+ }
+
+ if(self->priv->service_proxy != NULL) {
+ g_object_unref(self->priv->service_proxy);
+ self->priv->service_proxy = NULL;
+ }
+
+ if(self->priv->indicator_right_group != NULL) {
+ g_object_unref(G_OBJECT(self->priv->indicator_right_group));
+ self->priv->indicator_right_group = NULL;
+ }
+
+ G_OBJECT_CLASS (indicator_example_parent_class)->dispose (object);
+ return;
}
static void
-indicator_example_finalize (GObject *object)
+indicator_example_finalize(GObject *object)
{
- IndicatorExample * self = INDICATOR_EXAMPLE(object);
+ IndicatorExample *self = INDICATOR_EXAMPLE(object);
- G_OBJECT_CLASS (indicator_example_parent_class)->finalize (object);
- return;
+ G_OBJECT_CLASS (indicator_example_parent_class)->finalize (object);
+ return;
}
/* Updates the accessible description */
static void
-update_accessible_description (IndicatorExample * io)
+update_accessible_description(IndicatorExample *io)
{
- GList * entries = indicator_object_get_entries(INDICATOR_OBJECT(io));
- IndicatorObjectEntry * entry = (IndicatorObjectEntry *)entries->data;
+ GList *entries = indicator_object_get_entries(INDICATOR_OBJECT(io));
+ IndicatorObjectEntry *entry = (IndicatorObjectEntry *)entries->data;
- entry->accessible_desc = get_accessible_desc(INDICATOR_OBJECT(io));
+ entry->accessible_desc = get_accessible_desc(INDICATOR_OBJECT(io));
- g_signal_emit(G_OBJECT(io),
- INDICATOR_OBJECT_SIGNAL_ACCESSIBLE_DESC_UPDATE_ID,
- 0,
- entry,
- TRUE);
+ g_signal_emit(G_OBJECT(io),
+ INDICATOR_OBJECT_SIGNAL_ACCESSIBLE_DESC_UPDATE_ID,
+ 0,
+ entry,
+ TRUE);
- g_list_free(entries);
+ g_list_free(entries);
- return;
+ return;
}
-/* Updates the label to be the current time. */
+/* Updates the label */
static void
-update_label (IndicatorExample * io, GDateTime ** example)
+update_label(IndicatorExample *io)
{
- IndicatorExample * self = INDICATOR_EXAMPLE(io);
+ IndicatorExample *self = INDICATOR_EXAMPLE(io);
- if (self->priv->label == NULL) return;
+ if(self->priv->label == NULL) return;
- gtk_label_set_text(self->priv->label, "Example");
+ gtk_label_set_text(self->priv->label, "Example");
- update_accessible_description(io);
+ update_accessible_description(io);
- return;
+ return;
}
/* Receives all signals from the service, routed to the appropriate functions */
static void
-receive_signal (GDBusProxy * proxy, gchar * sender_name, gchar * signal_name,
- GVariant * parameters, gpointer user_data)
+receive_signal(GDBusProxy *proxy, gchar *sender_name, gchar *signal_name,
+ GVariant *parameters, gpointer user_data)
{
- IndicatorExample * self = INDICATOR_EXAMPLE(user_data);
+ IndicatorExample *self = INDICATOR_EXAMPLE(user_data);
- return;
+ return;
}
/* React to the style changing, which could mean an font
update. */
static void
-style_changed (GtkWidget * widget, GtkStyle * oldstyle, gpointer data)
+style_changed(GtkWidget *widget, GtkStyle *oldstyle, gpointer data)
{
- g_debug("New style for time label");
- IndicatorExample * self = INDICATOR_EXAMPLE(data);
- update_label(self, NULL);
- return;
+ g_debug("New style for label");
+ IndicatorExample *self = INDICATOR_EXAMPLE(data);
+ update_label(self);
+ return;
}
/* Respond to changes in the screen to update the text gravity */
static void
-update_text_gravity (GtkWidget *widget, GdkScreen *previous_screen, gpointer data)
+update_text_gravity(GtkWidget *widget, GdkScreen *previous_screen, gpointer data)
{
- IndicatorExample * self = INDICATOR_EXAMPLE(data);
- if (self->priv->label == NULL) return;
-
- PangoLayout *layout;
- PangoContext *context;
+ IndicatorExample *self = INDICATOR_EXAMPLE(data);
+ if(self->priv->label == NULL) return;
- layout = gtk_label_get_layout (GTK_LABEL(self->priv->label));
- context = pango_layout_get_context(layout);
- pango_context_set_base_gravity(context, PANGO_GRAVITY_AUTO);
-}
+ PangoLayout *layout;
+ PangoContext *context;
-/* Whenever we have a property change on a DbusmenuMenuitem
- we need to be responsive to that. */
-static void
-indicator_prop_change_cb (DbusmenuMenuitem * mi, gchar * prop, GVariant *value, indicator_item_t * mi_data)
-{
- return;
+ layout = gtk_label_get_layout(GTK_LABEL(self->priv->label));
+ context = pango_layout_get_context(layout);
+ pango_context_set_base_gravity(context, PANGO_GRAVITY_AUTO);
}
/* Grabs the label. Creates it if it doesn't
exist already */
static GtkLabel *
-get_label (IndicatorObject * io)
+get_label(IndicatorObject *io)
{
- IndicatorExample * self = INDICATOR_EXAMPLE(io);
-
- /* If there's not a label, we'll build ourselves one */
- if (self->priv->label == NULL) {
- self->priv->label = GTK_LABEL(gtk_label_new("Example Init"));
- gtk_label_set_justify (GTK_LABEL(self->priv->label), GTK_JUSTIFY_CENTER);
- g_object_ref(G_OBJECT(self->priv->label));
- g_signal_connect(G_OBJECT(self->priv->label), "style-set", G_CALLBACK(style_changed), self);
- g_signal_connect(G_OBJECT(self->priv->label), "screen-changed", G_CALLBACK(update_text_gravity), self);
- update_label(self, NULL);
- gtk_widget_set_visible(GTK_WIDGET (self->priv->label), TRUE);
- }
-
- return self->priv->label;
+ IndicatorExample *self = INDICATOR_EXAMPLE(io);
+
+ /* If there's not a label, we'll build ourselves one */
+ if(self->priv->label == NULL) {
+ self->priv->label = GTK_LABEL(gtk_label_new("Example Init"));
+ gtk_label_set_justify(GTK_LABEL(self->priv->label), GTK_JUSTIFY_CENTER);
+ g_object_ref(G_OBJECT(self->priv->label));
+ g_signal_connect(G_OBJECT(self->priv->label), "style-set", G_CALLBACK(style_changed), self);
+ g_signal_connect(G_OBJECT(self->priv->label), "screen-changed", G_CALLBACK(update_text_gravity), self);
+ update_label(self);
+ gtk_widget_set_visible(GTK_WIDGET(self->priv->label), TRUE);
+ }
+
+ return self->priv->label;
}
static GtkMenu *
-get_menu (IndicatorObject * io)
+get_menu(IndicatorObject *io)
{
- IndicatorExample * self = INDICATOR_EXAMPLE(io);
+ IndicatorExample *self = INDICATOR_EXAMPLE(io);
- return GTK_MENU(self->priv->menu);
+ return GTK_MENU(self->priv->menu);
}
static const gchar *
-get_accessible_desc (IndicatorObject * io)
+get_accessible_desc(IndicatorObject *io)
{
- IndicatorExample * self = INDICATOR_EXAMPLE(io);
- const gchar * name;
-
- if (self->priv->label != NULL) {
- name = gtk_label_get_text(self->priv->label);
- return name;
- }
- return NULL;
+ IndicatorExample *self = INDICATOR_EXAMPLE(io);
+ const gchar *name;
+
+ if(self->priv->label != NULL) {
+ name = gtk_label_get_text(self->priv->label);
+ return name;
+ }
+ return NULL;
}
diff --git a/src/settings-shared.h b/src/settings-shared.h
index dff9a5e..7e74883 100644
--- a/src/settings-shared.h
+++ b/src/settings-shared.h
@@ -22,6 +22,6 @@ with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef __EXAMPLE_SETTINGS_SHARED_H__
#define __EXAMPLE_SETTINGS_SHARED_H__
-#define SETTINGS_INTERFACE "com.example.indicator.example"
+#define SETTINGS_INTERFACE "com.example.indicator.example"
#endif