/* * simple_cursor.c -- create a cursor (looks like an hourglass) and * assign it to a canvas window. */ #include <xview/xview.h> #include <xview/panel.h> #include <xview/cursor.h> #include <xview/svrimage.h> /* data that describes the cursor's image -- see SERVER_IMAGE below */ short cursor_bits[] = { /* Width=16, Height=16, Depth=1, */ 0x7FFE,0x4002,0x200C,0x1A38,0x0FF0,0x07E0,0x03C0,0x0180, 0x0180,0x0240,0x0520,0x0810,0x1108,0x23C4,0x47E2,0x7FFE }; main(argc, argv) int argc; char *argv[]; { Frame frame; Canvas canvas; Xv_Cursor cursor; Server_image svr_image; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); /* * create a server image to use as the cursor's image. */ svr_image = (Server_image)xv_create(XV_NULL, SERVER_IMAGE, XV_WIDTH, 16, XV_HEIGHT, 16, SERVER_IMAGE_BITS, cursor_bits, NULL); /* * create a cursor based on the image just created */ cursor = (Xv_Cursor)xv_create(XV_NULL, CURSOR, CURSOR_IMAGE, svr_image, NULL); /* * Create a base frame and a canvas */ frame = (Frame)xv_create(XV_NULL, FRAME, NULL); canvas = (Canvas)xv_create(frame, CANVAS, XV_WIDTH, 100, XV_HEIGHT, 100, NULL); /* * set the cursor to the paint window for the canvas * Do not set it for the canvas itself. */ xv_set(xv_get(canvas, CANVAS_NTH_PAINT_WINDOW, 0), WIN_CURSOR, cursor, NULL); window_fit(frame); window_main_loop(frame); }