Mercurial > pidgin
comparison src/ticker.c @ 432:5741dca6cc8a
[gaim-migrate @ 442]
Bug fixes already. heh.
committer: Tailor Script <tailor@pidgin.im>
| author | Syd Logan <slogan> |
|---|---|
| date | Sat, 24 Jun 2000 23:53:04 +0000 |
| parents | 0cd2ba801eb4 |
| children | f82e84386fdf |
comparison
equal
deleted
inserted
replaced
| 431:094a08a11e3a | 432:5741dca6cc8a |
|---|---|
| 33 GtkWidget *label; | 33 GtkWidget *label; |
| 34 GtkWidget *pix; | 34 GtkWidget *pix; |
| 35 } TickerData; | 35 } TickerData; |
| 36 | 36 |
| 37 static GList *tickerbuds = (GList *) NULL; | 37 static GList *tickerbuds = (GList *) NULL; |
| 38 static gboolean userclose = FALSE; | |
| 38 | 39 |
| 39 void BuddyTickerDestroyWindow( GtkWidget *window ); | 40 void BuddyTickerDestroyWindow( GtkWidget *window ); |
| 40 void BuddyTickerCreateWindow( void ); | 41 void BuddyTickerCreateWindow( void ); |
| 41 void BuddyTickerAddUser( char *name, GdkPixmap *pm, GdkBitmap *bm ); | 42 void BuddyTickerAddUser( char *name, GdkPixmap *pm, GdkBitmap *bm ); |
| 42 void BuddyTickerRemoveUser( char *name ); | 43 void BuddyTickerRemoveUser( char *name ); |
| 43 void BuddyTickerSetPixmap( char *name, GdkPixmap *pm, GdkBitmap *bm ); | 44 void BuddyTickerSetPixmap( char *name, GdkPixmap *pm, GdkBitmap *bm ); |
| 45 void BuddyTickerClearList( void ); | |
| 46 void BuddyTickerSignOff( void ); | |
| 44 GList * BuddyTickerFindUser( char *name ); | 47 GList * BuddyTickerFindUser( char *name ); |
| 45 | 48 |
| 46 void | 49 void |
| 47 BuddyTickerDestroyWindow( GtkWidget *window ) | 50 BuddyTickerDestroyWindow( GtkWidget *window ) |
| 48 { | 51 { |
| 52 BuddyTickerClearList(); | |
| 49 gtk_ticker_stop_scroll( GTK_TICKER( ticker ) ); | 53 gtk_ticker_stop_scroll( GTK_TICKER( ticker ) ); |
| 50 gtk_widget_destroy( window ); | 54 gtk_widget_destroy( window ); |
| 51 ticker = tickerwindow = (GtkWidget *) NULL; | 55 ticker = tickerwindow = (GtkWidget *) NULL; |
| 56 userclose = TRUE; | |
| 52 } | 57 } |
| 53 | 58 |
| 54 void | 59 void |
| 55 BuddyTickerCreateWindow() | 60 BuddyTickerCreateWindow() |
| 56 { | 61 { |
| 75 void | 80 void |
| 76 BuddyTickerAddUser( char *name, GdkPixmap *pm, GdkBitmap *bm ) | 81 BuddyTickerAddUser( char *name, GdkPixmap *pm, GdkBitmap *bm ) |
| 77 { | 82 { |
| 78 GtkWidget *hbox, *label, *pmap; | 83 GtkWidget *hbox, *label, *pmap; |
| 79 TickerData *p; | 84 TickerData *p; |
| 85 GList *q; | |
| 86 | |
| 87 if ( userclose == TRUE ) | |
| 88 return; | |
| 89 q = (GList *) BuddyTickerFindUser( name ); | |
| 90 if ( q != (GList *) NULL ) | |
| 91 return; | |
| 80 | 92 |
| 81 BuddyTickerCreateWindow(); | 93 BuddyTickerCreateWindow(); |
| 82 p = (TickerData *) malloc( sizeof( TickerData ) ); | 94 p = (TickerData *) malloc( sizeof( TickerData ) ); |
| 83 p->hbox = (GtkWidget *) NULL; | 95 p->hbox = (GtkWidget *) NULL; |
| 84 p->label = (GtkWidget *) NULL; | 96 p->label = (GtkWidget *) NULL; |
| 103 BuddyTickerRemoveUser( char *name ) | 115 BuddyTickerRemoveUser( char *name ) |
| 104 { | 116 { |
| 105 GList *p = (GList *) BuddyTickerFindUser( name ); | 117 GList *p = (GList *) BuddyTickerFindUser( name ); |
| 106 TickerData *data = (TickerData *) p->data; | 118 TickerData *data = (TickerData *) p->data; |
| 107 | 119 |
| 120 if ( userclose == TRUE ) | |
| 121 return; | |
| 108 if ( data ) { | 122 if ( data ) { |
| 109 gtk_ticker_remove( GTK_TICKER( ticker ), data->hbox ); | 123 gtk_ticker_remove( GTK_TICKER( ticker ), data->hbox ); |
| 110 tickerbuds = g_list_remove( tickerbuds, data ); | 124 tickerbuds = g_list_remove( tickerbuds, data ); |
| 111 free( data ); | 125 free( data ); |
| 112 } | 126 } |
| 113 } | 127 } |
| 114 | 128 |
| 115 void | 129 void |
| 116 BuddyTickerSetPixmap( char *name, GdkPixmap *pm, GdkBitmap *bm ) | 130 BuddyTickerSetPixmap( char *name, GdkPixmap *pm, GdkBitmap *bm ) |
| 117 { | 131 { |
| 118 GList *p = (GList *) BuddyTickerFindUser( name ); | 132 GList *p; |
| 119 TickerData *data = (TickerData *) p->data; | 133 TickerData *data; |
| 120 | 134 |
| 135 if ( userclose == TRUE ) | |
| 136 return; | |
| 137 p = (GList *) BuddyTickerFindUser( name ); | |
| 138 data = (TickerData *) p->data; | |
| 121 if ( data->pix == (GtkWidget *) NULL ) { | 139 if ( data->pix == (GtkWidget *) NULL ) { |
| 122 data->pix = gtk_pixmap_new( pm, bm ); | 140 data->pix = gtk_pixmap_new( pm, bm ); |
| 123 gtk_box_pack_start_defaults( GTK_BOX( data->hbox ), data->pix ); | 141 gtk_box_pack_start_defaults( GTK_BOX( data->hbox ), data->pix ); |
| 124 } else { | 142 } else { |
| 125 gtk_widget_hide( data->pix ); | 143 gtk_widget_hide( data->pix ); |
| 143 } | 161 } |
| 144 | 162 |
| 145 int | 163 int |
| 146 BuddyTickerLogonTimeout( gpointer data ) | 164 BuddyTickerLogonTimeout( gpointer data ) |
| 147 { | 165 { |
| 148 char *name = (char *) data; | 166 // XXX |
| 149 | |
| 150 GList *p = (GList *) BuddyTickerFindUser( name ); | |
| 151 TickerData *q = (TickerData *) p->data; | |
| 152 | |
| 153 if ( q ) { | |
| 154 | |
| 155 } | |
| 156 | 167 |
| 157 return FALSE; | 168 return FALSE; |
| 158 } | 169 } |
| 159 | 170 |
| 160 int | 171 int |
| 161 BuddyTickerLogoutTimeout( gpointer data ) | 172 BuddyTickerLogoutTimeout( gpointer data ) |
| 162 { | 173 { |
| 163 char *name = (char *) data; | 174 char *name = (char *) data; |
| 164 | 175 |
| 176 if ( userclose == TRUE ) | |
| 177 return FALSE; | |
| 165 BuddyTickerRemoveUser( name ); | 178 BuddyTickerRemoveUser( name ); |
| 166 | 179 |
| 167 return FALSE; | 180 return FALSE; |
| 168 } | 181 } |
| 182 | |
| 183 void | |
| 184 BuddyTickerSignoff( void ) | |
| 185 { | |
| 186 GList *p = tickerbuds; | |
| 187 TickerData *q; | |
| 188 | |
| 189 while ( p ) { | |
| 190 q = (TickerData *) p->data; | |
| 191 BuddyTickerRemoveUser( q->buddy ); | |
| 192 p = tickerbuds; | |
| 193 } | |
| 194 userclose = FALSE; | |
| 195 } | |
| 196 | |
| 197 void | |
| 198 BuddyTickerClearList( void ) | |
| 199 { | |
| 200 GList *p = tickerbuds; | |
| 201 TickerData *q; | |
| 202 | |
| 203 while ( p ) { | |
| 204 q = (TickerData *) p->data; | |
| 205 p = g_list_remove( p, p->data ); | |
| 206 } | |
| 207 tickerbuds = (GList *) NULL; | |
| 208 } | |
| 209 | |
| 210 |
