/* Cursors * * Demonstrates a useful set of available cursors. The cursors shown here are the ones * defined by CSS, which we assume to be available. * * The example shows creating cursors by name or from an image, with or without a fallback. */ #include static GtkWidget *window = NULL; static void on_destroy (gpointer data) { window = NULL; } GtkWidget * do_cursors (GtkWidget *do_widget) { if (!window) { GtkBuilder *builder; builder = gtk_builder_new_from_resource ("/cursors/cursors.ui"); window = GTK_WIDGET (gtk_builder_get_object (builder, "window")); gtk_window_set_display (GTK_WINDOW (window), gtk_widget_get_display (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (on_destroy), NULL); g_object_set_data_full (G_OBJECT (window), "builder", builder, g_object_unref); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else { gtk_window_destroy (GTK_WINDOW (window)); } return window; }