Mercurial > pidgin
comparison libpurple/plugins/notify_example.c @ 19958:2c69ceca8067
Adding a notify API example plugin.
| author | John Bailey <rekkanoryo@rekkanoryo.org> |
|---|---|
| date | Wed, 12 Sep 2007 17:21:08 +0000 |
| parents | |
| children | 26f562916f98 |
comparison
equal
deleted
inserted
replaced
| 19957:f0a87b0d9955 | 19958:2c69ceca8067 |
|---|---|
| 1 /* | |
| 2 * Notify API Example Plugin | |
| 3 * | |
| 4 * Copyright (C) 2007, John Bailey <rekkanoryo@cpw.pidgin.im> | |
| 5 * | |
| 6 * This program is free software; you can redistribute it and/or | |
| 7 * modify it under the terms of the GNU General Public License as | |
| 8 * published by the Free Software Foundation; either version 2 of the | |
| 9 * License, or (at your option) any later version. | |
| 10 * | |
| 11 * This program is distributed in the hope that it will be useful, but | |
| 12 * WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| 14 * General Public License for more details. | |
| 15 * | |
| 16 * You should have received a copy of the GNU General Public License | |
| 17 * along with this program; if not, write to the Free Software | |
| 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | |
| 19 * 02111-1301, USA. | |
| 20 * | |
| 21 */ | |
| 22 | |
| 23 #ifdef HAVE_CONFIG_H | |
| 24 # include <config.h> | |
| 25 #endif | |
| 26 | |
| 27 #include <glib.h> | |
| 28 | |
| 29 /* This is the required definition of PURPLE_PLUGINS as required for a plugin, | |
| 30 * but we protect it with an #ifndef because config.h may define it for us | |
| 31 * already and this would cause an unneeded compiler warning. */ | |
| 32 #ifndef PURPLE_PLUGINS | |
| 33 # define PURPLE_PLUGINS | |
| 34 #endif | |
| 35 | |
| 36 #define PLUGIN_ID "core-notifyexample" | |
| 37 #define PLUGIN_AUTHOR "John Bailey <rekkanoryo@cpw.pidgin.im>" | |
| 38 | |
| 39 #include <notify.h> | |
| 40 #include <plugin.h> | |
| 41 #include <version.h> | |
| 42 | |
| 43 static PurplePlugin *notify_example = NULL; | |
| 44 | |
| 45 static void | |
| 46 notify_error_cb(PurplePluginAction *action) | |
| 47 { | |
| 48 purple_notify_error(notify_example, "Test Notification", "Test Notification", | |
| 49 "This is a test error notification"); | |
| 50 } | |
| 51 | |
| 52 static void | |
| 53 notify_info_cb(PurplePluginAction *action) | |
| 54 { | |
| 55 purple_notify_info(notify_example, "Test Notification", "Test Notification", | |
| 56 "This is a test informative notification"); | |
| 57 } | |
| 58 | |
| 59 static void | |
| 60 notify_warn_cb(PurplePluginAction *action) | |
| 61 { | |
| 62 purple_notify_warning(notify_example, "Test Notification", "Test Notification", | |
| 63 "This is a test warning notification"); | |
| 64 } | |
| 65 | |
| 66 static void | |
| 67 notify_format_cb(PurplePluginAction *action) | |
| 68 { | |
| 69 purple_notify_formatted(notify_example, "Test Notification", "Test Notification", | |
| 70 "Test Notification", | |
| 71 "<I>This is a test notification with formatted text.</I>", NULL, NULL); | |
| 72 } | |
| 73 | |
| 74 static void | |
| 75 notify_uri_cb(PurplePluginAction *action) | |
| 76 { | |
| 77 purple_notify_uri(notify_example, "http://www.pidgin.im/"); | |
| 78 } | |
| 79 | |
| 80 static GList * | |
| 81 plugin_actions(PurplePlugin *plugin, gpointer context) | |
| 82 { | |
| 83 GList *actions = NULL; | |
| 84 PurplePluginAction *action = NULL; | |
| 85 | |
| 86 actions = g_list_prepend(actions, | |
| 87 purple_plugin_action_new("Show Error Notification", notify_error_cb)); | |
| 88 | |
| 89 actions = g_list_prepend(actions, | |
| 90 purple_plugin_action_new("Show Info Notification", notify_info_cb)); | |
| 91 | |
| 92 actions = g_list_prepend(actions, | |
| 93 purple_plugin_action_new("Show Warning Notification", notify_warn_cb)); | |
| 94 | |
| 95 actions = g_list_prepend(actions, | |
| 96 purple_plugin_action_new("Show Formatted Notification", notify_format_cb)); | |
| 97 | |
| 98 actions = g_list_prepend(actions, | |
| 99 purple_plugin_action_new("Show URI Notification", notify_uri_cb)); | |
| 100 | |
| 101 return g_list_reverse(actions); | |
| 102 } | |
| 103 | |
| 104 static gboolean | |
| 105 plugin_load(PurplePlugin *plugin) | |
| 106 { | |
| 107 notify_example = plugin; | |
| 108 | |
| 109 return TRUE; | |
| 110 } | |
| 111 | |
| 112 static PurplePluginInfo info = { | |
| 113 PURPLE_PLUGIN_MAGIC, /* magic number */ | |
| 114 PURPLE_MAJOR_VERSION, /* purple major */ | |
| 115 PURPLE_MINOR_VERSION, /* purple minor */ | |
| 116 PURPLE_PLUGIN_STANDARD, /* plugin type */ | |
| 117 NULL, /* UI requirement */ | |
| 118 0, /* flags */ | |
| 119 NULL, /* dependencies */ | |
| 120 PURPLE_PRIORITY_DEFAULT, /* priority */ | |
| 121 | |
| 122 PLUGIN_ID, /* id */ | |
| 123 "Notify API Example", /* name */ | |
| 124 VERSION, /* version */ | |
| 125 "Notify API Example", /* summary */ | |
| 126 "Notify API Example", /* description */ | |
| 127 PLUGIN_AUTHOR, /* author */ | |
| 128 "http://pidgin.im", /* homepage */ | |
| 129 | |
| 130 plugin_load, /* load */ | |
| 131 NULL, /* unload */ | |
| 132 NULL, /* destroy */ | |
| 133 | |
| 134 NULL, /* ui info */ | |
| 135 NULL, /* extra info */ | |
| 136 NULL, /* prefs info */ | |
| 137 plugin_actions, /* actions */ | |
| 138 NULL, /* reserved */ | |
| 139 NULL, /* reserved */ | |
| 140 NULL, /* reserved */ | |
| 141 NULL /* reserved */ | |
| 142 }; | |
| 143 | |
| 144 static void | |
| 145 init_plugin(PurplePlugin *plugin) | |
| 146 { | |
| 147 } | |
| 148 | |
| 149 PURPLE_INIT_PLUGIN(notifyexample, init_plugin, info) | |
| 150 |
