home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD2.bin / bbs / dev / bgui-1.1a.lha / BGUI / AmigaE / MacroFiles / bgui_macros.ma
Encoding:
Text File  |  1994-12-04  |  34.2 KB  |  944 lines

  1. /*
  2. **      bgui_macros.mac2e - Mac2E macro definitions file.
  3. **
  4. **      (C) Copyright 1993-1994 Jaba Development.
  5. **      (C) Copyright 1993-1994 Jan van den Baard.
  6. **      All Rights Reserved.
  7. **
  8. **      A lot of these macros  depend in the 'tools/Boopsi.m'
  9. **      module of the AmigaE 3.0 distribution. Please include
  10. **      this module into your code.
  11. **/
  12.  
  13. /*****************************************************************************
  14.  *
  15.  *      General object creation macros.
  16.  */
  17. #define HGroupObject            BgUI_NewObjectA( BGUI_GROUP_GADGET,     [ TAG_IGNORE, 0
  18. #define VGroupObject            BgUI_NewObjectA( BGUI_GROUP_GADGET,     [ GROUP_STYLE, GRSTYLE_VERTICAL
  19. #define ButtonObject            BgUI_NewObjectA( BGUI_BUTTON_GADGET,    [ TAG_IGNORE, 0
  20. #define ToggleObject            BgUI_NewObjectA( BGUI_BUTTON_GADGET,    [ GA_TOGGLESELECT, TRUE
  21. #define CycleObject             BgUI_NewObjectA( BGUI_CYCLE_GADGET,     [ TAG_IGNORE, 0
  22. #define CheckBoxObject          BgUI_NewObjectA( BGUI_CHECKBOX_GADGET,  [ TAG_IGNORE, 0
  23. #define InfoObject              BgUI_NewObjectA( BGUI_INFO_GADGET,      [ TAG_IGNORE, 0
  24. #define StringObject            BgUI_NewObjectA( BGUI_STRING_GADGET,    [ TAG_IGNORE, 0
  25. #define PropObject              BgUI_NewObjectA( BGUI_PROP_GADGET,      [ TAG_IGNORE, 0
  26. #define IndicatorObject         BgUI_NewObjectA( BGUI_INDICATOR_GADGET, [ TAG_IGNORE, 0
  27. #define ProgressObject          BgUI_NewObjectA( BGUI_PROGRESS_GADGET,  [ TAG_IGNORE, 0
  28. #define SliderObject            BgUI_NewObjectA( BGUI_SLIDER_GADGET,    [ TAG_IGNORE, 0
  29. #define PageObject              BgUI_NewObjectA( BGUI_PAGE_GADGET,      [ TAG_IGNORE, 0
  30. #define MxObject                BgUI_NewObjectA( BGUI_MX_GADGET,        [ TAG_IGNORE, 0
  31. #define ListviewObject          BgUI_NewObjectA( BGUI_LISTVIEW_GADGET,  [ TAG_IGNORE, 0
  32. #define ExternalObject          BgUI_NewObjectA( BGUI_EXTERNAL_GADGET,  [ GA_LEFT, 0, GA_TOP, 0, GA_WIDTH, 0, GA_HEIGHT, 0
  33. #define SeperatorObject         BgUI_NewObjectA( BGUI_SEPERATOR_GADGET, [ TAG_IGNORE, 0
  34. #define WindowObject            BgUI_NewObjectA( BGUI_WINDOW_OBJECT,    [ TAG_IGNORE, 0
  35. #define FileReqObject           BgUI_NewObjectA( BGUI_FILEREQ_OBJECT,   [ TAG_IGNORE, 0
  36. #define CommodityObject         BgUI_NewObjectA( BGUI_COMMODITY_OBJECT, [ TAG_IGNORE, 0
  37.  
  38. #define EndObject               TAG_END ] )
  39.  
  40. /*****************************************************************************
  41.  *
  42.  *      Frames.
  43.  */
  44. #define ButtonFrame             FRM_TYPE, FRTYPE_BUTTON
  45. #define RidgeFrame              FRM_TYPE, FRTYPE_RIDGE
  46. #define DropBoxFrame            FRM_TYPE, FRTYPE_DROPBOX
  47. #define NeXTFrame               FRM_TYPE, FRTYPE_NEXT
  48. #define RadioFrame              FRM_TYPE, FRTYPE_RADIOBUTTON
  49. #define XenFrame                FRM_TYPE, FRTYPE_XEN_BUTTON
  50.  
  51. /* For clarity. */
  52. #define StringFrame             RidgeFrame
  53. #define MxFrame                 RadioFrame
  54.  
  55. #define FrameTitle(t)           FRM_TITLE, t
  56.  
  57. /* Built-in back fills */
  58. #define ShineRaster             FRM_BACKFILL, SHINE_RASTER
  59. #define ShadowRaster            FRM_BACKFILL, SHADOW_RASTER
  60. #define ShineShadowRaster       FRM_BACKFILL, SHINE_SHADOW_RASTER
  61. #define FillRaster              FRM_BACKFILL, FILL_RASTER
  62. #define ShineFillRaster         FRM_BACKFILL, SHINE_FILL_RASTER
  63. #define ShadowFillRaster        FRM_BACKFILL, SHADOW_FILL_RASTER
  64. #define ShineBlock              FRM_BACKFILL, SHINE_BLOCK
  65. #define ShadowBlock             FRM_BACKFILL, SHADOW_BLOCK
  66.  
  67. /*****************************************************************************
  68.  *
  69.  *      Vector images.
  70.  */
  71. #define GetPath                 VIT_BUILTIN, BUILTIN_GETPATH
  72. #define GetFile                 VIT_BUILTIN, BUILTIN_GETFILE
  73. #define CheckMark               VIT_BUILTIN, BUILTIN_CHECKMARK
  74. #define PopUp                   VIT_BUILTIN, BUILTIN_POPUP
  75. #define ArrowUp                 VIT_BUILTIN, BUILTIN_ARROW_UP
  76. #define ArrowDown               VIT_BUILTIN, BUILTIN_ARROW_DOWN
  77. #define ArrowLeft               VIT_BUILTIN, BUILTIN_ARROW_LEFT
  78. #define ArrowRight              VIT_BUILTIN, BUILTIN_ARROW_RIGHT
  79.  
  80. /*****************************************************************************
  81.  *
  82.  *      Group class macros.
  83.  */
  84. #define StartMember             GROUP_MEMBER
  85. #define EndMember               TAG_END, 0
  86. #define Spacing(p)              GROUP_SPACING, p
  87. #define HOffset(p)              GROUP_HORIZOFFSET, p
  88. #define VOffset(p)              GROUP_VERTOFFSET, p
  89. #define LOffset(p)              GROUP_LEFTOFFSET, p
  90. #define ROffset(p)              GROUP_RIGHTOFFSET, p
  91. #define TOffset(p)              GROUP_TOPOFFSET, p
  92. #define BOffset(p)              GROUP_BOTTOMOFFSET, p
  93. #define VarSpace(w)             GROUP_SPACEOBJECT, w
  94. #define EqualWidth              GROUP_EQUALWIDTH, TRUE
  95. #define EqualHeight             GROUP_EQUALHEIGHT, TRUE
  96.  
  97. /*****************************************************************************
  98.  *
  99.  *      Layout macros.
  100.  */
  101. #define FixMinWidth             LGO_FIXMINWIDTH, TRUE
  102. #define FixMinHeight            LGO_FIXMINHEIGHT, TRUE
  103. #define Weight(w)               LGO_WEIGHT, w
  104. #define FixWidth(w)             LGO_FIXWIDTH, w
  105. #define FixHeight(h)            LGO_FIXHEIGHT, h
  106. #define Align                   LGO_ALIGN, TRUE
  107. #define FixMinSize              FixMinWidth, FixMinHeight
  108. #define FixSize(w,h)            FixWidth(w), FixHeight(h)
  109. #define NoAlign                 LGO_NOALIGN, TRUE
  110.  
  111. /*****************************************************************************
  112.  *
  113.  *      Page class macros.
  114.  */
  115. #define PageMember              PAGE_MEMBER
  116.  
  117. /*****************************************************************************
  118.  *
  119.  *      "Quick" button creation macros.
  120.  */
  121. #define Button(label,id)\
  122.         ButtonObject,\
  123.                 LAB_LABEL,              label,\
  124.                 GA_ID,                  id,\
  125.                 FRM_TYPE,               FRTYPE_BUTTON,\
  126.         EndObject
  127.  
  128. #define KeyButton(label,id)\
  129.         ButtonObject,\
  130.                 LAB_LABEL,              label,\
  131.                 LAB_UNDERSCORE,         "_",\
  132.                 GA_ID,                  id,\
  133.                 FRM_TYPE,               FRTYPE_BUTTON,\
  134.         EndObject
  135.  
  136. #define Toggle(label,state,id)\
  137.         ToggleObject,\
  138.                 LAB_LABEL,              label,\
  139.                 GA_ID,                  id,\
  140.                 GA_SELECTED,            state,\
  141.                 FRM_TYPE,               FRTYPE_BUTTON,\
  142.         EndObject
  143.  
  144. #define KeyToggle(label,state,id)\
  145.         ToggleObject,\
  146.                 LAB_LABEL,              label,\
  147.                 LAB_UNDERSCORE,         "_",\
  148.                 GA_ID,                  id,\
  149.                 GA_SELECTED,            state,\
  150.                 FRM_TYPE,               FRTYPE_BUTTON,\
  151.         EndObject
  152.  
  153. #define XenButton(label,id)\
  154.         ButtonObject,\
  155.                 LAB_LABEL,              label,\
  156.                 GA_ID,                  id,\
  157.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  158.         EndObject
  159.  
  160. #define XenKeyButton(label,id)\
  161.         ButtonObject,\
  162.                 LAB_LABEL,              label,\
  163.                 LAB_UNDERSCORE,         "_",\
  164.                 GA_ID,                  id,\
  165.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  166.         EndObject
  167.  
  168. #define XenToggle(label,state,id)\
  169.         ToggleObject,\
  170.                 LAB_LABEL,              label,\
  171.                 GA_ID,                  id,\
  172.                 GA_SELECTED,            state,\
  173.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  174.         EndObject
  175.  
  176. #define XenKeyToggle(label,state,id)\
  177.         ToggleObject,\
  178.                 LAB_LABEL,              label,\
  179.                 LAB_UNDERSCORE,         "_",\
  180.                 GA_ID,                  id,\
  181.                 GA_SELECTED,            state,\
  182.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  183.         EndObject
  184. /*****************************************************************************
  185.  *
  186.  *      "Quick" cycle creation macros.
  187.  */
  188. #define Cycle(label,labels,active,id)\
  189.         CycleObject,\
  190.                 LAB_LABEL,              label,\
  191.                 GA_ID,                  id,\
  192.                 FRM_TYPE,               FRTYPE_BUTTON,\
  193.                 CYC_LABELS,             labels,\
  194.                 CYC_ACTIVE,             active,\
  195.         EndObject
  196.  
  197. #define KeyCycle(label,labels,active,id)\
  198.         CycleObject,\
  199.                 LAB_LABEL,              label,\
  200.                 LAB_UNDERSCORE,         "_",\
  201.                 GA_ID,                  id,\
  202.                 FRM_TYPE,               FRTYPE_BUTTON,\
  203.                 CYC_LABELS,             labels,\
  204.                 CYC_ACTIVE,             active,\
  205.         EndObject
  206.  
  207. #define XenCycle(label,labels,active,id)\
  208.         CycleObject,\
  209.                 LAB_LABEL,              label,\
  210.                 GA_ID,                  id,\
  211.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  212.                 CYC_LABELS,             labels,\
  213.                 CYC_ACTIVE,             active,\
  214.         EndObject
  215.  
  216. #define XenKeyCycle(label,labels,active,id)\
  217.         CycleObject,\
  218.                 LAB_LABEL,              label,\
  219.                 LAB_UNDERSCORE,         "_",\
  220.                 GA_ID,                  id,\
  221.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  222.                 CYC_LABELS,             labels,\
  223.                 CYC_ACTIVE,             active,\
  224.         EndObject
  225.  
  226. #define PopCycle(label,labels,active,id)\
  227.         CycleObject,\
  228.                 LAB_Label,              label,\
  229.                 GA_ID,                  id,\
  230.                 FRM_TYPE,               FRTYPE_BUTTON,\
  231.                 CYC_LABELS,             labels,\
  232.                 CYC_ACTIVE,             active,\
  233.                 CYC_POPUP,              TRUE,\
  234.         EndObject
  235.  
  236. #define KeyPopCycle(label,labels,active,id)\
  237.         CycleObject,\
  238.                 LAB_LABEL,              label,\
  239.                 LAB_UNDERSCORE,         "_",\
  240.                 GA_ID,                  id,\
  241.                 FRM_TYPE,               FRTYPE_BUTTON,\
  242.                 CYC_LABELS,             labels,\
  243.                 CYC_ACTIVE,             active,\
  244.                 CYC_POPUP,              TRUE,\
  245.         EndObject
  246.  
  247. #define XenPopCycle(label,labels,active,id)\
  248.         CycleObject,\
  249.                 LAB_LABEL,              label,\
  250.                 GA_ID,                  id,\
  251.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  252.                 CYC_LABELS,             labels,\
  253.                 CYC_ACTIVE,             active,\
  254.                 CYC_POPUP,              TRUE,\
  255.         EndObject
  256.  
  257. #define XenKeyPopCycle(label,labels,active,id)\
  258.         CycleObject,\
  259.                 LAB_LABEL,              label,\
  260.                 LAB_UNDERSCORE,         "_",\
  261.                 GA_ID,                  id,\
  262.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  263.                 CYC_LABELS,             labels,\
  264.                 CYC_ACTIVE,             active,\
  265.                 CYC_POPUP,              TRUE,\
  266.         EndObject
  267.  
  268. /*****************************************************************************
  269.  *
  270.  *      "Quick" checkbox creation macros.
  271.  */
  272. #define CheckBox(label,state,id)\
  273.         CheckBoxObject,\
  274.                 LAB_LABEL,              label,\
  275.                 GA_ID,                  id,\
  276.                 FRM_TYPE,               FRTYPE_BUTTON,\
  277.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  278.                 GA_SELECTED,            state,\
  279.         EndObject FixMinSize
  280.  
  281. #define KeyCheckBox(label,state,id)\
  282.         CheckBoxObject,\
  283.                 LAB_LABEL,              label,\
  284.                 LAB_UNDERSCORE,         "_",\
  285.                 GA_ID,                  id,\
  286.                 FRM_TYPE,               FRTYPE_BUTTON,\
  287.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  288.                 GA_SELECTED,            state,\
  289.         EndObject FixMinSize
  290.  
  291. #define XenCheckBox(label,state,id)\
  292.         CheckBoxObject,\
  293.                 LAB_LABEL,              label,\
  294.                 GA_ID,                  id,\
  295.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  296.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  297.                 GA_SELECTED,            state,\
  298.         EndObject FixMinSize
  299.  
  300. #define XenKeyCheckBox(label,state,id)\
  301.         CheckBoxObject,\
  302.                 LAB_LABEL,              label,\
  303.                 LAB_UNDERSCORE,         "_",\
  304.                 GA_ID,                  id,\
  305.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  306.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  307.                 GA_SELECTED,            state,\
  308.         EndObject FixMinSize
  309.  
  310. #define CheckBoxNF(label,state,id)\
  311.         CheckBoxObject,\
  312.                 LAB_LABEL,              label,\
  313.                 GA_ID,                  id,\
  314.                 FRM_TYPE,               FRTYPE_BUTTON,\
  315.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  316.                 GA_SELECTED,            state,\
  317.         EndObject
  318.  
  319. #define KeyCheckBoxNF(label,state,id)\
  320.         CheckBoxObject,\
  321.                 LAB_LABEL,              label,\
  322.                 LAB_UNDERSCORE,         "_",\
  323.                 GA_ID,                  id,\
  324.                 FRM_TYPE,               FRTYPE_BUTTON,\
  325.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  326.                 GA_SELECTED,            state,\
  327.         EndObject
  328.  
  329. #define XenCheckBoxNF(label,state,id)\
  330.         CheckBoxObject,\
  331.                 LAB_LABEL,              label,\
  332.                 GA_ID,                  id,\
  333.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  334.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  335.                 GA_SELECTED,            state,\
  336.         EndObject
  337.  
  338. #define XenKeyCheckBoxNF(label,state,id)\
  339.         CheckBoxObject,\
  340.                 LAB_LABEL,              label,\
  341.                 LAB_UNDERSCORE,         "_",\
  342.                 GA_ID,                  id,\
  343.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  344.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  345.                 GA_SELECTED,            state,\
  346.         EndObject
  347.  
  348. /*****************************************************************************
  349.  *
  350.  *      "Quick" info object creation macros.
  351.  */
  352. #define InfoFixed(label,text,args,numlines)\
  353.         InfoObject,\
  354.                 LAB_LABEL,              label,\
  355.                 FRM_TYPE,               FRTYPE_BUTTON,\
  356.                 FRM_FLAGS,              FRF_RECESSED,\
  357.                 INFO_TEXTFORMAT,        text,\
  358.                 INFO_ARGS,              args,\
  359.                 INFO_MINLINES,          numlines,\
  360.                 INFO_FIXTEXTWIDTH,      TRUE,\
  361.         EndObject
  362.  
  363. #define InfoObj(label,text,args,numlines)\
  364.         InfoObject,\
  365.                 LAB_LABEL,              label,\
  366.                 FRM_TYPE,               FRTYPE_BUTTON,\
  367.                 FRM_FLAGS,              FRF_RECESSED,\
  368.                 INFO_TEXTFORMAT,        text,\
  369.                 INFO_ARGS,              args,\
  370.                 INFO_MINLINES,          numlines,\
  371.         EndObject
  372.  
  373. /*****************************************************************************
  374.  *
  375.  *      "Quick" string/integer creation macros.
  376.  */
  377. #define StringG(label,contents,maxchars,id)\
  378.         StringObject,\
  379.                 LAB_LABEL,              label,\
  380.                 FRM_TYPE,               FRTYPE_RIDGE,\
  381.                 STRINGA_TEXTVAL,        contents,\
  382.                 STRINGA_MAXCHARS,       maxchars,\
  383.                 GA_ID,                  id,\
  384.         EndObject
  385.  
  386. #define KeyString(label,contents,maxchars,id)\
  387.         StringObject,\
  388.                 LAB_LABEL,              label,\
  389.                 LAB_UNDERSCORE,         "_",\
  390.                 FRM_TYPE,               FRTYPE_RIDGE,\
  391.                 STRINGA_TEXTVAL,        contents,\
  392.                 STRINGA_MAXCHARS,       maxchars,\
  393.                 GA_ID,                  id,\
  394.         EndObject
  395.  
  396. #define TabString(label,contents,maxchars,id)\
  397.         StringObject,\
  398.                 LAB_LABEL,              label,\
  399.                 FRM_TYPE,               FRTYPE_RIDGE,\
  400.                 STRINGA_TEXTVAL,        contents,\
  401.                 STRINGA_MAXCHARS,       maxchars,\
  402.                 GA_ID,                  id,\
  403.                 GA_TABCYCLE,            TRUE,\
  404.         EndObject
  405.  
  406. #define TabKeyString(label,contents,maxchars,id)\
  407.         StringObject,\
  408.                 LAB_LABEL,              label,\
  409.                 LAB_UNDERSCORE,         "_",\
  410.                 FRM_TYPE,               FRTYPE_RIDGE,\
  411.                 STRINGA_TEXTVAL,        contents,\
  412.                 STRINGA_MAXCHARS,       maxchars,\
  413.                 GA_ID,                  id,\
  414.                 GA_TABCYCLE,            TRUE,\
  415.         EndObject
  416.  
  417. #define Integer(label,contents,maxchars,id)\
  418.         StringObject,\
  419.                 LAB_LABEL,              label,\
  420.                 FRM_TYPE,               FRTYPE_RIDGE,\
  421.                 STRINGA_LONGVAL,        contents,\
  422.                 STRINGA_MAXCHARS,       maxchars,\
  423.                 GA_ID,                  id,\
  424.         EndObject
  425.  
  426. #define KeyInteger(label,contents,maxchars,id)\
  427.         StringObject,\
  428.                 LAB_LABEL,              label,\
  429.                 LAB_UNDERSCORE,         "_",\
  430.                 FRM_TYPE,               FRTYPE_RIDGE,\
  431.                 STRINGA_LONGVAL,        contents,\
  432.                 STRINGA_MAXCHARS,       maxchars,\
  433.                 GA_ID,                  id,\
  434.         EndObject
  435.  
  436. #define TabInteger(label,contents,maxchars,id)\
  437.         StringObject,\
  438.                 LAB_LABEL,              label,\
  439.                 FRM_TYPE,               FRTYPE_RIDGE,\
  440.                 STRINGA_LONGVAL,        contents,\
  441.                 STRINGA_MAXCHARS,       maxchars,\
  442.                 GA_ID,                  id,\
  443.                 GA_TABCYCLE,            TRUE,\
  444.         EndObject
  445.  
  446. #define TabKeyInteger(label,contents,maxchars,id)\
  447.         StringObject,\
  448.                 LAB_LABEL,              label,\
  449.                 LAB_UNDERSCORE,         "_",\
  450.                 FRM_TYPE,               FRTYPE_RIDGE,\
  451.                 STRINGA_LONGVAL,        contents,\
  452.                 STRINGA_MAXCHARS,       maxchars,\
  453.                 GA_ID,                  id,\
  454.                 GA_TABCYCLE,            TRUE,\
  455.         EndObject
  456.  
  457. /*****************************************************************************
  458.  *
  459.  *      "Quick" scroller creation macros.
  460.  */
  461. #define HorizScroller(label,top,total,visible,id)\
  462.         PropObject,\
  463.                 LAB_LABEL,              label,\
  464.                 PGA_TOP,                top,\
  465.                 PGA_TOTAL,              total,\
  466.                 PGA_VISIBLE,            visible,\
  467.                 PGA_FREEDOM,            FREEHORIZ,\
  468.                 GA_ID,                  id,\
  469.                 PGA_ARROWS,             TRUE,\
  470.         EndObject
  471.  
  472. #define VertScroller(label,top,total,visible,id)\
  473.         PropObject,\
  474.                 LAB_LABEL,              label,\
  475.                 PGA_TOP,                top,\
  476.                 PGA_TOTAL,              total,\
  477.                 PGA_VISIBLE,            visible,\
  478.                 GA_ID,                  id,\
  479.                 PGA_ARROWS,             TRUE,\
  480.         EndObject
  481.  
  482. #define KeyHorizScroller(label,top,total,visible,id)\
  483.         PropObject,\
  484.                 LAB_LABEL,              label,\
  485.                 LAB_UNDERSCORE,         "_",\
  486.                 PGA_TOP,                top,\
  487.                 PGA_TOTAL,              total,\
  488.                 PGA_VISIBLE,            visible,\
  489.                 PGA_FREEDOM,            FREEHORIZ,\
  490.                 GA_ID,                  id,\
  491.                 PGA_ARROWS,             TRUE,\
  492.         EndObject
  493.  
  494. #define KeyVertScroller(label,top,total,visible,id)\
  495.         PropObject,\
  496.                 LAB_LABEL,              label,\
  497.                 LAB_UNDERSCORE,         "_",\
  498.                 PGA_TOP,                top,\
  499.                 PGA_TOTAL,              total,\
  500.                 PGA_VISIBLE,            visible,\
  501.                 GA_ID,                  id,\
  502.                 PGA_ARROWS,             TRUE,\
  503.         EndObject
  504.  
  505. /*****************************************************************************
  506.  *
  507.  *      "Quick" indicator creation macros.
  508.  */
  509. #define Indicator(min,max,level,just)\
  510.         IndicatorObject,\
  511.                 INDIC_MIN,              min,\
  512.                 INDIC_MAX,              max,\
  513.                 INDIC_LEVEL,            level,\
  514.                 INDIC_JUSTIFICATION,    just,\
  515.         EndObject
  516.  
  517. #define IndicatorFormat(min,max,level,just,format)\
  518.         IndicatorObject,\
  519.                 INDIC_MIN,              min,\
  520.                 INDIC_MAX,              max,\
  521.                 INDIC_LEVEL,            level,\
  522.                 INDIC_JUSTIFICATION,    just,\
  523.                 INDIC_FORMATSTRING,     format,\
  524.         EndObject
  525.  
  526. /*****************************************************************************
  527.  *
  528.  *      "Quick" progress creation macros.
  529.  */
  530. #define HorizProgress(label,min,max,done)\
  531.         ProgressObject,\
  532.                 LAB_LABEL,              label,\
  533.                 FRM_TYPE,               FRTYPE_BUTTON,\
  534.                 FRM_FLAGS,              FRF_RECESSED,\
  535.                 PROGRESS_MIN,           min,\
  536.                 PROGRESS_MAX,           max,\
  537.                 PROGRESS_DONE,          done,\
  538.         EndObject
  539.  
  540. #define VertProgress(label,min,max,done)\
  541.         ProgressObject,\
  542.                 LAB_LABEL,              label,\
  543.                 FRM_TYPE,               FRTYPE_BUTTON,\
  544.                 FRM_FLAGS,              FRF_RECESSED,\
  545.                 PROGRESS_MIN,           min,\
  546.                 PROGRESS_MAX,           max,\
  547.                 PROGRESS_DONE,          done,\
  548.                 PROGRESS_VERTICAL,      TRUE,\
  549.         EndObject
  550.  
  551. /*****************************************************************************
  552.  *
  553.  *      "Quick" slider creation macros.
  554.  */
  555. #define HorizSlider(label,min,max,level,id)\
  556.         SliderObject,\
  557.                 LAB_LABEL,              label,\
  558.                 SLIDER_MIN,             min,\
  559.                 SLIDER_MAX,             max,\
  560.                 SLIDER_LEVEL,           level,\
  561.                 GA_ID,                  id,\
  562.         EndObject
  563.  
  564. #define VertSlider(label,min,max,level,id)\
  565.         SliderObject,\
  566.                 LAB_LABEL,              label,\
  567.                 SLIDER_MIN,             min,\
  568.                 SLIDER_MAX,             max,\
  569.                 SLIDER_LEVEL,           level,\
  570.                 PGA_FREEDOM,            FREEVERT,\
  571.                 GA_ID,                  id,\
  572.         EndObject
  573.  
  574. #define KeyHorizSlider(label,min,max,level,id)\
  575.         SliderObject,\
  576.                 LAB_LABEL,              label,\
  577.                 LAB_UNDERSCORE,         "_",\
  578.                 SLIDER_MIN,             min,\
  579.                 SLIDER_MAX,             max,\
  580.                 SLIDER_LEVEL,           level,\
  581.                 GA_ID,                  id,\
  582.         EndObject
  583.  
  584. #define KeyVertSlider(label,min,max,level,id)\
  585.         SliderObject,\
  586.                 LAB_LABEL,              label,\
  587.                 LAB_UNDERSCORE,         "_",\
  588.                 SLIDER_MIN,             min,\
  589.                 SLIDER_MAX,             max,\
  590.                 SLIDER_LEVEL,           level,\
  591.                 PGA_FREEDOM,            FREEVERT,\
  592.                 GA_ID,                  id,\
  593.         EndObject
  594.  
  595. /*****************************************************************************
  596.  *
  597.  *      "Quick" mx creation macros.
  598.  */
  599. #define RightMx(label,labels,active,id)\
  600.         MxObject,\
  601.                 GROUP_STYLE,            GRSTYLE_VERTICAL,\
  602.                 LAB_LABEL,              label,\
  603.                 MX_LABELS,              labels,\
  604.                 MX_ACTIVE,              active,\
  605.                 GA_ID,                  id,\
  606.         EndObject, FixMinSize
  607.  
  608. #define LeftMx(label,labels,active,id)\
  609.         MxObject,\
  610.                 GROUP_STYLE,            GRSTYLE_VERTICAL,\
  611.                 LAB_LABEL,              label,\
  612.                 MX_LABELS,              labels,\
  613.                 MX_ACTIVE,              active,\
  614.                 MX_LABELPLACE,          PLACE_LEFT,\
  615.                 GA_ID,                  id,\
  616.         EndObject, FixMinSize
  617.  
  618. #define RightMxKey(label,labels,active,id)\
  619.         MxObject,\
  620.                 GROUP_STYLE,            GRSTYLE_VERTICAL,\
  621.                 LAB_LABEL,              label,\
  622.                 LAB_UNDERSCORE,         "_",\
  623.                 MX_LABELS,              labels,\
  624.                 MX_ACTIVE,              active,\
  625.                 GA_ID,                  id,\
  626.         EndObject, FixMinSize
  627.  
  628. #define LeftMxKey(label,labels,active,id)\
  629.         MxObject,\
  630.                 GROUP_STYLE,            GRSTYLE_VERTICAL,\
  631.                 LAB_LABEL,              label,\
  632.                 LAB_UNDERSCORE,         "_",\
  633.                 MX_LABELS,              labels,\
  634.                 MX_ACTIVE,              active,\
  635.                 MX_LABELPLACE,          PLACE_LEFT,\
  636.                 GA_ID,                  id,\
  637.         EndObject, FixMinSize
  638.  
  639. #define Tabs(label,labels,active,id)\
  640.         MxObject,\
  641.                 MX_TABSOBJECT,          TRUE,\
  642.                 LAB_LABEL,              label,\
  643.                 MX_LABELS,              labels,\
  644.                 MX_ACTIVE,              active,\
  645.                 GA_ID,                  id,\
  646.         EndObject, FixMinHeight
  647.  
  648. #define TabsKey(label,labels,active,id)\
  649.         MxObject,\
  650.                 MX_TABSOBJECT,          TRUE,\
  651.                 LAB_LABEL,              label,\
  652.                 LAB_UNDERSCORE,         '_',\
  653.                 MX_LABELS,              labels,\
  654.                 MX_ACTIVE,              active,\
  655.                 GA_ID,                  id,\
  656.         EndObject, FixMinHeight
  657.  
  658. #define TabsEqual(label,labels,active,id)\
  659.         MxObject,\
  660.                 GROUP_EQUALWIDTH,       TRUE,\
  661.                 MX_TABSOBJECT,          TRUE,\
  662.                 LAB_LABEL,              label,\
  663.                 MX_LABELS,              labels,\
  664.                 MX_ACTIVE,              active,\
  665.                 GA_ID,                  id,\
  666.         EndObject, FixMinHeight
  667.  
  668. #define TabsEqualKey(label,labels,active,id)\
  669.         MxObject,\
  670.                 GROUP_EQUALWIDTH,       TRUE,\
  671.                 MX_TABSOBJECT,          TRUE,\
  672.                 LAB_LABEL,              label,\
  673.                 LAB_UNDERSCORE,         '_',\
  674.                 MX_LABELS,              labels,\
  675.                 MX_ACTIVE,              active,\
  676.                 GA_ID,                  id,\
  677.         EndObject, FixMinHeight
  678.  
  679. /*****************************************************************************
  680.  *
  681.  *      "Quick" listview creation macros.
  682.  */
  683. #define StrListview(label,strings,id)\
  684.         ListviewObject,\
  685.                 LAB_LABEL,              label,\
  686.                 GA_ID,                  id,\
  687.                 LISTV_ENTRYARRAY,       strings,\
  688.         EndObject
  689.  
  690. #define StrListviewSorted(label,strings,id)\
  691.         ListviewObject,\
  692.                 LAB_LABEL,              label,\
  693.                 GA_ID,                  id,\
  694.                 LISTV_ENTRYARRAY,       strings,\
  695.                 LISTV_SORTENTRYARRAY,   TRUE,\
  696.         EndObject
  697.  
  698. #define ReadStrListview(label,strings)\
  699.         ListviewObject,\
  700.                 LAB_LABEL,              label,\
  701.                 LISTV_ENTRYARRAY,       strings,\
  702.                 LISTV_READONLY,         TRUE,\
  703.         EndObject
  704.  
  705. #define ReadStrListviewSorted(label,strings)\
  706.         ListviewObject,\
  707.                 LAB_LABEL,              label,\
  708.                 LISTV_ENTRYARRAY,       strings,\
  709.                 LISTV_SORTENTRYARRAY,   TRUE,\
  710.                 LISTV_READONLY,         TRUE,\
  711.         EndObject
  712.  
  713. #define MultiStrListview(label,strings,id)\
  714.         ListviewObject,\
  715.                 LAB_LABEL,              label,\
  716.                 GA_ID,                  id,\
  717.                 LISTV_ENTRYARRAY,       strings,\
  718.                 LISTV_MULTISELECT,      TRUE,\
  719.         EndObject
  720.  
  721. #define MultiStrListviewSorted(label,strings,id)\
  722.         ListviewObject,\
  723.                 LAB_LABEL,              label,\
  724.                 GA_ID,                  id,\
  725.                 LISTV_ENTRYARRAY,       strings,\
  726.                 LISTV_SORTENTRYARRAY,   TRUE,\
  727.                 LISTV_MULTISELECT,      TRUE,\
  728.         EndObject
  729.  
  730. /*****************************************************************************
  731.  *
  732.  *      "Quick" seperator bar creation macros.
  733.  */
  734. #define VertSeperator \
  735.         SeperatorObject,\
  736.         EndObject FixMinWidth
  737.  
  738. #define VertThinSeperator \
  739.         SeperatorObject,\
  740.                 SEP_THIN,               TRUE,\
  741.         EndObject FixMinWidth
  742.  
  743. #define HorizSeperator \
  744.         SeperatorObject,\
  745.                 SEP_HORIZ,              TRUE,\
  746.         EndObject FixMinHeight
  747.  
  748. #define TitleSeperator(t)\
  749.         SeperatorObject,\
  750.                 SEP_HORIZ,              TRUE,\
  751.                 SEP_TITLE,              t,\
  752.         EndObject FixMinHeight
  753.  
  754. #define HTitleSeperator(t)\
  755.         SeperatorObject,\
  756.                 SEP_HORIZ,              TRUE,\
  757.                 SEP_TITLE,              t,\
  758.                 SEP_HIGHLIGHT,          TRUE,\
  759.         EndObject FixMinHeight
  760.  
  761. #define CTitleSeperator(t)\
  762.         SeperatorObject,\
  763.                 SEP_HORIZ,              TRUE,\
  764.                 SEP_TITLE,              t,\
  765.                 SEP_CENTERTITLE,        TRUE,\
  766.         EndObject FixMinHeight
  767.  
  768. #define CHTitleSeperator(t)\
  769.         SeperatorObject,\
  770.                 SEP_HORIZ,              TRUE,\
  771.                 SEP_TITLE,              t,\
  772.                 SEP_HIGHLIGHT,          TRUE,\
  773.                 SEP_CENTERTITLE,        TRUE,\
  774.         EndObject FixMinHeight
  775.  
  776. /*****************************************************************************
  777.  *
  778.  *      Base class method macros.
  779.  */
  780. #define AddMap(object,target,map)\
  781.         domethod( object, [ BASE_ADDMAP, target, map ] )
  782.  
  783. #define AddCondit(object,target,ttag,tdat,ftag,fdat,stag,sdat)\
  784.         domethod( object, [ BASE_ADDCONDITIONAL, target,\
  785.                   ttag, tdat,\
  786.                   ftag, fdat,\
  787.                   stag, sdat ] )
  788.  
  789. #define AddHook(object,hook)\
  790.         domethod( object, [ BASE_ADDHOOK, hook ] )
  791.  
  792. #define RemMap(object,target)\
  793.         domethod( object, [ BASE_REMMAP, target  ] )
  794.  
  795. #define RemCondit(object,target)\
  796.         domethod( object, [ BASE_REMCONDITIONAL, target ] )
  797.  
  798. #define RemHook( object,hook)\
  799.         domethod( object, [ BASE_REMHOOK, hook ] )
  800.  
  801. /*****************************************************************************
  802.  *
  803.  *      Listview class method macros.
  804.  */
  805. #define AddEntry(window,object,entry,how)\
  806.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_ADDSINGLE,\
  807.                              NIL, entry, how, 0 ] )
  808.  
  809. #define AddEntryVisible(window,object,entry,how)\
  810.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_ADDSINGLE,\
  811.                              NIL, entry, how, LVASF_MAKEVISIBLE ] )
  812.  
  813. #define AddEntrySelect(window,object,entry,how)\
  814.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_ADDSINGLE,\
  815.                              NIL, entry, how, LVASF_SELECT ] )
  816.  
  817. #define ClearList(window,object)\
  818.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_CLEAR, NIL ] )
  819.  
  820. #define FirstEntry(object)\
  821.         domethod( object, [ LVM_FIRSTENTRY, NIL, 0 ] )
  822.  
  823. #define FirstSelected(object)\
  824.         domethod( object, [ LVM_FIRSTENTRY, NIL, LVGEF_SELECTED ] )
  825.  
  826. #define LastEntry(object)\
  827.         domethod( object, [ LVM_LASTENTRY, NIL, 0 ] )
  828.  
  829. #define LastSelected(object)\
  830.         domethod( object, [ LVM_LASTENTRY, NIL, LVGEF_SELECTED ] )
  831.  
  832. #define NextEntry(object,last)\
  833.         domethod( object, [ LVM_NEXTENTRY, last, 0 ] )
  834.  
  835. #define NextSelected(object,last)\
  836.         domethod( object, [ LVM_NEXTENTRY, last, LVGEF_SELECTED ] )
  837.  
  838. #define PrevEntry(object,last)\
  839.         domethod( object, [ LVM_PREVENTRY, last, 0 ] )
  840.  
  841. #define PrevSelected(object,last)\
  842.         domethod( object, [ LVM_PREVENTRY, last, LVGEF_SELECTED ] )
  843.  
  844. #define RemoveEntry(object,entry)\
  845.         domethod( object, [ LVM_REMENTRY, NIL, entry ] )
  846.  
  847. #define RemoveEntryVisible(window,object,entry)\
  848.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_REMENTRY, NIL, entry ] )
  849.  
  850. #define RefreshList(window,object)\
  851.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_REFRESH, NIL ] )
  852.  
  853. #define SortList(window,object)\
  854.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_SORT, NIL ] )
  855.  
  856. #define LockList(object)\
  857.         domethod( object, [ LVM_LOCKLIST, NIL ] )
  858.  
  859. #define UnlockList(window,object)\
  860.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_UNLOCKLIST, NIL ] )
  861.  
  862. #define MoveEntry(window,object,entry,dir)\
  863.         BgUI_DoGadgetMethodA( object, window, NULL, [ LVM_MOVE, NULL,\
  864.                              entry, dir ] )
  865.  
  866. #define MoveSelectedEntry(window,object,dir)\
  867.         BgUI_DoGadgetMethodA( object, window, NULL, [ LVM_MOVE, NULL,\
  868.                              NULL, dir ] )
  869.  
  870. /*****************************************************************************
  871.  *
  872.  *      Window class method macros.
  873.  */
  874. #define GadgetKey(wobj,gobj,key)\
  875.         domethod( wobj, [ WM_GADGETKEY, NIL, gobj, key ] )
  876.  
  877. #define WindowOpen(wobj)\
  878.         domethod( wobj, [ WM_OPEN ] )
  879.  
  880. #define WindowClose(wobj)\
  881.         domethod( wobj, [ WM_CLOSE ] )
  882.  
  883. #define WindowBusy(wobj)\
  884.         domethod( wobj, [ WM_SLEEP ] )
  885.  
  886. #define WindowReady(wobj)\
  887.         domethod( wobj, [ WM_WAKEUP ] )
  888.  
  889. #define HandleEvent(wobj)\
  890.         domethod( wobj, [ WM_HANDLEIDCMP ] )
  891.  
  892. #define DisableMenu(wobj,id,set)\
  893.         domethod( wobj, [ WM_DISABLEMENU, id, set ] )
  894.  
  895. #define CheckItem(wobj,id,set)\
  896.         domethod( wobj, [ WM_CHECKITEM, id, set ] )
  897.  
  898. #define MenuDisabled(wobj,id)\
  899.         domethod( wobj, [ WM_MENUDISABLED, id ] )
  900.  
  901. #define ItemChecked(wobj,id)\
  902.         domethod( wobj, [ WM_ITEMCHECKED, id ] )
  903.  
  904. #define GetAppMsg(wobj)\
  905.         domethod( wobj, [ WM_GETAPPMSG ] )
  906.  
  907. #define AddUpdate(wobj,id,target,map)\
  908.         domethod( wobj, [ WM_ADDUPDATE, id, target, map ] )
  909.  
  910. /*****************************************************************************
  911.  *
  912.  *      Commodity class method macros.
  913.  */
  914. #define AddHotkey(broker,desc,id,flags)\
  915.         domethod( broker, [ CM_ADDHOTKEY, desc, id, flags ] )
  916.  
  917. #define RemHotkey(broker,id)\
  918.         domethod( broker, [ CM_REMHOTKEY, id ] )
  919.  
  920. #define DisableHotkey(broker,id)\
  921.         domethod( broker, [ CM_DISABLEHOTKEY, id ] )
  922.  
  923. #define EnableHotKey(broker,id)\
  924.         domethod( broker, [ CM_ENABLEHOTKEY, id ] )
  925.  
  926. #define EnableBroker(broker)\
  927.         domethod( broker, [ CM_ENABLEBROKER ] )
  928.  
  929. #define DisableBroker(broker)\
  930.         domethod( broker, [ CM_DISABLEBROKER ] )
  931.  
  932. #define MsgInfo(broker,type,id,data)\
  933.         domethod( broker, [ CM_MSGINFO,\
  934.                             type,\
  935.                             id,\
  936.                             data ] )
  937.  
  938. /*****************************************************************************
  939.  *
  940.  *      FileReq class method macros.
  941.  */
  942. #define DoRequest(object)\
  943.         domethod( object, [ FRM_DOREQUEST ] )
  944.