Up: GEOS SDK TechDocs| Up | Prev: AccessPointStandardProperty ... | Next: BitmapMode ...

AppLaunchFlags

typedef ByteFlags AppLaunchFlags;
#define ALF_SEND_LAUNCH_REQUEST_TO_UI_TO_HANDLE											0x80
#define ALF_OPEN_IN_BACK											0x40

 

ApplicationStates

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

 

ArcCloseType

typedef enum /* word */ {
ACT_OPEN,
ACT_CHORD,
ACT_PIE
} ArcCloseType;

This structure is used when filling arcs.

AreaAttr

typedef struct {
byte 		AA_colorFlag;
RGBValue 		AA_color;
SysDrawMask 		AA_mask;
ColorMapMode		AA_mapMode;
} AreaAttr;

 

ArgumentStackElement

typedef struct {
EvalStackArgumentType ASE_type;
EvalStackArgumentData ASE_data;
} ArgumentStackElement;

 

BBFixed

typedef struct {
byte BBF_frac;
byte BBF_int;
} BBFixed;

This structure represents an 8.8 fixed point number.

BBFixedAsWord

typedef word BBFixedAsWord;

This structure represents an 8.8 fixed point number.

Bitmap

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:

  1. Read a byte.
  2. If the byte read in step (1) is between -1 and -127, read the next byte and copy it into the target buffer from +2 to +128 times.
  3. If the byte read in step (1) is between +1 and +127, read the next 1 to 127 bytes and copy them into the target buffer.
  4. If the byte read in step (1) is -128, ignore it.
  5. You're ready to read in the next batch of data; go back to step (1).

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.


Up: GEOS SDK TechDocs| Up | Prev: AccessPointStandardProperty ... | Next: BitmapMode ...