comparison src/ticker.c @ 438:881f5d538f15

[gaim-migrate @ 448] Added hit detection on ticker -- clicking on a name is like double clicking in the online buddy list, and brings up an IM window. committer: Tailor Script <tailor@pidgin.im>
author Syd Logan <slogan>
date Sun, 25 Jun 2000 17:00:24 +0000
parents 7d5f91c1ff20
children f4d6dc3a1ada
comparison
equal deleted inserted replaced
437:9c113e5c5363 438:881f5d538f15
28 GtkWidget *ticker; 28 GtkWidget *ticker;
29 29
30 typedef struct { 30 typedef struct {
31 char buddy[ 128 ]; 31 char buddy[ 128 ];
32 GtkWidget *hbox; 32 GtkWidget *hbox;
33 GtkWidget *ebox;
33 GtkWidget *label; 34 GtkWidget *label;
34 GtkWidget *pix; 35 GtkWidget *pix;
35 } TickerData; 36 } TickerData;
36 37
37 static GList *tickerbuds = (GList *) NULL; 38 static GList *tickerbuds = (GList *) NULL;
96 97
97 gtk_widget_show_all (ticker); 98 gtk_widget_show_all (ticker);
98 99
99 } 100 }
100 101
102 gint
103 ButtonPressCallback( GtkWidget *widget, GdkEvent *event, gpointer callback_data )
104 {
105 TickerData *p = (TickerData *) callback_data;
106
107 pressed_ticker( p->buddy );
108 }
109
101 void 110 void
102 BuddyTickerAddUser( char *name, GdkPixmap *pm, GdkBitmap *bm ) 111 BuddyTickerAddUser( char *name, GdkPixmap *pm, GdkBitmap *bm )
103 { 112 {
104 GtkWidget *hbox, *label, *pmap; 113 GtkWidget *hbox, *label, *pmap;
105 TickerData *p; 114 TickerData *p;
125 gtk_ticker_add( GTK_TICKER( ticker ), p->hbox ); 134 gtk_ticker_add( GTK_TICKER( ticker ), p->hbox );
126 gtk_widget_show_all( p->hbox ); 135 gtk_widget_show_all( p->hbox );
127 136
128 BuddyTickerSetPixmap( name, pm, bm ); 137 BuddyTickerSetPixmap( name, pm, bm );
129 138
139 p->ebox = gtk_event_box_new();
140
141 // click detection
142
143 gtk_widget_set_events (p->ebox, GDK_BUTTON_PRESS_MASK);
144 gtk_signal_connect (GTK_OBJECT (p->ebox), "button_press_event",
145 GTK_SIGNAL_FUNC(ButtonPressCallback), (gpointer) p);
146
147 gtk_box_pack_start_defaults( GTK_BOX( p->hbox ), p->ebox );
148 gtk_widget_show( p->ebox );
149
130 p->label = gtk_label_new( name ); 150 p->label = gtk_label_new( name );
131 gtk_box_pack_start_defaults( GTK_BOX( p->hbox ), p->label ); 151 gtk_container_add( GTK_CONTAINER(p->ebox), p->label );
152
132 gtk_widget_show( p->label ); 153 gtk_widget_show( p->label );
133 154
134 gtk_widget_show( tickerwindow ); 155 gtk_widget_show( tickerwindow );
135 } 156 }
136 157