/* ==================================== */ static gboolean item_event (GooCanvasItem *item, GooCanvasItem *target, GdkEventButton *event, gpointer data) { gint button_id = GPOINTER_TO_INT(data); GooCanvasItem *button; if(board_paused) return FALSE; switch (event->type) { case GDK_BUTTON_PRESS: board_paused = TRUE; if ( button_id == right_word ) gamewon = TRUE; else gamewon = FALSE; button = (GooCanvasItem*)g_object_get_data(G_OBJECT(goo_canvas_item_get_parent(item)), "button"); highlight_selected(button); process_ok(); break; default: break; } return FALSE; }
/* ==================================== */ static gint item_event(GooCanvasItem *item, GooCanvasItem *target, GdkEvent *event, gpointer data) { if(board_paused) return FALSE; gchar *answer = g_utf8_strdown ( (gchar*)data , -1 ); switch (event->type) { case GDK_BUTTON_PRESS: /* We really don't want the user to change his/her mind */ board_paused = TRUE; if ( strcmp(answer, right_letter) == 0 ) { gamewon = TRUE; } else { gamewon = FALSE; } highlight_selected(item); process_ok(); break; default: break; } g_free(answer); return FALSE; }
/* ===================================================================== * * =====================================================================*/ static gboolean item_event (GooCanvasItem *item, GooCanvasItem *target, GdkEventButton *event, gpointer data) { double x, y; int i, j, clicked; x = event->x; y = event->y; if (!gcomprisBoard || board_paused) return FALSE; //goo_canvas_c2w (gcomprisBoard->canvas, x, y, &x, &y); clicked = -1; for (i=0; i<4; i++) { for (j=0; j<2; j++) { if (x>X[i*2] && x<X[i*2+1] && y>Y[j*2] && y<Y[j*2+1]) { clicked = j*4 + i; } } } if (clicked >= 0) { gc_sound_play_ogg ("sounds/bleep.wav", NULL); board_paused = TRUE; highlight_selected(clicked); gamewon = (clicked == GPOINTER_TO_INT(g_list_nth_data(listColors,0))); ok(); } return FALSE; }