aboutsummaryrefslogtreecommitdiff
path: root/libindicate-gtk
diff options
context:
space:
mode:
Diffstat (limited to 'libindicate-gtk')
-rw-r--r--libindicate-gtk/Makefile.am4
-rw-r--r--libindicate-gtk/indicator.c71
-rw-r--r--libindicate-gtk/indicator.h44
3 files changed, 116 insertions, 3 deletions
diff --git a/libindicate-gtk/Makefile.am b/libindicate-gtk/Makefile.am
index 0e1d08d..a6a50fa 100644
--- a/libindicate-gtk/Makefile.am
+++ b/libindicate-gtk/Makefile.am
@@ -14,10 +14,10 @@ indicate_gtk_headers = \
indicator.h
libindicate_gtkinclude_HEADERS = \
- $(indicate_headers)
+ $(indicate_gtk_headers)
libindicate_gtk_la_SOURCES = \
- $(indicate_headers) \
+ $(indicate_gtk_headers) \
indicator.c
libindicate_gtk_la_LDFLAGS = \
diff --git a/libindicate-gtk/indicator.c b/libindicate-gtk/indicator.c
index d5f07ef..a575849 100644
--- a/libindicate-gtk/indicator.c
+++ b/libindicate-gtk/indicator.c
@@ -1,5 +1,74 @@
+/*
+A library to allow applictions to provide simple indications of
+information to be displayed to users of the application through the
+interface shell.
-void var (void) {
+Copyright 2009 Canonical Ltd.
+
+Authors:
+ Ted Gould <ted@canonical.com>
+
+This program is free software: you can redistribute it and/or modify it
+under the terms of either or both of the following licenses:
+
+1) the GNU Lesser General Public License version 3, as published by the
+Free Software Foundation; and/or
+2) the GNU Lesser General Public License version 2.1, as published by
+the Free Software Foundation.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranties of
+MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
+PURPOSE. See the applicable version of the GNU Lesser General Public
+License for more details.
+
+You should have received a copy of both the GNU Lesser General Public
+License version 3 and version 2.1 along with this program. If not, see
+<http://www.gnu.org/licenses/>
+*/
+
+#include "indicator.h"
+
+/**
+ indicate_indicator_set_property_icon:
+ @indicator: a #IndicateIndicator to act on
+ @key: name of the property
+ @data: icon to set property with
+
+ This is a helper function that wraps around #indicate_indicator_set_property
+ but takes an #GdkPixbuf parameter. It then takes the @data
+ parameter, turns it into a PNG, base64 encodes it and then
+ uses that data to call #indicate_indicator_set_property.
+*/
+void
+indicate_indicator_set_property_icon (IndicateIndicator * indicator, const gchar * key, const GdkPixbuf * data)
+{
+ if (!GDK_IS_PIXBUF(data)) {
+ g_warning("Invalide GdkPixbuf");
+ return;
+ }
+
+ GError * error = NULL;
+ gchar * png_data;
+ gsize png_data_len;
+
+ if (!gdk_pixbuf_save_to_buffer((GdkPixbuf *)data, &png_data, &png_data_len, "png", &error, NULL)) {
+ if (error == NULL) {
+ g_warning("Unable to create pixbuf data stream: %d", png_data_len);
+ } else {
+ g_warning("Unable to create pixbuf data stream: %s", error->message);
+ g_error_free(error);
+ error = NULL;
+ }
+
+ return;
+ }
+
+ gchar * prop_str = g_base64_encode((guchar *)png_data, png_data_len);
+ indicate_indicator_set_property(indicator, key, prop_str);
+
+ g_free(prop_str);
+ g_free(png_data);
return;
}
diff --git a/libindicate-gtk/indicator.h b/libindicate-gtk/indicator.h
index e69de29..43e264f 100644
--- a/libindicate-gtk/indicator.h
+++ b/libindicate-gtk/indicator.h
@@ -0,0 +1,44 @@
+/*
+A library to allow applictions to provide simple indications of
+information to be displayed to users of the application through the
+interface shell.
+
+Copyright 2009 Canonical Ltd.
+
+Authors:
+ Ted Gould <ted@canonical.com>
+
+This program is free software: you can redistribute it and/or modify it
+under the terms of either or both of the following licenses:
+
+1) the GNU Lesser General Public License version 3, as published by the
+Free Software Foundation; and/or
+2) the GNU Lesser General Public License version 2.1, as published by
+the Free Software Foundation.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranties of
+MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
+PURPOSE. See the applicable version of the GNU Lesser General Public
+License for more details.
+
+You should have received a copy of both the GNU Lesser General Public
+License version 3 and version 2.1 along with this program. If not, see
+<http://www.gnu.org/licenses/>
+*/
+
+#ifndef INDICATE_GTK_INDICATOR_H_INCLUDED__
+#define INDICATE_GTK_INDICATOR_H_INCLUDED__ 1
+
+#include <glib.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include "libindicate/indicator.h"
+
+G_BEGIN_DECLS
+
+/* Properties handling */
+void indicate_indicator_set_property_icon (IndicateIndicator * indicator, const gchar * key, const GdkPixbuf * data);
+
+G_END_DECLS
+
+#endif /* INDICATE_GTK_INDICATOR_H_INCLUDED__ */