Mercurial > pidgin.yaz
annotate plugins/ticker/ticker.c @ 7694:6a9acef3b867
[gaim-migrate @ 8339]
Committing this now so that I don't accidentally destroy it again.
We're going WYSIWYG, folks. This is the beginning of it. Don't bother
trying to tell me what doesn't work yet. This is just a sneak-peek.
Bold, Italics, and Underline work fairly well. The toggle buttons in the
tooltips won't necessarily be accurate yet, and things will get screwed up
if you say, start typing, make something bold, then go back to before where
you started typing and type there. It'll all be fixed eventually.
NOTE: I am not liable for any sexual arousal caused by using this code
committer: Tailor Script <tailor@pidgin.im>
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Tue, 02 Dec 2003 07:33:42 +0000 |
parents | abdc55ffadba |
children | 8d41a4250bb7 |
rev | line source |
---|---|
6122 | 1 /* |
2 * Gaim Ticker Plugin | |
3 * The line below doesn't apply at all, does it? It should be Syd, Sean, and | |
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
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
27 #include "internal.h" |
6371
8f94cce8faa5
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6122
diff
changeset
|
28 #include "gtkinternal.h" |
3391 | 29 |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
30 #include "blist.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
31 #include "conversation.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
32 #include "debug.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
33 #include "prpl.h" |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
34 #include "signals.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
35 |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
36 #include "gtkblist.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
37 #include "gtkplugin.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
38 |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
39 #include "gtkticker.h" |
3391 | 40 |
5205
fefad67de2c7
[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 | 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 | 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 | 75 gtk_window_set_role (GTK_WINDOW(tickerwindow), "ticker"); |
3391 | 76 |
4850 | 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 | 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 | 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 | 121 static gboolean buddy_ticker_set_pixmap_cb(gpointer data) { |
122 TickerData *td = data; | |
123 | |
124 gaim_debug(GAIM_DEBUG_ERROR, "XXX", "we're updating the pixmap, you bitch\n"); | |
125 buddy_ticker_set_pixmap(td->buddy); | |
126 td->timeout = 0; | |
127 | |
128 return FALSE; | |
129 } | |
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 | 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 |
5170 | 157 td->label = gtk_label_new(gaim_get_buddy_alias(b)); |
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 | 162 |
163 /* | |
164 * Update the icon in a few seconds (after the open door icon has | |
165 * changed). This is somewhat ugly. | |
166 */ | |
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 | 181 if (td->timeout != 0) |
182 g_source_remove(td->timeout); | |
5170 | 183 g_free(td); |
3391 | 184 } |
185 | |
5170 | 186 static void buddy_ticker_show() |
3391 | 187 { |
7100
abdc55ffadba
[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
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
212 static void |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
213 signoff_cb(GaimConnection *gc) |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
214 { |
6122 | 215 TickerData *td; |
216 if (!gaim_connections_get_all()) { | |
217 while (tickerbuds) { | |
218 td = tickerbuds->data; | |
219 tickerbuds = g_list_delete_link(tickerbuds, tickerbuds); | |
220 if (td->timeout != 0) | |
221 g_source_remove(td->timeout); | |
222 g_free(td); | |
223 } | |
224 gtk_widget_destroy(tickerwindow); | |
225 tickerwindow = NULL; | |
226 ticker = NULL; | |
227 } else { | |
228 GList *t = tickerbuds; | |
229 while (t) { | |
230 td = t->data; | |
231 t = t->next; | |
232 if (td->buddy->account == gc->account) { | |
233 tickerbuds = g_list_remove(tickerbuds, td); | |
234 if (td->timeout != 0) | |
235 g_source_remove(td->timeout); | |
236 g_free(td); | |
237 } | |
238 } | |
239 } | |
240 } | |
241 | |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
242 static void |
6695 | 243 buddy_signon_cb(GaimBuddy *b) |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
244 { |
5170 | 245 if(buddy_ticker_find_buddy(b)) |
246 buddy_ticker_set_pixmap(b); | |
247 else | |
248 buddy_ticker_add_buddy(b); | |
3391 | 249 } |
250 | |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
251 static void |
6695 | 252 buddy_signoff_cb(GaimBuddy *b) |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
253 { |
5170 | 254 buddy_ticker_remove_buddy(b); |
5185 | 255 if(!tickerbuds) |
256 gtk_widget_hide(tickerwindow); | |
3391 | 257 } |
258 | |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
259 static void |
6695 | 260 away_cb(GaimBuddy *b) |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
261 { |
5170 | 262 if(buddy_ticker_find_buddy(b)) |
263 buddy_ticker_set_pixmap(b); | |
264 else | |
265 buddy_ticker_add_buddy(b); | |
3391 | 266 } |
267 | |
3630 | 268 /* |
269 * EXPORTED FUNCTIONS | |
270 */ | |
271 | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
272 static gboolean |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
273 plugin_load(GaimPlugin *plugin) |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
274 { |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
275 void *blist_handle = gaim_blist_get_handle(); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
276 |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
277 gaim_signal_connect(gaim_connections_get_handle(), "signed-off", |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
278 plugin, GAIM_CALLBACK(signoff_cb), NULL); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
279 gaim_signal_connect(blist_handle, "buddy-signed-on", |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
280 plugin, GAIM_CALLBACK(buddy_signon_cb), NULL); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
281 gaim_signal_connect(blist_handle, "buddy-signed-off", |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
282 plugin, GAIM_CALLBACK(buddy_signoff_cb), NULL); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
283 gaim_signal_connect(blist_handle, "buddy-away", |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
284 plugin, GAIM_CALLBACK(away_cb), NULL); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
285 gaim_signal_connect(blist_handle, "buddy-back", |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
286 plugin, GAIM_CALLBACK(away_cb), NULL); |
3391 | 287 |
5607 | 288 if (gaim_connections_get_all()) |
5170 | 289 buddy_ticker_show(); |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
290 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
291 return TRUE; |
3391 | 292 } |
293 | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
294 static gboolean |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
295 plugin_unload(GaimPlugin *plugin) |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
296 { |
6122 | 297 TickerData *td; |
298 | |
299 while (tickerbuds) { | |
300 td = tickerbuds->data; | |
5186 | 301 tickerbuds = g_list_delete_link(tickerbuds, tickerbuds); |
6122 | 302 if (td->timeout != 0) |
303 g_source_remove(td->timeout); | |
304 g_free(td); | |
5185 | 305 } |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
306 |
5984
c55b32640690
[gaim-migrate @ 6432]
Christian Hammond <chipx86@chipx86.com>
parents:
5983
diff
changeset
|
307 if (tickerwindow != NULL) { |
5983
e0be64ced3d7
[gaim-migrate @ 6431]
Christian Hammond <chipx86@chipx86.com>
parents:
5920
diff
changeset
|
308 gtk_widget_destroy(tickerwindow); |
5984
c55b32640690
[gaim-migrate @ 6432]
Christian Hammond <chipx86@chipx86.com>
parents:
5983
diff
changeset
|
309 tickerwindow = NULL; |
c55b32640690
[gaim-migrate @ 6432]
Christian Hammond <chipx86@chipx86.com>
parents:
5983
diff
changeset
|
310 } |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
311 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
312 return TRUE; |
3391 | 313 } |
5170 | 314 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
315 static GaimGtkPluginUiInfo ui_info = |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
316 { |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
317 NULL /**< get_config_frame */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
318 }; |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
319 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
320 static GaimPluginInfo info = |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
321 { |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
322 2, /**< api_version */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
323 GAIM_PLUGIN_STANDARD, /**< type */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
324 GAIM_GTK_PLUGIN_TYPE, /**< ui_requirement */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
325 0, /**< flags */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
326 NULL, /**< dependencies */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
327 GAIM_PRIORITY_DEFAULT, /**< priority */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
328 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
329 TICKER_PLUGIN_ID, /**< id */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
330 N_("Buddy Ticker"), /**< name */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
331 VERSION, /**< version */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
332 /** summary */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
333 N_("A horizontal scrolling version of the buddy list."), |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
334 /** description */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
335 N_("A horizontal scrolling version of the buddy list."), |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
336 "Syd Logan", /**< author */ |
6371
8f94cce8faa5
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6122
diff
changeset
|
337 GAIM_WEBSITE, /**< homepage */ |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
338 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
339 plugin_load, /**< load */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
340 plugin_unload, /**< unload */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
341 NULL, /**< destroy */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
342 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
343 &ui_info, /**< ui_info */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
344 NULL /**< extra_info */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
345 }; |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
346 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
347 static void |
5920
7d385de2f9cd
[gaim-migrate @ 6360]
Christian Hammond <chipx86@chipx86.com>
parents:
5873
diff
changeset
|
348 init_plugin(GaimPlugin *plugin) |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
349 { |
3551 | 350 } |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5186
diff
changeset
|
351 |
6063 | 352 GAIM_INIT_PLUGIN(ticker, init_plugin, info) |