gboolean preview_events (GtkWidget *area, GdkEvent *event) { switch (event->type) { case GDK_ENTER_NOTIFY: break; case GDK_LEAVE_NOTIFY: break; case GDK_BUTTON_PRESS: light_hit = check_handle_hit (event->button.x, event->button.y); left_button_pressed = TRUE; break; case GDK_BUTTON_RELEASE: left_button_pressed = FALSE; break; case GDK_MOTION_NOTIFY: if (left_button_pressed == TRUE && light_hit == TRUE && mapvals.interactive_preview == TRUE ) { gtk_widget_queue_draw (previewarea); interactive_preview_callback(NULL); update_light (event->motion.x, event->motion.y); } break; default: break; } return FALSE; }
gboolean preview_events (GtkWidget *area, GdkEvent *event) { switch (event->type) { case GDK_EXPOSE: /* Is this the first exposure? */ /* =========================== */ if (!gc) { gc = gdk_gc_new (area->window); draw_preview_image (TRUE); } else draw_preview_image (FALSE); break; case GDK_ENTER_NOTIFY: break; case GDK_LEAVE_NOTIFY: break; case GDK_BUTTON_PRESS: light_hit = check_handle_hit (event->button.x, event->button.y); left_button_pressed = TRUE; break; case GDK_BUTTON_RELEASE: left_button_pressed = FALSE; break; case GDK_MOTION_NOTIFY: if (left_button_pressed == TRUE && light_hit == TRUE && mapvals.interactive_preview == TRUE ) { draw_handles(); interactive_preview_callback(NULL); update_light (event->motion.x, event->motion.y); } break; default: break; } return FALSE; }