home *** CD-ROM | disk | FTP | other *** search
- IFND LIBRARIES_GADTOOLS_I
- LIBRARIES_GADTOOLS_I SET 1
- **
- ** $Filename: libraries/gadtools.i $
- ** $Release: 2.04 Includes, V37.4 $
- ** $Revision: 36.13 $
- ** $Date: 91/10/09 $
- **
- ** gadtools.library definitions
- **
- ** (C) Copyright 1989-1991 Commodore-Amiga, Inc.
- ** All Rights Reserved.
- **
-
- *------------------------------------------------------------------------*
-
- IFND EXEC_TYPES_I
- INCLUDE 'exec/types.i'
- ENDC
-
- IFND UTILITY_TAGITEM_I
- INCLUDE 'utility/tagitem.i'
- ENDC
-
- IFND INTUITION_INTUITION_I
- INCLUDE 'intuition/intuition.i'
- ENDC
-
- *------------------------------------------------------------------------*
-
- * The kinds (almost classes) of gadgets in the toolkit. Use these
- * identifiers when calling CreateGadgetA()
-
- GENERIC_KIND EQU 0
- BUTTON_KIND EQU 1
- CHECKBOX_KIND EQU 2
- INTEGER_KIND EQU 3
- LISTVIEW_KIND EQU 4
- MX_KIND EQU 5
- NUMBER_KIND EQU 6
- CYCLE_KIND EQU 7
- PALETTE_KIND EQU 8
- SCROLLER_KIND EQU 9
- * Kind number 10 is reserved
- SLIDER_KIND EQU 11
- STRING_KIND EQU 12
- TEXT_KIND EQU 13
-
- NUM_KINDS EQU 14
-
- *------------------------------------------------------------------------*
-
- * These two definitions are obsolete, but are here for backwards
- * compatibility. You never need to worry about these:
- GADTOOLBIT EQU $8000
-
- * Use this mask to isolate the user part: *
- GADTOOLMASK EQU ~GADTOOLBIT
-
- *------------------------------------------------------------------------*
-
- * 'Or' the appropriate set together for your Window IDCMPFlags: *
-
- ARROWIDCMP EQU GADGETUP!GADGETDOWN!INTUITICKS!MOUSEBUTTONS
-
- BUTTONIDCMP EQU GADGETUP
- CHECKBOXIDCMP EQU GADGETUP
- INTEGERIDCMP EQU GADGETUP
- LISTVIEWIDCMP EQU GADGETUP!GADGETDOWN!MOUSEMOVE!ARROWIDCMP
-
- MXIDCMP EQU GADGETDOWN
- NUMBERIDCMP EQU 0
- CYCLEIDCMP EQU GADGETUP
- PALETTEIDCMP EQU GADGETUP
-
- * Use ARROWIDCMP!SCROLLERIDCMP if your scrollers have arrows: *
- SCROLLERIDCMP EQU GADGETUP!GADGETDOWN!MOUSEMOVE
- SLIDERIDCMP EQU GADGETUP!GADGETDOWN!MOUSEMOVE
- STRINGIDCMP EQU GADGETUP
-
- TEXTIDCMP EQU 0
-
- *------------------------------------------------------------------------*
-
- * Typical suggested spacing between "elements": *
- INTERWIDTH EQU 8
- INTERHEIGHT EQU 4
-
- *------------------------------------------------------------------------*
-
- * Generic NewGadget used by several of the gadget classes: *
-
- STRUCTURE NewGadget,0
-
- WORD gng_LeftEdge
- WORD gng_TopEdge ; gadget position
- WORD gng_Width
- WORD gng_Height ; gadget size
- APTR gng_GadgetText ; gadget label
- APTR gng_TextAttr ; desired font for gadget label
- UWORD gng_GadgetID ; gadget ID
- ULONG gng_Flags ; see below
- APTR gng_VisualInfo ; Set to retval of GetVisualInfo()
- APTR gng_UserData ; gadget UserData
-
- LABEL gng_SIZEOF
-
- * ng_Flags control certain aspects of the gadget. The first five control
- * the placement of the descriptive text. All larger groups supply a
- * default:
-
- PLACETEXT_LEFT EQU $0001 * Right-align text on left side
- PLACETEXT_RIGHT EQU $0002 * Left-align text on right side
- PLACETEXT_ABOVE EQU $0004 * Center text above
- PLACETEXT_BELOW EQU $0008 * Center text below
- PLACETEXT_IN EQU $0010 * Center text on
-
- NG_HIGHLABEL EQU $0020 * Highlight the label
-
- *------------------------------------------------------------------------*
-
- * Fill out an array of these and pass that to CreateMenus():
-
- STRUCTURE NewMenu,0
-
- UBYTE gnm_Type ; See below
- UBYTE gnm_Pad ; alignment padding
- APTR gnm_Label ; Menu's label
- APTR gnm_CommKey ; MenuItem Command Key Equiv
- UWORD gnm_Flags ; Menu or MenuItem flags (see note)
- LONG gnm_MutualExclude ; MenuItem MutualExclude word
- APTR gnm_UserData ; For your own use, see note
-
- LABEL gnm_SIZEOF
-
- * Each nm_Type should be one of these:
- NM_TITLE EQU 1
- NM_ITEM EQU 2
- NM_SUB EQU 3
- NM_END EQU 0
-
- MENU_IMAGE EQU 128
-
- * For an image menu-item or sub-item, use one of these. Set
- * nm_Label to point at the Image structure you wish to use.
- * NOTE: At present, you may only use conventional images.
- * Custom images created from Intuition image-classes do not work.
-
- IM_ITEM EQU NM_ITEM!MENU_IMAGE
- IM_SUB EQU NM_SUB!MENU_IMAGE
-
- * If you set your label to NM_BARLABEL, you'll get a separator bar.
- NM_BARLABEL EQU -1
-
-
- * The nm_Flags field is used to fill out either the Menu->Flags or
- * MenuItem->Flags field. Note that the sense of the MENUENABLED or
- * ITEMENABLED bit is inverted between this use and Intuition's use,
- * in other words, NewMenus are enabled by default. The following
- * labels are provided to disable them:
-
- NM_MENUDISABLED EQU MENUENABLED
- NM_ITEMDISABLED EQU ITEMENABLED
-
- * The following are pre-cleared (COMMSEQ, ITEMTEXT, and HIGHxxx are set
- * later as appropriate):
-
- NM_FLAGMASK EQU ~(COMMSEQ!ITEMTEXT!HIGHFLAGS)
-
- * You may choose among CHECKIT, MENUTOGGLE, and CHECKED.
- * Toggle-select menuitems are of type CHECKIT!MENUTOGGLE, along
- * with CHECKED if currently selected. Mutually exclusive ones
- * are of type CHECKIT, and possibly CHECKED too. The nm_MutualExclude
- * is a bit-wise representation of the items excluded by this one,
- * so in the simplest case (choose 1 among n), these flags would be
- * ~1, ~2, ~4, ~8, ~16, etc. See the Intuition Menus chapter.
-
- * A UserData pointer can be associated with each Menu and MenuItem structure.
- * The CreateMenus() call allocates space for a UserData after each
- * Menu or MenuItem (header, item or sub-item). You should use the
- * GTMENU_USERDATA or GTMENUITEM_USERDATA macro to extract it. */
-
- GTMENU_USERDATA MACRO
- move.l mu_SIZEOF(\1),\2
- ENDM
-
- GTMENUITEM_USERDATA MACRO
- move.l mi_SIZEOF(\1),\2
- ENDM
-
- * Here is an old one for compatibility. Do not use in new code!
- MENU_USERDATA MACRO
- move.l mi_SIZEOF(\1),\2
- ENDM
-
-
- * These return codes can be obtained through the GTMN_SecondaryError tag:
- GTMENU_TRIMMED EQU $00000001 ; Too many menus, items, or subitems,
- ; menu has been trimmed down
- GTMENU_INVALID EQU $00000002 ; Invalid NewMenu array
- GTMENU_NOMEM EQU $00000003 ; Out of memory
-
-
- *------------------------------------------------------------------------*
-
- * Tags for toolkit functions:
-
- GT_TagBase EQU TAG_USER+$80000 ; Begin counting tags
-
- GTVI_NewWindow EQU GT_TagBase+$01 ; NewWindow struct for GetVisualInfo
- GTVI_NWTags EQU GT_TagBase+$02 ; NWTags for GetVisualInfo
-
- GT_Private0 EQU GT_TagBase+$03 ; (private)
-
- GTCB_Checked EQU GT_TagBase+$04 ; State of checkbox
-
- GTLV_Top EQU GT_TagBase+$05 ; Top visible one in listview
- GTLV_Labels EQU GT_TagBase+$06 ; List to display in listview
- GTLV_ReadOnly EQU GT_TagBase+$07 ; TRUE if listview is to be read-only
- GTLV_ScrollWidth EQU GT_TagBase+$08 ; Width of scrollbar
-
- GTMX_Labels EQU GT_TagBase+$09 ; NULL-terminated array of labels
- GTMX_Active EQU GT_TagBase+$0A ; Active one in mx gadget
-
- GTTX_Text EQU GT_TagBase+$0B ; Text to display
- GTTX_CopyText EQU GT_TagBase+$0C ; Copy text label instead of referencing it
-
- GTNM_Number EQU GT_TagBase+$0D ; Number to display
-
- GTCY_Labels EQU GT_TagBase+$0E ; NULL-terminated array of labels
- GTCY_Active EQU GT_TagBase+$0F ; The active one in the cycle gad
-
- GTPA_Depth EQU GT_TagBase+$10 ; Number of bitplanes in palette
- GTPA_Color EQU GT_TagBase+$11 ; Palette color
- GTPA_ColorOffset EQU GT_TagBase+$12 ; First color to use in palette
- GTPA_IndicatorWidth EQU GT_TagBase+$13 ; Width of current-color indicator
- GTPA_IndicatorHeight EQU GT_TagBase+$14 ; Height of current-color indicator
-
- GTSC_Top EQU GT_TagBase+$15 ; Top visible in scroller
- GTSC_Total EQU GT_TagBase+$16 ; Total in scroller area
- GTSC_Visible EQU GT_TagBase+$17 ; Number visible in scroller
- GTSC_Overlap EQU GT_TagBase+$18 ; Unused
-
- * GT_TagBase+$19 through GT_TagBase+$25 are reserved
-
- GTSL_Min EQU GT_TagBase+$26 ; Slider min value
- GTSL_Max EQU GT_TagBase+$27 ; Slider max value
- GTSL_Level EQU GT_TagBase+$28 ; Slider level
- GTSL_MaxLevelLen EQU GT_TagBase+$29 ; Max length of printed level
- GTSL_LevelFormat EQU GT_TagBase+$2A ; Format string for level
- GTSL_LevelPlace EQU GT_TagBase+$2B ; Where level should be placed
- GTSL_DispFunc EQU GT_TagBase+$2C ; Callback for number calculation before display
-
- GTST_String EQU GT_TagBase+$2D ; String gadget's displayed string
- GTST_MaxChars EQU GT_TagBase+$2E ; Max length of string
-
- GTIN_Number EQU GT_TagBase+$2F ; Number in integer gadget
- GTIN_MaxChars EQU GT_TagBase+$30 ; Max number of digits
-
- GTMN_TextAttr EQU GT_TagBase+$31 ; MenuItem font TextAttr
- GTMN_FrontPen EQU GT_TagBase+$32 ; MenuItem text pen color
-
- GTBB_Recessed EQU GT_TagBase+$33 ; Make BevelBox recessed
-
- GT_VisualInfo EQU GT_TagBase+$34 ; result of VisualInfo call
-
- GTLV_ShowSelected EQU GT_TagBase+$35 ; show selected entry beneath listview,
- ; set tag data = NULL for display-only, or pointer
- ; to a string gadget you've created
- GTLV_Selected EQU GT_TagBase+$36 ; Set ordinal number of selected entry in the list
- GT_Reserved1 EQU GT_TagBase+$38 ; Reserved for future use
-
- GTTX_Border EQU GT_TagBase+$39 ; Put a border around Text-display gadgets
- GTNM_Border EQU GT_TagBase+$3A ; Put a border around Number-display gadgets
-
- GTSC_Arrows EQU GT_TagBase+$3B ; Specify size of arrows for scroller
- GTMN_Menu EQU GT_TagBase+$3C ; Pointer to Menu for use by
- ; LayoutMenuItems()
- GTMX_Spacing EQU GT_TagBase+$3D ; Added to font height to
- ; figure spacing between mx choices. Use this
- ; instead of LAYOUTA_SPACING for mx gadgets.
-
- * New to V37 GadTools. Ignored by GadTools V36.
- GTMN_FullMenu EQU GT_TagBase+$3E ; Asks CreateMenus() to
- ; validate that this is a complete menu structure
- GTMN_SecondaryError EQU GT_TagBase+$3F ; ti_Data is a pointer
- ; to a ULONG to receive error reports from CreateMenus()
- GT_Underscore EQU GT_TagBase+$40 ; ti_Data points to the symbol
- ; that preceeds the character you'd like to underline in a
- ; gadget label
- GTST_EditHook EQU GT_TagBase+$37 ; String EditHook
-
- * Old definition, now obsolete:
- GT_Reserved0 EQU GTST_EditHook
-
- *------------------------------------------------------------------------*
-
- * "NWay" is an old synonym for cycle gadgets
-
- NWAY_KIND EQU CYCLE_KIND
- NWAYIDCMP EQU CYCLEIDCMP
-
- GTNW_Labels EQU GTCY_Labels
- GTNW_Active EQU GTCY_Active
-
- ENDC
-