Mercurial > pidgin.yaz
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 |