# HG changeset patch # User Syd Logan # Date 961952424 0 # Node ID 881f5d538f155a8092a09a203100f60b358fb785 # Parent 9c113e5c53636a29825fccd263ac79822d3ebc2e [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 diff -r 9c113e5c5363 -r 881f5d538f15 src/buddy.c --- a/src/buddy.c Sun Jun 25 16:59:08 2000 +0000 +++ b/src/buddy.c Sun Jun 25 17:00:24 2000 +0000 @@ -403,6 +403,19 @@ } } +void pressed_ticker(char *buddy) +{ + struct conversation *c; + + c = find_conversation(buddy); + + if (c != NULL) { + gdk_window_show(c->window->window); + } else { + c = new_conversation(buddy); + } +} + void pressed_info(GtkWidget *widget, struct buddy *b) { serv_get_info(b->name); diff -r 9c113e5c5363 -r 881f5d538f15 src/ticker.c --- a/src/ticker.c Sun Jun 25 16:59:08 2000 +0000 +++ b/src/ticker.c Sun Jun 25 17:00:24 2000 +0000 @@ -30,6 +30,7 @@ typedef struct { char buddy[ 128 ]; GtkWidget *hbox; + GtkWidget *ebox; GtkWidget *label; GtkWidget *pix; } TickerData; @@ -98,6 +99,14 @@ } +gint +ButtonPressCallback( GtkWidget *widget, GdkEvent *event, gpointer callback_data ) +{ + TickerData *p = (TickerData *) callback_data; + + pressed_ticker( p->buddy ); +} + void BuddyTickerAddUser( char *name, GdkPixmap *pm, GdkBitmap *bm ) { @@ -127,8 +136,20 @@ BuddyTickerSetPixmap( name, pm, bm ); + p->ebox = gtk_event_box_new(); + + // click detection + + gtk_widget_set_events (p->ebox, GDK_BUTTON_PRESS_MASK); + gtk_signal_connect (GTK_OBJECT (p->ebox), "button_press_event", + GTK_SIGNAL_FUNC(ButtonPressCallback), (gpointer) p); + + gtk_box_pack_start_defaults( GTK_BOX( p->hbox ), p->ebox ); + gtk_widget_show( p->ebox ); + p->label = gtk_label_new( name ); - gtk_box_pack_start_defaults( GTK_BOX( p->hbox ), p->label ); + gtk_container_add( GTK_CONTAINER(p->ebox), p->label ); + gtk_widget_show( p->label ); gtk_widget_show( tickerwindow );