src/ticker.c

Tue, 22 Aug 2000 00:37:01 +0000

author
Eric Warmenhoven <warmenhoven@yahoo.com>
date
Tue, 22 Aug 2000 00:37:01 +0000
changeset 736
0e380859da63
parent 604
a20b54408619
child 905
7a2da3bc1ebe
permissions
-rw-r--r--

[gaim-migrate @ 746]
Eric the Lumberjack continues to hack away at the tree. When people ask
what kinds of trees Eric hacks, he simply replied "CVS trees. They're
mostly used for computer stuff". Then the ignorants go away, thinking
they have been enlightened into the world of computers, which unknowingly
they have been.

430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
1 /* GTK - The GIMP Toolkit
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
3 *
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
4 * This library is free software; you can redistribute it and/or
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
5 * modify it under the terms of the GNU Library General Public
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
6 * License as published by the Free Software Foundation; either
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
7 * version 2 of the License, or (at your option) any later version.
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
8 *
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
9 * This library is distributed in the hope that it will be useful,
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
12 * Library General Public License for more details.
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
13 *
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
14 * You should have received a copy of the GNU Library General Public
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
15 * License along with this library; if not, write to the
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
17 * Boston, MA 02111-1307, USA.
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
18 */
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
19
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
20 /*
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
21 * ticker.c -- Syd Logan, Summer 2000
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
22 */
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
23
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
24 #include <gtk/gtk.h>
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
25 #include "gtkticker.h"
469
27d43a8ddcc6 [gaim-migrate @ 479]
Rob Flynn <gaim@robflynn.com>
parents: 460
diff changeset
26 #include <string.h>
604
a20b54408619 [gaim-migrate @ 614]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 469
diff changeset
27 #include <stdlib.h>
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
28
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
29 GtkWidget *tickerwindow = NULL;
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
30 GtkWidget *ticker;
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
31
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
32 typedef struct {
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
33 char buddy[ 128 ];
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
34 GtkWidget *hbox;
438
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
35 GtkWidget *ebox;
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
36 GtkWidget *label;
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
37 GtkWidget *pix;
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
38 } TickerData;
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
39
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
40 static GList *tickerbuds = (GList *) NULL;
432
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
41 static gboolean userclose = FALSE;
433
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
42 static GtkWidget *msgw;
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
43
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
44 void BuddyTickerDestroyWindow( GtkWidget *window );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
45 void BuddyTickerCreateWindow( void );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
46 void BuddyTickerAddUser( char *name, GdkPixmap *pm, GdkBitmap *bm );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
47 void BuddyTickerRemoveUser( char *name );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
48 void BuddyTickerSetPixmap( char *name, GdkPixmap *pm, GdkBitmap *bm );
432
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
49 void BuddyTickerClearList( void );
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
50 void BuddyTickerSignOff( void );
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
51 GList * BuddyTickerFindUser( char *name );
433
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
52 int BuddyTickerMessageRemove( gpointer data );
604
a20b54408619 [gaim-migrate @ 614]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 469
diff changeset
53 extern void pressed_ticker(char *);
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
54
436
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
55 // this pref is startup only, so make a shadow here of settings at startup
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
56 // code uses this variable, not display_prefs
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
57
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
58 extern int display_options;
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
59 int ticker_prefs;
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
60
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
61 void
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
62 SetTickerPrefs( void )
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
63 {
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
64 ticker_prefs = display_options;
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
65 }
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
66
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
67 void
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
68 BuddyTickerDestroyWindow( GtkWidget *window )
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
69 {
432
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
70 BuddyTickerClearList();
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
71 gtk_ticker_stop_scroll( GTK_TICKER( ticker ) );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
72 gtk_widget_destroy( window );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
73 ticker = tickerwindow = (GtkWidget *) NULL;
432
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
74 userclose = TRUE;
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
75 }
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
76
433
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
77 static char *msg = "Welcome to GAIM 0.9.20, brought to you by Rob Flynn (maintainer), Eric Warmenhoven, Mark Spencer, Jeramey Crawford, Jim Duchek, and Syd Logan";
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
78
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
79 void
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
80 BuddyTickerCreateWindow()
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
81 {
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
82 if ( tickerwindow != (GtkWidget *) NULL )
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
83 return;
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
84 tickerwindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
85 gtk_signal_connect (GTK_OBJECT(tickerwindow), "destroy",
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
86 GTK_SIGNAL_FUNC (BuddyTickerDestroyWindow), "WM destroy");
433
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
87 gtk_window_set_title (GTK_WINDOW(tickerwindow), "GAIM - Buddy Ticker");
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
88
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
89 ticker = gtk_ticker_new();
433
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
90 gtk_ticker_set_spacing( GTK_TICKER( ticker ), 20 );
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
91 gtk_widget_set_usize( ticker, 500, -1 );
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
92 gtk_container_add( GTK_CONTAINER( tickerwindow ), ticker );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
93 gtk_ticker_set_interval( GTK_TICKER( ticker ), 500 );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
94 gtk_ticker_set_scootch( GTK_TICKER( ticker ), 10 );
433
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
95 msgw = gtk_label_new( msg );
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
96 gtk_ticker_add( GTK_TICKER( ticker ), msgw );
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
97 gtk_ticker_start_scroll( GTK_TICKER( ticker ) );
433
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
98
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
99 gtk_timeout_add( 60000, BuddyTickerMessageRemove, (gpointer) NULL );
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
100
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
101 gtk_widget_show_all (ticker);
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
102
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
103 }
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
104
438
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
105 gint
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
106 ButtonPressCallback( GtkWidget *widget, GdkEvent *event, gpointer callback_data )
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 TickerData *p = (TickerData *) callback_data;
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
109
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
110 pressed_ticker( p->buddy );
604
a20b54408619 [gaim-migrate @ 614]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 469
diff changeset
111
a20b54408619 [gaim-migrate @ 614]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 469
diff changeset
112 return TRUE;
438
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
113 }
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
114
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
115 void
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
116 BuddyTickerAddUser( char *name, GdkPixmap *pm, GdkBitmap *bm )
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
117 {
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
118 TickerData *p;
432
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
119 GList *q;
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
120
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
121 if ( userclose == TRUE )
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
122 return;
436
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
123
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
124 BuddyTickerCreateWindow();
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
125
432
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
126 q = (GList *) BuddyTickerFindUser( name );
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
127 if ( q != (GList *) NULL )
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
128 return;
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
129
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
130 p = (TickerData *) malloc( sizeof( TickerData ) );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
131 p->hbox = (GtkWidget *) NULL;
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
132 p->label = (GtkWidget *) NULL;
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
133 p->pix = (GtkWidget *) NULL;
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
134 strcpy( p->buddy, name );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
135 tickerbuds = g_list_append( tickerbuds, p );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
136
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
137 p->hbox = gtk_hbox_new( FALSE, 0 );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
138 gtk_ticker_add( GTK_TICKER( ticker ), p->hbox );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
139 gtk_widget_show_all( p->hbox );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
140
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
141 BuddyTickerSetPixmap( name, pm, bm );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
142
438
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
143 p->ebox = gtk_event_box_new();
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 // click detection
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
146
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
147 gtk_widget_set_events (p->ebox, GDK_BUTTON_PRESS_MASK);
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
148 gtk_signal_connect (GTK_OBJECT (p->ebox), "button_press_event",
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
149 GTK_SIGNAL_FUNC(ButtonPressCallback), (gpointer) p);
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
150
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
151 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
152 gtk_widget_show( p->ebox );
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
153
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
154 p->label = gtk_label_new( name );
438
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
155 gtk_container_add( GTK_CONTAINER(p->ebox), p->label );
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
156
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
157 gtk_widget_show( p->label );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
158
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
159 gtk_widget_show( tickerwindow );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
160 }
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
161
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
162 void
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
163 BuddyTickerRemoveUser( char *name )
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
164 {
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
165 GList *p = (GList *) BuddyTickerFindUser( name );
460
5b5a02fee313 [gaim-migrate @ 470]
Syd Logan <slogan@users.sourceforge.net>
parents: 438
diff changeset
166 TickerData *data;
5b5a02fee313 [gaim-migrate @ 470]
Syd Logan <slogan@users.sourceforge.net>
parents: 438
diff changeset
167
5b5a02fee313 [gaim-migrate @ 470]
Syd Logan <slogan@users.sourceforge.net>
parents: 438
diff changeset
168 if ( !p )
5b5a02fee313 [gaim-migrate @ 470]
Syd Logan <slogan@users.sourceforge.net>
parents: 438
diff changeset
169 return;
5b5a02fee313 [gaim-migrate @ 470]
Syd Logan <slogan@users.sourceforge.net>
parents: 438
diff changeset
170
5b5a02fee313 [gaim-migrate @ 470]
Syd Logan <slogan@users.sourceforge.net>
parents: 438
diff changeset
171 data = (TickerData *) p->data;
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
172
432
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
173 if ( userclose == TRUE )
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
174 return;
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
175 if ( data ) {
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
176 gtk_ticker_remove( GTK_TICKER( ticker ), data->hbox );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
177 tickerbuds = g_list_remove( tickerbuds, data );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
178 free( data );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
179 }
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
180 }
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
181
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
182 void
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
183 BuddyTickerSetPixmap( char *name, GdkPixmap *pm, GdkBitmap *bm )
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
184 {
432
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
185 GList *p;
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
186 TickerData *data;
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
187
432
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
188 if ( userclose == TRUE )
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
189 return;
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
190 p = (GList *) BuddyTickerFindUser( name );
436
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
191 if ( p )
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
192 data = (TickerData *) p->data;
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
193 else
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
194 return;
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
195 if ( data->pix == (GtkWidget *) NULL ) {
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
196 data->pix = gtk_pixmap_new( pm, bm );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
197 gtk_box_pack_start_defaults( GTK_BOX( data->hbox ), data->pix );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
198 } else {
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
199 gtk_widget_hide( data->pix );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
200 gtk_pixmap_set(GTK_PIXMAP(data->pix), pm, bm);
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
201 }
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
202 gtk_widget_show( data->pix );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
203 }
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
204
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
205 GList *
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
206 BuddyTickerFindUser( char *name )
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
207 {
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
208 GList *p = tickerbuds;
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
209
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
210 while ( p ) {
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
211 TickerData *q = (TickerData *) p->data;
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
212 if ( !strcmp( name, q->buddy ) )
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
213 return( p );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
214 p = p->next;
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
215 }
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
216 return (GList *) NULL;
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
217 }
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
218
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
219 int
433
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
220 BuddyTickerMessageRemove( gpointer data )
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
221 {
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
222 if ( userclose == TRUE )
604
a20b54408619 [gaim-migrate @ 614]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 469
diff changeset
223 return FALSE;
433
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
224 gtk_ticker_remove( GTK_TICKER( ticker ), msgw );
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
225 return FALSE;
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
226 }
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
227
9572b183255a [gaim-migrate @ 443]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
228 int
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
229 BuddyTickerLogonTimeout( gpointer data )
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
230 {
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
231 return FALSE;
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
232 }
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
233
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
234 int
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
235 BuddyTickerLogoutTimeout( gpointer data )
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
236 {
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
237 char *name = (char *) data;
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
238
432
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
239 if ( userclose == TRUE )
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
240 return FALSE;
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
241 BuddyTickerRemoveUser( name );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
242
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
243 return FALSE;
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents:
diff changeset
244 }
432
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
245
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
246 void
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
247 BuddyTickerSignoff( void )
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
248 {
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
249 GList *p = tickerbuds;
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
250 TickerData *q;
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
251
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
252 while ( p ) {
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
253 q = (TickerData *) p->data;
436
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
254 if ( q )
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
255 BuddyTickerRemoveUser( q->buddy );
432
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
256 p = tickerbuds;
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 userclose = FALSE;
434
f9e0012ba6e6 [gaim-migrate @ 444]
Syd Logan <slogan@users.sourceforge.net>
parents: 433
diff changeset
259 gtk_widget_hide( tickerwindow );
432
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
260 }
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 void
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
263 BuddyTickerClearList( void )
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
264 {
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
265 GList *p = tickerbuds;
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
266
436
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 434
diff changeset
267 while ( p )
432
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
268 p = g_list_remove( p, p->data );
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
269 tickerbuds = (GList *) NULL;
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
270 }
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
271
497a46b74642 [gaim-migrate @ 442]
Syd Logan <slogan@users.sourceforge.net>
parents: 430
diff changeset
272

mercurial