/** cursall.c **/ #include void setCursor(); GtkWidget *makeBox(); gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data); gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data); GtkWidget *topLevel; GtkWidget *nameLabel; GdkCursor *cur = NULL; gint cursorIndex = 0; struct cursorStruct { gchar *name; GdkCursorType type; } cursor[] = { { "GDK_X_CURSOR", GDK_X_CURSOR }, { "GDK_ARROW", GDK_ARROW }, { "GDK_BASED_ARROW_DOWN", GDK_BASED_ARROW_DOWN }, { "GDK_BASED_ARROW_UP", GDK_BASED_ARROW_UP }, { "GDK_BOAT", GDK_BOAT }, { "GDK_BOGOSITY", GDK_BOGOSITY }, { "GDK_BOTTOM_LEFT_CORNER", GDK_BOTTOM_LEFT_CORNER }, { "GDK_BOTTOM_RIGHT_CORNER",GDK_BOTTOM_RIGHT_CORNER }, { "GDK_BOTTOM_SIDE", GDK_BOTTOM_SIDE }, { "GDK_BOTTOM_TEE", GDK_BOTTOM_TEE }, { "GDK_BOX_SPIRAL", GDK_BOX_SPIRAL }, { "GDK_CENTER_PTR", GDK_CENTER_PTR }, { "GDK_CIRCLE", GDK_CIRCLE }, { "GDK_CLOCK", GDK_CLOCK }, { "GDK_COFFEE_MUG", GDK_COFFEE_MUG }, { "GDK_CROSS", GDK_CROSS }, { "GDK_CROSS_REVERSE", GDK_CROSS_REVERSE }, { "GDK_CROSSHAIR", GDK_CROSSHAIR }, { "GDK_DIAMOND_CROSS", GDK_DIAMOND_CROSS }, { "GDK_DOT", GDK_DOT }, { "GDK_DOTBOX", GDK_DOTBOX }, { "GDK_DOUBLE_ARROW", GDK_DOUBLE_ARROW }, { "GDK_DRAFT_LARGE", GDK_DRAFT_LARGE }, { "GDK_DRAFT_SMALL", GDK_DRAFT_SMALL }, { "GDK_DRAPED_BOX", GDK_DRAPED_BOX }, { "GDK_EXCHANGE", GDK_EXCHANGE }, { "GDK_FLEUR", GDK_FLEUR }, { "GDK_GOBBLER", GDK_GOBBLER }, { "GDK_GUMBY", GDK_GUMBY }, { "GDK_HAND1", GDK_HAND1 }, { "GDK_HAND2", GDK_HAND2 }, { "GDK_HEART", GDK_HEART }, { "GDK_ICON", GDK_ICON }, { "GDK_IRON_CROSS", GDK_IRON_CROSS }, { "GDK_LEFT_PTR", GDK_LEFT_PTR }, { "GDK_LEFT_SIDE", GDK_LEFT_SIDE }, { "GDK_LEFT_TEE", GDK_LEFT_TEE }, { "GDK_LEFTBUTTON", GDK_LEFTBUTTON }, { "GDK_LL_ANGLE", GDK_LL_ANGLE }, { "GDK_LR_ANGLE", GDK_LR_ANGLE }, { "GDK_MAN", GDK_MAN }, { "GDK_MIDDLEBUTTON", GDK_MIDDLEBUTTON }, { "GDK_MOUSE", GDK_MOUSE }, { "GDK_PENCIL", GDK_PENCIL }, { "GDK_PIRATE", GDK_PIRATE }, { "GDK_PLUS", GDK_PLUS }, { "GDK_QUESTION_ARROW", GDK_QUESTION_ARROW }, { "GDK_RIGHT_PTR", GDK_RIGHT_PTR }, { "GDK_RIGHT_SIDE", GDK_RIGHT_SIDE }, { "GDK_RIGHT_TEE", GDK_RIGHT_TEE }, { "GDK_RIGHTBUTTON", GDK_RIGHTBUTTON }, { "GDK_RTL_LOGO", GDK_RTL_LOGO }, { "GDK_SAILBOAT", GDK_SAILBOAT }, { "GDK_SB_DOWN_ARROW", GDK_SB_DOWN_ARROW }, { "GDK_SB_H_DOUBLE_ARROW", GDK_SB_H_DOUBLE_ARROW }, { "GDK_SB_LEFT_ARROW", GDK_SB_LEFT_ARROW }, { "GDK_SB_RIGHT_ARROW", GDK_SB_RIGHT_ARROW }, { "GDK_SB_UP_ARROW", GDK_SB_UP_ARROW }, { "GDK_SB_V_DOUBLE_ARROW", GDK_SB_V_DOUBLE_ARROW }, { "GDK_SHUTTLE", GDK_SHUTTLE }, { "GDK_SIZING", GDK_SIZING }, { "GDK_SPIDER", GDK_SPIDER }, { "GDK_SPRAYCAN", GDK_SPRAYCAN }, { "GDK_STAR", GDK_STAR }, { "GDK_TARGET", GDK_TARGET }, { "GDK_TCROSS", GDK_TCROSS }, { "GDK_TOP_LEFT_ARROW", GDK_TOP_LEFT_ARROW }, { "GDK_TOP_LEFT_CORNER", GDK_TOP_LEFT_CORNER }, { "GDK_TOP_RIGHT_CORNER", GDK_TOP_RIGHT_CORNER }, { "GDK_TOP_SIDE", GDK_TOP_SIDE }, { "GDK_TOP_TEE", GDK_TOP_TEE }, { "GDK_TREK", GDK_TREK }, { "GDK_UL_ANGLE", GDK_UL_ANGLE }, { "GDK_UMBRELLA", GDK_UMBRELLA }, { "GDK_UR_ANGLE", GDK_UR_ANGLE }, { "GDK_WATCH", GDK_WATCH }, { "GDK_XTERM", GDK_XTERM }, }; int main(int argc,char *argv[]) { GtkWidget *box; gnome_init("cursall","1.0",argc,argv); topLevel = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width(GTK_CONTAINER(topLevel), 50); gtk_window_set_default_size(GTK_WINDOW(topLevel), 400,0); gtk_signal_connect(GTK_OBJECT(topLevel),"delete_event", GTK_SIGNAL_FUNC(eventDelete),NULL); gtk_signal_connect(GTK_OBJECT(topLevel),"destroy", GTK_SIGNAL_FUNC(eventDestroy),NULL); box = makeBox(); gtk_container_add(GTK_CONTAINER(topLevel),box); gtk_widget_show_all(topLevel); setCursor(); gtk_main(); exit(0); } void next(GtkWidget *widget,gpointer data ) { int size = sizeof(cursor)/sizeof(struct cursorStruct); if(++cursorIndex < size) setCursor(); else cursorIndex--; } void previous(GtkWidget *widget,gpointer data ) { if(--cursorIndex >= 0) setCursor(); else cursorIndex++; } void setCursor() { if(cur != NULL) gdk_cursor_destroy(cur); cur = gdk_cursor_new(cursor[cursorIndex].type); gdk_window_set_cursor(topLevel->window,cur); gtk_label_set_text(GTK_LABEL(nameLabel), cursor[cursorIndex].name); } GtkWidget *makeBox() { GtkWidget *buttonBox; GtkWidget *box; GtkWidget *button; buttonBox = gtk_hbox_new(TRUE,10); button = gtk_button_new_with_label("Previous"); gtk_box_pack_start(GTK_BOX(buttonBox),button, FALSE,FALSE,0); gtk_signal_connect(GTK_OBJECT(button),"clicked", GTK_SIGNAL_FUNC(previous),NULL); button = gtk_button_new_with_label("Next"); gtk_box_pack_start(GTK_BOX(buttonBox),button, FALSE,FALSE,0); gtk_signal_connect(GTK_OBJECT(button),"clicked", GTK_SIGNAL_FUNC(next),NULL); box = gtk_vbox_new(FALSE,0); nameLabel = gtk_label_new(""); gtk_box_pack_start(GTK_BOX(box),nameLabel, FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(box),buttonBox, FALSE,FALSE,0); return(box); } gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data) { return(FALSE); } gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data) { gtk_main_quit(); return(0); }