Mercurial > pidgin
annotate plugins/statenotify.c @ 7864:dc80d4e5c3b0
[gaim-migrate @ 8518]
"Attached is a patch I wrote last night while trying to play with
docklet.c - it turns out that one of the signals doesn't have the right
parameter list (probably after Christian changed the signals some time).
It has been tested, rather simply with the fact that a debug statement
was not reached before, and is now, following the signal specs here:
http://gaim.sourceforge.net/api/conversation-signals.html#received-im-msg
I don't know if this needs to go through Robot101 (haven't seen him
terribly active of late), and if it does, I'll gladly relay it to him.
And yeah, I guess this was all inspired by my away msg at the time:
[:-P]
Well, I'm not that tired right now, and I think I'm going to work some
Merlot and coffee off with some coding and Oggs...
Oh yeah, and while I'm rambling about stuff irrelevant to the actual
code, I somehow dedicate this patch to the wonderful person for whom I
would like to be visually aware of their incoming messages..." --John B.
Silvestri
committer: Tailor Script <tailor@pidgin.im>
| author | Luke Schierer <lschiere@pidgin.im> |
|---|---|
| date | Sun, 14 Dec 2003 17:04:00 +0000 |
| parents | 083d1e4a9c78 |
| children | d7b8eb1f0a18 |
| rev | line source |
|---|---|
|
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
1 #include "internal.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
2 |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
3 #include "blist.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
4 #include "conversation.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
5 #include "debug.h" |
|
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6441
diff
changeset
|
6 #include "signals.h" |
|
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
7 |
| 5267 | 8 static void |
| 6695 | 9 write_status(GaimBuddy *buddy, const char *message) |
| 5267 | 10 { |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5587
diff
changeset
|
11 GaimConversation *conv; |
|
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6441
diff
changeset
|
12 const char *who; |
| 5267 | 13 char buf[256]; |
| 14 | |
|
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6441
diff
changeset
|
15 conv = gaim_find_conversation_with_account(buddy->name, buddy->account); |
| 5267 | 16 |
| 17 if (conv == NULL) | |
| 18 return; | |
| 19 | |
|
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6441
diff
changeset
|
20 who = gaim_get_buddy_alias(buddy); |
| 5267 | 21 |
| 6489 | 22 g_snprintf(buf, sizeof(buf), message, who); |
| 5267 | 23 |
| 6982 | 24 gaim_conversation_write(conv, NULL, buf, GAIM_MESSAGE_SYSTEM, time(NULL)); |
| 5267 | 25 } |
| 26 | |
| 27 static void | |
| 6695 | 28 buddy_away_cb(GaimBuddy *buddy, void *data) |
| 5267 | 29 { |
| 6489 | 30 write_status(buddy, _("%s has gone away.")); |
| 5267 | 31 } |
| 32 | |
| 33 static void | |
| 6695 | 34 buddy_unaway_cb(GaimBuddy *buddy, void *data) |
| 5267 | 35 { |
| 6489 | 36 write_status(buddy, _("%s is no longer away.")); |
| 5267 | 37 } |
| 38 | |
| 39 static void | |
| 6695 | 40 buddy_idle_cb(GaimBuddy *buddy, void *data) |
| 5267 | 41 { |
| 6489 | 42 write_status(buddy, _("%s has become idle.")); |
| 5267 | 43 } |
| 44 | |
| 45 static void | |
| 6695 | 46 buddy_unidle_cb(GaimBuddy *buddy, void *data) |
| 5267 | 47 { |
| 6489 | 48 write_status(buddy, _("%s is no longer idle.")); |
| 5267 | 49 } |
| 50 | |
| 51 static gboolean | |
| 52 plugin_load(GaimPlugin *plugin) | |
| 53 { | |
|
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6441
diff
changeset
|
54 void *blist_handle = gaim_blist_get_handle(); |
|
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6441
diff
changeset
|
55 |
|
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6441
diff
changeset
|
56 gaim_signal_connect(blist_handle, "buddy-away", |
|
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6441
diff
changeset
|
57 plugin, GAIM_CALLBACK(buddy_away_cb), NULL); |
|
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6441
diff
changeset
|
58 gaim_signal_connect(blist_handle, "buddy-back", |
|
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6441
diff
changeset
|
59 plugin, GAIM_CALLBACK(buddy_unaway_cb), NULL); |
|
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6441
diff
changeset
|
60 gaim_signal_connect(blist_handle, "buddy-idle", |
|
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6441
diff
changeset
|
61 plugin, GAIM_CALLBACK(buddy_idle_cb), NULL); |
|
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6441
diff
changeset
|
62 gaim_signal_connect(blist_handle, "buddy-unidle", |
|
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6441
diff
changeset
|
63 plugin, GAIM_CALLBACK(buddy_unidle_cb), NULL); |
| 5267 | 64 |
| 65 return TRUE; | |
| 66 } | |
| 67 | |
| 68 static GaimPluginInfo info = | |
| 69 { | |
| 70 2, /**< api_version */ | |
| 71 GAIM_PLUGIN_STANDARD, /**< type */ | |
| 72 NULL, /**< ui_requirement */ | |
| 73 0, /**< flags */ | |
| 74 NULL, /**< dependencies */ | |
| 75 GAIM_PRIORITY_DEFAULT, /**< priority */ | |
| 76 | |
| 77 NULL, /**< id */ | |
| 78 N_("Buddy State Notification"), /**< name */ | |
| 79 VERSION, /**< version */ | |
| 80 /** summary */ | |
| 81 N_("Notifies in a conversation window when a buddy goes or returns from " | |
| 82 "away or idle."), | |
| 83 /** description */ | |
| 84 N_("Notifies in a conversation window when a buddy goes or returns from " | |
| 85 "away or idle."), | |
| 86 "Christian Hammond <chipx86@gnupdate.org>", /**< author */ | |
|
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6441
diff
changeset
|
87 GAIM_WEBSITE, /**< homepage */ |
| 5267 | 88 |
| 89 plugin_load, /**< load */ | |
| 90 NULL, /**< unload */ | |
| 91 NULL, /**< destroy */ | |
| 92 | |
| 93 NULL, /**< ui_info */ | |
| 94 NULL /**< extra_info */ | |
| 95 }; | |
| 96 | |
| 97 static void | |
|
5920
7d385de2f9cd
[gaim-migrate @ 6360]
Christian Hammond <chipx86@chipx86.com>
parents:
5873
diff
changeset
|
98 init_plugin(GaimPlugin *plugin) |
| 5267 | 99 { |
| 100 } | |
| 101 | |
| 6063 | 102 GAIM_INIT_PLUGIN(statenotify, init_plugin, info) |
