typedef ByteFlags AppLaunchFlags; #define ALF_SEND_LAUNCH_REQUEST_TO_UI_TO_HANDLE 0x80 #define ALF_OPEN_IN_BACK 0x40
typedef ByteFlags ApplicationStates; #define AS_QUITTING 0x80 #define AS_DETACHING 0x40 #define AS_FOCUSABLE 0x20 #define AS_MODELABLE 0x10 #define AS_NOT_USER_INTERACTABLE 0x08 #define AS_RECEIVED_APP_OBJECT_DETACH 0x04 #define AS_ATTACHED_TO_STATE_FILE 0x02 #define AS_ATTACHING 0x01
typedef enum /* word */ { ACT_OPEN, ACT_CHORD, ACT_PIE } ArcCloseType;
This structure is used when filling arcs.
typedef struct { byte AA_colorFlag; RGBValue AA_color; SysDrawMask AA_mask; ColorMapMode AA_mapMode; } AreaAttr;
typedef struct { EvalStackArgumentType ASE_type; EvalStackArgumentData ASE_data; } ArgumentStackElement;
typedef struct { byte BBF_frac; byte BBF_int; } BBFixed;
This structure represents an 8.8 fixed point number.
typedef struct { word B_width; /* In bitmap pixels */ word B_height; /* In bitmap pixels */ byte B_compact; /* A BMCompact value */ byte B_type; /* A BMFormat | BMType value */ } Bitmap;
This data structure provides some information about a simple graphics bitmap. It normally acts as the header for a set of bitmap data.
The bitmap data itself is organized into scan lines. If the bitmap has a mask (if the BMT_MASK bit is set in the
B_type
field), the first information for the scan line will be its mask information. There will be one bit of mask information for each pixel in the scan line (i.e. a number of bits equal to the bitmap width). The actual bitmap data for the scan line starts at the next byte boundary. For each pixel there will be a number of bits of color data, said number depending on the
BMFormat
value in the
B_type
field. The data for the next scan line will begin at the next byte boundary.
Thus, a 7x7 bitmap depicting an inverse "x" might appear:
(Bitmap) {7, 7, BMC_UNCOMPACTED, BMF_MONO }; (byte)[] {0x82, /* 10000010 */ 0x44, /* 01000100 */ 0x28, /* 00101000 */ 0x10, /* 00010000 */ 0x28, /* 00101000 */ 0x44, /* 01000100 */ 0x82 }; /* 10000010 */
A 3x3 color "-" shape with a a "+" shaped mask might appear:
(Bitmap) { 3, 3, BMC_UNCOMPACTED, (BMF_4BIT | BMT_MASK)}; (byte) [] {/* scan line 1: */ 0x40, /* mask: 010 */ 0, 0 /* data: 000 */ /* scan line 2: */ 0xE0, /* mask: 111 */ 0x43, 0x20, /* data: 432 */ /* scan line 3: */ 0x40, /* mask: 010 */ 0, 0 }; /* data: 000 */
If standard BMC_PACKBITS compression is used, then the mask (if any) and color data for the bitmap is compressed using the Macintosh PackBits standard. Under this system, to uncompress the data for a scan line, follow the loop:
Thus a 16x4 color "=" with a matching mask would appear:
(Bitmap) {15, 3, BMC_PACKBITS, BMF_4BIT | BMT_MASK } ; (byte) [] {/* scan line 1: */ /* mask: 2 repetitions of 0xff */ 0xff, 0xff, /* data: 16 repetitions of 0x14 */ 0xf0, 0x14, /* scan line 2: */ /* mask: 2 repetitions of 0x00 */ /* data: 16 repetitions of 0x00 */ /* total: 18 repetitions of 0x00 */ 0xee, 0x00, /* scan line 3: */ /* mask: 2 repetitions of 0x00 */ /* data: 16 repetitions of 0x00 */ /* total: 18 repetitions of 0x00 */ 0xee, 0x00, /* scan line 4: */
/* mask: 2 repetitions of 0xff */
0xff, 0xff,
/* data: 16 repetitions of 0x14 */
0xf0, 0x14};
See Also: CBitmap
.