annotate src/ticker.c @ 2373:84a5ea08545a

[gaim-migrate @ 2386] you got the mother and the kids, you got the guy and his date we all get mad. we all get late. Looks like somebody! forgot about us! Standing on a corner, waiting for a bus! say hey mister driver man, don't be slow cuz i've got somewhere i've gotta go say hey mister driver man, drive that thing fast! my precious time keeps, slippin' past! let's call the mayor, let's complain look what the city's done to us again tied up in traffic, what do you know the damn city bus, moves so slow --Violent Femmes committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Thu, 27 Sep 2001 19:27:52 +0000
parents bd9d403fb15b
children 2bc6ee172103
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
1 /* GTK - The GIMP Toolkit
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
3 *
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
4 * This library is free software; you can redistribute it and/or
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
5 * modify it under the terms of the GNU Library General Public
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
6 * License as published by the Free Software Foundation; either
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
7 * version 2 of the License, or (at your option) any later version.
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
8 *
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
9 * This library is distributed in the hope that it will be useful,
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
12 * Library General Public License for more details.
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
13 *
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
14 * You should have received a copy of the GNU Library General Public
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
15 * License along with this library; if not, write to the
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
17 * Boston, MA 02111-1307, USA.
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
18 */
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
19
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
20 /*
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
21 * ticker.c -- Syd Logan, Summer 2000
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
22 */
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
23
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
24 #include <gtk/gtk.h>
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
25 #include "gtkticker.h"
469
7ac742be351d [gaim-migrate @ 479]
Rob Flynn <gaim@robflynn.com>
parents: 460
diff changeset
26 #include <string.h>
604
0b1a132e0f75 [gaim-migrate @ 614]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 469
diff changeset
27 #include <stdlib.h>
955
889e5026fd98 [gaim-migrate @ 965]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 905
diff changeset
28 #include "gaim.h"
1750
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
29 #include "prpl.h"
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
30 #include "pixmaps/no_icon.xpm"
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
31
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
32 GtkWidget *tickerwindow = NULL;
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
33 GtkWidget *ticker;
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
34
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
35 typedef struct {
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
36 char buddy[ 128 ];
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
37 GtkWidget *hbox;
438
881f5d538f15 [gaim-migrate @ 448]
Syd Logan <slogan>
parents: 436
diff changeset
38 GtkWidget *ebox;
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
39 GtkWidget *label;
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
40 GtkWidget *pix;
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
41 } TickerData;
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
42
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
43 static GList *tickerbuds = (GList *) NULL;
432
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
44 static gboolean userclose = FALSE;
433
f82e84386fdf [gaim-migrate @ 443]
Syd Logan <slogan>
parents: 432
diff changeset
45 static GtkWidget *msgw;
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
46
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
47 void BuddyTickerDestroyWindow( GtkWidget *window );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
48 void BuddyTickerCreateWindow( void );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
49 void BuddyTickerAddUser( char *name, GdkPixmap *pm, GdkBitmap *bm );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
50 void BuddyTickerRemoveUser( char *name );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
51 void BuddyTickerSetPixmap( char *name, GdkPixmap *pm, GdkBitmap *bm );
432
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
52 void BuddyTickerClearList( void );
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
53 void BuddyTickerSignOff( void );
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
54 GList * BuddyTickerFindUser( char *name );
433
f82e84386fdf [gaim-migrate @ 443]
Syd Logan <slogan>
parents: 432
diff changeset
55 int BuddyTickerMessageRemove( gpointer data );
604
0b1a132e0f75 [gaim-migrate @ 614]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 469
diff changeset
56 extern void pressed_ticker(char *);
1750
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
57 void BuddyTickerShow();
436
7d5f91c1ff20 [gaim-migrate @ 446]
Syd Logan <slogan>
parents: 434
diff changeset
58
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
59 void
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
60 BuddyTickerDestroyWindow( GtkWidget *window )
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
61 {
432
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
62 BuddyTickerClearList();
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
63 gtk_ticker_stop_scroll( GTK_TICKER( ticker ) );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
64 gtk_widget_destroy( window );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
65 ticker = tickerwindow = (GtkWidget *) NULL;
432
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
66 userclose = TRUE;
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
67 }
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
68
955
889e5026fd98 [gaim-migrate @ 965]
Eric Warmenhoven <eric@warmenhoven.org>
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
f82e84386fdf [gaim-migrate @ 443]
Syd Logan <slogan>
parents: 432
diff changeset
70
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
71 void
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
72 BuddyTickerCreateWindow()
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
73 {
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
74 if ( tickerwindow != (GtkWidget *) NULL )
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
75 return;
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
76 tickerwindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
77 gtk_signal_connect (GTK_OBJECT(tickerwindow), "destroy",
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
78 GTK_SIGNAL_FUNC (BuddyTickerDestroyWindow), "WM destroy");
433
f82e84386fdf [gaim-migrate @ 443]
Syd Logan <slogan>
parents: 432
diff changeset
79 gtk_window_set_title (GTK_WINDOW(tickerwindow), "GAIM - Buddy Ticker");
905
2876c40108cd [gaim-migrate @ 915]
Rob Flynn <gaim@robflynn.com>
parents: 604
diff changeset
80 gtk_window_set_wmclass (GTK_WINDOW(tickerwindow),
2876c40108cd [gaim-migrate @ 915]
Rob Flynn <gaim@robflynn.com>
parents: 604
diff changeset
81 "ticker", "Gaim");
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
82
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
83 ticker = gtk_ticker_new();
433
f82e84386fdf [gaim-migrate @ 443]
Syd Logan <slogan>
parents: 432
diff changeset
84 gtk_ticker_set_spacing( GTK_TICKER( ticker ), 20 );
f82e84386fdf [gaim-migrate @ 443]
Syd Logan <slogan>
parents: 432
diff changeset
85 gtk_widget_set_usize( ticker, 500, -1 );
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
86 gtk_container_add( GTK_CONTAINER( tickerwindow ), ticker );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
87 gtk_ticker_set_interval( GTK_TICKER( ticker ), 500 );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
88 gtk_ticker_set_scootch( GTK_TICKER( ticker ), 10 );
433
f82e84386fdf [gaim-migrate @ 443]
Syd Logan <slogan>
parents: 432
diff changeset
89 msgw = gtk_label_new( msg );
f82e84386fdf [gaim-migrate @ 443]
Syd Logan <slogan>
parents: 432
diff changeset
90 gtk_ticker_add( GTK_TICKER( ticker ), msgw );
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
91 gtk_ticker_start_scroll( GTK_TICKER( ticker ) );
433
f82e84386fdf [gaim-migrate @ 443]
Syd Logan <slogan>
parents: 432
diff changeset
92
f82e84386fdf [gaim-migrate @ 443]
Syd Logan <slogan>
parents: 432
diff changeset
93 gtk_timeout_add( 60000, BuddyTickerMessageRemove, (gpointer) NULL );
f82e84386fdf [gaim-migrate @ 443]
Syd Logan <slogan>
parents: 432
diff changeset
94
f82e84386fdf [gaim-migrate @ 443]
Syd Logan <slogan>
parents: 432
diff changeset
95 gtk_widget_show_all (ticker);
f82e84386fdf [gaim-migrate @ 443]
Syd Logan <slogan>
parents: 432
diff changeset
96
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
97 }
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
98
438
881f5d538f15 [gaim-migrate @ 448]
Syd Logan <slogan>
parents: 436
diff changeset
99 gint
881f5d538f15 [gaim-migrate @ 448]
Syd Logan <slogan>
parents: 436
diff changeset
100 ButtonPressCallback( GtkWidget *widget, GdkEvent *event, gpointer callback_data )
881f5d538f15 [gaim-migrate @ 448]
Syd Logan <slogan>
parents: 436
diff changeset
101 {
881f5d538f15 [gaim-migrate @ 448]
Syd Logan <slogan>
parents: 436
diff changeset
102 TickerData *p = (TickerData *) callback_data;
881f5d538f15 [gaim-migrate @ 448]
Syd Logan <slogan>
parents: 436
diff changeset
103
881f5d538f15 [gaim-migrate @ 448]
Syd Logan <slogan>
parents: 436
diff changeset
104 pressed_ticker( p->buddy );
604
0b1a132e0f75 [gaim-migrate @ 614]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 469
diff changeset
105
0b1a132e0f75 [gaim-migrate @ 614]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 469
diff changeset
106 return TRUE;
438
881f5d538f15 [gaim-migrate @ 448]
Syd Logan <slogan>
parents: 436
diff changeset
107 }
881f5d538f15 [gaim-migrate @ 448]
Syd Logan <slogan>
parents: 436
diff changeset
108
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
109 void
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
110 BuddyTickerAddUser( char *name, GdkPixmap *pm, GdkBitmap *bm )
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
111 {
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
112 TickerData *p;
432
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
113 GList *q;
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
114
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
115 if ( userclose == TRUE )
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
116 return;
436
7d5f91c1ff20 [gaim-migrate @ 446]
Syd Logan <slogan>
parents: 434
diff changeset
117
7d5f91c1ff20 [gaim-migrate @ 446]
Syd Logan <slogan>
parents: 434
diff changeset
118 BuddyTickerCreateWindow();
7d5f91c1ff20 [gaim-migrate @ 446]
Syd Logan <slogan>
parents: 434
diff changeset
119
432
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
120 q = (GList *) BuddyTickerFindUser( name );
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
121 if ( q != (GList *) NULL )
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
122 return;
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
123
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
124 p = (TickerData *) malloc( sizeof( TickerData ) );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
125 p->hbox = (GtkWidget *) NULL;
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
126 p->label = (GtkWidget *) NULL;
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
127 p->pix = (GtkWidget *) NULL;
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
128 strcpy( p->buddy, name );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
129 tickerbuds = g_list_append( tickerbuds, p );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
130
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
131 p->hbox = gtk_hbox_new( FALSE, 0 );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
132 gtk_ticker_add( GTK_TICKER( ticker ), p->hbox );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
133 gtk_widget_show_all( p->hbox );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
134
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
135 BuddyTickerSetPixmap( name, pm, bm );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
136
438
881f5d538f15 [gaim-migrate @ 448]
Syd Logan <slogan>
parents: 436
diff changeset
137 p->ebox = gtk_event_box_new();
881f5d538f15 [gaim-migrate @ 448]
Syd Logan <slogan>
parents: 436
diff changeset
138
1976
24aed1c31342 [gaim-migrate @ 1986]
Rob Flynn <gaim@robflynn.com>
parents: 1750
diff changeset
139 /* click detection */
438
881f5d538f15 [gaim-migrate @ 448]
Syd Logan <slogan>
parents: 436
diff changeset
140
881f5d538f15 [gaim-migrate @ 448]
Syd Logan <slogan>
parents: 436
diff changeset
141 gtk_widget_set_events (p->ebox, GDK_BUTTON_PRESS_MASK);
881f5d538f15 [gaim-migrate @ 448]
Syd Logan <slogan>
parents: 436
diff changeset
142 gtk_signal_connect (GTK_OBJECT (p->ebox), "button_press_event",
881f5d538f15 [gaim-migrate @ 448]
Syd Logan <slogan>
parents: 436
diff changeset
143 GTK_SIGNAL_FUNC(ButtonPressCallback), (gpointer) p);
881f5d538f15 [gaim-migrate @ 448]
Syd Logan <slogan>
parents: 436
diff changeset
144
881f5d538f15 [gaim-migrate @ 448]
Syd Logan <slogan>
parents: 436
diff changeset
145 gtk_box_pack_start_defaults( GTK_BOX( p->hbox ), p->ebox );
881f5d538f15 [gaim-migrate @ 448]
Syd Logan <slogan>
parents: 436
diff changeset
146 gtk_widget_show( p->ebox );
881f5d538f15 [gaim-migrate @ 448]
Syd Logan <slogan>
parents: 436
diff changeset
147
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
148 p->label = gtk_label_new( name );
438
881f5d538f15 [gaim-migrate @ 448]
Syd Logan <slogan>
parents: 436
diff changeset
149 gtk_container_add( GTK_CONTAINER(p->ebox), p->label );
881f5d538f15 [gaim-migrate @ 448]
Syd Logan <slogan>
parents: 436
diff changeset
150
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
151 gtk_widget_show( p->label );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
152
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
153 gtk_widget_show( tickerwindow );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
154 }
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
155
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
156 void
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
157 BuddyTickerRemoveUser( char *name )
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
158 {
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
159 GList *p = (GList *) BuddyTickerFindUser( name );
460
f4d6dc3a1ada [gaim-migrate @ 470]
Syd Logan <slogan>
parents: 438
diff changeset
160 TickerData *data;
f4d6dc3a1ada [gaim-migrate @ 470]
Syd Logan <slogan>
parents: 438
diff changeset
161
f4d6dc3a1ada [gaim-migrate @ 470]
Syd Logan <slogan>
parents: 438
diff changeset
162 if ( !p )
f4d6dc3a1ada [gaim-migrate @ 470]
Syd Logan <slogan>
parents: 438
diff changeset
163 return;
f4d6dc3a1ada [gaim-migrate @ 470]
Syd Logan <slogan>
parents: 438
diff changeset
164
f4d6dc3a1ada [gaim-migrate @ 470]
Syd Logan <slogan>
parents: 438
diff changeset
165 data = (TickerData *) p->data;
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
166
432
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
167 if ( userclose == TRUE )
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
168 return;
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
169 if ( data ) {
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
170 gtk_ticker_remove( GTK_TICKER( ticker ), data->hbox );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
171 tickerbuds = g_list_remove( tickerbuds, data );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
172 free( data );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
173 }
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
174 }
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
175
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
176 void
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
177 BuddyTickerSetPixmap( char *name, GdkPixmap *pm, GdkBitmap *bm )
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
178 {
1750
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
179 GList *p;
432
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
180 TickerData *data;
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
181
432
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
182 if ( userclose == TRUE )
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
183 return;
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
184 p = (GList *) BuddyTickerFindUser( name );
436
7d5f91c1ff20 [gaim-migrate @ 446]
Syd Logan <slogan>
parents: 434
diff changeset
185 if ( p )
7d5f91c1ff20 [gaim-migrate @ 446]
Syd Logan <slogan>
parents: 434
diff changeset
186 data = (TickerData *) p->data;
7d5f91c1ff20 [gaim-migrate @ 446]
Syd Logan <slogan>
parents: 434
diff changeset
187 else
7d5f91c1ff20 [gaim-migrate @ 446]
Syd Logan <slogan>
parents: 434
diff changeset
188 return;
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
189 if ( data->pix == (GtkWidget *) NULL ) {
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
190 data->pix = gtk_pixmap_new( pm, bm );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
191 gtk_box_pack_start_defaults( GTK_BOX( data->hbox ), data->pix );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
192 } else {
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
193 gtk_widget_hide( data->pix );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
194 gtk_pixmap_set(GTK_PIXMAP(data->pix), pm, bm);
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
195 }
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
196 gtk_widget_show( data->pix );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
197 }
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
198
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
199 GList *
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
200 BuddyTickerFindUser( char *name )
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
201 {
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
202 GList *p = tickerbuds;
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
203
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
204 while ( p ) {
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
205 TickerData *q = (TickerData *) p->data;
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
206 if ( !strcmp( name, q->buddy ) )
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
207 return( p );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
208 p = p->next;
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
209 }
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
210 return (GList *) NULL;
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
211 }
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
212
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
213 int
433
f82e84386fdf [gaim-migrate @ 443]
Syd Logan <slogan>
parents: 432
diff changeset
214 BuddyTickerMessageRemove( gpointer data )
f82e84386fdf [gaim-migrate @ 443]
Syd Logan <slogan>
parents: 432
diff changeset
215 {
f82e84386fdf [gaim-migrate @ 443]
Syd Logan <slogan>
parents: 432
diff changeset
216 if ( userclose == TRUE )
604
0b1a132e0f75 [gaim-migrate @ 614]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 469
diff changeset
217 return FALSE;
1425
3e6a17ae51e8 [gaim-migrate @ 1435]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 955
diff changeset
218 if ( tickerwindow == NULL )
3e6a17ae51e8 [gaim-migrate @ 1435]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 955
diff changeset
219 return FALSE;
433
f82e84386fdf [gaim-migrate @ 443]
Syd Logan <slogan>
parents: 432
diff changeset
220 gtk_ticker_remove( GTK_TICKER( ticker ), msgw );
f82e84386fdf [gaim-migrate @ 443]
Syd Logan <slogan>
parents: 432
diff changeset
221 return FALSE;
f82e84386fdf [gaim-migrate @ 443]
Syd Logan <slogan>
parents: 432
diff changeset
222 }
f82e84386fdf [gaim-migrate @ 443]
Syd Logan <slogan>
parents: 432
diff changeset
223
f82e84386fdf [gaim-migrate @ 443]
Syd Logan <slogan>
parents: 432
diff changeset
224 int
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
225 BuddyTickerLogonTimeout( gpointer data )
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
226 {
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
227 return FALSE;
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
228 }
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
229
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
230 int
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
231 BuddyTickerLogoutTimeout( gpointer data )
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
232 {
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
233 char *name = (char *) data;
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
234
432
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
235 if ( userclose == TRUE )
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
236 return FALSE;
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
237 BuddyTickerRemoveUser( name );
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
238
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
239 return FALSE;
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents:
diff changeset
240 }
432
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
241
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
242 void
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
243 BuddyTickerSignoff( void )
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
244 {
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
245 GList *p = tickerbuds;
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
246 TickerData *q;
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
247
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
248 while ( p ) {
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
249 q = (TickerData *) p->data;
436
7d5f91c1ff20 [gaim-migrate @ 446]
Syd Logan <slogan>
parents: 434
diff changeset
250 if ( q )
7d5f91c1ff20 [gaim-migrate @ 446]
Syd Logan <slogan>
parents: 434
diff changeset
251 BuddyTickerRemoveUser( q->buddy );
432
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
252 p = tickerbuds;
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
253 }
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
254 userclose = FALSE;
1425
3e6a17ae51e8 [gaim-migrate @ 1435]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 955
diff changeset
255 if ( tickerwindow )
3e6a17ae51e8 [gaim-migrate @ 1435]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 955
diff changeset
256 gtk_widget_hide( tickerwindow );
432
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
257 }
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
258
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
259 void
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
260 BuddyTickerClearList( void )
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
261 {
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
262 GList *p = tickerbuds;
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
263
436
7d5f91c1ff20 [gaim-migrate @ 446]
Syd Logan <slogan>
parents: 434
diff changeset
264 while ( p )
432
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
265 p = g_list_remove( p, p->data );
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
266 tickerbuds = (GList *) NULL;
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
267 }
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
268
1750
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
269 void BuddyTickerShow()
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
270 {
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
271 GdkPixmap *pm;
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
272 GdkBitmap *bm;
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
273 struct gaim_connection *gc;
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
274 struct group *g;
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
275 struct buddy *b;
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
276 GSList *gcons, *grps, *buds;
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
277 char **xpm;
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
278
2313
bd9d403fb15b [gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1976
diff changeset
279 if( !(misc_options & OPT_MISC_BUDDY_TICKER) ) {
1750
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
280 BuddyTickerSignoff();
2313
bd9d403fb15b [gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1976
diff changeset
281 misc_options &= ~OPT_MISC_BUDDY_TICKER;
1750
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
282 return;
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
283 }
432
5741dca6cc8a [gaim-migrate @ 442]
Syd Logan <slogan>
parents: 430
diff changeset
284
1750
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
285 for( gcons = connections; gcons; gcons = gcons->next ) {
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
286 gc = (struct gaim_connection *)gcons->data;
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
287 for( grps = gc->groups; grps; grps = grps->next ) {
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
288 g = (struct group *)grps->data;
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
289 for( buds = g->members; buds; buds = buds->next ) {
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
290 b = (struct buddy *)buds->data;
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
291 if( b->present ) {
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
292 xpm = NULL;
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
293 if (gc->prpl->list_icon)
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
294 xpm = (*gc->prpl->list_icon)(b->uc);
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
295 if (xpm == NULL)
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
296 xpm = (char **)no_icon_xpm;
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
297 pm = gdk_pixmap_create_from_xpm_d(blist->window, &bm, NULL, xpm);
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
298 BuddyTickerAddUser( b->name, pm, bm );
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
299 }
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
300 }
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
301 }
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
302 }
d2eca7a46cfd [gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1425
diff changeset
303 }