Sun, 03 Aug 2003 09:47:15 +0000
[gaim-migrate @ 6864]
Lots of Makefile.am and configure.ac fixes from Robot101. Doumo arigatou,
Mr. Roboto!
committer: Christian Hammond <chipx86@chipx86.com>
|
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" |
| 3391 | 28 | |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
29 | #include "blist.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
30 | #include "conversation.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
31 | #include "debug.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
32 | #include "prpl.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
33 | |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
34 | #include "gtkblist.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
35 | #include "gtkplugin.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
36 | |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
37 | #include "gtkticker.h" |
| 3391 | 38 | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
39 | #define TICKER_PLUGIN_ID "gtk-ticker" |
| 3867 | 40 | |
| 3391 | 41 | static GtkWidget *tickerwindow = NULL; |
| 42 | static GtkWidget *ticker; | |
| 43 | ||
| 44 | typedef struct { | |
| 5170 | 45 | struct buddy *buddy; |
| 3391 | 46 | GtkWidget *ebox; |
| 47 | GtkWidget *label; | |
| 5170 | 48 | GtkWidget *icon; |
|
6122
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
49 | guint timeout; |
| 3391 | 50 | } TickerData; |
| 51 | ||
| 5170 | 52 | GList *tickerbuds = NULL; |
| 3391 | 53 | |
| 5172 | 54 | static gboolean buddy_ticker_destroy_window(GtkWidget *window, |
| 55 | GdkEventAny *event, gpointer data) { | |
| 56 | if(window) | |
| 57 | gtk_widget_hide(window); | |
| 58 | ||
| 59 | return TRUE; /* don't actually destroy the window */ | |
| 3391 | 60 | } |
| 61 | ||
| 5170 | 62 | static void buddy_ticker_create_window() { |
| 63 | if(tickerwindow) { | |
| 64 | gtk_widget_show(tickerwindow); | |
| 65 | return; | |
| 66 | } | |
| 3391 | 67 | |
| 5170 | 68 | tickerwindow = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
|
5286
a35f037e7841
[gaim-migrate @ 5658]
David J. Brigada <brigada@prism.net>
parents:
5234
diff
changeset
|
69 | gtk_window_set_default_size(GTK_WINDOW(tickerwindow), 500, -1); |
| 5172 | 70 | g_signal_connect(G_OBJECT(tickerwindow), "delete_event", |
| 5170 | 71 | G_CALLBACK (buddy_ticker_destroy_window), NULL); |
| 72 | gtk_window_set_title (GTK_WINDOW(tickerwindow), _("Buddy Ticker")); | |
|
4850
ca9d06f1bb54
[gaim-migrate @ 5175]
Mark Doliner <markdoliner@pidgin.im>
parents:
4770
diff
changeset
|
73 | gtk_window_set_role (GTK_WINDOW(tickerwindow), "ticker"); |
| 3391 | 74 | |
|
4850
ca9d06f1bb54
[gaim-migrate @ 5175]
Mark Doliner <markdoliner@pidgin.im>
parents:
4770
diff
changeset
|
75 | ticker = gtk_ticker_new(); |
| 5170 | 76 | gtk_ticker_set_spacing(GTK_TICKER(ticker), 20); |
| 77 | gtk_container_add(GTK_CONTAINER(tickerwindow), ticker); | |
| 78 | gtk_ticker_set_interval(GTK_TICKER(ticker), 500); | |
| 79 | gtk_ticker_set_scootch(GTK_TICKER(ticker), 10); | |
| 80 | gtk_ticker_start_scroll(GTK_TICKER(ticker)); | |
|
5286
a35f037e7841
[gaim-migrate @ 5658]
David J. Brigada <brigada@prism.net>
parents:
5234
diff
changeset
|
81 | gtk_widget_set_size_request(ticker, 1, -1); |
| 3391 | 82 | |
| 5170 | 83 | gtk_widget_show_all(tickerwindow); |
| 3391 | 84 | } |
| 85 | ||
| 5170 | 86 | static gboolean buddy_click_cb(GtkWidget *widget, GdkEventButton *event, gpointer user_data) { |
| 87 | struct buddy *b = user_data; | |
|
4850
ca9d06f1bb54
[gaim-migrate @ 5175]
Mark Doliner <markdoliner@pidgin.im>
parents:
4770
diff
changeset
|
88 | |
| 5170 | 89 | gaim_conversation_new(GAIM_CONV_IM, b->account, b->name); |
| 3391 | 90 | return TRUE; |
| 91 | } | |
| 92 | ||
| 5170 | 93 | static TickerData *buddy_ticker_find_buddy(struct buddy *b) { |
| 94 | GList *tb; | |
| 95 | for(tb = tickerbuds; tb; tb = tb->next) { | |
| 96 | TickerData *td = tb->data; | |
| 97 | if(td->buddy == b) | |
| 98 | return td; | |
| 99 | } | |
| 100 | return NULL; | |
| 101 | } | |
| 102 | ||
| 103 | static void buddy_ticker_set_pixmap(struct buddy *b) { | |
| 104 | TickerData *td = buddy_ticker_find_buddy(b); | |
| 105 | GdkPixbuf *pixbuf; | |
| 3391 | 106 | |
| 5170 | 107 | if(!td) |
| 3391 | 108 | return; |
| 5170 | 109 | |
| 110 | if(!td->icon) | |
| 111 | td->icon = gtk_image_new(); | |
| 3391 | 112 | |
| 5234 | 113 | pixbuf = gaim_gtk_blist_get_status_icon((GaimBlistNode*)b, |
| 114 | GAIM_STATUS_ICON_SMALL); | |
| 5170 | 115 | gtk_image_set_from_pixbuf(GTK_IMAGE(td->icon), pixbuf); |
| 116 | g_object_unref(G_OBJECT(pixbuf)); | |
| 117 | } | |
| 118 | ||
|
6122
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
119 | static gboolean buddy_ticker_set_pixmap_cb(gpointer data) { |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
120 | TickerData *td = data; |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
121 | |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
122 | 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
|
123 | buddy_ticker_set_pixmap(td->buddy); |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
124 | td->timeout = 0; |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
125 | |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
126 | return FALSE; |
|
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 | |
| 5170 | 129 | static void buddy_ticker_add_buddy(struct buddy *b) { |
| 130 | GtkWidget *hbox; | |
| 131 | TickerData *td; | |
| 132 | ||
| 133 | buddy_ticker_create_window(); | |
| 5172 | 134 | |
| 3391 | 135 | if (!ticker) |
| 136 | return; | |
| 137 | ||
|
6122
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
138 | if (buddy_ticker_find_buddy(b)) |
| 3391 | 139 | return; |
| 140 | ||
| 5170 | 141 | td = g_new0(TickerData, 1); |
| 142 | td->buddy = b; | |
| 143 | tickerbuds = g_list_append(tickerbuds, td); | |
| 3391 | 144 | |
| 5170 | 145 | td->ebox = gtk_event_box_new(); |
| 146 | gtk_ticker_add(GTK_TICKER(ticker), td->ebox); | |
| 147 | hbox = gtk_hbox_new(FALSE, 0); | |
| 148 | gtk_container_add(GTK_CONTAINER(td->ebox), hbox); | |
| 149 | buddy_ticker_set_pixmap(b); | |
| 150 | gtk_box_pack_start(GTK_BOX(hbox), td->icon, FALSE, FALSE, 5); | |
| 3391 | 151 | |
| 5170 | 152 | g_signal_connect(G_OBJECT(td->ebox), "button-press-event", |
| 153 | G_CALLBACK(buddy_click_cb), b); | |
| 3391 | 154 | |
| 5170 | 155 | td->label = gtk_label_new(gaim_get_buddy_alias(b)); |
| 156 | gtk_box_pack_start(GTK_BOX(hbox), td->label, FALSE, FALSE, 5); | |
| 157 | ||
| 158 | gtk_widget_show_all(td->ebox); | |
| 159 | gtk_widget_show(tickerwindow); | |
|
6122
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
160 | |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
161 | /* |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
162 | * 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
|
163 | * changed). This is somewhat ugly. |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
164 | */ |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
165 | td->timeout = g_timeout_add(11000, buddy_ticker_set_pixmap_cb, td); |
| 3391 | 166 | } |
| 167 | ||
| 5170 | 168 | static void buddy_ticker_remove_buddy(struct buddy *b) { |
| 169 | TickerData *td = buddy_ticker_find_buddy(b); | |
| 3391 | 170 | |
| 5170 | 171 | if (!td) |
| 172 | return; | |
| 3391 | 173 | |
| 5172 | 174 | /* pop up the ticker window again */ |
| 175 | buddy_ticker_create_window(); | |
| 176 | ||
| 5170 | 177 | gtk_ticker_remove(GTK_TICKER(ticker), td->ebox); |
| 178 | tickerbuds = g_list_remove(tickerbuds, td); | |
|
6122
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
179 | if (td->timeout != 0) |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
180 | g_source_remove(td->timeout); |
| 5170 | 181 | g_free(td); |
| 3391 | 182 | } |
| 183 | ||
| 5170 | 184 | static void buddy_ticker_show() |
| 3391 | 185 | { |
| 5170 | 186 | struct gaim_buddy_list *list = gaim_get_blist(); |
| 187 | GaimBlistNode *gnode, *bnode; | |
| 188 | struct buddy *b; | |
| 3391 | 189 | |
| 5170 | 190 | if(!list) |
| 191 | return; | |
| 3391 | 192 | |
| 5170 | 193 | for(gnode = list->root; gnode; gnode = gnode->next) { |
| 194 | if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) | |
| 195 | continue; | |
| 196 | for(bnode = gnode->child; bnode; bnode = bnode->next) { | |
| 197 | if(!GAIM_BLIST_NODE_IS_BUDDY(bnode)) | |
| 198 | continue; | |
| 199 | b = (struct buddy *)bnode; | |
| 200 | if(GAIM_BUDDY_IS_ONLINE(b)) | |
| 201 | buddy_ticker_add_buddy(b); | |
| 3391 | 202 | } |
| 203 | } | |
| 204 | } | |
| 205 | ||
|
6122
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
206 | void signoff_cb(GaimConnection *gc) { |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
207 | TickerData *td; |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
208 | if (!gaim_connections_get_all()) { |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
209 | while (tickerbuds) { |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
210 | td = tickerbuds->data; |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
211 | tickerbuds = g_list_delete_link(tickerbuds, tickerbuds); |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
212 | if (td->timeout != 0) |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
213 | g_source_remove(td->timeout); |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
214 | g_free(td); |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
215 | } |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
216 | gtk_widget_destroy(tickerwindow); |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
217 | tickerwindow = NULL; |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
218 | ticker = NULL; |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
219 | } else { |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
220 | GList *t = tickerbuds; |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
221 | while (t) { |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
222 | td = t->data; |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
223 | t = t->next; |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
224 | if (td->buddy->account == gc->account) { |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
225 | tickerbuds = g_list_remove(tickerbuds, td); |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
226 | if (td->timeout != 0) |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
227 | g_source_remove(td->timeout); |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
228 | g_free(td); |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
229 | } |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
230 | } |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
231 | } |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
232 | } |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
233 | |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
234 | void buddy_signon_cb(GaimConnection *gc, char *who) { |
|
4850
ca9d06f1bb54
[gaim-migrate @ 5175]
Mark Doliner <markdoliner@pidgin.im>
parents:
4770
diff
changeset
|
235 | struct buddy *b = gaim_find_buddy(gc->account, who); |
| 5170 | 236 | if(buddy_ticker_find_buddy(b)) |
| 237 | buddy_ticker_set_pixmap(b); | |
| 238 | else | |
| 239 | buddy_ticker_add_buddy(b); | |
| 3391 | 240 | } |
| 241 | ||
|
5587
22cb9fe4798a
[gaim-migrate @ 5991]
Christian Hammond <chipx86@chipx86.com>
parents:
5286
diff
changeset
|
242 | void buddy_signoff_cb(GaimConnection *gc, char *who) { |
| 5170 | 243 | struct buddy *b = gaim_find_buddy(gc->account, who); |
| 244 | buddy_ticker_remove_buddy(b); | |
| 5185 | 245 | if(!tickerbuds) |
| 246 | gtk_widget_hide(tickerwindow); | |
| 3391 | 247 | } |
| 248 | ||
|
5587
22cb9fe4798a
[gaim-migrate @ 5991]
Christian Hammond <chipx86@chipx86.com>
parents:
5286
diff
changeset
|
249 | void away_cb(GaimConnection *gc, char *who) { |
|
4850
ca9d06f1bb54
[gaim-migrate @ 5175]
Mark Doliner <markdoliner@pidgin.im>
parents:
4770
diff
changeset
|
250 | struct buddy *b = gaim_find_buddy(gc->account, who); |
| 5170 | 251 | if(buddy_ticker_find_buddy(b)) |
| 252 | buddy_ticker_set_pixmap(b); | |
| 253 | else | |
| 254 | buddy_ticker_add_buddy(b); | |
| 3391 | 255 | } |
| 256 | ||
| 3630 | 257 | /* |
| 258 | * EXPORTED FUNCTIONS | |
| 259 | */ | |
| 260 | ||
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
261 | static gboolean |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
262 | plugin_load(GaimPlugin *plugin) |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
263 | { |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
264 | gaim_signal_connect(plugin, event_signoff, signoff_cb, NULL); |
|
6122
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
265 | gaim_signal_connect(plugin, event_buddy_signon, buddy_signon_cb, NULL); |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
266 | gaim_signal_connect(plugin, event_buddy_signoff, buddy_signoff_cb, NULL); |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
267 | gaim_signal_connect(plugin, event_buddy_away, away_cb, NULL); |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
268 | gaim_signal_connect(plugin, event_buddy_back, away_cb, NULL); |
| 3391 | 269 | |
| 5607 | 270 | if (gaim_connections_get_all()) |
| 5170 | 271 | buddy_ticker_show(); |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
272 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
273 | return TRUE; |
| 3391 | 274 | } |
| 275 | ||
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
276 | static gboolean |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
277 | plugin_unload(GaimPlugin *plugin) |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
278 | { |
|
6122
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
279 | TickerData *td; |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
280 | |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
281 | while (tickerbuds) { |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
282 | td = tickerbuds->data; |
| 5186 | 283 | tickerbuds = g_list_delete_link(tickerbuds, tickerbuds); |
|
6122
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
284 | if (td->timeout != 0) |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
285 | g_source_remove(td->timeout); |
|
9fbbcb229460
[gaim-migrate @ 6596]
Mark Doliner <markdoliner@pidgin.im>
parents:
6063
diff
changeset
|
286 | g_free(td); |
| 5185 | 287 | } |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
288 | |
|
5984
a5b22eb728ef
[gaim-migrate @ 6432]
Christian Hammond <chipx86@chipx86.com>
parents:
5983
diff
changeset
|
289 | if (tickerwindow != NULL) { |
|
5983
435a19acf12a
[gaim-migrate @ 6431]
Christian Hammond <chipx86@chipx86.com>
parents:
5920
diff
changeset
|
290 | gtk_widget_destroy(tickerwindow); |
|
5984
a5b22eb728ef
[gaim-migrate @ 6432]
Christian Hammond <chipx86@chipx86.com>
parents:
5983
diff
changeset
|
291 | tickerwindow = NULL; |
|
a5b22eb728ef
[gaim-migrate @ 6432]
Christian Hammond <chipx86@chipx86.com>
parents:
5983
diff
changeset
|
292 | } |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
293 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
294 | return TRUE; |
| 3391 | 295 | } |
| 5170 | 296 | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
297 | static GaimGtkPluginUiInfo ui_info = |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
298 | { |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
299 | NULL /**< get_config_frame */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
300 | }; |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
301 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
302 | static GaimPluginInfo info = |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
303 | { |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
304 | 2, /**< api_version */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
305 | GAIM_PLUGIN_STANDARD, /**< type */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
306 | GAIM_GTK_PLUGIN_TYPE, /**< ui_requirement */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
307 | 0, /**< flags */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
308 | NULL, /**< dependencies */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
309 | GAIM_PRIORITY_DEFAULT, /**< priority */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
310 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
311 | TICKER_PLUGIN_ID, /**< id */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
312 | N_("Buddy Ticker"), /**< name */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
313 | VERSION, /**< version */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
314 | /** summary */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
315 | N_("A horizontal scrolling version of the buddy list."), |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
316 | /** description */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
317 | N_("A horizontal scrolling version of the buddy list."), |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
318 | "Syd Logan", /**< author */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
319 | WEBSITE, /**< homepage */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
320 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
321 | plugin_load, /**< load */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
322 | plugin_unload, /**< unload */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
323 | NULL, /**< destroy */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
324 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
325 | &ui_info, /**< ui_info */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
326 | NULL /**< extra_info */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
327 | }; |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
328 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
329 | static void |
|
5920
963bfdefee02
[gaim-migrate @ 6360]
Christian Hammond <chipx86@chipx86.com>
parents:
5873
diff
changeset
|
330 | init_plugin(GaimPlugin *plugin) |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
331 | { |
| 3551 | 332 | } |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
333 | |
| 6063 | 334 | GAIM_INIT_PLUGIN(ticker, init_plugin, info) |