# HG changeset patch # User John Bailey # Date 1189617668 0 # Node ID 2c69ceca80670e63a4dd1554e93eed3b96a5e123 # Parent f0a87b0d99556ba1c99aebb07756b35eed420afd Adding a notify API example plugin. diff -r f0a87b0d9955 -r 2c69ceca8067 libpurple/plugins/Makefile.am --- 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) diff -r f0a87b0d9955 -r 2c69ceca8067 libpurple/plugins/notify_example.c --- /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 + * + * 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 +#endif + +#include + +/* 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 " + +#include +#include +#include + +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", + "This is a test notification with formatted text.", 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) +