1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| #include <stdlib.h>
#include <gtk/gtk.h>
int main(int argc,char **argv)
{
GtkWidget* pWindow;
gtk_init(&argc,&argv);
pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(pWindow), "Cursor");
gtk_window_set_default_size(GTK_WINDOW(pWindow), 640, 480);
gtk_widget_show_all(pWindow);
GdkWindow *gdk_window = gtk_widget_get_window(pWindow);
GdkCursor *cursor;
cairo_surface_t *s;
cairo_t *cr;
GdkPixbuf *pixbuf;
GdkDisplay *display = gdk_display_get_default();
gboolean res = gdk_display_supports_cursor_color(display);
if (res == TRUE) { g_print("TRUE\n"); } else { g_print("FALSE\n"); }
s = cairo_image_surface_create (CAIRO_FORMAT_A1, 16, 16);
cr = cairo_create (s);
cairo_set_source_rgba (cr, 1, 0.2, 0.2, 0.6);
cairo_arc (cr, 8, 8, 8, 0, 2*3.141592653);
cairo_fill (cr);
cairo_destroy (cr);
pixbuf = gdk_pixbuf_get_from_surface (s, 0, 0, 16, 16);
cairo_surface_destroy (s);
cursor = gdk_cursor_new_from_pixbuf (display, pixbuf, 0, 0);
gdk_window_set_cursor(gdk_window, cursor);
g_object_unref (pixbuf);
gtk_main();
return EXIT_SUCCESS;
} |
Partager