mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-20 11:29:27 +02:00
MorphOS: Icon and workbench added
git-svn-id: trunk@33224 -
This commit is contained in:
parent
759170f822
commit
eaab964a98
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -5860,6 +5860,7 @@ packages/morphunits/src/exec.pas svneol=native#text/plain
|
||||
packages/morphunits/src/gadtools.pas svneol=native#text/pascal
|
||||
packages/morphunits/src/get9.pas svneol=native#text/plain
|
||||
packages/morphunits/src/hardware.pas svneol=native#text/plain
|
||||
packages/morphunits/src/icon.pas svneol=native#text/pascal
|
||||
packages/morphunits/src/iffparse.pas svneol=native#text/plain
|
||||
packages/morphunits/src/input.pas svneol=native#text/plain
|
||||
packages/morphunits/src/inputevent.pas svneol=native#text/plain
|
||||
@ -5871,6 +5872,7 @@ packages/morphunits/src/muihelper.pas svneol=native#text/plain
|
||||
packages/morphunits/src/timer.pas svneol=native#text/plain
|
||||
packages/morphunits/src/tinygl.pas svneol=native#text/plain
|
||||
packages/morphunits/src/utility.pas svneol=native#text/plain
|
||||
packages/morphunits/src/workbench.pas svneol=native#text/pascal
|
||||
packages/mysql/Makefile svneol=native#text/plain
|
||||
packages/mysql/Makefile.fpc svneol=native#text/plain
|
||||
packages/mysql/Makefile.fpc.fpcmake svneol=native#text/plain
|
||||
|
@ -57,6 +57,8 @@ begin
|
||||
T:=P.Targets.AddUnit('cybergraphics.pas');
|
||||
T:=P.Targets.AddUnit('cgxvideo.pas');
|
||||
T:=P.Targets.AddUnit('gadtools.pas');
|
||||
T:=P.Targets.AddUnit('workbench.pas');
|
||||
T:=P.Targets.AddUnit('icon.pas');
|
||||
|
||||
{$ifndef ALLPACKAGES}
|
||||
Run;
|
||||
|
470
packages/morphunits/src/icon.pas
Normal file
470
packages/morphunits/src/icon.pas
Normal file
@ -0,0 +1,470 @@
|
||||
{
|
||||
This file is part of the Free Pascal run time library.
|
||||
|
||||
A file in Amiga system run time library.
|
||||
Copyright (c) 1998-2003 by Nils Sjoholm
|
||||
member of the Amiga RTL development team.
|
||||
|
||||
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.
|
||||
|
||||
**********************************************************************}
|
||||
{
|
||||
History:
|
||||
Added overlay functions for Pchar->Strings, functions
|
||||
and procedures.
|
||||
14 Jul 2000.
|
||||
|
||||
Removed amigaoverlays, use smartlink instead.
|
||||
05 Nov 2002.
|
||||
|
||||
Added the defines use_amiga_smartlink and
|
||||
use_auto_openlib. Implemented autoopening of
|
||||
the library.
|
||||
14 Jan 2003.
|
||||
|
||||
Update for AmigaOS 3.9.
|
||||
A lof of new const and a record.
|
||||
Functions added.
|
||||
FUNCTION DupDiskObjectA
|
||||
FUNCTION IconControlA
|
||||
PROCEDURE DrawIconStateA
|
||||
FUNCTION GetIconRectangleA
|
||||
FUNCTION NewDiskObject
|
||||
FUNCTION GetIconTagList
|
||||
FUNCTION PutIconTagList
|
||||
FUNCTION LayoutIconA
|
||||
PROCEDURE ChangeToSelectedIconColor
|
||||
plus overlay for
|
||||
FUNCTION GetIconTagList;
|
||||
FUNCTION PutIconTagList
|
||||
Changed start code for unit.
|
||||
02 Feb 2003.
|
||||
|
||||
Changed cardinal > longword.
|
||||
09 Feb 2003.
|
||||
|
||||
nils.sjoholm@mailbox.swipnet.se
|
||||
}
|
||||
|
||||
unit icon;
|
||||
|
||||
INTERFACE
|
||||
|
||||
|
||||
uses exec, workbench,utility,amigados,agraphics,intuition,datatypes;
|
||||
|
||||
const
|
||||
ICONA_Dummy = TAG_USER + $9000;
|
||||
{ }
|
||||
{ Error reporting (LONG ) }
|
||||
ICONA_ErrorCode = ICONA_Dummy + 1;
|
||||
|
||||
{ Points to the tag item that caused the error (struct TagItem ). }
|
||||
ICONA_ErrorTagItem = ICONA_Dummy + 75;
|
||||
{ }
|
||||
{ Global options for IconControlA() }
|
||||
|
||||
{ Screen to use for remapping Workbench icons to (struct Screen ) }
|
||||
ICONCTRLA_SetGlobalScreen = ICONA_Dummy + 2;
|
||||
ICONCTRLA_GetGlobalScreen = ICONA_Dummy + 3;
|
||||
|
||||
{ Icon color remapping precision; defaults to PRECISION_ICON (LONG) }
|
||||
ICONCTRLA_SetGlobalPrecision = ICONA_Dummy + 4;
|
||||
ICONCTRLA_GetGlobalPrecision = ICONA_Dummy + 5;
|
||||
|
||||
{ Icon frame size dimensions (struct Rectangle ) }
|
||||
ICONCTRLA_SetGlobalEmbossRect = ICONA_Dummy + 6;
|
||||
ICONCTRLA_GetGlobalEmbossRect = ICONA_Dummy + 7;
|
||||
|
||||
{ Render image without frame (BOOL) }
|
||||
ICONCTRLA_SetGlobalFrameless = ICONA_Dummy + 8;
|
||||
ICONCTRLA_GetGlobalFrameless = ICONA_Dummy + 9;
|
||||
|
||||
{ Enable NewIcons support (BOOL) }
|
||||
ICONCTRLA_SetGlobalNewIconsSupport = ICONA_Dummy + 10;
|
||||
ICONCTRLA_GetGlobalNewIconsSupport = ICONA_Dummy + 11;
|
||||
|
||||
{ Enable color icon support (BOOL) }
|
||||
ICONCTRLA_SetGlobalColorIconSupport = ICONA_Dummy + 77;
|
||||
ICONCTRLA_GetGlobalColorIconSupport = ICONA_Dummy + 78;
|
||||
|
||||
{ Set/Get the hook to be called when identifying a file (struct Hook ) }
|
||||
ICONCTRLA_SetGlobalIdentifyHook = ICONA_Dummy + 12;
|
||||
ICONCTRLA_GetGlobalIdentifyHook = ICONA_Dummy + 13;
|
||||
|
||||
{ Set/get the maximum length of a file/drawer name supported
|
||||
by icon.library (LONG).
|
||||
}
|
||||
ICONCTRLA_SetGlobalMaxNameLength = ICONA_Dummy + 67;
|
||||
ICONCTRLA_GetGlobalMaxNameLength = ICONA_Dummy + 68;
|
||||
|
||||
{**************************************************************************}
|
||||
{ Per icon local options for IconControlA() }
|
||||
|
||||
{ Get the icon rendering masks (PLANEPTR) }
|
||||
ICONCTRLA_GetImageMask1 = ICONA_Dummy + 14;
|
||||
ICONCTRLA_GetImageMask2 = ICONA_Dummy + 15;
|
||||
|
||||
{ Transparent image color; set to -1 if opaque }
|
||||
ICONCTRLA_SetTransparentColor1 = ICONA_Dummy + 16;
|
||||
ICONCTRLA_GetTransparentColor1 = ICONA_Dummy + 17;
|
||||
ICONCTRLA_SetTransparentColor2 = ICONA_Dummy + 18;
|
||||
ICONCTRLA_GetTransparentColor2 = ICONA_Dummy + 19;
|
||||
|
||||
{ Image color palette (struct ColorRegister ) }
|
||||
ICONCTRLA_SetPalette1 = ICONA_Dummy + 20;
|
||||
ICONCTRLA_GetPalette1 = ICONA_Dummy + 21;
|
||||
ICONCTRLA_SetPalette2 = ICONA_Dummy + 22;
|
||||
ICONCTRLA_GetPalette2 = ICONA_Dummy + 23;
|
||||
|
||||
{ Size of image color palette (LONG) }
|
||||
ICONCTRLA_SetPaletteSize1 = ICONA_Dummy + 24;
|
||||
ICONCTRLA_GetPaletteSize1 = ICONA_Dummy + 25;
|
||||
ICONCTRLA_SetPaletteSize2 = ICONA_Dummy + 26;
|
||||
ICONCTRLA_GetPaletteSize2 = ICONA_Dummy + 27;
|
||||
|
||||
{ Image data; one by per pixel (UBYTE ) }
|
||||
ICONCTRLA_SetImageData1 = ICONA_Dummy + 28;
|
||||
ICONCTRLA_GetImageData1 = ICONA_Dummy + 29;
|
||||
ICONCTRLA_SetImageData2 = ICONA_Dummy + 30;
|
||||
ICONCTRLA_GetImageData2 = ICONA_Dummy + 31;
|
||||
|
||||
{ Render image without frame (BOOL) }
|
||||
ICONCTRLA_SetFrameless = ICONA_Dummy + 32;
|
||||
ICONCTRLA_GetFrameless = ICONA_Dummy + 33;
|
||||
|
||||
{ Enable NewIcons support (BOOL) }
|
||||
ICONCTRLA_SetNewIconsSupport = ICONA_Dummy + 34;
|
||||
ICONCTRLA_GetNewIconsSupport = ICONA_Dummy + 35;
|
||||
|
||||
{ Icon aspect ratio (UBYTE ) }
|
||||
ICONCTRLA_SetAspectRatio = ICONA_Dummy + 36;
|
||||
ICONCTRLA_GetAspectRatio = ICONA_Dummy + 37;
|
||||
|
||||
{ Icon dimensions; valid only for palette mapped icon images (LONG) }
|
||||
ICONCTRLA_SetWidth = ICONA_Dummy + 38;
|
||||
ICONCTRLA_GetWidth = ICONA_Dummy + 39;
|
||||
ICONCTRLA_SetHeight = ICONA_Dummy + 40;
|
||||
ICONCTRLA_GetHeight = ICONA_Dummy + 41;
|
||||
|
||||
{ Check whether the icon is palette mapped (LONG ). }
|
||||
ICONCTRLA_IsPaletteMapped = ICONA_Dummy + 42;
|
||||
|
||||
{ Get the screen the icon is attached to (struct Screen ). }
|
||||
ICONCTRLA_GetScreen = ICONA_Dummy + 43;
|
||||
|
||||
{ Check whether the icon has a real select image (LONG ). }
|
||||
ICONCTRLA_HasRealImage2 = ICONA_Dummy + 44;
|
||||
|
||||
{ Check whether the icon is of the NewIcon type (LONG ). }
|
||||
ICONCTRLA_IsNewIcon = ICONA_Dummy + 79;
|
||||
|
||||
{ Check whether this icon was allocated by icon.library
|
||||
or if consists solely of a statically allocated
|
||||
struct DiskObject. (LONG ).
|
||||
}
|
||||
ICONCTRLA_IsNativeIcon = ICONA_Dummy + 80;
|
||||
|
||||
{**************************************************************************}
|
||||
|
||||
{ Icon aspect ratio is not known. }
|
||||
ICON_ASPECT_RATIO_UNKNOWN = 0;
|
||||
|
||||
{ Tags for use with GetIconTagList() }
|
||||
|
||||
{ Default icon type to retrieve (LONG) }
|
||||
ICONGETA_GetDefaultType = ICONA_Dummy+45;
|
||||
|
||||
{ Retrieve default icon for the given name (STRPTR) }
|
||||
ICONGETA_GetDefaultName = ICONA_Dummy + 46;
|
||||
|
||||
{ Return a default icon if the requested icon
|
||||
file cannot be found (BOOL).
|
||||
}
|
||||
ICONGETA_FailIfUnavailable = ICONA_Dummy + 47;
|
||||
|
||||
{ If possible, retrieve a palette mapped icon (BOOL). }
|
||||
ICONGETA_GetPaletteMappedIcon = ICONA_Dummy + 48;
|
||||
|
||||
{ Set if the icon returned is a default icon (BOOL ). }
|
||||
ICONGETA_IsDefaultIcon = ICONA_Dummy + 49;
|
||||
|
||||
{ Remap the icon to the default screen, if possible (BOOL). }
|
||||
ICONGETA_RemapIcon = ICONA_Dummy + 50;
|
||||
|
||||
{ Generate icon image masks (BOOL). }
|
||||
ICONGETA_GenerateImageMasks = ICONA_Dummy + 51;
|
||||
|
||||
{ Label text to be assigned to the icon (STRPTR). }
|
||||
ICONGETA_Label = ICONA_Dummy + 52;
|
||||
|
||||
{ Screen to remap the icon to (struct Screen ). }
|
||||
ICONGETA_Screen = ICONA_Dummy + 69;
|
||||
|
||||
{**************************************************************************}
|
||||
|
||||
{ Tags for use with PutIconTagList() }
|
||||
|
||||
{ Notify Workbench of the icon being written (BOOL) }
|
||||
ICONPUTA_NotifyWorkbench = ICONA_Dummy + 53;
|
||||
|
||||
{ Store icon as the default for this type (LONG) }
|
||||
ICONPUTA_PutDefaultType = ICONA_Dummy + 54;
|
||||
|
||||
{ Store icon as a default for the given name (STRPTR) }
|
||||
ICONPUTA_PutDefaultName = ICONA_Dummy + 55;
|
||||
|
||||
{ When storing a palette mapped icon, don't save the
|
||||
the original planar icon image with the file. Replace
|
||||
it with a tiny replacement image.
|
||||
}
|
||||
ICONPUTA_DropPlanarIconImage = ICONA_Dummy + 56;
|
||||
|
||||
{ Don't write the chunky icon image data to disk. }
|
||||
ICONPUTA_DropChunkyIconImage = ICONA_Dummy + 57;
|
||||
|
||||
{ Don't write the NewIcons tool types to disk. }
|
||||
ICONPUTA_DropNewIconToolTypes = ICONA_Dummy + 58;
|
||||
|
||||
{ If this tag is enabled, the writer will examine the
|
||||
icon image data to find out whether it can compress
|
||||
it more efficiently. This may take extra time and
|
||||
is not generally recommended.
|
||||
}
|
||||
ICONPUTA_OptimizeImageSpace = ICONA_Dummy + 59;
|
||||
|
||||
{ Don't write the entire icon file back to disk,
|
||||
only change the do->do_CurrentX/do->do_CurrentY
|
||||
members.
|
||||
}
|
||||
ICONPUTA_OnlyUpdatePosition = ICONA_Dummy + 72;
|
||||
|
||||
{ Before writing a palette mapped icon back to disk,
|
||||
icon.library will make sure that the original
|
||||
planar image data is stored in the file. If you
|
||||
don't want that to happen, set this option to
|
||||
FALSE. This will allow you to change the planar icon
|
||||
image data written back to disk.
|
||||
}
|
||||
ICONPUTA_PreserveOldIconImages = ICONA_Dummy + 84;
|
||||
|
||||
{**************************************************************************}
|
||||
|
||||
{ For use with the file identification hook. }
|
||||
|
||||
type
|
||||
PIconIdentifyMsg = ^tIconIdentifyMsg;
|
||||
tIconIdentifyMsg = record
|
||||
{ Libraries that are already opened for your use. }
|
||||
iim_SysBase : PLibrary;
|
||||
iim_DOSBase : PLibrary;
|
||||
iim_UtilityBase : PLibrary;
|
||||
iim_IconBase : PLibrary;
|
||||
|
||||
{ File context information. }
|
||||
iim_FileLock : BPTR; { Lock on the object to return an icon for. }
|
||||
iim_ParentLock : BPTR; { Lock on the object's parent directory, if available. }
|
||||
iim_FIB : PFileInfoBlock; { Already initialized for you. }
|
||||
iim_FileHandle : BPTR; { If non-NULL, pointer to the file to examine,
|
||||
* positioned right at the first byte, ready
|
||||
* for you to use.
|
||||
}
|
||||
iim_Tags : PTagItem; { Tags passed to GetIconTagList(). }
|
||||
end;
|
||||
|
||||
{**************************************************************************}
|
||||
|
||||
{ Tags for use with DupDiskObjectA() }
|
||||
|
||||
const
|
||||
{ Duplicate do_DrawerData }
|
||||
ICONDUPA_DuplicateDrawerData = ICONA_Dummy + 60;
|
||||
|
||||
{ Duplicate the Image structures. }
|
||||
ICONDUPA_DuplicateImages = ICONA_Dummy + 61;
|
||||
|
||||
{ Duplicate the image data (Image->ImageData) itself. }
|
||||
ICONDUPA_DuplicateImageData = ICONA_Dummy + 62;
|
||||
|
||||
{ Duplicate the default tool. }
|
||||
ICONDUPA_DuplicateDefaultTool = ICONA_Dummy + 63;
|
||||
|
||||
{ Duplicate the tool types list. }
|
||||
ICONDUPA_DuplicateToolTypes = ICONA_Dummy + 64;
|
||||
|
||||
{ Duplicate the tool window. }
|
||||
ICONDUPA_DuplicateToolWindow = ICONA_Dummy + 65;
|
||||
|
||||
{ If the icon to be duplicated is in fact a palette mapped
|
||||
icon which has never been set up to be displayed on the
|
||||
screen, turn the duplicate into that palette mapped icon.
|
||||
}
|
||||
ICONDUPA_ActivateImageData = ICONA_Dummy + 82;
|
||||
|
||||
{**************************************************************************}
|
||||
|
||||
{ Tags for use with DrawIconStateA() and GetIconRectangleA(). }
|
||||
|
||||
{ Drawing information to use (struct DrawInfo ). }
|
||||
ICONDRAWA_DrawInfo = ICONA_Dummy + 66;
|
||||
|
||||
{ Draw the icon without the surrounding frame (BOOL). }
|
||||
ICONDRAWA_Frameless = ICONA_Dummy + 70;
|
||||
|
||||
{ Erase the background before drawing a frameless icon (BOOL). }
|
||||
ICONDRAWA_EraseBackground = ICONA_Dummy + 71;
|
||||
|
||||
{ Draw the icon without the surrounding border and frame (BOOL). }
|
||||
ICONDRAWA_Borderless = ICONA_Dummy + 83;
|
||||
|
||||
{ The icon to be drawn refers to a linked object (BOOL). }
|
||||
ICONDRAWA_IsLink = ICONA_Dummy + 89;
|
||||
|
||||
{**************************************************************************}
|
||||
|
||||
{ Reserved tags; don't use! }
|
||||
ICONA_Reserved1 = ICONA_Dummy + 73;
|
||||
ICONA_Reserved2 = ICONA_Dummy + 74;
|
||||
ICONA_Reserved3 = ICONA_Dummy + 76;
|
||||
ICONA_Reserved4 = ICONA_Dummy + 81;
|
||||
ICONA_Reserved5 = ICONA_Dummy + 85;
|
||||
ICONA_Reserved6 = ICONA_Dummy + 86;
|
||||
ICONA_Reserved7 = ICONA_Dummy + 87;
|
||||
ICONA_Reserved8 = ICONA_Dummy + 88;
|
||||
{ }
|
||||
ICONA_LAST_TAG = ICONA_Dummy + 89;
|
||||
|
||||
{**************************************************************************}
|
||||
|
||||
|
||||
Const
|
||||
|
||||
ICONNAME : PChar = 'icon.library';
|
||||
|
||||
VAR IconBase : pLibrary = nil;
|
||||
|
||||
FUNCTION AddFreeList(freelist : pFreeList location 'a0'; const mem : POINTER location 'a1'; size : ULONG location 'a2') : LongBool; syscall IconBase 072;
|
||||
FUNCTION BumpRevision(newname : pCHAR location 'a0'; const oldname : pCHAR location 'a1') : pCHAR; syscall IconBase 108;
|
||||
FUNCTION DeleteDiskObject(const name : pCHAR location 'a0') : LongBool; syscall IconBase 138;
|
||||
FUNCTION FindToolType(const toolTypeArray : POINTER location 'a0'; const typeName : pCHAR location 'a1') : pCHAR; syscall IconBase 096;
|
||||
PROCEDURE FreeDiskObject(diskobj : pDiskObject location 'a0'); syscall IconBase 090;
|
||||
PROCEDURE FreeFreeList(freelist : pFreeList location 'a0'); syscall IconBase 054;
|
||||
FUNCTION GetDefDiskObject(typ : LONGINT location 'd0') : pDiskObject; syscall IconBase 120;
|
||||
FUNCTION GetDiskObject(const name : pCHAR location 'a0') : pDiskObject; syscall IconBase 078;
|
||||
FUNCTION GetDiskObjectNew(const name : pCHAR location 'a0') : pDiskObject; syscall IconBase 132;
|
||||
FUNCTION MatchToolValue(const typeString : pCHAR location 'a0'; const value : pCHAR location 'a1') : LongBool; syscall IconBase 102;
|
||||
FUNCTION PutDefDiskObject(const diskObject : pDiskObject location 'a0') : LongBool; syscall IconBase 126;
|
||||
FUNCTION PutDiskObject(const name : pCHAR location 'a0'; const diskobj : pDiskObject location 'a1') : LongBool; syscall IconBase 084;
|
||||
|
||||
{ version 44 }
|
||||
FUNCTION DupDiskObjectA(CONST diskObject : pDiskObject location 'a0'; CONST tags : pTagItem location 'a1') : pDiskObject; syscall IconBase 150;
|
||||
FUNCTION IconControlA(icon : pDiskObject location 'a0'; CONST tags : pTagItem location 'a1') : longword; syscall IconBase 156;
|
||||
PROCEDURE DrawIconStateA(rp : pRastPort location 'a0'; CONST icon : pDiskObject location 'a1'; CONST label_ : pCHAR location 'a2'; leftOffset : LONGINT location 'd0'; topOffset : LONGINT location 'd1'; state : longword location 'd2'; CONST tags : pTagItem location 'a3'); syscall IconBase 162;
|
||||
FUNCTION GetIconRectangleA(rp : pRastPort location 'a0'; CONST icon : pDiskObject location 'a1'; CONST label_ : pCHAR location 'a2'; rect : pRectangle location 'a3'; CONST tags : pTagItem location 'a4') : LongBool; syscall IconBase 168;
|
||||
FUNCTION NewDiskObject(type_ : LONGINT location 'd0') : pDiskObject; syscall IconBase 174;
|
||||
FUNCTION GetIconTagList(CONST name : pCHAR location 'a0'; CONST tags : pTagItem location 'a1') : pDiskObject; syscall IconBase 180;
|
||||
FUNCTION PutIconTagList(CONST name : pCHAR location 'a0'; CONST icon : pDiskObject location 'a1'; CONST tags : pTagItem location 'a2') : LongBool; syscall IconBase 186;
|
||||
FUNCTION LayoutIconA(icon : pDiskObject location 'a0'; screen : pScreen location 'a1'; tags : pTagItem location 'a2') : LongBool; syscall IconBase 192;
|
||||
PROCEDURE ChangeToSelectedIconColor(cr : pColorRegister location 'a0'); syscall IconBase 198;
|
||||
|
||||
{ overlay }
|
||||
FUNCTION BumpRevision(newname : pCHar; const oldname : RawByteString) : pCHAR;
|
||||
FUNCTION DeleteDiskObject(const name : RawByteString) : BOOLEAN;
|
||||
FUNCTION FindToolType(const toolTypeArray : POINTER;const typeName : RawByteString) : pCHAR;
|
||||
FUNCTION GetDiskObject(const name : RawByteString) : pDiskObject;
|
||||
FUNCTION GetDiskObjectNew(const name : RawByteString) : pDiskObject;
|
||||
FUNCTION MatchToolValue(const typeString : RawByteString;const value : pCHAR) : BOOLEAN;
|
||||
FUNCTION MatchToolValue(const typeString : pCHAR;const value : RawByteString) : BOOLEAN;
|
||||
FUNCTION MatchToolValue(const typeString : RawByteString;const value : RawByteString) : BOOLEAN;
|
||||
FUNCTION PutDiskObject(const name : RawByteString;const diskobj : pDiskObject) : BOOLEAN;
|
||||
|
||||
{ version 44 overlay}
|
||||
FUNCTION GetIconTagList(CONST name : RawByteString; CONST tags : pTagItem) : pDiskObject;
|
||||
FUNCTION PutIconTagList(CONST name : RawByteString; CONST icon : pDiskObject; CONST tags : pTagItem) : BOOLEAN;
|
||||
|
||||
{macros}
|
||||
function PACK_ICON_ASPECT_RATIO(num,den : longint) : longint;
|
||||
|
||||
IMPLEMENTATION
|
||||
|
||||
function PACK_ICON_ASPECT_RATIO(num,den : longint) : longint;
|
||||
begin
|
||||
PACK_ICON_ASPECT_RATIO:=(num shl 4) or den;
|
||||
end;
|
||||
|
||||
|
||||
FUNCTION BumpRevision(newname : pCHar;const oldname : RawByteString) : pCHAR;
|
||||
begin
|
||||
BumpRevision := BumpRevision(newname,PChar(oldname));
|
||||
end;
|
||||
|
||||
FUNCTION DeleteDiskObject(const name : RawByteString) : BOOLEAN;
|
||||
begin
|
||||
DeleteDiskObject := DeleteDiskObject(PChar(name));
|
||||
end;
|
||||
|
||||
FUNCTION FindToolType(const toolTypeArray : POINTER;const typeName : RawByteString) : pCHAR;
|
||||
begin
|
||||
FindToolType := FindToolType(toolTypeArray,PChar(typeName));
|
||||
end;
|
||||
|
||||
FUNCTION GetDiskObject(const name : RawByteString) : pDiskObject;
|
||||
begin
|
||||
GetDiskObject := GetDiskObject(PChar(name));
|
||||
end;
|
||||
|
||||
FUNCTION GetDiskObjectNew(const name : RawByteString) : pDiskObject;
|
||||
begin
|
||||
GetDiskObjectNew := GetDiskObjectNew(PChar(name));
|
||||
end;
|
||||
|
||||
FUNCTION MatchToolValue(const typeString : RawByteString;const value : pCHAR) : BOOLEAN;
|
||||
begin
|
||||
MatchToolValue := MatchToolValue(PChar(typeString),value);
|
||||
end;
|
||||
|
||||
FUNCTION MatchToolValue(const typeString : pCHAR;const value : RawByteString) : BOOLEAN;
|
||||
begin
|
||||
MatchToolValue := MatchToolValue(typeString,PChar(value));
|
||||
end;
|
||||
|
||||
FUNCTION MatchToolValue(const typeString : RawByteString;const value : RawByteString) : BOOLEAN;
|
||||
begin
|
||||
MatchToolValue := MatchToolValue(PChar(typeString),PChar(value));
|
||||
end;
|
||||
|
||||
FUNCTION PutDiskObject(const name : RawByteString;const diskobj : pDiskObject) : BOOLEAN;
|
||||
begin
|
||||
PutDiskObject := PutDiskObject(PChar(name),diskobj);
|
||||
end;
|
||||
|
||||
FUNCTION GetIconTagList(CONST name : RawByteString; CONST tags : pTagItem) : pDiskObject;
|
||||
begin
|
||||
GetIconTagList := GetIconTagList(PChar(name),tags);
|
||||
end;
|
||||
|
||||
FUNCTION PutIconTagList(CONST name : RawByteString; CONST icon : pDiskObject; CONST tags : pTagItem) : BOOLEAN;
|
||||
begin
|
||||
PutIconTagList := PutIconTagList(PChar(name),icon,tags);
|
||||
end;
|
||||
|
||||
const
|
||||
{ Change VERSION and LIBVERSION to proper values }
|
||||
VERSION : string[2] = '0';
|
||||
LIBVERSION : longword = 0;
|
||||
|
||||
initialization
|
||||
IconBase := OpenLibrary(ICONNAME,LIBVERSION);
|
||||
finalization
|
||||
if Assigned(IconBase) then
|
||||
CloseLibrary(IconBase);
|
||||
END. (* UNIT ICON *)
|
||||
|
||||
|
||||
|
||||
|
945
packages/morphunits/src/workbench.pas
Normal file
945
packages/morphunits/src/workbench.pas
Normal file
@ -0,0 +1,945 @@
|
||||
{
|
||||
This file is part of the Free Pascal run time library.
|
||||
|
||||
A file in Amiga system run time library.
|
||||
Copyright (c) 1998-2003 by Nils Sjoholm
|
||||
member of the Amiga RTL development team.
|
||||
|
||||
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.
|
||||
|
||||
**********************************************************************}
|
||||
{
|
||||
History:
|
||||
Added overlay functions for Pchar->Strings, functions
|
||||
and procedures.
|
||||
14 Jul 2000.
|
||||
|
||||
Changed tWBArg.wa_Lock from a pointer to a longint.
|
||||
15 Aug 2000.
|
||||
|
||||
Fixed tDiskObject.
|
||||
Member tDiskObject.do_CurrentX was defined as a pointer,
|
||||
should be longint.
|
||||
17 Aug 2000.
|
||||
|
||||
Added functions and procedures with array of const.
|
||||
For use with fpc 1.0.7. Thay are in systemvartags.
|
||||
05 Nov 2002.
|
||||
|
||||
Removed amigaoverlays, use smartlink instead.
|
||||
05 Nov 2002.
|
||||
|
||||
Added the defines use_amiga_smartlink and
|
||||
use_auto_openlib. Implemented autoopening of
|
||||
the library.
|
||||
14 Jan 2003.
|
||||
|
||||
Update for AmigaOS 3.9.
|
||||
A lot of new const and new records.
|
||||
New functions
|
||||
FUNCTION AddAppWindowDropZoneA
|
||||
FUNCTION ChangeWorkbenchSelectionA
|
||||
FUNCTION CloseWorkbenchObjectA
|
||||
FUNCTION MakeWorkbenchObjectVisibleA
|
||||
FUNCTION OpenWorkbenchObjectA
|
||||
FUNCTION RemoveAppWindowDropZone
|
||||
FUNCTION WorkbenchControlA
|
||||
Varargs functions are in systemvartags.
|
||||
02 Feb 2003.
|
||||
|
||||
Changed integer > smallint,
|
||||
cardinal > longword.
|
||||
09 Feb 2003.
|
||||
|
||||
nils.sjoholm@mailbox.swipnet.se
|
||||
}
|
||||
{$PACKRECORDS 2}
|
||||
|
||||
unit workbench;
|
||||
|
||||
INTERFACE
|
||||
|
||||
uses exec,amigados,utility,intuition,agraphics;
|
||||
|
||||
|
||||
Type
|
||||
|
||||
pWBArg = ^tWBArg;
|
||||
tWBArg = record
|
||||
wa_Lock : longint; { a lock descriptor }
|
||||
wa_Name : STRPTR; { a string relative to that lock }
|
||||
end;
|
||||
|
||||
WBArgList = Array [1..100] of tWBArg; { Only 1..smNumArgs are valid }
|
||||
pWBArgList = ^WBArgList;
|
||||
|
||||
|
||||
pWBStartup = ^tWBStartup;
|
||||
tWBStartup = record
|
||||
sm_Message : tMessage; { a standard message structure }
|
||||
sm_Process : pMsgPort; { the process descriptor for you }
|
||||
sm_Segment : BPTR; { a descriptor for your code }
|
||||
sm_NumArgs : Longint; { the number of elements in ArgList }
|
||||
sm_ToolWindow : STRPTR; { description of window }
|
||||
sm_ArgList : pWBArgList; { the arguments themselves }
|
||||
end;
|
||||
|
||||
|
||||
Const
|
||||
|
||||
WBDISK = 1;
|
||||
WBDRAWER = 2;
|
||||
WBTOOL = 3;
|
||||
WBPROJECT = 4;
|
||||
WBGARBAGE = 5;
|
||||
WBDEVICE = 6;
|
||||
WBKICK = 7;
|
||||
WBAPPICON = 8;
|
||||
|
||||
Type
|
||||
|
||||
pOldDrawerData = ^tOldDrawerData;
|
||||
tOldDrawerData = record
|
||||
dd_NewWindow : tNewWindow; { args to open window }
|
||||
dd_CurrentX : Longint; { current x coordinate of origin }
|
||||
dd_CurrentY : Longint; { current y coordinate of origin }
|
||||
end;
|
||||
|
||||
Const
|
||||
|
||||
{ the amount of DrawerData actually written to disk }
|
||||
|
||||
OLDDRAWERDATAFILESIZE = 56; { sizeof(OldDrawerData) }
|
||||
|
||||
Type
|
||||
pDrawerData = ^tDrawerData;
|
||||
tDrawerData = record
|
||||
dd_NewWindow : tNewWindow; { args to open window }
|
||||
dd_CurrentX : Longint; { current x coordinate of origin }
|
||||
dd_CurrentY : Longint; { current y coordinate of origin }
|
||||
dd_Flags : Longint; { flags for drawer }
|
||||
dd_ViewModes : Word; { view mode for drawer }
|
||||
end;
|
||||
|
||||
Const
|
||||
|
||||
{ the amount of DrawerData actually written to disk }
|
||||
|
||||
DRAWERDATAFILESIZE = 62; { sizeof(DrawerData) }
|
||||
|
||||
DDVM_BYDEFAULT = 0;
|
||||
{ view as icons }
|
||||
DDVM_BYICON = 1;
|
||||
{ view as text, sorted by name }
|
||||
DDVM_BYNAME = 2;
|
||||
{ view as text, sorted by date }
|
||||
DDVM_BYDATE = 3;
|
||||
{ view as text, sorted by size }
|
||||
DDVM_BYSIZE = 4;
|
||||
{ view as text, sorted by type }
|
||||
DDVM_BYTYPE = 5;
|
||||
|
||||
{ definitions for dd_Flags }
|
||||
{ default (show only icons) }
|
||||
DDFLAGS_SHOWDEFAULT = 0;
|
||||
{ show only icons }
|
||||
DDFLAGS_SHOWICONS = 1;
|
||||
{ show all files }
|
||||
DDFLAGS_SHOWALL = 2;
|
||||
|
||||
Type
|
||||
|
||||
pDiskObject = ^tDiskObject;
|
||||
tDiskObject = record
|
||||
do_Magic : Word; { a magic number at the start of the file }
|
||||
do_Version : Word; { a version number, so we can change it }
|
||||
do_Gadget : tGadget; { a copy of in core gadget }
|
||||
do_Type : Byte;
|
||||
do_DefaultTool : STRPTR;
|
||||
do_ToolTypes : Pointer;
|
||||
do_CurrentX : Longint;
|
||||
do_CurrentY : Longint;
|
||||
do_DrawerData : pDrawerData;
|
||||
do_ToolWindow : STRPTR; { only applies to tools }
|
||||
do_StackSize : Longint; { only applies to tools }
|
||||
end;
|
||||
|
||||
Const
|
||||
|
||||
WB_DISKMAGIC = $e310; { a magic number, not easily impersonated }
|
||||
WB_DISKVERSION = 1; { our current version number }
|
||||
WB_DISKREVISION = 1; { our current revision number }
|
||||
{I only use the lower 8 bits of Gadget.UserData for the revision # }
|
||||
WB_DISKREVISIONMASK = 255;
|
||||
Type
|
||||
pFreeList = ^tFreeList;
|
||||
tFreeList = record
|
||||
fl_NumFree : smallint;
|
||||
fl_MemList : tList;
|
||||
end;
|
||||
|
||||
Const
|
||||
|
||||
{ each message that comes into the WorkBenchPort must have a type field
|
||||
* in the preceeding short. These are the defines for this type
|
||||
}
|
||||
|
||||
MTYPE_PSTD = 1; { a "standard Potion" message }
|
||||
MTYPE_TOOLEXIT = 2; { exit message from our tools }
|
||||
MTYPE_DISKCHANGE = 3; { dos telling us of a disk change }
|
||||
MTYPE_TIMER = 4; { we got a timer tick }
|
||||
MTYPE_CLOSEDOWN = 5; { <unimplemented> }
|
||||
MTYPE_IOPROC = 6; { <unimplemented> }
|
||||
MTYPE_APPWINDOW = 7; { msg from an app window }
|
||||
MTYPE_APPICON = 8; { msg from an app icon }
|
||||
MTYPE_APPMENUITEM = 9; { msg from an app menuitem }
|
||||
MTYPE_COPYEXIT = 10; { exit msg from copy process }
|
||||
MTYPE_ICONPUT = 11; { msg from PutDiskObject in icon.library }
|
||||
|
||||
|
||||
{ workbench does different complement modes for its gadgets.
|
||||
* It supports separate images, complement mode, and backfill mode.
|
||||
* The first two are identical to intuitions GADGIMAGE and GADGHCOMP.
|
||||
* backfill is similar to GADGHCOMP, but the region outside of the
|
||||
* image (which normally would be color three when complemented)
|
||||
* is flood-filled to color zero.
|
||||
}
|
||||
|
||||
GFLG_GADGBACKFILL = $0001;
|
||||
GADGBACKFILL = $0001; { an old synonym }
|
||||
|
||||
{ if an icon does not really live anywhere, set its current position
|
||||
* to here
|
||||
}
|
||||
|
||||
NO_ICON_POSITION = $80000000;
|
||||
|
||||
{ If you find am_Version >= AM_VERSION, you know this structure has
|
||||
* at least the fields defined in this version of the include file
|
||||
}
|
||||
AM_VERSION = 1;
|
||||
|
||||
Type
|
||||
pAppMessage = ^tAppMessage;
|
||||
tAppMessage = record
|
||||
am_Message : tMessage; { standard message structure }
|
||||
am_Type : Word; { message type }
|
||||
am_UserData : ULONG; { application specific }
|
||||
am_ID : ULONG; { application definable ID }
|
||||
am_NumArgs : ULONG; { # of elements in arglist }
|
||||
am_ArgList : pWBArgList; { the arguements themselves }
|
||||
am_Version : Word; { will be AM_VERSION }
|
||||
am_Class : Word; { message class }
|
||||
am_MouseX : smallint; { mouse x position of event }
|
||||
am_MouseY : smallint; { mouse y position of event }
|
||||
am_Seconds : ULONG; { current system clock time }
|
||||
am_Micros : ULONG; { current system clock time }
|
||||
am_Reserved : Array[0..7] of ULONG; { avoid recompilation }
|
||||
END;
|
||||
|
||||
{* types of app messages *}
|
||||
const
|
||||
AMTYPE_APPWINDOW = 7; {* app window message *}
|
||||
AMTYPE_APPICON = 8; {* app icon message *}
|
||||
AMTYPE_APPMENUITEM = 9; {* app menu item message *}
|
||||
|
||||
{ Classes of AppIcon messages (V44) }
|
||||
{ The "Open" menu item was invoked,
|
||||
the icon got double-clicked or an
|
||||
icon got dropped on it.
|
||||
}
|
||||
AMCLASSICON_Open = 0;
|
||||
{ The "Copy" menu item was invoked }
|
||||
AMCLASSICON_Copy = 1;
|
||||
{ The "Rename" menu item was invoked }
|
||||
AMCLASSICON_Rename = 2;
|
||||
{ The "Information" menu item was invoked }
|
||||
AMCLASSICON_Information = 3;
|
||||
{ The "Snapshot" menu item was invoked }
|
||||
AMCLASSICON_Snapshot = 4;
|
||||
{ The "UnSnapshot" menu item was invoked }
|
||||
AMCLASSICON_UnSnapshot = 5;
|
||||
{ The "Leave Out" menu item was invoked }
|
||||
AMCLASSICON_LeaveOut = 6;
|
||||
{ The "Put Away" menu item was invoked }
|
||||
AMCLASSICON_PutAway = 7;
|
||||
{ The "Delete" menu item was invoked }
|
||||
AMCLASSICON_Delete = 8;
|
||||
{ The "Format Disk" menu item was invoked }
|
||||
AMCLASSICON_FormatDisk = 9;
|
||||
{ The "Empty Trash" menu item was invoked }
|
||||
AMCLASSICON_EmptyTrash = 10;
|
||||
{ The icon is now selected }
|
||||
AMCLASSICON_Selected = 11;
|
||||
{ The icon is now unselected }
|
||||
AMCLASSICON_Unselected = 12;
|
||||
|
||||
{
|
||||
* The following structures are private. These are just stub
|
||||
* structures for code compatibility...
|
||||
}
|
||||
type
|
||||
|
||||
tAppWindow = record
|
||||
aw_PRIVATE : Pointer;
|
||||
END;
|
||||
pAppWindow = ^tAppWindow;
|
||||
|
||||
tAppIcon = record
|
||||
ai_PRIVATE : Pointer;
|
||||
END;
|
||||
pAppIcon = ^tAppIcon;
|
||||
|
||||
tAppMenuItem = record
|
||||
ami_PRIVATE : Pointer;
|
||||
END;
|
||||
pAppMenuItem = ^tAppMenuItem;
|
||||
|
||||
PAppWindowDropZone = ^tAppWindowDropZone;
|
||||
tAppWindowDropZone = record
|
||||
awdz_PRIVATE : pointer;
|
||||
end;
|
||||
|
||||
PAppMenu = ^tAppMenu;
|
||||
tAppMenu = record
|
||||
am_PRIVATE : pointer;
|
||||
end;
|
||||
|
||||
const
|
||||
WBA_Dummy = TAG_USER + $A000;
|
||||
{ }
|
||||
{ Tags for use with AddAppIconA() }
|
||||
{ AppIcon responds to the "Open" menu item (BOOL). }
|
||||
WBAPPICONA_SupportsOpen = WBA_Dummy + 1;
|
||||
|
||||
{ AppIcon responds to the "Copy" menu item (BOOL). }
|
||||
WBAPPICONA_SupportsCopy = WBA_Dummy + 2;
|
||||
|
||||
{ AppIcon responds to the "Rename" menu item (BOOL). }
|
||||
WBAPPICONA_SupportsRename = WBA_Dummy + 3;
|
||||
|
||||
{ AppIcon responds to the "Information" menu item (BOOL). }
|
||||
WBAPPICONA_SupportsInformation = WBA_Dummy + 4;
|
||||
|
||||
{ AppIcon responds to the "Snapshot" menu item (BOOL). }
|
||||
WBAPPICONA_SupportsSnapshot = WBA_Dummy + 5;
|
||||
|
||||
{ AppIcon responds to the "UnSnapshot" menu item (BOOL). }
|
||||
WBAPPICONA_SupportsUnSnapshot = WBA_Dummy + 6;
|
||||
|
||||
{ AppIcon responds to the "LeaveOut" menu item (BOOL). }
|
||||
WBAPPICONA_SupportsLeaveOut = WBA_Dummy + 7;
|
||||
|
||||
{ AppIcon responds to the "PutAway" menu item (BOOL). }
|
||||
WBAPPICONA_SupportsPutAway = WBA_Dummy + 8;
|
||||
|
||||
{ AppIcon responds to the "Delete" menu item (BOOL). }
|
||||
WBAPPICONA_SupportsDelete = WBA_Dummy + 9;
|
||||
|
||||
{ AppIcon responds to the "FormatDisk" menu item (BOOL). }
|
||||
WBAPPICONA_SupportsFormatDisk = WBA_Dummy + 10;
|
||||
|
||||
{ AppIcon responds to the "EmptyTrash" menu item (BOOL). }
|
||||
WBAPPICONA_SupportsEmptyTrash = WBA_Dummy + 11;
|
||||
|
||||
{ AppIcon position should be propagated back to original DiskObject (BOOL). }
|
||||
WBAPPICONA_PropagatePosition = WBA_Dummy + 12;
|
||||
|
||||
{ Callback hook to be invoked when rendering this icon (struct Hook ). }
|
||||
WBAPPICONA_RenderHook = WBA_Dummy + 13;
|
||||
|
||||
{ AppIcon wants to be notified when its select state changes (BOOL). }
|
||||
WBAPPICONA_NotifySelectState = WBA_Dummy + 14;
|
||||
|
||||
{**************************************************************************}
|
||||
|
||||
{ Tags for use with AddAppMenuA() }
|
||||
{ Command key string for this AppMenu (STRPTR). }
|
||||
WBAPPMENUA_CommandKeyString = WBA_Dummy + 15;
|
||||
{ Item to be added should get sub menu items attached to; make room for it,
|
||||
then return the key to use later for attaching the items (ULONG ).
|
||||
}
|
||||
WBAPPMENUA_GetKey = WBA_Dummy + 65;
|
||||
{ This item should be attached to a sub menu; the key provided refers to
|
||||
the sub menu it should be attached to (ULONG).
|
||||
}
|
||||
WBAPPMENUA_UseKey = WBA_Dummy + 66;
|
||||
{ Item to be added is in fact a new menu title; make room for it, then
|
||||
return the key to use later for attaching the items (ULONG ).
|
||||
}
|
||||
WBAPPMENUA_GetTitleKey = WBA_Dummy + 77;
|
||||
|
||||
{**************************************************************************}
|
||||
|
||||
{ Tags for use with OpenWorkbenchObjectA() }
|
||||
{ Corresponds to the wa_Lock member of a struct WBArg }
|
||||
WBOPENA_ArgLock = WBA_Dummy + 16;
|
||||
|
||||
{ Corresponds to the wa_Name member of a struct WBArg }
|
||||
WBOPENA_ArgName = WBA_Dummy + 17;
|
||||
|
||||
{ When opening a drawer, show all files or only icons?
|
||||
This must be one out of DDFLAGS_SHOWICONS,
|
||||
or DDFLAGS_SHOWALL; (UBYTE); (V45)
|
||||
}
|
||||
WBOPENA_Show = WBA_Dummy + 75;
|
||||
|
||||
{ When opening a drawer, view the contents by icon, name,
|
||||
date, size or type? This must be one out of DDVM_BYICON,
|
||||
DDVM_BYNAME, DDVM_BYDATE, DDVM_BYSIZE or DDVM_BYTYPE;
|
||||
(UBYTE); (V45)
|
||||
}
|
||||
WBOPENA_ViewBy = WBA_Dummy + 76;
|
||||
|
||||
{**************************************************************************}
|
||||
|
||||
{ Tags for use with WorkbenchControlA() }
|
||||
{ Check if the named drawer is currently open (LONG ). }
|
||||
WBCTRLA_IsOpen = WBA_Dummy + 18;
|
||||
|
||||
{ Create a duplicate of the Workbench private search path list (BPTR ). }
|
||||
WBCTRLA_DuplicateSearchPath = WBA_Dummy + 19;
|
||||
|
||||
{ Free the duplicated search path list (BPTR). }
|
||||
WBCTRLA_FreeSearchPath = WBA_Dummy + 20;
|
||||
|
||||
{ Get the default stack size for launching programs with (ULONG ). }
|
||||
WBCTRLA_GetDefaultStackSize = WBA_Dummy + 21;
|
||||
|
||||
{ Set the default stack size for launching programs with (ULONG). }
|
||||
WBCTRLA_SetDefaultStackSize = WBA_Dummy + 22;
|
||||
|
||||
{ Cause an AppIcon to be redrawn (struct AppIcon ). }
|
||||
WBCTRLA_RedrawAppIcon = WBA_Dummy + 23;
|
||||
|
||||
{ Get a list of currently running Workbench programs (struct List ). }
|
||||
WBCTRLA_GetProgramList = WBA_Dummy + 24;
|
||||
|
||||
{ Release the list of currently running Workbench programs (struct List ). }
|
||||
WBCTRLA_FreeProgramList = WBA_Dummy + 25;
|
||||
|
||||
{ Get a list of currently selected icons (struct List ). }
|
||||
WBCTRLA_GetSelectedIconList = WBA_Dummy + 36;
|
||||
|
||||
{ Release the list of currently selected icons (struct List ). }
|
||||
WBCTRLA_FreeSelectedIconList = WBA_Dummy + 37;
|
||||
|
||||
{ Get a list of currently open drawers (struct List ). }
|
||||
WBCTRLA_GetOpenDrawerList = WBA_Dummy + 38;
|
||||
|
||||
{ Release the list of currently open icons (struct List ). }
|
||||
WBCTRLA_FreeOpenDrawerList = WBA_Dummy + 39;
|
||||
|
||||
{ Get the list of hidden devices (struct List ). }
|
||||
WBCTRLA_GetHiddenDeviceList = WBA_Dummy + 42;
|
||||
|
||||
{ Release the list of hidden devices (struct List ). }
|
||||
WBCTRLA_FreeHiddenDeviceList = WBA_Dummy + 43;
|
||||
|
||||
{ Add the name of a device which Workbench should never try to
|
||||
read a disk icon from (STRPTR).
|
||||
}
|
||||
WBCTRLA_AddHiddenDeviceName = WBA_Dummy + 44;
|
||||
|
||||
{ Remove a name from list of hidden devices (STRPTR). }
|
||||
WBCTRLA_RemoveHiddenDeviceName = WBA_Dummy + 45;
|
||||
|
||||
{ Get the number of seconds that have to pass before typing
|
||||
the next character in a drawer window will restart
|
||||
with a new file name (ULONG ).
|
||||
}
|
||||
WBCTRLA_GetTypeRestartTime = WBA_Dummy + 47;
|
||||
|
||||
{ Set the number of seconds that have to pass before typing
|
||||
the next character in a drawer window will restart
|
||||
with a new file name (ULONG).
|
||||
}
|
||||
WBCTRLA_SetTypeRestartTime = WBA_Dummy + 48;
|
||||
|
||||
{ Obtain the hook that will be invoked when Workbench starts
|
||||
to copy files and data (struct Hook ); (V45)
|
||||
}
|
||||
WBCTRLA_GetCopyHook = WBA_Dummy + 69;
|
||||
|
||||
{ Install the hook that will be invoked when Workbench starts
|
||||
to copy files and data (struct Hook ); (V45)
|
||||
}
|
||||
WBCTRLA_SetCopyHook = WBA_Dummy + 70;
|
||||
|
||||
{ Obtain the hook that will be invoked when Workbench discards
|
||||
files and drawers or empties the trashcan (struct Hook );
|
||||
(V45).
|
||||
}
|
||||
WBCTRLA_GetDeleteHook = WBA_Dummy + 71;
|
||||
|
||||
{ Install the hook that will be invoked when Workbench discards
|
||||
files and drawers or empties the trashcan (struct Hook );
|
||||
(V45).
|
||||
}
|
||||
WBCTRLA_SetDeleteHook = WBA_Dummy + 72;
|
||||
|
||||
{ Obtain the hook that will be invoked when Workbench requests
|
||||
that the user enters text, such as when a file is to be renamed
|
||||
or a new drawer is to be created (struct Hook ); (V45)
|
||||
}
|
||||
WBCTRLA_GetTextInputHook = WBA_Dummy + 73;
|
||||
|
||||
{ Install the hook that will be invoked when Workbench requests
|
||||
that the user enters text, such as when a file is to be renamed
|
||||
or a new drawer is to be created (struct Hook ); (V45)
|
||||
}
|
||||
WBCTRLA_SetTextInputHook = WBA_Dummy + 74;
|
||||
|
||||
{ Add a hook that will be invoked when Workbench is about
|
||||
to shut down (cleanup), and when Workbench has returned
|
||||
to operational state (setup) (struct Hook ); (V45)
|
||||
}
|
||||
WBCTRLA_AddSetupCleanupHook = WBA_Dummy + 78;
|
||||
|
||||
{ Remove a hook that has been installed with the
|
||||
WBCTRLA_AddSetupCleanupHook tag (struct Hook ); (V45)
|
||||
}
|
||||
WBCTRLA_RemSetupCleanupHook = WBA_Dummy + 79;
|
||||
|
||||
{**************************************************************************}
|
||||
|
||||
{ The message your setup/cleanup hook gets invoked with. }
|
||||
type
|
||||
PSetupCleanupHookMsg = ^tSetupCleanupHookMsg;
|
||||
tSetupCleanupHookMsg = record
|
||||
schm_Length : ULONG;
|
||||
schm_State : LONG;
|
||||
end;
|
||||
|
||||
const
|
||||
{ Workbench will attempt to shut down now. }
|
||||
SCHMSTATE_TryCleanup = 0;
|
||||
{ Workbench will really shut down now. }
|
||||
SCHMSTATE_Cleanup = 1;
|
||||
{ Workbench is operational again or
|
||||
could not be shut down.
|
||||
}
|
||||
SCHMSTATE_Setup = 2;
|
||||
|
||||
{**************************************************************************}
|
||||
|
||||
{ Tags for use with AddAppWindowDropZoneA() }
|
||||
{ Zone left edge (WORD) }
|
||||
WBDZA_Left = WBA_Dummy + 26;
|
||||
|
||||
{ Zone left edge, if relative to the right edge of the window (WORD) }
|
||||
WBDZA_RelRight = WBA_Dummy + 27;
|
||||
|
||||
{ Zone top edge (WORD) }
|
||||
WBDZA_Top = WBA_Dummy + 28;
|
||||
|
||||
{ Zone top edge, if relative to the bottom edge of the window (WORD) }
|
||||
WBDZA_RelBottom = WBA_Dummy + 29;
|
||||
|
||||
{ Zone width (WORD) }
|
||||
WBDZA_Width = WBA_Dummy + 30;
|
||||
|
||||
{ Zone width, if relative to the window width (WORD) }
|
||||
WBDZA_RelWidth = WBA_Dummy + 31;
|
||||
|
||||
{ Zone height (WORD) }
|
||||
WBDZA_Height = WBA_Dummy + 32;
|
||||
|
||||
{ Zone height, if relative to the window height (WORD) }
|
||||
WBDZA_RelHeight = WBA_Dummy + 33;
|
||||
|
||||
{ Zone position and size (struct IBox ). }
|
||||
WBDZA_Box = WBA_Dummy + 34;
|
||||
|
||||
{ Hook to invoke when the mouse enters or leave a drop zone (struct Hook ). }
|
||||
WBDZA_Hook = WBA_Dummy + 35;
|
||||
|
||||
{**************************************************************************}
|
||||
|
||||
{ Reserved tags; don't use! }
|
||||
WBA_Reserved1 = WBA_Dummy + 40;
|
||||
WBA_Reserved2 = WBA_Dummy + 41;
|
||||
WBA_Reserved3 = WBA_Dummy + 46;
|
||||
WBA_Reserved4 = WBA_Dummy + 49;
|
||||
WBA_Reserved5 = WBA_Dummy + 50;
|
||||
WBA_Reserved6 = WBA_Dummy + 51;
|
||||
WBA_Reserved7 = WBA_Dummy + 52;
|
||||
WBA_Reserved8 = WBA_Dummy + 53;
|
||||
WBA_Reserved9 = WBA_Dummy + 54;
|
||||
WBA_Reserved10 = WBA_Dummy + 55;
|
||||
WBA_Reserved11 = WBA_Dummy + 56;
|
||||
WBA_Reserved12 = WBA_Dummy + 57;
|
||||
WBA_Reserved13 = WBA_Dummy + 58;
|
||||
WBA_Reserved14 = WBA_Dummy + 59;
|
||||
WBA_Reserved15 = WBA_Dummy + 60;
|
||||
WBA_Reserved16 = WBA_Dummy + 61;
|
||||
WBA_Reserved17 = WBA_Dummy + 62;
|
||||
WBA_Reserved18 = WBA_Dummy + 63;
|
||||
WBA_Reserved19 = WBA_Dummy + 64;
|
||||
WBA_Reserved20 = WBA_Dummy + 67;
|
||||
WBA_Reserved21 = WBA_Dummy + 68;
|
||||
|
||||
{**************************************************************************}
|
||||
|
||||
WBA_LAST_TAG = WBA_Dummy + 79;
|
||||
|
||||
{**************************************************************************}
|
||||
|
||||
{ The message your AppIcon rendering hook gets invoked with. }
|
||||
type
|
||||
PAppIconRenderMsg = ^tAppIconRenderMsg;
|
||||
tAppIconRenderMsg = record
|
||||
arm_RastPort : PRastPort; { RastPort to render into }
|
||||
arm_Icon : PDiskObject; { The icon to be rendered }
|
||||
arm_Label : STRPTR; { The icon label txt }
|
||||
arm_Tags : PTagItem; { Further tags to be passed on
|
||||
* to DrawIconStateA().
|
||||
}
|
||||
arm_Left : WORD; { \ Rendering origin, not taking the }
|
||||
arm_Top : WORD; { / button border into account. }
|
||||
arm_Width : WORD; { \ Limit your rendering to }
|
||||
arm_Height : WORD; { / this area. }
|
||||
arm_State : ULONG; { IDS_SELECTED, IDS_NORMAL, etc. }
|
||||
end;
|
||||
|
||||
{ The message your drop zone hook gets invoked with. }
|
||||
PAppWindowDropZoneMsg = ^tAppWindowDropZoneMsg;
|
||||
tAppWindowDropZoneMsg = record
|
||||
adzm_RastPort : PRastPort; { RastPort to render into. }
|
||||
adzm_DropZoneBox : tIBox; { Limit your rendering to this area. }
|
||||
adzm_ID : ULONG; { \ These come from straight }
|
||||
adzm_UserData : ULONG; { / from AddAppWindowDropZoneA(). }
|
||||
adzm_Action : LONG; { See below for a list of actions. }
|
||||
end;
|
||||
|
||||
const
|
||||
ADZMACTION_Enter = 0;
|
||||
ADZMACTION_Leave = 1;
|
||||
|
||||
{**************************************************************************}
|
||||
|
||||
{ The message your icon selection change hook is invoked with. }
|
||||
type
|
||||
PIconSelectMsg = ^tIconSelectMsg;
|
||||
tIconSelectMsg = record
|
||||
{ Size of this data structure (in bytes). }
|
||||
ism_Length : ULONG;
|
||||
{ Lock on the drawer this object resides in,
|
||||
* NULL for Workbench backdrop (devices).
|
||||
}
|
||||
ism_Drawer : BPTR;
|
||||
{ Name of the object in question. }
|
||||
ism_Name : STRPTR;
|
||||
{ One of WBDISK, WBDRAWER, WBTOOL, WBPROJECT,
|
||||
* WBGARBAGE, WBDEVICE, WBKICK or WBAPPICON.
|
||||
}
|
||||
ism_Type : UWORD;
|
||||
{ TRUE if currently selected, FALSE otherwise. }
|
||||
ism_Selected : BOOL;
|
||||
{ Pointer to the list of tag items passed to
|
||||
* ChangeWorkbenchSelectionA().
|
||||
}
|
||||
ism_Tags : PTagItem;
|
||||
{ Pointer to the window attached to this icon,
|
||||
* if the icon is a drawer-like object.
|
||||
}
|
||||
ism_DrawerWindow : PWindow;
|
||||
{ Pointer to the window the icon resides in. }
|
||||
ism_ParentWindow : PWindow;
|
||||
{ Position and size of the icon; note that the
|
||||
* icon may not entirely reside within the visible
|
||||
* bounds of the parent window.
|
||||
}
|
||||
ism_Left : WORD;
|
||||
ism_Top : WORD;
|
||||
ism_Width : WORD;
|
||||
ism_Height : WORD;
|
||||
end;
|
||||
|
||||
{ These are the values your hook code can return. }
|
||||
const
|
||||
{ Unselect the icon }
|
||||
ISMACTION_Unselect = 0;
|
||||
{ Select the icon }
|
||||
ISMACTION_Select = 1;
|
||||
{ Do not change the selection state. }
|
||||
ISMACTION_Ignore = 2;
|
||||
{ Do not invoke the hook code again,
|
||||
leave the icon as it is.
|
||||
}
|
||||
ISMACTION_Stop = 3;
|
||||
|
||||
{**************************************************************************}
|
||||
|
||||
{ The messages your copy hook is invoked with. }
|
||||
|
||||
type
|
||||
PCopyBeginMsg = ^tCopyBeginMsg;
|
||||
tCopyBeginMsg = record
|
||||
cbm_Length : ULONG; { Size of this data structure in bytes. }
|
||||
cbm_Action : LONG; { Will be set to CPACTION_Begin (see below). }
|
||||
cbm_SourceDrawer : BPTR; { A lock on the source drawer. }
|
||||
cbm_DestinationDrawer : BPTR; { A lock on the destination drawer. }
|
||||
end;
|
||||
|
||||
PCopyDataMsg = ^tCopyDataMsg;
|
||||
tCopyDataMsg = record
|
||||
cdm_Length : ULONG; { Size of this data structure in bytes. }
|
||||
cdm_Action : LONG; { Will be set to CPACTION_Copy (see below). }
|
||||
cdm_SourceLock : BPTR; { A lock on the parent directory of the
|
||||
* source file/drawer.
|
||||
}
|
||||
cdm_SourceName : STRPTR; { The name of the source file or drawer. }
|
||||
cdm_DestinationLock : BPTR; { A lock on the parent directory of the
|
||||
* destination file/drawer.
|
||||
}
|
||||
cdm_DestinationName : STRPTR; { The name of the destination file/drawer.
|
||||
* This may or may not match the name of
|
||||
* the source file/drawer in case the
|
||||
* data is to be copied under a different
|
||||
* name. For example, this is the case
|
||||
* with the Workbench "Copy" command which
|
||||
* creates duplicates of file/drawers by
|
||||
* prefixing the duplicate's name with
|
||||
* "Copy_XXX_of".
|
||||
}
|
||||
cdm_DestinationX : LONG; { When the icon corresponding to the
|
||||
* destination is written to disk, this
|
||||
* is the position (put into its
|
||||
* DiskObject->do_CurrentX/DiskObject->do_CurrentY
|
||||
* fields) it should be placed at.
|
||||
}
|
||||
cdm_DestinationY : LONG;
|
||||
end;
|
||||
|
||||
PCopyEndMsg = ^tCopyEndMsg;
|
||||
tCopyEndMsg = record
|
||||
cem_Length : ULONG; { Size of this data structure in bytes. }
|
||||
cem_Action : LONG; { Will be set to CPACTION_End (see below). }
|
||||
end;
|
||||
|
||||
const
|
||||
CPACTION_Begin = 0;
|
||||
{ This message arrives for each file or
|
||||
drawer to be copied.
|
||||
}
|
||||
CPACTION_Copy = 1;
|
||||
{ This message arrives when all files/drawers
|
||||
have been copied.
|
||||
}
|
||||
CPACTION_End = 2;
|
||||
|
||||
{**************************************************************************}
|
||||
|
||||
{ The messages your delete hook is invoked with. }
|
||||
type
|
||||
PDeleteBeginMsg = ^tDeleteBeginMsg;
|
||||
tDeleteBeginMsg = record
|
||||
dbm_Length : ULONG; { Size of this data structure in bytes. }
|
||||
dbm_Action : LONG; { Will be set to either DLACTION_BeginDiscard
|
||||
* or DLACTION_BeginEmptyTrash (see below).
|
||||
}
|
||||
end;
|
||||
|
||||
|
||||
PDeleteDataMsg = ^tDeleteDataMsg;
|
||||
tDeleteDataMsg = record
|
||||
ddm_Length : ULONG; { Size of this data structure in bytes. }
|
||||
ddm_Action : LONG; { Will be set to either DLACTION_DeleteContents
|
||||
* or DLACTION_DeleteObject (see below).
|
||||
}
|
||||
ddm_Lock : BPTR; { A Lock on the parent directory of the object
|
||||
* whose contents or which itself should be
|
||||
* deleted.
|
||||
}
|
||||
ddm_Name : STRPTR; { The name of the object whose contents or
|
||||
* which itself should be deleted.
|
||||
}
|
||||
end;
|
||||
|
||||
|
||||
PDeleteEndMsg = ^tDeleteEndMsg;
|
||||
tDeleteEndMsg = record
|
||||
dem_Length : ULONG; { Size of this data structure in bytes. }
|
||||
dem_Action : LONG; { Will be set to DLACTION_End (see below). }
|
||||
end;
|
||||
|
||||
const
|
||||
DLACTION_BeginDiscard = 0;
|
||||
{ This indicates that the following
|
||||
delete operations are intended to
|
||||
empty the trashcan.
|
||||
}
|
||||
|
||||
DLACTION_BeginEmptyTrash = 1;
|
||||
{ This indicates that the object
|
||||
described by lock and name refers
|
||||
to a drawer; you should empty its
|
||||
contents but DO NOT delete the
|
||||
drawer itself!
|
||||
}
|
||||
|
||||
DLACTION_DeleteContents = 3;
|
||||
{ This indicates that the object
|
||||
described by lock and name should
|
||||
be deleted; this could be a file
|
||||
or an empty drawer.
|
||||
}
|
||||
|
||||
DLACTION_DeleteObject = 4;
|
||||
{ This indicates that the
|
||||
deletion process is finished.
|
||||
}
|
||||
|
||||
DLACTION_End = 5;
|
||||
|
||||
{**************************************************************************}
|
||||
|
||||
{ The messages your text input hook is invoked with. }
|
||||
type
|
||||
PTextInputMsg = ^tTextInputMsg;
|
||||
tTextInputMsg = record
|
||||
tim_Length : ULONG; { Size of this data structure
|
||||
* in bytes.
|
||||
}
|
||||
tim_Action : LONG; { One of the TIACTION_...
|
||||
* values listed below.
|
||||
}
|
||||
tim_Prompt : STRPTR; { The Workbench suggested
|
||||
* result, depending on what
|
||||
* kind of input is requested
|
||||
* (as indicated by the
|
||||
* tim_Action member).
|
||||
}
|
||||
end;
|
||||
|
||||
const
|
||||
{ A file or drawer is to be
|
||||
* renamed.
|
||||
}
|
||||
TIACTION_Rename = 0;
|
||||
|
||||
{ A volume is to be relabeled. }
|
||||
TIACTION_RelabelVolume = 1;
|
||||
|
||||
{ A new drawer is to be created. }
|
||||
TIACTION_NewDrawer = 2;
|
||||
|
||||
{ A program or script is to be
|
||||
executed.
|
||||
}
|
||||
TIACTION_Execute = 3;
|
||||
|
||||
{**************************************************************************}
|
||||
|
||||
{ Parameters for the UpdateWorkbench() function. }
|
||||
|
||||
{ Object has been deleted. }
|
||||
UPDATEWB_ObjectRemoved = 0;
|
||||
|
||||
{ Object is new or has changed. }
|
||||
UPDATEWB_ObjectAdded = 1;
|
||||
|
||||
WORKBENCHNAME : PChar = 'workbench.library';
|
||||
|
||||
VAR
|
||||
WorkbenchBase : pLibrary = nil;
|
||||
|
||||
FUNCTION AddAppIconA(id : ULONG location 'd0'; userdata : ULONG location 'd1'; text_ : pCHAR location 'a0'; msgport : pMsgPort location 'a1'; lock : pFileLock location 'a2'; diskobj : pDiskObject location 'a3'; const taglist : pTagItem location 'a4') : pAppIcon; syscall WorkbenchBase 060;
|
||||
FUNCTION AddAppMenuItemA(id : ULONG location 'd0'; userdata : ULONG location 'd1'; text_ : pCHAR location 'a0'; msgport : pMsgPort location 'a1'; const taglist : pTagItem location 'a2') : pAppMenuItem; syscall WorkbenchBase 072;
|
||||
FUNCTION AddAppWindowA(id : ULONG location 'd0'; userdata : ULONG location 'd1'; window : pWindow location 'a0'; msgport : pMsgPort location 'a1'; const taglist : pTagItem location 'a2') : pAppWindow; syscall WorkbenchBase 042;
|
||||
FUNCTION RemoveAppIcon(appIcon : pAppIcon location 'a0') : longbool; syscall WorkbenchBase 066;
|
||||
FUNCTION RemoveAppMenuItem(appMenuItem : pAppMenuItem location 'a0') : longbool; syscall WorkbenchBase 078;
|
||||
FUNCTION RemoveAppWindow(appWindow : pAppWindow location 'a0') : longbool; syscall WorkbenchBase 054;
|
||||
PROCEDURE WBInfo(lock : BPTR location 'a0'; name : pCHAR location 'a1'; screen : pScreen location 'a2'); syscall WorkbenchBase 090;
|
||||
|
||||
FUNCTION AddAppWindowDropZoneA(aw : pAppWindow location 'a0'; id : longword location 'd0'; userdata : longword location 'd1'; const tags : pTagItem location 'a1') : pAppWindowDropZone; syscall WorkbenchBase 114;
|
||||
FUNCTION ChangeWorkbenchSelectionA(name : pCHAR location 'a0'; hook : pHook location 'a1'; const tags : pTagItem location 'a2') : longbool; syscall WorkbenchBase 126;
|
||||
FUNCTION CloseWorkbenchObjectA(name : pCHAR location 'a0'; const tags : pTagItem location 'a1') : longbool; syscall WorkbenchBase 102;
|
||||
FUNCTION MakeWorkbenchObjectVisibleA(name : pCHAR location 'a0'; const tags : pTagItem location 'a1') : longbool; syscall WorkbenchBase 132;
|
||||
FUNCTION OpenWorkbenchObjectA(name : pCHAR location 'a0'; const tags : pTagItem location 'a1') : longbool; syscall WorkbenchBase 096;
|
||||
FUNCTION RemoveAppWindowDropZone(aw : pAppWindow location 'a0'; dropZone : pAppWindowDropZone location 'a1') : longbool; syscall WorkbenchBase 120;
|
||||
FUNCTION WorkbenchControlA(name : pCHAR location 'a0'; const tags : pTagItem location 'a1') : longbool; syscall WorkbenchBase 108;
|
||||
|
||||
function AddAppMenuItem(id : ULONG; userdata : ULONG; text_ : pCHAR; msgport : pMsgPort; Const argv : array of PtrUInt) : pAppMenuItem;
|
||||
function AddAppWindow(id : ULONG; userdata : ULONG; window : pWindow; msgport : pMsgPort; Const argv : array of PtrUInt) : pAppWindow;
|
||||
|
||||
{ overlays }
|
||||
FUNCTION AddAppIconA(id : ULONG; userdata : ULONG; const text_ : RawByteString; msgport : pMsgPort; lock : pFileLock; diskobj : pDiskObject;const taglist : pTagItem) : pAppIcon;
|
||||
FUNCTION AddAppMenuItemA(id : ULONG; userdata : ULONG; const text_ : RawByteString; msgport : pMsgPort;const taglist : pTagItem) : pAppMenuItem;
|
||||
PROCEDURE WBInfo(lock : BPTR; const name : RawByteString; screen : pScreen);
|
||||
|
||||
FUNCTION ChangeWorkbenchSelectionA(const name : RawByteString; hook : pHook; const tags : pTagItem) : BOOLEAN;
|
||||
FUNCTION CloseWorkbenchObjectA(const name : RawByteString; const tags : pTagItem) : BOOLEAN;
|
||||
FUNCTION MakeWorkbenchObjectVisibleA(const name : RawByteString;const tags : pTagItem) : BOOLEAN;
|
||||
FUNCTION OpenWorkbenchObjectA(const name : RawByteString;const tags : pTagItem) : BOOLEAN;
|
||||
FUNCTION WorkbenchControlA(const name : RawByteString;const tags : pTagItem) : BOOLEAN;
|
||||
|
||||
IMPLEMENTATION
|
||||
|
||||
function AddAppMenuItem(id : ULONG; userdata : ULONG; text_ : pCHAR; msgport : pMsgPort; Const argv : array of PtrUInt) : pAppMenuItem;
|
||||
begin
|
||||
AddAppMenuItem := AddAppMenuItemA(id,userdata,text_,msgport,@argv);
|
||||
end;
|
||||
|
||||
function AddAppWindow(id : ULONG; userdata : ULONG; window : pWindow; msgport : pMsgPort; Const argv : array of PtrUInt) : pAppWindow;
|
||||
begin
|
||||
AddAppWindow := AddAppWindowA(id,userdata,window,msgport,@argv);
|
||||
end;
|
||||
|
||||
FUNCTION AddAppIconA(id : ULONG; userdata : ULONG; const text_ : RawByteString; msgport : pMsgPort; lock : pFileLock; diskobj : pDiskObject;const taglist : pTagItem) : pAppIcon;
|
||||
begin
|
||||
AddAppIconA := AddAppIconA(id,userdata,PChar(text_),msgport,lock,diskobj,taglist);
|
||||
end;
|
||||
|
||||
FUNCTION AddAppMenuItemA(id : ULONG; userdata : ULONG; const text_ : RawByteString; msgport : pMsgPort;const taglist : pTagItem) : pAppMenuItem;
|
||||
begin
|
||||
AddAppMenuItemA := AddAppMenuItemA(id,userdata,PChar(text_),msgport,taglist);
|
||||
end;
|
||||
|
||||
PROCEDURE WBInfo(lock : BPTR; const name : RawByteString; screen : pScreen);
|
||||
begin
|
||||
WBInfo(lock,PChar(name),screen);
|
||||
end;
|
||||
|
||||
FUNCTION ChangeWorkbenchSelectionA(const name : RawByteString; hook : pHook;const tags : pTagItem) : BOOLEAN;
|
||||
begin
|
||||
ChangeWorkbenchSelectionA := ChangeWorkbenchSelectionA(PChar(name),hook,tags);
|
||||
end;
|
||||
|
||||
FUNCTION CloseWorkbenchObjectA(const name : RawByteString;const tags : pTagItem) : BOOLEAN;
|
||||
begin
|
||||
CloseWorkbenchObjectA := CloseWorkbenchObjectA(PChar(name),tags);
|
||||
end;
|
||||
|
||||
FUNCTION MakeWorkbenchObjectVisibleA(const name : RawByteString;const tags : pTagItem) : BOOLEAN;
|
||||
begin
|
||||
MakeWorkbenchObjectVisibleA := MakeWorkbenchObjectVisibleA(PChar(name),tags);
|
||||
end;
|
||||
|
||||
FUNCTION OpenWorkbenchObjectA(const name : RawByteString;const tags : pTagItem) : BOOLEAN;
|
||||
begin
|
||||
OpenWorkbenchObjectA := OpenWorkbenchObjectA(PChar(name),tags);
|
||||
end;
|
||||
|
||||
FUNCTION WorkbenchControlA(const name : RawByteString;const tags : pTagItem) : BOOLEAN;
|
||||
begin
|
||||
WorkbenchControlA := WorkbenchControlA(PChar(name),tags);
|
||||
end;
|
||||
|
||||
const
|
||||
{ Change VERSION and LIBVERSION to proper values }
|
||||
VERSION : string[2] = '0';
|
||||
LIBVERSION : longword = 0;
|
||||
|
||||
initialization
|
||||
WorkbenchBase := OpenLibrary(WORKBENCHNAME,LIBVERSION);
|
||||
finalization
|
||||
if Assigned(WorkbenchBase) then
|
||||
CloseLibrary(WorkbenchBase);
|
||||
END. (* UNIT WB *)
|
Loading…
Reference in New Issue
Block a user