home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 3 / AACD03.BIN / AACD / Programming / Triton / Developer / Include / libraries / triton.h
C/C++ Source or Header  |  1998-02-03  |  54KB  |  1,062 lines

  1. #ifndef LIBRARIES_TRITON_H
  2. #define LIBRARIES_TRITON_H
  3.  
  4. /*
  5. **    $VER: triton.h 6.11 (11.10.96)
  6. **    Triton Release 2.0
  7. **
  8. **    triton.library definitions
  9. */
  10.  
  11. #define    TRITONNAME              "triton.library"
  12. #define TRITONVERSION           TRITON20VERSION
  13. #define    TRITON10VERSION         1L
  14. #define    TRITON11VERSION         2L
  15. #define    TRITON12VERSION         3L
  16. #define    TRITON13VERSION         4L
  17. #define    TRITON14VERSION         5L
  18. #define    TRITON20VERSION         6L
  19.  
  20.  
  21. /***********************************************************************************************************/
  22. /************************************************************************************************ Includes */
  23. /***********************************************************************************************************/
  24.  
  25. #define INTUI_V36_NAMES_ONLY
  26.  
  27. #ifndef EXEC_TYPES_H
  28. #include <exec/types.h>
  29. #endif
  30.  
  31. #ifndef INTUITION_INTUITIONBASE_H
  32. #include <intuition/intuitionbase.h>
  33. #endif
  34.  
  35. #ifndef INTUITION_INTUITION_H
  36. #include <intuition/intuition.h>
  37. #endif
  38.  
  39. #ifndef INTUITION_GADGETCLASS_H
  40. #include <intuition/gadgetclass.h>
  41. #endif
  42.  
  43. #ifndef INTUITION_IMAGECLASS_H
  44. #include <intuition/imageclass.h>
  45. #endif
  46.  
  47. #ifndef INTUITION_CLASSUSR_H
  48. #include <intuition/classusr.h>
  49. #endif
  50.  
  51. #ifndef GRAPHICS_GFX_H
  52. #include <graphics/gfx.h>
  53. #endif
  54.  
  55. #ifndef GRAPHICS_GFXBASE_H
  56. #include <graphics/gfxbase.h>
  57. #endif
  58.  
  59. #ifndef GRAPHICS_GFXMACROS_H
  60. #include <graphics/gfxmacros.h>
  61. #endif
  62.  
  63. #ifndef LIBRARIES_GADTOOLS_H
  64. #include <libraries/gadtools.h>
  65. #endif
  66.  
  67. #ifndef LIBRARIES_DISKFONT_H
  68. #include <libraries/diskfont.h>
  69. #endif
  70.  
  71. #ifndef UTILITY_TAGITEM_H
  72. #include <utility/tagitem.h>
  73. #endif
  74.  
  75. #ifndef WORKBENCH_STARTUP_H
  76. #include <workbench/startup.h>
  77. #endif
  78.  
  79. #ifndef WORKBENCH_WORKBENCH_H
  80. #include <workbench/workbench.h>
  81. #endif
  82.  
  83.  
  84. /***********************************************************************************************************/
  85. /************************************************************************************** Some useful things */
  86. /***********************************************************************************************************/
  87.  
  88. #ifndef max
  89. #define max(a,b) ((a)>(b)?(a):(b))
  90. #endif
  91.  
  92. #ifndef min
  93. #define min(a,b) ((a)<=(b)?(a):(b))
  94. #endif
  95.  
  96.  
  97. /***********************************************************************************************************/
  98. /************************************************************************************************** Macros */
  99. /***********************************************************************************************************/
  100.  
  101. #ifndef TR_NOMACROS
  102.  
  103. /* Project */
  104. #define ProjectDefinition(name) struct TagItem name[]=
  105. #define EndProject              TAG_END
  106. #define WindowTitle(t)          TRWI_Title,(ULONG)(t)
  107. #define ScreenTitle(t)          TRWI_ScreenTitle,(ULONG)(t)
  108. #define WindowID(id)            TRWI_ID,(ULONG)(id)
  109. #define WindowFlags(f)          TRWI_Flags,(ULONG)(f)
  110. #define WindowPosition(pos)     TRWI_Position,(ULONG)(pos)
  111. #define WindowUnderscore(und)   TRWI_Underscore,(ULONG)(und)
  112. #define WindowDimensions(dim)   TRWI_Dimensions,(ULONG)(dim)
  113. #define WindowBackfillWin       TRWI_Backfill,TRBF_WINDOWBACK
  114. #define WindowBackfillReq       TRWI_Backfill,TRBF_REQUESTERBACK
  115. #define WindowBackfillNone      TRWI_Backfill,TRBF_NONE
  116. #define WindowBackfillS         TRWI_Backfill,TRBF_SHINE
  117. #define WindowBackfillSA        TRWI_Backfill,TRBF_SHINE_SHADOW
  118. #define WindowBackfillSF        TRWI_Backfill,TRBF_SHINE_FILL
  119. #define WindowBackfillSB        TRWI_Backfill,TRBF_SHINE_BACKGROUND
  120. #define WindowBackfillA         TRWI_Backfill,TRBF_SHADOW
  121. #define WindowBackfillAF        TRWI_Backfill,TRBF_SHADOW_FILL
  122. #define WindowBackfillAB        TRWI_Backfill,TRBF_SHADOW_BACKGROUND
  123. #define WindowBackfillF         TRWI_Backfill,TRBF_FILL
  124. #define WindowBackfillFB        TRWI_Backfill,TRBF_FILL_BACKGROUND
  125. #define CustomScreen(scr)       TRWI_CustomScreen,((ULONG)(scr))
  126. #define PubScreen(scr)          TRWI_PubScreen,((ULONG)(scr))
  127. #define PubScreenName(name)     TRWI_PubScreenName,((ULONG)(name))
  128. #define QuickHelpOn(on)         TRWI_QuickHelp,((ULONG)(on))
  129.  
  130. /* Menus */
  131. #define BeginMenu(t)            TRMN_Title,(ULONG)(t)
  132. #define MenuFlags(f)            TRMN_Flags,(f)
  133. #define MenuItem(t,id)          TRMN_Item,(ULONG)(t),TRAT_ID,(id)
  134. #define MenuItemC(t,id)         TRMN_Item,(ULONG)(t),TRMN_Flags,TRMF_CHECKIT,TRAT_ID,(id)
  135. #define MenuItemCC(t,id)        TRMN_Item,(ULONG)(t),TRMN_Flags,TRMF_CHECKED,TRAT_ID,(id)
  136. #define MenuItemCV(t,val,id)    TRMN_Item,(ULONG)(t),TRMN_Flags,(val)?TRMF_CHECKED:TRMF_CHECKIT,TRAT_ID,(id)
  137. #define BeginSub(t)             TRMN_Item,(ULONG)(t)
  138. #define MenuItemD(t,id)         TRMN_Item,(ULONG)(t),MenuFlags(TRMF_DISABLED),TRAT_ID,id
  139. #define SubItem(t,id)           TRMN_Sub,(ULONG)(t),TRAT_ID,id
  140. #define SubItemC(t,id)          TRMN_Sub,(ULONG)(t),TRMN_Flags,TRMF_CHECKIT,TRAT_ID,(id)
  141. #define SubItemCC(t,id)         TRMN_Sub,(ULONG)(t),TRMN_Flags,TRMF_CHECKED,TRAT_ID,(id)
  142. #define SubItemCV(t,val,id)     TRMN_Sub,(ULONG)(t),TRMN_Flags,(val)?TRMF_CHECKED:TRMF_CHECKIT,TRAT_ID,(id)
  143. #define SubItemD(t,id)          TRMN_Sub,(ULONG)(t),MenuFlags(TRMF_DISABLED),TRAT_ID,id
  144. #define ItemBarlabel            TRMN_Item,TRMN_BARLABEL
  145. #define SubBarlabel             TRMN_Sub,TRMN_BARLABEL
  146.  
  147. /* Groups */
  148. #define HorizGroup              TRGR_Horiz,0L
  149. #define HorizGroupE             TRGR_Horiz,TRGR_EQUALSHARE
  150. #define HorizGroupS             TRGR_Horiz,TRGR_PROPSPACES
  151. #define HorizGroupA             TRGR_Horiz,TRGR_ALIGN
  152. #define HorizGroupEA            TRGR_Horiz,TRGR_EQUALSHARE|TRGR_ALIGN
  153. #define HorizGroupSA            TRGR_Horiz,TRGR_PROPSPACES|TRGR_ALIGN
  154. #define HorizGroupC             TRGR_Horiz,TRGR_CENTER
  155. #define HorizGroupEC            TRGR_Horiz,TRGR_EQUALSHARE|TRGR_CENTER
  156. #define HorizGroupSC            TRGR_Horiz,TRGR_PROPSPACES|TRGR_CENTER
  157. #define HorizGroupAC            TRGR_Horiz,TRGR_ALIGN|TRGR_CENTER
  158. #define HorizGroupEAC           TRGR_Horiz,TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER
  159. #define HorizGroupSAC           TRGR_Horiz,TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER
  160. #define VertGroup               TRGR_Vert,0L
  161. #define VertGroupE              TRGR_Vert,TRGR_EQUALSHARE
  162. #define VertGroupS              TRGR_Vert,TRGR_PROPSPACES
  163. #define VertGroupA              TRGR_Vert,TRGR_ALIGN
  164. #define VertGroupEA             TRGR_Vert,TRGR_EQUALSHARE|TRGR_ALIGN
  165. #define VertGroupSA             TRGR_Vert,TRGR_PROPSPACES|TRGR_ALIGN
  166. #define VertGroupC              TRGR_Vert,TRGR_CENTER
  167. #define VertGroupEC             TRGR_Vert,TRGR_EQUALSHARE|TRGR_CENTER
  168. #define VertGroupSC             TRGR_Vert,TRGR_PROPSPACES|TRGR_CENTER
  169. #define VertGroupAC             TRGR_Vert,TRGR_ALIGN|TRGR_CENTER
  170. #define VertGroupEAC            TRGR_Vert,TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER
  171. #define VertGroupSAC            TRGR_Vert,TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER
  172. #define EndGroup                TRGR_End,0L
  173. #define ColumnArray             TRGR_Horiz,TRGR_ARRAY|TRGR_ALIGN|TRGR_CENTER
  174. #define LineArray               TRGR_Vert,TRGR_ARRAY|TRGR_ALIGN|TRGR_CENTER
  175. #define BeginColumn             TRGR_Vert,TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER
  176. #define BeginLine               TRGR_Horiz,TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER
  177. #define BeginColumnI            TRGR_Vert,TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER|TRGR_INDEP
  178. #define BeginLineI              TRGR_Horiz,TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER|TRGR_INDEP
  179. #define BeginColumnE            TRGR_Vert,TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER
  180. #define BeginLineE              TRGR_Horiz,TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER
  181. #define EndColumn               EndGroup
  182. #define EndLine                 EndGroup
  183. #define EndArray                EndGroup
  184.  
  185. /* DisplayObject */
  186. #define QuickHelp(str)          TRDO_QuickHelpString,((ULONG)(str))
  187.  
  188. /* Space */
  189. #define SpaceB                  TROB_Space,TRST_BIG
  190. #define Space                   TROB_Space,TRST_NORMAL
  191. #define SpaceS                  TROB_Space,TRST_SMALL
  192. #define SpaceN                  TROB_Space,TRST_NONE
  193.  
  194. /* Text */
  195. #define TextN(text)             TROB_Text,0L,TRAT_Text,(ULONG)text
  196. #define TextH(text)             TROB_Text,0L,TRAT_Text,(ULONG)text,TRAT_Flags,TRTX_HIGHLIGHT
  197. #define Text3(text)             TROB_Text,0L,TRAT_Text,(ULONG)text,TRAT_Flags,TRTX_3D
  198. #define TextB(text)             TROB_Text,0L,TRAT_Text,(ULONG)text,TRAT_Flags,TRTX_BOLD
  199. #define TextT(text)             TROB_Text,0L,TRAT_Text,(ULONG)text,TRAT_Flags,TRTX_TITLE
  200. #define TextID(text,id)         TROB_Text,0L,TRAT_Text,(ULONG)text,TRAT_ID,id
  201. #define TextNR(t)               TextN(t),TRAT_Flags,TROF_RIGHTALIGN
  202. #define ClippedText(t)          TextN(t),TRAT_Flags,TRTX_CLIPPED|TRTX_NOUNDERSCORE
  203. #define ClippedTextID(t,id)     TextN(t),TRAT_Flags,TRTX_CLIPPED|TRTX_NOUNDERSCORE,TRAT_ID,id
  204. #define CenteredText(text)      HorizGroupSC,Space,TextN(text),Space,EndGroup
  205. #define CenteredTextH(text)     HorizGroupSC,Space,TextH(text),Space,EndGroup
  206. #define CenteredText3(text)     HorizGroupSC,Space,Text3(text),Space,EndGroup
  207. #define CenteredTextB(text)     HorizGroupSC,Space,TextB(text),Space,EndGroup
  208. #define CenteredTextID(text,id) HorizGroupSC,Space,TextID(text,id),Space,EndGroup
  209. #define CenteredText_BS(text)   HorizGroupSC,SpaceB,TextN(text),SpaceB,EndGroup
  210. #define TextBox(text,id,mwid)   _TextBox, ObjectBackfillB, VertGroup, SpaceS, HorizGroupSC, Space, \
  211.                                 TextN(text),TRAT_ID,id,TRAT_MinWidth,mwid, Space, EndGroup, SpaceS, \
  212.                                 EndGroup
  213. #define ClippedTextBox(text,id) _TextBox, ObjectBackfillB, VertGroupAC, SpaceS, HorizGroupAC, Space, \
  214.                                 ClippedTextID(text,id), Space, EndGroup, SpaceS, EndGroup
  215. #define ClippedTextBoxMW(text,id,mwid) _TextBox, ObjectBackfillB, VertGroupAC, SpaceS, HorizGroupAC, Space, \
  216.                                 ClippedTextID(text,id),TRAT_MinWidth,mwid, Space, EndGroup, SpaceS, EndGroup
  217. #define TextRIGHT(t,id)         HorizGroupS, Space, TextN(t), ID(id), EndGroup
  218. #define Integer(i)              TROB_Text,0L,TRAT_Value,(ULONG)(i)
  219. #define IntegerH(i)             TROB_Text,0L,TRAT_Value,(ULONG)(i),TRAT_Flags,TRTX_HIGHLIGHT
  220. #define Integer3(i)             TROB_Text,0L,TRAT_Value,(ULONG)(i),TRAT_Flags,TRTX_3D
  221. #define IntegerB(i)             TROB_Text,0L,TRAT_Value,(ULONG)(i),TRAT_Flags,TRTX_BOLD
  222. #define CenteredInteger(i)      HorizGroupSC,Space,Integer(i),Space,EndGroup
  223. #define CenteredIntegerH(i)     HorizGroupSC,Space,IntegerH(i),Space,EndGroup
  224. #define CenteredInteger3(i)     HorizGroupSC,Space,Integer3(i),Space,EndGroup
  225. #define CenteredIntegerB(i)     HorizGroupSC,Space,IntegerB(i),Space,EndGroup
  226. #define IntegerBox(def,id,mwid) GroupBox, ObjectBackfillB, VertGroup, SpaceS, HorizGroupSC, Space, \
  227.                                 Integer(def),TRAT_ID,id,TRAT_MinWidth,mwid, Space, EndGroup, SpaceS, EndGroup
  228.  
  229. /* Button */
  230. #define Button(text,id)         TROB_Button,0L,TRAT_Text,(ULONG)(text),TRAT_ID,(id)
  231. #define ButtonR(text,id)        TROB_Button,0L,TRAT_Text,(ULONG)(text),TRAT_ID,(id),TRAT_Flags,TRBU_RETURNOK
  232. #define ButtonE(text,id)        TROB_Button,0L,TRAT_Text,(ULONG)(text),TRAT_ID,(id),TRAT_Flags,TRBU_ESCOK
  233. #define ButtonRE(text,id)       TROB_Button,0L,TRAT_Text,(ULONG)(text),TRAT_ID,(id), \
  234.                                 TRAT_Flags,TRBU_RETURNOK|TRBU_ESCOK
  235. #define CenteredButton(t,i)     HorizGroupSC,Space,TROB_Button,0L,TRAT_Text,(ULONG)(t),TRAT_ID,(i), \
  236.                                 Space,EndGroup
  237. #define CenteredButtonR(t,i)    HorizGroupSC,Space,TROB_Button,0L,TRAT_Flags,TRBU_RETURNOK, \
  238.                                 TRAT_Text,(ULONG)(t),TRAT_ID,(i),Space,EndGroup
  239. #define CenteredButtonE(t,i)    HorizGroupSC,Space,TROB_Button,0L,TRAT_Flags,TRBU_ESCOK, \
  240.                                 TRAT_Text,(ULONG)(t),TRAT_ID,(i),Space,EndGroup
  241. #define CenteredButtonRE(t,i)   HorizGroupSC,Space,TROB_Button,0L,TRAT_Flags,TRBU_RETURNOK|TRBU_ESCOK, \
  242.                                 TRAT_Text,(ULONG)(t),TRAT_ID,(i),Space,EndGroup
  243. #define EmptyButton(id)         TROB_Button,0L,TRAT_Text,(ULONG)"",TRAT_ID,(id)
  244. #define GetFileButton(id)       TROB_Button,TRBT_GETFILE,TRAT_Text,(ULONG)"",TRAT_ID,(id), \
  245.                                 TRAT_Flags,TRBU_YRESIZE
  246. #define GetDrawerButton(id)     TROB_Button,TRBT_GETDRAWER,TRAT_Text,(ULONG)"",TRAT_ID,(id), \
  247.                                 TRAT_Flags,TRBU_YRESIZE
  248. #define GetEntryButton(id)      TROB_Button,TRBT_GETENTRY,TRAT_Text,(ULONG)"",TRAT_ID,(id), \
  249.                                 TRAT_Flags,TRBU_YRESIZE
  250. #define GetFileButtonS(s,id)    TROB_Button,TRBT_GETFILE,TRAT_Text,(ULONG)(s),TRAT_ID,(id), \
  251.                                 TRAT_Flags,TRBU_YRESIZE
  252. #define GetDrawerButtonS(s,id)  TROB_Button,TRBT_GETDRAWER,TRAT_Text,(ULONG)(s),TRAT_ID,(id), \
  253.                                 TRAT_Flags,TRBU_YRESIZE
  254. #define GetEntryButtonS(s,id)   TROB_Button,TRBT_GETENTRY,TRAT_Text,(ULONG)(s),TRAT_ID,(id), \
  255.                                 TRAT_Flags,TRBU_YRESIZE
  256.  
  257. /* Line */
  258. #define Line(flags)             TROB_Line,flags
  259. #define HorizSeparator          HorizGroupEC|TRGR_INDEP,Space,Line(TROF_HORIZ),Space,EndGroup
  260. #define VertSeparator           VertGroupEC|TRGR_INDEP,Space,Line(TROF_VERT),Space,EndGroup
  261. #define NamedSeparator(text)    HorizGroupEC|TRGR_INDEP,Space,Line(TROF_HORIZ),Space,TextT(text),Space, \
  262.                                 Line(TROF_HORIZ),Space,EndGroup
  263. #define NamedSeparatorI(te,id)  HorizGroupEC|TRGR_INDEP,Space,Line(TROF_HORIZ),Space,TextT(te),TRAT_ID,id,Space, \
  264.                                 Line(TROF_HORIZ),Space,EndGroup
  265. #define NamedSeparatorN(text)   HorizGroupEC|TRGR_INDEP,Line(TROF_HORIZ),Space,TextT(text),Space, \
  266.                                 Line(TROF_HORIZ),EndGroup
  267. #define NamedSeparatorIN(te,id) HorizGroupEC|TRGR_INDEP,Line(TROF_HORIZ),Space,TextT(te),TRAT_ID,id,Space, \
  268.                                 Line(TROF_HORIZ),EndGroup
  269.  
  270. /* FrameBox */
  271. #define GroupBox                TROB_FrameBox,TRFB_GROUPING
  272. #define NamedFrameBox(t)        TROB_FrameBox,TRFB_FRAMING,TRAT_Text,(ULONG)(t)
  273. #define _TextBox                TROB_FrameBox,TRFB_TEXT
  274.  
  275. /* DropBox */
  276. #define DropBox(id)             TROB_DropBox,0L,TRAT_ID,(id)
  277.  
  278. /* CheckBox gadget */
  279. #define CheckBox(id)            TROB_CheckBox,0L,TRAT_ID,(id)
  280. #define CheckBoxV(value,id)     TROB_CheckBox,0L,TRAT_ID,(id),TRAT_Value,(value)
  281. #define CheckBoxC(id)           TROB_CheckBox,0L,TRAT_ID,(id),TRAT_Value,TRUE
  282. #define CheckBoxLEFT(id)        HorizGroupS, CheckBox(id), Space, EndGroup
  283. #define CheckBoxCLEFT(id)       HorizGroupS, CheckBoxC(id), Space, EndGroup
  284.  
  285. /* String gadget */
  286. #define StringGadget(def,id)    TROB_String,(ULONG)def,TRAT_ID,(id)
  287. #define StringGadgetNR(def, id) TROB_String,(ULONG)def,TRAT_ID,(id),TRAT_Flags,TRST_NORETURNBROADCAST
  288. #define PasswordGadget(def,id)  TROB_String,(ULONG)def,TRAT_ID,(id),TRAT_Flags,TRST_INVISIBLE
  289.  
  290. /* Cycle gadget */
  291. #define CycleGadget(ent,val,id) TROB_Cycle,(ULONG)(ent),TRAT_ID,(id),TRAT_Value,(val)
  292. #define MXGadget(ent,val,id)    TROB_Cycle,(ULONG)(ent),TRAT_ID,(id),TRAT_Value,(val),TRAT_Flags,TRCY_MX
  293. #define MXGadgetR(ent,val,id)   TROB_Cycle,(ULONG)(ent),TRAT_ID,(id),TRAT_Value,(val), \
  294.                                 TRAT_Flags,TRCY_MX|TRCY_RIGHTLABELS
  295.  
  296. /* Slider gadget */
  297. #define SliderGadget(mini,maxi,val,id) TROB_Slider,TROF_HORIZ,TRSL_Min,(mini),TRSL_Max,(maxi), \
  298.                                 TRAT_ID,(id),TRAT_Value,(val)
  299. #define SliderGadgetV(mini,maxi,val,id) TROB_Slider,TROF_VERT,TRSL_Min,(mini),TRSL_Max,(maxi), \
  300.                                 TRAT_ID,(id),TRAT_Value,(val)
  301.  
  302. /* Scroller gadget */
  303. #define ScrollerGadget(total,visible,val,id) TROB_Scroller,TROF_HORIZ,TRSC_Total,(total), \
  304.                                 TRSC_Visible,(visible),TRAT_ID,(id),TRAT_Value,(val)
  305. #define ScrollerGadgetV(total,visible,val,id) TROB_Scroller,TROF_VERT,TRSC_Total,(total), \
  306.                                 TRSC_Visible,(visible),TRAT_ID,(id),TRAT_Value,(val)
  307.  
  308. /* Palette gadget */
  309. #define PaletteGadget(val,id)   TROB_Palette,0L,TRAT_ID,(id),TRAT_Value,(val)
  310.  
  311. /* Listview gadget */
  312. #define ListRO(ent,id,top)      TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_READONLY, \
  313.                                 TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  314. #define ListSel(ent,id,top)     TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_SELECT, \
  315.                                 TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  316. #define ListSS(e,id,top,v)      TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_NOGAP|TRLV_SHOWSELECTED, \
  317.                                 TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
  318. #define ListROC(ent,id,top)     TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_READONLY| \
  319.                                 TRLV_NOCURSORKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  320. #define ListSelC(ent,id,top)    TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_SELECT| \
  321.                                 TRLV_NOCURSORKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  322. #define ListSSC(e,id,top,v)     TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_NOGAP|TRLV_SHOWSELECTED| \
  323.                                 TRLV_NOCURSORKEYS,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
  324. #define ListRON(ent,id,top)     TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_READONLY| \
  325.                                 TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  326. #define ListSelN(ent,id,top)    TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_SELECT| \
  327.                                 TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  328. #define ListSSN(e,id,top,v)     TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_NOGAP|TRLV_SHOWSELECTED| \
  329.                                 TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
  330. #define ListROCN(ent,id,top)    TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_READONLY| \
  331.                                 TRLV_NOCURSORKEYS|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  332. #define ListSelCN(ent,id,top)   TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_SELECT| \
  333.                                 TRLV_NOCURSORKEYS|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  334. #define ListSSCN(e,id,top,v)    TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_NOGAP|TRLV_SHOWSELECTED| \
  335.                                 TRLV_NOCURSORKEYS|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
  336. #define FWListRO(ent,id,top)    TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT| \
  337.                                 TRLV_READONLY,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  338. #define FWListSel(ent,id,top)   TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT|TRLV_SELECT, \
  339.                                 TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  340. #define FWListSS(e,id,top,v)    TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT| \
  341.                                 TRLV_SHOWSELECTED,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
  342. #define FWListROC(ent,id,top)   TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT|TRLV_READONLY| \
  343.                                 TRLV_NOCURSORKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  344. #define FWListSelC(ent,id,top)  TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT|TRLV_SELECT| \
  345.                                 TRLV_NOCURSORKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  346. #define FWListSSC(e,id,top,v)   TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT| \
  347.                                 TRLV_SHOWSELECTED|TRLV_NOCURSORKEYS,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
  348. #define FWListRON(ent,id,top)   TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT|TRLV_READONLY| \
  349.                                 TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  350. #define FWListSelN(ent,id,top)  TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT|TRLV_SELECT| \
  351.                                 TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  352. #define FWListSSN(e,id,top,v)   TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT| \
  353.                                 TRLV_SHOWSELECTED|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
  354. #define FWListROCN(ent,id,top)  TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT|TRLV_READONLY| \
  355.                                 TRLV_NOCURSORKEYS|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  356. #define FWListSelCN(ent,id,top) TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT|TRLV_SELECT| \
  357.                                 TRLV_NOCURSORKEYS|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
  358. #define FWListSSCN(e,id,top,v)  TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_NOGAP|TRLV_FWFONT| \
  359.                                 TRLV_SHOWSELECTED|TRLV_NOCURSORKEYS|TRLV_NONUMPADKEYS,TRAT_ID,id, \
  360.                                 TRAT_Value,v,TRLV_Top,top
  361.  
  362. /* Progress indicator */
  363. #define Progress(maxi,val,id)   TROB_Progress,(maxi),TRAT_ID,(id),TRAT_Value,(val)
  364.  
  365. /* Image */
  366. #define BoopsiImage(img)        TROB_Image,(ULONG)(img),TRAT_Flags,TRIM_BOOPSI
  367. #define BoopsiImageD(img,mw,mh) TROB_Image,(ULONG)(img),TRAT_MinWidth,(mw),TRAT_MinHeight,(mh), \
  368.                                 TRAT_Flags,TRIM_BOOPSI
  369.  
  370. /* Attributes */
  371. #define ID(id)                  TRAT_ID,id
  372. #define Disabled                TRAT_Disabled,TRUE
  373. #define ObjectBackfillWin       TRAT_Backfill,TRBF_WINDOWBACK
  374. #define ObjectBackfillReq       TRAT_Backfill,TRBF_REQUESTERBACK
  375. #define ObjectBackfillB         TRAT_Backfill,TRBF_NONE
  376. #define ObjectBackfillS         TRAT_Backfill,TRBF_SHINE
  377. #define ObjectBackfillSA        TRAT_Backfill,TRBF_SHINE_SHADOW
  378. #define ObjectBackfillSF        TRAT_Backfill,TRBF_SHINE_FILL
  379. #define ObjectBackfillSB        TRAT_Backfill,TRBF_SHINE_BACKGROUND
  380. #define ObjectBackfillA         TRAT_Backfill,TRBF_SHADOW
  381. #define ObjectBackfillAF        TRAT_Backfill,TRBF_SHADOW_FILL
  382. #define ObjectBackfillAB        TRAT_Backfill,TRBF_SHADOW_BACKGROUND
  383. #define ObjectBackfillF         TRAT_Backfill,TRBF_FILL
  384. #define ObjectBackfillFB        TRAT_Backfill,TRBF_FILL_BACKGROUND
  385.  
  386. /* Requester support */
  387. #define BeginRequester(t,p)     WindowTitle(t),WindowPosition(p),WindowBackfillReq, \
  388.                                 WindowFlags(TRWF_NOZIPGADGET|TRWF_NOSIZEGADGET|TRWF_NOCLOSEGADGET| \
  389.                                 TRWF_NODELZIP|TRWF_NOESCCLOSE),\
  390.                                 VertGroupA,Space,HorizGroupA,Space,GroupBox,ObjectBackfillB
  391. #define BeginRequesterGads      Space,EndGroup,Space
  392. #define EndRequester            Space,EndGroup,EndProject
  393.  
  394. /* Class construction */
  395. #ifndef TR_THIS_IS_TRITON
  396. #define TR_METHOD(class,method,dstr) ULONG __saveds __asm TRDP_ ## class ## _ ## method \
  397.                 (register __a0 struct TROD_ ## class *object,\
  398.                  register __d0 ULONG messageid,\
  399.                  register __a2 struct TROM_ ## dstr *data,\
  400.                  register __a1 struct TR_Class *metaclass)
  401.  
  402. #define TR_SIMPLEMETHOD(class,method) ULONG __saveds __asm TRDP_ ## class ## _ ## method \
  403.                                 (register __a0 struct TROD_ ## class *object,\
  404.                  register __d0 ULONG messageid,\
  405.                  register __a2 void *data,\
  406.                  register __a1 struct TR_Class *metaclass)
  407. #endif /* TR_THIS_IS_TRITON */
  408.  
  409. #define TR_CONSTRUCTOR(class) struct TROD_ ## class * __saveds __asm TRDP_ ## class ## _NEW \
  410.                 (register __a0 struct TROD_ ## class *object,\
  411.                  register __d0 ULONG messageid,\
  412.                  register __a2 struct TROM_NewData *data,\
  413.                  register __a1 struct TR_Class *metaclass)
  414.  
  415. #define TR_SUPERMETHOD        TR_DoMethodClass((struct TROD_Object *)object,messageid,\
  416.                            (APTR)data,metaclass->trc_SuperClass)
  417. #define Self (*object)
  418.  
  419. #endif /* TR_NOMACROS */
  420.  
  421.  
  422. /***********************************************************************************************************/
  423. /***************************************************************************************** Support library */
  424. /***********************************************************************************************************/
  425.  
  426. #ifndef TR_NOSUPPORT
  427.  
  428. extern struct TR_App *__Triton_Support_App;
  429. extern struct IClass *TRIM_trLogo;
  430.  
  431. #ifndef TR_NOMACROS
  432. #ifndef __OBJAM__
  433. #define Application __Triton_Support_App
  434. #endif /* __OBJAM__ */
  435. #endif /* TR_NOMACROS */
  436.  
  437. #endif /* TR_NOSUPPORT */
  438.  
  439.  
  440. /***********************************************************************************************************/
  441. /***************************************************************************************** The method type */
  442. /***********************************************************************************************************/
  443.  
  444. typedef ULONG __asm (*TR_Method)(register __a0 struct TROD_Object *, register __d0 ULONG,
  445.                  register __a2 APTR, register __a1 struct TR_Class *);
  446.  
  447.  
  448. /***********************************************************************************************************/
  449. /******************************************************* Public parts of the application message structure */
  450. /***********************************************************************************************************/
  451.  
  452. #ifndef TR_THIS_IS_TRITON
  453.  
  454. struct TR_Message
  455. {
  456.   struct TR_Project *           trm_Project;    /* The project which triggered the message */
  457.   ULONG                         trm_ID;         /* The object's ID (where appropriate) */
  458.   ULONG                         trm_Class;      /* The Triton message class */
  459.   ULONG                         trm_Data;       /* The class-specific data */
  460.   ULONG                         trm_Code;       /* Currently only used by TRMS_KEYPRESSED */
  461.   ULONG                         trm_Qualifier;  /* IEQUALIFIERs */
  462.   ULONG                         trm_Seconds;    /* \ Copy of system clock time (Only where */
  463.   ULONG                         trm_Micros;     /* / available! If not set, trm_Seconds is 0) */
  464.   struct TR_App *               trm_App;        /* The project's application */
  465. };
  466.  
  467. #endif
  468.  
  469. enum TR_MessageClasses
  470. {
  471.   TRMS_CLOSEWINDOW = 1, /* The window should be closed */
  472.   TRMS_ERROR,           /* An error occured. Error code in trm_Data */
  473.   TRMS_NEWVALUE,        /* Object's value has changed. New value in trm_Data */
  474.   TRMS_ACTION,          /* Object has triggered an action */
  475.   TRMS_ICONDROPPED,     /* Icon dropped over window (ID=0) or object. AppMessage* in trm_Data */
  476.   TRMS_KEYPRESSED,      /* Key pressed. trm_Data contains ASCII code, trm_Code raw code and
  477.                            trm_Qualifier contains qualifiers */
  478.   TRMS_HELP,            /* The user requested help for the specified ID */
  479.   TRMS_DISKINSERTED,    /* A disk has been inserted into a drive */
  480.   TRMS_DISKREMOVED      /* A disk has been removed from a drive */
  481. };
  482.  
  483.  
  484. /***********************************************************************************************************/
  485. /************************************************************************************** Triton error codes */
  486. /***********************************************************************************************************/
  487.  
  488. enum TR_ErrorCodes
  489. {
  490.   TRER_OK = 0,                /* No error */
  491.   TRER_ALLOCMEM,              /* Not enough memory */
  492.   TRER_OPENWINDOW,            /* Can't open window */
  493.   TRER_WINDOWTOOBIG,          /* Window would be too big for screen */
  494.   TRER_DRAWINFO,              /* Can't get screen's DrawInfo */
  495.   TRER_OPENFONT,              /* Can't open font */
  496.   TRER_CREATEMSGPORT,         /* Can't create message port */
  497.   TRER_INSTALLOBJECT,         /* Can't create an object */
  498.   TRER_CREATECLASS,           /* Can't create a class */
  499.   TRER_NOLOCKPUBSCREEN,       /* Can't lock public screen */
  500.   TRER_CREATEMENUS = 12,      /* Error while creating the menus */
  501.   TRER_GT_CREATECONTEXT = 14, /* Can't create gadget context */
  502.   TRER_MAXERRORNUM            /* PRIVATE! */
  503. };
  504.  
  505.  
  506. /***********************************************************************************************************/
  507. /***************************************************************************************** Object messages */
  508. /***********************************************************************************************************/
  509.  
  510. #define TROM_NEW                1L         /* Create object */
  511. #define TROM_INSTALL            2L         /* Tell object to install itself in the window */
  512. #define TROM_REFRESH            4L         /* Refresh object */
  513. #define TROM_REMOVE             6L         /* Remove object from window */
  514. #define TROM_DISPOSE            7L         /* Dispose an object's private data */
  515. #define TROM_GETATTRIBUTE       8L         /* Get an object's attribute */
  516. #define TROM_SETATTRIBUTE       9L         /* Set an object's attribute */
  517. #define TROM_EVENT              10L        /* IDCMP event */
  518. #define TROM_DISABLED           11L        /* Disabled object */
  519. #define TROM_ENABLED            12L        /* Enabled object */
  520. #define TROM_KEYDOWN            13L        /* Key pressed */
  521. #define TROM_REPEATEDKEYDOWN    14L        /* Key pressed repeatedly */
  522. #define TROM_KEYUP              15L        /* Key released */
  523. #define TROM_KEYCANCELLED       16L        /* Key cancelled */
  524. #define TROM_CREATECLASS        17L        /* Create class-specific data */
  525. #define TROM_DISPOSECLASS       18L        /* Dispose class-specific data */
  526. #define TROM_HIT                22L        /* Find an object for a coordinate pair */
  527. #define TROM_ACTIVATE           23L        /* Activate an object */
  528.  
  529. /* Data for TROM_NEW */
  530. struct TROM_NewData
  531. {
  532.   /* The following elements are set up for the object (read only) */
  533.   struct TR_Project *           project;
  534.   struct TagItem *              firstitem;
  535.   ULONG                         objecttype;
  536.   ULONG                         grouptype;
  537.   ULONG                         itemdata;
  538.   ULONG                         backfilltype;
  539.   /* The following elements have to be set by the object and read by class_DisplayObject */
  540.   BOOL                          parseargs;
  541. };
  542.  
  543. /* Data for TROM_INSTALL */
  544. struct TROM_InstallData
  545. {
  546.   ULONG                         left;
  547.   ULONG                         top;
  548.   ULONG                         width;
  549.   ULONG                         height;
  550. };
  551.  
  552. /* Data for TROM_SETATTRIBUTE */
  553. struct TROM_SetAttributeData
  554. {
  555.   ULONG                         attribute;
  556.   ULONG                         value;
  557. };
  558.  
  559. /* Data for TROM_EVENT */
  560. struct TROM_EventData
  561. {
  562.   struct IntuiMessage *         imsg;
  563. };
  564. #define TROM_EVENT_SWALLOWED    1
  565. #define TROM_EVENT_CONTINUE     0
  566.  
  567. /* Data for TROM_HIT */
  568. struct TROM_HitData
  569. {
  570.   ULONG                         x;
  571.   ULONG                         y;
  572.   struct TROD_DisplayObject *   object;
  573. };
  574.  
  575.  
  576. /***********************************************************************************************************/
  577. /******************************************************************************* Tags for TR_OpenProject() */
  578. /***********************************************************************************************************/
  579.  
  580. /* Tag bases */
  581. #define TRTG_OAT              (TAG_USER+0x400)  /* Object attribute (0x1 to 0x3FF) */
  582. #define TRTG_CLS              (TAG_USER+0x100)  /* Class ID (0x1 to 0x2FF) */
  583. #define TRTG_OAT2             (TAG_USER+0x80)   /* PRIVATE! */
  584. #define TRTG_PAT              (TAG_USER)        /* Project attribute */
  585. #define TRTG_SER(ser)         ((ser)<<11)       /* Serial number for public, 1 for private classes */
  586. #define TRTG_PRVCLS(num)      (TRTG_SER(1)+TRTG_CLS+(num))
  587. #define TRTG_PRVOAT(num)      (TRTG_SER(1)+TRTG_OAT+(num))
  588.  
  589.  
  590. /* Window/Project */
  591. #define TRWI_Title              (TRTG_PAT+0x01) /* STRPTR: The window title */
  592. #define TRWI_Flags              (TRTG_PAT+0x02) /* See below for window flags */
  593. #define TRWI_Underscore         (TRTG_PAT+0x03) /* char *: The underscore for menu and gadget shortcuts */
  594. #define TRWI_Position           (TRTG_PAT+0x04) /* Window position, see below */
  595. #define TRWI_CustomScreen       (TRTG_PAT+0x05) /* struct Screen * */
  596. #define TRWI_PubScreen          (TRTG_PAT+0x06) /* struct Screen *, must have been locked! */
  597. #define TRWI_PubScreenName      (TRTG_PAT+0x07) /* STRPTR, Triton is doing the locking */
  598. #define TRWI_PropFontAttr       (TRTG_PAT+0x08) /* struct TextAttr *: The proportional font */
  599. #define TRWI_FixedWidthFontAttr (TRTG_PAT+0x09) /* struct TextAttr *: The fixed-width font */
  600. #define TRWI_Backfill           (TRTG_PAT+0x0A) /* The backfill type, see below */
  601. #define TRWI_ID                 (TRTG_PAT+0x0B) /* ULONG: The window ID */
  602. #define TRWI_Dimensions         (TRTG_PAT+0x0C) /* struct TR_Dimensions * */
  603. #define TRWI_ScreenTitle        (TRTG_PAT+0x0D) /* STRPTR: The screen title */
  604. #define TRWI_QuickHelp          (TRTG_PAT+0x0E) /* BOOL: Quick help active? */
  605.  
  606. /* Menus */
  607. #define TRMN_Title              (TRTG_PAT+0x65) /* STRPTR: Menu */
  608. #define TRMN_Item               (TRTG_PAT+0x66) /* STRPTR: Menu item */
  609. #define TRMN_Sub                (TRTG_PAT+0x67) /* STRPTR: Menu subitem */
  610. #define TRMN_Flags              (TRTG_PAT+0x68) /* See below for flags */
  611.  
  612. /* General object attributes */
  613. #define TRAT_ID               (TRTG_OAT2+0x16)  /* The object's/menu's ID */
  614. #define TRAT_Flags            (TRTG_OAT2+0x17)  /* The object's flags */
  615. #define TRAT_Value            (TRTG_OAT2+0x18)  /* The object's value */
  616. #define TRAT_Text             (TRTG_OAT2+0x19)  /* The object's text */
  617. #define TRAT_Disabled         (TRTG_OAT2+0x1A)  /* Disabled object? */
  618. #define TRAT_Backfill         (TRTG_OAT2+0x1B)  /* Backfill pattern */
  619. #define TRAT_MinWidth         (TRTG_OAT2+0x1C)  /* Minimum width */
  620. #define TRAT_MinHeight        (TRTG_OAT2+0x1D)  /* Minimum height */
  621.  
  622.  
  623. /***********************************************************************************************************/
  624. /******************************************************************************************** Window flags */
  625. /***********************************************************************************************************/
  626.  
  627. #define TRWF_BACKDROP           0x00000001L     /* Create a backdrop borderless window */
  628. #define TRWF_NODRAGBAR          0x00000002L     /* Don't use a dragbar */
  629. #define TRWF_NODEPTHGADGET      0x00000004L     /* Don't use a depth-gadget */
  630. #define TRWF_NOCLOSEGADGET      0x00000008L     /* Don't use a close-gadget */
  631. #define TRWF_NOACTIVATE         0x00000010L     /* Don't activate window */
  632. #define TRWF_NOESCCLOSE         0x00000020L     /* Don't send TRMS_CLOSEWINDOW when Esc is pressed */
  633. #define TRWF_NOPSCRFALLBACK     0x00000040L     /* Don't fall back onto default PubScreen */
  634. #define TRWF_NOZIPGADGET        0x00000080L     /* Don't use a zip-gadget */
  635. #define TRWF_ZIPCENTERTOP       0x00000100L     /* Center the zipped window on the title bar */
  636. #define TRWF_NOMINTEXTWIDTH     0x00000200L     /* Minimum window width not according to title text */
  637. #define TRWF_NOSIZEGADGET       0x00000400L     /* Don't use a sizing-gadget */
  638. #define TRWF_NOFONTFALLBACK     0x00000800L     /* Don't fall back to topaz.8 */
  639. #define TRWF_NODELZIP           0x00001000L     /* Don't zip the window when Del is pressed */
  640. #define TRWF_SIMPLEREFRESH      0x00002000L     /* *** OBSOLETE *** (V3+) */
  641. #define TRWF_ZIPTOCURRENTPOS    0x00004000L     /* Will zip the window at the current position (OS3.0+) */
  642. #define TRWF_APPWINDOW          0x00008000L     /* Create an AppWindow without using class_dropbox */
  643. #define TRWF_ACTIVATESTRGAD     0x00010000L     /* Activate first string gadget after opening the window */
  644. #define TRWF_HELP               0x00020000L     /* Pressing <Help> will create a TRMS_HELP message (V4) */
  645. #define TRWF_SYSTEMACTION       0x00040000L     /* System status messages will be sent (V4) */
  646.  
  647.  
  648. /***********************************************************************************************************/
  649. /********************************************************************************************** Menu flags */
  650. /***********************************************************************************************************/
  651.  
  652. #define TRMF_CHECKIT            0x00000001L     /* Leave space for a checkmark */
  653. #define TRMF_CHECKED            0x00000002L     /* Check the item (includes TRMF_CHECKIT) */
  654. #define TRMF_DISABLED           0x00000004L     /* Ghost the menu/item */
  655.  
  656.  
  657. /***********************************************************************************************************/
  658. /**************************************************************************************** Window positions */
  659. /***********************************************************************************************************/
  660.  
  661. enum TR_WindowPositions
  662. {
  663.   TRWP_DEFAULT = 0,         /* Let Triton choose a good position */
  664.   TRWP_BELOWTITLEBAR,       /* Left side of screen, below title bar */
  665.   TRWP_CENTERTOP = 1025,    /* Top of screen, centered on the title bar */
  666.   TRWP_TOPLEFTSCREEN,       /* Top left corner of screen */
  667.   TRWP_CENTERSCREEN,        /* Centered on the screen */
  668.   TRWP_CENTERDISPLAY,       /* Centered on the currently displayed clip */
  669.   TRWP_MOUSEPOINTER,        /* Under the mouse pointer */
  670.   TRWP_ABOVECOORDS =  2049, /* Above coordinates from the dimensions struct */
  671.   TRWP_BELOWCOORDS          /* Below coordinates from the dimensions struct */
  672. };
  673.  
  674.  
  675. /***********************************************************************************************************/
  676. /************************************************************************** Backfill types / System images */
  677. /***********************************************************************************************************/
  678.  
  679. enum TR_Images
  680. {
  681.   /* Abstract patterns */
  682.   TRBF_WINDOWBACK = 0,            /* Window backfill */
  683.   TRBF_REQUESTERBACK,             /* Requester backfill */
  684.   /* Basic paterns */
  685.   TRBF_NONE,                      /* No backfill (= Fill with BACKGROUNDPEN) */
  686.   TRBF_SHINE,                     /* Fill with SHINEPEN */
  687.   TRBF_SHINE_SHADOW,              /* Fill with SHINEPEN + SHADOWPEN */
  688.   TRBF_SHINE_FILL,                /* Fill with SHINEPEN + FILLPEN */
  689.   TRBF_SHINE_BACKGROUND,          /* Fill with SHINEPEN + BACKGROUNDPEN */
  690.   TRBF_SHADOW,                    /* Fill with SHADOWPEN */
  691.   TRBF_SHADOW_FILL,               /* Fill with SHADOWPEN + FILLPEN */
  692.   TRBF_SHADOW_BACKGROUND,         /* Fill with SHADOWPEN + BACKGROUNDPEN */
  693.   TRBF_FILL,                      /* Fill with FILLPEN */
  694.   TRBF_FILL_BACKGROUND,           /* Fill with FILLPEN + BACKGROUNDPEN */
  695.   /* System images */
  696.   TRSI_USBUTTONBACK = 0x00010002, /* Unselected button backfill */
  697.   TRSI_SBUTTONBACK                /* Selected button backfill */
  698. };
  699.  
  700.  
  701. /***********************************************************************************************************/
  702. /********************************************************************************************* Frame types */
  703. /***********************************************************************************************************/
  704.  
  705. enum TR_FrameTypes
  706. {
  707.   /* Copies of the GadTools BBFT_#? types */
  708.   TRFT_BUTTON = 1,
  709.   TRFT_RIDGE,
  710.   TRFT_ICONDROPBOX,
  711.   /* Triton's low-level frame types */
  712.   TRFT_XENBUTTON1 = 33,
  713.   TRFT_XENBUTTON2,
  714.   TRFT_NEXTBUTTON,
  715.   /* Triton's abstract frame types */
  716.   TRFT_ABSTRACT_BUTTON = 65,
  717.   TRFT_ABSTRACT_ICONDROPBOX,
  718.   TRFT_ABSTRACT_FRAMEBOX,
  719.   TRFT_ABSTRACT_PROGRESS,
  720.   TRFT_ABSTRACT_GROUPBOX
  721. };
  722.  
  723.  
  724. /***********************************************************************************************************/
  725. /*********************************************************************************************** Pen types */
  726. /***********************************************************************************************************/
  727.  
  728. enum TR_PenTypes
  729. {
  730.   TRPT_SYSTEMPEN = 0,
  731.   TRPT_GRAPHICSPEN = 1,
  732.   TRPT_TRITONPEN = 128
  733. };
  734.  
  735. enum TR_TritonPenTypes /* TRPT_TRITONPEN */
  736. {
  737.   TRTP_NORMUSCORE         = 0,
  738.   TRTP_HIGHUSCORE         = 1,
  739.   TRTP_HALFSHINE          = 2,
  740.   TRTP_HALFSHADOW         = 3,
  741.   TRTP_USSTRINGGADBACK    = 4,
  742.   TRTP_SSTRINGGADBACK     = 5,
  743.   TRTP_USSTRINGGADFRONT   = 6,
  744.   TRTP_SSTRINGGADFRONT    = 7
  745. };
  746.  
  747.  
  748. /***********************************************************************************************************/
  749. /************************************************************************************ Various object flags */
  750. /***********************************************************************************************************/
  751.  
  752. /* General flags */
  753. #define TROF_RAISED             0x00000001L     /* Raised object                                 */
  754. #define TROF_HORIZ              0x00000002L     /* Horizontal object \ Set automatically         */
  755. #define TROF_VERT               0x00000004L     /* Vertical object   / in groups                 */
  756. #define TROF_RIGHTALIGN         0x00000008L     /* Align object to the right border if available */
  757. #define TROF_GENERAL_MASK       0x000000FFL     /* PRIVATE! */
  758.  
  759. /* Text flags for different kinds of text-related objects */
  760. #define TRTX_NOUNDERSCORE       0x00000100L     /* Don't interpret underscores */
  761. #define TRTX_HIGHLIGHT          0x00000200L     /* Highlight text */
  762. #define TRTX_3D                 0x00000400L     /* 3D (shadowed) look */
  763. #define TRTX_BOLD               0x00000800L     /* Softstyle 'bold' */
  764. #define TRTX_TITLE              0x00001000L     /* A title (e.g. of a group) */
  765. #define TRTX_MULTILINE          0x00002000L     /* A multi-line text. See TR_PrintText() autodoc clip */
  766. #define TRTX_RIGHTALIGN         TROF_RIGHTALIGN /* Align text to the right border */
  767. #define TRTX_CENTER             0x00004000L     /* Center text */
  768. #define TRTX_SELECTED           0x00008000L     /* PRIVATE! */
  769.  
  770.  
  771. /***********************************************************************************************************/
  772. /******************************************************************************************** Menu entries */
  773. /***********************************************************************************************************/
  774.  
  775. #define TRMN_BARLABEL           (-1L)           /* A barlabel instead of text */
  776.  
  777.  
  778. /***********************************************************************************************************/
  779. /********************************************************************************* Tags for TR_CreateApp() */
  780. /***********************************************************************************************************/
  781.  
  782. #define TRCA_Name               (TAG_USER+1)
  783. #define TRCA_LongName           (TAG_USER+2)
  784. #define TRCA_Info               (TAG_USER+3)
  785. #define TRCA_Version            (TAG_USER+4)
  786. #define TRCA_Release            (TAG_USER+5)
  787. #define TRCA_Date               (TAG_USER+6)
  788.  
  789.  
  790. /***********************************************************************************************************/
  791. /******************************************************************************* Tags for TR_EasyRequest() */
  792. /***********************************************************************************************************/
  793.  
  794. #define TREZ_ReqPos             (TAG_USER+1)
  795. #define TREZ_LockProject        (TAG_USER+2)
  796. #define TREZ_Return             (TAG_USER+3)
  797. #define TREZ_Title              (TAG_USER+4)
  798. #define TREZ_Activate           (TAG_USER+5)
  799.  
  800.  
  801. /***********************************************************************************************************/
  802. /*************************************************************** Public parts of the Application structure */
  803. /***********************************************************************************************************/
  804.  
  805. #ifndef TR_THIS_IS_TRITON
  806.  
  807. typedef struct TR_App
  808. {
  809.   VOID *                        tra_MemPool;    /* The memory pool */
  810.   ULONG                         tra_BitMask;    /* Bits to Wait() for */
  811.   STRPTR                        tra_Name;       /* Unique name */
  812. } TR_App;
  813.  
  814. #endif
  815.  
  816.  
  817. /***********************************************************************************************************/
  818. /********************************************************************* Public parts of the Class structure */
  819. /***********************************************************************************************************/
  820.  
  821. #ifndef TR_THIS_IS_TRITON
  822.  
  823. typedef struct TR_Class
  824. {
  825.   struct MinNode                trc_Node;         /* PRIVATE! */
  826.   struct TR_Class             * trc_SuperClass;
  827. } TR_Class;
  828.  
  829. #endif
  830.  
  831.  
  832. /***********************************************************************************************************/
  833. /******************************************************************************** The Dimensions structure */
  834. /***********************************************************************************************************/
  835.  
  836. typedef struct TR_Dimensions
  837. {
  838.   UWORD                         trd_Left;       /* Left */
  839.   UWORD                         trd_Top;        /* Top */
  840.   UWORD                         trd_Width;      /* Width */
  841.   UWORD                         trd_Height;     /* Height */
  842.   UWORD                         trd_Left2;      /* Left */
  843.   UWORD                         trd_Top2;       /* Top */
  844.   UWORD                         trd_Width2;     /* Width */
  845.   UWORD                         trd_Height2;    /* Height */
  846.   BOOL                          trd_Zoomed;     /* Window zoomed? */
  847.   UWORD                         reserved[3];    /* For future expansions */
  848. } TR_Dimensions;
  849.  
  850.  
  851. /***********************************************************************************************************/
  852. /***************************************** Default classes, attributes and flags (assembled automatically) */
  853. /***********************************************************************************************************/
  854.  
  855. /* class_Object */
  856.  
  857. #ifndef TR_THIS_IS_TRITON
  858.   struct TROD_Object
  859.   {
  860.     struct MinNode        Node;             /* The node for linking all objects */
  861.     struct TR_Class *     Class;            /* The object's class */
  862.     struct TR_Project *   Project;          /* The object's project */
  863.  
  864.     ULONG                 Reserved[6];
  865.   };
  866. #endif
  867.  
  868. #define TROB_Object             (TRTG_CLS+0x3D) /* A root class object */
  869.  
  870. /* class_DisplayObject */
  871.  
  872. #ifndef TR_THIS_IS_TRITON
  873.   struct TROD_DisplayObject
  874.   {
  875.     struct TROD_Object    O;                /* Superclass object data */
  876.     ULONG                 ID;               /* The object's ID */
  877.     ULONG                 MinWidth;         /* The precalculated minimum width */
  878.     ULONG                 MinHeight;        /* The precalculated minimum height */
  879.     ULONG                 Left;             /* The X coordinate of the object */
  880.     ULONG                 Top;              /* The Y coordinate of the object */
  881.     ULONG                 Width;            /* The width of the object */
  882.     ULONG                 Height;           /* The height of the object */
  883.     ULONG                 Flags;            /* See below for flags */
  884.     BOOL                  XResize;          /* Horizontally resizable? */
  885.     BOOL                  YResize;          /* Vertically resizable? */
  886.     STRPTR                QuickHelpString;  /* QuickHelp string */
  887.     WORD                  Shortcut;         /* The object's shortcut */
  888.     ULONG                 BackfillType;     /* The object's backfill type */
  889.     BOOL                  Installed;        /* Does the object have an on-screen representation? */
  890.  
  891.     ULONG                 Reserved[4];      /* Private! */
  892.   };
  893. #endif
  894.  
  895. #define TROB_DisplayObject      (TRTG_CLS+0x3C) /* A basic display object */
  896.  
  897. #define TRDO_QuickHelpString    (TRTG_OAT+0x1E3)
  898.  
  899. /* Flags */
  900. #define TROB_DISPLAYOBJECT_DISABLED    0x00100000L /* Disabled? */
  901. #define TROB_DISPLAYOBJECT_RETURNOK    0x00200000L /* Activate with <Return> */
  902. #define TROB_DISPLAYOBJECT_ESCOK       0x00400000L /* Activate with <Esc> */
  903. #define TROB_DISPLAYOBJECT_TABOK       0x00800000L /* Activate with <Tab> */
  904. #define TROB_DISPLAYOBJECT_SPACE       0x01000000L /* A spacing object? */
  905.  
  906. /* class_DragItem */
  907.  
  908. #define TROB_DragItem           (TRTG_CLS+0x3E) /* A draggable item */
  909.  
  910. /* class_Image */
  911.  
  912. #define TROB_Image              (TRTG_CLS+0x3B) /* An image */
  913.  
  914. #define TRIM_BOOPSI             0x00010000L     /* Use a BOOPSI IClass image */
  915.  
  916. /* class_String */
  917.  
  918. #define TROB_String             (TRTG_CLS+0x37) /* A string gadget */
  919.  
  920. #define TRST_Filter             (TRTG_OAT+0x1E4)
  921.  
  922. #define TRST_INVISIBLE          0x00010000L     /* A password gadget -> invisible typing */
  923. #define TRST_NORETURNBROADCAST  0x00020000L     /* <Return> keys will not be broadcast to the window */
  924. #define TRST_FLOAT              0x00040000L     /* Separators "." and "," will be accepted only once */
  925.  
  926. /* class_Cycle */
  927.  
  928. #define TROB_Cycle              (TRTG_CLS+0x36) /* A cycle gadget */
  929.  
  930. #define TRCY_MX                 0x00010000L     /* Unfold the cycle gadget to a MX gadget */
  931. #define TRCY_RIGHTLABELS        0x00020000L     /* Put the labels to the right of a MX gadget */
  932.  
  933. /* class_Palette */
  934.  
  935. #define TROB_Palette            (TRTG_CLS+0x33) /* A palette gadget */
  936.  
  937. /* class_DropBox */
  938.  
  939. #define TROB_DropBox            (TRTG_CLS+0x38) /* An icon drop box */
  940.  
  941. /* class_Group */
  942.  
  943. #define TRGR_Horiz              (TAG_USER+201)  /* Horizontal group */
  944. #define TRGR_Vert               (TAG_USER+202)  /* Vertical group */
  945. #define TRGR_End                (TRTG_OAT2+0x4B)/* End of a group */
  946.  
  947. #define TRGR_PROPSHARE          0x00000000L     /* Default: Divide objects proportionally */
  948. #define TRGR_EQUALSHARE         0x00000001L     /* Divide objects equally */
  949. #define TRGR_PROPSPACES         0x00000002L     /* Divide spaces proportionally */
  950. #define TRGR_ARRAY              0x00000004L     /* Top-level array group */
  951.  
  952. #define TRGR_ALIGN              0x00000008L     /* Align resizeable objects in secondary dimension */
  953. #define TRGR_CENTER             0x00000010L     /* Center unresizeable objects in secondary dimension */
  954.  
  955. #define TRGR_FIXHORIZ           0x00000020L     /* Don't allow horizontal resizing */
  956. #define TRGR_FIXVERT            0x00000040L     /* Don't allow vertical resizing */
  957. #define TRGR_INDEP              0x00000080L     /* Group is independant of surrounding array */
  958.  
  959. /* class_Slider */
  960.  
  961. #define TROB_Slider             (TRTG_CLS+0x34) /* A slider gadget */
  962.  
  963. #define TRSL_Min                (TRTG_OAT+0x1DE)
  964. #define TRSL_Max                (TRTG_OAT+0x1DF)
  965.  
  966. /* class_Line */
  967.  
  968. #define TROB_Line               (TRTG_CLS+0x2D) /* A simple line */
  969.  
  970. /* class_Listview */
  971.  
  972. #define TROB_Listview           (TRTG_CLS+0x39) /* A listview gadget */
  973.  
  974. #define TRLV_Top                (TRTG_OAT+0x1E2)
  975. #define TRLV_VisibleLines       (TRTG_OAT+0x1E4)
  976.  
  977. #define TRLV_READONLY           0x00010000L     /* A read-only list */
  978. #define TRLV_SELECT             0x00020000L     /* You may select an entry */
  979. #define TRLV_SHOWSELECTED       0x00040000L     /* Selected entry will be shown */
  980. #define TRLV_NOCURSORKEYS       0x00080000L     /* Don't use arrow keys */
  981. #define TRLV_NONUMPADKEYS       0x00100000L     /* Don't use numeric keypad keys */
  982. #define TRLV_FWFONT             0x00200000L     /* Use the fixed-width font */
  983. #define TRLV_NOGAP              0x00400000L     /* Don't leave a gap below the list */
  984.  
  985. /* class_Progress */
  986.  
  987. #define TROB_Progress           (TRTG_CLS+0x3A) /* A progress indicator */
  988.  
  989. /* class_Space */
  990.  
  991. #define TROB_Space              (TRTG_CLS+0x285)/* The spaces class */
  992.  
  993. #define TRST_NONE               1L              /* No space */
  994. #define TRST_SMALL              2L              /* Small space */
  995. #define TRST_NORMAL             3L              /* Normal space (default) */
  996. #define TRST_BIG                4L              /* Big space */
  997.  
  998. /* class_Text */
  999.  
  1000. #define TROB_Text               (TRTG_CLS+0x30) /* A line of text */
  1001.  
  1002. #define TRTX_CLIPPED            0x00010000L     /* Text is clipped */
  1003. /* class_Button */
  1004.  
  1005. #define TROB_Button             (TRTG_CLS+0x31) /* A BOOPSI button gadget */
  1006.  
  1007. #define TRBU_RETURNOK           0x00010000L     /* <Return> answers the button */
  1008. #define TRBU_ESCOK              0x00020000L     /* <Esc> answers the button */
  1009. #define TRBU_SHIFTED            0x00040000L     /* Shifted shortcut only */
  1010. #define TRBU_UNSHIFTED          0x00080000L     /* Unshifted shortcut only */
  1011. #define TRBU_YRESIZE            0x00100000L     /* Button resizeable in Y direction */
  1012. #define TRBT_TEXT               0L              /* Text button */
  1013. #define TRBT_GETFILE            1L              /* GetFile button */
  1014. #define TRBT_GETDRAWER          2L              /* GetDrawer button */
  1015. #define TRBT_GETENTRY           3L              /* GetEntry button */
  1016.  
  1017. /* class_CheckBox */
  1018.  
  1019. #define TROB_CheckBox           (TRTG_CLS+0x2F) /* A checkbox gadget */
  1020.  
  1021. /* class_FrameBox */
  1022.  
  1023. #define TROB_FrameBox           (TRTG_CLS+0x32) /* A framing box */
  1024.  
  1025. #define TRFB_GROUPING           0x00000001L     /* A grouping box */
  1026. #define TRFB_FRAMING            0x00000002L     /* A framing box */
  1027. #define TRFB_TEXT               0x00000004L     /* A text container */
  1028.  
  1029. /* class_Scroller */
  1030.  
  1031. #define TROB_Scroller           (TRTG_CLS+0x35) /* A scroller gadget */
  1032.  
  1033. #define TRSC_Total              (TRTG_OAT+0x1E0)
  1034. #define TRSC_Visible            (TRTG_OAT+0x1E1)
  1035.  
  1036.  
  1037. /***********************************************************************************************************/
  1038. /******************************************************************* Public parts of the Project structure */
  1039. /***********************************************************************************************************/
  1040.  
  1041. #ifndef TR_THIS_IS_TRITON
  1042.  
  1043. typedef struct TR_Project
  1044. {
  1045.   struct TROD_Object            tro_SC_Object;                  /* PRIVATE! */
  1046.   struct TR_App *               trp_App;                        /* Our application */
  1047.   VOID *                        trp_MemPool;                    /* The memory pool */
  1048.   ULONG                         trp_ID;                         /* The project's ID */
  1049.   ULONG                         trp_IDCMPFlags;                 /* The IDCMP flags */
  1050.   struct Window *               trp_Window;                     /* The default window */
  1051.   UWORD                         trp_AspectFixing;               /* Pixel aspect correction factor */
  1052. } TR_Project;
  1053.  
  1054. #endif
  1055.  
  1056.  
  1057. /***********************************************************************************************************/
  1058. /************************************************************************************************* The End */
  1059. /***********************************************************************************************************/
  1060.  
  1061. #endif /* LIBRARIES_TRITON_H */
  1062.