home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 2
/
goldfish_vol2_cd1.bin
/
gnu
/
os-include
/
intuition
/
imageclass.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-10-15
|
8KB
|
249 lines
#ifndef INTUITION_IMAGECLASS_H
#define INTUITION_IMAGECLASS_H TRUE
/*
** $VER: imageclass.h 38.5 (26.3.92)
** Includes Release 40.15
**
** Definitions for the image classes
**
** (C) Copyright 1989-1993 Commodore-Amiga, Inc.
** All Rights Reserved
*/
#ifndef UTILITY_TAGITEM_H
#include <utility/tagitem.h>
#endif
/*
* NOTE: <intuition/iobsolete.h> is included at the END of this file!
*/
#define CUSTOMIMAGEDEPTH (-1)
/* if image.Depth is this, it's a new Image class object */
/* some convenient macros and casts */
#define GADGET_BOX( g ) ( (struct IBox *) &((struct Gadget *)(g))->LeftEdge )
#define IM_BOX( im ) ( (struct IBox *) &((struct Image *)(im))->LeftEdge )
#define IM_FGPEN( im ) ( (im)->PlanePick )
#define IM_BGPEN( im ) ( (im)->PlaneOnOff )
/******************************************************/
#define IA_Dummy (TAG_USER + 0x20000)
#define IA_Left (IA_Dummy + 0x01)
#define IA_Top (IA_Dummy + 0x02)
#define IA_Width (IA_Dummy + 0x03)
#define IA_Height (IA_Dummy + 0x04)
#define IA_FGPen (IA_Dummy + 0x05)
/* IA_FGPen also means "PlanePick" */
#define IA_BGPen (IA_Dummy + 0x06)
/* IA_BGPen also means "PlaneOnOff" */
#define IA_Data (IA_Dummy + 0x07)
/* bitplanes, for classic image,
* other image classes may use it for other things
*/
#define IA_LineWidth (IA_Dummy + 0x08)
#define IA_Pens (IA_Dummy + 0x0E)
/* pointer to UWORD pens[],
* ala DrawInfo.Pens, MUST be
* terminated by ~0. Some classes can
* choose to have this, or SYSIA_DrawInfo,
* or both.
*/
#define IA_Resolution (IA_Dummy + 0x0F)
/* packed uwords for x/y resolution into a longword
* ala DrawInfo.Resolution
*/
/**** see class documentation to learn which *****/
/**** classes recognize these *****/
#define IA_APattern (IA_Dummy + 0x10)
#define IA_APatSize (IA_Dummy + 0x11)
#define IA_Mode (IA_Dummy + 0x12)
#define IA_Font (IA_Dummy + 0x13)
#define IA_Outline (IA_Dummy + 0x14)
#define IA_Recessed (IA_Dummy + 0x15)
#define IA_DoubleEmboss (IA_Dummy + 0x16)
#define IA_EdgesOnly (IA_Dummy + 0x17)
/**** "sysiclass" attributes *****/
#define SYSIA_Size (IA_Dummy + 0x0B)
/* #define's below */
#define SYSIA_Depth (IA_Dummy + 0x0C)
/* this is unused by Intuition. SYSIA_DrawInfo
* is used instead for V36
*/
#define SYSIA_Which (IA_Dummy + 0x0D)
/* see #define's below */
#define SYSIA_DrawInfo (IA_Dummy + 0x18)
/* pass to sysiclass, please */
/***** obsolete: don't use these, use IA_Pens *****/
#define SYSIA_Pens IA_Pens
#define IA_ShadowPen (IA_Dummy + 0x09)
#define IA_HighlightPen (IA_Dummy + 0x0A)
/* New for V39: */
#define SYSIA_ReferenceFont (IA_Dummy + 0x19)
/* Font to use as reference for scaling
* certain sysiclass images
*/
#define IA_SupportsDisable (IA_Dummy + 0x1a)
/* By default, Intuition ghosts gadgets itself,
* instead of relying on IDS_DISABLED or
* IDS_SELECTEDDISABLED. An imageclass that
* supports these states should return this attribute
* as TRUE. You cannot set or clear this attribute,
* however.
*/
#define IA_FrameType (IA_Dummy + 0x1b)
/* Starting with V39, FrameIClass recognizes
* several standard types of frame. Use one
* of the FRAME_ specifiers below. Defaults
* to FRAME_DEFAULT.
*/
/** next attribute: (IA_Dummy + 0x1c) **/
/*************************************************/
/* data values for SYSIA_Size */
#define SYSISIZE_MEDRES (0)
#define SYSISIZE_LOWRES (1)
#define SYSISIZE_HIRES (2)
/*
* SYSIA_Which tag data values:
* Specifies which system gadget you want an image for.
* Some numbers correspond to internal Intuition #defines
*/
#define DEPTHIMAGE (0x00L) /* Window depth gadget image */
#define ZOOMIMAGE (0x01L) /* Window zoom gadget image */
#define SIZEIMAGE (0x02L) /* Window sizing gadget image */
#define CLOSEIMAGE (0x03L) /* Window close gadget image */
#define SDEPTHIMAGE (0x05L) /* Screen depth gadget image */
#define LEFTIMAGE (0x0AL) /* Left-arrow gadget image */
#define UPIMAGE (0x0BL) /* Up-arrow gadget image */
#define RIGHTIMAGE (0x0CL) /* Right-arrow gadget image */
#define DOWNIMAGE (0x0DL) /* Down-arrow gadget image */
#define CHECKIMAGE (0x0EL) /* GadTools checkbox image */
#define MXIMAGE (0x0FL) /* GadTools mutual exclude "button" image */
/* New for V39: */
#define MENUCHECK (0x10L) /* Menu checkmark image */
#define AMIGAKEY (0x11L) /* Menu Amiga-key image */
/* Data values for IA_FrameType (recognized by FrameIClass)
*
* FRAME_DEFAULT: The standard V37-type frame, which has
* thin edges.
* FRAME_BUTTON: Standard button gadget frames, having thicker
* sides and nicely edged corners.
* FRAME_RIDGE: A ridge such as used by standard string gadgets.
* You can recess the ridge to get a groove image.
* FRAME_ICONDROPBOX: A broad ridge which is the standard imagery
* for areas in AppWindows where icons may be dropped.
*/
#define FRAME_DEFAULT 0
#define FRAME_BUTTON 1
#define FRAME_RIDGE 2
#define FRAME_ICONDROPBOX 3
/* image message id's */
#define IM_DRAW 0x202L /* draw yourself, with "state" */
#define IM_HITTEST 0x203L /* return TRUE if click hits image */
#define IM_ERASE 0x204L /* erase yourself */
#define IM_MOVE 0x205L /* draw new and erase old, smoothly */
#define IM_DRAWFRAME 0x206L /* draw with specified dimensions */
#define IM_FRAMEBOX 0x207L /* get recommended frame around some box*/
#define IM_HITFRAME 0x208L /* hittest with dimensions */
#define IM_ERASEFRAME 0x209L /* hittest with dimensions */
/* image draw states or styles, for IM_DRAW */
/* Note that they have no bitwise meanings (unfortunately) */
#define IDS_NORMAL (0L)
#define IDS_SELECTED (1L) /* for selected gadgets */
#define IDS_DISABLED (2L) /* for disabled gadgets */
#define IDS_BUSY (3L) /* for future functionality */
#define IDS_INDETERMINATE (4L) /* for future functionality */
#define IDS_INACTIVENORMAL (5L) /* normal, in inactive window border */
#define IDS_INACTIVESELECTED (6L) /* selected, in inactive border */
#define IDS_INACTIVEDISABLED (7L) /* disabled, in inactive border */
#define IDS_SELECTEDDISABLED (8L) /* disabled and selected */
/* oops, please forgive spelling error by jimm */
#define IDS_INDETERMINANT IDS_INDETERMINATE
/* IM_FRAMEBOX */
struct impFrameBox {
ULONG MethodID;
struct IBox *imp_ContentsBox; /* input: relative box of contents */
struct IBox *imp_FrameBox; /* output: rel. box of encl frame */
struct DrawInfo *imp_DrInfo; /* NB: May be NULL */
ULONG imp_FrameFlags;
};
#define FRAMEF_SPECIFY (1<<0) /* Make do with the dimensions of FrameBox
* provided.
*/
/* IM_DRAW, IM_DRAWFRAME */
struct impDraw {
ULONG MethodID;
struct RastPort *imp_RPort;
struct {
WORD X;
WORD Y;
} imp_Offset;
ULONG imp_State;
struct DrawInfo *imp_DrInfo; /* NB: May be NULL */
/* these parameters only valid for IM_DRAWFRAME */
struct {
WORD Width;
WORD Height;
} imp_Dimensions;
};
/* IM_ERASE, IM_ERASEFRAME */
/* NOTE: This is a subset of impDraw */
struct impErase {
ULONG MethodID;
struct RastPort *imp_RPort;
struct {
WORD X;
WORD Y;
} imp_Offset;
/* these parameters only valid for IM_ERASEFRAME */
struct {
WORD Width;
WORD Height;
} imp_Dimensions;
};
/* IM_HITTEST, IM_HITFRAME */
struct impHitTest {
ULONG MethodID;
struct {
WORD X;
WORD Y;
} imp_Point;
/* these parameters only valid for IM_HITFRAME */
struct {
WORD Width;
WORD Height;
} imp_Dimensions;
};
/* Include obsolete identifiers: */
#ifndef INTUITION_IOBSOLETE_H
#include <intuition/iobsolete.h>
#endif
#endif