Sat, 31 Jul 2004 21:29:40 +0000
[gaim-migrate @ 10464]
Changes to those get_alias functions in blist.c from
Christopher (siege) O'Brien:
Renames gaim_get_buddy_alias to gaim_buddy_get_alias
Renames gaim_get_buddy_alias_only to
_gaim_buddy_get_alias_only
Adds function gaim_buddy_get_contact_alias, which looks
up a buddy's appropriate display name by order of:
buddy alias; contact alias; server alias; buddy name.
Note that the buddy alias is still the top-priority.
Changed conversation.c to use _get_contact_alias rather
than _get_alias
The end result of this is that aliasing the contact
will result in conversations with any of that contact's
buddies using the contact alias. This allows people
like myself to no longer have to alias each buddy to
the same alias in order to achieve the same effect.
committer: Mark Doliner <markdoliner@pidgin.im>
|
6122
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
1 | /* |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
2 | * Gaim Ticker Plugin |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
3 | * The line below doesn't apply at all, does it? It should be Syd, Sean, and |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
4 | * maybe Nathan, I believe. |
| 3391 | 5 | * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald |
| 6 | * | |
| 7 | * This library is free software; you can redistribute it and/or | |
| 8 | * modify it under the terms of the GNU Library General Public | |
| 9 | * License as published by the Free Software Foundation; either | |
| 10 | * version 2 of the License, or (at your option) any later version. | |
| 11 | * | |
| 12 | * This library is distributed in the hope that it will be useful, | |
| 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| 15 | * Library General Public License for more details. | |
| 16 | * | |
| 17 | * You should have received a copy of the GNU Library General Public | |
| 18 | * License along with this library; if not, write to the | |
| 19 | * Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
| 20 | * Boston, MA 02111-1307, USA. | |
| 21 | */ | |
| 22 | ||
| 23 | /* | |
| 24 | * ticker.c -- Syd Logan, Summer 2000 | |
| 25 | * pluginized- Sean Egan, Summer 2002 | |
| 26 | */ | |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
27 | #include "internal.h" |
|
6371
e92b66ee5518
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6122
diff
changeset
|
28 | #include "gtkinternal.h" |
| 3391 | 29 | |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
30 | #include "blist.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
31 | #include "conversation.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
32 | #include "debug.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
33 | #include "prpl.h" |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
34 | #include "signals.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
35 | |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
36 | #include "gtkblist.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
37 | #include "gtkplugin.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
38 | |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
39 | #include "gtkticker.h" |
| 3391 | 40 | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
41 | #define TICKER_PLUGIN_ID "gtk-ticker" |
| 3867 | 42 | |
| 3391 | 43 | static GtkWidget *tickerwindow = NULL; |
| 44 | static GtkWidget *ticker; | |
| 45 | ||
| 46 | typedef struct { | |
| 6695 | 47 | GaimBuddy *buddy; |
| 3391 | 48 | GtkWidget *ebox; |
| 49 | GtkWidget *label; | |
| 5170 | 50 | GtkWidget *icon; |
|
6122
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
51 | guint timeout; |
| 3391 | 52 | } TickerData; |
| 53 | ||
| 5170 | 54 | GList *tickerbuds = NULL; |
| 3391 | 55 | |
| 5172 | 56 | static gboolean buddy_ticker_destroy_window(GtkWidget *window, |
| 57 | GdkEventAny *event, gpointer data) { | |
| 58 | if(window) | |
| 59 | gtk_widget_hide(window); | |
| 60 | ||
| 61 | return TRUE; /* don't actually destroy the window */ | |
| 3391 | 62 | } |
| 63 | ||
| 5170 | 64 | static void buddy_ticker_create_window() { |
| 65 | if(tickerwindow) { | |
| 66 | gtk_widget_show(tickerwindow); | |
| 67 | return; | |
| 68 | } | |
| 3391 | 69 | |
| 5170 | 70 | tickerwindow = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
|
5286
a35f037e7841
[gaim-migrate @ 5658]
David J. Brigada <brigada@prism.net>
parents:
5234
diff
changeset
|
71 | gtk_window_set_default_size(GTK_WINDOW(tickerwindow), 500, -1); |
| 5172 | 72 | g_signal_connect(G_OBJECT(tickerwindow), "delete_event", |
| 5170 | 73 | G_CALLBACK (buddy_ticker_destroy_window), NULL); |
| 74 | gtk_window_set_title (GTK_WINDOW(tickerwindow), _("Buddy Ticker")); | |
|
4850
ca9d06f1bb54
[gaim-migrate @ 5175]
Mark Doliner <markdoliner@pidgin.im>
parents:
4770
diff
changeset
|
75 | gtk_window_set_role (GTK_WINDOW(tickerwindow), "ticker"); |
| 3391 | 76 | |
|
4850
ca9d06f1bb54
[gaim-migrate @ 5175]
Mark Doliner <markdoliner@pidgin.im>
parents:
4770
diff
changeset
|
77 | ticker = gtk_ticker_new(); |
| 5170 | 78 | gtk_ticker_set_spacing(GTK_TICKER(ticker), 20); |
| 79 | gtk_container_add(GTK_CONTAINER(tickerwindow), ticker); | |
| 80 | gtk_ticker_set_interval(GTK_TICKER(ticker), 500); | |
| 81 | gtk_ticker_set_scootch(GTK_TICKER(ticker), 10); | |
| 82 | gtk_ticker_start_scroll(GTK_TICKER(ticker)); | |
|
5286
a35f037e7841
[gaim-migrate @ 5658]
David J. Brigada <brigada@prism.net>
parents:
5234
diff
changeset
|
83 | gtk_widget_set_size_request(ticker, 1, -1); |
| 3391 | 84 | |
| 5170 | 85 | gtk_widget_show_all(tickerwindow); |
| 3391 | 86 | } |
| 87 | ||
| 5170 | 88 | static gboolean buddy_click_cb(GtkWidget *widget, GdkEventButton *event, gpointer user_data) { |
| 6695 | 89 | GaimBuddy *b = user_data; |
|
4850
ca9d06f1bb54
[gaim-migrate @ 5175]
Mark Doliner <markdoliner@pidgin.im>
parents:
4770
diff
changeset
|
90 | |
| 5170 | 91 | gaim_conversation_new(GAIM_CONV_IM, b->account, b->name); |
| 3391 | 92 | return TRUE; |
| 93 | } | |
| 94 | ||
| 6695 | 95 | static TickerData *buddy_ticker_find_buddy(GaimBuddy *b) { |
| 5170 | 96 | GList *tb; |
| 97 | for(tb = tickerbuds; tb; tb = tb->next) { | |
| 98 | TickerData *td = tb->data; | |
| 99 | if(td->buddy == b) | |
| 100 | return td; | |
| 101 | } | |
| 102 | return NULL; | |
| 103 | } | |
| 104 | ||
| 6695 | 105 | static void buddy_ticker_set_pixmap(GaimBuddy *b) { |
| 5170 | 106 | TickerData *td = buddy_ticker_find_buddy(b); |
| 107 | GdkPixbuf *pixbuf; | |
| 3391 | 108 | |
| 5170 | 109 | if(!td) |
| 3391 | 110 | return; |
| 5170 | 111 | |
| 112 | if(!td->icon) | |
| 113 | td->icon = gtk_image_new(); | |
| 3391 | 114 | |
| 5234 | 115 | pixbuf = gaim_gtk_blist_get_status_icon((GaimBlistNode*)b, |
| 116 | GAIM_STATUS_ICON_SMALL); | |
| 5170 | 117 | gtk_image_set_from_pixbuf(GTK_IMAGE(td->icon), pixbuf); |
| 118 | g_object_unref(G_OBJECT(pixbuf)); | |
| 119 | } | |
| 120 | ||
|
6122
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
121 | static gboolean buddy_ticker_set_pixmap_cb(gpointer data) { |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
122 | TickerData *td = data; |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
123 | |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
124 | gaim_debug(GAIM_DEBUG_ERROR, "XXX", "we're updating the pixmap, you bitch\n"); |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
125 | buddy_ticker_set_pixmap(td->buddy); |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
126 | td->timeout = 0; |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
127 | |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
128 | return FALSE; |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
129 | } |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
130 | |
| 6695 | 131 | static void buddy_ticker_add_buddy(GaimBuddy *b) { |
| 5170 | 132 | GtkWidget *hbox; |
| 133 | TickerData *td; | |
| 134 | ||
| 135 | buddy_ticker_create_window(); | |
| 5172 | 136 | |
| 3391 | 137 | if (!ticker) |
| 138 | return; | |
| 139 | ||
|
6122
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
140 | if (buddy_ticker_find_buddy(b)) |
| 3391 | 141 | return; |
| 142 | ||
| 5170 | 143 | td = g_new0(TickerData, 1); |
| 144 | td->buddy = b; | |
| 145 | tickerbuds = g_list_append(tickerbuds, td); | |
| 3391 | 146 | |
| 5170 | 147 | td->ebox = gtk_event_box_new(); |
| 148 | gtk_ticker_add(GTK_TICKER(ticker), td->ebox); | |
| 149 | hbox = gtk_hbox_new(FALSE, 0); | |
| 150 | gtk_container_add(GTK_CONTAINER(td->ebox), hbox); | |
| 151 | buddy_ticker_set_pixmap(b); | |
| 152 | gtk_box_pack_start(GTK_BOX(hbox), td->icon, FALSE, FALSE, 5); | |
| 3391 | 153 | |
| 5170 | 154 | g_signal_connect(G_OBJECT(td->ebox), "button-press-event", |
| 155 | G_CALLBACK(buddy_click_cb), b); | |
| 3391 | 156 | |
|
9620
fe99fcea5c1c
[gaim-migrate @ 10464]
Christopher O'Brien <siege@pidgin.im>
parents:
8993
diff
changeset
|
157 | td->label = gtk_label_new(gaim_buddy_get_alias(b)); |
| 5170 | 158 | gtk_box_pack_start(GTK_BOX(hbox), td->label, FALSE, FALSE, 5); |
| 159 | ||
| 160 | gtk_widget_show_all(td->ebox); | |
| 161 | gtk_widget_show(tickerwindow); | |
|
6122
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
162 | |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
163 | /* |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
164 | * Update the icon in a few seconds (after the open door icon has |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
165 | * changed). This is somewhat ugly. |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
166 | */ |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
167 | td->timeout = g_timeout_add(11000, buddy_ticker_set_pixmap_cb, td); |
| 3391 | 168 | } |
| 169 | ||
| 6695 | 170 | static void buddy_ticker_remove_buddy(GaimBuddy *b) { |
| 5170 | 171 | TickerData *td = buddy_ticker_find_buddy(b); |
| 3391 | 172 | |
| 5170 | 173 | if (!td) |
| 174 | return; | |
| 3391 | 175 | |
| 5172 | 176 | /* pop up the ticker window again */ |
| 177 | buddy_ticker_create_window(); | |
| 178 | ||
| 5170 | 179 | gtk_ticker_remove(GTK_TICKER(ticker), td->ebox); |
| 180 | tickerbuds = g_list_remove(tickerbuds, td); | |
|
6122
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
181 | if (td->timeout != 0) |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
182 | g_source_remove(td->timeout); |
| 5170 | 183 | g_free(td); |
| 3391 | 184 | } |
| 185 | ||
| 5170 | 186 | static void buddy_ticker_show() |
| 3391 | 187 | { |
|
7100
cfa56fba1b19
[gaim-migrate @ 7665]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
188 | GaimBuddyList *list = gaim_get_blist(); |
| 6695 | 189 | GaimBlistNode *gnode, *cnode, *bnode; |
| 190 | GaimBuddy *b; | |
| 3391 | 191 | |
| 5170 | 192 | if(!list) |
| 193 | return; | |
| 3391 | 194 | |
| 5170 | 195 | for(gnode = list->root; gnode; gnode = gnode->next) { |
| 196 | if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) | |
| 197 | continue; | |
| 6695 | 198 | for(cnode = gnode->child; cnode; cnode = cnode->next) { |
| 199 | if(!GAIM_BLIST_NODE_IS_CONTACT(cnode)) | |
| 5170 | 200 | continue; |
| 6695 | 201 | for(bnode = cnode->child; bnode; bnode = bnode->next) { |
| 202 | if(!GAIM_BLIST_NODE_IS_BUDDY(bnode)) | |
| 203 | continue; | |
| 204 | b = (GaimBuddy *)bnode; | |
| 205 | if(GAIM_BUDDY_IS_ONLINE(b)) | |
| 206 | buddy_ticker_add_buddy(b); | |
| 207 | } | |
| 3391 | 208 | } |
| 209 | } | |
| 210 | } | |
| 211 | ||
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
212 | static void |
| 6695 | 213 | buddy_signon_cb(GaimBuddy *b) |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
214 | { |
| 5170 | 215 | if(buddy_ticker_find_buddy(b)) |
| 216 | buddy_ticker_set_pixmap(b); | |
| 217 | else | |
| 218 | buddy_ticker_add_buddy(b); | |
| 3391 | 219 | } |
| 220 | ||
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
221 | static void |
| 6695 | 222 | buddy_signoff_cb(GaimBuddy *b) |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
223 | { |
| 5170 | 224 | buddy_ticker_remove_buddy(b); |
| 5185 | 225 | if(!tickerbuds) |
| 226 | gtk_widget_hide(tickerwindow); | |
| 3391 | 227 | } |
| 228 | ||
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
229 | static void |
| 6695 | 230 | away_cb(GaimBuddy *b) |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
231 | { |
| 5170 | 232 | if(buddy_ticker_find_buddy(b)) |
| 233 | buddy_ticker_set_pixmap(b); | |
| 234 | else | |
| 235 | buddy_ticker_add_buddy(b); | |
| 3391 | 236 | } |
| 237 | ||
| 8213 | 238 | static void |
| 239 | signoff_cb(GaimConnection *gc) | |
| 240 | { | |
| 241 | TickerData *td; | |
| 242 | if (!gaim_connections_get_all()) { | |
| 243 | while (tickerbuds) { | |
| 244 | td = tickerbuds->data; | |
| 245 | tickerbuds = g_list_delete_link(tickerbuds, tickerbuds); | |
| 246 | if (td->timeout != 0) | |
| 247 | g_source_remove(td->timeout); | |
| 248 | g_free(td); | |
| 249 | } | |
| 250 | gtk_widget_destroy(tickerwindow); | |
| 251 | tickerwindow = NULL; | |
| 252 | ticker = NULL; | |
| 253 | } else { | |
| 254 | GList *t = tickerbuds; | |
| 255 | while (t) { | |
| 256 | td = t->data; | |
| 257 | t = t->next; | |
| 258 | if (td->buddy->account == gc->account) { | |
| 259 | buddy_signoff_cb(td->buddy); | |
| 260 | } | |
| 261 | } | |
| 262 | } | |
| 263 | } | |
| 264 | ||
| 265 | ||
| 3630 | 266 | /* |
| 267 | * EXPORTED FUNCTIONS | |
| 268 | */ | |
| 269 | ||
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
270 | static gboolean |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
271 | plugin_load(GaimPlugin *plugin) |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
272 | { |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
273 | void *blist_handle = gaim_blist_get_handle(); |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
274 | |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
275 | gaim_signal_connect(gaim_connections_get_handle(), "signed-off", |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
276 | plugin, GAIM_CALLBACK(signoff_cb), NULL); |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
277 | gaim_signal_connect(blist_handle, "buddy-signed-on", |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
278 | plugin, GAIM_CALLBACK(buddy_signon_cb), NULL); |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
279 | gaim_signal_connect(blist_handle, "buddy-signed-off", |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
280 | plugin, GAIM_CALLBACK(buddy_signoff_cb), NULL); |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
281 | gaim_signal_connect(blist_handle, "buddy-away", |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
282 | plugin, GAIM_CALLBACK(away_cb), NULL); |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
283 | gaim_signal_connect(blist_handle, "buddy-back", |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
284 | plugin, GAIM_CALLBACK(away_cb), NULL); |
| 3391 | 285 | |
| 5607 | 286 | if (gaim_connections_get_all()) |
| 5170 | 287 | buddy_ticker_show(); |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
288 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
289 | return TRUE; |
| 3391 | 290 | } |
| 291 | ||
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
292 | static gboolean |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
293 | plugin_unload(GaimPlugin *plugin) |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
294 | { |
|
6122
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
295 | TickerData *td; |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
296 | |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
297 | while (tickerbuds) { |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
298 | td = tickerbuds->data; |
| 5186 | 299 | tickerbuds = g_list_delete_link(tickerbuds, tickerbuds); |
|
6122
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
300 | if (td->timeout != 0) |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
301 | g_source_remove(td->timeout); |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
302 | g_free(td); |
| 5185 | 303 | } |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
304 | |
|
5984
a5b22eb728ef
[gaim-migrate @ 6432]
Christian Hammond <chipx86@chipx86.com>
parents:
5983
diff
changeset
|
305 | if (tickerwindow != NULL) { |
|
5983
435a19acf12a
[gaim-migrate @ 6431]
Christian Hammond <chipx86@chipx86.com>
parents:
5920
diff
changeset
|
306 | gtk_widget_destroy(tickerwindow); |
|
5984
a5b22eb728ef
[gaim-migrate @ 6432]
Christian Hammond <chipx86@chipx86.com>
parents:
5983
diff
changeset
|
307 | tickerwindow = NULL; |
|
a5b22eb728ef
[gaim-migrate @ 6432]
Christian Hammond <chipx86@chipx86.com>
parents:
5983
diff
changeset
|
308 | } |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
309 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
310 | return TRUE; |
| 3391 | 311 | } |
| 5170 | 312 | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
313 | static GaimGtkPluginUiInfo ui_info = |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
314 | { |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
315 | NULL /**< get_config_frame */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
316 | }; |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
317 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
318 | static GaimPluginInfo info = |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
319 | { |
|
8749
fb487e9e101a
[gaim-migrate @ 9504]
Christian Hammond <chipx86@chipx86.com>
parents:
8213
diff
changeset
|
320 | GAIM_PLUGIN_API_VERSION, /**< api_version */ |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
321 | GAIM_PLUGIN_STANDARD, /**< type */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
322 | GAIM_GTK_PLUGIN_TYPE, /**< ui_requirement */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
323 | 0, /**< flags */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
324 | NULL, /**< dependencies */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
325 | GAIM_PRIORITY_DEFAULT, /**< priority */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
326 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
327 | TICKER_PLUGIN_ID, /**< id */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
328 | N_("Buddy Ticker"), /**< name */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
329 | VERSION, /**< version */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
330 | /** summary */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
331 | N_("A horizontal scrolling version of the buddy list."), |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
332 | /** description */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
333 | N_("A horizontal scrolling version of the buddy list."), |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
334 | "Syd Logan", /**< author */ |
|
6371
e92b66ee5518
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6122
diff
changeset
|
335 | GAIM_WEBSITE, /**< homepage */ |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
336 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
337 | plugin_load, /**< load */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
338 | plugin_unload, /**< unload */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
339 | NULL, /**< destroy */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
340 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
341 | &ui_info, /**< ui_info */ |
| 8993 | 342 | NULL, /**< extra_info */ |
| 343 | NULL, | |
| 344 | NULL | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
345 | }; |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
346 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
347 | static void |
|
5920
963bfdefee02
[gaim-migrate @ 6360]
Christian Hammond <chipx86@chipx86.com>
parents:
5873
diff
changeset
|
348 | init_plugin(GaimPlugin *plugin) |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
349 | { |
| 3551 | 350 | } |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
351 | |
| 6063 | 352 | GAIM_INIT_PLUGIN(ticker, init_plugin, info) |