aboutsummaryrefslogtreecommitdiff
path: root/tests/dummy-indicator-signaler.c
diff options
context:
space:
mode:
authorTed Gould <ted@canonical.com>2009-11-04 10:55:48 -0600
committerTed Gould <ted@canonical.com>2009-11-04 10:55:48 -0600
commit8033011194d1063ca6cb16ec99e00e6ade2fcc42 (patch)
treef5dfa7c9d856300a6233f4577694e59b341bf419 /tests/dummy-indicator-signaler.c
parentdb2a2391c759a2b8a17f4c661cc7e62e6c1d1495 (diff)
downloadlibayatana-indicator-8033011194d1063ca6cb16ec99e00e6ade2fcc42.tar.gz
libayatana-indicator-8033011194d1063ca6cb16ec99e00e6ade2fcc42.tar.bz2
libayatana-indicator-8033011194d1063ca6cb16ec99e00e6ade2fcc42.zip
Building a dummy indicator that signals.
Diffstat (limited to 'tests/dummy-indicator-signaler.c')
-rw-r--r--tests/dummy-indicator-signaler.c109
1 files changed, 109 insertions, 0 deletions
diff --git a/tests/dummy-indicator-signaler.c b/tests/dummy-indicator-signaler.c
new file mode 100644
index 0000000..b88cea9
--- /dev/null
+++ b/tests/dummy-indicator-signaler.c
@@ -0,0 +1,109 @@
+#include <glib.h>
+#include <glib-object.h>
+
+#include "libindicator/indicator.h"
+#include "libindicator/indicator-object.h"
+
+#define DUMMY_INDICATOR_SIGNALER_TYPE (dummy_indicator_signaler_get_type ())
+#define DUMMY_INDICATOR_SIGNALER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DUMMY_INDICATOR_SIGNALER_TYPE, DummyIndicatorSignaler))
+#define DUMMY_INDICATOR_SIGNALER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DUMMY_INDICATOR_SIGNALER_TYPE, DummyIndicatorSignalerClass))
+#define IS_DUMMY_INDICATOR_SIGNALER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DUMMY_INDICATOR_SIGNALER_TYPE))
+#define IS_DUMMY_INDICATOR_SIGNALER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DUMMY_INDICATOR_SIGNALER_TYPE))
+#define DUMMY_INDICATOR_SIGNALER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DUMMY_INDICATOR_SIGNALER_TYPE, DummyIndicatorSignalerClass))
+
+typedef struct _DummyIndicatorSignaler DummyIndicatorSignaler;
+typedef struct _DummyIndicatorSignalerClass DummyIndicatorSignalerClass;
+
+struct _DummyIndicatorSignalerClass {
+ IndicatorObjectClass parent_class;
+};
+
+struct _DummyIndicatorSignaler {
+ IndicatorObject parent;
+};
+
+GType dummy_indicator_signaler_get_type (void);
+
+INDICATOR_SET_VERSION
+INDICATOR_SET_TYPE(DUMMY_INDICATOR_SIGNALER_TYPE)
+
+GtkLabel *
+get_label (IndicatorObject * io)
+{
+ return GTK_LABEL(gtk_label_new("Signaler Item"));
+}
+
+GtkImage *
+get_icon (IndicatorObject * io)
+{
+ return GTK_IMAGE(gtk_image_new());
+}
+
+GtkMenu *
+get_menu (IndicatorObject * io)
+{
+ GtkMenu * main_menu = GTK_MENU(gtk_menu_new());
+ GtkWidget * loading_item = gtk_menu_item_new_with_label("Loading...");
+ gtk_menu_shell_append(GTK_MENU_SHELL(main_menu), loading_item);
+ gtk_widget_show(GTK_WIDGET(loading_item));
+
+ return main_menu;
+}
+
+static void dummy_indicator_signaler_class_init (DummyIndicatorSignalerClass *klass);
+static void dummy_indicator_signaler_init (DummyIndicatorSignaler *self);
+static void dummy_indicator_signaler_dispose (GObject *object);
+static void dummy_indicator_signaler_finalize (GObject *object);
+
+G_DEFINE_TYPE (DummyIndicatorSignaler, dummy_indicator_signaler, INDICATOR_OBJECT_TYPE);
+
+static void
+dummy_indicator_signaler_class_init (DummyIndicatorSignalerClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->dispose = dummy_indicator_signaler_dispose;
+ object_class->finalize = dummy_indicator_signaler_finalize;
+
+ IndicatorObjectClass * io_class = INDICATOR_OBJECT_CLASS(klass);
+
+ io_class->get_label = get_label;
+ io_class->get_image = get_icon;
+ io_class->get_menu = get_menu;
+
+ return;
+}
+
+static gboolean
+idle_signal (gpointer data)
+{
+ DummyIndicatorSignaler * self = DUMMY_INDICATOR_SIGNALER(data);
+
+ g_signal_emit(G_OBJECT(self), INDICATOR_OBJECT_SIGNAL_ENTRY_ADDED_ID, 0, (gpointer)5, TRUE);
+ g_signal_emit(G_OBJECT(self), INDICATOR_OBJECT_SIGNAL_ENTRY_REMOVED_ID, 0, (gpointer)5, TRUE);
+
+ return FALSE; /* Don't queue again */
+}
+
+static void
+dummy_indicator_signaler_init (DummyIndicatorSignaler *self)
+{
+ g_idle_add(idle_signal, self);
+ return;
+}
+
+static void
+dummy_indicator_signaler_dispose (GObject *object)
+{
+
+ G_OBJECT_CLASS (dummy_indicator_signaler_parent_class)->dispose (object);
+ return;
+}
+
+static void
+dummy_indicator_signaler_finalize (GObject *object)
+{
+
+ G_OBJECT_CLASS (dummy_indicator_signaler_parent_class)->finalize (object);
+ return;
+}