home *** CD-ROM | disk | FTP | other *** search
/ Global Amiga Experience / globalamigaexperience.iso / compressed / development / clusterdemo.dms / clusterdemo.adf / Modules.lha / modules / txt / GadTools.def < prev    next >
Text File  |  1994-05-25  |  15KB  |  482 lines

  1. |##########|
  2. |#MAGIC   #|CLABLNAG
  3. |#PROJECT #|"IMPORTAll"
  4. |#PATHS   #|"StdProject"
  5. |#FLAGS   #|xx---x-xx---xxx-----------------
  6. |#USERSW  #|--------------------------------
  7. |#USERMASK#|--------------------------------
  8. |#SWITCHES#|xx----xxxx-xx---
  9. |##########|
  10. DEFINITION MODULE GadTools;
  11.  
  12. | WB 18 Aug 1992 Datei übernommen.
  13.  
  14. (* $A- *)
  15.  
  16. FROM Exec       IMPORT LibraryPtr, MsgPortPtr, ListPtr;
  17. FROM Intuition  IMPORT IDCMPFlagSet, IDCMPFlags,  gaTB, layoTB, pgaTB,
  18.                strgTB,ScreenPtr, WindowPtr, RequesterPtr,
  19.                GadgetPtr,IntuiMessagePtr, ActivationFlagSet;
  20. FROM Graphics   IMPORT TextAttrPtr, RastPortPtr;
  21. FROM System     IMPORT LONGSET, Register, SysStringPtr;
  22. FROM Utility    IMPORT StdTags, tagUser, HookPtr;
  23.  
  24. TYPE
  25.  
  26.   GadgetKind = (  generic,  button,   checkbox,   integer,
  27.           listview, mx,       number,     cycle,
  28.           palette,  scroller,             slider=11,
  29.           string,   text,
  30.           makeMeLong = $10000);
  31.  
  32. CONST
  33.   arrowIDCMP    = IDCMPFlagSet:{gadgetUp,gadgetDown,intuiTicks,
  34.                 mouseButtons};
  35.   buttonIDCMP   = IDCMPFlagSet:{gadgetUp};
  36.   checkBoxIDCMP = IDCMPFlagSet:{gadgetUp};
  37.   integerIDCMP  = IDCMPFlagSet:{gadgetUp};
  38.   listViewIDCMP = IDCMPFlagSet:{gadgetUp,gadgetDown,mouseMove}+arrowIDCMP;
  39.   mxIDCMP       = IDCMPFlagSet:{gadgetDown};
  40.   numberIDCMP   = IDCMPFlagSet:{};
  41.   cycleIDCMP    = IDCMPFlagSet:{gadgetUp};
  42.   paletteIDCMP  = IDCMPFlagSet:{gadgetUp};
  43.  
  44.   |  Use arrowIDCMP+scrollerIDCMP if your scrollers have arrows:
  45.   scrollerIDCMP = IDCMPFlagSet:{gadgetUp,gadgetDown,mouseMove};
  46.   sliderIDCMP   = IDCMPFlagSet:{gadgetUp,gadgetDown,mouseMove};
  47.   stringIDCMP   = IDCMPFlagSet:{gadgetUp};
  48.  
  49.   textIDCMP     = IDCMPFlagSet:{};
  50.  
  51. |------------------------------------------------------------------------
  52.  
  53. CONST
  54.   interWidth  = 8;
  55.   interHeight = 4;
  56.  
  57. |------------------------------------------------------------------------
  58.  
  59. TYPE
  60.   VisualInfo        = HIDDEN;
  61.  
  62.   NewGadgetFlags    = ( placeTextLeft,
  63.             placeTextRight,
  64.             placeTextAbove,
  65.             placeTextBelow,
  66.             placeTextIn,
  67.             highLabel,
  68.             rsvd31=31 );
  69.  
  70.   NewGadgetFlagSet  = SET OF NewGadgetFlags;
  71.  
  72.   NewGadget         = RECORD
  73.             leftEdge, topEdge : INTEGER;
  74.             width, height     : INTEGER;
  75.             gadgetText        : SysStringPtr;
  76.             textAttr          : TextAttrPtr;
  77.             gadgetID          : CARDINAL;
  78.             flags             : NewGadgetFlagSet;
  79.             visualInfo        : VisualInfo;
  80.             userData          : ANYPTR;
  81.               END;
  82.  
  83.  
  84. TYPE
  85.   NewMenuType       = ( end   =   0,
  86.             title =   1, item      =   2, sub      =   3,
  87.             image = 128, imageItem = 130, imageSub = 131);
  88.  
  89. TYPE
  90.   NewMenuFlags      = (menuDisabled = 0,itemDisabled = 4,checkIt    = 0,
  91.                menuToggle   = 3,checked      = 8,makeMeWord = 15);
  92.   NewMenuFlagSet    = SET OF NewMenuFlags;
  93.  
  94.   NewMenuPtr        = POINTER TO NewMenu;
  95.   NewMenu           = RECORD
  96.             type          : NewMenuType;
  97.             label         : SysStringPtr;
  98.             commKey       : SysStringPtr;
  99.             flags         : NewMenuFlagSet;
  100.             mutualExclude : LONGSET;
  101.             userData      : ANYPTR;
  102.               END;
  103.  
  104.   NewMenuArray      = ARRAY OF NewMenu;
  105.  
  106. CONST
  107.   barLabel = SysStringPtr(-1);
  108.  
  109. TYPE
  110.   GTMenuPtr         = POINTER TO GTMenu;
  111.   GTMenu            = RECORD OF Intuition.Menu
  112.             userData : ANYPTR;
  113.               END;
  114.  
  115.   GTMenuItemPtr     = POINTER TO GTMenuItem;
  116.   GTMenuItem        = RECORD OF Intuition.MenuItem
  117.             userData : ANYPTR;
  118.               END;
  119.  
  120.   | Return codes through GTMN_ErrorCode tag
  121.  
  122.   CM2ndErr          = (menuOk      = 0,    | no error occured
  123.                menuTrimmed = 1,    | Too many menus, items, or
  124.                        | subitems,
  125.                        | menu is trimmed
  126.                menuInvalid = 2,    | Invalid NewMenu array
  127.                noMem       = 3,    | Out of memory
  128.                mmlong      = $10000 );
  129.  
  130. CONST
  131.   gtTB = tagUser + $80000; | $80080000, base for GadTools Tagvalues
  132.  
  133.  
  134. TYPE
  135.   | Callback for number calculation  before display
  136.   DispFunc          = PROCEDURE( gad IN A0: GadgetPtr;
  137.                  org IN D0: INTEGER ): LONGINT;
  138.   | Orientation of sliders and scrollers
  139.   Orientation       = (none,horiz,vert,mmlong=$10000);
  140.  
  141.   GadgetTags =
  142.     TAGS OF StdTags
  143.       left            = gaTB+$01   : LONGINT;
  144.       underScore      = gtTB+64    : LONGCHAR;  | the character that
  145.                         | precedes the
  146.                    |
  147.                    | character to be underlined
  148.                    | (to indicate a shortcut).
  149.                    | Can be used for all classes.
  150.  
  151.       |  ButtonTags
  152.  
  153.       buDisabled      = gaTB+14    : LONGBOOL;       | =gaDisabled
  154.  
  155.       |  CheckBoxTags
  156.  
  157.       cbChecked       = gtTB+4     : LONGBOOL;       | condition of the
  158.                              | checkbox
  159.       cbDisabled      = gaTB+14    : LONGBOOL;       | =gaDisabled
  160.  
  161.       |  CycleTags
  162.  
  163.       cyLabels        = gtTB+14    : POINTER TO ARRAY OF SysStringPtr;
  164.                    |
  165.                    | NIL-terminated array of labels
  166.  
  167.       cyActive        = gtTB+15    : LONGCARD;  | active one in the cycle
  168.       cyDisabled      = gaTB+14    : LONGBOOL;  | =gaDisabled
  169.  
  170.       |  IntegerTags
  171.  
  172.       inNumber        = gtTB+47    : LONGCARD; | initial number in gadget
  173.       inMaxChars                   : LONGCARD; | max number of digits (10)
  174.       inExitHelp      = strgTB+$13 : LONGBOOL; | as in Intution.StrgTags
  175.       inTabCycle      = gaTB+$24   : LONGBOOL; | =gaTabCycle
  176.       inDisabled      = gaTB+14    : LONGBOOL; | =gaDisabled
  177.  
  178.       |  ListViewTags
  179.  
  180.       lvTop           = gtTB+5   : LONGCARD; | Top visible one in listview
  181.       lvLabels        = gtTB+6   : ListPtr;  | List to display in listview
  182.       lvReadOnly      = gtTB+7   : LONGBOOL; | listview is to be read-only
  183.       lvScrollWidth   = gtTB+8   : LONGCARD; | UWORD; Width of scrollbar
  184.       lvShowSelected  = gtTB+$35 : GadgetPtr;| show selected entry
  185.                  |
  186.                  | beneath listview. Pass NULL for
  187.                  | display-only,
  188.                  | or a POINTER to a gadtools string gadget
  189.                  | you've created
  190.  
  191.       lvSelected      = gtTB+$36   : LONGCARD;       | CARDINAL
  192.                    |
  193.                    | SET ordinal number of selected entry
  194.                    | in the list
  195.  
  196.       lvSpacing       = layoTB+$2  : LONGCARD; | As in Intuition.LayoutTags
  197.  
  198.       |  MxTags
  199.  
  200.       mxLabels        = gtTB+9     : POINTER TO ARRAY OF SysStringPtr;
  201.                    |
  202.                    | NIL-terminated array of labels
  203.  
  204.       mxActive        = gtTB+10    : LONGCARD;   | Active one in mx gadget
  205.       mxSpacing       = gtTB+61    : LONGCARD;   | Added to font height to
  206.                    |
  207.                    | figure out spacing between mx choices.
  208.                    | Use instead of LayoutTags.spacing for
  209.                    | mx gadgets.
  210.  
  211.       |  NumberTags
  212.  
  213.       nmNumber        = gtTB+13    : LONGINT;        | Number to display
  214.       nmBorder        = gtTB+58    : LONGBOOL;
  215.                    |
  216.                    | Put a border around Number-display
  217.                    | gadgets
  218.  
  219.       |  PaletteTags
  220.  
  221.       paDisabled      = gaTB+$E    : LONGBOOL; | same as gaDisabled
  222.       paDepth         = gtTB+16    : LONGCARD; | bitplanes in palette
  223.       paColor         = gtTB+17    : LONGCARD; | Palette color
  224.       paColorOffset   = gtTB+18    : LONGCARD; | 1st color to use in
  225.                            | palette
  226.       paIndicatorW    = gtTB+19    : LONGCARD; | curr. color indicator
  227.                            | width
  228.       paIndicatorH    = gtTB+20    : LONGCARD; | cc. indicator height
  229.  
  230.       |  ScrollerTags
  231.  
  232.       scTop           = gtTB+21    : LONGINT;    | Top visible in scroller
  233.       scTotal         = gtTB+22    : LONGINT;    | Total in scroller area
  234.       scVisible       = gtTB+23    : LONGINT;    | Number visible in scroller
  235.       |scOverlap      = gtTB+24    ;             | Unused
  236.       scArrows        = gtTB+59    : LONGCARD;   | size of arrows for scroller
  237.       scFreedom       = pgaTB+1    : Orientation; | =pgaFreedom
  238.       scImmediate     = pgaTB+$15  : LONGBOOL;    | =pgaImmediate
  239.       scRelVerify     = gaTB+$16   : LONGBOOL;    | =gaRelVerify
  240.       scDisabled      = gaTB+$E    : LONGBOOL;   | =gaDisabled
  241.  
  242.       |  SliderTags
  243.  
  244.       slMin           = gtTB+38    : LONGINT;        | Slider min value
  245.       slMax           = gtTB+39    : LONGINT;        | Slider max value
  246.       slLevel         = gtTB+40    : LONGINT;        | Slider level
  247.       slMaxLevelLen   = gtTB+41    : LONGCARD;       | Max length of
  248.                              | printed level
  249.       slLevelFormat   = gtTB+42    : SysStringPtr;   | Format string
  250.                              | for level
  251.       slLevelPlace    = gtTB+43    : NewGadgetFlagSet; | place of level
  252.       slDispFunc      = gtTB+44    : DispFunc;
  253.                    |
  254.                    | Callback for number calc. before
  255.                    | display
  256.  
  257.       slFreedom       = pgaTB+$1   : Orientation;    | =pgaFreedom
  258.       slImmediate     = gaTB+$15   : LONGBOOL;       | =gaImmediate
  259.       slRelVerify     = gaTB+$16   : LONGBOOL;       | =gaRelVerify
  260.       slDisabled      = gaTB+$E    : LONGBOOL;       | =gaDisabled
  261.  
  262.       |  StringTags
  263.  
  264.       stString        = gtTB+45    : SysStringPtr;
  265.                    |
  266.                    | String gadget's displayed string
  267.  
  268.       stMaxChars      = gtTB+46    : LONGCARD;       | Max length of string
  269.       stDisabled      = gaTB+$E    : LONGBOOL;       | =gaDisabled
  270.       stExitHelp      = strgTB+$13 : LONGBOOL;       | =strgExitHelp
  271.       stTabCycle      = gaTB+$24   : LONGBOOL;       | =gaTabCycle
  272.       stEditHook      = gtTB+$37   : HookPtr;        | see StringExtend
  273.       stJustification = strgTB+$10 : ActivationFlagSet;
  274.                    |
  275.                    | choose one of stringLeft (def),
  276.                    | stringRight, stringCenter.
  277.  
  278.       stReplaceMode   = strgTB+$0D : LONGBOOL;       | =strgReplaceMode
  279.  
  280.       |  TextTags
  281.  
  282.       txText          = gtTB+11    : SysStringPtr;| Text to display
  283.       txCopyText      = gtTB+12    : LONGBOOL;     | Copy text label instead
  284.                           | of referencing it
  285.       txBorder        = gtTB+57    : LONGBOOL;     | Put a border around
  286.  
  287.     END;  | of GadgetTags
  288.  
  289.   GadgetTagListPtr  = POINTER TO GadgetTagList;
  290.   GadgetTagList     = ARRAY OF GadgetTags;
  291.  
  292.  
  293.   |
  294.   | Tags for calls to CreateMenus
  295.   |
  296.   CreateMenuTags =
  297.     TAGS OF StdTags
  298.       frontPen        = gtTB+50    : LONGCARD;  | MenuItem text pen color
  299.       fullMenu        = gtTB+62    : LONGBOOL;  | Asks CreateMenus() to
  300.                    |
  301.                    | validate the completeness of the menu
  302.                    | structure
  303.  
  304.       secondaryErr    = gtTB+63    : POINTER TO CM2ndErr;
  305.                    |
  306.                    | pointer to a CM2ndErr to receive error
  307.                    | reports from CreateMenus()
  308.     END;
  309.  
  310.   CrMenuTagListPtr  = POINTER TO CrMenuTagList;
  311.   CrMenuTagList     = ARRAY OF CreateMenuTags;
  312.  
  313.   |
  314.   | Tags for calls to LayoutMenus
  315.   |
  316.   LayoutMenuTags =
  317.     TAGS OF StdTags
  318.       textAttr        = gtTB+49  : TextAttrPtr; | GTMenuItem font TextAttr
  319.       menu            = gtTB+60  : GTMenuPtr;   | Pointer to GTMenu for use
  320.                         | by  LayoutMenuItems()
  321.     END;
  322.  
  323.   LaMenuTagListPtr  = POINTER TO LaMenuTagList;
  324.   LaMenuTagList     = ARRAY OF LayoutMenuTags;
  325.  
  326.   |
  327.   | Tags for calls to DrawBevelBox
  328.   |
  329.   BevelBoxTags =
  330.     TAGS OF StdTags
  331.       recessed        = gtTB+51    : LONGINT;    | Make BevelBox recessed
  332.       visualInfo                   : VisualInfo; | result of VisualInfo call
  333.     END;
  334.  
  335.   BevBoxTagListPtr  = POINTER TO BevBoxTagList;
  336.   BevBoxTagList     = ARRAY OF BevelBoxTags;
  337.  
  338.  
  339.   | gtTB+25 through gtTB+37 are reserved
  340.   | gtTB+65 on up reserved for future use
  341.  
  342.  
  343.   GadToolsLibraryPtr = LibraryPtr;
  344.  
  345.  
  346. VAR
  347.   GadToolsBase : GadToolsLibraryPtr;
  348.  
  349.  
  350. LIBRARY GadToolsBase BY -114
  351.   PROCEDURE CreateContext( VAR GadgetPtr IN A0 : GadgetPtr ): GadgetPtr;
  352.  
  353. LIBRARY GadToolsBase BY -30
  354.   PROCEDURE CreateGadgetTags(    kind     IN D0 : GadgetKind;
  355.                  previous IN A0 : GadgetPtr;
  356.                  REF newgad   IN A1 : NewGadget;
  357.                  taglist  IN A2 : LIST OF GadgetTags):GadgetPtr;
  358.  
  359. LIBRARY GadToolsBase BY -30
  360.   PROCEDURE CreateGadget(    kind     IN D0 : GadgetKind;
  361.                  previous IN A0 : GadgetPtr;
  362.              REF newgad   IN A1 : NewGadget;
  363.                  taglist  IN A2 : GadgetTagListPtr ): GadgetPtr;
  364.  
  365. LIBRARY GadToolsBase BY -48
  366.   PROCEDURE CreateMenusTags(REF newmenu IN A0 : NewMenuArray;
  367.                 taglist IN A1 : LIST OF CreateMenuTags):GTMenuPtr;
  368. LIBRARY GadToolsBase BY -48
  369.   PROCEDURE CreateMenus( REF newmenu IN A0 : NewMenuArray;
  370.                  taglist IN A1 : CrMenuTagListPtr ): GTMenuPtr;
  371.  
  372. LIBRARY GadToolsBase BY -120
  373.   PROCEDURE DrawBevelBox( rport   IN A0 : RastPortPtr;
  374.               left    IN D0,
  375.               top     IN D1,
  376.               width   IN D2,
  377.               height  IN D3 : INTEGER;
  378.               taglist IN A1 : LIST OF BevelBoxTags );
  379.  
  380. LIBRARY GadToolsBase BY -36
  381.   PROCEDURE FreeGadgets( glist IN A0 : GadgetPtr );
  382.  
  383. LIBRARY GadToolsBase BY -54
  384.   PROCEDURE FreeMenus( menu IN A0 : GTMenuPtr );
  385.  
  386. LIBRARY GadToolsBase BY -132
  387.   PROCEDURE FreeVisualInfo( vi IN A0 : VisualInfo );
  388.  
  389. LIBRARY GadToolsBase BY -126
  390.   PROCEDURE GetVisualInfo( screen  IN A0 : ScreenPtr;
  391.                taglist IN A1 : LIST OF StdTags ): VisualInfo;
  392.  
  393. LIBRARY GadToolsBase BY -90
  394.   PROCEDURE GT_BeginRefresh( win IN A0 : WindowPtr );
  395.  
  396. LIBRARY GadToolsBase BY -96
  397.   PROCEDURE GT_EndRefresh( win      IN A0 : WindowPtr;
  398.                complete IN D0 : BOOLEAN);
  399.  
  400. LIBRARY GadToolsBase BY -102
  401.   PROCEDURE FilterIMsg( imsg IN A1 : IntuiMessagePtr ): IntuiMessagePtr;
  402.  
  403. LIBRARY GadToolsBase BY -72
  404.   PROCEDURE GetIMsg( intuiport IN A0 : MsgPortPtr ): IntuiMessagePtr;
  405.  
  406. LIBRARY GadToolsBase BY -108
  407.   PROCEDURE PostFilterIMsg(modimsg IN A1 : IntuiMessagePtr):IntuiMessagePtr;
  408.  
  409. LIBRARY GadToolsBase BY -84
  410.   PROCEDURE GT_RefreshWindow( win IN A0 : WindowPtr;
  411.                   req IN A1 : RequesterPtr );
  412.  
  413. LIBRARY GadToolsBase BY -78
  414.   PROCEDURE ReplyIMsg( imsg IN A1 : IntuiMessagePtr );
  415.  
  416. LIBRARY GadToolsBase BY -42
  417.   PROCEDURE GT_SetGadgetAttrs( gad     IN A0 : GadgetPtr;
  418.                    win     IN A1 : WindowPtr;
  419.                    req     IN A2 : RequesterPtr;
  420.                    taglist IN A3 : LIST OF GadgetTags );
  421.  
  422. LIBRARY GadToolsBase BY -60
  423.   PROCEDURE LayoutMenuItems(menuitem IN A0 : GTMenuItemPtr;
  424.                 vi       IN A1 : VisualInfo;
  425.                 taglist  IN A2 : LIST OF LayoutMenuTags):BOOLEAN;
  426.  
  427. LIBRARY GadToolsBase BY -66
  428.   PROCEDURE LayoutMenus(menu    IN A0 : GTMenuPtr;
  429.             vi      IN A1 : VisualInfo;
  430.             taglist IN A2 : LIST OF LayoutMenuTags):BOOLEAN;
  431.  
  432.  
  433. GROUP
  434.  
  435.   ArrayGrp =      NewMenuArray;
  436.  
  437.   ConstGrp =      arrowIDCMP,         barLabel,           buttonIDCMP,
  438.           checkBoxIDCMP,      cycleIDCMP,         CM2ndErr,
  439.           gtTB,
  440.           integerIDCMP,       interHeight,        interWidth,
  441.           gaTB,               pgaTB,              strgTB,
  442.           layoTB,             listViewIDCMP,      mxIDCMP,
  443.           numberIDCMP,        paletteIDCMP,
  444.           scrollerIDCMP,      sliderIDCMP,        stringIDCMP,
  445.           textIDCMP;
  446.  
  447.   EnumGrp =       GadgetKind,         NewGadgetFlags,     NewMenuType;
  448.  
  449.   PointerGrp =    GTMenuItemPtr,     GTMenuPtr,           GadToolsLibraryPtr,
  450.           NewMenuPtr,        VisualInfo;
  451.  
  452.   ProcGrp =       CreateContext,      CreateGadget,       CreateMenus,
  453.           DrawBevelBox,       FreeGadgets,        FreeMenus,
  454.           FreeVisualInfo,     GetVisualInfo,      GT_BeginRefresh,
  455.           GT_EndRefresh,      FilterIMsg,         GetIMsg,
  456.           PostFilterIMsg,  GT_RefreshWindow,      ReplyIMsg,
  457.           GT_SetGadgetAttrs,  LayoutMenuItems,    LayoutMenus;
  458.  
  459.  
  460.   RecordGrp =     GTMenu,             GTMenuItem,
  461.           NewGadget,          NewMenu;
  462.  
  463.   SetGrp =        NewGadgetFlags,     NewMenuFlags;
  464.  
  465.   SubRangeGrp =   NewMenuFlags;
  466.  
  467.   TagsGrp =       BevelBoxTags,       CreateMenuTags,     GadgetTags,
  468.           LayoutMenuTags;
  469.  
  470.  
  471.   TypeGrp =       ArrayGrp,           EnumGrp,            PointerGrp,
  472.           RecordGrp,          SetGrp,             SubRangeGrp;
  473.  
  474.   All =           ConstGrp,           ProcGrp,            TagsGrp,
  475.           TypeGrp;
  476.  
  477. END GadTools.
  478.  
  479.  
  480.  
  481.  
  482.