home *** CD-ROM | disk | FTP | other *** search
- #ifndef LIBRARIES_TRITON_H
- #define LIBRARIES_TRITON_H
-
- /*
- ** $VER: triton.h 1.138 (1.4.94)
- ** Triton Release 1.0
- **
- ** triton.library definitions
- **
- ** (C) Copyright 1993-1994 Stefan Zeiger
- ** All Rights Reserved
- */
-
- #define TRITONNAME "triton.library"
- #define TRITON10VERSION 1L
-
-
- ////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////// Includes //
- ////////////////////////////////////////////////////////////////////////////
-
- #define INTUI_V36_NAMES_ONLY
-
- #ifndef EXEC_TYPES_H
- #include <exec/types.h>
- #endif
-
- #ifndef INTUITION_INTUITIONBASE_H
- #include <intuition/intuitionbase.h>
- #endif
-
- #ifndef INTUITION_INTUITION_H
- #include <intuition/intuition.h>
- #endif
-
- #ifndef INTUITION_GADGETCLASS_H
- #include <intuition/gadgetclass.h>
- #endif
-
- #ifndef INTUITION_IMAGECLASS_H
- #include <intuition/imageclass.h>
- #endif
-
- #ifndef INTUITION_CLASSUSR_H
- #include <intuition/classusr.h>
- #endif
-
- #ifndef GRAPHICS_GFX_H
- #include <graphics/gfx.h>
- #endif
-
- #ifndef GRAPHICS_GFXBASE_H
- #include <graphics/gfxbase.h>
- #endif
-
- #ifndef GRAPHICS_GFXMACROS_H
- #include <graphics/gfxmacros.h>
- #endif
-
- #ifndef LIBRARIES_GADTOOLS_H
- #include <libraries/gadtools.h>
- #endif
-
- #ifndef LIBRARIES_DISKFONT_H
- #include <libraries/diskfont.h>
- #endif
-
- #ifndef UTILITY_TAGITEM_H
- #include <utility/tagitem.h>
- #endif
-
- #ifndef WORKBENCH_STARTUP_H
- #include <workbench/startup.h>
- #endif
-
- #ifndef WORKBENCH_WORKBENCH_H
- #include <workbench/workbench.h>
- #endif
-
-
- ////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////// Some useful things //
- ////////////////////////////////////////////////////////////////////////////
-
- #ifndef max
- #define max(a,b) ((a)>(b)?(a):(b))
- #endif
-
- #ifndef min
- #define min(a,b) ((a)<=(b)?(a):(b))
- #endif
-
-
- ////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////// Macros //
- ////////////////////////////////////////////////////////////////////////////
-
- #ifndef TR_NOMACROS
-
- // Project
- #define ProjectDefinition(name) struct TagItem name[]=
- #define EndProject TAG_END
- #define WindowTitle(t) TRWI_Title,(ULONG)(t)
- #define WindowID(id) TRWI_ID,(ULONG)(id)
- #define WindowFlags(f) TRWI_Flags,(ULONG)(f)
- #define WindowPosition(pos) TRWI_Position,(ULONG)(pos)
- #define WindowUnderscore(und) TRWI_Underscore,(ULONG)(und)
- #define WindowDimensions(dim) TRWI_Dimensions,(ULONG)(dim)
- #define WindowBackfillWin TRWI_Backfill,TRBF_WINDOWBACK
- #define WindowBackfillReq TRWI_Backfill,TRBF_REQUESTERBACK
- #define WindowBackfillNone TRWI_Backfill,TRBF_NONE
- #define WindowBackfillS TRWI_Backfill,TRBF_SHINE
- #define WindowBackfillSA TRWI_Backfill,TRBF_SHINE_SHADOW
- #define WindowBackfillSF TRWI_Backfill,TRBF_SHINE_FILL
- #define WindowBackfillSB TRWI_Backfill,TRBF_SHINE_BACKGROUND
- #define WindowBackfillA TRWI_Backfill,TRBF_SHADOW
- #define WindowBackfillAF TRWI_Backfill,TRBF_SHADOW_FILL
- #define WindowBackfillAB TRWI_Backfill,TRBF_SHADOW_BACKGROUND
- #define WindowBackfillF TRWI_Backfill,TRBF_FILL
- #define WindowBackfillFB TRWI_Backfill,TRBF_FILL_BACKGROUND
- #define CustomScreen(scr) TRWI_CustomScreen,((ULONG)(scr))
-
- // Menus
- #define BeginMenu(t) TRMN_Title,(ULONG)(t)
- #define MenuFlags(f) TRMN_Flags,(f)
- #define MenuItem(t,id) TRMN_Item,(ULONG)(t),TRAT_ID,id
- #define BeginSub(t) TRMN_Item,(ULONG)(t)
- #define MenuItemD(t,id) TRMN_Item,(ULONG)(t),MenuFlags(TRMF_DISABLED),TRAT_ID,id
- #define SubItem(t,id) TRMN_Sub,(ULONG)(t),TRAT_ID,id
- #define SubItemD(t,id) TRMN_Sub,(ULONG)(t),MenuFlags(TRMF_DISABLED),TRAT_ID,id
- #define ItemBarlabel TRMN_Item,TRMN_BARLABEL
- #define SubBarlabel TRMN_Sub,TRMN_BARLABEL
-
- // Groups
- #define HorizGroup TRGR_Horiz,NULL
- #define HorizGroupE TRGR_Horiz,TRGR_EQUALSHARE
- #define HorizGroupS TRGR_Horiz,TRGR_PROPSPACES
- #define HorizGroupA TRGR_Horiz,TRGR_ALIGN
- #define HorizGroupEA TRGR_Horiz,TRGR_EQUALSHARE|TRGR_ALIGN
- #define HorizGroupSA TRGR_Horiz,TRGR_PROPSPACES|TRGR_ALIGN
- #define HorizGroupC TRGR_Horiz,TRGR_CENTER
- #define HorizGroupEC TRGR_Horiz,TRGR_EQUALSHARE|TRGR_CENTER
- #define HorizGroupSC TRGR_Horiz,TRGR_PROPSPACES|TRGR_CENTER
- #define HorizGroupAC TRGR_Horiz,TRGR_ALIGN|TRGR_CENTER
- #define HorizGroupEAC TRGR_Horiz,TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER
- #define HorizGroupSAC TRGR_Horiz,TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER
- #define VertGroup TRGR_Vert,NULL
- #define VertGroupE TRGR_Vert,TRGR_EQUALSHARE
- #define VertGroupS TRGR_Vert,TRGR_PROPSPACES
- #define VertGroupA TRGR_Vert,TRGR_ALIGN
- #define VertGroupEA TRGR_Vert,TRGR_EQUALSHARE|TRGR_ALIGN
- #define VertGroupSA TRGR_Vert,TRGR_PROPSPACES|TRGR_ALIGN
- #define VertGroupC TRGR_Vert,TRGR_CENTER
- #define VertGroupEC TRGR_Vert,TRGR_EQUALSHARE|TRGR_CENTER
- #define VertGroupSC TRGR_Vert,TRGR_PROPSPACES|TRGR_CENTER
- #define VertGroupAC TRGR_Vert,TRGR_ALIGN|TRGR_CENTER
- #define VertGroupEAC TRGR_Vert,TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER
- #define VertGroupSAC TRGR_Vert,TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER
- #define EndGroup TRGR_End,NULL
- #define ColumnArray TRGR_Horiz,TRGR_ARRAY|TRGR_ALIGN|TRGR_CENTER
- #define LineArray TRGR_Vert,TRGR_ARRAY|TRGR_ALIGN|TRGR_CENTER
- #define BeginColumn TRGR_Vert,TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER
- #define BeginLine TRGR_Horiz,TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER
- #define EndColumn EndGroup
- #define EndLine EndGroup
- #define EndArray EndGroup
-
- // Spaces
- #define SpaceB TROB_Space,TRST_BIG
- #define Space TROB_Space,TRST_NORMAL
- #define SpaceS TROB_Space,TRST_SMALL
- #define SpaceN TROB_Space,TRST_NONE
-
- // Text
- #define TextN(text) TROB_Text,NULL,TRAT_Text,(ULONG)text
- #define TextH(text) TROB_Text,NULL,TRAT_Text,(ULONG)text,TRAT_Flags,TRTX_HIGHLIGHT
- #define Text3(text) TROB_Text,NULL,TRAT_Text,(ULONG)text,TRAT_Flags,TRTX_3D
- #define TextB(text) TROB_Text,NULL,TRAT_Text,(ULONG)text,TRAT_Flags,TRTX_BOLD
- #define TextT(text) TROB_Text,NULL,TRAT_Text,(ULONG)text,TRAT_Flags,TRTX_TITLE
- #define CenteredText(text) HorizGroupSC,Space,TextN(text),Space,EndGroup
- #define CenteredTextH(text) HorizGroupSC,Space,TextH(text),Space,EndGroup
- #define CenteredText3(text) HorizGroupSC,Space,Text3(text),Space,EndGroup
- #define CenteredTextB(text) HorizGroupSC,Space,TextB(text),Space,EndGroup
- #define CenteredText_BS(text) HorizGroupSC,SpaceB,TextN(text),SpaceB,EndGroup
- #define TextBox(text,id,mwid) FrameBox, ObjectBackfillB, VertGroup, SpaceS, HorizGroupSC, Space, TextN(text),TRAT_ID,id,TRAT_MinWidth,mwid, Space, EndGroup, SpaceS, EndGroup
- #define TextRIGHT(t,id) HorizGroupS, Space, TextN(t), ID(id), EndGroup
- #define Integer(i) TROB_Text,NULL,TRAT_Value,(ULONG)(i)
- #define IntegerH(i) TROB_Text,NULL,TRAT_Value,(ULONG)(i),TRAT_Flags,TRTX_HIGHLIGHT
- #define Integer3(i) TROB_Text,NULL,TRAT_Value,(ULONG)(i),TRAT_Flags,TRTX_3D
- #define IntegerB(i) TROB_Text,NULL,TRAT_Value,(ULONG)(i),TRAT_Flags,TRTX_BOLD
- #define CenteredInteger(i) HorizGroupSC,Space,Integer(i),Space,EndGroup
- #define CenteredIntegerH(i) HorizGroupSC,Space,IntegerH(i),Space,EndGroup
- #define CenteredInteger3(i) HorizGroupSC,Space,Integer3(i),Space,EndGroup
- #define CenteredIntegerB(i) HorizGroupSC,Space,IntegerB(i),Space,EndGroup
- #define IntegerBox(def,id,mwid) FrameBox, ObjectBackfillB, VertGroup, SpaceS, HorizGroupSC, Space, Integer(def),TRAT_ID,id,TRAT_MinWidth,mwid, Space, EndGroup, SpaceS, EndGroup
-
- // Buttons
- #define Button(text,id) TROB_Button,NULL,TRAT_Text,(ULONG)(text),TRAT_ID,(id)
- #define ButtonR(text,id) TROB_Button,NULL,TRAT_Text,(ULONG)(text),TRAT_ID,(id),TRAT_Flags,TRBU_RETURNOK
- #define ButtonE(text,id) TROB_Button,NULL,TRAT_Text,(ULONG)(text),TRAT_ID,(id),TRAT_Flags,TRBU_ESCOK
- #define ButtonRE(text,id) TROB_Button,NULL,TRAT_Text,(ULONG)(text),TRAT_ID,(id),TRAT_Flags,TRBU_RETURNOK|TRBU_ESCOK
- #define CenteredButton(t,i) HorizGroupSC,Space,TROB_Button,NULL,TRAT_Text,(ULONG)(t),TRAT_ID,(i),Space,EndGroup
- #define CenteredButtonR(t,i) HorizGroupSC,Space,TROB_Button,NULL,TRAT_Flags,TRBU_RETURNOK,TRAT_Text,(ULONG)(t),TRAT_ID,(i),Space,EndGroup
- #define CenteredButtonE(t,i) HorizGroupSC,Space,TROB_Button,NULL,TRAT_Flags,TRBU_ESCOK,TRAT_Text,(ULONG)(t),TRAT_ID,(i),Space,EndGroup
- #define CenteredButtonRE(t,i) HorizGroupSC,Space,TROB_Button,NULL,TRAT_Flags,TRBU_RETURNOK|TRBU_ESCOK,TRAT_Text,(ULONG)(t),TRAT_ID,(i),Space,EndGroup
- #define EmptyButton(id) TROB_Button,NULL,TRAT_Text,(ULONG)"",TRAT_ID,(id)
- #define GetFileButton(id) TROB_Button,TRBT_GETFILE,TRAT_Text,(ULONG)"",TRAT_ID,(id)
- #define GetDrawerButton(id) TROB_Button,TRBT_GETDRAWER,TRAT_Text,(ULONG)"",TRAT_ID,(id)
- #define GetEntryButton(id) TROB_Button,TRBT_GETENTRY,TRAT_Text,(ULONG)"",TRAT_ID,(id)
- #define GetFileButtonS(s,id) TROB_Button,TRBT_GETFILE,TRAT_Text,(ULONG)(s),TRAT_ID,(id)
- #define GetDrawerButtonS(s,id) TROB_Button,TRBT_GETDRAWER,TRAT_Text,(ULONG)(s),TRAT_ID,(id)
- #define GetEntryButtonS(s,id) TROB_Button,TRBT_GETENTRY,TRAT_Text,(ULONG)(s),TRAT_ID,(id)
-
- // Lines
- #define Line(flags) TROB_Line,flags
- #define HorizSeparator HorizGroupEC,Space,Line(TROF_HORIZ),Space,EndGroup
- #define VertSeparator VertGroupEC,Space,Line(TROF_VERT),Space,EndGroup
- #define NamedSeparator(text) HorizGroupEC,Space,Line(TROF_HORIZ),Space,TextT(text),Space,Line(TROF_HORIZ),Space,EndGroup
- #define NamedSeparatorI(te,id) HorizGroupEC,Space,Line(TROF_HORIZ),Space,TextT(te),TRAT_ID,id,Space,Line(TROF_HORIZ),Space,EndGroup
-
- // FrameBox
- #define FrameBox TROB_FrameBox,NULL
-
- // DropBox
- #define DropBox(id) TROB_DropBox,NULL,TRAT_ID,(id)
-
- // CheckBox gadget
- #define CheckBox(id) TROB_CheckBox,NULL,TRAT_ID,id
- #define CheckBoxC(id) TROB_CheckBox,NULL,TRAT_ID,id,TRAT_Value,TRUE
- #define CheckBoxLEFT(id) HorizGroupS, CheckBox(id), Space, EndGroup
- #define CheckBoxCLEFT(id) HorizGroupS, CheckBoxC(id), Space, EndGroup
-
- // String gadget
- #define StringGadget(def,id) TROB_String,(ULONG)def,TRAT_ID,(id)
-
- // Cycle gadget
- #define CycleGadget(ent,val,id) TROB_Cycle,(ULONG)ent,TRAT_ID,(id),TRAT_Value,(val)
-
- // Slider gadget
- #define SliderGadget(mini,maxi,val,id) TROB_Slider,NULL,TRSL_Min,(mini),TRSL_Max,(maxi),TRAT_ID,(id),TRAT_Value,(val)
-
- // Palette gadget
- #define PaletteGadget(val,id) TROB_Palette,NULL,TRAT_ID,(id),TRAT_Value,(val)
-
- // Listview gadget
- #define ListRO(ent,id,top) TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_READONLY,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
- #define ListSel(ent,id,top) TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_SELECT,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
- #define ListSS(e,id,top,v) TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_SHOWSELECTED,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
- #define ListROC(ent,id,top) TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_READONLY|TRLV_NOCURSORKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
- #define ListSelC(ent,id,top) TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_SELECT|TRLV_NOCURSORKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
- #define ListSSC(e,id,top,v) TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_SHOWSELECTED|TRLV_NOCURSORKEYS,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
- #define ListRON(ent,id,top) TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_READONLY|TRLV_NUNUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
- #define ListSelN(ent,id,top) TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_SELECT|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
- #define ListSSN(e,id,top,v) TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_SHOWSELECTED|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
- #define ListROCN(ent,id,top) TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_READONLY|TRLV_NOCURSORKEYS|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
- #define ListSelCN(ent,id,top) TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_SELECT|TRLV_NOCURSORKEYS|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
- #define ListSSCN(e,id,top,v) TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_SHOWSELECTED|TRLV_NOCURSORKEYS|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
-
- #define FWListRO(ent,id,top) TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_FWFONT|TRLV_READONLY,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
- #define FWListSel(ent,id,top) TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_FWFONT|TRLV_SELECT,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
- #define FWListSS(e,id,top,v) TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_FWFONT|TRLV_SHOWSELECTED,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
- #define FWListROC(ent,id,top) TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_FWFONT|TRLV_READONLY|TRLV_NOCURSORKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
- #define FWListSelC(ent,id,top) TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_FWFONT|TRLV_SELECT|TRLV_NOCURSORKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
- #define FWListSSC(e,id,top,v) TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_FWFONT|TRLV_SHOWSELECTED|TRLV_NOCURSORKEYS,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
- #define FWListRON(ent,id,top) TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_FWFONT|TRLV_READONLY|TRLV_NUNUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
- #define FWListSelN(ent,id,top) TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_FWFONT|TRLV_SELECT|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
- #define FWListSSN(e,id,top,v) TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_FWFONT|TRLV_SHOWSELECTED|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
- #define FWListROCN(ent,id,top) TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_FWFONT|TRLV_READONLY|TRLV_NOCURSORKEYS|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
- #define FWListSelCN(ent,id,top) TROB_Listview,(ULONG)(ent),TRAT_Flags,TRLV_FWFONT|TRLV_SELECT|TRLV_NOCURSORKEYS|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,0,TRLV_Top,top
- #define FWListSSCN(e,id,top,v) TROB_Listview,(ULONG)(e),TRAT_Flags,TRLV_FWFONT|TRLV_SHOWSELECTED|TRLV_NOCURSORKEYS|TRLV_NONUMPADKEYS,TRAT_ID,id,TRAT_Value,v,TRLV_Top,top
-
- // Progress indicator
- #define Progress(maxi,val,id) TROB_Progress,(maxi),TRAT_ID,(id),TRAT_Value,(val)
-
- // Attributes
- #define ID(id) TRAT_ID,id
- #define Disabled TRAT_Disabled,TRUE
- #define ObjectBackfillB TRAT_Backfill,TRBF_NONE
- #define ObjectBackfillS TRAT_Backfill,TRBF_SHINE
- #define ObjectBackfillSA TRAT_Backfill,TRBF_SHINE_SHADOW
- #define ObjectBackfillSF TRAT_Backfill,TRBF_SHINE_FILL
- #define ObjectBackfillSB TRAT_Backfill,TRBF_SHINE_BACKGROUND
- #define ObjectBackfillA TRAT_Backfill,TRBF_SHADOW
- #define ObjectBackfillAF TRAT_Backfill,TRBF_SHADOW_FILL
- #define ObjectBackfillAB TRAT_Backfill,TRBF_SHADOW_BACKGROUND
- #define ObjectBackfillF TRAT_Backfill,TRBF_FILL
- #define ObjectBackfillFB TRAT_Backfill,TRBF_FILL_BACKGROUND
-
- // Requester support
- #define BeginRequester(t,p) WindowTitle(t),WindowPosition(p),WindowBackfillReq,\
- WindowFlags(TRWF_NOZIPGADGET|TRWF_NOSIZEGADGET|TRWF_NOCLOSEGADGET|TRWF_NODELZIP|TRWF_NOESCCLOSE),\
- VertGroupA,Space,HorizGroupA,Space,FrameBox,ObjectBackfillB
- #define BeginRequesterGads Space,EndGroup,Space
- #define EndRequester Space,EndGroup,EndProject
-
- #endif // TR_NOMACROS
-
-
- ////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////// Support library //
- ////////////////////////////////////////////////////////////////////////////
-
- #ifndef TR_NOSUPPORT
-
- #include <clib/exec_protos.h>
- #include <pragmas/exec_pragmas.h>
-
- extern struct TR_App *__Triton_Support_App;
-
- #ifndef TR_NOMACROS
- #define Application (__Triton_Support_App)
- #endif // TR_NOMACROS
-
- #endif // TR_NOSUPPORT
-
-
- ////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////// The Triton message //
- ////////////////////////////////////////////////////////////////////////////
-
- struct TR_Message
- {
- struct TR_Project * trm_Project; // The project which triggered the message
- ULONG trm_ID; // The object's ID (where appropriate)
- ULONG trm_Class; // The Triton message class
- ULONG trm_Data; // The class-specific data
- ULONG trm_Code; // \ Currently only used
- ULONG trm_Qualifier; // / by TRMS_KEYPRESSED
- ULONG trm_Seconds; // \ Copy of system clock time (Only where
- ULONG trm_Micros; // / available! If not set, trm_Seconds is NULL)
- };
-
- // Message classes
- #define TRMS_CLOSEWINDOW 1L // The window should be closed
- #define TRMS_ERROR 2L // An error occured. Error code in trm_Data
- #define TRMS_NEWVALUE 3L // Object's value has changed. New value in trm_Data
- #define TRMS_ACTION 4L // Object has triggered an action
- #define TRMS_ICONDROPPED 5L // Icon dropped over window (ID=0) or DropBox. AppMessage* in trm_Data
- #define TRMS_KEYPRESSED 6L // Key pressed. trm_Data contains ASCII code, trm_Code raw code and
- // trm_Qualifier contains qualifiers
-
- ////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////// Triton error codes //
- ////////////////////////////////////////////////////////////////////////////
-
- #define TRER_OK 0L // No error
-
- #define TRER_ALLOCMEM 1L // Not enough memory
- #define TRER_OPENWINDOW 2L // Can't open window
- #define TRER_WINDOWTOOBIG 3L // Window would be too big for screen
- #define TRER_DRAWINFO 4L // Can't get screen's DrawInfo
- #define TRER_OPENFONT 5L // Can't open font
- #define TRER_CREATEMSGPORT 6L // Can't create message port
- #define TRER_INSTALLOBJECT 7L // Can't create an object
- #define TRER_CREATECLASS 8L // Can't create a class
- #define TRER_NOLOCKPUBSCREEN 9L // Can't lock public screen
-
- #define TRER_MN_INVALID 10L // Invalid NewMenu structure -> probably a bug in Triton
- #define TRER_MN_NOMEM 11L // Not enough memory for menu creation
- #define TRER_MN_OTHERCREATE 12L // Other error while creating the menus
- #define TRER_MN_LAYOUT 13L // GadTools can't layout the menus
-
- #define TRER_GT_CREATECONTEXT 14L // Can't create gadget context
-
- #define TRER_MAXERRORNUM 15L // PRIVATE!
-
-
- ////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////// Tags for TR_OpenWindow() //
- ////////////////////////////////////////////////////////////////////////////
-
- // Window
- #define TRWI_Title (TAG_USER+1) // STRPTR: The window title
- #define TRWI_Flags (TAG_USER+2) // See below for window flags
- #define TRWI_Underscore (TAG_USER+3) // char *: The underscore for menu and gadget shortcuts
- #define TRWI_Position (TAG_USER+4) // Window position, see below
- #define TRWI_CustomScreen (TAG_USER+5) // struct Screen *
- #define TRWI_PubScreen (TAG_USER+6) // struct Screen *, must have been locked!
- #define TRWI_PubScreenName (TAG_USER+7) // STRPTR, Triton is doing the locking
- #define TRWI_PropFontAttr (TAG_USER+8) // struct TextAttr *: The proportional font
- #define TRWI_FixedWidthFontAttr (TAG_USER+9) // struct TextAttr *: The fixed-width font
- #define TRWI_Backfill (TAG_USER+10) // The backfill type, see below
- #define TRWI_ID (TAG_USER+11) // ULONG: The window ID
- #define TRWI_Dimensions (TAG_USER+12) // struct TR_Dimensions *
-
- // Menus
- #define TRMN_Title (TAG_USER+101) // STRPTR: Menu
- #define TRMN_Item (TAG_USER+102) // STRPTR: Menu item
- #define TRMN_Sub (TAG_USER+103) // STRPTR: Menu subitem
- #define TRMN_Flags (TAG_USER+104) // See below for flags
-
- // General object attributes
- #define TRAT_ID (TAG_USER+150) // The object's/menu's ID
- #define TRAT_Flags (TAG_USER+151) // The object's flags
- #define TRAT_Value (TAG_USER+152) // The object's value
- #define TRAT_Text (TAG_USER+153) // The object's text
- #define TRAT_Disabled (TAG_USER+154) // Disabled object?
- #define TRAT_Backfill (TAG_USER+155) // Backfill pattern
- #define TRAT_MinWidth (TAG_USER+156) // Minimum width
- #define TRAT_MinHeight (TAG_USER+157) // Minimum height
-
- #define TROB_USER (TAG_USER+800) // Add something to get your own IDs
-
- // Magic code
- #define TR_MagicObjBeg (TAG_USER+200) // PRIVATE!
- #define TR_MagicObjEnd (TAG_USER+999) // PRIVATE!
- #define TR_MagicSpcBeg (TAG_USER+900) // PRIVATE!
- #define TR_MagicSpcEnd (TAG_USER+999) // PRIVATE!
-
-
- ////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////// Window flags //
- ////////////////////////////////////////////////////////////////////////////
-
- #define TRWF_BACKDROP 0x00000001L // Create a backdrop borderless window
- #define TRWF_NODRAGBAR 0x00000002L // Don't use a dragbar
- #define TRWF_NODEPTHGADGET 0x00000004L // Don't use a depth-gadget
- #define TRWF_NOCLOSEGADGET 0x00000008L // Don't use a close-gadget
- #define TRWF_NOACTIVATE 0x00000010L // Don't activate window
- #define TRWF_NOESCCLOSE 0x00000020L // Don't send TRMS_CLOSEWINDOW when Esc is pressed
- #define TRWF_NOPSCRFALLBACK 0x00000040L // Don't fall back onto default PubScreen
- #define TRWF_NOZIPGADGET 0x00000080L // Don't use a zip-gadget
- #define TRWF_ZIPCENTERTOP 0x00000100L // Center the zipped window on the title bar
- #define TRWF_NOMINTEXTWIDTH 0x00000200L // Minimum window width not according to title text
- #define TRWF_NOSIZEGADGET 0x00000400L // Don't use a sizing-gadget
- #define TRWF_NOFONTFALLBACK 0x00000800L // Don't fall back to topaz.8
- #define TRWF_NODELZIP 0x00001000L // Don't zip the window when Del is pressed
- #define TRWF_SIMPLEREFRESH 0x00002000L // Use simple refresh instead of smart refresh
- #define TRWF_ZIPTOCURRENTPOS 0x00004000L // Will zip the window at the current position (OS3.0+)
- #define TRWF_APPWINDOW 0x00008000L // Create an AppWindow without using class_dropbox
- #define TRWF_ACTIVATESTRGAD 0x00010000L // Activate the first string gadget after opening the window
-
-
- ////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////// Menu flags //
- ////////////////////////////////////////////////////////////////////////////
-
- #define TRMF_CHECKIT 0x00000001L // Leave space for a checkmark
- #define TRMF_CHECKED 0x00000002L // Check the item (includes TRMF_CHECKIT)
- #define TRMF_DISABLED 0x00000004L // Ghost the menu/item
-
-
- ////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////// Window positions //
- ////////////////////////////////////////////////////////////////////////////
-
- #define TRWP_DEFAULT 0L // Let Triton choose a good position
- #define TRWP_BELOWTITLEBAR 1L // Left side of screen, below title bar
- #define TRWP_CENTERTOP 1025L // Top of screen, centered on the title bar
- #define TRWP_TOPLEFTSCREEN 1026L // Top left corner of screen
- #define TRWP_CENTERSCREEN 1027L // Centered on the screen
- #define TRWP_CENTERDISPLAY 1028L // Centered on the currently displayed clip
- #define TRWP_MOUSEPOINTER 1029L // Under the mouse pointer
-
- #define TRWP_MAGIC 1024L // PRIVATE!
-
-
- ////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////// Backfill types //
- ////////////////////////////////////////////////////////////////////////////
-
- #define TRBF_WINDOWBACK 0L // Window backfill colors
- #define TRBF_REQUESTERBACK 1L // Requester backfill colors
- #define TRBF_NONE 2L // No backfill (= Fill with BACKGROUNDPEN)
- #define TRBF_SHINE 3L // Fill with SHINEPEN
- #define TRBF_SHINE_SHADOW 4L // Fill with SHINEPEN + SHADOWPEN
- #define TRBF_SHINE_FILL 5L // Fill with SHINEPEN + FILLPEN
- #define TRBF_SHINE_BACKGROUND 6L // Fill with SHINEPEN + BACKGROUNDPEN
- #define TRBF_SHADOW 7L // Fill with SHADOWPEN
- #define TRBF_SHADOW_FILL 8L // Fill with SHADOWPEN + FILLPEN
- #define TRBF_SHADOW_BACKGROUND 9L // Fill with SHADOWPEN + BACKGROUNDPEN
- #define TRBF_FILL 10L // Fill with FILLPEN
- #define TRBF_FILL_BACKGROUND 11L // Fill with FILLPEN + BACKGROUNDPEN
-
-
- ////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////// Display Object flags //
- ////////////////////////////////////////////////////////////////////////////
-
- // General flags
- #define TROF_RAISED 0x00000001L // Raised object
- #define TROF_HORIZ 0x00000002L // Horizontal object \ Works automatically
- #define TROF_VERT 0x00000004L // Vertical object / in groups
-
- // Text flags
- #define TRTX_NOUNDERSCORE 0x00000100L // Don't interpret underscores
- #define TRTX_HIGHLIGHT 0x00000200L // Highlight text
- #define TRTX_3D 0x00000400L // 3D design
- #define TRTX_BOLD 0x00000800L // Softstyle 'bold'
- #define TRTX_TITLE 0x00001000L // A title (e.g. of a group)
-
-
- ////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////// Menu entries //
- ////////////////////////////////////////////////////////////////////////////
-
- #define TRMN_BARLABEL (-1L) // A barlabel instead of text
-
-
- ////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////// Tags for TR_CreateApp() //
- ////////////////////////////////////////////////////////////////////////////
-
- #define TRCA_Name (TAG_USER+1)
- #define TRCA_LongName (TAG_USER+2)
- #define TRCA_Info (TAG_USER+3)
- #define TRCA_Version (TAG_USER+4)
- #define TRCA_Release (TAG_USER+5)
- #define TRCA_Date (TAG_USER+6)
-
-
- ////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////// Tags for TR_EasyRequest() //
- ////////////////////////////////////////////////////////////////////////////
-
- #define TREZ_ReqPos (TAG_USER+1)
- #define TREZ_LockProject (TAG_USER+2)
- #define TREZ_Return (TAG_USER+3)
- #define TREZ_Title (TAG_USER+4)
- #define TREZ_Activate (TAG_USER+5)
-
-
- ////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////// The Application Structure //
- ////////////////////////////////////////////////////////////////////////////
-
- struct TR_App // This structure is PRIVATE!
- {
- VOID * tra_MemPool; // The memory pool
- ULONG tra_BitMask; // Bits to Wait() for
- STRPTR tra_Name; // Unique name
- STRPTR tra_LongName; // User-readable name
- STRPTR tra_Info; // Info string
- STRPTR tra_Version; // Version
- STRPTR tra_Release; // Release
- STRPTR tra_Date; // Compilation date
- struct MsgPort * tra_AppPort; // AppMessage port
- };
-
-
- ////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////// The Dimensions Structure //
- ////////////////////////////////////////////////////////////////////////////
-
- struct TR_Dimensions
- {
- UWORD trd_Left; // Left
- UWORD trd_Top; // Top
- UWORD trd_Width; // Width
- UWORD trd_Height; // Height
- UWORD trd_Left2; // Left
- UWORD trd_Top2; // Top
- UWORD trd_Width2; // Width
- UWORD trd_Height2; // Height
- BOOL trd_Zoomed; // Window zoomed?
- UWORD reserved[3]; // For future expansions
- };
-
-
- ////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////// The Project Structure //
- ////////////////////////////////////////////////////////////////////////////
-
- struct TR_Project // This structure is PRIVATE!
- {
- struct TR_App * trp_App; // Our application
- struct Screen * trp_Screen; // Our screen, always valid
- struct Screen * trp_LockedPubScreen; // Only valid if we're using a PubScreen
-
- struct Window * trp_Window; // The window
- ULONG trp_ID; // The window ID
- struct AppWindow * trp_AppWindow; // AppWindow for icon dropping
-
- ULONG trp_IDCMPFlags; // The IDCMP flags
- ULONG trp_Flags; // Triton window flags
-
- struct NewMenu * trp_NewMenu; // The newmenu stucture built by Triton
- ULONG trp_NewMenuSize; // The number of menu items in the list
- struct Menu * trp_Menu; // The menu structure
- UWORD trp_NextSelect; // The next selected menu item
-
- VOID * trp_VisualInfo; // The VisualInfo of our window
- struct DrawInfo * trp_DrawInfo; // The DrawInfo of the screen
- struct TR_Dimensions * trp_Dimensions; // User-supplied dimensions
-
- ULONG trp_WindowStdHeight; // The standard height of the window
- ULONG trp_LeftBorder; // The width of the left window border
- ULONG trp_RightBorder; // The width of the right window border
- ULONG trp_TopBorder; // The height of the top window border
- ULONG trp_BottomBorder; // The height of the bottom window border
- ULONG trp_InnerWidth; // The inner width of the window
- ULONG trp_InnerHeight; // The inner height of the window
- WORD trp_ZipDimensions[4]; // The dimensions for the zipped window
- UWORD trp_AspectFixing; // Pixel aspect correction factor
-
- struct MinList trp_ObjectList; // The list of display objects
- struct MinList trp_MenuList; // The list of menus
- struct MinList trp_IDList; // The ID linking list (menus & objects)
- VOID * trp_MemPool; // The memory pool for the lists
- BOOL trp_HasObjects; // Do we have display objects ?
-
- struct TextAttr * trp_PropAttr; // The proportional font attributes
- struct TextAttr * trp_FixedWidthAttr; // The fixed-width font attributes
- struct TextFont * trp_PropFont; // The proportional font
- struct TextFont * trp_FixedWidthFont; // The fixed-width font
- BOOL trp_OpenedPropFont; // \ Have we opened the fonts ?
- BOOL trp_OpenedFixedWidthFont; // /
- UWORD trp_TotalPropFontHeight; // Height of prop font incl. underscore
-
- ULONG trp_BackfillType; // The backfill type
- struct Hook * trp_BackfillHook; // The backfill hook
-
- struct Gadget * trp_GadToolsGadgetList; // List of GadTools gadgets
- struct Gadget * trp_PrevGadget; // Previous GadTools gadget
- struct NewGadget * trp_NewGadget; // GadTools NewGadget
-
- struct Requester * trp_InvisibleRequest; // The invisible blocking requester
- BOOL trp_IsUserLocked; // Project locked by the user?
-
- ULONG trp_CurrentID; // The currently keyboard-selected ID
- BOOL trp_IsCancelDown; // Cancellation key pressed?
- BOOL trp_IsShortcutDown; // Shortcut key pressed?
- UBYTE trp_Underscore; // The underscore character
-
- BOOL trp_EscClose; // Close window on Esc ?
- BOOL trp_DelZip; // Zip window on Del ?
- BOOL trp_PubScreenFallBack; // Fall back onto default public screen ?
- BOOL trp_FontFallBack; // Fall back to topaz.8 ?
-
- UWORD trp_OldWidth; // Old window width
- UWORD trp_OldHeight; // Old window height
- };
-
-
- ////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////// Default classes, attributes and flags //
- ////////////////////////////////////////////////////////////////////////////
-
- // Classes
-
- #define TROB_Button (TAG_USER+305) // A BOOPSI button gadget
- #define TROB_CheckBox (TAG_USER+303) // A checkbox gadget
- #define TROB_Cycle (TAG_USER+310) // A cycle gadget
- #define TROB_FrameBox (TAG_USER+306) // A framing box
- #define TROB_DropBox (TAG_USER+312) // An icon drop box
- #define TRGR_Horiz (TAG_USER+201) // Horizontal group, see below for types
- #define TRGR_Vert (TAG_USER+202) // Vertical group, see below for types
- #define TRGR_End (TAG_USER+203) // End of a group
- #define TROB_Line (TAG_USER+301) // A simple line
- #define TROB_Palette (TAG_USER+307) // A palette gadget
- #define TROB_Scroller (TAG_USER+309) // A scroller gadget
- #define TROB_Slider (TAG_USER+308) // A slider gadget
- #define TROB_Space (TAG_USER+901) // The spaces class
- #define TROB_String (TAG_USER+311) // A string gadget
- #define TROB_Text (TAG_USER+304) // A line of text
- #define TROB_Listview (TAG_USER+313) // A listview gadget
- #define TROB_Progress (TAG_USER+314) // A progress indicator
-
-
- // Button
- #define TRBU_RETURNOK 0x00010000L // <Return> answers the button
- #define TRBU_ESCOK 0x00020000L // <Esc> answers the button
- #define TRBU_SHIFTED 0x00040000L // Shifted shortcut only
- #define TRBU_UNSHIFTED 0x00080000L // Unshifted shortcut only
- #define TRBT_TEXT 0L // Text button
- #define TRBT_GETFILE 1L // GetFile button
- #define TRBT_GETDRAWER 2L // GetDrawer button
- #define TRBT_GETENTRY 3L // GetEntry button
-
-
- // Group
- #define TRGR_PROPSHARE 0x00000000L // Divide objects proportionally
- #define TRGR_EQUALSHARE 0x00000001L // Divide objects equally
- #define TRGR_PROPSPACES 0x00000002L // Divide spaces proportionally
- #define TRGR_ARRAY 0x00000004L // Top-level array group
-
- #define TRGR_ALIGN 0x00000008L // Align resizeable objects in secondary dimension
- #define TRGR_CENTER 0x00000010L // Center unresizeable objects in secondary dimension
-
- #define TRGR_FIXHORIZ 0x00000020L // Don't allow horizontal resizing
- #define TRGR_FIXVERT 0x00000040L // Don't allow vertical resizing
-
-
- // Scroller
- #define TRSC_Total (TAG_USER+1504)
- #define TRSC_Visible (TAG_USER+1505)
-
-
- // Slider
- #define TRSL_Min (TAG_USER+1502)
- #define TRSL_Max (TAG_USER+1503)
-
-
- // Space
- #define TRST_NONE 1L // No space
- #define TRST_SMALL 2L // Small space
- #define TRST_NORMAL 3L // Normal space (default)
- #define TRST_BIG 4L // Big space
-
-
- // Listview
- #define TRLV_Top (TAG_USER+1506)
- #define TRLV_READONLY 0x00010000L // A read-only list
- #define TRLV_SELECT 0x00020000L // You may select an entry
- #define TRLV_SHOWSELECTED 0x00040000L // Selected entry will be shown
- #define TRLV_NOCURSORKEYS 0x00080000L // Don't use arrow keys
- #define TRLV_NONUMPADKEYS 0x00100000L // Don't use numeric keypad keys
- #define TRLV_FWFONT 0x00200000L // Use the fixed-width font
-
-
- ////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////// The End //
- ////////////////////////////////////////////////////////////////////////////
-
- #endif // LIBRARIES_TRITON_H
-