summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Bailey <rekkanoryo@rekkanoryo.org>2007-09-12 17:21:08 +0000
committerJohn Bailey <rekkanoryo@rekkanoryo.org>2007-09-12 17:21:08 +0000
commit4a54a957e88c83c41dad620ba819702d237d7fe3 (patch)
tree3e53a51a9bd42761cd89176442db3eaab07b75a1
parent448255777ee91cdabf00b12ff6cf72921aeffe93 (diff)
downloadpidgin-4a54a957e88c83c41dad620ba819702d237d7fe3.tar.gz
Adding a notify API example plugin.
-rw-r--r--libpurple/plugins/Makefile.am4
-rw-r--r--libpurple/plugins/notify_example.c150
2 files changed, 154 insertions, 0 deletions
diff --git a/libpurple/plugins/Makefile.am b/libpurple/plugins/Makefile.am
index f99fcaae29..83cf9fd647 100644
--- a/libpurple/plugins/Makefile.am
+++ b/libpurple/plugins/Makefile.am
@@ -34,6 +34,7 @@ idle_la_LDFLAGS = -module -avoid-version
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 @@ noinst_LTLIBRARIES = \
codeinline.la \
debug_example.la \
helloworld.la \
+ notify_example.la \
pluginpref_example.la \
signals_test.la \
simple.la
@@ -77,6 +79,7 @@ idle_la_SOURCES = idle.c
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 @@ idle_la_LIBADD = $(GLIB_LIBS)
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)
diff --git a/libpurple/plugins/notify_example.c b/libpurple/plugins/notify_example.c
new file mode 100644
index 0000000000..154256b129
--- /dev/null
+++ b/libpurple/plugins/notify_example.c
@@ -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)
+