changeset 19913:2c69ceca8067

Adding a notify API example plugin.
author John Bailey <rekkanoryo@rekkanoryo.org>
date Wed, 12 Sep 2007 17:21:08 +0000
parents f0a87b0d9955
children 4a38af2279c7
files libpurple/plugins/Makefile.am libpurple/plugins/notify_example.c
diffstat 2 files changed, 154 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/plugins/Makefile.am	Wed Sep 12 16:17:06 2007 +0000
+++ b/libpurple/plugins/Makefile.am	Wed Sep 12 17:21:08 2007 +0000
@@ -34,6 +34,7 @@
 joinpart_la_LDFLAGS         = -module -avoid-version
 log_reader_la_LDFLAGS       = -module -avoid-version
 newline_la_LDFLAGS          = -module -avoid-version
+notify_example_la_LDFLAGS   = -module -avoid-version
 offlinemsg_la_LDFLAGS       = -module -avoid-version
 pluginpref_example_la_LDFLAGS = -module -avoid-version
 psychic_la_LDFLAGS          = -module -avoid-version
@@ -63,6 +64,7 @@
 	codeinline.la \
 	debug_example.la \
 	helloworld.la \
+	notify_example.la \
 	pluginpref_example.la \
 	signals_test.la \
 	simple.la
@@ -77,6 +79,7 @@
 joinpart_la_SOURCES         = joinpart.c
 log_reader_la_SOURCES       = log_reader.c
 newline_la_SOURCES          = newline.c
+notify_example_la_SOURCES   = notify_example.c
 offlinemsg_la_SOURCES       = offlinemsg.c
 pluginpref_example_la_SOURCES = pluginpref_example.c
 psychic_la_SOURCES          = psychic.c
@@ -92,6 +95,7 @@
 joinpart_la_LIBADD          = $(GLIB_LIBS)
 log_reader_la_LIBADD        = $(GLIB_LIBS)
 newline_la_LIBADD           = $(GLIB_LIBS)
+notify_example_la_LIBADD    = $(GLIB_LIBS)
 offlinemsg_la_LIBADD        = $(GLIB_LIBS)
 pluginpref_example_la_LIBADD = $(GLIB_LIBS)
 psychic_la_LIBADD           = $(GLIB_LIBS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libpurple/plugins/notify_example.c	Wed Sep 12 17:21:08 2007 +0000
@@ -0,0 +1,150 @@
+/*
+ * Notify API Example Plugin
+ *
+ * Copyright (C) 2007, John Bailey <rekkanoryo@cpw.pidgin.im>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02111-1301, USA.
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <glib.h>
+
+/* This is the required definition of PURPLE_PLUGINS as required for a plugin,
+ * but we protect it with an #ifndef because config.h may define it for us
+ * already and this would cause an unneeded compiler warning. */
+#ifndef PURPLE_PLUGINS
+# define PURPLE_PLUGINS
+#endif
+
+#define PLUGIN_ID "core-notifyexample"
+#define PLUGIN_AUTHOR "John Bailey <rekkanoryo@cpw.pidgin.im>"
+
+#include <notify.h>
+#include <plugin.h>
+#include <version.h>
+
+static PurplePlugin *notify_example = NULL;
+
+static void
+notify_error_cb(PurplePluginAction *action)
+{
+	purple_notify_error(notify_example, "Test Notification", "Test Notification",
+		"This is a test error notification");
+}
+
+static void
+notify_info_cb(PurplePluginAction *action)
+{
+	purple_notify_info(notify_example, "Test Notification", "Test Notification",
+		"This is a test informative notification");
+}
+
+static void
+notify_warn_cb(PurplePluginAction *action)
+{
+	purple_notify_warning(notify_example, "Test Notification", "Test Notification",
+		"This is a test warning notification");
+}
+
+static void
+notify_format_cb(PurplePluginAction *action)
+{
+	purple_notify_formatted(notify_example, "Test Notification", "Test Notification",
+		"Test Notification",
+		"<I>This is a test notification with formatted text.</I>", NULL, NULL);
+}
+
+static void
+notify_uri_cb(PurplePluginAction *action)
+{
+	purple_notify_uri(notify_example, "http://www.pidgin.im/");
+}
+
+static GList *
+plugin_actions(PurplePlugin *plugin, gpointer context)
+{
+	GList *actions = NULL;
+	PurplePluginAction *action = NULL;
+
+	actions = g_list_prepend(actions,
+		purple_plugin_action_new("Show Error Notification", notify_error_cb));
+
+	actions = g_list_prepend(actions,
+		purple_plugin_action_new("Show Info Notification", notify_info_cb));
+
+	actions = g_list_prepend(actions,
+		purple_plugin_action_new("Show Warning Notification", notify_warn_cb));
+
+	actions = g_list_prepend(actions,
+		purple_plugin_action_new("Show Formatted Notification", notify_format_cb));
+
+	actions = g_list_prepend(actions,
+		purple_plugin_action_new("Show URI Notification", notify_uri_cb));
+
+	return g_list_reverse(actions);
+}
+
+static gboolean
+plugin_load(PurplePlugin *plugin)
+{
+	notify_example = plugin;
+
+	return TRUE;
+}
+
+static PurplePluginInfo info = {
+	PURPLE_PLUGIN_MAGIC,        /* magic number */
+	PURPLE_MAJOR_VERSION,       /* purple major */
+	PURPLE_MINOR_VERSION,       /* purple minor */
+	PURPLE_PLUGIN_STANDARD,     /* plugin type */
+	NULL,                       /* UI requirement */
+	0,                          /* flags */
+	NULL,                       /* dependencies */
+	PURPLE_PRIORITY_DEFAULT,    /* priority */
+
+	PLUGIN_ID,                  /* id */
+	"Notify API Example",       /* name */
+	VERSION,                    /* version */
+	"Notify API Example",       /* summary */
+	"Notify API Example",       /* description */
+	PLUGIN_AUTHOR,              /* author */
+	"http://pidgin.im",         /* homepage */
+
+	plugin_load,                /* load */
+	NULL,                       /* unload */
+	NULL,                       /* destroy */
+
+	NULL,                       /* ui info */
+	NULL,                       /* extra info */
+	NULL,                       /* prefs info */
+	plugin_actions,             /* actions */
+	NULL,                       /* reserved */
+	NULL,                       /* reserved */
+	NULL,                       /* reserved */
+	NULL                        /* reserved */
+};
+
+static void
+init_plugin(PurplePlugin *plugin)
+{
+}
+
+PURPLE_INIT_PLUGIN(notifyexample, init_plugin, info)
+