home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Workbench / Libs / GADUTIL.LHA / GadUtil / include / libraries / gadutil.i < prev   
Encoding:
Text File  |  1995-10-21  |  16.8 KB  |  512 lines

  1.     IFND    LIBRARIES_GADUTIL_I
  2. LIBRARIES_GADUTIL_I          SET    1
  3. **------------------------------------------------------------------------**
  4. *
  5. *    $VER: gadutil.i 36.56 (11.10.95)
  6. *
  7. *    Filename:    libraries/gadutil.i
  8. *    Version:    36.56
  9. *    Date:        29-Sep-95
  10. *
  11. *    Gadutil definitions, a dynamic gadget layout system.
  12. *
  13. *    (C) Copyright 1994, 1995 by P-O Yliniemi and Staffan Hämälä.
  14. *
  15. *    All Rights Reserved.
  16. *
  17. **------------------------------------------------------------------------**
  18.  
  19.     IFND    EXEC_TYPES_I
  20.     INCLUDE    'exec/types.i'
  21.     ENDC
  22.  
  23.     IFND    EXEC_LIBRARIES_I
  24.     include    "exec/libraries.i"
  25.     ENDC
  26.  
  27.     IFND    UTILITY_TAGITEM_I
  28.     INCLUDE    'utility/tagitem.i'
  29.     ENDC
  30.  
  31.     IFND    INTUITION_INTUITION_I
  32.     INCLUDE    'intuition/intuition.i'
  33.     ENDC    
  34.  
  35. **------------------------------------------------------------------------**
  36. *
  37. * Extended gadget types available in GadUtil.library.
  38. *
  39.  
  40. IMAGE_KIND:            equ    50
  41. LABEL_KIND:            equ    51            ; Not implemented
  42. DRAWER_KIND:        equ    52
  43. FILE_KIND:        equ    53
  44. BEVELBOX_KIND:        equ    54
  45. PROGRESS_KIND:        equ    55
  46.  
  47. **----------------------- Bevel box frame types  -------------------------**
  48. BFT_BUTTON:        equ    0    ; Normal button bevel box border
  49. BFT_RIDGE:        equ    1    ; STRING_KIND bevel box border
  50. BFT_DROPBOX:        equ    2    ; Icon dropbox type border
  51.  
  52. BFT_HORIZBAR:        equ    10    ; Horizontal shadowed line
  53. BFT_VERTBAR:        equ    11    ; Vertical shadowed line
  54.  
  55. **------------------------- Text placement flags -------------------------**
  56. BB_TEXT_ABOVE:        equ    0    ; Place bevel box text above the
  57.                     ;  upper border     ___ Example ___
  58.  
  59. BB_TEXT_IN:        equ    1    ; Place bevel box text centered at
  60.                     ;  the upper border --- Example ---
  61.  
  62. BB_TEXT_BELOW:        equ    2    ; Place bevel box text below the
  63.                     ;  upper border     ___         ___
  64.                     ;                       Example
  65.  
  66. BB_TEXT_CENTER:        equ    0    ; Place the text centered at the
  67.                     ;  upper border (default)
  68.  
  69. BB_TEXT_LEFT:        equ    4    ; Place the text left adjusted
  70.  
  71. BB_TEXT_RIGHT:        equ    8    ; Place the text right adjusted
  72.  
  73. **----------------- Alternatives for text placement flags ----------------**
  74. BB_TEXT_ABOVE_CENTER:    equ    BB_TEXT_ABOVE!BB_TEXT_CENTER
  75. BB_TEXT_ABOVE_LEFT:    equ    BB_TEXT_ABOVE!BB_TEXT_LEFT
  76. BB_TEXT_ABOVE_RIGHT:    equ    BB_TEXT_ABOVE!BB_TEXT_RIGHT
  77.  
  78. BB_TEXT_IN_CENTER:    equ    BB_TEXT_IN!BB_TEXT_CENTER
  79. BB_TEXT_IN_LEFT:    equ    BB_TEXT_IN!BB_TEXT_LEFT
  80. BB_TEXT_IN_RIGHT:    equ    BB_TEXT_IN!BB_TEXT_RIGHT
  81.  
  82. BB_TEXT_BELOW_CENTER:    equ    BB_TEXT_BELOW!BB_TEXT_CENTER
  83. BB_TEXT_BELOW_LEFT:    equ    BB_TEXT_BELOW!BB_TEXT_LEFT
  84. BB_TEXT_BELOW_RIGHT:    equ    BB_TEXT_BELOW!BB_TEXT_RIGHT
  85.  
  86. **---------------------- Text shadow placement flags ---------------------**
  87. BB_SHADOW_DR:        equ    0    ; Place the shadow at x+1, y+1
  88. BB_SHADOW_UR:        equ    16    ; Place the shadow at x+1, y-1
  89. BB_SHADOW_DL:        equ    32    ; Place the shadow at x-1, y+1
  90. BB_SHADOW_UL:        equ    48    ; Place the shadow at x-1, y-1
  91.  
  92. **------------ Alternatives for text shadow placement flags --------------**
  93. BB_SUNAT_UL:        equ    0    ; Place the shadow at x+1, y+1
  94. BB_SUNAT_DL:        equ    16    ; Place the shadow at x+1, y-1
  95. BB_SUNAT_UR:        equ    32    ; Place the shadow at x-1, y+1
  96. BB_SUNAT_DR:        equ    48    ; Place the shadow at x-1, y-1
  97.  
  98. **------------------------------------------------------------------------**
  99. *
  100. * This is the structure that actually holds the definition of a single
  101. * gadget.  It contains the new layout tags defined below, as well as the
  102. * normal GadTools tags.  You setup all the gadgets in a window by
  103. * making an array of this structure and passing it to GU_LayoutGadgetsA().
  104. *
  105.     STRUCTURE LayoutGadget,0
  106.         WORD lg_GadgetID        ; Gadget ID
  107.         APTR lg_LayoutTags        ; struct TagItem ptr
  108.         APTR lg_GadToolsTags        ; struct TagItem ptr
  109.         APTR lg_Gadget            ; struct Gadget ptr
  110.     LABEL lg_SIZEOF
  111.  
  112. **------------------------------------------------------------------------**
  113. *
  114. * Structure used to hold the built in strings of a localized program. These
  115. * strings will be used if we couldn't get a string from the catalog.
  116. *
  117. *
  118.     STRUCTURE AppString,0
  119.         LONG    as_ID            ; String ID
  120.         LONG    as_Str            ; String pointer
  121.     LABEL as_SIZEOF
  122.  
  123. **------------------------------------------------------------------------**
  124. * A useful macro to fill a LayoutGadget structure.
  125. *
  126. * Usage:        GADGET  GadgetID,  Gad_LayoutTags,  Gad_GadToolsTags
  127. *
  128.  
  129. GADGET:    MACRO
  130.     dc.w    \1
  131.     dc.l    \2,\3,0
  132.     ENDM
  133.  
  134. LASTGAD: MACRO
  135.     dc.w    -1
  136.     dc.l    NULL,NULL,NULL
  137.     ENDM
  138.  
  139. **------------------------------------------------------------------------**
  140. * A macro to define a localized NewMenu structure
  141. *
  142. * Usage:        LOCMENU Type, Label ID, Flags, MutualExclude, UserData
  143. *
  144. * The string format for the label and shortcut key is:
  145. *
  146. *       SHORTCUTKEY, NULL, LABEL
  147. *
  148. * Use space for no shortcut.
  149. *
  150. * Examples:
  151. *
  152. * MNU_Edit_Cut:   dc.b  "X",0,"Cut"             ; Shortcut = Amiga X
  153. * MNU_Edit_Copy:  dc.b  "C",0,"Copy"            ; Shortcut = Amiga C
  154. * MNU_Edit_Paste: dc.b  "V",0,"Paste"           ; Shortcut = Amiga V
  155. * MNU_Edit_Erase: dc.b  " ",0,"Erase"           ; No shortcut
  156. *
  157.  
  158. LOCMENU: MACRO
  159.          dc.b    \1,0           ; Type, pad
  160.          dc.l    \2,0           ; Catalog string ID for label and cmd key
  161.          dc.w    \3             ; Flags
  162.          dc.l    \4,\5          ; MutualExclude, UserData
  163.          ENDM
  164.  
  165. **------------------------------------------------------------------------**
  166. *
  167. * Gadutil.library is basically an extension to Gadtools.library.  It adds
  168. * to GadTools the ability to dynamically layout gadgets according to the
  169. * positions of other gadgets, font size, locale, etc.  The goal in designing
  170. * this was to create a system so that programmers could easily create a GUI
  171. * that automatically adjusted to a user's environment.
  172. *
  173. * Every gadget is now defined as a TagList, there is no more need to make use
  174. * of the NewGadget structure as this taglist allows you to access all fields
  175. * used in that structure.  An array of the TagLists for all your window's
  176. * gadgets is then passed to GU_LayoutGadgetsA() and your gadget list is
  177. * created.
  178. *
  179.  
  180. GU_TagBase:    equ    TAG_USER+$60000
  181.  
  182. ************ Define which kind of gadget we are going to have. *************
  183.  
  184. GU_GadgetKind:    equ    GU_TagBase+1    ; Which kind of gadget to make.
  185.  
  186.  
  187. ********************** Gadget width control. *******************************
  188.  
  189. GU_Width:    equ    GU_TagBase+20    ; Absolute gadget width.
  190.  
  191. GU_DupeWidth:    equ    GU_TagBase+21    ; Duplicate the width of
  192.                     ;  another gadget
  193.  
  194. GU_AutoWidth:    equ    GU_TagBase+22    ; Set width according to length
  195.                     ;  of text label + ti_Data
  196.  
  197. GU_Columns:    equ    GU_TagBase+23    ; Set width so that approximately
  198.                     ;  ti_Data columns will fit.
  199.  
  200. GU_AddWidth:    equ    GU_TagBase+24    ; Add some value to the total
  201.                     ;  width calculation.
  202.  
  203. GU_MinWidth:    equ    GU_TagBase+25    ; Make sure width is at least this
  204.  
  205. GU_MaxWidth:    equ    GU_TagBase+26    ; Make sure width is at most this
  206.  
  207. GU_AddWidChar:    equ    GU_TagBase+27    ; Add length of ti_Data characters
  208.                     ;  to the gadget width
  209.  
  210. ********************** Gadget height control. ******************************
  211.  
  212. GU_Height:    equ    GU_TagBase+40    ; Absolute gadget height.
  213.  
  214. GU_DupeHeight:    equ     GU_TagBase+41    ; Duplicate the height of another
  215.                     ;  gadget.
  216.  
  217. GU_AutoHeight:    equ    GU_TagBase+42    ; Set height according to height
  218.                     ;  of text font + ti_Data.
  219.  
  220. GU_HeightFactor: equ    GU_TagBase+43    ; Make the gadget height a
  221.                     ;  multiple of the font height.
  222.  
  223. GU_AddHeight:    equ    GU_TagBase+44    ; Add some value to the total
  224.                     ;  height calculation
  225.  
  226. GU_MinHeight:    equ    GU_TagBase+45    ; Make sure height is at least this
  227.  
  228. GU_MaxHeight:    equ    GU_TagBase+46    ; Make sure height is at most this
  229.  
  230. GU_AddHeiLines:    equ    GU_TagBase+47    ; Add the height of ti_Data lines
  231.                     ;  to the gadget height
  232.  
  233. ******************** Gadget top edge control. ******************************
  234.  
  235. GU_Top:        equ    GU_TagBase+60    ; Absolute top edge.
  236.  
  237. GU_TopRel:    equ    GU_TagBase+61    ; Top edge relative to bottom
  238.                     ;  edge of another gadget.
  239.  
  240. GU_AddTop:    equ    GU_TagBase+62    ; Add some value to the final
  241.                      ;  top edge calculation.
  242.  
  243. GU_AlignTop:    equ    GU_TagBase+63    ; Align top edge of gadget with
  244.                     ;  top edge of another gadget.
  245.  
  246. GU_AdjustTop:    equ    GU_TagBase+64    ; Add the height of the text
  247.                     ;  font + ti_Data to the top edge.
  248.  
  249. GU_AddTopLines: equ    GU_TagBase+65    ; Add the height of ti_Data lines
  250.                     ;  to the top edge
  251.  
  252. ******************** Gadget bottom edge control. ***************************
  253.  
  254. GU_Bottom:    equ    GU_TagBase+80    ; Absolute bottom edge.
  255.  
  256. GU_BottomRel:    equ    GU_TagBase+81    ; Bottom edge relative to top
  257.                     ;  edge of another gadget.
  258.  
  259. GU_AddBottom:    equ    GU_TagBase+82    ; Add some value to the final
  260.                     ;  bottom edge calculation.
  261.  
  262. GU_AlignBottom:    equ    GU_TagBase+83    ; Align bottom edge of gadget with
  263.                     ;  bottom edge of another gadget.
  264.  
  265. GU_AdjustBottom: equ    GU_TagBase+84   ; Subtract the height of the text
  266.                                         ;  font + ti_Data from the top edge.
  267.  
  268. ************************ Gadget left edge control. *************************
  269.  
  270. GU_Left:    equ    GU_TagBase+100    ; Absolute left edge.
  271.  
  272. GU_LeftRel:    equ    GU_TagBase+101    ; Left edge relative to right
  273.                     ;  edge of another gadget.
  274.  
  275. GU_AddLeft:    equ    GU_TagBase+102    ; Add some value to the final
  276.                     ;  left edge calculation.
  277.  
  278. GU_AlignLeft:    equ    GU_TagBase+103    ; Align left edge of gadget with
  279.                     ;  left edge of another gadget.
  280.  
  281. GU_AdjustLeft:    equ    GU_TagBase+104    ; Add the width of the text
  282.                     ;  label + ti_Data to the left edge.
  283.  
  284. GU_AddLeftChar: equ    GU_TagBase+105    ; Add length of ti_Data characters
  285.                     ;  to the left edge.
  286.  
  287. *********************** Gadget right edge control. *************************
  288.  
  289. GU_Right:    equ    GU_TagBase+120    ; Absolute right edge.
  290.  
  291. GU_RightRel:    equ    GU_TagBase+121    ; Right edge relative to left
  292.                     ;  edge of another gadget.
  293.  
  294. GU_AddRight:    equ    GU_TagBase+122    ; Add some value to the final
  295.                     ;  right edge calculation.
  296.  
  297. GU_AlignRight:    equ    GU_TagBase+123    ; Align right edge of gadget with
  298.                     ;  right edge of another gadget.
  299.  
  300. GU_AdjustRight: equ     GU_TagBase+124  ; Subtract the width of the text
  301.                                         ; label + ti_Data from the left edge
  302.  
  303. ******************************** Other tags ********************************
  304.  
  305. GU_ToggleSelect: equ    GU_TagBase+150  ; Make the gadget toggleselect
  306.  
  307. GU_Selected:    equ     GU_TagBase+151  ; Change toggleselect default to
  308.                                         ;  selected.
  309.  
  310. ************ Access to the other fields of the NewGadget structure. ********
  311.  
  312. GU_GadgetText:    equ    GU_TagBase+160    ;  Gadget label. 
  313.  
  314. GU_TextAttr:    equ    GU_TagBase+161    ;  Desired font for gadget label.
  315.  
  316. GU_Flags:    equ    GU_TagBase+162    ;  Gadget flags.
  317.  
  318. GU_UserData:    equ    GU_TagBase+163    ;  Gadget UserData.
  319.  
  320. GU_LocaleText:    equ    GU_TagBase+164    ;  Gadget label taken from a locale.
  321.  
  322.  
  323. ***************** Tags for GadUtil's extended gadget kinds. ****************
  324.  
  325. GUIM_Image:    equ    GU_TagBase+200    ; Image structure for an image
  326.                     ;  gadget
  327.  
  328. GUIM_ReadOnly:    equ    GU_TagBase+201    ; TRUE if read-only. 
  329.  
  330. GUIM_SelectImg: equ     GU_TagBase+202  ; Other image for IMAGE_KIND gadgets.
  331.  
  332. GUIM_BOOPSILook: equ    GU_TagBase+203  ; Change the look of the selected
  333.                                         ;  image on one-image-buttons.
  334.  
  335. GUBD_Border:    equ    GU_TagBase+200    ; Border structure for an
  336.                     ;  border gadget
  337.  
  338. GUBD_ReadOnly:    equ    GU_TagBase+201    ; TRUE if read-only. 
  339.  
  340. GUBB_Recessed:    equ    GU_TagBase+220    ; TRUE for a recessed bevel box
  341.  
  342. GUBB_FrameType:    equ    GU_TagBase+221    ; Frame type for bevel box
  343.  
  344. GUBB_TextColor: equ    GU_TagBase+222    ; Color of title text above box
  345.  
  346. GUBB_TextPen:    equ    GU_TagBase+223    ; Pen to print title text with -
  347.                     ;  overrides GUBB_TextColor
  348. GUBB_Flags:    equ    GU_TagBase+224    ; Text placement flags
  349.  
  350. GUBB_3DText:    equ    GU_TagBase+225    ; Tag to enable 3D text (shadow)
  351.                     ;  Not needed if GU_ShadowColor or
  352.                     ;  GU_ShadowPen is used
  353.  
  354. GUBB_ShadowColor: equ    GU_TagBase+226    ; Color of the title text's shadow
  355.  
  356. GUBB_ShadowPen:    equ    GU_TagBase+227    ; Pen to print the text's shadow
  357.                     ;  with - overrides GUBB_ShadowColor
  358.  
  359. GUPR_FillColor:    equ    GU_TagBase+240    ; Color of filled part of indicator
  360.  
  361. GUPR_FillPen:    equ    GU_TagBase+241    ; Pen to fill the indicator with
  362.                     ;  - overrides GUPR_FillColor
  363.  
  364. GUPR_BackColor:    equ    GU_TagBase+242    ; Color of the background of the
  365.                     ;  indicator
  366.  
  367. GUPR_BackPen:    equ    GU_TagBase+243    ; Pen to use for the indocator's
  368.                     ;  background - overrides
  369.                     ;  GUPR_BackColor
  370.  
  371. GUPR_Current:    equ    GU_TagBase+244    ; Current value of the indicator
  372.  
  373. GUPR_Total:    equ    GU_TagBase+245    ; Total value for the indicator
  374.  
  375. ************** Tags passed directly to GU_LayoutGadgetsA(). ****************
  376.  
  377. GU_RightExtreme: equ    GU_TagBase+500    ; ti_Data is a pointer to a longword
  378.                     ;  that is used to store the right-
  379.                     ;  most point that a gadget will
  380.                     ;  exist in.
  381.  
  382. GU_LowerExtreme: equ    GU_TagBase+501    ; ti_Data is a pointer to a longword
  383.                     ;  that is used to store the lower-
  384.                     ;  most point that a gadget will
  385.                     ;  exist in.
  386.  
  387. GU_Catalog:    equ    GU_TagBase+502    ; Indicates locale for the gadgets. 
  388.  
  389. GU_DefTextAttr:    equ    GU_TagBase+503    ; Specifies a default font for use
  390.                     ;  with all gadgets, can still be
  391.                     ;  over-ridden with GU_TextAttr.
  392.  
  393. GU_AppStrings:    equ    GU_TagBase+504    ; Application string table w/IDs. 
  394.  
  395. GU_BorderLeft:    equ    GU_TagBase+505    ; Size of window left border. 
  396.  
  397. GU_BorderTop:    equ    GU_TagBase+506    ; Size of window top border. 
  398.  
  399. GU_NoCreate:    equ    GU_TagBase+507    ; Don't actually create the gadgets. 
  400.  
  401. GU_MinimumIDCMP: equ    GU_TagBase+508    ; Minimum required IDCMP, so that all
  402.                     ;  gadgets will work
  403.  
  404. ****************************** Hotkey tags ***********************************
  405.  
  406. GU_Hotkey:    equ    GU_TagBase+300    ; Hotkey for gadget (VANILLAKEY)
  407.  
  408. ********************* Boolean flags for hotkey code **************************
  409.  
  410. GU_HotkeyCase:    equ    GU_TagBase+301    ; TRUE for case sensitive hotkey
  411. GU_LabelHotkey:    equ    GU_TagBase+302    ; TRUE = get hotkey code from label
  412. GU_RawKey:    equ    GU_TagBase+303    ; TRUE if hotkey is a RAWKEY code
  413.  
  414. *********************** Constants for hotkey support ***********************
  415.  
  416. GADUSERMAGIC:    equ    $1122        ; Identification for structure
  417.  
  418. ******************** Public bit numbers for gu_Flags ***********************
  419.  
  420. GU_HOTKEYCASE:    equ    0        ; Hotkey is case-sensitive
  421. GU_RAWKEY:    equ    2        ; Hotkey is a RAWKEY code
  422.  
  423. ******************** Structure gg_UserData points to ***********************
  424. *
  425. * This structure is the public part of the allocated data structure for
  426. * hotkeys and IMAGE_KIND gadgets (including FILE_KIND and DRAWER_KIND).
  427. *
  428. * This structure should be considered READ ONLY. The only fields you may
  429. * change is the gu_Code and gu_Flags fields.
  430. *
  431. * DO NOT WRITE ANYTHING BEYOND THIS STRUCTURE WITHOUT ALLOCATING MEMORY FIRST
  432.  
  433.     STRUCTURE    GU_Public,0
  434.         WORD    gu_Magic    ; Identification word for structure
  435.         LONG    gu_GadFlags    ; Flags for GENERIC kind GadUtil gadgets
  436.         BYTE    gu_Flags    ; Flags for the hotkey type
  437.         BYTE    gu_Code        ; VANILLA or RAWKEY code to react on
  438.         WORD    gu_Active    ; Active entry for some gadget kinds
  439.         WORD    gu_MaxVal    ; Maximum value for some gadgets
  440.         WORD    gu_MinVal    ; Minimum value for some gadgets
  441.         LONG    gu_GadgetType    ; Gadget type that was created
  442.     LABEL    GUPU_SIZEOF
  443.  
  444.  
  445. **------------------------------------------------------------------------**
  446. **                  Library base                  **
  447. **------------------------------------------------------------------------**
  448.  
  449.     STRUCTURE    GadUtilBase,LIB_SIZE
  450.         UBYTE    gub_Flags        ; Private!
  451.         UBYTE    gub_pad            ; Private!
  452.  
  453.                 APTR    gub_GadToolsBase    ; The following library bases
  454.                 APTR    gub_GfxBase        ;  may be read and used by
  455.                 APTR    gub_IntBase        ;  your program
  456.                 APTR    gub_LocaleBase        ; LocaleBase may be NULL!
  457.                 APTR    gub_UtilityBase
  458.         APTR    gub_DiskFontBase    ; DiskFontBase may be NULL!
  459.  
  460.         LONG    gub_SegList        ; Private!
  461.     LABEL    GadUtilBase_SIZEOF
  462.  
  463.  
  464. GADUTILNAME:    MACRO
  465.         dc.b    "gadutil.library",0
  466.         ENDM
  467.  
  468. **------------------------------------------------------------------------**
  469. **                  BevelBox structure              **
  470. **------------------------------------------------------------------------**
  471.     STRUCTURE BBoxData,0
  472.         WORD    bbd_XPos        ; X position of box
  473.         WORD    bbd_YPos        ; Y position of box
  474.         WORD    bbd_Width        ; Width of box
  475.         WORD    bbd_Height        ; Height of box
  476.  
  477.         WORD    bbd_LeftEdge        ; Left edge of text
  478.         WORD    bbd_TopEdge        ; Top edge of text
  479.         WORD    bbd_TextWidth        ; Pixel width of text
  480.  
  481.         LONG    bbd_TextFont        ; Font to print text with
  482.         LONG    bbd_Text        ; Text to display
  483.         
  484.         BYTE    bbd_FrontPen        ; Text color
  485.         BYTE    bbd_Flags        ; Text placement flags
  486.         BYTE    bbd_Recessed        ; Recessed frame
  487.         BYTE    bbd_FrameType        ; Type of box frame
  488.         BYTE    bbd_ShadowPen        ; Shadow color
  489.         BYTE    bbd_Reserved1        ; No use in v36.53 - reserved!
  490.     LABEL bbd_SIZEOF
  491.  
  492. **------------------------------------------------------------------------**
  493. **              ProgressIndicator structure              **
  494. **------------------------------------------------------------------------**
  495.  
  496.     STRUCTURE ProgressGad,0
  497.         WORD    pg_XPos            ; X pos of box around gadget
  498.         WORD    pg_YPos            ; Y pos of box around gadget
  499.         WORD    pg_Width        ; Width of box around gadget
  500.         WORD    pg_Height        ; Height of box around gadget
  501.         LONG    pg_Current        ; Current value of indicator
  502.         LONG    pg_Total        ; Total value of indicator
  503.         BYTE    pg_FillColor        ; Color of upto current value
  504.         BYTE    pg_BackColor        ; Color from current to end
  505.         BYTE    pg_Flags        ; Flags
  506.         BYTE    pg_reserved1
  507.         WORD    pg_XFilledTo        ; Initialized to pg_XPos + 4
  508.  
  509.     LABEL pg_SIZEOF
  510.  
  511.     ENDC                            ; gadutil.i
  512.