diff options
-rw-r--r-- | libindicate/indicator.c | 30 | ||||
-rw-r--r-- | libindicate/indicator.h | 5 | ||||
-rw-r--r-- | libindicate/server.h | 3 |
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 |