The GR_BITMAP type is used to specify small monochrome bitmapped images. These bitmap images are generally used for mouse cursors.
Each pixel is represented by a bit in a GR_BITMAP value. The bitmaps can be up to 16x16 pixels in size. Therefore this type will define a complete row of the bitmap within one GR_BITMAP value. To define a 16x16 bitmap, you would use a 16 element array of GR_BITMAP values.
The following example builds an X shaped mouse cursor.
Example 3-1. Using GR_BITMAP
void set_x_cursor (GR_WINDOW_ID wid)
{
GR_BITMAP fg_bitmap[16];
GR_BITMAP bg_bitmap[16];
fg_bitmap[0] = 0x8001; /* X______________X */
fg_bitmap[1] = 0x4002; /* _X____________X_ */
fg_bitmap[2] = 0x2004; /* __X__________X__ */
fg_bitmap[3] = 0x1008; /* ___X________X___ */
fg_bitmap[4] = 0x0810; /* ____X______X____ */
fg_bitmap[5] = 0x0420; /* _____X____X_____ */
fg_bitmap[6] = 0x0240; /* ______X__X______ */
fg_bitmap[7] = 0x0180; /* _______XX_______ */
fg_bitmap[8] = 0x0180; /* _______XX_______ */
fg_bitmap[9] = 0x0240; /* ______X__X______ */
fg_bitmap[10] = 0x0420; /* _____X____X_____ */
fg_bitmap[11] = 0x0810; /* ____X______X____ */
fg_bitmap[12] = 0x1008; /* ___X________X___ */
fg_bitmap[13] = 0x2004; /* __X__________X__ */
fg_bitmap[14] = 0x4002; /* _X____________X_ */
fg_bitmap[15] = 0x8001; /* X______________X */
bg_bitmap[0] = 0x4002; /* _X____________X_ */
bg_bitmap[1] = 0xA005; /* X_X__________X_X */
bg_bitmap[2] = 0x500A; /* _X_X________X_X_ */
bg_bitmap[3] = 0x2814; /* __X_X______X_X__ */
bg_bitmap[4] = 0x1428; /* ___X_X____X_X___ */
bg_bitmap[5] = 0x0A50; /* ____X_X__X_X____ */
bg_bitmap[6] = 0x05A0; /* _____X_XX_X_____ */
bg_bitmap[7] = 0x0240; /* ______X__X______ */
bg_bitmap[8] = 0x0240; /* ______X__X______ */
bg_bitmap[9] = 0x05A0; /* _____X_XX_X_____ */
bg_bitmap[10] = 0x0A50; /* ____X_X__X_X____ */
bg_bitmap[11] = 0x1428; /* ___X_X____X_X___ */
bg_bitmap[12] = 0x2814; /* __X_X______X_X__ */
bg_bitmap[13] = 0x500A; /* _X_X________X_X_ */
bg_bitmap[14] = 0xA005; /* X_X__________X_X */
bg_bitmap[15] = 0x4002; /* _X____________X_ */
GrSetCursor (wid, 16, 16, 8, 8,
BLACK, BLACK, fg_bitmap, bg_bitmap);
} |