Mercurial > pidgin
annotate plugins/statenotify.c @ 9465:8a4797a608ae
[gaim-migrate @ 10290]
1) Fixes the parsing for Win32 clipboard format so that we more accurately
grab the right text
2) Revises our Win32 clipboard format conversion to act more like IE,
since this is as close as we will get to "the right way"
3) Makes clipboard pasting not paste HTML comments (this one effects
linux too, and fixes a problem i've seen pasting from oo.o)
committer: Tailor Script <tailor@pidgin.im>
| author | Tim Ringenbach <marv@pidgin.im> |
|---|---|
| date | Wed, 07 Jul 2004 01:35:27 +0000 |
| parents | 294ae6548d4e |
| children | 91c9e060111b |
| 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 { | |
|
8749
d7b8eb1f0a18
[gaim-migrate @ 9504]
Christian Hammond <chipx86@chipx86.com>
parents:
6982
diff
changeset
|
70 GAIM_PLUGIN_API_VERSION, /**< api_version */ |
| 5267 | 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 */ | |
| 8993 | 94 NULL, /**< extra_info */ |
| 95 NULL, | |
| 96 NULL | |
| 5267 | 97 }; |
| 98 | |
| 99 static void | |
|
5920
7d385de2f9cd
[gaim-migrate @ 6360]
Christian Hammond <chipx86@chipx86.com>
parents:
5873
diff
changeset
|
100 init_plugin(GaimPlugin *plugin) |
| 5267 | 101 { |
| 102 } | |
| 103 | |
| 6063 | 104 GAIM_INIT_PLUGIN(statenotify, init_plugin, info) |
