home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 4
/
FreshFish_May-June1994.bin
/
bbs
/
cbm
/
nduk-v37.lha
/
V37
/
include
/
libraries
/
gadtools.i
< prev
next >
Wrap
Text File
|
1991-11-27
|
10KB
|
307 lines
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