aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libindicate/indicator.c30
-rw-r--r--libindicate/indicator.h5
-rw-r--r--libindicate/server.h3
3 files changed, 36 insertions, 2 deletions
diff --git a/libindicate/indicator.c b/libindicate/indicator.c
index 76eb616..92712bd 100644
--- a/libindicate/indicator.c
+++ b/libindicate/indicator.c
@@ -204,6 +204,36 @@ indicate_indicator_new (void)
}
/**
+ indicate_indicator_new_with_server:
+ @server: The server that should be associated with this indicator.
+
+ Builds a new indicator object using g_object_new() and sets
+ the server to the specified server. Also, adds a reference
+ to the server.
+
+ Return value: A pointer to a new #IndicateIndicator object.
+*/
+IndicateIndicator *
+indicate_indicator_new_with_server (IndicateServer * server)
+{
+ g_return_val_if_fail(server != NULL, NULL);
+
+ IndicateIndicator * indicator = g_object_new(INDICATE_TYPE_INDICATOR, NULL);
+
+ IndicateIndicatorPrivate * priv = INDICATE_INDICATOR_GET_PRIVATE(indicator);
+ if (priv->server != NULL) {
+ g_object_unref(priv->server);
+ priv->server = NULL;
+ }
+
+ priv->server = server;
+ g_object_ref(priv->server);
+
+ return indicator;
+}
+
+
+/**
indicate_indicator_show:
@indicator: a #IndicateIndicator to act on
diff --git a/libindicate/indicator.h b/libindicate/indicator.h
index 3e2a803..118c6c0 100644
--- a/libindicate/indicator.h
+++ b/libindicate/indicator.h
@@ -68,6 +68,8 @@ struct _IndicateIndicator {
GObject parent;
};
+#include "server.h"
+
/**
IndicateIndicatorClass:
@parent_class: Parent class #GObjectClass.
@@ -109,7 +111,9 @@ struct _IndicateIndicatorClass {
GType indicate_indicator_get_type(void) G_GNUC_CONST;
+/* New Indicator Functions */
IndicateIndicator * indicate_indicator_new (void);
+IndicateIndicator * indicate_indicator_new_with_server (IndicateServer * server);
/* Show and hide this indicator */
void indicate_indicator_show (IndicateIndicator * indicator);
@@ -167,4 +171,3 @@ GPtrArray * indicate_indicator_list_properties (IndicateIndicator * indicator);
G_END_DECLS
#endif /* INDICATE_INDICATOR_H_INCLUDED__ */
-
diff --git a/libindicate/server.h b/libindicate/server.h
index ef938c3..cff76c4 100644
--- a/libindicate/server.h
+++ b/libindicate/server.h
@@ -33,7 +33,6 @@ License version 3 and version 2.1 along with this program. If not, see
#include <glib.h>
#include <glib-object.h>
-#include "indicator.h"
#include "interests.h"
G_BEGIN_DECLS
@@ -72,6 +71,8 @@ struct _IndicateServer {
GObject parent;
};
+#include "indicator.h"
+
/**
IndicateServerClass:
@parent: Parent Class