aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Gould <ted@canonical.com>2009-08-03 19:25:05 +0100
committerTed Gould <ted@canonical.com>2009-08-03 19:25:05 +0100
commit840e1c8b34542acf017d3e0caf921062827c280b (patch)
treef33a8241272ad9d8d47b6ebc986b1eb4a6b5c4b1
parentecde85f57823acace986724989fa57daf43799d2 (diff)
downloadlibayatana-indicator-840e1c8b34542acf017d3e0caf921062827c280b.tar.gz
libayatana-indicator-840e1c8b34542acf017d3e0caf921062827c280b.tar.bz2
libayatana-indicator-840e1c8b34542acf017d3e0caf921062827c280b.zip
Okay, now it is the offending function in it.
-rw-r--r--configure.ac1
-rw-r--r--libindicate-gtk/Makefile.am4
-rw-r--r--libindicate-gtk/indicator.c71
-rw-r--r--libindicate-gtk/indicator.h44
4 files changed, 117 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac
index 13f4b6c..beed048 100644
--- a/configure.ac
+++ b/configure.ac
@@ -64,6 +64,7 @@ AC_SUBST(LIBINDICATE_LIBS)
PKG_CHECK_MODULES(LIBINDICATEGTK, glib-2.0 >= $GLIB_REQUIRED_VERSION
gio-2.0 >= $GIO_REQUIRED_VERSION
gdk-pixbuf-2.0 >= $GDK_PIXBUF_REQUIRED_VERSION
+ gtk+-2.0 >= $GTK_REQUIRED_VERSION
dbus-glib-1 >= $DBUS_REQUIRED_VERSION
libxml-2.0 >= $XML_REQUIRED_VERSION)
AC_SUBST(LIBINDICATEGTK_CFLAGS)
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__ */