home *** CD-ROM | disk | FTP | other *** search
- /*************************************
- * *
- * IntuitionSupport v2.0 *
- * by Torsten Jürgeleit in 05/91 *
- * *
- * Defines, structs and protos *
- * *
- *************************************/
-
- #ifndef INTUITION_SUPPORT_H
- #define INTUITION_SUPPORT_H
-
- #ifndef EXEC_TYPES_H
- #include <exec/types.h>
- #endif /* EXEC_TYPES_H */
-
- #ifndef EXEC_LISTS_H
- #include <exec/lists.h>
- #endif /* EXEC_LISTS_H */
-
- #ifndef GRAPHICS_TEXT_H
- #include <graphics/text.h>
- #endif /* GRAPHICS_TEXT_H */
-
- #ifndef INTUITION_INTUITION_H
- #include <intuition/intuition.h>
- #endif /* INTUITION_INTUITION_H */
-
- /* Defines for library */
-
- #define IntuiSupName "intuisup.library"
- #define IntuiSupVersion 2L
-
- /* Defines for render */
-
- #define RENDER_INFO_FLAG_INNER_WINDOW (1 << 0) /* use upper left corner of inner window as location (0,0) */
- #define RENDER_INFO_FLAG_BACK_FILL (1 << 1) /* fill window back ground with different color */
-
- #define INTUISUP_DATA_END 0 /* mark end of data arry */
-
- /* Defines for open window flags */
-
- #define OPEN_WINDOW_FLAG_CENTER_WINDOW (1 << 0) /* center window on screen */
- #define OPEN_WINDOW_FLAG_RENDER_PENS (1 << 1) /* use render pens for detail and backfill pen */
-
- /* Defines for texts */
-
- #define TEXT_DATA_TYPE_TEXT 1
- #define TEXT_DATA_TYPE_NUM_UNSIGNED_DEC 2
- #define TEXT_DATA_TYPE_NUM_SIGNED_DEC 3
- #define TEXT_DATA_TYPE_NUM_HEX 4
- #define TEXT_DATA_TYPE_NUM_BIN 5
-
- #define TEXT_DATA_FLAG_BOLD (1 << 0)
- #define TEXT_DATA_FLAG_ITALIC (1 << 1)
- #define TEXT_DATA_FLAG_UNDERLINED (1 << 2)
- #define TEXT_DATA_FLAG_ABSOLUTE_POS (1 << 3) /* absolute text pos given - don't add border offsets */
- #define TEXT_DATA_FLAG_CENTER (1 << 4) /* center text with in window width */
- #define TEXT_DATA_FLAG_PLACE_LEFT (1 << 5) /* place text left of given left edge */
- #define TEXT_DATA_FLAG_COLOR2 (1 << 6) /* use 2nd text render pen */
- #define TEXT_DATA_FLAG_COMPLEMENT (1 << 7) /* use complement of front and back pen */
- #define TEXT_DATA_FLAG_BACK_FILL (1 << 8) /* use draw mode JAM2 to fill text background with ri_BackPen */
- #define TEXT_DATA_FLAG_NO_PRINT (1 << 9) /* don't print text - only calc width */
-
- /* Structures for texts */
-
- struct TextData {
- USHORT td_Type;
- USHORT td_Flags;
- SHORT td_LeftEdge;
- SHORT td_TopEdge;
- BYTE *td_Text;
- struct TextAttr *td_TextAttr;
- };
- /* Defines for borders */
-
- #define BORDER_DATA_TYPE_BOX1_OUT 1
- #define BORDER_DATA_TYPE_BOX1_IN 2
- #define BORDER_DATA_TYPE_BOX2_OUT 3
- #define BORDER_DATA_TYPE_BOX2_IN 4
-
- /* Structures for borders */
-
- struct BorderData {
- USHORT bd_Type;
- SHORT bd_LeftEdge;
- SHORT bd_TopEdge;
- USHORT bd_Width;
- USHORT bd_Height;
- };
- /* Defines for gadgets */
-
- #define ISUP_ID ((ULONG)'I' << 24 | (ULONG)'S' << 16 | 'U' << 8 | 'P')
-
- #define GADGET_DATA_TYPE_BUTTON 1 /* button gadget */
- #define GADGET_DATA_TYPE_CHECK 2 /* check mark gadget */
- #define GADGET_DATA_TYPE_MX 3 /* mutual exclude gadget */
- #define GADGET_DATA_TYPE_STRING 4 /* string input gadget */
- #define GADGET_DATA_TYPE_INTEGER 5 /* integer input gadget */
- #define GADGET_DATA_TYPE_SLIDER 6 /* slider gadget */
- #define GADGET_DATA_TYPE_SCROLLER 7 /* scroller gadget */
- #define GADGET_DATA_TYPE_CYCLE 8 /* cycle gadget */
- #define GADGET_DATA_TYPE_COUNT 9 /* count gadget */
- #define GADGET_DATA_TYPE_LISTVIEW 10 /* list view gadget */
- #define GADGET_DATA_TYPE_PALETTE 11 /* palette gadget */
-
- #define GADGET_DATA_FLAG_DISABLED (1L << 0) /* gadget disabled (ghosted) - default enabled */
- #define GADGET_DATA_FLAG_NO_BORDER (1L << 1) /* no gadget border - default with border */
- #define GADGET_DATA_FLAG_HIGH_COMP (1L << 2) /* highliting by complement - default by select border */
- #define GADGET_DATA_FLAG_ORIENTATION_VERT (1L << 3) /* vertical orientation - default horizontal */
- #define GADGET_DATA_FLAG_HOT_KEY (1L << 4) /* hot key given - default none */
- #define GADGET_DATA_FLAG_TEXT_LEFT (1L << 5) /* place text left of gadget */
- #define GADGET_DATA_FLAG_TEXT_RIGHT (1L << 6) /* place text right of gadget */
- #define GADGET_DATA_FLAG_TEXT_ABOVE (1L << 7) /* place text above of gadget */
- #define GADGET_DATA_FLAG_TEXT_BELOW (1L << 8) /* place text below of gadget */
- #define GADGET_DATA_FLAG_TEXT_COLOR2 (1L << 9) /* use 2nd text render pen for gadget text */
- #define GADGET_DATA_FLAG_BUTTON_TOGGLE (1L << 10) /* button gadgets: toggle button - default no toggle */
- #define GADGET_DATA_FLAG_BUTTON_IMAGE (1L << 11) /* button gadgets: render image - default no image */
- #define GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE (1L << 12) /* input gadgets: acivate after GADGETUP next or previous input gadget */
- #define GADGET_DATA_FLAG_STRING_UNSIGNED_DEC (1L << 13) /* string gadgets: input default no pointer to string but an unsigned decimal number */
- #define GADGET_DATA_FLAG_STRING_SIGNED_DEC (1L << 14) /* string gadgets: input default no pointer to string but an signed decimal number */
- #define GADGET_DATA_FLAG_STRING_HEX (1L << 15) /* string gadgets: input default no pointer to string but an hex number */
- #define GADGET_DATA_FLAG_STRING_BIN (1L << 16) /* string gadgets: input default no pointer to string but an binary number */
- #define GADGET_DATA_FLAG_SCROLLER_NO_ARROWS (1L << 17) /* scroller gadget: no arrows - default with arrows */
- #define GADGET_DATA_FLAG_COUNT_SIGNED_DEC (1L << 18) /* count gadget: signed dec - default unsigned dec */
- #define GADGET_DATA_FLAG_LISTVIEW_READ_ONLY (1L << 19) /* list view gadget: read only - default selection enabled */
- #define GADGET_DATA_FLAG_PALETTE_NO_INDICATOR (1L << 20) /* palette gadget: no current color indicator - default with indicator */
- #define GADGET_DATA_FLAG_PALETTE_INDICATOR_TOP (1L << 21) /* palette gadget: place indicator at top - default at left */
-
- #define GADGET_IDCMP_FLAGS_BUTTON (GADGETUP | VANILLAKEY)
- #define GADGET_IDCMP_FLAGS_CHECK (GADGETDOWN | VANILLAKEY)
- #define GADGET_IDCMP_FLAGS_MX (GADGETDOWN | VANILLAKEY)
- #define GADGET_IDCMP_FLAGS_STRING (GADGETUP | VANILLAKEY)
- #define GADGET_IDCMP_FLAGS_INTEGER (GADGETUP | VANILLAKEY)
- #define GADGET_IDCMP_FLAGS_SLIDER (GADGETUP | MOUSEMOVE | VANILLAKEY)
- #define GADGET_IDCMP_FLAGS_SCROLLER (GADGETDOWN | GADGETUP | MOUSEMOVE | INTUITICKS | VANILLAKEY)
- #define GADGET_IDCMP_FLAGS_CYCLE (GADGETUP | VANILLAKEY)
- #define GADGET_IDCMP_FLAGS_COUNT (GADGETDOWN | GADGETUP | MOUSEMOVE | VANILLAKEY)
- #define GADGET_IDCMP_FLAGS_LISTVIEW (GADGETDOWN | GADGETUP | MOUSEMOVE | INTUITICKS | VANILLAKEY)
- #define GADGET_IDCMP_FLAGS_PALETTE (GADGETUP | VANILLAKEY)
- #define GADGET_IDCMP_FLAGS_ALL (GADGETDOWN | GADGETUP | MOUSEMOVE | INTUITICKS | VANILLAKEY)
-
- #define USE_CURRENT_VALUE ~0L /* used for set_gadget_attributes() to indicate data for which to use the current value */
-
- /* Structures for gadgets */
-
- struct GadgetData {
- ULONG gd_Type;
- ULONG gd_Flags;
- USHORT gd_LeftEdge;
- USHORT gd_TopEdge;
- USHORT gd_Width;
- USHORT gd_Height;
- BYTE *gd_Text;
- struct TextAttr *gd_TextAttr;
- union {
- struct { /* standard data struct */
- LONG gd_Data1;
- LONG gd_Data2;
- VOID *gd_Data3;
- } gd_Data;
- struct { /* for button gadgets */
- ULONG gd_ButtonSelected; /* selection state for toggle buttons - ZERO = unselected, non ZERO = selected */
- struct Image *gd_ButtonNormalRender; /* normal render image */
- struct Image *gd_ButtonSelectRender; /* select render image */
- } gd_ButtonData;
- struct { /* for check gadgets */
- ULONG gd_CheckSelected; /* selection state - ZERO = unselected, non ZERO = selected */
- ULONG gd_CheckPad1;
- ULONG gd_CheckPad2;
- } gd_CheckData;
- struct { /* for mutual exclude gadgets */
- ULONG gd_MXSpacing; /* pixel spacing between MX gadgets */
- ULONG gd_MXActiveEntry; /* num of active entry from text array */
- BYTE **gd_MXTextArray; /* ptr to MX text ptr array */
- } gd_MXData;
- struct { /* for string and integer gadgets */
- ULONG gd_InputLen; /* len of input buffer */
- USHORT gd_InputActivateNext; /* num of next string/num gadget to activate */
- USHORT gd_InputActivatePrev; /* num of previous string/num gadget to activate */
- BYTE *gd_InputDefault; /* string: default text [syntax: "text"] */
- /* integer: default number [syntax: (VOID *)num] */
- } gd_InputData;
- struct { /* for slider gadgets */
- LONG gd_SliderMin; /* min level */
- LONG gd_SliderMax; /* max level */
- LONG gd_SliderLevel; /* current slider level */
- } gd_SliderData;
- struct { /* for scroller gadgets */
- ULONG gd_ScrollerVisible; /* visible entries */
- ULONG gd_ScrollerTotal; /* total entries */
- ULONG gd_ScrollerTop; /* current top entry */
- } gd_ScrollerData;
- struct { /* for cycle gadget */
- ULONG gd_CyclePad;
- ULONG gd_CycleActive; /* num of current cycle text ptr array entry */
- BYTE **gd_CycleTextArray; /* ptr to cycle text ptr array */
- } gd_CycleData;
- struct { /* for count gadget */
- ULONG gd_CountMin; /* min value */
- ULONG gd_CountMax; /* max value */
- ULONG gd_CountValue; /* current count value */
- } gd_CountData;
- struct { /* for list view gadget */
- ULONG gd_ListViewSpacing; /* pixel spacing between list view entries */
- ULONG gd_ListViewTop; /* current top entry */
- struct List *gd_ListViewList; /* current list ptr */
- } gd_ListViewData;
- struct { /* for palette gadget */
- ULONG gd_PaletteDepth; /* num of bitplanes for palette */
- ULONG gd_PaletteColorOffset; /* first color of palette */
- ULONG gd_PaletteActiveColor; /* selected color */
- } gd_PaletteData;
- } gd_SpecialData;
- };
- /* Defines for menus */
-
- #define MENU_DATA_TYPE_TITLE 1
- #define MENU_DATA_TYPE_ITEM 2
- #define MENU_DATA_TYPE_SUBITEM 3
-
- #define MENU_DATA_FLAG_DISABLED (1 << 0) /* disable menu or menu item */
- #define MENU_DATA_FLAG_ATTRIBUTE (1 << 1) /* attribute menu item */
- #define MENU_DATA_FLAG_SELECTED (1 << 2) /* selected attribute menu item */
- #define MENU_DATA_FLAG_EMPTY_LINE (1 << 3) /* insert empty line before this item */
- #define MENU_DATA_FLAG_HIGH_NONE (1 << 4) /* no highliting */
- #define MENU_DATA_FLAG_HIGH_BOX (1 << 5) /* highliting with box, otherwise with complement */
-
- /* Structures for menus */
-
- struct MenuData {
- USHORT md_Type;
- USHORT md_Flags;
- BYTE *md_Name;
- BYTE *md_CommandKey;
- ULONG md_MutualExclude;
- };
-
- /* Prototypes */
-
- APTR IGetRenderInfo(struct Screen *screen, USHORT flags);
- VOID IFreeRenderInfo(APTR ri);
- struct Window *IOpenWindow(APTR ri, struct NewWindow *nw, USHORT flags);
- VOID IClearRenderWindow(APTR ri, struct Window *win, USHORT left_edge,
- USHORT top_edge, USHORT width, USHORT height);
-
- VOID IDisplayTexts(APTR ri, struct Window *win, struct TextData *td,
- SHORT hoffset, SHORT voffset);
- USHORT IPrintText(APTR ri, struct Window *win, BYTE *text,
- USHORT left_edge, USHORT top_edge, USHORT type, USHORT flags,
- struct TextAttr *text_attr);
- USHORT IConvertUnsignedDec(ULONG num, BYTE *buffer);
- USHORT IConvertSignedDec(LONG num, BYTE *buffer);
- USHORT IConvertHex(ULONG num, BYTE *buffer);
- USHORT IConvertBin(ULONG num, BYTE *buffer);
-
- VOID IDisplayBorders(APTR ri, struct Window *win,
- struct BorderData *bd, SHORT hoffset, SHORT voffset);
- VOID IDrawBorder(APTR ri, struct Window *win, USHORT left_edge,
- USHORT top_edge, USHORT width, USHORT height, USHORT type);
-
- APTR ICreateGadgets(APTR ri, struct GadgetData *gd, SHORT hoffset,
- SHORT voffset);
- VOID IFreeGadgets(APTR gl);
- VOID IDisplayGadgets(struct Window *win, APTR gl);
- VOID IRefreshGadgets(APTR gl);
- ULONG ISetGadgetAttributes(APTR gl, USHORT data_entry, ULONG flags,
- ULONG data1, ULONG data2, VOID *data3);
- VOID IActivateInputGadget(APTR gl, USHORT data_entry);
- struct Gadget *IGadgetAddress(APTR gl, USHORT data_entry);
- VOID IRemoveGadgets(APTR gl);
- struct IntuiMessage *IGetMsg(struct MsgPort *uport);
- VOID IReplyMsg(struct IntuiMessage *imsg);
-
- APTR ICreateMenu(APTR ri, struct Window *win, struct MenuData *md,
- struct TextAttr *ta);
- VOID IAttachMenu(struct Window *win, APTR ml);
- struct MenuItem *IMenuItemAddress(APTR ml, USHORT menu_num);
- VOID IRemoveMenu(APTR ml);
- VOID IFreeMenu(APTR ml);
-
- /* Pragmas for Manx and Lattice */
-
- #ifndef __NO_PRAGMAS
- #ifdef AZTEC_C
- #pragma amicall(IntuiSupBase, 0x1e, IGetRenderInfo(a0,d0))
- #pragma amicall(IntuiSupBase, 0x24, IFreeRenderInfo(a0))
- #pragma amicall(IntuiSupBase, 0x2a, IOpenWindow(a0,a1,d0))
- #pragma amicall(IntuiSupBase, 0x30, IClearRenderWindow(a0,a1,d0,d1,d2,d3))
- #pragma amicall(IntuiSupBase, 0x36, IDisplayTexts(a0,a1,a2,d0,d1))
- #pragma amicall(IntuiSupBase, 0x3c, IPrintText(a0,a1,a2,d0,d1,d2,d3,a3))
- #pragma amicall(IntuiSupBase, 0x42, IConvertUnsignedDec(d0,a0))
- #pragma amicall(IntuiSupBase, 0x48, IConvertSignedDec(d0,a0))
- #pragma amicall(IntuiSupBase, 0x4e, IConvertHex(d0,a0))
- #pragma amicall(IntuiSupBase, 0x54, IConvertBin(d0,a0))
- #pragma amicall(IntuiSupBase, 0x5a, IDisplayBorders(a0,a1,a2,d0,d1))
- #pragma amicall(IntuiSupBase, 0x60, IDrawBorder(a0,a1,d0,d1,d2,d3,d4))
- #pragma amicall(IntuiSupBase, 0x66, ICreateGadgets(a0,a1,d0,d1))
- #pragma amicall(IntuiSupBase, 0x6c, IFreeGadgets(a0))
- #pragma amicall(IntuiSupBase, 0x72, IDisplayGadgets(a0,a1))
- #pragma amicall(IntuiSupBase, 0x78, IRefreshGadgets(a0))
- #pragma amicall(IntuiSupBase, 0x7e, ISetGadgetAttributes(a0,d0,d1,d2,d3,a1))
- #pragma amicall(IntuiSupBase, 0x84, IActivateInputGadget(a0,d0))
- #pragma amicall(IntuiSupBase, 0x8a, IGadgetAddress(a0,d0))
- #pragma amicall(IntuiSupBase, 0x90, IRemoveGadgets(a0))
- #pragma amicall(IntuiSupBase, 0x96, IGetMsg(a0))
- #pragma amicall(IntuiSupBase, 0x9c, IReplyMsg(a0))
- #pragma amicall(IntuiSupBase, 0xa2, ICreateMenu(a0,a1,a2,a3))
- #pragma amicall(IntuiSupBase, 0xa8, IAttachMenu(a0,a1))
- #pragma amicall(IntuiSupBase, 0xae, IMenuItemAddress(a0,d0))
- #pragma amicall(IntuiSupBase, 0xb4, IRemoveMenu(a0))
- #pragma amicall(IntuiSupBase, 0xba, IFreeMenu(a0))
- #else /* AZTEC_C */
- #pragma libcall IntuiSupBase IGetRenderInfo 1e 802
- #pragma libcall IntuiSupBase IFreeRenderInfo 24 801
- #pragma libcall IntuiSupBase IOpenWindow 2a 9803
- #pragma libcall IntuiSupBase IClearRenderWindow 30 32109806
- #pragma libcall IntuiSupBase IDisplayTexts 36 10a9805
- #pragma libcall IntuiSupBase IPrintText 3c 210a9808
- #pragma libcall IntuiSupBase IConvertUnsignedDec 42 8002
- #pragma libcall IntuiSupBase IConvertSignedDec 48 8002
- #pragma libcall IntuiSupBase IConvertHex 4e 8002
- #pragma libcall IntuiSupBase IConvertBin 54 8002
- #pragma libcall IntuiSupBase IDisplayBorders 5a 10a9805
- #pragma libcall IntuiSupBase IDrawBorder 60 32109807
- #pragma libcall IntuiSupBase ICreateGadgets 66 109804
- #pragma libcall IntuiSupBase IFreeGadgets 6c 801
- #pragma libcall IntuiSupBase IDisplayGadgets 72 9802
- #pragma libcall IntuiSupBase IRefreshGadgets 78 801
- #pragma libcall IntuiSupBase ISetGadgetAttributes 7e 93210806
- #pragma libcall IntuiSupBase IActivateInputGadget 84 802
- #pragma libcall IntuiSupBase IGadgetAddress 8a 802
- #pragma libcall IntuiSupBase IRemoveGadgets 90 801
- #pragma libcall IntuiSupBase IGetMsg 96 801
- #pragma libcall IntuiSupBase IReplyMsg 9c 801
- #pragma libcall IntuiSupBase ICreateMenu a2 ba9804
- #pragma libcall IntuiSupBase IAttachMenu a8 9802
- #pragma libcall IntuiSupBase IMenuItemAddress ae 802
- #pragma libcall IntuiSupBase IRemoveMenu b4 801
- #pragma libcall IntuiSupBase IFreeMenu ba 801
- #endif /* AZTEC_C */
- #endif /* __NO_PRAGMAS */
-
- #endif /* INTUITION_SUPPORT */
-