123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579 |
- {
- This file is part of the Free Pascal run time library.
- Copyright (c) 2005 Karoly Balogh for Genesi S.a.r.l.
- asl.library interface unit for MorphOS/PowerPC
- Based on work of Nils Sjoholm member of the Amiga RTL
- development team.
- MorphOS port was done on a free Pegasos II/G4 machine
- provided by Genesi S.a.r.l. <www.genesi.lu>
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- **********************************************************************}
- {$PACKRECORDS 2}
- unit asl;
- interface
- uses exec, utility, workbench, agraphics;
- {************************************************************************}
- const
- ASLNAME: PChar = 'asl.library';
- ASL_TB = TAG_USER + $80000;
- {************************************************************************}
- { Types of requesters known to ASL, used as arguments to AllocAslRequest() }
- ASL_FileRequest = 0;
- ASL_FontRequest = 1;
- ASL_ScreenModeRequest = 2;
- {****************************************************************************
- *
- * ASL File Requester data structures and constants
- *
- * This structure must only be allocated by asl.library amd is READ-ONLY!
- * Control of the various fields is provided via tags when the requester
- * is created with AllocAslRequest() and when it is displayed via
- * AslRequest()
- }
- type
- PFileRequester = ^TFileRequester;
- TFileRequester = record
- case SmallInt of
- 0: (
- rf_Reserved0: array[0..3] of Byte;
- rf_File: STRPTR; // Filename pointer
- rf_Dir: STRPTR; // Directory name pointer
- rf_Reserved1: array[0..9] of Byte;
- rf_LeftEdge: SmallInt;
- rf_TopEdge: SmallInt; // Preferred window pos
- rf_Width: SmallInt;
- rf_Height: SmallInt; // Preferred window size
- rf_Reserved2: array[0..1] of Byte;
- rf_NumArgs: LongInt; // A-la WB Args, FOR multiselects
- rf_ArgList: PWBArgList;
- rf_UserData: APTR; // Applihandle (you may write!!)
- rf_Reserved3: array[0..7] of Byte;
- rf_Pat: STRPTR; // Pattern match pointer
- );
- 1: (
- fr_Reserved0: array[0..3] of Byte;
- fr_File: STRPTR; // Filename pointer
- fr_Drawer: STRPTR; // Directory name pointer
- fr_Reserved1: array[0..9] of Byte;
- fr_LeftEdge: SmallInt;
- fr_TopEdge: SmallInt; // Preferred window pos
- fr_Width: SmallInt;
- fr_Height: SmallInt; // Preferred window size
- fr_Reserved2: array[0..1] of Byte;
- fr_NumArgs: LongInt; // A-la WB Args, FOR multiselects
- fr_ArgList: PWBArgList;
- fr_UserData: APTR; // Applihandle (you may write!!)
- fr_Reserved3: array[0..7] of Byte;
- fr_Pattern: STRPTR; // Pattern match pointer
- );
- end; // note - more reserved fields follow
- // File requester tag values, used by AllocAslRequest() and AslRequest()
- const
- ASLFR_TitleText = ASL_TB + 1; // Title of requester
- ASLFR_Window = ASL_TB + 2; // Parent window
- ASLFR_InitialLeftEdge = ASL_TB + 3; // Initial requester coordinates
- ASLFR_InitialTopEdge = ASL_TB + 4;
- ASLFR_InitialWidth = ASL_TB + 5; // Initial requester dimensions
- ASLFR_InitialHeight = ASL_TB + 6;
- ASLFR_HookFunc = ASL_TB + 7; // Combined callback function
- ASLFR_InitialFile = ASL_TB + 8; // Initial contents of File gadget
- ASLFR_InitialDrawer = ASL_TB + 9; // Initial contents of Drawer gadg.
- ASLFR_InitialPattern = ASL_TB + 10; // Initial contents of Pattern gadg.
- ASLFR_PositiveText = ASL_TB + 18; // Positive gadget text
- ASLFR_NegativeText = ASL_TB + 19; // Negative gadget text
- ASLFR_Flags1 = ASL_TB + 20; // Option flags
- ASLFR_Flags2 = ASL_TB + 22; // Additional option flags
- ASLFR_Screen = ASL_TB + 40; // Screen to open on if no window
- ASLFR_PubScreenName = ASL_TB + 41; // Name of public screen
- ASLFR_PrivateIDCMP = ASL_TB + 42; // Allocate private IDCMP?
- ASLFR_SleepWindow = ASL_TB + 43; // Block input in ASLFR_Window?
- ASLFR_DoSaveMode = ASL_TB + 44; // Being used for saving?
- ASLFR_DoMultiSelect = ASL_TB + 45; // Do multi-select?
- ASLFR_DoPatterns = ASL_TB + 46; // Display a Pattern gadget?
- ASLFR_DrawersOnly = ASL_TB + 47; // Don't display files?
- ASLFR_FilterFunc = ASL_TB + 49; // Function to filter files
- ASLFR_Locale = ASL_TB + 50; // Locale ASL should use for text
- ASLFR_TextAttr = ASL_TB + 51; // Text font to use for gadget text
- ASLFR_UserData = ASL_TB + 52; // What to put in fr_UserData
- ASLFR_RejectIcons = ASL_TB + 60; // Display .info files?
- ASLFR_RejectPattern = ASL_TB + 61; // Don't display files matching pat
- ASLFR_AcceptPattern = ASL_TB + 62; // Accept only files matching pat
- ASLFR_FilterDrawers = ASL_TB + 63; // Also filter drawers with patterns
- ASLFR_IntuiMsgFunc = ASL_TB + 70; // Function to handle IntuiMessages
- ASLFR_SetSortBy = ASL_TB + 124; // Sort criteria (name, date, size)
- ASLFR_GetSortBy = ASL_TB + 125;
- ASLFR_SetSortDrawers = ASL_TB + 126; // Placement of drawers in the list
- ASLFR_GetSortDrawers = ASL_TB + 127;
- ASLFR_SetSortOrder = ASL_TB + 128; // Order (ascending or descending)
- ASLFR_GetSortOrder = ASL_TB + 129;
- // V44
- ASLFR_InitialShowVolumes = ASL_TB + 130; // Initially, show the volume list
- ASLFR_PopToFront = ASL_TB + 131; // Make the requester window visible
- // V45
- ASLFR_Activate = ASL_TB + 132; // Activate the requester window when
- // Flag bits for the ASLFR_Flags1 tag
- FRB_FILTERFUNC = 7;
- FRB_INTUIFUNC = 6;
- FRB_DOSAVEMODE = 5;
- FRB_PRIVATEIDCMP = 4;
- FRB_DOMULTISELECT = 3;
- FRB_DOPATTERNS = 0;
- FRF_FILTERFUNC = 1 shl FRB_FILTERFUNC;
- FRF_INTUIFUNC = 1 shl FRB_INTUIFUNC;
- FRF_DOSAVEMODE = 1 shl FRB_DOSAVEMODE;
- FRF_PRIVATEIDCMP = 1 shl FRB_PRIVATEIDCMP;
- FRF_DOMULTISELECT = 1 shl FRB_DOMULTISELECT;
- FRF_DOPATTERNS = 1 shl FRB_DOPATTERNS;
- // Flag bits for the ASLFR_Flags2 tag
- FRB_DRAWERSONLY = 0;
- FRB_FILTERDRAWERS = 1;
- FRB_REJECTICONS = 2;
- FRF_DRAWERSONLY = 1 shl FRB_DRAWERSONLY;
- FRF_FILTERDRAWERS = 1 shl FRB_FILTERDRAWERS;
- FRF_REJECTICONS = 1 shl FRB_REJECTICONS;
- // Sort criteria for the ASLFR_SetSortBy/ASLFR_GetSortBy tags
- ASLFRSORTBY_Name = 0;
- ASLFRSORTBY_Date = 1;
- ASLFRSORTBY_Size = 2;
- // Drawer placement for the ASLFR_SetSortDrawers/ASLFR_GetSortDrawers tags
- ASLFRSORTDRAWERS_First = 0;
- ASLFRSORTDRAWERS_Mix = 1;
- ASLFRSORTDRAWERS_Last = 2;
- // Sort order for the ASLFR_SetSortOrder/ASLFR_GetSortOrder tags
- ASLFRSORTORDER_Ascend = 0;
- ASLFRSORTORDER_Descend = 1;
- {****************************************************************************
- *
- * ASL Font Requester data structures and constants
- *
- * This structure must only be allocated by asl.library amd is READ-ONLY!
- * Control of the various fields is provided via tags when the requester
- * is created with AllocAslRequest() and when it is displayed via
- * AslRequest()
- }
- type
- PFontRequester = ^TFontRequester;
- TFontRequester = record
- fo_Reserved0: array[0..7] of Byte;
- fo_Attr: TTextAttr; // Returned TextAttr
- fo_FrontPen: Byte; // Returned front pen
- fo_BackPen: Byte; // Returned back pen
- fo_DrawMode: Byte; // Returned drawing mode
- fo_Reserved1: Byte;
- fo_UserData: APTR; // You can store your own data here
- fo_LeftEdge: SmallInt; // Coordinates Of requester on Exit
- fo_TopEdge: SmallInt;
- fo_Width: SmallInt;
- fo_Height: SmallInt;
- fo_TAttr: TTTextAttr; // Returned TTextAttr
- end;
- // Font requester tag values, used by AllocAslRequest() AND AslRequest()
- const
- ASLFO_TitleText = ASL_TB + 1; // Title of requester
- ASLFO_Window = ASL_TB + 2; // Parent window
- ASLFO_InitialLeftEdge = ASL_TB + 3; // Initial requester coordinates
- ASLFO_InitialTopEdge = ASL_TB + 4;
- ASLFO_InitialWidth = ASL_TB + 5; // Initial requester dimensions
- ASLFO_InitialHeight = ASL_TB + 6;
- ASLFO_HookFunc = ASL_TB + 7; // Combined callback function
- ASLFO_InitialName = ASL_TB + 10; // Initial contents of Name gadget
- ASLFO_InitialSize = ASL_TB + 11; // Initial contents of Size gadget
- ASLFO_InitialStyle = ASL_TB + 12; // Initial font style
- ASLFO_InitialFlags = ASL_TB + 13; // Initial font flags for TextAttr
- ASLFO_InitialFrontPen = ASL_TB + 14; // Initial front pen
- ASLFO_InitialBackPen = ASL_TB + 15; // Initial back pen
- ASLFO_MinHeight = ASL_TB + 16; // Minimum font height to display
- ASLFO_MaxHeight = ASL_TB + 17; // Maximum font height to display
- ASLFO_PositiveText = ASL_TB + 18; // Positive gadget text
- ASLFO_NegativeText = ASL_TB + 19; // Negative gadget text
- ASLFO_Flags = ASL_TB + 20; // Option flags
- ASLFO_ModeList = ASL_TB + 21; // Substitute list for drawmodes
- ASLFO_Screen = ASL_TB + 40; // Screen to open on if no window
- ASLFO_PubScreenName = ASL_TB + 41; // Name of public screen
- ASLFO_PrivateIDCMP = ASL_TB + 42; // Allocate private IDCMP?
- ASLFO_SleepWindow = ASL_TB + 43; // Block input in ASLFO_Window?
- ASLFO_DoFrontPen = ASL_TB + 44; // Display Front color selector?
- ASLFO_DoBackPen = ASL_TB + 45; // Display Back color selector?
- ASLFO_DoStyle = ASL_TB + 46; // Display Style checkboxes?
- ASLFO_DoDrawMode = ASL_TB + 47; // Display DrawMode cycle gadget?
- ASLFO_FixedWidthOnly = ASL_TB + 48; // Only allow fixed-width fonts?
- ASLFO_FilterFunc = ASL_TB + 49; // Function to filter fonts
- ASLFO_Locale = ASL_TB + 50; // Locale ASL should use for text
- ASLFO_TextAttr = ASL_TB + 51; // Text font to use for gadget text
- ASLFO_UserData = ASL_TB + 52; // What to put in fo_UserData
- ASLFO_InitialDrawMode = ASL_TB + 59; // Initial draw mode
- ASLFO_FrontPens = ASL_TB + 64; // Color table for front pen palette
- ASLFO_BackPens = ASL_TB + 65; // Color table for back pen palette
- ASLFO_MaxFrontPen = ASL_TB + 66; // Max # of colors in front palette
- ASLFO_MaxBackPen = ASL_TB + 67; // Max # of colors in back palette
- ASLFO_IntuiMsgFunc = ASL_TB + 70; // Function to handle IntuiMessages
- // V44
- ASLFO_PopToFront = ASL_TB + 131; // Make the requester window visible when it opens
- // V45
- ASLFO_Activate = ASL_TB + 132; // Activate the requester window when it opens
- ASLFO_SampleText = ASL_TB + 133; // Text to display in font sample area
- // Flag bits for ASLFO_Flags tag
- FOB_DOFRONTPEN = 0;
- FOB_DOBACKPEN = 1;
- FOB_DOSTYLE = 2;
- FOB_DODRAWMODE = 3;
- FOB_FIXEDWIDTHONLY = 4;
- FOB_PRIVATEIDCMP = 5;
- FOB_INTUIFUNC = 6;
- FOB_FILTERFUNC = 7;
- FOF_DOFRONTPEN = 1 shl FOB_DOFRONTPEN;
- FOF_DOBACKPEN = 1 shl FOB_DOBACKPEN;
- FOF_DOSTYLE = 1 shl FOB_DOSTYLE;
- FOF_DODRAWMODE = 1 shl FOB_DODRAWMODE;
- FOF_FIXEDWIDTHONLY = 1 shl FOB_FIXEDWIDTHONLY;
- FOF_PRIVATEIDCMP = 1 shl FOB_PRIVATEIDCMP;
- FOF_INTUIFUNC = 1 shl FOB_INTUIFUNC;
- FOF_FILTERFUNC = 1 shl FOB_FILTERFUNC;
- {****************************************************************************
- *
- * ASL Screen Mode Requester data structures and constants
- *
- * This structure must only be allocated by asl.library and is READ-ONLY!
- * Control of the various fields is provided via tags when the requester
- * is created with AllocAslRequest() and when it is displayed via
- * AslRequest()
- }
- type
- PScreenModeRequester = ^TScreenModeRequester;
- TScreenModeRequester = record
- sm_DisplayID: Cardinal; // Display mode ID
- sm_DisplayWidth: Cardinal; // Width of display in pixels
- sm_DisplayHeight: Cardinal; // Height of display in pixels
- sm_DisplayDepth: Word; // Number of bit-planes of display
- sm_OverscanType: Word; // type of overscan of display
- sm_AutoScroll: WordBool; // Display should auto-scroll?
- sm_BitMapWidth: Cardinal; // Used to create your own BitMap
- sm_BitMapHeight: Cardinal;
- sm_LeftEdge: SmallInt; // Coordinates of requester on Exit
- sm_TopEdge: SmallInt;
- sm_Width: SmallInt;
- sm_Height: SmallInt;
- sm_InfoOpened: WordBool; // Info window opened on exit?
- sm_InfoLeftEdge: SmallInt; // Last coordinates of Info window
- sm_InfoTopEdge: SmallInt;
- sm_InfoWidth: SmallInt;
- sm_InfoHeight: SmallInt;
- sm_UserData: APTR; // You can store your own data here
- // fields below are available from asl.library V51
- sm_MonitorName: STRPTR; // Name of the monitor this sm_DisplayID is tied to To be passed as SA_MonitorName
- sm_DisplayIDWidth: Cardinal; // sm_DisplayID resolution, to be passed as SA_DisplayWidth/Height in OpenScreen
- sm_DisplayIDHeight: Cardinal;
- end;
- { An Exec list of custom modes can be added to the list of available modes.
- * The DimensionInfo structure must be completely initialized, including the
- * Header. See <graphics/displayinfo.h>. Custom mode ID's must be in the range
- * $FFFF0000..$FFFFFFFF. Regular properties which apply to your custom modes
- * can be added in the dn_PropertyFlags field. Custom properties are not
- * allowed.
- }
- PDisplayMode = ^TDisplayMode;
- TDisplayMode = record
- dm_Node: TNode; // see ln_Name
- dm_DimensionInfo: TDimensionInfo; // mode description
- dm_PropertyFlags: Cardinal; // applicable properties
- end;
- // ScreenMode requester tag values, used by AllocAslRequest() and AslRequest()
- const
- ASLSM_TitleText = ASL_TB + 1; // Title of requester
- ASLSM_Window = ASL_TB + 2; // Parent window
- ASLSM_InitialLeftEdge = ASL_TB + 3; // Initial requester coordinates
- ASLSM_InitialTopEdge = ASL_TB + 4;
- ASLSM_InitialWidth = ASL_TB + 5; // Initial requester dimensions
- ASLSM_InitialHeight = ASL_TB + 6;
- ASLSM_PositiveText = ASL_TB + 18; // Positive gadget text
- ASLSM_NegativeText = ASL_TB + 19; // Negative gadget text
- ASLSM_Screen = ASL_TB + 40; // Screen to open on if no window
- ASLSM_PubScreenName = ASL_TB + 41; // Name of public screen
- ASLSM_PrivateIDCMP = ASL_TB + 42; // Allocate private IDCMP?
- ASLSM_SleepWindow = ASL_TB + 43; // Block input in ASLSM_Window?
- ASLSM_Locale = ASL_TB + 50; // Locale ASL should use for text
- ASLSM_TextAttr = ASL_TB + 51; // Text font to use for gadget text
- ASLSM_UserData = ASL_TB + 52; // What to put in sm_UserData
- ASLSM_IntuiMsgFunc = ASL_TB + 70; // Function to handle IntuiMessages
- ASLSM_InitialDisplayID = ASL_TB + 100; // Initial display mode id
- ASLSM_InitialDisplayWidth = ASL_TB + 101; // Initial display width
- ASLSM_InitialDisplayHeight = ASL_TB + 102; // Initial display height
- ASLSM_InitialDisplayDepth = ASL_TB + 103; // Initial display depth
- ASLSM_InitialOverscanType = ASL_TB + 104; // Initial type of overscan
- ASLSM_InitialAutoScroll = ASL_TB + 105; // Initial autoscroll setting
- ASLSM_InitialInfoOpened = ASL_TB + 106; // Info wndw initially opened?
- ASLSM_InitialInfoLeftEdge = ASL_TB + 107; // Initial Info window coords.
- ASLSM_InitialInfoTopEdge = ASL_TB + 108;
- ASLSM_DoWidth = ASL_TB + 109; // Display Width gadget?
- ASLSM_DoHeight = ASL_TB + 110; // Display Height gadget?
- ASLSM_DoDepth = ASL_TB + 111; // Display Depth gadget?
- ASLSM_DoOverscanType = ASL_TB + 112; // Display Overscan Type gadget?
- ASLSM_DoAutoScroll = ASL_TB + 113; // Display AutoScroll gadget?
- ASLSM_PropertyFlags = ASL_TB + 114; // Must have these Property flags
- ASLSM_PropertyMask = ASL_TB + 115; // Only these should be looked at
- ASLSM_MinWidth = ASL_TB + 116; // Minimum display width to allow
- ASLSM_MaxWidth = ASL_TB + 117; // Maximum display width to allow
- ASLSM_MinHeight = ASL_TB + 118; // Minimum display height to allow
- ASLSM_MaxHeight = ASL_TB + 119; // Maximum display height to allow
- ASLSM_MinDepth = ASL_TB + 120; // Minimum display depth
- ASLSM_MaxDepth = ASL_TB + 121; // Maximum display depth
- ASLSM_FilterFunc = ASL_TB + 122; // Function to filter mode id's
- ASLSM_CustomSMList = ASL_TB + 123; // Exec list of struct DisplayMode
- // V44
- ASLSM_PopToFront = ASL_TB + 131; // Make the requester window visible when it opens
- // V45
- ASLSM_Activate = ASL_TB + 132; // Activate the requester window when it opens
- ASL_LAST_TAG = ASL_TB + 133;
- {***************************************************************************}
- { This defines the rendezvous data for setting and querying asl.library's
- * defaults for the window size and the file requester sort order. The name
- * of the semaphore is given below; it exists only with asl.library V45 and
- * IPrefs V45 and beyond.
- }
- ASL_SEMAPHORE_NAME: PChar = 'asl.library';
- type
- PAslSemaphore = ^TAslSemaphore;
- TAslSemaphore = record
- as_Semaphore: TSignalSemaphore;
- as_Version: Word; // Must be >= 45
- as_Size: Cardinal; // Size of this data structure.
- as_SortBy: Byte; // File requester defaults; name, date or size
- as_SortDrawers: Byte; // File requester defaults; first, mix or last
- as_SortOrder: Byte; // File requester defaults; ascending or descending
- as_SizePosition: Byte; // See below
- as_RelativeLeft: Word; // Window position offset
- as_RelativeTop: Word;
- as_RelativeWidth: Byte; // Window size factor; this is a percentage of the parent window/screen width.
- as_RelativeHeight : Byte;
- end;
- const
- // Default position of the ASL window.
- ASLPOS_DefaultPosition = 0; // Position is calculated according to the builtin rules.
- ASLPOS_CenterWindow = 1; // Centred within the bounds of the parent window.
- ASLPOS_CenterScreen = 2; // Centred within the bounds of the parent screen.
- ASLPOS_WindowPosition = 3; // Relative to the top left corner of the parent window, using the offset values provided in the as_RelativeLeft/as_RelativeTop members.
- ASLPOS_ScreenPosition = 4; // Relative to the top left corner of the parent screen, using the offset values provided in the as_RelativeLeft/as_RelativeTop members.
- ASLPOS_CenterMouse = 5; // Directly below the mouse pointer.
- ASLPOS_MASK = $0F;
- // Default size of the ASL window.
- ASLSIZE_DefaultSize = 0 shl 4; // Size is calculated according to the builtin rules.
- ASLSIZE_RelativeSize = 1 shl 4; // Size is relative to the size of the parent window or screen, using the values provided in
- // the as_RelativeWidth/as_RelativeHeight members. The as_RelativeWidth/as_RelativeHeight values are
- // taken as percentage, i.e. a value of "50" stands for 50% of the width/height of the parent window/screen.
- ASLSIZE_MASK = $30;
- // Other options.
- ASLOPTION_ASLOverrides = 1 shl 6; // ASL determines placement and size of requester windows; application's choice is ignored.
- {****************************************************************************
- *
- * Obsolete ASL definitions, here for source code compatibility only.
- * Please do NOT use in new code.
- *
- * define ASL_V38_NAMES_ONLY to remove these older names
- }
- {$define ASL_V38_NAMES_ONLY}
- {$ifndef ASL_V38_NAMES_ONLY}
- const
- ASL_Dummy = TAG_USER + $80000;
- ASL_Hail = ASL_Dummy + 1;
- ASL_Window = ASL_Dummy + 2;
- ASL_LeftEdge = ASL_Dummy + 3;
- ASL_TopEdge = ASL_Dummy + 4;
- ASL_Width = ASL_Dummy + 5;
- ASL_Height = ASL_Dummy + 6;
- ASL_HookFunc = ASL_Dummy + 7;
- ASL_File = ASL_Dummy + 8;
- ASL_Dir = ASL_Dummy + 9;
- ASL_FontName = ASL_Dummy + 10;
- ASL_FontHeight = ASL_Dummy + 11;
- ASL_FontStyles = ASL_Dummy + 12;
- ASL_FontFlags = ASL_Dummy + 13;
- ASL_FrontPen = ASL_Dummy + 14;
- ASL_BackPen = ASL_Dummy + 15;
- ASL_MinHeight = ASL_Dummy + 16;
- ASL_MaxHeight = ASL_Dummy + 17;
- ASL_OKText = ASL_Dummy + 18;
- ASL_CancelText = ASL_Dummy + 19;
- ASL_FuncFlags = ASL_Dummy + 20;
- ASL_ModeList = ASL_Dummy + 21;
- ASL_ExtFlags1 = ASL_Dummy + 22;
- ASL_Pattern = ASL_FontName;
- // remember what I said up there? Do not use these anymore!
- FILB_DOWILDFUNC = 7;
- FILB_DOMSGFUNC = 6;
- FILB_SAVE = 5;
- FILB_NEWIDCMP = 4;
- FILB_MULTISELECT = 3;
- FILB_PATGAD = 0;
- FILF_DOWILDFUNC = 1 shl FILB_DOWILDFUNC;
- FILF_DOMSGFUNC = 1 shl FILB_DOMSGFUNC;
- FILF_SAVE = 1 shl FILB_SAVE;
- FILF_NEWIDCMP = 1 shl FILB_NEWIDCMP;
- FILF_MULTISELECT = 1 shl FILB_MULTISELECT;
- FILF_PATGAD = 1 shl FILB_PATGAD;
- FIL1B_NOFILES = 0;
- FIL1B_MATCHDIRS = 1;
- FIL1F_NOFILES = 1 shl FIL1B_NOFILES;
- FIL1F_MATCHDIRS = 1 shl FIL1B_MATCHDIRS;
- FONB_FRONTCOLOR = 0;
- FONB_BACKCOLOR = 1;
- FONB_STYLES = 2;
- FONB_DRAWMODE = 3;
- FONB_FIXEDWIDTH = 4;
- FONB_NEWIDCMP = 5;
- FONB_DOMSGFUNC = 6;
- FONB_DOWILDFUNC = 7;
- FONF_FRONTCOLOR = 1 shl FONB_FRONTCOLOR;
- FONF_BACKCOLOR = 1 shl FONB_BACKCOLOR;
- FONF_STYLES = 1 shl FONB_STYLES;
- FONF_DRAWMODE = 1 shl FONB_DRAWMODE;
- FONF_FIXEDWIDTH = 1 shl FONB_FIXEDWIDTH;
- FONF_NEWIDCMP = 1 shl FONB_NEWIDCMP;
- FONF_DOMSGFUNC = 1 shl FONB_DOMSGFUNC;
- FONF_DOWILDFUNC = 1 shl FONB_DOWILDFUNC;
- {$endif ASL_V38_NAMES_ONLY}
- var
- AslBase: PLibrary = nil;
- function AllocFileRequest: PFileRequester; SysCall AslBase 030;
- procedure FreeFileRequest(FileReq: PFileRequester location 'a0'); SysCall AslBase 036;
- function RequestFile(FileReq: PFileRequester location 'a0'): LongBool; SysCall AslBase 042;
- function AllocAslRequest(ReqType: Cardinal location 'd0'; TagList: PTagItem location 'a0'): APTR; SysCall AslBase 048;
- procedure FreeAslRequest(Requester: APTR location 'a0'); SysCall AslBase 054;
- function AslRequest(Requester: APTR location 'a0'; TagList: PTagItem location 'a1'): LongBool; SysCall AslBase 060;
- procedure AbortAslRequest(Requester: APTR location 'a0'); SysCall AslBase 078;
- procedure ActivateAslRequest(Requester: APTR location 'a0'); SysCall AslBase 084;
- function AllocAslRequestTags(ReqType: Cardinal; const TagList: array of PtrUInt): APTR; Inline;
- function AslRequestTags(Requester: APTR; const TagList: array of PtrUInt): LongBool; Inline;
- function InitAslLibrary : boolean;
- implementation
- function AllocAslRequestTags(ReqType: Cardinal; const TagList: array of PtrUInt): APTR; Inline;
- begin
- AllocAslRequestTags := AllocAslRequest(ReqType, @tagList);
- end;
- function AslRequestTags(Requester: APTR; const TagList: array of PtrUInt): LongBool; Inline;
- begin
- AslRequestTags := AslRequest(Requester, @TagList);
- end;
- const
- // Change VERSION and LIBVERSION to proper values
- VERSION : string[2] = '0';
- LIBVERSION: LongWord = 0;
- function InitAslLibrary: Boolean;
- begin
- InitAslLibrary := Assigned(AslBase);
- end;
- initialization
- AslBase := OpenLibrary(ASLNAME, LIBVERSION);
- finalization
- if Assigned(AslBase) then
- CloseLibrary(PLibrary(AslBase));
- end.
|