gee
oldstatus
2005-09-19, Nathan Walp
#include "conversation.h" #define STATENOTIFY_PLUGIN_ID "core-statenotify" write_status(GaimBuddy *buddy, const char *message) conv = gaim_find_conversation_with_account(buddy->name, buddy->account); who = gaim_buddy_get_alias(buddy); escaped = g_markup_escape_text(who, -1); g_snprintf(buf, sizeof(buf), message, escaped); gaim_conversation_write(conv, NULL, buf, GAIM_MESSAGE_SYSTEM, time(NULL)); buddy_away_cb(GaimBuddy *buddy, void *data) if (gaim_prefs_get_bool("/plugins/core/statenotify/notify_away")) write_status(buddy, _("%s has gone away.")); buddy_unaway_cb(GaimBuddy *buddy, void *data) if (gaim_prefs_get_bool("/plugins/core/statenotify/notify_away")) write_status(buddy, _("%s is no longer away.")); buddy_idle_cb(GaimBuddy *buddy, void *data) if (gaim_prefs_get_bool("/plugins/core/statenotify/notify_idle")) write_status(buddy, _("%s has become idle.")); buddy_unidle_cb(GaimBuddy *buddy, void *data) if (gaim_prefs_get_bool("/plugins/core/statenotify/notify_idle")) write_status(buddy, _("%s is no longer idle.")); static GaimPluginPrefFrame * get_plugin_pref_frame(GaimPlugin *plugin) GaimPluginPrefFrame *frame; frame = gaim_plugin_pref_frame_new(); ppref = gaim_plugin_pref_new_with_label(_("Notify When")); gaim_plugin_pref_frame_add(frame, ppref); ppref = gaim_plugin_pref_new_with_name_and_label("/plugins/core/statenotify/notify_away", _("Buddy Goes _Away")); gaim_plugin_pref_frame_add(frame, ppref); ppref = gaim_plugin_pref_new_with_name_and_label("/plugins/core/statenotify/notify_idle", _("Buddy Goes _Idle")); gaim_plugin_pref_frame_add(frame, ppref); plugin_load(GaimPlugin *plugin) void *blist_handle = gaim_blist_get_handle(); gaim_signal_connect(blist_handle, "buddy-away", plugin, GAIM_CALLBACK(buddy_away_cb), NULL); gaim_signal_connect(blist_handle, "buddy-back", plugin, GAIM_CALLBACK(buddy_unaway_cb), NULL); gaim_signal_connect(blist_handle, "buddy-idle", plugin, GAIM_CALLBACK(buddy_idle_cb), NULL); gaim_signal_connect(blist_handle, "buddy-unidle", plugin, GAIM_CALLBACK(buddy_unidle_cb), NULL); static GaimPluginUiInfo prefs_info = static GaimPluginInfo info = GAIM_PLUGIN_STANDARD, /**< type */ NULL, /**< ui_requirement */ NULL, /**< dependencies */ GAIM_PRIORITY_DEFAULT, /**< priority */ STATENOTIFY_PLUGIN_ID, /**< id */ N_("Buddy State Notification"), /**< name */ N_("Notifies in a conversation window when a buddy goes or returns from " N_("Notifies in a conversation window when a buddy goes or returns from " "Christian Hammond <chipx86@gnupdate.org>", /**< author */ GAIM_WEBSITE, /**< homepage */ plugin_load, /**< load */ &prefs_info, /**< prefs_info */ init_plugin(GaimPlugin *plugin) gaim_prefs_add_none("/plugins/core/statenotify"); gaim_prefs_add_bool("/plugins/core/statenotify/notify_away", TRUE); gaim_prefs_add_bool("/plugins/core/statenotify/notify_idle", TRUE); GAIM_INIT_PLUGIN(statenotify, init_plugin, info)