~ubuntu-branches/ubuntu/lucid/fpc/lucid-proposed

« back to all changes in this revision

Viewing changes to fpcsrc/packages/extra/amunits/otherlibs/triton/units/triton.pas

  • Committer: Bazaar Package Importer
  • Author(s): Mazen Neifer, Torsten Werner, Mazen Neifer
  • Date: 2008-10-09 23:29:00 UTC
  • mfrom: (4.1.1 sid)
  • Revision ID: james.westby@ubuntu.com-20081009232900-553f61m37jkp6upv
Tags: 2.2.2-4
[ Torsten Werner ]
* Update ABI version in fpc-depends automatically.
* Remove empty directories from binary package fpc-source.

[ Mazen Neifer ]
* Removed leading path when calling update-alternatives to remove a Linitian
  error.
* Fixed clean target.
* Improved description of packages. (Closes: #498882)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
{
2
 
    This file is part of the Free Pascal run time library.
3
 
 
4
 
    A file in Amiga system run time library.
5
 
    Copyright (c) 1998-2003 by Nils Sjoholm
6
 
    member of the Amiga RTL development team.
7
 
 
8
 
    See the file COPYING.FPC, included in this distribution,
9
 
    for details about the copyright.
10
 
 
11
 
    This program is distributed in the hope that it will be useful,
12
 
    but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14
 
 
15
 
 **********************************************************************}
16
 
 
17
 
{
18
 
    History
19
 
 
20
 
    Updated to triton 2.0. Added function with array of const.
21
 
    09 Jan 2003.
22
 
 
23
 
    Added the defines use_amiga_smartlink and
24
 
    use_auto_openlib.
25
 
    12 Jan 2003.
26
 
 
27
 
    Changed integer > smallint.
28
 
    Changed cardinal > longword.
29
 
    Changed startcode for unit.
30
 
    11 Feb 2003.
31
 
 
32
 
    nils.sjoholm@mailbox.swipnet.se Nils Sjoholm
33
 
 
34
 
}
35
 
 
36
 
{$mode objfpc}
37
 
{$I useamigasmartlink.inc}
38
 
{$ifdef use_amiga_smartlink}
39
 
    {$smartlink on}
40
 
{$endif use_amiga_smartlink}
41
 
 
42
 
UNIT TRITON;
43
 
 
44
 
INTERFACE
45
 
 
46
 
uses exec, intuition, graphics, utility;
47
 
 
48
 
 
49
 
{* ------------------------------------------------------------------------------ *}
50
 
{* library name and version                                                       *}
51
 
{* ------------------------------------------------------------------------------ *}
52
 
 
53
 
CONST   TRITONNAME        : PChar = 'triton.library';
54
 
        TRITON10VERSION   = 1;
55
 
        TRITON11VERSION   = 2;
56
 
        TRITON12VERSION   = 3;
57
 
        TRITON13VERSION   = 4;
58
 
        TRITON14VERSION   = 5;
59
 
        TRITON20VERSION   = 6;
60
 
        TRITONVERSION     = TRITON20VERSION;
61
 
 
62
 
{* ------------------------------------------------------------------------------ *}
63
 
{* Triton Message                                                                 *}
64
 
{* ------------------------------------------------------------------------------ *}
65
 
 
66
 
TYPE
67
 
     pTR_Project = ^tTR_Project;
68
 
     pTR_App     = ^tTR_App;
69
 
 
70
 
     pTR_Message = ^tTR_Message;
71
 
     tTR_Message = RECORD
72
 
         trm_Project   : pTR_Project;   {* the message                  *}
73
 
         trm_Id        : ULONG;         {* The object's ID              *}
74
 
         trm_Class     : ULONG;         {* The Triton message class     *}
75
 
         trm_Data      : ULONG;         {* The class-specific data      *}
76
 
         trm_Code      : ULONG;         {* Currently only used BY       *}
77
 
                                        {* TRMS_KEYPRESSED              *}
78
 
         trm_Pad0      : ULONG;         {* qualifier is only 16 Bit     *}
79
 
         trm_Qualifier : ULONG;         {* Qualifiers                   *}
80
 
         trm_Seconds   : ULONG;         {* \ Copy of system clock time  *}
81
 
         trm_Micros    : ULONG;         {* / (Only where available! IF  *}
82
 
                                        {*    not set, seconds is NULL) *}
83
 
         trm_App       : pTR_App;
84
 
     END;                               {* End of TR_Message            *}
85
 
 
86
 
{* Data for TROM_NEW *}
87
 
     pTROM_NewDataPtr = ^tTROM_NewData;
88
 
     tTROM_NewData = record
89
 
         {* The following elements are set up for the object (read only) *}
90
 
         project    : pTR_Project;     {*  TR_ProjectPtr;  *}
91
 
         firstitem  : pTagItem;
92
 
         objecttype : ULONG;
93
 
         grouptype  : ULONG;
94
 
         itemdata   : ULONG;
95
 
         backfilltype : ULONG;
96
 
         {* The following elements have to be set by the object and read by
97
 
class_DisplayObject *}
98
 
         parseargs  : BOOL;
99
 
     end;
100
 
 
101
 
 
102
 
{* Data for TROM_INSTALL *}
103
 
     pTROM_InstallData = ^tTROM_InstallData;
104
 
     tTROM_InstallData = record
105
 
         left : ULONG;
106
 
         top  : ULONG;
107
 
         width : ULONG;
108
 
         height : ULONG;
109
 
     end;
110
 
 
111
 
 
112
 
{* Data for TROM_SETATTRIBUTE *}
113
 
     pTROM_SetAttributeData = ^tTROM_SetAttributeData;
114
 
     tTROM_SetAttributeData = record
115
 
         attribute : ULONG;
116
 
         value     : ULONG;
117
 
     end;
118
 
 
119
 
 
120
 
{* Data for TROM_EVENT *}
121
 
     pTROM_EventData = ^tTROM_EventData;
122
 
     tTROM_EventData = record
123
 
         imsg : pIntuiMessage;
124
 
     end;
125
 
 
126
 
{* ------------------------------------------------------------------------------ *}
127
 
{* The Application Structure                                                      *}
128
 
{* ------------------------------------------------------------------------------ *}
129
 
 
130
 
     tTR_App = RECORD {* This structure is PRIVATE! *}
131
 
         tra_MemPool    : Pointer;       {* The memory pool             *}
132
 
         tra_BitMask    : ULONG;         {* Bits to Wait() for          *}
133
 
         tra_Name       : STRPTR;        {* Unique name                 *}
134
 
     END; {* TR_App *}
135
 
 
136
 
     pTR_Class = ^tTR_Class;
137
 
     tTR_Class = RECORD
138
 
         trc_Node     : tMinNode;         {* PRIVATE! *}
139
 
         trc_SuperClass : pTR_Class;
140
 
     end;
141
 
 
142
 
 
143
 
 
144
 
 
145
 
{* ------------------------------------------------------------------------------ *}
146
 
{* The Dimension Structure                                                        *}
147
 
{* ------------------------------------------------------------------------------ *}
148
 
 
149
 
     pTR_Dimensions = ^tTR_Dimensions;
150
 
     tTR_Dimensions = RECORD
151
 
         trd_Left          : Word;
152
 
         trd_Top           : Word;
153
 
         trd_Width         : Word;
154
 
         trd_Height        : Word;
155
 
         trd_Left2         : Word;
156
 
         trd_Top2          : Word;
157
 
         trd_Width2        : Word;
158
 
         trd_Height2       : Word;
159
 
         trd_Zoomed        : BOOL;
160
 
         reserved          : ARRAY [0..2] OF Word;
161
 
     END; {* TR_Dimensions *}
162
 
 
163
 
 
164
 
{* ////////////////////////////////////////////////////////////////////// *}
165
 
{* ///////////////////////////// Default classes, attributes and flags // *}
166
 
{* ////////////////////////////////////////////////////////////////////// *}
167
 
 
168
 
 
169
 
     pTROD_Object = ^tTROD_Object;
170
 
     tTROD_Object = record
171
 
         Node : tMinNode;             {* The node for linking all objects *}
172
 
         tr_Class : pTR_Class;        {* The object's class *}
173
 
         Project : pTR_Project;    {* The object's project *}
174
 
         Reserved : array [0..5] of ULONG;
175
 
     end;
176
 
 
177
 
 
178
 
 
179
 
     pTROD_DisplayObject = ^tTROD_DisplayObject;
180
 
     tTROD_DisplayObject = record
181
 
         O           : tTROD_Object;       {* Superclass object data *}
182
 
         ID          : ULONG;             {* The object's ID *}
183
 
         MinWidth    : ULONG;             {* The precalculated minimum width *}
184
 
         MinHeight   : ULONG;             {* The precalculated minimum height *}
185
 
         Left        : ULONG;             {* The X coordinate of the object *}
186
 
         Top         : ULONG;             {* The Y coordinate of the object *}
187
 
         Width       : ULONG;             {* The width of the object *}
188
 
         Height      : ULONG;             {* The height of the object *}
189
 
         Flags       : ULONG;             {* See below for flags *}
190
 
         XResize     : BOOL;              {* Horizontally resizable? *}
191
 
         YResize     : BOOL;              {* Vertically resizable? *}
192
 
         QuickHelpString : STRPTR;        {* QuickHelp string *}
193
 
         Shortcut    : smallint;           {* The object's shortcut *}
194
 
         Backfilltype : ULONG;            {* The object's backfill type *}
195
 
         Installed   : BOOL;              {* Does the object have an on-screen
196
 
representation? *}
197
 
         Reserved    : array [0..3] of ULONG;   {* Private! *}
198
 
     end;
199
 
 
200
 
 
201
 
{* Data for TROM_HIT *}
202
 
     pTROM_HitData = ^tTROM_HitData;
203
 
     tTROM_HitData = record
204
 
         x : ULONG;
205
 
         y : ULONG;
206
 
         tr_object : pTROD_DisplayObject;
207
 
     end;
208
 
 
209
 
 
210
 
{* ------------------------------------------------------------------------------ *}
211
 
{* The Projects Structure                                                         *}
212
 
{* ------------------------------------------------------------------------------ *}
213
 
 
214
 
     tTR_Project = RECORD
215
 
         tro_SC_Object                : tTROD_Object;          {* PRIVATE *}
216
 
         trp_App                      : pTR_App;            {* Our application
217
 
*}
218
 
         trp_MemPool                  : Pointer;              {* The memory pool *}
219
 
         trp_ID                       : ULONG;                {* The project's ID *}
220
 
         trp_IDCMPFlags               : ULONG;                {* The IDCMP flags *}
221
 
         trp_Window                   : pWindow;            {* The default window *}
222
 
         trp_AspectFixing             : Word;                 {* Pixel aspect
223
 
correction factor *}
224
 
     END;                                               {* End of TR_Projects
225
 
*}
226
 
 
227
 
{* Message classes *}
228
 
CONST   TRMS_CLOSEWINDOW        = 1;  {* The window should be closed *}
229
 
        TRMS_ERROR              = 2;  {* An error occured. Error code in trm_Data *}
230
 
        TRMS_NEWVALUE           = 3;  {* Object's VALUE has changed. New VALUE in
231
 
trm_Data *}
232
 
        TRMS_ACTION             = 4;  {* Object has triggered an action *}
233
 
        TRMS_ICONDROPPED        = 5;  {* Icon dropped over window (ID=0) or DropBox.
234
 
AppMessage* in trm_Data *}
235
 
        TRMS_KEYPRESSED         = 6;  {* Key pressed. trm_Data contains ASCII code,
236
 
trm_Code raw code and *}
237
 
                                      {* trm_Qualifier contains qualifiers *}
238
 
        TRMS_HELP               = 7;  {* The user requested help for the specified ID
239
 
*}
240
 
        TRMS_DISKINSERTED       = 8;  {* A disk has been inserted into a drive *}
241
 
        TRMS_DISKREMOVED        = 9;  {* A disk has been removed from a drive *}
242
 
 
243
 
 
244
 
{* ////////////////////////////////////////////////////////////////////// *}
245
 
{* //////////////////////////////////////////////// Triton error codes // *}
246
 
{* ////////////////////////////////////////////////////////////////////// *}
247
 
 
248
 
        TRER_OK                 = 0;        {* No error *}
249
 
 
250
 
        TRER_ALLOCMEM           = 1;        {* Not enough memory *}
251
 
        TRER_OPENWINDOW         = 2;        {* Can't open window *}
252
 
        TRER_WINDOWTOOBIG       = 3;        {* Window would be too big for screen *}
253
 
        TRER_DRAWINFO           = 4;        {* Can't get screen's DrawInfo *}
254
 
        TRER_OPENFONT           = 5;        {* Can't open font *}
255
 
        TRER_CREATEMSGPORT      = 6;        {* Can't create message port *}
256
 
        TRER_INSTALLOBJECT      = 7;        {* Can't create an object *}
257
 
        TRER_CREATECLASS        = 8;        {* Can't create a class *}
258
 
        TRER_NOLOCKPUBSCREEN    = 9;        {* Can't lock public screen *}
259
 
        TRER_CREATEMENUS        = 12;       {* Error while creating the menus *}
260
 
        TRER_GT_CREATECONTEXT   = 14;       {* Can't create gadget context *}
261
 
 
262
 
        TRER_MAXERRORNUM        = 15;       {* PRIVATE! *}
263
 
 
264
 
 
265
 
{* ////////////////////////////////////////////////////////////////////// *}
266
 
{* /////////////////////////////////////////////////// Object messages // *}
267
 
{* ////////////////////////////////////////////////////////////////////// *}
268
 
 
269
 
        TROM_NEW                = 1;         {* Create object *}
270
 
        TROM_INSTALL            = 2;         {* Tell object to install itself in the
271
 
window *}
272
 
        TROM_REFRESH            = 4;         {* Refresh object *}
273
 
        TROM_REMOVE             = 6;         {* Remove object from window *}
274
 
        TROM_DISPOSE            = 7;         {* Dispose an object's private data *}
275
 
        TROM_GETATTRIBUTE       = 8;         {* Get an object's attribute *}
276
 
        TROM_SETATTRIBUTE       = 9;         {* Set an object's attribute *}
277
 
        TROM_EVENT              = 10;        {* IDCMP event *}
278
 
        TROM_DISABLED           = 11;        {* Disabled object *}
279
 
        TROM_ENABLED            = 12;        {* Enabled object *}
280
 
        TROM_KEYDOWN            = 13;        {* Key pressed *}
281
 
        TROM_REPEATEDKEYDOWN    = 14;        {* Key pressed repeatedly *}
282
 
        TROM_KEYUP              = 15;        {* Key released *}
283
 
        TROM_KEYCANCELLED       = 16;        {* Key cancelled *}
284
 
        TROM_CREATECLASS        = 17;        {* Create class-specific data *}
285
 
        TROM_DISPOSECLASS       = 18;        {* Dispose class-specific data *}
286
 
        TROM_HIT                = 22;        {* Find an object for a coordinate pair
287
 
*}
288
 
        TROM_ACTIVATE           = 23;        {* Activate an object *}
289
 
 
290
 
 
291
 
        TROM_EVENT_SWALLOWED    = 1;
292
 
        TROM_EVENT_CONTINUE     = 0;
293
 
 
294
 
 
295
 
{* ////////////////////////////////////////////////////////////////////// *}
296
 
{* ///////////////////////////////////////// Tags for TR_OpenProject() // *}
297
 
{* ////////////////////////////////////////////////////////////////////// *}
298
 
 
299
 
{* Tag bases *}
300
 
        TRTG_OAT              = (TAG_USER+$400);  {* Object attribute *}
301
 
        TRTG_CLS              = (TAG_USER+$100);  {* Class ID $1 to $2FF *}
302
 
        TRTG_OAT2             = (TAG_USER+$80);   {* PRIVATE! *}
303
 
        TRTG_PAT              = (TAG_USER);        {* Project attribute *}
304
 
 
305
 
 
306
 
{* Window/Project *}
307
 
        TRWI_Title              = (TRTG_PAT+$01); {* STRPTR: The window title *}
308
 
        TRWI_Flags              = (TRTG_PAT+$02); {* See below for window flags *}
309
 
        TRWI_Underscore         = (TRTG_PAT+$03); {* BYTE *: The underscore for menu
310
 
and gadget shortcuts *}
311
 
        TRWI_Position           = (TRTG_PAT+$04); {* Window position,  see below *}
312
 
        TRWI_CustomScreen       = (TRTG_PAT+$05); {* STRUCT Screen * *}
313
 
        TRWI_PubScreen          = (TRTG_PAT+$06); {* STRUCT Screen *,  must have been
314
 
locked! *}
315
 
        TRWI_PubScreenName      = (TRTG_PAT+$07); {* ADDRESS,  Triton is doing the
316
 
locking *}
317
 
        TRWI_PropFontAttr       = (TRTG_PAT+$08); {* STRUCT TextAttr *: The
318
 
proportional font *}
319
 
        TRWI_FixedWidthFontAttr = (TRTG_PAT+$09); {* STRUCT TextAttr *: The fixed-
320
 
width font *}
321
 
        TRWI_Backfill           = (TRTG_PAT+$0A); {* The backfill type,  see below *}
322
 
        TRWI_ID                 = (TRTG_PAT+$0B); {* ULONG: The window ID *}
323
 
        TRWI_Dimensions         = (TRTG_PAT+$0C); {* STRUCT TR_Dimensions * *}
324
 
        TRWI_ScreenTitle        = (TRTG_PAT+$0D); {* STRPTR: The screen title *}
325
 
        TRWI_QuickHelp          = (TRTG_PAT+$0E); {* BOOL: Quick help active? *}
326
 
 
327
 
{* Menus *}
328
 
        TRMN_Title              = (TRTG_PAT+$65); {* STRPTR: Menu *}
329
 
        TRMN_Item               = (TRTG_PAT+$66); {* STRPTR: Menu item *}
330
 
        TRMN_Sub                = (TRTG_PAT+$67); {* STRPTR: Menu subitem *}
331
 
        TRMN_Flags              = (TRTG_PAT+$68); {* See below for flags *}
332
 
 
333
 
{* General object attributes *}
334
 
        TRAT_ID               = (TRTG_OAT2+$16);  {* The object's/menu's ID *}
335
 
        TRAT_Flags            = (TRTG_OAT2+$17);  {* The object's flags *}
336
 
        TRAT_Value            = (TRTG_OAT2+$18);  {* The object's value *}
337
 
        TRAT_Text             = (TRTG_OAT2+$19);  {* The object's text *}
338
 
        TRAT_Disabled         = (TRTG_OAT2+$1A);  {* Disabled object? *}
339
 
        TRAT_Backfill         = (TRTG_OAT2+$1B);  {* Backfill pattern *}
340
 
        TRAT_MinWidth         = (TRTG_OAT2+$1C);  {* Minimum width *}
341
 
        TRAT_MinHeight        = (TRTG_OAT2+$1D);  {* Minimum height *}
342
 
 
343
 
 
344
 
{* ////////////////////////////////////////////////////////////////////// *}
345
 
{* ////////////////////////////////////////////////////// Window flags // *}
346
 
{* ////////////////////////////////////////////////////////////////////// *}
347
 
 
348
 
        TRWF_BACKDROP           = $00000001;     {* Create a backdrop borderless
349
 
window *}
350
 
        TRWF_NODRAGBAR          = $00000002;     {* Don't use a dragbar *}
351
 
        TRWF_NODEPTHGADGET      = $00000004;     {* Don't use a depth-gadget *}
352
 
        TRWF_NOCLOSEGADGET      = $00000008;     {* Don't use a close-gadget *}
353
 
        TRWF_NOACTIVATE         = $00000010;     {* Don't activate window *}
354
 
        TRWF_NOESCCLOSE         = $00000020;     {* Don't send TRMS_CLOSEWINDOW when
355
 
Esc is pressed *}
356
 
        TRWF_NOPSCRFALLBACK     = $00000040;     {* Don't fall back onto default
357
 
PubScreen *}
358
 
        TRWF_NOZIPGADGET        = $00000080;     {* Don't use a zip-gadget *}
359
 
        TRWF_ZIPCENTERTOP       = $00000100;     {* Center the zipped window on the
360
 
title bar *}
361
 
        TRWF_NOMINTEXTWIDTH     = $00000200;     {* Minimum window width not according
362
 
to title text *}
363
 
        TRWF_NOSIZEGADGET       = $00000400;     {* Don't use a sizing-gadget *}
364
 
        TRWF_NOFONTFALLBACK     = $00000800;     {* Don't fall back to topaz.8 *}
365
 
        TRWF_NODELZIP           = $00001000;     {* Don't zip the window when Del is
366
 
pressed *}
367
 
        TRWF_SIMPLEREFRESH      = $00002000;     {* *** OBSOLETE *** (V3+) *}
368
 
        TRWF_ZIPTOCURRENTPOS    = $00004000;     {* Will zip the window at the current
369
 
position (OS3.0+) *}
370
 
        TRWF_APPWINDOW          = $00008000;     {* Create an AppWindow without using
371
 
class_dropbox *}
372
 
        TRWF_ACTIVATESTRGAD     = $00010000;     {* Activate the first string gadget
373
 
after opening the window *}
374
 
        TRWF_HELP               = $00020000;     {* Pressing <Help> will create a
375
 
TRMS_HELP message (V4) *}
376
 
        TRWF_SYSTEMACTION       = $00040000;     {* System status messages will be
377
 
sent (V4) *}
378
 
 
379
 
 
380
 
{* ////////////////////////////////////////////////////////////////////// *}
381
 
{* //////////////////////////////////////////////////////// Menu flags // *}
382
 
{* ////////////////////////////////////////////////////////////////////// *}
383
 
 
384
 
        TRMF_CHECKIT            = $00000001;     {* Leave space for a checkmark *}
385
 
        TRMF_CHECKED            = $00000002;     {* Check the item (includes
386
 
TRMF_CHECKIT) *}
387
 
        TRMF_DISABLED           = $00000004;     {* Ghost the menu/item *}
388
 
 
389
 
 
390
 
{* ////////////////////////////////////////////////////////////////////// *}
391
 
{* ////////////////////////////////////////////////// Window positions // *}
392
 
{* ////////////////////////////////////////////////////////////////////// *}
393
 
 
394
 
        TRWP_DEFAULT            = 0;              {* Let Triton choose a good position
395
 
*}
396
 
        TRWP_BELOWTITLEBAR      = 1;              {* Left side of screen,  below title
397
 
bar *}
398
 
        TRWP_CENTERTOP          = 1025;           {* Top of screen,  centered on the
399
 
title bar *}
400
 
        TRWP_TOPLEFTSCREEN      = 1026;           {* Top left corner of screen *}
401
 
        TRWP_CENTERSCREEN       = 1027;           {* Centered on the screen *}
402
 
        TRWP_CENTERDISPLAY      = 1028;           {* Centered on the currently
403
 
displayed clip *}
404
 
        TRWP_MOUSEPOINTER       = 1029;           {* Under the mouse pointer *}
405
 
        TRWP_ABOVECOORDS        = 2049;           {* Above coordinates from the
406
 
dimensions STRUCT *}
407
 
        TRWP_BELOWCOORDS        = 2050;           {* Below coordinates from the
408
 
dimensions STRUCT *}
409
 
 
410
 
 
411
 
{* ////////////////////////////////////////////////////////////////////// *}
412
 
{* //////////////////////////////////// Backfill types / System images // *}
413
 
{* ////////////////////////////////////////////////////////////////////// *}
414
 
 
415
 
        TRBF_WINDOWBACK         = $00000000;     {* Window backfill *}
416
 
        TRBF_REQUESTERBACK      = $00000001;     {* Requester backfill *}
417
 
 
418
 
        TRBF_NONE               = $00000002;     {* No backfill (= Fill with
419
 
BACKGROUNDPEN) *}
420
 
        TRBF_SHINE              = $00000003;     {* Fill with SHINEPEN *}
421
 
        TRBF_SHINE_SHADOW       = $00000004;     {* Fill with SHINEPEN + SHADOWPEN *}
422
 
        TRBF_SHINE_FILL         = $00000005;     {* Fill with SHINEPEN + FILLPEN *}
423
 
        TRBF_SHINE_BACKGROUND   = $00000006;     {* Fill with SHINEPEN + BACKGROUNDPEN
424
 
*}
425
 
        TRBF_SHADOW             = $00000007;     {* Fill with SHADOWPEN *}
426
 
        TRBF_SHADOW_FILL        = $00000008;     {* Fill with SHADOWPEN + FILLPEN *}
427
 
        TRBF_SHADOW_BACKGROUND  = $00000009;     {* Fill with SHADOWPEN +
428
 
BACKGROUNDPEN *}
429
 
        TRBF_FILL               = $0000000A;     {* Fill with FILLPEN *}
430
 
        TRBF_FILL_BACKGROUND    = $0000000B;     {* Fill with FILLPEN + BACKGROUNDPEN
431
 
*}
432
 
 
433
 
        TRSI_USBUTTONBACK       = $00010002;     {* Unselected button backfill *}
434
 
        TRSI_SBUTTONBACK        = $00010003;     {* Selected button backfill *}
435
 
 
436
 
 
437
 
 
438
 
{* ////////////////////////////////////////////////////////////////////// *}
439
 
{* /////////////////////////////////////////////////////// Frame types // *}
440
 
{* ////////////////////////////////////////////////////////////////////// *}
441
 
 
442
 
        { * Copies of the GadTools BBFT_#? types *}
443
 
        TRFT_BUTTON       = 1;
444
 
        TRFT_RIDGE        = 2;
445
 
        TRFT_ICONDROPBOX  = 3;
446
 
        { * Triton's low-level frame types *}
447
 
        TRFT_XENBUTTON1   = 33;
448
 
        TRFT_XENBUTTON2   = 34;
449
 
        TRFT_NEXTBUTTON   = 35;
450
 
        { * Triton's abstract frame types *}
451
 
        TRFT_ABSTRACT_BUTTON      = 65;
452
 
        TRFT_ABSTRACT_ICONDROPBOX = 66;
453
 
        TRFT_ABSTRACT_FRAMEBOX    = 67;
454
 
        TRFT_ABSTRACT_PROGRESS    = 68;
455
 
        TRFT_ABSTRACT_GROUPBOX    = 69;
456
 
 
457
 
 
458
 
{* ////////////////////////////////////////////////////////////////////// *}
459
 
{* ///////////////////////////////////////////////////////// Pen types // *}
460
 
{* ////////////////////////////////////////////////////////////////////// *}
461
 
 
462
 
        TRPT_SYSTEMPEN   = 0;
463
 
        TRPT_GRAPHICSPEN = 1;
464
 
        TRPT_TRITONPEN   = 128;
465
 
 
466
 
        TRTP_NORMUSCORE         = 0;
467
 
        TRTP_HIGHUSCORE         = 1;
468
 
        TRTP_HALFSHINE          = 2;
469
 
        TRTP_HALFSHADOW         = 3;
470
 
        TRTP_USSTRINGGADBACK    = 4;
471
 
        TRTP_SSTRINGGADBACK     = 5;
472
 
        TRTP_USSTRINGGADFRONT   = 6;
473
 
        TRTP_SSTRINGGADFRONT    = 7;
474
 
 
475
 
{* ////////////////////////////////////////////////////////////////////// *}
476
 
{* ////////////////////////////////////////////// Display Object flags // *}
477
 
{* ////////////////////////////////////////////////////////////////////// *}
478
 
 
479
 
{* General flags *}
480
 
        TROF_RAISED             = $00000001;     {* Raised object *}
481
 
        TROF_HORIZ              = $00000002;     {* Horizontal object \ Works
482
 
automatically *}
483
 
        TROF_VERT               = $00000004;     {* Vertical object   / in groups *}
484
 
        TROF_RIGHTALIGN         = $00000008;     {* Align object to the right border
485
 
if available *}
486
 
        TROF_GENERAL_MASK       = $000000FF;     {* PRIVATE *}
487
 
 
488
 
{* Text flags for different kinds of text-related objects *}
489
 
        TRTX_NOUNDERSCORE       = $00000100;     {* Don't interpret underscores *}
490
 
        TRTX_HIGHLIGHT          = $00000200;     {* Highlight text *}
491
 
        TRTX_3D                 = $00000400;     {* 3D design *}
492
 
        TRTX_BOLD               = $00000800;     {* Softstyle 'bold' *}
493
 
        TRTX_TITLE              = $00001000;     {* A title (e.g. of a group) *}
494
 
        TRTX_MULTILINE          = $00002000;     {* A multi-line text. See
495
 
TR_PrintText() autodoc clip *}
496
 
        TRTX_RIGHTALIGN         = TROF_RIGHTALIGN;
497
 
        TRTX_CENTER             = $00004000;     {* Center text *}
498
 
        TRTX_SELECTED           = $00002000;     {* PRIVATE! *}
499
 
 
500
 
{* ////////////////////////////////////////////////////////////////////// *}
501
 
{* ////////////////////////////////////////////////////// Menu entries // *}
502
 
{* ////////////////////////////////////////////////////////////////////// *}
503
 
 
504
 
        TRMN_BARLABEL           = (-1);           {* A barlabel instead of text *}
505
 
 
506
 
 
507
 
{* ////////////////////////////////////////////////////////////////////// *}
508
 
{* /////////////////////////////////////////// Tags for TR_CreateApp() // *}
509
 
{* ////////////////////////////////////////////////////////////////////// *}
510
 
 
511
 
        TRCA_Name               = (TAG_USER+1);
512
 
        TRCA_LongName           = (TAG_USER+2);
513
 
        TRCA_Info               = (TAG_USER+3);
514
 
        TRCA_Version            = (TAG_USER+4);
515
 
        TRCA_Release            = (TAG_USER+5);
516
 
        TRCA_Date               = (TAG_USER+6);
517
 
 
518
 
 
519
 
{* ////////////////////////////////////////////////////////////////////// *}
520
 
{* ///////////////////////////////////////// Tags for TR_EasyRequest() // *}
521
 
{* ////////////////////////////////////////////////////////////////////// *}
522
 
 
523
 
        TREZ_ReqPos             = (TAG_USER+1);
524
 
        TREZ_LockProject        = (TAG_USER+2);
525
 
        TREZ_Return             = (TAG_USER+3);
526
 
        TREZ_Title              = (TAG_USER+4);
527
 
        TREZ_Activate           = (TAG_USER+5);
528
 
 
529
 
{* class_DisplayObject *}
530
 
 
531
 
        TROB_DisplayObject      = (TRTG_CLS+$3C); {* A basic display object *}
532
 
 
533
 
        TRDO_QuickHelpString    = (TRTG_OAT+$1E3);
534
 
 
535
 
{* Flags *}
536
 
        TROB_DISPLAYOBJECT_DISABLED    = $00100000; {* Disabled? *}
537
 
        TROB_DISPLAYOBJECT_RETURNOK    = $00200000; {* Activate with <Return> *}
538
 
        TROB_DISPLAYOBJECT_ESCOK       = $00400000; {* Activate with <Esc> *}
539
 
        TROB_DISPLAYOBJECT_TABOK       = $00800000; {* Activate with <Tab> *}
540
 
        TROB_DISPLAYOBJECT_SPACE       = $01000000; {* A spacing object? *}
541
 
 
542
 
{* class_DragItem *}
543
 
 
544
 
         TROB_DragItem          = (TRTG_CLS+$3E); {* A draggable item *}
545
 
 
546
 
{* class_Image *}
547
 
 
548
 
        TROB_Image              = (TRTG_CLS+$3B); {* An image *}
549
 
 
550
 
        TRIM_BOOPSI             = $00010000;     {* Use a BOOPSI IClass image *}
551
 
 
552
 
{* class_String *}
553
 
 
554
 
        TROB_String             = (TRTG_CLS+$37); {* A string gadget *}
555
 
        TRST_Filter             = (TRTG_OAT+$1E4);
556
 
 
557
 
        TRST_INVISIBLE          = $00010000;     {* A password gadget -> invisible
558
 
typing *}
559
 
        TRST_NORETURNBROADCAST  = $00020000;     {* <Return> keys will not be
560
 
broadcast to the window *}
561
 
        TRST_FLOAT              = $00040000;     {* Separators "." and "," will be
562
 
accepted only once *}
563
 
 
564
 
{* class_Cycle *}
565
 
 
566
 
        TROB_Cycle              = (TRTG_CLS+$36); {* A cycle gadget *}
567
 
 
568
 
        TRCY_MX                 = $00010000;     {* Unfold the cycle gadget to a MX
569
 
gadget *}
570
 
        TRCY_RIGHTLABELS        = $00020000;     {* Put the labels to the right of a
571
 
MX gadget *}
572
 
 
573
 
{* class_Palette *}
574
 
 
575
 
        TROB_Palette            = (TRTG_CLS+$33); {* A palette gadget *}
576
 
 
577
 
{* class_DropBox *}
578
 
 
579
 
        TROB_DropBox            = (TRTG_CLS+$38); {* An icon drop box *}
580
 
 
581
 
{* class_Group *}
582
 
 
583
 
        TRGR_Horiz              = (TAG_USER+201);  {* Horizontal group *}
584
 
        TRGR_Vert               = (TAG_USER+202);  {* Vertical group *}
585
 
        TRGR_End                = (TRTG_OAT2+$4B); {* End of a group *}
586
 
 
587
 
        TRGR_PROPSHARE          = $00000000;     {* Default: Divide objects
588
 
proportionally *}
589
 
        TRGR_EQUALSHARE         = $00000001;     {* Divide objects equally *}
590
 
        TRGR_PROPSPACES         = $00000002;     {* Divide spaces proportionally *}
591
 
        TRGR_ARRAY              = $00000004;     {* Top-level array group *}
592
 
 
593
 
        TRGR_ALIGN              = $00000008;     {* Align resizeable objects in
594
 
secondary dimension *}
595
 
        TRGR_CENTER             = $00000010;     {* Center unresizeable objects in
596
 
secondary dimension *}
597
 
 
598
 
        TRGR_FIXHORIZ           = $00000020;     {* Don't allow horizontal resizing *}
599
 
        TRGR_FIXVERT            = $00000040;     {* Don't allow vertical resizing *}
600
 
        TRGR_INDEP              = $00000080;     {* Group is independant of
601
 
surrounding array *}
602
 
 
603
 
{* class_Line *}
604
 
 
605
 
        TROB_Line               = (TRTG_CLS+$2D); {* A simple line *}
606
 
 
607
 
{* class_Slider *}
608
 
 
609
 
        TROB_Slider             = (TRTG_CLS+$34); {* A slider gadget *}
610
 
 
611
 
        TRSL_Min                = (TRTG_OAT+$1DE);
612
 
        TRSL_Max                = (TRTG_OAT+$1DF);
613
 
 
614
 
{* class_Listview *}
615
 
 
616
 
        TROB_Listview           = (TRTG_CLS+$39); {* A listview gadget *}
617
 
 
618
 
        TRLV_Top                = (TRTG_OAT+$1E2);
619
 
        TRLV_VisibleLines       = (TRTG_OAT+$1E4);
620
 
 
621
 
        TRLV_READONLY           = $00010000;     {* A read-only list *}
622
 
        TRLV_SELECT             = $00020000;     {* You may select an entry *}
623
 
        TRLV_SHOWSELECTED       = $00040000;     {* Selected entry will be shown *}
624
 
        TRLV_NOCURSORKEYS       = $00080000;     {* Don't use arrow keys *}
625
 
        TRLV_NONUMPADKEYS       = $00100000;     {* Don't use numeric keypad keys *}
626
 
        TRLV_FWFONT             = $00200000;     {* Use the fixed-width font *}
627
 
        TRLV_NOGAP              = $00400000;     {* Don't leave a gap below the list
628
 
*}
629
 
 
630
 
{* class_Progress *}
631
 
 
632
 
        TROB_Progress           = (TRTG_CLS+$3A); {* A progress indicator *}
633
 
 
634
 
{* class_Space *}
635
 
 
636
 
        TROB_Space              = (TRTG_CLS+$285); {* The spaces class *}
637
 
 
638
 
        TRST_NONE               = 1;              {* No space *}
639
 
        TRST_SMALL              = 2;              {* Small space *}
640
 
        TRST_NORMAL             = 3;              {* Normal space (default) *}
641
 
        TRST_BIG                = 4;              {* Big space *}
642
 
 
643
 
{* class_Text *}
644
 
 
645
 
        TROB_Text               = (TRTG_CLS+$30); {* A line of text *}
646
 
 
647
 
        TRTX_CLIPPED            = $00010000;     {* Text is clipped *}
648
 
 
649
 
{* class_Button *}
650
 
 
651
 
        TROB_Button             = (TRTG_CLS+$31); {* A BOOPSI button gadget *}
652
 
 
653
 
        TRBU_RETURNOK           = $00010000;     {* <Return> answers the button *}
654
 
        TRBU_ESCOK              = $00020000;     {* <Esc> answers the button *}
655
 
        TRBU_SHIFTED            = $00040000;     {* Shifted shortcut only *}
656
 
        TRBU_UNSHIFTED          = $00080000;     {* Unshifted shortcut only *}
657
 
        TRBU_YRESIZE            = $00100000;     {* Button resizeable in Y direction
658
 
*}
659
 
        TRBT_TEXT               = 0;              {* Text button *}
660
 
        TRBT_GETFILE            = 1;              {* GetFile button *}
661
 
        TRBT_GETDRAWER          = 2;              {* GetDrawer button *}
662
 
        TRBT_GETENTRY           = 3;              {* GetEntry button *}
663
 
 
664
 
{* class_CheckBox *}
665
 
 
666
 
        TROB_CheckBox           = (TRTG_CLS+$2F); {* A checkbox gadget *}
667
 
 
668
 
{* class_Object *}
669
 
 
670
 
        TROB_Object             = (TRTG_CLS+$3D); {* A rootclass object *}
671
 
 
672
 
{* class_Scroller *}
673
 
 
674
 
        TROB_Scroller           = (TRTG_CLS+$35); {* A scroller gadget *}
675
 
 
676
 
        TRSC_Total              = (TRTG_OAT+$1E0);
677
 
        TRSC_Visible            = (TRTG_OAT+$1E1);
678
 
 
679
 
{* class_FrameBox *}
680
 
 
681
 
        TROB_FrameBox           = (TRTG_CLS+$32); {* A framing box *}
682
 
 
683
 
        TRFB_GROUPING           = $00000001;     {* A grouping box *}
684
 
        TRFB_FRAMING            = $00000002;     {* A framing box *}
685
 
        TRFB_TEXT               = $00000004;     {* A text container *}
686
 
 
687
 
 
688
 
VAR TritonBase : pLibrary;
689
 
 
690
 
FUNCTION TR_AddClass(app : pTR_App; d0arg : longword; supertag : longword; defaultmethod : LONGINT;
691
 
datasize : longword; tags : pTagItem) : BOOLEAN;
692
 
PROCEDURE TR_AreaFill(project : pTR_Project; rp : pRastPort; left : ULONG; top :
693
 
ULONG; right : ULONG; bottom : ULONG; typ : ULONG; dummy : POINTER);
694
 
FUNCTION TR_AutoRequest(app : pTR_App; lockproject : pTR_Project; wintags : pTagItem)
695
 
: ULONG;
696
 
PROCEDURE TR_CloseProject(project : pTR_Project);
697
 
PROCEDURE TR_CloseWindowSafely(window : pWindow);
698
 
FUNCTION TR_CreateApp(apptags : pTagItem) : pTR_App;
699
 
FUNCTION TR_CreateMsg(app : pTR_App) : pTR_Message;
700
 
PROCEDURE TR_DeleteApp(app : pTR_App);
701
 
FUNCTION TR_DoMethod(obj : pTROD_Object; messageid : ULONG; data : POINTER) : ULONG;
702
 
FUNCTION TR_DoMethodClass(obj : pTROD_Object; messageid : ULONG; data : POINTER;
703
 
trclass : pTR_Class) : ULONG;
704
 
PROCEDURE TR_DrawFrame(project : pTR_Project; rp : pRastPort; left : WORD; top : WORD;
705
 
width : WORD; height : WORD; typ : WORD; inverted : BOOLEAN);
706
 
FUNCTION TR_EasyRequest(app : pTR_App; bodyfmt : pCHAR; gadfmt : pCHAR; taglist :
707
 
pTagItem) : ULONG;
708
 
FUNCTION TR_EasyRequest(app : pTR_App; bodyfmt : pCHAR; gadfmt : String; taglist :
709
 
pTagItem) : ULONG;
710
 
FUNCTION TR_EasyRequest(app : pTR_App; bodyfmt : String; gadfmt : pCHAR; taglist :
711
 
pTagItem) : ULONG;
712
 
FUNCTION TR_EasyRequest(app : pTR_App; bodyfmt : String; gadfmt : String; taglist :
713
 
pTagItem) : ULONG;
714
 
FUNCTION TR_FirstOccurance(ch : BYTE; str : pCHAR) : LONGINT;
715
 
FUNCTION TR_FirstOccurance(ch : BYTE; str : String) : LONGINT;
716
 
FUNCTION TR_FrameBorderHeight(project : pTR_Project; typ : WORD) : ULONG;
717
 
FUNCTION TR_FrameBorderWidth(project : pTR_Project; typ : WORD) : ULONG;
718
 
FUNCTION TR_GetAttribute(project : pTR_Project; ID : ULONG; attribute : ULONG) :
719
 
ULONG;
720
 
FUNCTION TR_GetErrorString(num : WORD) : pCHAR;
721
 
FUNCTION TR_GetLastError(app : pTR_App) : WORD;
722
 
FUNCTION TR_GetMsg(app : pTR_App) : pTR_Message;
723
 
FUNCTION TR_GetPen(project : pTR_Project; pentype : ULONG; pendata : ULONG) : ULONG;
724
 
PROCEDURE TR_LockProject(project : pTR_Project);
725
 
FUNCTION TR_LockScreen(project : pTR_Project) : pScreen;
726
 
FUNCTION TR_NumOccurances(ch : BYTE; str : pCHAR) : LONGINT;
727
 
FUNCTION TR_NumOccurances(ch : BYTE; str : String) : LONGINT;
728
 
FUNCTION TR_ObtainWindow(project : pTR_Project) : pWindow;
729
 
FUNCTION TR_OpenProject(app : pTR_App; taglist : pTagItem) : pTR_Project;
730
 
PROCEDURE TR_PrintText(project : pTR_Project; rp : pRastPort; txt : pCHAR; x : ULONG;
731
 
y : ULONG; width : ULONG; flags : ULONG);
732
 
PROCEDURE TR_PrintText(project : pTR_Project; rp : pRastPort; txt : String; x : ULONG;
733
 
y : ULONG; width : ULONG; flags : ULONG);
734
 
PROCEDURE TR_ReleaseWindow(window : pWindow);
735
 
PROCEDURE TR_ReplyMsg(message : pTR_Message);
736
 
FUNCTION TR_SendMessage(project : pTR_Project; objectid : ULONG; messageid : ULONG;
737
 
messagedata : POINTER) : ULONG;
738
 
PROCEDURE TR_SetAttribute(project : pTR_Project; ID : ULONG; attribute : ULONG; value
739
 
: ULONG);
740
 
FUNCTION TR_TextHeight(project : pTR_Project; txt : pCHAR; flags : ULONG) : ULONG;
741
 
FUNCTION TR_TextHeight(project : pTR_Project; txt : String; flags : ULONG) : ULONG;
742
 
FUNCTION TR_TextWidth(project : pTR_Project; txt : pCHAR; flags : ULONG) : ULONG;
743
 
FUNCTION TR_TextWidth(project : pTR_Project; txt : String; flags : ULONG) : ULONG;
744
 
PROCEDURE TR_UnlockProject(project : pTR_Project);
745
 
PROCEDURE TR_UnlockScreen(screen : pScreen);
746
 
FUNCTION TR_Wait(app : pTR_App; otherbits : ULONG) : ULONG;
747
 
 
748
 
{
749
 
   Functions with array of const
750
 
}
751
 
FUNCTION TR_AddClassTags(app : pTR_App; d0arg : longword; supertag : longword;
752
 
defaultmethod : LONGINT; datasize : longword; const tags : Array Of Const) : BOOLEAN;
753
 
FUNCTION TR_OpenProjectTags(app : pTR_App; const taglist : Array Of Const) : pTR_Project;
754
 
FUNCTION TR_AutoRequestTags(app : pTR_App; lockproject : pTR_Project; const wintags : Array Of Const): ULONG;
755
 
FUNCTION TR_CreateAppTags(const apptags : Array of Const) : pTR_App;
756
 
FUNCTION TR_EasyRequestTags(app : pTR_App; bodyfmt : pCHAR; gadfmt : pCHAR; const taglist : Array Of Const) : ULONG;
757
 
FUNCTION TR_EasyRequestTags(app : pTR_App; bodyfmt : pCHAR; gadfmt : String; Const taglist : Array Of Const) : ULONG;
758
 
FUNCTION TR_EasyRequestTags(app : pTR_App; bodyfmt : String; gadfmt : pCHAR; Const taglist : Array Of Const) : ULONG;
759
 
FUNCTION TR_EasyRequestTags(app : pTR_App; bodyfmt : String; gadfmt : String; Const taglist : Array Of Const) : ULONG;
760
 
 
761
 
{  This are a few support functions for triton.
762
 
   Could be handy.
763
 
}
764
 
 
765
 
procedure TR_Disable(p : pTR_Project; id : Longint);
766
 
procedure TR_Enable(p : pTR_Project; id : Longint);
767
 
function TR_GetCheckBox(p : pTR_Project; id : Longint): boolean;
768
 
function TR_GetSTRPTR(p : pTR_Project; id : Longint): PChar;
769
 
function TR_GetString(p : pTR_Project; id : Longint): String;
770
 
function TR_GetValue(p : pTR_Project; gadid : Longint): Longint;
771
 
procedure TR_SetCheckBox(p : pTR_Project; id : Longint; onoff : boolean);
772
 
procedure TR_SetString(p : pTR_Project; id : Longint; txt : String);
773
 
procedure TR_SetString(p : pTR_Project; id : Longint; txt : PChar);
774
 
procedure TR_SetText(p : pTR_Project; id : Longint; txt : string);
775
 
procedure TR_SetText(p : pTR_Project; id : Longint; txt : PChar);
776
 
procedure TR_SetValue(p : pTR_Project; id : Longint; value : Longint);
777
 
procedure TR_SetWindowTitle(p : pTR_Project; thetitle : string);
778
 
procedure TR_SetWindowTitle(p : pTR_Project; thetitle : PChar);
779
 
procedure TR_UpdateListView(p : pTR_Project; gadid : Longint; thelist: pList);
780
 
 
781
 
{You can remove this include and use a define instead}
782
 
{$I useautoopenlib.inc}
783
 
{$ifdef use_init_openlib}
784
 
procedure InitTRITONLibrary;
785
 
{$endif use_init_openlib}
786
 
 
787
 
{This is a variable that knows how the unit is compiled}
788
 
var
789
 
    TRITONIsCompiledHow : longint;
790
 
 
791
 
IMPLEMENTATION
792
 
 
793
 
uses
794
 
{$ifndef dont_use_openlib}
795
 
msgbox,
796
 
{$endif dont_use_openlib}
797
 
tagsarray,pastoc;
798
 
 
799
 
procedure TR_Disable(p : pTR_Project; id : Longint);
800
 
begin
801
 
    TR_SetAttribute(p,id, TRAT_Disabled,0);
802
 
end;
803
 
 
804
 
procedure TR_Enable(p : pTR_Project; id : Longint);
805
 
begin
806
 
    TR_SetAttribute(p,id,TRAT_Disabled,1);
807
 
end;
808
 
 
809
 
function TR_GetCheckBox(p : pTR_Project; id : Longint): boolean;
810
 
var
811
 
    temp : Longint;
812
 
begin
813
 
    temp := TR_GetAttribute(p,id,TRAT_Value);
814
 
    if temp = 0 then TR_GetCheckBox := false
815
 
    else TR_GetCheckBox := true;
816
 
end;
817
 
 
818
 
function TR_GetSTRPTR(p : pTR_Project; id : Longint): PChar;
819
 
var
820
 
    temp : Longint;
821
 
begin
822
 
    temp := TR_GetAttribute(p,id,0);
823
 
    TR_GetSTRPTR := PChar(Pointer(temp));
824
 
end;
825
 
 
826
 
function TR_GetString(p : pTR_Project; id : Longint): String;
827
 
var
828
 
    temp : Longint;
829
 
begin
830
 
    temp := TR_GetAttribute(p,id,0);
831
 
    TR_GetString := strpas(PChar(Pointer(temp)));
832
 
end;
833
 
 
834
 
function TR_GetValue(p : pTR_Project; gadid : Longint): Longint;
835
 
begin
836
 
   TR_GetValue := TR_GetAttribute(p,gadid,TRAT_Value);
837
 
end;
838
 
 
839
 
procedure TR_SetCheckBox(p : pTR_Project; id : Longint; onoff : boolean);
840
 
begin
841
 
    TR_SetAttribute(p,id,TRAT_Value,Longint(byte(onoff)));
842
 
end;
843
 
 
844
 
procedure TR_SetString(p : pTR_Project; id : Longint; txt : String);
845
 
begin
846
 
    TR_SetAttribute(p,id,0,Longint(pas2c(txt)));
847
 
end;
848
 
 
849
 
procedure TR_SetString(p : pTR_Project; id : Longint; txt : PChar);
850
 
begin
851
 
    TR_SetAttribute(p,id,0,Longint(txt));
852
 
end;
853
 
 
854
 
procedure TR_SetText(p : pTR_Project; id : Longint; txt : string);
855
 
begin
856
 
    TR_SetAttribute(p,id,TRAT_Text,Longint(pas2c(txt)));
857
 
end;
858
 
 
859
 
procedure TR_SetText(p : pTR_Project; id : Longint; txt : PChar);
860
 
begin
861
 
    TR_SetAttribute(p,id,TRAT_Text,Longint(txt));
862
 
end;
863
 
 
864
 
procedure TR_SetValue(p : pTR_Project; id : Longint; value : Longint);
865
 
begin
866
 
    TR_SetAttribute(p,id,TRAT_Value,value);
867
 
end;
868
 
 
869
 
procedure TR_SetWindowTitle(p : pTR_Project; thetitle : string);
870
 
begin
871
 
    TR_SetAttribute(p,0,TRWI_Title,Longint(pas2c(thetitle)));
872
 
end;
873
 
 
874
 
procedure TR_SetWindowTitle(p : pTR_Project; thetitle : PChar);
875
 
begin
876
 
    TR_SetAttribute(p,0,TRWI_Title,Longint(thetitle));
877
 
end;
878
 
 
879
 
procedure TR_UpdateListView(p : pTR_Project; gadid : Longint; thelist: pList);
880
 
begin
881
 
    TR_SetAttribute(p,gadid,0,Longint(thelist));
882
 
end;
883
 
 
884
 
FUNCTION TR_AddClass(app : pTR_App; d0arg : longword; supertag : longword; defaultmethod : LONGINT; datasize : longword; tags : pTagItem) : BOOLEAN;
885
 
BEGIN
886
 
  ASM
887
 
        MOVE.L  A6,-(A7)
888
 
        MOVEA.L app,A1
889
 
        MOVE.L  d0arg,D0
890
 
        MOVE.L  supertag,D1
891
 
        MOVEA.L defaultmethod,A2
892
 
        MOVE.L  datasize,D2
893
 
        MOVEA.L tags,A0
894
 
        MOVEA.L TritonBase,A6
895
 
        JSR     -168(A6)
896
 
        MOVEA.L (A7)+,A6
897
 
        TST.W   D0
898
 
        BEQ.B   @end
899
 
        MOVEQ   #1,D0
900
 
  @end: MOVE.B  D0,@RESULT
901
 
  END;
902
 
END;
903
 
 
904
 
 
905
 
PROCEDURE TR_AreaFill(project : pTR_Project; rp : pRastPort; left : ULONG; top :
906
 
ULONG; right : ULONG; bottom : ULONG; typ : ULONG; dummy : POINTER);
907
 
BEGIN
908
 
  ASM
909
 
    MOVE.L  A6,-(A7)
910
 
    MOVEA.L project,A0
911
 
    MOVEA.L rp,A1
912
 
    MOVE.L  left,D0
913
 
    MOVE.L  top,D1
914
 
    MOVE.L  right,D2
915
 
    MOVE.L  bottom,D3
916
 
    MOVE.L  typ,D4
917
 
    MOVEA.L dummy,A2
918
 
    MOVEA.L TritonBase,A6
919
 
    JSR -228(A6)
920
 
    MOVEA.L (A7)+,A6
921
 
  END;
922
 
END;
923
 
 
924
 
FUNCTION TR_AutoRequest(app : pTR_App; lockproject : pTR_Project; wintags : pTagItem)
925
 
: ULONG;
926
 
BEGIN
927
 
  ASM
928
 
    MOVE.L  A6,-(A7)
929
 
    MOVEA.L app,A1
930
 
    MOVEA.L lockproject,A0
931
 
    MOVEA.L wintags,A2
932
 
    MOVEA.L TritonBase,A6
933
 
    JSR -084(A6)
934
 
    MOVEA.L (A7)+,A6
935
 
    MOVE.L  D0,@RESULT
936
 
  END;
937
 
END;
938
 
 
939
 
PROCEDURE TR_CloseProject(project : pTR_Project);
940
 
BEGIN
941
 
  ASM
942
 
    MOVE.L  A6,-(A7)
943
 
    MOVEA.L project,A0
944
 
    MOVEA.L TritonBase,A6
945
 
    JSR -036(A6)
946
 
    MOVEA.L (A7)+,A6
947
 
  END;
948
 
END;
949
 
 
950
 
PROCEDURE TR_CloseWindowSafely(window : pWindow);
951
 
BEGIN
952
 
  ASM
953
 
    MOVE.L  A6,-(A7)
954
 
    MOVEA.L window,A0
955
 
    MOVEA.L TritonBase,A6
956
 
    JSR -126(A6)
957
 
    MOVEA.L (A7)+,A6
958
 
  END;
959
 
END;
960
 
 
961
 
FUNCTION TR_CreateApp(apptags : pTagItem) : pTR_App;
962
 
BEGIN
963
 
  ASM
964
 
    MOVE.L  A6,-(A7)
965
 
    MOVEA.L apptags,A1
966
 
    MOVEA.L TritonBase,A6
967
 
    JSR -096(A6)
968
 
    MOVEA.L (A7)+,A6
969
 
    MOVE.L  D0,@RESULT
970
 
  END;
971
 
END;
972
 
 
973
 
FUNCTION TR_CreateMsg(app : pTR_App) : pTR_Message;
974
 
BEGIN
975
 
  ASM
976
 
    MOVE.L  A6,-(A7)
977
 
    MOVEA.L app,A1
978
 
    MOVEA.L TritonBase,A6
979
 
    JSR -234(A6)
980
 
    MOVEA.L (A7)+,A6
981
 
    MOVE.L  D0,@RESULT
982
 
  END;
983
 
END;
984
 
 
985
 
PROCEDURE TR_DeleteApp(app : pTR_App);
986
 
BEGIN
987
 
  ASM
988
 
    MOVE.L  A6,-(A7)
989
 
    MOVEA.L app,A1
990
 
    MOVEA.L TritonBase,A6
991
 
    JSR -102(A6)
992
 
    MOVEA.L (A7)+,A6
993
 
  END;
994
 
END;
995
 
 
996
 
FUNCTION TR_DoMethod(obj : pTROD_Object; messageid : ULONG; data : POINTER) : ULONG;
997
 
BEGIN
998
 
  ASM
999
 
    MOVE.L  A6,-(A7)
1000
 
    MOVEA.L obj,A0
1001
 
    MOVE.L  messageid,D0
1002
 
    MOVEA.L data,A1
1003
 
    MOVEA.L TritonBase,A6
1004
 
    JSR -216(A6)
1005
 
    MOVEA.L (A7)+,A6
1006
 
    MOVE.L  D0,@RESULT
1007
 
  END;
1008
 
END;
1009
 
 
1010
 
FUNCTION TR_DoMethodClass(obj : pTROD_Object; messageid : ULONG; data : POINTER;
1011
 
trclass : pTR_Class) : ULONG;
1012
 
BEGIN
1013
 
  ASM
1014
 
    MOVE.L  A6,-(A7)
1015
 
    MOVEA.L obj,A0
1016
 
    MOVE.L  messageid,D0
1017
 
    MOVEA.L data,A1
1018
 
    MOVEA.L trclass,A2
1019
 
    MOVEA.L TritonBase,A6
1020
 
    JSR -222(A6)
1021
 
    MOVEA.L (A7)+,A6
1022
 
    MOVE.L  D0,@RESULT
1023
 
  END;
1024
 
END;
1025
 
 
1026
 
PROCEDURE TR_DrawFrame(project : pTR_Project; rp : pRastPort; left : WORD; top : WORD;
1027
 
width : WORD; height : WORD; typ : WORD; inverted : BOOLEAN);
1028
 
BEGIN
1029
 
  ASM
1030
 
    MOVE.L  A6,-(A7)
1031
 
    MOVEA.L project,A0
1032
 
    MOVEA.L rp,A1
1033
 
    MOVE.L  left,D1
1034
 
    MOVE.L  top,D2
1035
 
    MOVE.L  width,D3
1036
 
    MOVE.L  height,D4
1037
 
    MOVE.L  typ,D0
1038
 
    MOVE.L  inverted,D5
1039
 
    MOVEA.L TritonBase,A6
1040
 
    JSR -174(A6)
1041
 
    MOVEA.L (A7)+,A6
1042
 
  END;
1043
 
END;
1044
 
 
1045
 
FUNCTION TR_EasyRequest(app : pTR_App; bodyfmt : pCHAR; gadfmt : pCHAR; taglist :
1046
 
pTagItem) : ULONG;
1047
 
BEGIN
1048
 
  ASM
1049
 
    MOVE.L  A6,-(A7)
1050
 
    MOVEA.L app,A1
1051
 
    MOVEA.L bodyfmt,A2
1052
 
    MOVEA.L gadfmt,A3
1053
 
    MOVEA.L taglist,A0
1054
 
    MOVEA.L TritonBase,A6
1055
 
    JSR -090(A6)
1056
 
    MOVEA.L (A7)+,A6
1057
 
    MOVE.L  D0,@RESULT
1058
 
  END;
1059
 
END;
1060
 
 
1061
 
FUNCTION TR_EasyRequest(app : pTR_App; bodyfmt : PChar; gadfmt : String; taglist :
1062
 
pTagItem) : ULONG;
1063
 
begin
1064
 
    TR_EasyRequest := TR_EasyRequest(app,bodyfmt,pas2c(gadfmt),taglist);
1065
 
end;
1066
 
 
1067
 
FUNCTION TR_EasyRequest(app : pTR_App; bodyfmt : String; gadfmt : PChar; taglist :
1068
 
pTagItem) : ULONG;
1069
 
begin
1070
 
    TR_EasyRequest := TR_EasyRequest(app,pas2c(bodyfmt),gadfmt,taglist);
1071
 
end;
1072
 
 
1073
 
FUNCTION TR_EasyRequest(app : pTR_App; bodyfmt : String; gadfmt : String; taglist :
1074
 
pTagItem) : ULONG;
1075
 
begin
1076
 
    TR_EasyRequest := TR_EasyRequest(app,pas2c(bodyfmt),pas2c(gadfmt),taglist);
1077
 
end;
1078
 
 
1079
 
FUNCTION TR_FirstOccurance(ch : BYTE; str : pCHAR) : LONGINT;
1080
 
BEGIN
1081
 
  ASM
1082
 
    MOVE.L  A6,-(A7)
1083
 
    MOVE.L  ch,D0
1084
 
    MOVEA.L str,A0
1085
 
    MOVEA.L TritonBase,A6
1086
 
    JSR -042(A6)
1087
 
    MOVEA.L (A7)+,A6
1088
 
    MOVE.L  D0,@RESULT
1089
 
  END;
1090
 
END;
1091
 
 
1092
 
FUNCTION TR_FirstOccurance(ch : BYTE; str : String) : LONGINT;
1093
 
BEGIN
1094
 
    TR_FirstOccurance := TR_FirstOccurance(ch, pas2c(str));
1095
 
END;
1096
 
 
1097
 
FUNCTION TR_FrameBorderHeight(project : pTR_Project; typ : WORD) : ULONG;
1098
 
BEGIN
1099
 
  ASM
1100
 
    MOVE.L  A6,-(A7)
1101
 
    MOVEA.L project,A0
1102
 
    MOVE.L  typ,D0
1103
 
    MOVEA.L TritonBase,A6
1104
 
    JSR -186(A6)
1105
 
    MOVEA.L (A7)+,A6
1106
 
    MOVE.L  D0,@RESULT
1107
 
  END;
1108
 
END;
1109
 
 
1110
 
FUNCTION TR_FrameBorderWidth(project : pTR_Project; typ : WORD) : ULONG;
1111
 
BEGIN
1112
 
  ASM
1113
 
    MOVE.L  A6,-(A7)
1114
 
    MOVEA.L project,A0
1115
 
    MOVE.L  typ,D0
1116
 
    MOVEA.L TritonBase,A6
1117
 
    JSR -180(A6)
1118
 
    MOVEA.L (A7)+,A6
1119
 
    MOVE.L  D0,@RESULT
1120
 
  END;
1121
 
END;
1122
 
 
1123
 
FUNCTION TR_GetAttribute(project : pTR_Project; ID : ULONG; attribute : ULONG) :
1124
 
ULONG;
1125
 
BEGIN
1126
 
  ASM
1127
 
    MOVE.L  A6,-(A7)
1128
 
    MOVEA.L project,A0
1129
 
    MOVE.L  ID,D0
1130
 
    MOVE.L  attribute,D1
1131
 
    MOVEA.L TritonBase,A6
1132
 
    JSR -066(A6)
1133
 
    MOVEA.L (A7)+,A6
1134
 
    MOVE.L  D0,@RESULT
1135
 
  END;
1136
 
END;
1137
 
 
1138
 
FUNCTION TR_GetErrorString(num : WORD) : pCHAR;
1139
 
BEGIN
1140
 
  ASM
1141
 
    MOVE.L  A6,-(A7)
1142
 
    MOVE.L  num,D0
1143
 
    MOVEA.L TritonBase,A6
1144
 
    JSR -054(A6)
1145
 
    MOVEA.L (A7)+,A6
1146
 
    MOVE.L  D0,@RESULT
1147
 
  END;
1148
 
END;
1149
 
 
1150
 
FUNCTION TR_GetLastError(app : pTR_App) : WORD;
1151
 
BEGIN
1152
 
  ASM
1153
 
    MOVE.L  A6,-(A7)
1154
 
    MOVEA.L app,A1
1155
 
    MOVEA.L TritonBase,A6
1156
 
    JSR -132(A6)
1157
 
    MOVEA.L (A7)+,A6
1158
 
    MOVE.L  D0,@RESULT
1159
 
  END;
1160
 
END;
1161
 
 
1162
 
FUNCTION TR_GetMsg(app : pTR_App) : pTR_Message;
1163
 
BEGIN
1164
 
  ASM
1165
 
    MOVE.L  A6,-(A7)
1166
 
    MOVEA.L app,A1
1167
 
    MOVEA.L TritonBase,A6
1168
 
    JSR -108(A6)
1169
 
    MOVEA.L (A7)+,A6
1170
 
    MOVE.L  D0,@RESULT
1171
 
  END;
1172
 
END;
1173
 
 
1174
 
FUNCTION TR_GetPen(project : pTR_Project; pentype : ULONG; pendata : ULONG) : ULONG;
1175
 
BEGIN
1176
 
  ASM
1177
 
    MOVE.L  A6,-(A7)
1178
 
    MOVEA.L project,A0
1179
 
    MOVE.L  pentype,D0
1180
 
    MOVE.L  pendata,D1
1181
 
    MOVEA.L TritonBase,A6
1182
 
    JSR -210(A6)
1183
 
    MOVEA.L (A7)+,A6
1184
 
    MOVE.L  D0,@RESULT
1185
 
  END;
1186
 
END;
1187
 
 
1188
 
PROCEDURE TR_LockProject(project : pTR_Project);
1189
 
BEGIN
1190
 
  ASM
1191
 
    MOVE.L  A6,-(A7)
1192
 
    MOVEA.L project,A0
1193
 
    MOVEA.L TritonBase,A6
1194
 
    JSR -072(A6)
1195
 
    MOVEA.L (A7)+,A6
1196
 
  END;
1197
 
END;
1198
 
 
1199
 
FUNCTION TR_LockScreen(project : pTR_Project) : pScreen;
1200
 
BEGIN
1201
 
  ASM
1202
 
    MOVE.L  A6,-(A7)
1203
 
    MOVEA.L project,A0
1204
 
    MOVEA.L TritonBase,A6
1205
 
    JSR -138(A6)
1206
 
    MOVEA.L (A7)+,A6
1207
 
    MOVE.L  D0,@RESULT
1208
 
  END;
1209
 
END;
1210
 
 
1211
 
FUNCTION TR_NumOccurances(ch : BYTE; str : pCHAR) : LONGINT;
1212
 
BEGIN
1213
 
  ASM
1214
 
    MOVE.L  A6,-(A7)
1215
 
    MOVE.L  ch,D0
1216
 
    MOVEA.L str,A0
1217
 
    MOVEA.L TritonBase,A6
1218
 
    JSR -048(A6)
1219
 
    MOVEA.L (A7)+,A6
1220
 
    MOVE.L  D0,@RESULT
1221
 
  END;
1222
 
END;
1223
 
 
1224
 
FUNCTION TR_NumOccurances(ch : BYTE; str : String) : LONGINT;
1225
 
BEGIN
1226
 
    TR_NumOccurances := TR_NumOccurances(ch, pas2c(str));
1227
 
END;
1228
 
 
1229
 
FUNCTION TR_ObtainWindow(project : pTR_Project) : pWindow;
1230
 
BEGIN
1231
 
  ASM
1232
 
    MOVE.L  A6,-(A7)
1233
 
    MOVEA.L project,A0
1234
 
    MOVEA.L TritonBase,A6
1235
 
    JSR -150(A6)
1236
 
    MOVEA.L (A7)+,A6
1237
 
    MOVE.L  D0,@RESULT
1238
 
  END;
1239
 
END;
1240
 
 
1241
 
FUNCTION TR_OpenProject(app : pTR_App; taglist : pTagItem) : pTR_Project;
1242
 
BEGIN
1243
 
  ASM
1244
 
    MOVE.L  A6,-(A7)
1245
 
    MOVEA.L app,A1
1246
 
    MOVEA.L taglist,A0
1247
 
    MOVEA.L TritonBase,A6
1248
 
    JSR -030(A6)
1249
 
    MOVEA.L (A7)+,A6
1250
 
    MOVE.L  D0,@RESULT
1251
 
  END;
1252
 
END;
1253
 
 
1254
 
PROCEDURE TR_PrintText(project : pTR_Project; rp : pRastPort; txt : pCHAR; x : ULONG;
1255
 
y : ULONG; width : ULONG; flags : ULONG);
1256
 
BEGIN
1257
 
  ASM
1258
 
    MOVE.L  A6,-(A7)
1259
 
    MOVEA.L project,A0
1260
 
    MOVEA.L rp,A1
1261
 
    MOVEA.L txt,A2
1262
 
    MOVE.L  x,D1
1263
 
    MOVE.L  y,D2
1264
 
    MOVE.L  width,D3
1265
 
    MOVE.L  flags,D0
1266
 
    MOVEA.L TritonBase,A6
1267
 
    JSR -204(A6)
1268
 
    MOVEA.L (A7)+,A6
1269
 
  END;
1270
 
END;
1271
 
 
1272
 
PROCEDURE TR_PrintText(project : pTR_Project; rp : pRastPort; txt : String; x : ULONG;
1273
 
y : ULONG; width : ULONG; flags : ULONG);
1274
 
BEGIN
1275
 
    TR_PrintText(project,rp,pas2c(txt),x,y,width,flags);
1276
 
END;
1277
 
 
1278
 
PROCEDURE TR_ReleaseWindow(window : pWindow);
1279
 
BEGIN
1280
 
  ASM
1281
 
    MOVE.L  A6,-(A7)
1282
 
    MOVEA.L window,A0
1283
 
    MOVEA.L TritonBase,A6
1284
 
    JSR -156(A6)
1285
 
    MOVEA.L (A7)+,A6
1286
 
  END;
1287
 
END;
1288
 
 
1289
 
PROCEDURE TR_ReplyMsg(message : pTR_Message);
1290
 
BEGIN
1291
 
  ASM
1292
 
    MOVE.L  A6,-(A7)
1293
 
    MOVEA.L message,A1
1294
 
    MOVEA.L TritonBase,A6
1295
 
    JSR -114(A6)
1296
 
    MOVEA.L (A7)+,A6
1297
 
  END;
1298
 
END;
1299
 
 
1300
 
FUNCTION TR_SendMessage(project : pTR_Project; objectid : ULONG; messageid : ULONG;
1301
 
messagedata : POINTER) : ULONG;
1302
 
BEGIN
1303
 
  ASM
1304
 
    MOVE.L  A6,-(A7)
1305
 
    MOVEA.L project,A0
1306
 
    MOVE.L  objectid,D0
1307
 
    MOVE.L  messageid,D1
1308
 
    MOVEA.L messagedata,A1
1309
 
    MOVEA.L TritonBase,A6
1310
 
    JSR -162(A6)
1311
 
    MOVEA.L (A7)+,A6
1312
 
    MOVE.L  D0,@RESULT
1313
 
  END;
1314
 
END;
1315
 
 
1316
 
PROCEDURE TR_SetAttribute(project : pTR_Project; ID : ULONG; attribute : ULONG; value
1317
 
: ULONG);
1318
 
BEGIN
1319
 
  ASM
1320
 
    MOVE.L  A6,-(A7)
1321
 
    MOVEA.L project,A0
1322
 
    MOVE.L  ID,D0
1323
 
    MOVE.L  attribute,D1
1324
 
    MOVE.L  value,D2
1325
 
    MOVEA.L TritonBase,A6
1326
 
    JSR -060(A6)
1327
 
    MOVEA.L (A7)+,A6
1328
 
  END;
1329
 
END;
1330
 
 
1331
 
FUNCTION TR_TextHeight(project : pTR_Project; txt : pCHAR; flags : ULONG) : ULONG;
1332
 
BEGIN
1333
 
  ASM
1334
 
    MOVE.L  A6,-(A7)
1335
 
    MOVEA.L project,A0
1336
 
    MOVEA.L txt,A2
1337
 
    MOVE.L  flags,D0
1338
 
    MOVEA.L TritonBase,A6
1339
 
    JSR -198(A6)
1340
 
    MOVEA.L (A7)+,A6
1341
 
    MOVE.L  D0,@RESULT
1342
 
  END;
1343
 
END;
1344
 
 
1345
 
FUNCTION TR_TextHeight(project : pTR_Project; txt : String; flags : ULONG) : ULONG;
1346
 
BEGIN
1347
 
    TR_TextHeight :=  TR_TextHeight(project,pas2c(txt),flags);
1348
 
END;
1349
 
 
1350
 
FUNCTION TR_TextWidth(project : pTR_Project; txt : pCHAR; flags : ULONG) : ULONG;
1351
 
BEGIN
1352
 
  ASM
1353
 
    MOVE.L  A6,-(A7)
1354
 
    MOVEA.L project,A0
1355
 
    MOVEA.L txt,A2
1356
 
    MOVE.L  flags,D0
1357
 
    MOVEA.L TritonBase,A6
1358
 
    JSR -192(A6)
1359
 
    MOVEA.L (A7)+,A6
1360
 
    MOVE.L  D0,@RESULT
1361
 
  END;
1362
 
END;
1363
 
 
1364
 
FUNCTION TR_TextWidth(project : pTR_Project; txt : String; flags : ULONG) : ULONG;
1365
 
BEGIN
1366
 
    TR_TextWidth := TR_TextWidth(project,pas2c(txt),flags);
1367
 
END;
1368
 
 
1369
 
PROCEDURE TR_UnlockProject(project : pTR_Project);
1370
 
BEGIN
1371
 
  ASM
1372
 
    MOVE.L  A6,-(A7)
1373
 
    MOVEA.L project,A0
1374
 
    MOVEA.L TritonBase,A6
1375
 
    JSR -078(A6)
1376
 
    MOVEA.L (A7)+,A6
1377
 
  END;
1378
 
END;
1379
 
 
1380
 
PROCEDURE TR_UnlockScreen(screen : pScreen);
1381
 
BEGIN
1382
 
  ASM
1383
 
    MOVE.L  A6,-(A7)
1384
 
    MOVEA.L screen,A0
1385
 
    MOVEA.L TritonBase,A6
1386
 
    JSR -144(A6)
1387
 
    MOVEA.L (A7)+,A6
1388
 
  END;
1389
 
END;
1390
 
 
1391
 
FUNCTION TR_Wait(app : pTR_App; otherbits : ULONG) : ULONG;
1392
 
BEGIN
1393
 
  ASM
1394
 
    MOVE.L  A6,-(A7)
1395
 
    MOVEA.L app,A1
1396
 
    MOVE.L  otherbits,D0
1397
 
    MOVEA.L TritonBase,A6
1398
 
    JSR -120(A6)
1399
 
    MOVEA.L (A7)+,A6
1400
 
    MOVE.L  D0,@RESULT
1401
 
  END;
1402
 
END;
1403
 
 
1404
 
{
1405
 
   Functions with array of const
1406
 
}
1407
 
{
1408
 
 Functions and procedures with array of const go here
1409
 
}
1410
 
FUNCTION TR_AddClassTags(app : pTR_App; d0arg : longword; supertag : longword; defaultmethod : LONGINT; datasize : longword; const tags : Array Of Const) : BOOLEAN;
1411
 
begin
1412
 
    TR_AddClassTags := TR_AddClass(app , d0arg , supertag , defaultmethod , datasize , readintags(tags));
1413
 
end;
1414
 
 
1415
 
FUNCTION TR_EasyRequestTags(app : pTR_App; bodyfmt : pCHAR; gadfmt : pCHAR; const taglist : Array Of Const) : Ulong;
1416
 
begin
1417
 
    TR_EasyRequestTags := TR_EasyRequest(app , bodyfmt , gadfmt , readintags(taglist));
1418
 
end;
1419
 
 
1420
 
FUNCTION TR_OpenProjectTags(app : pTR_App; const taglist : Array Of Const) : pTR_Project;
1421
 
begin
1422
 
    TR_OpenProjectTags := TR_OpenProject(app , readintags(taglist));
1423
 
end;
1424
 
 
1425
 
FUNCTION TR_AutoRequestTags(app : pTR_App; lockproject : pTR_Project; const wintags : Array Of Const): ULONG;
1426
 
begin
1427
 
    TR_AutoRequestTags := TR_AutoRequest(app,lockproject,readintags(wintags));
1428
 
end;
1429
 
 
1430
 
FUNCTION TR_CreateAppTags(const apptags : Array of Const) : pTR_App;
1431
 
begin
1432
 
    TR_CreateAppTags := TR_CreateApp(readintags(apptags));
1433
 
end;
1434
 
 
1435
 
FUNCTION TR_EasyRequestTags(app : pTR_App; bodyfmt : pCHAR; gadfmt : String; Const taglist : Array Of Const) : ULONG;
1436
 
begin
1437
 
    TR_EasyRequestTags := TR_EasyRequest(app,bodyfmt,pas2c(gadfmt),readintags(taglist));
1438
 
end;
1439
 
 
1440
 
FUNCTION TR_EasyRequestTags(app : pTR_App; bodyfmt : String; gadfmt : pCHAR; Const taglist : Array Of Const) : ULONG;
1441
 
begin
1442
 
    TR_EasyRequestTags := TR_EasyRequest(app,pas2c(bodyfmt),gadfmt,readintags(taglist));
1443
 
end;
1444
 
 
1445
 
FUNCTION TR_EasyRequestTags(app : pTR_App; bodyfmt : String; gadfmt : String; Const taglist : Array Of Const) : ULONG;
1446
 
begin
1447
 
    TR_EasyRequestTags := TR_EasyRequest(app,pas2c(bodyfmt),pas2c(gadfmt),readintags(taglist));
1448
 
end;
1449
 
 
1450
 
const
1451
 
    { Change VERSION and LIBVERSION to proper values }
1452
 
 
1453
 
    VERSION : string[2] = '0';
1454
 
    LIBVERSION : longword = 0;
1455
 
 
1456
 
{$ifdef use_init_openlib}
1457
 
  {$Info Compiling initopening of triton.library}
1458
 
  {$Info don't forget to use InitTRITONLibrary in the beginning of your program}
1459
 
 
1460
 
var
1461
 
    triton_exit : Pointer;
1462
 
 
1463
 
procedure ClosetritonLibrary;
1464
 
begin
1465
 
    ExitProc := triton_exit;
1466
 
    if TritonBase <> nil then begin
1467
 
        CloseLibrary(TritonBase);
1468
 
        TritonBase := nil;
1469
 
    end;
1470
 
end;
1471
 
 
1472
 
procedure InitTRITONLibrary;
1473
 
begin
1474
 
    TritonBase := nil;
1475
 
    TritonBase := OpenLibrary(TRITONNAME,LIBVERSION);
1476
 
    if TritonBase <> nil then begin
1477
 
        triton_exit := ExitProc;
1478
 
        ExitProc := @ClosetritonLibrary;
1479
 
    end else begin
1480
 
        MessageBox('FPC Pascal Error',
1481
 
        'Can''t open triton.library version ' + VERSION + #10 +
1482
 
        'Deallocating resources and closing down',
1483
 
        'Oops');
1484
 
        halt(20);
1485
 
    end;
1486
 
end;
1487
 
 
1488
 
begin
1489
 
    TRITONIsCompiledHow := 2;
1490
 
{$endif use_init_openlib}
1491
 
 
1492
 
{$ifdef use_auto_openlib}
1493
 
  {$Info Compiling autoopening of triton.library}
1494
 
 
1495
 
var
1496
 
    triton_exit : Pointer;
1497
 
 
1498
 
procedure ClosetritonLibrary;
1499
 
begin
1500
 
    ExitProc := triton_exit;
1501
 
    if TritonBase <> nil then begin
1502
 
        CloseLibrary(TritonBase);
1503
 
        TritonBase := nil;
1504
 
    end;
1505
 
end;
1506
 
 
1507
 
begin
1508
 
    TritonBase := nil;
1509
 
    TritonBase := OpenLibrary(TRITONNAME,LIBVERSION);
1510
 
    if TritonBase <> nil then begin
1511
 
        triton_exit := ExitProc;
1512
 
        ExitProc := @ClosetritonLibrary;
1513
 
        TRITONIsCompiledHow := 1;
1514
 
    end else begin
1515
 
        MessageBox('FPC Pascal Error',
1516
 
        'Can''t open triton.library version ' + VERSION + #10 +
1517
 
        'Deallocating resources and closing down',
1518
 
        'Oops');
1519
 
        halt(20);
1520
 
    end;
1521
 
 
1522
 
{$endif use_auto_openlib}
1523
 
 
1524
 
{$ifdef dont_use_openlib}
1525
 
begin
1526
 
    TRITONIsCompiledHow := 3;
1527
 
   {$Warning No autoopening of triton.library compiled}
1528
 
   {$Warning Make sure you open triton.library yourself}
1529
 
{$endif dont_use_openlib}
1530
 
 
1531
 
 
1532
 
END. (* UNIT TRITON *)
1533
 
 
1534
 
 
1535
 
 
1536
 
 
1537
 
 
1538