Sat, 22 Sep 2001 11:35:00 +0000
[gaim-migrate @ 2363]
I have an Abba song stuck in my head but I don't know what it's called or what any of the words are, except "Take a chance on me". Just that one line, over and over and over and over. And all because my sound card driver doesn't work and I'm too lazy to switch the speakers from blue back to penguin.
| 430 | 1 | /* GTK - The GIMP Toolkit |
| 2 | * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald | |
| 3 | * | |
| 4 | * This library is free software; you can redistribute it and/or | |
| 5 | * modify it under the terms of the GNU Library General Public | |
| 6 | * License as published by the Free Software Foundation; either | |
| 7 | * version 2 of the License, or (at your option) any later version. | |
| 8 | * | |
| 9 | * This library is distributed in the hope that it will be useful, | |
| 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| 12 | * Library General Public License for more details. | |
| 13 | * | |
| 14 | * You should have received a copy of the GNU Library General Public | |
| 15 | * License along with this library; if not, write to the | |
| 16 | * Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
| 17 | * Boston, MA 02111-1307, USA. | |
| 18 | */ | |
| 19 | ||
| 20 | /* | |
| 21 | * ticker.c -- Syd Logan, Summer 2000 | |
| 22 | */ | |
| 23 | ||
| 24 | #include <gtk/gtk.h> | |
| 25 | #include "gtkticker.h" | |
| 469 | 26 | #include <string.h> |
|
604
a20b54408619
[gaim-migrate @ 614]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
469
diff
changeset
|
27 | #include <stdlib.h> |
|
955
fb122efe31fa
[gaim-migrate @ 965]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
905
diff
changeset
|
28 | #include "gaim.h" |
|
1750
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
29 | #include "prpl.h" |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
30 | #include "pixmaps/no_icon.xpm" |
| 430 | 31 | |
| 32 | GtkWidget *tickerwindow = NULL; | |
| 33 | GtkWidget *ticker; | |
| 34 | ||
| 35 | typedef struct { | |
| 36 | char buddy[ 128 ]; | |
| 37 | GtkWidget *hbox; | |
|
438
c636dffa73b3
[gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents:
436
diff
changeset
|
38 | GtkWidget *ebox; |
| 430 | 39 | GtkWidget *label; |
| 40 | GtkWidget *pix; | |
| 41 | } TickerData; | |
| 42 | ||
| 43 | static GList *tickerbuds = (GList *) NULL; | |
|
432
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
44 | static gboolean userclose = FALSE; |
|
433
9572b183255a
[gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents:
432
diff
changeset
|
45 | static GtkWidget *msgw; |
| 430 | 46 | |
| 47 | void BuddyTickerDestroyWindow( GtkWidget *window ); | |
| 48 | void BuddyTickerCreateWindow( void ); | |
| 49 | void BuddyTickerAddUser( char *name, GdkPixmap *pm, GdkBitmap *bm ); | |
| 50 | void BuddyTickerRemoveUser( char *name ); | |
| 51 | void BuddyTickerSetPixmap( char *name, GdkPixmap *pm, GdkBitmap *bm ); | |
|
432
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
52 | void BuddyTickerClearList( void ); |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
53 | void BuddyTickerSignOff( void ); |
| 430 | 54 | GList * BuddyTickerFindUser( char *name ); |
|
433
9572b183255a
[gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents:
432
diff
changeset
|
55 | int BuddyTickerMessageRemove( gpointer data ); |
|
604
a20b54408619
[gaim-migrate @ 614]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
469
diff
changeset
|
56 | extern void pressed_ticker(char *); |
|
1750
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
57 | void BuddyTickerShow(); |
|
436
2314dcf7c7d4
[gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents:
434
diff
changeset
|
58 | |
| 430 | 59 | void |
| 60 | BuddyTickerDestroyWindow( GtkWidget *window ) | |
| 61 | { | |
|
432
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
62 | BuddyTickerClearList(); |
| 430 | 63 | gtk_ticker_stop_scroll( GTK_TICKER( ticker ) ); |
| 64 | gtk_widget_destroy( window ); | |
| 65 | ticker = tickerwindow = (GtkWidget *) NULL; | |
|
432
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
66 | userclose = TRUE; |
| 430 | 67 | } |
| 68 | ||
|
955
fb122efe31fa
[gaim-migrate @ 965]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
905
diff
changeset
|
69 | static char *msg = "Welcome to GAIM " VERSION ", brought to you by Rob Flynn (maintainer), Eric Warmenhoven, Mark Spencer, Jeramey Crawford, Jim Duchek, and Syd Logan"; |
|
433
9572b183255a
[gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents:
432
diff
changeset
|
70 | |
| 430 | 71 | void |
| 72 | BuddyTickerCreateWindow() | |
| 73 | { | |
| 74 | if ( tickerwindow != (GtkWidget *) NULL ) | |
| 75 | return; | |
| 76 | tickerwindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); | |
| 77 | gtk_signal_connect (GTK_OBJECT(tickerwindow), "destroy", | |
| 78 | GTK_SIGNAL_FUNC (BuddyTickerDestroyWindow), "WM destroy"); | |
|
433
9572b183255a
[gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents:
432
diff
changeset
|
79 | gtk_window_set_title (GTK_WINDOW(tickerwindow), "GAIM - Buddy Ticker"); |
| 905 | 80 | gtk_window_set_wmclass (GTK_WINDOW(tickerwindow), |
| 81 | "ticker", "Gaim"); | |
| 430 | 82 | |
| 83 | ticker = gtk_ticker_new(); | |
|
433
9572b183255a
[gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents:
432
diff
changeset
|
84 | gtk_ticker_set_spacing( GTK_TICKER( ticker ), 20 ); |
|
9572b183255a
[gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents:
432
diff
changeset
|
85 | gtk_widget_set_usize( ticker, 500, -1 ); |
| 430 | 86 | gtk_container_add( GTK_CONTAINER( tickerwindow ), ticker ); |
| 87 | gtk_ticker_set_interval( GTK_TICKER( ticker ), 500 ); | |
| 88 | gtk_ticker_set_scootch( GTK_TICKER( ticker ), 10 ); | |
|
433
9572b183255a
[gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents:
432
diff
changeset
|
89 | msgw = gtk_label_new( msg ); |
|
9572b183255a
[gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents:
432
diff
changeset
|
90 | gtk_ticker_add( GTK_TICKER( ticker ), msgw ); |
| 430 | 91 | gtk_ticker_start_scroll( GTK_TICKER( ticker ) ); |
|
433
9572b183255a
[gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents:
432
diff
changeset
|
92 | |
|
9572b183255a
[gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents:
432
diff
changeset
|
93 | gtk_timeout_add( 60000, BuddyTickerMessageRemove, (gpointer) NULL ); |
|
9572b183255a
[gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents:
432
diff
changeset
|
94 | |
|
9572b183255a
[gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents:
432
diff
changeset
|
95 | gtk_widget_show_all (ticker); |
|
9572b183255a
[gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents:
432
diff
changeset
|
96 | |
| 430 | 97 | } |
| 98 | ||
|
438
c636dffa73b3
[gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents:
436
diff
changeset
|
99 | gint |
|
c636dffa73b3
[gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents:
436
diff
changeset
|
100 | ButtonPressCallback( GtkWidget *widget, GdkEvent *event, gpointer callback_data ) |
|
c636dffa73b3
[gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents:
436
diff
changeset
|
101 | { |
|
c636dffa73b3
[gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents:
436
diff
changeset
|
102 | TickerData *p = (TickerData *) callback_data; |
|
c636dffa73b3
[gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents:
436
diff
changeset
|
103 | |
|
c636dffa73b3
[gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents:
436
diff
changeset
|
104 | pressed_ticker( p->buddy ); |
|
604
a20b54408619
[gaim-migrate @ 614]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
469
diff
changeset
|
105 | |
|
a20b54408619
[gaim-migrate @ 614]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
469
diff
changeset
|
106 | return TRUE; |
|
438
c636dffa73b3
[gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents:
436
diff
changeset
|
107 | } |
|
c636dffa73b3
[gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents:
436
diff
changeset
|
108 | |
| 430 | 109 | void |
| 110 | BuddyTickerAddUser( char *name, GdkPixmap *pm, GdkBitmap *bm ) | |
| 111 | { | |
| 112 | TickerData *p; | |
|
432
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
113 | GList *q; |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
114 | |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
115 | if ( userclose == TRUE ) |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
116 | return; |
|
436
2314dcf7c7d4
[gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents:
434
diff
changeset
|
117 | |
|
2314dcf7c7d4
[gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents:
434
diff
changeset
|
118 | BuddyTickerCreateWindow(); |
|
2314dcf7c7d4
[gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents:
434
diff
changeset
|
119 | |
|
432
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
120 | q = (GList *) BuddyTickerFindUser( name ); |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
121 | if ( q != (GList *) NULL ) |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
122 | return; |
| 430 | 123 | |
| 124 | p = (TickerData *) malloc( sizeof( TickerData ) ); | |
| 125 | p->hbox = (GtkWidget *) NULL; | |
| 126 | p->label = (GtkWidget *) NULL; | |
| 127 | p->pix = (GtkWidget *) NULL; | |
| 128 | strcpy( p->buddy, name ); | |
| 129 | tickerbuds = g_list_append( tickerbuds, p ); | |
| 130 | ||
| 131 | p->hbox = gtk_hbox_new( FALSE, 0 ); | |
| 132 | gtk_ticker_add( GTK_TICKER( ticker ), p->hbox ); | |
| 133 | gtk_widget_show_all( p->hbox ); | |
| 134 | ||
| 135 | BuddyTickerSetPixmap( name, pm, bm ); | |
| 136 | ||
|
438
c636dffa73b3
[gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents:
436
diff
changeset
|
137 | p->ebox = gtk_event_box_new(); |
|
c636dffa73b3
[gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents:
436
diff
changeset
|
138 | |
| 1976 | 139 | /* click detection */ |
|
438
c636dffa73b3
[gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents:
436
diff
changeset
|
140 | |
|
c636dffa73b3
[gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents:
436
diff
changeset
|
141 | gtk_widget_set_events (p->ebox, GDK_BUTTON_PRESS_MASK); |
|
c636dffa73b3
[gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents:
436
diff
changeset
|
142 | gtk_signal_connect (GTK_OBJECT (p->ebox), "button_press_event", |
|
c636dffa73b3
[gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents:
436
diff
changeset
|
143 | GTK_SIGNAL_FUNC(ButtonPressCallback), (gpointer) p); |
|
c636dffa73b3
[gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents:
436
diff
changeset
|
144 | |
|
c636dffa73b3
[gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents:
436
diff
changeset
|
145 | gtk_box_pack_start_defaults( GTK_BOX( p->hbox ), p->ebox ); |
|
c636dffa73b3
[gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents:
436
diff
changeset
|
146 | gtk_widget_show( p->ebox ); |
|
c636dffa73b3
[gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents:
436
diff
changeset
|
147 | |
| 430 | 148 | p->label = gtk_label_new( name ); |
|
438
c636dffa73b3
[gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents:
436
diff
changeset
|
149 | gtk_container_add( GTK_CONTAINER(p->ebox), p->label ); |
|
c636dffa73b3
[gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents:
436
diff
changeset
|
150 | |
| 430 | 151 | gtk_widget_show( p->label ); |
| 152 | ||
| 153 | gtk_widget_show( tickerwindow ); | |
| 154 | } | |
| 155 | ||
| 156 | void | |
| 157 | BuddyTickerRemoveUser( char *name ) | |
| 158 | { | |
| 159 | GList *p = (GList *) BuddyTickerFindUser( name ); | |
|
460
5b5a02fee313
[gaim-migrate @ 470]
Syd Logan <slogan@users.sourceforge.net>
parents:
438
diff
changeset
|
160 | TickerData *data; |
|
5b5a02fee313
[gaim-migrate @ 470]
Syd Logan <slogan@users.sourceforge.net>
parents:
438
diff
changeset
|
161 | |
|
5b5a02fee313
[gaim-migrate @ 470]
Syd Logan <slogan@users.sourceforge.net>
parents:
438
diff
changeset
|
162 | if ( !p ) |
|
5b5a02fee313
[gaim-migrate @ 470]
Syd Logan <slogan@users.sourceforge.net>
parents:
438
diff
changeset
|
163 | return; |
|
5b5a02fee313
[gaim-migrate @ 470]
Syd Logan <slogan@users.sourceforge.net>
parents:
438
diff
changeset
|
164 | |
|
5b5a02fee313
[gaim-migrate @ 470]
Syd Logan <slogan@users.sourceforge.net>
parents:
438
diff
changeset
|
165 | data = (TickerData *) p->data; |
| 430 | 166 | |
|
432
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
167 | if ( userclose == TRUE ) |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
168 | return; |
| 430 | 169 | if ( data ) { |
| 170 | gtk_ticker_remove( GTK_TICKER( ticker ), data->hbox ); | |
| 171 | tickerbuds = g_list_remove( tickerbuds, data ); | |
| 172 | free( data ); | |
| 173 | } | |
| 174 | } | |
| 175 | ||
| 176 | void | |
| 177 | BuddyTickerSetPixmap( char *name, GdkPixmap *pm, GdkBitmap *bm ) | |
| 178 | { | |
|
1750
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
179 | GList *p; |
|
432
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
180 | TickerData *data; |
| 430 | 181 | |
|
432
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
182 | if ( userclose == TRUE ) |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
183 | return; |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
184 | p = (GList *) BuddyTickerFindUser( name ); |
|
436
2314dcf7c7d4
[gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents:
434
diff
changeset
|
185 | if ( p ) |
|
2314dcf7c7d4
[gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents:
434
diff
changeset
|
186 | data = (TickerData *) p->data; |
|
2314dcf7c7d4
[gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents:
434
diff
changeset
|
187 | else |
|
2314dcf7c7d4
[gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents:
434
diff
changeset
|
188 | return; |
| 430 | 189 | if ( data->pix == (GtkWidget *) NULL ) { |
| 190 | data->pix = gtk_pixmap_new( pm, bm ); | |
| 191 | gtk_box_pack_start_defaults( GTK_BOX( data->hbox ), data->pix ); | |
| 192 | } else { | |
| 193 | gtk_widget_hide( data->pix ); | |
| 194 | gtk_pixmap_set(GTK_PIXMAP(data->pix), pm, bm); | |
| 195 | } | |
| 196 | gtk_widget_show( data->pix ); | |
| 197 | } | |
| 198 | ||
| 199 | GList * | |
| 200 | BuddyTickerFindUser( char *name ) | |
| 201 | { | |
| 202 | GList *p = tickerbuds; | |
| 203 | ||
| 204 | while ( p ) { | |
| 205 | TickerData *q = (TickerData *) p->data; | |
| 206 | if ( !strcmp( name, q->buddy ) ) | |
| 207 | return( p ); | |
| 208 | p = p->next; | |
| 209 | } | |
| 210 | return (GList *) NULL; | |
| 211 | } | |
| 212 | ||
| 213 | int | |
|
433
9572b183255a
[gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents:
432
diff
changeset
|
214 | BuddyTickerMessageRemove( gpointer data ) |
|
9572b183255a
[gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents:
432
diff
changeset
|
215 | { |
|
9572b183255a
[gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents:
432
diff
changeset
|
216 | if ( userclose == TRUE ) |
|
604
a20b54408619
[gaim-migrate @ 614]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
469
diff
changeset
|
217 | return FALSE; |
|
1425
45cdf4249609
[gaim-migrate @ 1435]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
955
diff
changeset
|
218 | if ( tickerwindow == NULL ) |
|
45cdf4249609
[gaim-migrate @ 1435]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
955
diff
changeset
|
219 | return FALSE; |
|
433
9572b183255a
[gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents:
432
diff
changeset
|
220 | gtk_ticker_remove( GTK_TICKER( ticker ), msgw ); |
|
9572b183255a
[gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents:
432
diff
changeset
|
221 | return FALSE; |
|
9572b183255a
[gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents:
432
diff
changeset
|
222 | } |
|
9572b183255a
[gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents:
432
diff
changeset
|
223 | |
|
9572b183255a
[gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents:
432
diff
changeset
|
224 | int |
| 430 | 225 | BuddyTickerLogonTimeout( gpointer data ) |
| 226 | { | |
| 227 | return FALSE; | |
| 228 | } | |
| 229 | ||
| 230 | int | |
| 231 | BuddyTickerLogoutTimeout( gpointer data ) | |
| 232 | { | |
| 233 | char *name = (char *) data; | |
| 234 | ||
|
432
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
235 | if ( userclose == TRUE ) |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
236 | return FALSE; |
| 430 | 237 | BuddyTickerRemoveUser( name ); |
| 238 | ||
| 239 | return FALSE; | |
| 240 | } | |
|
432
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
241 | |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
242 | void |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
243 | BuddyTickerSignoff( void ) |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
244 | { |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
245 | GList *p = tickerbuds; |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
246 | TickerData *q; |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
247 | |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
248 | while ( p ) { |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
249 | q = (TickerData *) p->data; |
|
436
2314dcf7c7d4
[gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents:
434
diff
changeset
|
250 | if ( q ) |
|
2314dcf7c7d4
[gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents:
434
diff
changeset
|
251 | BuddyTickerRemoveUser( q->buddy ); |
|
432
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
252 | p = tickerbuds; |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
253 | } |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
254 | userclose = FALSE; |
|
1425
45cdf4249609
[gaim-migrate @ 1435]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
955
diff
changeset
|
255 | if ( tickerwindow ) |
|
45cdf4249609
[gaim-migrate @ 1435]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
955
diff
changeset
|
256 | gtk_widget_hide( tickerwindow ); |
|
432
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
257 | } |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
258 | |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
259 | void |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
260 | BuddyTickerClearList( void ) |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
261 | { |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
262 | GList *p = tickerbuds; |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
263 | |
|
436
2314dcf7c7d4
[gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents:
434
diff
changeset
|
264 | while ( p ) |
|
432
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
265 | p = g_list_remove( p, p->data ); |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
266 | tickerbuds = (GList *) NULL; |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
267 | } |
|
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
268 | |
|
1750
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
269 | void BuddyTickerShow() |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
270 | { |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
271 | GdkPixmap *pm; |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
272 | GdkBitmap *bm; |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
273 | struct gaim_connection *gc; |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
274 | struct group *g; |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
275 | struct buddy *b; |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
276 | GSList *gcons, *grps, *buds; |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
277 | char **xpm; |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
278 | |
|
2313
f7f7ff0b8d4a
[gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1976
diff
changeset
|
279 | if( !(misc_options & OPT_MISC_BUDDY_TICKER) ) { |
|
1750
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
280 | BuddyTickerSignoff(); |
|
2313
f7f7ff0b8d4a
[gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1976
diff
changeset
|
281 | misc_options &= ~OPT_MISC_BUDDY_TICKER; |
|
1750
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
282 | return; |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
283 | } |
|
432
497a46b74642
[gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents:
430
diff
changeset
|
284 | |
|
1750
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
285 | for( gcons = connections; gcons; gcons = gcons->next ) { |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
286 | gc = (struct gaim_connection *)gcons->data; |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
287 | for( grps = gc->groups; grps; grps = grps->next ) { |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
288 | g = (struct group *)grps->data; |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
289 | for( buds = g->members; buds; buds = buds->next ) { |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
290 | b = (struct buddy *)buds->data; |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
291 | if( b->present ) { |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
292 | xpm = NULL; |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
293 | if (gc->prpl->list_icon) |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
294 | xpm = (*gc->prpl->list_icon)(b->uc); |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
295 | if (xpm == NULL) |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
296 | xpm = (char **)no_icon_xpm; |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
297 | pm = gdk_pixmap_create_from_xpm_d(blist->window, &bm, NULL, xpm); |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
298 | BuddyTickerAddUser( b->name, pm, bm ); |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
299 | } |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
300 | } |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
301 | } |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
302 | } |
|
f2a0aa76d7ec
[gaim-migrate @ 1760]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1425
diff
changeset
|
303 | } |