mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2026-01-09 10:43:04 +01:00
* more files
This commit is contained in:
parent
9645de9a5c
commit
569a1dde72
432
fv/callspec.pas
Normal file
432
fv/callspec.pas
Normal file
@ -0,0 +1,432 @@
|
||||
{
|
||||
$Id$
|
||||
|
||||
This unit provides compiler-independent mechanisms to call special
|
||||
functions, i.e. local functions/procedures, constructors, methods,
|
||||
destructors, etc. As there are no procedural variables for these
|
||||
special functions, there is no Pascal way to call them directly.
|
||||
|
||||
Copyright (c) 1997 Matthias K"oppe <mkoeppe@csmd.cs.uni-magdeburg.de>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
|
||||
This library 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. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
****************************************************************************}
|
||||
unit CallSpec;
|
||||
|
||||
{
|
||||
As of this version, the following compilers are supported. Please
|
||||
port CallSpec to other compilers (including earlier versions) and
|
||||
send your code to the above address.
|
||||
|
||||
Compiler Comments
|
||||
--------------------------- -------------------------------------
|
||||
Turbo Pascal 6.0
|
||||
Borland/Turbo Pascal 7.0
|
||||
FPC Pascal 0.99.8
|
||||
}
|
||||
|
||||
interface
|
||||
|
||||
{$i platform.inc}
|
||||
|
||||
{
|
||||
The frame pointer points to the local variables of a procedure.
|
||||
Use CurrentFramePointer to address the locals of the current procedure;
|
||||
use PreviousFramePointer to addess the locals of the calling procedure.
|
||||
}
|
||||
type
|
||||
{$ifdef BIT_16}
|
||||
FramePointer = Word;
|
||||
{$endif}
|
||||
{$ifdef BIT_32}
|
||||
FramePointer = pointer;
|
||||
{$endif}
|
||||
|
||||
function CurrentFramePointer: FramePointer;
|
||||
function PreviousFramePointer: FramePointer;
|
||||
|
||||
{ This version of CallSpec supports four classes of special functions.
|
||||
(Please write if you need other classes.)
|
||||
For each, two types of argument lists are allowed:
|
||||
|
||||
`Void' indicates special functions with no explicit arguments.
|
||||
Sample: constructor T.Init;
|
||||
`Pointer' indicates special functions with one explicit pointer argument.
|
||||
Sample: constructor T.Load(var S: TStream);
|
||||
}
|
||||
|
||||
{ Constructor calls.
|
||||
|
||||
Ctor Pointer to the constructor.
|
||||
Obj Pointer to the instance. NIL if new instance to be allocated.
|
||||
VMT Pointer to the VMT (obtained by TypeOf()).
|
||||
returns Pointer to the instance.
|
||||
}
|
||||
function CallVoidConstructor(Ctor: pointer; Obj: pointer; VMT: pointer): pointer;
|
||||
function CallPointerConstructor(Ctor: pointer; Obj: pointer; VMT: pointer; Param1: pointer): pointer;
|
||||
|
||||
{ Method calls.
|
||||
|
||||
Method Pointer to the method.
|
||||
Obj Pointer to the instance. NIL if new instance to be allocated.
|
||||
returns Pointer to the instance.
|
||||
}
|
||||
function CallVoidMethod(Method: pointer; Obj: pointer): pointer;
|
||||
function CallPointerMethod(Method: pointer; Obj: pointer; Param1: pointer): pointer;
|
||||
|
||||
{ Local-function/procedure calls.
|
||||
|
||||
Func Pointer to the local function (which must be far-coded).
|
||||
Frame Frame pointer of the wrapping function.
|
||||
}
|
||||
|
||||
function CallVoidLocal(Func: pointer; Frame: FramePointer): pointer;
|
||||
function CallPointerLocal(Func: pointer; Frame: FramePointer; Param1: pointer): pointer;
|
||||
|
||||
{ Calls of functions/procedures local to methods.
|
||||
|
||||
Func Pointer to the local function (which must be far-coded).
|
||||
Frame Frame pointer of the wrapping method.
|
||||
Obj Pointer to the object that the method belongs to.
|
||||
}
|
||||
function CallVoidMethodLocal(Func: pointer; Frame: FramePointer; Obj: pointer): pointer;
|
||||
function CallPointerMethodLocal(Func: pointer; Frame: FramePointer; Obj: pointer; Param1: pointer): pointer;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
{$ifdef PPC_FPC}
|
||||
|
||||
{$ifdef CPUI386}
|
||||
{$ASMMODE ATT}
|
||||
{$endif CPUI386}
|
||||
|
||||
{ This indicates an FPC version which uses the same call scheme for
|
||||
method-local and procedure-local procedures, but which expects the
|
||||
ESI register be loaded with the Self pointer in method-local procs. }
|
||||
|
||||
type
|
||||
VoidLocal = function(_EBP: FramePointer): pointer;
|
||||
PointerLocal = function(_EBP: FramePointer; Param1: pointer): pointer;
|
||||
VoidMethodLocal = function(_EBP: FRAMEPOINTER): pointer;
|
||||
PointerMethodLocal = function(_EBP: FRAMEPOINTER; Param1: pointer): pointer;
|
||||
VoidConstructor = function(VMT: pointer; Obj: pointer): pointer;
|
||||
PointerConstructor = function(VMT: pointer; Obj: pointer; Param1: pointer): pointer;
|
||||
VoidMethod = function(Obj: pointer): pointer;
|
||||
PointerMethod = function(Obj: pointer; Param1: pointer): pointer;
|
||||
|
||||
|
||||
function CallVoidConstructor(Ctor: pointer; Obj: pointer; VMT: pointer): pointer;
|
||||
begin
|
||||
{ load the object pointer }
|
||||
{$ifdef CPUI386}
|
||||
asm
|
||||
movl Obj, %esi
|
||||
end;
|
||||
{$endif CPUI386}
|
||||
{$ifdef CPU68K}
|
||||
asm
|
||||
move.l Obj, a5
|
||||
end;
|
||||
{$endif CPU68K}
|
||||
|
||||
CallVoidConstructor := VoidConstructor(Ctor)(VMT, Obj)
|
||||
end;
|
||||
|
||||
|
||||
function CallPointerConstructor(Ctor: pointer; Obj: pointer; VMT: pointer; Param1: pointer): pointer;
|
||||
begin
|
||||
{ load the object pointer }
|
||||
{$ifdef CPUI386}
|
||||
asm
|
||||
movl Obj, %esi
|
||||
end;
|
||||
{$endif CPUI386}
|
||||
{$ifdef CPU68K}
|
||||
asm
|
||||
move.l Obj, a5
|
||||
end;
|
||||
{$endif CPU68K}
|
||||
CallPointerConstructor := PointerConstructor(Ctor)(VMT, Obj, Param1)
|
||||
end;
|
||||
|
||||
|
||||
function CallVoidMethod(Method: pointer; Obj: pointer): pointer;
|
||||
begin
|
||||
{ load the object pointer }
|
||||
{$ifdef CPUI386}
|
||||
asm
|
||||
movl Obj, %esi
|
||||
end;
|
||||
{$endif CPUI386}
|
||||
{$ifdef CPU68K}
|
||||
asm
|
||||
move.l Obj, a5
|
||||
end;
|
||||
{$endif CPU68K}
|
||||
CallVoidMethod := VoidMethod(Method)(Obj)
|
||||
end;
|
||||
|
||||
|
||||
function CallPointerMethod(Method: pointer; Obj: pointer; Param1: pointer): pointer;
|
||||
begin
|
||||
{ load the object pointer }
|
||||
{$ifdef CPUI386}
|
||||
asm
|
||||
movl Obj, %esi
|
||||
end;
|
||||
{$endif CPUI386}
|
||||
{$ifdef CPU68K}
|
||||
asm
|
||||
move.l Obj, a5
|
||||
end;
|
||||
{$endif CPU68K}
|
||||
CallPointerMethod := PointerMethod(Method)(Obj, Param1)
|
||||
end;
|
||||
|
||||
|
||||
function CallVoidLocal(Func: pointer; Frame: FramePointer): pointer;
|
||||
begin
|
||||
CallVoidLocal := VoidLocal(Func)(Frame)
|
||||
end;
|
||||
|
||||
|
||||
function CallPointerLocal(Func: pointer; Frame: FramePointer; Param1: pointer): pointer;
|
||||
begin
|
||||
CallPointerLocal := PointerLocal(Func)(Frame, Param1)
|
||||
end;
|
||||
|
||||
|
||||
function CallVoidMethodLocal(Func: pointer; Frame: FramePointer; Obj: pointer): pointer;
|
||||
begin
|
||||
{ load the object pointer }
|
||||
{$ifdef CPUI386}
|
||||
asm
|
||||
movl Obj, %esi
|
||||
end;
|
||||
{$endif CPUI386}
|
||||
{$ifdef CPU68K}
|
||||
asm
|
||||
move.l Obj, a5
|
||||
end;
|
||||
{$endif CPU68K}
|
||||
CallVoidMethodLocal := VoidMethodLocal(Func)(Frame)
|
||||
end;
|
||||
|
||||
|
||||
function CallPointerMethodLocal(Func: pointer; Frame: FramePointer; Obj: pointer; Param1: pointer): pointer;
|
||||
begin
|
||||
{ load the object pointer }
|
||||
{$ifdef CPUI386}
|
||||
asm
|
||||
movl Obj, %esi
|
||||
end;
|
||||
{$endif CPUI386}
|
||||
{$ifdef CPU68K}
|
||||
asm
|
||||
move.l Obj, a5
|
||||
end;
|
||||
{$endif CPU68K}
|
||||
CallPointerMethodLocal := PointerMethodLocal(Func)(Frame, Param1)
|
||||
end;
|
||||
|
||||
|
||||
function CurrentFramePointer: FramePointer;assembler;
|
||||
{$ifdef CPUI386}
|
||||
asm
|
||||
movl %ebp,%eax
|
||||
end ['EAX'];
|
||||
{$endif CPUI386}
|
||||
{$ifdef CPU68K}
|
||||
asm
|
||||
move.l a6, d0
|
||||
end['D0'];
|
||||
{$endif CPU68K}
|
||||
|
||||
|
||||
function PreviousFramePointer: FramePointer;assembler;
|
||||
{$ifdef CPUI386}
|
||||
asm
|
||||
movl (%ebp),%eax
|
||||
end ['EAX'];
|
||||
{$endif CPUI386}
|
||||
{$ifdef CPU68K}
|
||||
asm
|
||||
move.l (a6), d0
|
||||
end['D0'];
|
||||
{$endif CPU68K}
|
||||
|
||||
{$endif PPC_FPC}
|
||||
|
||||
|
||||
{$ifdef PPC_BP}
|
||||
type
|
||||
VoidConstructor = function(VmtOfs: Word; Obj: pointer): pointer;
|
||||
PointerConstructor = function(Param1: pointer; VmtOfs: Word; Obj: pointer): pointer;
|
||||
VoidMethod = function(Obj: pointer): pointer;
|
||||
PointerMethod = function(Param1: pointer; Obj: pointer): pointer;
|
||||
|
||||
function CallVoidConstructor(Ctor: pointer; Obj: pointer; VMT: pointer): pointer;
|
||||
begin
|
||||
CallVoidConstructor := VoidConstructor(Ctor)(Ofs(VMT^), Obj)
|
||||
end;
|
||||
|
||||
|
||||
function CallPointerConstructor(Ctor: pointer; Obj: pointer; VMT: pointer; Param1: pointer): pointer;
|
||||
begin
|
||||
CallPointerConstructor := PointerConstructor(Ctor)(Param1, Ofs(VMT^), Obj)
|
||||
end;
|
||||
|
||||
|
||||
function CallVoidMethod(Method: pointer; Obj: pointer): pointer;
|
||||
begin
|
||||
CallVoidMethod := VoidMethod(Method)(Obj)
|
||||
end;
|
||||
|
||||
|
||||
function CallPointerMethod(Method: pointer; Obj: pointer; Param1: pointer): pointer;
|
||||
begin
|
||||
CallPointerMethod := PointerMethod(Method)(Param1, Obj)
|
||||
end;
|
||||
|
||||
|
||||
function CallVoidLocal(Func: pointer; Frame: FramePointer): pointer; assembler;
|
||||
asm
|
||||
{$IFDEF Windows}
|
||||
MOV AX,[Frame]
|
||||
AND AL,0FEH
|
||||
PUSH AX
|
||||
{$ELSE}
|
||||
push [Frame]
|
||||
{$ENDIF}
|
||||
call dword ptr Func
|
||||
end;
|
||||
|
||||
|
||||
function CallPointerLocal(Func: pointer; Frame: FramePointer; Param1: pointer): pointer; assembler;
|
||||
asm
|
||||
mov ax, word ptr Param1
|
||||
mov dx, word ptr Param1+2
|
||||
push dx
|
||||
push ax
|
||||
{$IFDEF Windows}
|
||||
MOV AX,[Frame]
|
||||
AND AL,0FEH
|
||||
PUSH AX
|
||||
{$ELSE}
|
||||
push [Frame]
|
||||
{$ENDIF}
|
||||
call dword ptr Func
|
||||
end;
|
||||
|
||||
|
||||
function CallVoidMethodLocal(Func: pointer; Frame: FramePointer; Obj: pointer): pointer; assembler;
|
||||
asm
|
||||
{$IFDEF Windows}
|
||||
MOV AX,[Frame]
|
||||
AND AL,0FEH
|
||||
PUSH AX
|
||||
{$ELSE}
|
||||
push [Frame]
|
||||
{$ENDIF}
|
||||
call dword ptr Func
|
||||
end;
|
||||
|
||||
|
||||
function CallPointerMethodLocal(Func: pointer; Frame: FramePointer; Obj: pointer; Param1: pointer): pointer; assembler;
|
||||
asm
|
||||
mov ax, word ptr Param1
|
||||
mov dx, word ptr Param1+2
|
||||
push dx
|
||||
push ax
|
||||
{$IFDEF Windows}
|
||||
MOV AX,[Frame]
|
||||
AND AL,0FEH
|
||||
PUSH AX
|
||||
{$ELSE}
|
||||
push [Frame]
|
||||
{$ENDIF}
|
||||
call dword ptr Func
|
||||
end;
|
||||
|
||||
|
||||
function CurrentFramePointer: FramePointer; assembler;
|
||||
asm
|
||||
mov ax, bp
|
||||
end;
|
||||
|
||||
|
||||
function PreviousFramePointer: FramePointer; assembler;
|
||||
asm
|
||||
mov ax, ss:[bp]
|
||||
end;
|
||||
|
||||
{$endif PPC_BP}
|
||||
|
||||
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.1 2001-08-05 02:10:26 peter
|
||||
* more files
|
||||
|
||||
Revision 1.3 2001/07/30 08:27:58 pierre
|
||||
* fix I386 compilation problem
|
||||
|
||||
Revision 1.2 2001/07/29 20:23:18 pierre
|
||||
* support for m68k cpu
|
||||
|
||||
Revision 1.1 2001/01/29 21:56:04 peter
|
||||
* updates for new fpcmake
|
||||
|
||||
Revision 1.1 2001/01/29 11:31:26 marco
|
||||
* added from API. callspec renamed to .pp
|
||||
|
||||
Revision 1.1 2000/07/13 06:29:38 michael
|
||||
+ Initial import
|
||||
|
||||
Revision 1.1 2000/01/06 01:20:30 peter
|
||||
* moved out of packages/ back to topdir
|
||||
|
||||
Revision 1.1 1999/12/23 19:36:47 peter
|
||||
* place unitfiles in target dirs
|
||||
|
||||
Revision 1.1 1999/11/24 23:36:37 peter
|
||||
* moved to packages dir
|
||||
|
||||
Revision 1.2 1998/12/16 21:57:16 peter
|
||||
* fixed currentframe,previousframe
|
||||
+ testcall to test the callspec unit
|
||||
|
||||
Revision 1.1 1998/12/04 12:48:24 peter
|
||||
* moved some dirs
|
||||
|
||||
Revision 1.5 1998/12/04 09:53:44 peter
|
||||
* removed objtemp global var
|
||||
|
||||
Revision 1.4 1998/11/24 17:14:24 peter
|
||||
* fixed esi loading
|
||||
|
||||
|
||||
Date Version Who Comments
|
||||
---------- -------- ------- -------------------------------------
|
||||
19-Sep-97 0.1 mkoeppe Initial version.
|
||||
22-Sep-97 0.11 fk 0.9.3 support added, self isn't expected
|
||||
on the stack in local procedures of methods
|
||||
23-Sep-97 0.12 mkoeppe Cleaned up 0.9.3 conditionals.
|
||||
03-Oct-97 0.13 mkoeppe Fixed esi load in FPC 0.9
|
||||
22-Oct-98 0.14 pfv 0.99.8 support for FPC
|
||||
}
|
||||
3733
fv/editors.pas
Normal file
3733
fv/editors.pas
Normal file
File diff suppressed because it is too large
Load Diff
189
fv/str.inc
Normal file
189
fv/str.inc
Normal file
@ -0,0 +1,189 @@
|
||||
{ Strings }
|
||||
sButtonDefault = 1; { Button default }
|
||||
sButtonDisabled = 2; { Button disabled }
|
||||
sButtonNormal = 3; { Button normal }
|
||||
sButtonSelected = 4; { Button selected }
|
||||
sButtonShadow = 5; { Button shadow }
|
||||
sButtonShortcut = 6; { Button shortcut }
|
||||
sChangeDirectory = 7; { Change Directory }
|
||||
sClipboard = 8; { Clipboard }
|
||||
sClusterNormal = 9; { Cluster normal }
|
||||
sClusterSelected = 10; { Cluster selected }
|
||||
sClusterShortcut = 11; { Cluster shortcut }
|
||||
sColor = 12; { Color }
|
||||
sColors = 13; { Colors }
|
||||
sConfirm = 14; { Confirm }
|
||||
sDeleteFile = 15; { Delete file?#13#10#13#3%s }
|
||||
sDirectory = 16; { Directory }
|
||||
sDisabled = 17; { Disabled }
|
||||
sDrives = 18; { Drives }
|
||||
sError = 19; { Error }
|
||||
sFileAlreadyOpen = 20; { #3%s#13#10#13#3is already open in window %d. }
|
||||
sFileCreateError = 21; { Error creating file %s }
|
||||
sFileReadError = 22; { Error reading file %s }
|
||||
sFileUntitled = 23; { Save untitled file? }
|
||||
sFileWriteError = 24; { Error writing to file %s }
|
||||
sFind = 25; { Find }
|
||||
sFrameActive = 26; { Frame active }
|
||||
sFrameBackground = 27; { Frame/background }
|
||||
sFrameIcons = 28; { Frame icons }
|
||||
sFramePassive = 29; { Frame passive }
|
||||
sHighlight = 30; { Highlight }
|
||||
sHistoryBarIcons = 31; { History bar icons }
|
||||
sHistoryBarPage = 32; { History bar page }
|
||||
sHistoryButton = 33; { History button }
|
||||
sHistorySides = 34; { History sides }
|
||||
sInformation = 35; { Information }
|
||||
sInformationPane = 36; { Information pane }
|
||||
sInputArrow = 37; { Input arrow }
|
||||
sInputNormal = 38; { Input normal }
|
||||
sInputSelected = 39; { Input selected }
|
||||
sInvalidCharacter = 40; { Invalid character in input }
|
||||
sInvalidDirectory = 41; { Invalid directory. }
|
||||
sInvalidDriveOrDir = 42; { Invalid drive or directory. }
|
||||
sInvalidFileName = 43; { Invalid file name. }
|
||||
sInvalidPicture = 44; { Input does not conform to picture: %s }
|
||||
sInvalidValue = 45; { Value not in the range %d to %d }
|
||||
sInverse = 46; { Inverse }
|
||||
sJumpTo = 47; { Jump To }
|
||||
sLabelNormal = 48; { Label normal }
|
||||
sLabelSelected = 49; { Label selected }
|
||||
sLabelShortcut = 50; { Label shortcut }
|
||||
sListDivider = 51; { List divider }
|
||||
sListFocused = 52; { List focused }
|
||||
sListNormal = 53; { List normal }
|
||||
sListSelected = 54; { List selected }
|
||||
sModified = 55; { #3%s#13#10#13#3has been modified. Save? }
|
||||
sNoName = 56; { NONAME }
|
||||
sNormal = 57; { Normal }
|
||||
sNormalText = 58; { Normal text }
|
||||
sNotInList = 59; { Input not in valid-list }
|
||||
sOpen = 60; { Open }
|
||||
sOutOfMemory = 61; { Not enough memory for this operation. }
|
||||
sOutOfUnNamedWindows = 62; { Out of unnamed window numbers. Save or discard some unnamed files and try again. }
|
||||
sPasteNotPossible = 63; { Wordwrap on: Paste not possible in current margins when at end of line. }
|
||||
sReformatDocument = 64; { Reformat Document }
|
||||
sReformatNotPossible = 65; { Paragraph reformat not possible while trying to wrap current line with current margins. }
|
||||
sReformattingTheDocument = 66; { Reformatting the document: }
|
||||
sReplace = 67; { Replace }
|
||||
sReplaceFile = 68; { Replace file?#13#10#13#3%s }
|
||||
sReplaceNotPossible = 69; { Wordwrap on: Replace not possible in current margins when at end of line. }
|
||||
sReplaceThisOccurence = 70; { Replace this occurence? }
|
||||
sRightMargin = 71; { Right Margin }
|
||||
sSaveAs = 72; { Save As }
|
||||
sScrollbarIcons = 73; { Scroll bar icons }
|
||||
sScrollbarPage = 74; { Scroll bar page }
|
||||
sSearchStringNotFound = 75; { Search string not found. }
|
||||
sSelectFormatStart = 76; { Select Format Start }
|
||||
sSelectWhereToBegin = 77; { Please select where to begin. }
|
||||
sSelected = 78; { Selected }
|
||||
sSelectedDisabled = 79; { Selected disabled }
|
||||
sSetting = 80; { Setting: }
|
||||
sShortcut = 81; { Shortcut }
|
||||
sShortcutSelected = 82; { ShortcutSelected }
|
||||
sStaticText = 83; { Static text }
|
||||
sTabSettings = 84; { Tab Settings }
|
||||
sText = 85; { Text }
|
||||
sTooManyFiles = 86; { Too many files. }
|
||||
sTypeExitOnReturn = 87; { Type EXIT to return... }
|
||||
sUnderline = 88; { Underline }
|
||||
sUnknownDialog = 89; { Unknown dialog requested! }
|
||||
sUntitled = 90; { Untitled }
|
||||
sWarning = 91; { Warning }
|
||||
sWindowList = 92; { Window List }
|
||||
sWordWrapNotPossible = 93; { Wordwrap on: Wordwrap not possible in current margins with continuous line. }
|
||||
sWordWrapOff = 94; { You must turn on wordwrap before you can reformat. }
|
||||
smApr = 95; { Apr }
|
||||
smAug = 96; { Aug }
|
||||
smDec = 97; { Dec }
|
||||
smFeb = 98; { Feb }
|
||||
smJan = 99; { Jan }
|
||||
smJul = 100; { Jul }
|
||||
smJun = 101; { Jun }
|
||||
smMar = 102; { Mar }
|
||||
smMay = 103; { May }
|
||||
smNov = 104; { Nov }
|
||||
smOct = 105; { Oct }
|
||||
smSep = 106; { Sep }
|
||||
{ Labels }
|
||||
slAbout = 107; { ~A~bout }
|
||||
slAltF1 = 108; { Alt+F1 }
|
||||
slAltF3Close = 109; { ~Alt+F3~ Close }
|
||||
slAltXExit = 110; { ~Alt-X~ Exit }
|
||||
slBackground = 111; { ~B~ackground }
|
||||
slCancel = 112; { Cancel }
|
||||
slCascade = 113; { C~a~scade }
|
||||
slCaseSensitive = 114; { ~C~ase sensitive }
|
||||
slChDir = 115; { ~C~hdir }
|
||||
slChangeDir = 116; { ~C~hange dir... }
|
||||
slClear = 117; { C~l~ear }
|
||||
slClose = 118; { ~C~lose }
|
||||
slCloseAll = 119; { Cl~o~se all }
|
||||
slColor = 120; { ~C~olor }
|
||||
slContents = 121; { ~C~ontents }
|
||||
slCopy = 122; { ~C~opy }
|
||||
slCtrlF1 = 123; { Ctrl+F1 }
|
||||
slCurrentLine = 124; { ~C~urrent line }
|
||||
slCut = 125; { Cu~t~ }
|
||||
slDOSShell = 126; { ~D~OS shell }
|
||||
slDelete = 127; { ~D~elete }
|
||||
slDirectoryName = 128; { Directory ~n~ame }
|
||||
slDirectoryTree = 129; { Directory ~t~ree }
|
||||
slEdit = 130; { ~E~dit }
|
||||
slEntireDocument = 131; { ~E~ntire document }
|
||||
slExit = 132; { E~x~it }
|
||||
slF10Menu = 133; { ~F10~ Menu }
|
||||
slF1Help = 134; { ~F1~ Help }
|
||||
slF3Open = 135; { ~F3~ Open }
|
||||
slFile = 136; { ~F~ile }
|
||||
slFiles = 137; { ~F~iles }
|
||||
slForeground = 138; { ~F~oreground }
|
||||
slGroup = 139; { ~G~roup }
|
||||
slHelp = 140; { ~H~elp }
|
||||
slIndex = 141; { ~I~ndex }
|
||||
slItem = 142; { ~I~tem }
|
||||
slLineNumber = 143; { ~L~ine number }
|
||||
slName = 144; { ~N~ame }
|
||||
slNew = 145; { ~N~ew }
|
||||
slNewText = 146; { ~N~ew text }
|
||||
slNext = 147; { ~N~ext }
|
||||
slNo = 148; { ~N~o }
|
||||
slOk = 149; { O~k~ }
|
||||
slOpen = 150; { ~O~pen }
|
||||
slOpenDots = 151; { ~O~pen... }
|
||||
slPaste = 152; { ~P~aste }
|
||||
slPrevious = 153; { ~P~revious }
|
||||
slPreviousTopic = 154; { ~P~revious topic }
|
||||
slPromptOnReplace = 155; { ~P~rompt on replace }
|
||||
slReformatDocument = 156; { ~R~eformat document }
|
||||
slReplace = 157; { ~R~eplace }
|
||||
slReplaceAll = 158; { ~R~eplace all }
|
||||
slRevert = 159; { ~R~evert }
|
||||
slSave = 160; { ~S~ave }
|
||||
slSaveAll = 161; { Save a~l~l }
|
||||
slSaveAs = 162; { S~a~ve as... }
|
||||
slSaveFileAs = 163; { ~S~ave file as }
|
||||
slShiftF1 = 164; { Shift+F1 }
|
||||
slSizeMove = 165; { ~S~ize/Move }
|
||||
slTextToFind = 166; { ~T~ext to find }
|
||||
slTile = 167; { ~T~ile }
|
||||
slTopicSearch = 168; { ~T~opic search }
|
||||
slUndo = 169; { ~U~ndo }
|
||||
slUsingHelp = 170; { ~U~sing help }
|
||||
slWholeWordsOnly = 171; { ~W~hole words only }
|
||||
slWindow = 172; { ~W~indow }
|
||||
slWindows = 173; { ~W~indows }
|
||||
slYes = 174; { ~Y~es }
|
||||
slZoom = 175; { ~Z~oom }
|
||||
slAltF3 = 176; { Alt+F3 }
|
||||
slAltX = 177; { Alt+X }
|
||||
slF2 = 178; { F2 }
|
||||
slF3 = 179; { F3 }
|
||||
slF5 = 180; { F5 }
|
||||
slF6 = 181; { F6 }
|
||||
slCtrlDel = 182; { Ctrl+Del }
|
||||
slCtrlF5 = 183; { Ctrl+F5 }
|
||||
slCtrlIns = 184; { Ctrl+Ins }
|
||||
slShiftDel = 185; { Shift+Del }
|
||||
slShiftF6 = 186; { Shift+F6 }
|
||||
slShiftIns = 187; { Shift+Ins }
|
||||
194
fv/strtxt.inc
Normal file
194
fv/strtxt.inc
Normal file
@ -0,0 +1,194 @@
|
||||
procedure InitResStrings;
|
||||
begin
|
||||
Strings^.Put(sButtonDefault,'Button default');
|
||||
Strings^.Put(sButtonDisabled,'Button disabled');
|
||||
Strings^.Put(sButtonNormal,'Button normal');
|
||||
Strings^.Put(sButtonSelected,'Button selected');
|
||||
Strings^.Put(sButtonShadow,'Button shadow');
|
||||
Strings^.Put(sButtonShortcut,'Button shortcut');
|
||||
Strings^.Put(sChangeDirectory,'Change Directory');
|
||||
Strings^.Put(sClipboard,'Clipboard');
|
||||
Strings^.Put(sClusterNormal,'Cluster normal');
|
||||
Strings^.Put(sClusterSelected,'Cluster selected');
|
||||
Strings^.Put(sClusterShortcut,'Cluster shortcut');
|
||||
Strings^.Put(sColor,'Color');
|
||||
Strings^.Put(sColors,'Colors');
|
||||
Strings^.Put(sConfirm,'Confirm');
|
||||
Strings^.Put(sDeleteFile,'Delete file?'#13#10#13#3'%s');
|
||||
Strings^.Put(sDirectory,'Directory');
|
||||
Strings^.Put(sDisabled,'Disabled');
|
||||
Strings^.Put(sDrives,'Drives');
|
||||
Strings^.Put(sError,'Error');
|
||||
Strings^.Put(sFileAlreadyOpen,''#3'%s'#13#10#13#3'is already open in window %d.');
|
||||
Strings^.Put(sFileCreateError,'Error creating file %s');
|
||||
Strings^.Put(sFileReadError,'Error reading file %s');
|
||||
Strings^.Put(sFileUntitled,'Save untitled file?');
|
||||
Strings^.Put(sFileWriteError,'Error writing to file %s');
|
||||
Strings^.Put(sFind,'Find');
|
||||
Strings^.Put(sFrameActive,'Frame active');
|
||||
Strings^.Put(sFrameBackground,'Frame/background');
|
||||
Strings^.Put(sFrameIcons,'Frame icons');
|
||||
Strings^.Put(sFramePassive,'Frame passive');
|
||||
Strings^.Put(sHighlight,'Highlight');
|
||||
Strings^.Put(sHistoryBarIcons,'History bar icons');
|
||||
Strings^.Put(sHistoryBarPage,'History bar page');
|
||||
Strings^.Put(sHistoryButton,'History button');
|
||||
Strings^.Put(sHistorySides,'History sides');
|
||||
Strings^.Put(sInformation,'Information');
|
||||
Strings^.Put(sInformationPane,'Information pane');
|
||||
Strings^.Put(sInputArrow,'Input arrow');
|
||||
Strings^.Put(sInputNormal,'Input normal');
|
||||
Strings^.Put(sInputSelected,'Input selected');
|
||||
Strings^.Put(sInvalidCharacter,'Invalid character in input');
|
||||
Strings^.Put(sInvalidDirectory,'Invalid directory.');
|
||||
Strings^.Put(sInvalidDriveOrDir,'Invalid drive or directory.');
|
||||
Strings^.Put(sInvalidFileName,'Invalid file name.');
|
||||
Strings^.Put(sInvalidPicture,'Input does not conform to picture: %s');
|
||||
Strings^.Put(sInvalidValue,'Value not in the range %d to %d');
|
||||
Strings^.Put(sInverse,'Inverse');
|
||||
Strings^.Put(sJumpTo,'Jump To');
|
||||
Strings^.Put(sLabelNormal,'Label normal');
|
||||
Strings^.Put(sLabelSelected,'Label selected');
|
||||
Strings^.Put(sLabelShortcut,'Label shortcut');
|
||||
Strings^.Put(sListDivider,'List divider');
|
||||
Strings^.Put(sListFocused,'List focused');
|
||||
Strings^.Put(sListNormal,'List normal');
|
||||
Strings^.Put(sListSelected,'List selected');
|
||||
Strings^.Put(sModified,''#3'%s'#13#10#13#3'has been modified. Save?');
|
||||
Strings^.Put(sNoName,'NONAME');
|
||||
Strings^.Put(sNormal,'Normal');
|
||||
Strings^.Put(sNormalText,'Normal text');
|
||||
Strings^.Put(sNotInList,'Input not in valid-list');
|
||||
Strings^.Put(sOpen,'Open');
|
||||
Strings^.Put(sOutOfMemory,'Not enough memory for this operation.');
|
||||
Strings^.Put(sOutOfUnNamedWindows,'Out of unnamed window numbers. Save or discard some unnamed files and try again.');
|
||||
Strings^.Put(sPasteNotPossible,'Wordwrap on: Paste not possible in current margins when at end of line.');
|
||||
Strings^.Put(sReformatDocument,'Reformat Document');
|
||||
Strings^.Put(sReformatNotPossible,'Paragraph reformat not possible while trying to wrap current line with current margins.');
|
||||
Strings^.Put(sReformattingTheDocument,'Reformatting the document:');
|
||||
Strings^.Put(sReplace,'Replace');
|
||||
Strings^.Put(sReplaceFile,'Replace file?'#13#10#13#3'%s');
|
||||
Strings^.Put(sReplaceNotPossible,'Wordwrap on: Replace not possible in current margins when at end of line.');
|
||||
Strings^.Put(sReplaceThisOccurence,'Replace this occurence?');
|
||||
Strings^.Put(sRightMargin,'Right Margin');
|
||||
Strings^.Put(sSaveAs,'Save As');
|
||||
Strings^.Put(sScrollbarIcons,'Scroll bar icons');
|
||||
Strings^.Put(sScrollbarPage,'Scroll bar page');
|
||||
Strings^.Put(sSearchStringNotFound,'Search string not found.');
|
||||
Strings^.Put(sSelectFormatStart,'Select Format Start');
|
||||
Strings^.Put(sSelectWhereToBegin,'Please select where to begin.');
|
||||
Strings^.Put(sSelected,'Selected');
|
||||
Strings^.Put(sSelectedDisabled,'Selected disabled');
|
||||
Strings^.Put(sSetting,'Setting:');
|
||||
Strings^.Put(sShortcut,'Shortcut');
|
||||
Strings^.Put(sShortcutSelected,'ShortcutSelected');
|
||||
Strings^.Put(sStaticText,'Static text');
|
||||
Strings^.Put(sTabSettings,'Tab Settings');
|
||||
Strings^.Put(sText,'Text');
|
||||
Strings^.Put(sTooManyFiles,'Too many files.');
|
||||
Strings^.Put(sTypeExitOnReturn,'Type EXIT to return...');
|
||||
Strings^.Put(sUnderline,'Underline');
|
||||
Strings^.Put(sUnknownDialog,'Unknown dialog requested!');
|
||||
Strings^.Put(sUntitled,'Untitled');
|
||||
Strings^.Put(sWarning,'Warning');
|
||||
Strings^.Put(sWindowList,'Window List');
|
||||
Strings^.Put(sWordWrapNotPossible,'Wordwrap on: Wordwrap not possible in current margins with continuous line.');
|
||||
Strings^.Put(sWordWrapOff,'You must turn on wordwrap before you can reformat.');
|
||||
Strings^.Put(smApr,'Apr');
|
||||
Strings^.Put(smAug,'Aug');
|
||||
Strings^.Put(smDec,'Dec');
|
||||
Strings^.Put(smFeb,'Feb');
|
||||
Strings^.Put(smJan,'Jan');
|
||||
Strings^.Put(smJul,'Jul');
|
||||
Strings^.Put(smJun,'Jun');
|
||||
Strings^.Put(smMar,'Mar');
|
||||
Strings^.Put(smMay,'May');
|
||||
Strings^.Put(smNov,'Nov');
|
||||
Strings^.Put(smOct,'Oct');
|
||||
Strings^.Put(smSep,'Sep');
|
||||
end;
|
||||
|
||||
procedure InitResLabels;
|
||||
begin
|
||||
Labels^.Put(slAbout,'~A~bout');
|
||||
Labels^.Put(slAltF1,'Alt+F1');
|
||||
Labels^.Put(slAltF3Close,'~Alt+F3~ Close');
|
||||
Labels^.Put(slAltXExit,'~Alt-X~ Exit');
|
||||
Labels^.Put(slBackground,'~B~ackground');
|
||||
Labels^.Put(slCancel,'Cancel');
|
||||
Labels^.Put(slCascade,'C~a~scade');
|
||||
Labels^.Put(slCaseSensitive,'~C~ase sensitive');
|
||||
Labels^.Put(slChDir,'~C~hdir');
|
||||
Labels^.Put(slChangeDir,'~C~hange dir...');
|
||||
Labels^.Put(slClear,'C~l~ear');
|
||||
Labels^.Put(slClose,'~C~lose');
|
||||
Labels^.Put(slCloseAll,'Cl~o~se all');
|
||||
Labels^.Put(slColor,'~C~olor');
|
||||
Labels^.Put(slContents,'~C~ontents');
|
||||
Labels^.Put(slCopy,'~C~opy');
|
||||
Labels^.Put(slCtrlF1,'Ctrl+F1');
|
||||
Labels^.Put(slCurrentLine,'~C~urrent line');
|
||||
Labels^.Put(slCut,'Cu~t~');
|
||||
Labels^.Put(slDOSShell,'~D~OS shell');
|
||||
Labels^.Put(slDelete,'~D~elete');
|
||||
Labels^.Put(slDirectoryName,'Directory ~n~ame');
|
||||
Labels^.Put(slDirectoryTree,'Directory ~t~ree');
|
||||
Labels^.Put(slEdit,'~E~dit');
|
||||
Labels^.Put(slEntireDocument,'~E~ntire document');
|
||||
Labels^.Put(slExit,'E~x~it');
|
||||
Labels^.Put(slF10Menu,'~F10~ Menu');
|
||||
Labels^.Put(slF1Help,'~F1~ Help');
|
||||
Labels^.Put(slF3Open,'~F3~ Open');
|
||||
Labels^.Put(slFile,'~F~ile');
|
||||
Labels^.Put(slFiles,'~F~iles');
|
||||
Labels^.Put(slForeground,'~F~oreground');
|
||||
Labels^.Put(slGroup,'~G~roup');
|
||||
Labels^.Put(slHelp,'~H~elp');
|
||||
Labels^.Put(slIndex,'~I~ndex');
|
||||
Labels^.Put(slItem,'~I~tem');
|
||||
Labels^.Put(slLineNumber,'~L~ine number');
|
||||
Labels^.Put(slName,'~N~ame');
|
||||
Labels^.Put(slNew,'~N~ew');
|
||||
Labels^.Put(slNewText,'~N~ew text');
|
||||
Labels^.Put(slNext,'~N~ext');
|
||||
Labels^.Put(slNo,'~N~o');
|
||||
Labels^.Put(slOk,'O~k~');
|
||||
Labels^.Put(slOpen,'~O~pen');
|
||||
Labels^.Put(slOpenDots,'~O~pen...');
|
||||
Labels^.Put(slPaste,'~P~aste');
|
||||
Labels^.Put(slPrevious,'~P~revious');
|
||||
Labels^.Put(slPreviousTopic,'~P~revious topic');
|
||||
Labels^.Put(slPromptOnReplace,'~P~rompt on replace');
|
||||
Labels^.Put(slReformatDocument,'~R~eformat document');
|
||||
Labels^.Put(slReplace,'~R~eplace');
|
||||
Labels^.Put(slReplaceAll,'~R~eplace all');
|
||||
Labels^.Put(slRevert,'~R~evert');
|
||||
Labels^.Put(slSave,'~S~ave');
|
||||
Labels^.Put(slSaveAll,'Save a~l~l');
|
||||
Labels^.Put(slSaveAs,'S~a~ve as...');
|
||||
Labels^.Put(slSaveFileAs,'~S~ave file as');
|
||||
Labels^.Put(slShiftF1,'Shift+F1');
|
||||
Labels^.Put(slSizeMove,'~S~ize/Move');
|
||||
Labels^.Put(slTextToFind,'~T~ext to find');
|
||||
Labels^.Put(slTile,'~T~ile');
|
||||
Labels^.Put(slTopicSearch,'~T~opic search');
|
||||
Labels^.Put(slUndo,'~U~ndo');
|
||||
Labels^.Put(slUsingHelp,'~U~sing help');
|
||||
Labels^.Put(slWholeWordsOnly,'~W~hole words only');
|
||||
Labels^.Put(slWindow,'~W~indow');
|
||||
Labels^.Put(slWindows,'~W~indows');
|
||||
Labels^.Put(slYes,'~Y~es');
|
||||
Labels^.Put(slZoom,'~Z~oom');
|
||||
Labels^.Put(slAltF3,'Alt+F3');
|
||||
Labels^.Put(slAltX,'Alt+X');
|
||||
Labels^.Put(slF2,'F2');
|
||||
Labels^.Put(slF3,'F3');
|
||||
Labels^.Put(slF5,'F5');
|
||||
Labels^.Put(slF6,'F6');
|
||||
Labels^.Put(slCtrlDel,'Ctrl+Del');
|
||||
Labels^.Put(slCtrlF5,'Ctrl+F5');
|
||||
Labels^.Put(slCtrlIns,'Ctrl+Ins');
|
||||
Labels^.Put(slShiftDel,'Shift+Del');
|
||||
Labels^.Put(slShiftF6,'Shift+F6');
|
||||
Labels^.Put(slShiftIns,'Shift+Ins');
|
||||
end;
|
||||
432
fvision/callspec.pas
Normal file
432
fvision/callspec.pas
Normal file
@ -0,0 +1,432 @@
|
||||
{
|
||||
$Id$
|
||||
|
||||
This unit provides compiler-independent mechanisms to call special
|
||||
functions, i.e. local functions/procedures, constructors, methods,
|
||||
destructors, etc. As there are no procedural variables for these
|
||||
special functions, there is no Pascal way to call them directly.
|
||||
|
||||
Copyright (c) 1997 Matthias K"oppe <mkoeppe@csmd.cs.uni-magdeburg.de>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
|
||||
This library 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. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
****************************************************************************}
|
||||
unit CallSpec;
|
||||
|
||||
{
|
||||
As of this version, the following compilers are supported. Please
|
||||
port CallSpec to other compilers (including earlier versions) and
|
||||
send your code to the above address.
|
||||
|
||||
Compiler Comments
|
||||
--------------------------- -------------------------------------
|
||||
Turbo Pascal 6.0
|
||||
Borland/Turbo Pascal 7.0
|
||||
FPC Pascal 0.99.8
|
||||
}
|
||||
|
||||
interface
|
||||
|
||||
{$i platform.inc}
|
||||
|
||||
{
|
||||
The frame pointer points to the local variables of a procedure.
|
||||
Use CurrentFramePointer to address the locals of the current procedure;
|
||||
use PreviousFramePointer to addess the locals of the calling procedure.
|
||||
}
|
||||
type
|
||||
{$ifdef BIT_16}
|
||||
FramePointer = Word;
|
||||
{$endif}
|
||||
{$ifdef BIT_32}
|
||||
FramePointer = pointer;
|
||||
{$endif}
|
||||
|
||||
function CurrentFramePointer: FramePointer;
|
||||
function PreviousFramePointer: FramePointer;
|
||||
|
||||
{ This version of CallSpec supports four classes of special functions.
|
||||
(Please write if you need other classes.)
|
||||
For each, two types of argument lists are allowed:
|
||||
|
||||
`Void' indicates special functions with no explicit arguments.
|
||||
Sample: constructor T.Init;
|
||||
`Pointer' indicates special functions with one explicit pointer argument.
|
||||
Sample: constructor T.Load(var S: TStream);
|
||||
}
|
||||
|
||||
{ Constructor calls.
|
||||
|
||||
Ctor Pointer to the constructor.
|
||||
Obj Pointer to the instance. NIL if new instance to be allocated.
|
||||
VMT Pointer to the VMT (obtained by TypeOf()).
|
||||
returns Pointer to the instance.
|
||||
}
|
||||
function CallVoidConstructor(Ctor: pointer; Obj: pointer; VMT: pointer): pointer;
|
||||
function CallPointerConstructor(Ctor: pointer; Obj: pointer; VMT: pointer; Param1: pointer): pointer;
|
||||
|
||||
{ Method calls.
|
||||
|
||||
Method Pointer to the method.
|
||||
Obj Pointer to the instance. NIL if new instance to be allocated.
|
||||
returns Pointer to the instance.
|
||||
}
|
||||
function CallVoidMethod(Method: pointer; Obj: pointer): pointer;
|
||||
function CallPointerMethod(Method: pointer; Obj: pointer; Param1: pointer): pointer;
|
||||
|
||||
{ Local-function/procedure calls.
|
||||
|
||||
Func Pointer to the local function (which must be far-coded).
|
||||
Frame Frame pointer of the wrapping function.
|
||||
}
|
||||
|
||||
function CallVoidLocal(Func: pointer; Frame: FramePointer): pointer;
|
||||
function CallPointerLocal(Func: pointer; Frame: FramePointer; Param1: pointer): pointer;
|
||||
|
||||
{ Calls of functions/procedures local to methods.
|
||||
|
||||
Func Pointer to the local function (which must be far-coded).
|
||||
Frame Frame pointer of the wrapping method.
|
||||
Obj Pointer to the object that the method belongs to.
|
||||
}
|
||||
function CallVoidMethodLocal(Func: pointer; Frame: FramePointer; Obj: pointer): pointer;
|
||||
function CallPointerMethodLocal(Func: pointer; Frame: FramePointer; Obj: pointer; Param1: pointer): pointer;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
{$ifdef PPC_FPC}
|
||||
|
||||
{$ifdef CPUI386}
|
||||
{$ASMMODE ATT}
|
||||
{$endif CPUI386}
|
||||
|
||||
{ This indicates an FPC version which uses the same call scheme for
|
||||
method-local and procedure-local procedures, but which expects the
|
||||
ESI register be loaded with the Self pointer in method-local procs. }
|
||||
|
||||
type
|
||||
VoidLocal = function(_EBP: FramePointer): pointer;
|
||||
PointerLocal = function(_EBP: FramePointer; Param1: pointer): pointer;
|
||||
VoidMethodLocal = function(_EBP: FRAMEPOINTER): pointer;
|
||||
PointerMethodLocal = function(_EBP: FRAMEPOINTER; Param1: pointer): pointer;
|
||||
VoidConstructor = function(VMT: pointer; Obj: pointer): pointer;
|
||||
PointerConstructor = function(VMT: pointer; Obj: pointer; Param1: pointer): pointer;
|
||||
VoidMethod = function(Obj: pointer): pointer;
|
||||
PointerMethod = function(Obj: pointer; Param1: pointer): pointer;
|
||||
|
||||
|
||||
function CallVoidConstructor(Ctor: pointer; Obj: pointer; VMT: pointer): pointer;
|
||||
begin
|
||||
{ load the object pointer }
|
||||
{$ifdef CPUI386}
|
||||
asm
|
||||
movl Obj, %esi
|
||||
end;
|
||||
{$endif CPUI386}
|
||||
{$ifdef CPU68K}
|
||||
asm
|
||||
move.l Obj, a5
|
||||
end;
|
||||
{$endif CPU68K}
|
||||
|
||||
CallVoidConstructor := VoidConstructor(Ctor)(VMT, Obj)
|
||||
end;
|
||||
|
||||
|
||||
function CallPointerConstructor(Ctor: pointer; Obj: pointer; VMT: pointer; Param1: pointer): pointer;
|
||||
begin
|
||||
{ load the object pointer }
|
||||
{$ifdef CPUI386}
|
||||
asm
|
||||
movl Obj, %esi
|
||||
end;
|
||||
{$endif CPUI386}
|
||||
{$ifdef CPU68K}
|
||||
asm
|
||||
move.l Obj, a5
|
||||
end;
|
||||
{$endif CPU68K}
|
||||
CallPointerConstructor := PointerConstructor(Ctor)(VMT, Obj, Param1)
|
||||
end;
|
||||
|
||||
|
||||
function CallVoidMethod(Method: pointer; Obj: pointer): pointer;
|
||||
begin
|
||||
{ load the object pointer }
|
||||
{$ifdef CPUI386}
|
||||
asm
|
||||
movl Obj, %esi
|
||||
end;
|
||||
{$endif CPUI386}
|
||||
{$ifdef CPU68K}
|
||||
asm
|
||||
move.l Obj, a5
|
||||
end;
|
||||
{$endif CPU68K}
|
||||
CallVoidMethod := VoidMethod(Method)(Obj)
|
||||
end;
|
||||
|
||||
|
||||
function CallPointerMethod(Method: pointer; Obj: pointer; Param1: pointer): pointer;
|
||||
begin
|
||||
{ load the object pointer }
|
||||
{$ifdef CPUI386}
|
||||
asm
|
||||
movl Obj, %esi
|
||||
end;
|
||||
{$endif CPUI386}
|
||||
{$ifdef CPU68K}
|
||||
asm
|
||||
move.l Obj, a5
|
||||
end;
|
||||
{$endif CPU68K}
|
||||
CallPointerMethod := PointerMethod(Method)(Obj, Param1)
|
||||
end;
|
||||
|
||||
|
||||
function CallVoidLocal(Func: pointer; Frame: FramePointer): pointer;
|
||||
begin
|
||||
CallVoidLocal := VoidLocal(Func)(Frame)
|
||||
end;
|
||||
|
||||
|
||||
function CallPointerLocal(Func: pointer; Frame: FramePointer; Param1: pointer): pointer;
|
||||
begin
|
||||
CallPointerLocal := PointerLocal(Func)(Frame, Param1)
|
||||
end;
|
||||
|
||||
|
||||
function CallVoidMethodLocal(Func: pointer; Frame: FramePointer; Obj: pointer): pointer;
|
||||
begin
|
||||
{ load the object pointer }
|
||||
{$ifdef CPUI386}
|
||||
asm
|
||||
movl Obj, %esi
|
||||
end;
|
||||
{$endif CPUI386}
|
||||
{$ifdef CPU68K}
|
||||
asm
|
||||
move.l Obj, a5
|
||||
end;
|
||||
{$endif CPU68K}
|
||||
CallVoidMethodLocal := VoidMethodLocal(Func)(Frame)
|
||||
end;
|
||||
|
||||
|
||||
function CallPointerMethodLocal(Func: pointer; Frame: FramePointer; Obj: pointer; Param1: pointer): pointer;
|
||||
begin
|
||||
{ load the object pointer }
|
||||
{$ifdef CPUI386}
|
||||
asm
|
||||
movl Obj, %esi
|
||||
end;
|
||||
{$endif CPUI386}
|
||||
{$ifdef CPU68K}
|
||||
asm
|
||||
move.l Obj, a5
|
||||
end;
|
||||
{$endif CPU68K}
|
||||
CallPointerMethodLocal := PointerMethodLocal(Func)(Frame, Param1)
|
||||
end;
|
||||
|
||||
|
||||
function CurrentFramePointer: FramePointer;assembler;
|
||||
{$ifdef CPUI386}
|
||||
asm
|
||||
movl %ebp,%eax
|
||||
end ['EAX'];
|
||||
{$endif CPUI386}
|
||||
{$ifdef CPU68K}
|
||||
asm
|
||||
move.l a6, d0
|
||||
end['D0'];
|
||||
{$endif CPU68K}
|
||||
|
||||
|
||||
function PreviousFramePointer: FramePointer;assembler;
|
||||
{$ifdef CPUI386}
|
||||
asm
|
||||
movl (%ebp),%eax
|
||||
end ['EAX'];
|
||||
{$endif CPUI386}
|
||||
{$ifdef CPU68K}
|
||||
asm
|
||||
move.l (a6), d0
|
||||
end['D0'];
|
||||
{$endif CPU68K}
|
||||
|
||||
{$endif PPC_FPC}
|
||||
|
||||
|
||||
{$ifdef PPC_BP}
|
||||
type
|
||||
VoidConstructor = function(VmtOfs: Word; Obj: pointer): pointer;
|
||||
PointerConstructor = function(Param1: pointer; VmtOfs: Word; Obj: pointer): pointer;
|
||||
VoidMethod = function(Obj: pointer): pointer;
|
||||
PointerMethod = function(Param1: pointer; Obj: pointer): pointer;
|
||||
|
||||
function CallVoidConstructor(Ctor: pointer; Obj: pointer; VMT: pointer): pointer;
|
||||
begin
|
||||
CallVoidConstructor := VoidConstructor(Ctor)(Ofs(VMT^), Obj)
|
||||
end;
|
||||
|
||||
|
||||
function CallPointerConstructor(Ctor: pointer; Obj: pointer; VMT: pointer; Param1: pointer): pointer;
|
||||
begin
|
||||
CallPointerConstructor := PointerConstructor(Ctor)(Param1, Ofs(VMT^), Obj)
|
||||
end;
|
||||
|
||||
|
||||
function CallVoidMethod(Method: pointer; Obj: pointer): pointer;
|
||||
begin
|
||||
CallVoidMethod := VoidMethod(Method)(Obj)
|
||||
end;
|
||||
|
||||
|
||||
function CallPointerMethod(Method: pointer; Obj: pointer; Param1: pointer): pointer;
|
||||
begin
|
||||
CallPointerMethod := PointerMethod(Method)(Param1, Obj)
|
||||
end;
|
||||
|
||||
|
||||
function CallVoidLocal(Func: pointer; Frame: FramePointer): pointer; assembler;
|
||||
asm
|
||||
{$IFDEF Windows}
|
||||
MOV AX,[Frame]
|
||||
AND AL,0FEH
|
||||
PUSH AX
|
||||
{$ELSE}
|
||||
push [Frame]
|
||||
{$ENDIF}
|
||||
call dword ptr Func
|
||||
end;
|
||||
|
||||
|
||||
function CallPointerLocal(Func: pointer; Frame: FramePointer; Param1: pointer): pointer; assembler;
|
||||
asm
|
||||
mov ax, word ptr Param1
|
||||
mov dx, word ptr Param1+2
|
||||
push dx
|
||||
push ax
|
||||
{$IFDEF Windows}
|
||||
MOV AX,[Frame]
|
||||
AND AL,0FEH
|
||||
PUSH AX
|
||||
{$ELSE}
|
||||
push [Frame]
|
||||
{$ENDIF}
|
||||
call dword ptr Func
|
||||
end;
|
||||
|
||||
|
||||
function CallVoidMethodLocal(Func: pointer; Frame: FramePointer; Obj: pointer): pointer; assembler;
|
||||
asm
|
||||
{$IFDEF Windows}
|
||||
MOV AX,[Frame]
|
||||
AND AL,0FEH
|
||||
PUSH AX
|
||||
{$ELSE}
|
||||
push [Frame]
|
||||
{$ENDIF}
|
||||
call dword ptr Func
|
||||
end;
|
||||
|
||||
|
||||
function CallPointerMethodLocal(Func: pointer; Frame: FramePointer; Obj: pointer; Param1: pointer): pointer; assembler;
|
||||
asm
|
||||
mov ax, word ptr Param1
|
||||
mov dx, word ptr Param1+2
|
||||
push dx
|
||||
push ax
|
||||
{$IFDEF Windows}
|
||||
MOV AX,[Frame]
|
||||
AND AL,0FEH
|
||||
PUSH AX
|
||||
{$ELSE}
|
||||
push [Frame]
|
||||
{$ENDIF}
|
||||
call dword ptr Func
|
||||
end;
|
||||
|
||||
|
||||
function CurrentFramePointer: FramePointer; assembler;
|
||||
asm
|
||||
mov ax, bp
|
||||
end;
|
||||
|
||||
|
||||
function PreviousFramePointer: FramePointer; assembler;
|
||||
asm
|
||||
mov ax, ss:[bp]
|
||||
end;
|
||||
|
||||
{$endif PPC_BP}
|
||||
|
||||
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.1 2001-08-05 02:10:26 peter
|
||||
* more files
|
||||
|
||||
Revision 1.3 2001/07/30 08:27:58 pierre
|
||||
* fix I386 compilation problem
|
||||
|
||||
Revision 1.2 2001/07/29 20:23:18 pierre
|
||||
* support for m68k cpu
|
||||
|
||||
Revision 1.1 2001/01/29 21:56:04 peter
|
||||
* updates for new fpcmake
|
||||
|
||||
Revision 1.1 2001/01/29 11:31:26 marco
|
||||
* added from API. callspec renamed to .pp
|
||||
|
||||
Revision 1.1 2000/07/13 06:29:38 michael
|
||||
+ Initial import
|
||||
|
||||
Revision 1.1 2000/01/06 01:20:30 peter
|
||||
* moved out of packages/ back to topdir
|
||||
|
||||
Revision 1.1 1999/12/23 19:36:47 peter
|
||||
* place unitfiles in target dirs
|
||||
|
||||
Revision 1.1 1999/11/24 23:36:37 peter
|
||||
* moved to packages dir
|
||||
|
||||
Revision 1.2 1998/12/16 21:57:16 peter
|
||||
* fixed currentframe,previousframe
|
||||
+ testcall to test the callspec unit
|
||||
|
||||
Revision 1.1 1998/12/04 12:48:24 peter
|
||||
* moved some dirs
|
||||
|
||||
Revision 1.5 1998/12/04 09:53:44 peter
|
||||
* removed objtemp global var
|
||||
|
||||
Revision 1.4 1998/11/24 17:14:24 peter
|
||||
* fixed esi loading
|
||||
|
||||
|
||||
Date Version Who Comments
|
||||
---------- -------- ------- -------------------------------------
|
||||
19-Sep-97 0.1 mkoeppe Initial version.
|
||||
22-Sep-97 0.11 fk 0.9.3 support added, self isn't expected
|
||||
on the stack in local procedures of methods
|
||||
23-Sep-97 0.12 mkoeppe Cleaned up 0.9.3 conditionals.
|
||||
03-Oct-97 0.13 mkoeppe Fixed esi load in FPC 0.9
|
||||
22-Oct-98 0.14 pfv 0.99.8 support for FPC
|
||||
}
|
||||
3733
fvision/editors.pas
Normal file
3733
fvision/editors.pas
Normal file
File diff suppressed because it is too large
Load Diff
189
fvision/str.inc
Normal file
189
fvision/str.inc
Normal file
@ -0,0 +1,189 @@
|
||||
{ Strings }
|
||||
sButtonDefault = 1; { Button default }
|
||||
sButtonDisabled = 2; { Button disabled }
|
||||
sButtonNormal = 3; { Button normal }
|
||||
sButtonSelected = 4; { Button selected }
|
||||
sButtonShadow = 5; { Button shadow }
|
||||
sButtonShortcut = 6; { Button shortcut }
|
||||
sChangeDirectory = 7; { Change Directory }
|
||||
sClipboard = 8; { Clipboard }
|
||||
sClusterNormal = 9; { Cluster normal }
|
||||
sClusterSelected = 10; { Cluster selected }
|
||||
sClusterShortcut = 11; { Cluster shortcut }
|
||||
sColor = 12; { Color }
|
||||
sColors = 13; { Colors }
|
||||
sConfirm = 14; { Confirm }
|
||||
sDeleteFile = 15; { Delete file?#13#10#13#3%s }
|
||||
sDirectory = 16; { Directory }
|
||||
sDisabled = 17; { Disabled }
|
||||
sDrives = 18; { Drives }
|
||||
sError = 19; { Error }
|
||||
sFileAlreadyOpen = 20; { #3%s#13#10#13#3is already open in window %d. }
|
||||
sFileCreateError = 21; { Error creating file %s }
|
||||
sFileReadError = 22; { Error reading file %s }
|
||||
sFileUntitled = 23; { Save untitled file? }
|
||||
sFileWriteError = 24; { Error writing to file %s }
|
||||
sFind = 25; { Find }
|
||||
sFrameActive = 26; { Frame active }
|
||||
sFrameBackground = 27; { Frame/background }
|
||||
sFrameIcons = 28; { Frame icons }
|
||||
sFramePassive = 29; { Frame passive }
|
||||
sHighlight = 30; { Highlight }
|
||||
sHistoryBarIcons = 31; { History bar icons }
|
||||
sHistoryBarPage = 32; { History bar page }
|
||||
sHistoryButton = 33; { History button }
|
||||
sHistorySides = 34; { History sides }
|
||||
sInformation = 35; { Information }
|
||||
sInformationPane = 36; { Information pane }
|
||||
sInputArrow = 37; { Input arrow }
|
||||
sInputNormal = 38; { Input normal }
|
||||
sInputSelected = 39; { Input selected }
|
||||
sInvalidCharacter = 40; { Invalid character in input }
|
||||
sInvalidDirectory = 41; { Invalid directory. }
|
||||
sInvalidDriveOrDir = 42; { Invalid drive or directory. }
|
||||
sInvalidFileName = 43; { Invalid file name. }
|
||||
sInvalidPicture = 44; { Input does not conform to picture: %s }
|
||||
sInvalidValue = 45; { Value not in the range %d to %d }
|
||||
sInverse = 46; { Inverse }
|
||||
sJumpTo = 47; { Jump To }
|
||||
sLabelNormal = 48; { Label normal }
|
||||
sLabelSelected = 49; { Label selected }
|
||||
sLabelShortcut = 50; { Label shortcut }
|
||||
sListDivider = 51; { List divider }
|
||||
sListFocused = 52; { List focused }
|
||||
sListNormal = 53; { List normal }
|
||||
sListSelected = 54; { List selected }
|
||||
sModified = 55; { #3%s#13#10#13#3has been modified. Save? }
|
||||
sNoName = 56; { NONAME }
|
||||
sNormal = 57; { Normal }
|
||||
sNormalText = 58; { Normal text }
|
||||
sNotInList = 59; { Input not in valid-list }
|
||||
sOpen = 60; { Open }
|
||||
sOutOfMemory = 61; { Not enough memory for this operation. }
|
||||
sOutOfUnNamedWindows = 62; { Out of unnamed window numbers. Save or discard some unnamed files and try again. }
|
||||
sPasteNotPossible = 63; { Wordwrap on: Paste not possible in current margins when at end of line. }
|
||||
sReformatDocument = 64; { Reformat Document }
|
||||
sReformatNotPossible = 65; { Paragraph reformat not possible while trying to wrap current line with current margins. }
|
||||
sReformattingTheDocument = 66; { Reformatting the document: }
|
||||
sReplace = 67; { Replace }
|
||||
sReplaceFile = 68; { Replace file?#13#10#13#3%s }
|
||||
sReplaceNotPossible = 69; { Wordwrap on: Replace not possible in current margins when at end of line. }
|
||||
sReplaceThisOccurence = 70; { Replace this occurence? }
|
||||
sRightMargin = 71; { Right Margin }
|
||||
sSaveAs = 72; { Save As }
|
||||
sScrollbarIcons = 73; { Scroll bar icons }
|
||||
sScrollbarPage = 74; { Scroll bar page }
|
||||
sSearchStringNotFound = 75; { Search string not found. }
|
||||
sSelectFormatStart = 76; { Select Format Start }
|
||||
sSelectWhereToBegin = 77; { Please select where to begin. }
|
||||
sSelected = 78; { Selected }
|
||||
sSelectedDisabled = 79; { Selected disabled }
|
||||
sSetting = 80; { Setting: }
|
||||
sShortcut = 81; { Shortcut }
|
||||
sShortcutSelected = 82; { ShortcutSelected }
|
||||
sStaticText = 83; { Static text }
|
||||
sTabSettings = 84; { Tab Settings }
|
||||
sText = 85; { Text }
|
||||
sTooManyFiles = 86; { Too many files. }
|
||||
sTypeExitOnReturn = 87; { Type EXIT to return... }
|
||||
sUnderline = 88; { Underline }
|
||||
sUnknownDialog = 89; { Unknown dialog requested! }
|
||||
sUntitled = 90; { Untitled }
|
||||
sWarning = 91; { Warning }
|
||||
sWindowList = 92; { Window List }
|
||||
sWordWrapNotPossible = 93; { Wordwrap on: Wordwrap not possible in current margins with continuous line. }
|
||||
sWordWrapOff = 94; { You must turn on wordwrap before you can reformat. }
|
||||
smApr = 95; { Apr }
|
||||
smAug = 96; { Aug }
|
||||
smDec = 97; { Dec }
|
||||
smFeb = 98; { Feb }
|
||||
smJan = 99; { Jan }
|
||||
smJul = 100; { Jul }
|
||||
smJun = 101; { Jun }
|
||||
smMar = 102; { Mar }
|
||||
smMay = 103; { May }
|
||||
smNov = 104; { Nov }
|
||||
smOct = 105; { Oct }
|
||||
smSep = 106; { Sep }
|
||||
{ Labels }
|
||||
slAbout = 107; { ~A~bout }
|
||||
slAltF1 = 108; { Alt+F1 }
|
||||
slAltF3Close = 109; { ~Alt+F3~ Close }
|
||||
slAltXExit = 110; { ~Alt-X~ Exit }
|
||||
slBackground = 111; { ~B~ackground }
|
||||
slCancel = 112; { Cancel }
|
||||
slCascade = 113; { C~a~scade }
|
||||
slCaseSensitive = 114; { ~C~ase sensitive }
|
||||
slChDir = 115; { ~C~hdir }
|
||||
slChangeDir = 116; { ~C~hange dir... }
|
||||
slClear = 117; { C~l~ear }
|
||||
slClose = 118; { ~C~lose }
|
||||
slCloseAll = 119; { Cl~o~se all }
|
||||
slColor = 120; { ~C~olor }
|
||||
slContents = 121; { ~C~ontents }
|
||||
slCopy = 122; { ~C~opy }
|
||||
slCtrlF1 = 123; { Ctrl+F1 }
|
||||
slCurrentLine = 124; { ~C~urrent line }
|
||||
slCut = 125; { Cu~t~ }
|
||||
slDOSShell = 126; { ~D~OS shell }
|
||||
slDelete = 127; { ~D~elete }
|
||||
slDirectoryName = 128; { Directory ~n~ame }
|
||||
slDirectoryTree = 129; { Directory ~t~ree }
|
||||
slEdit = 130; { ~E~dit }
|
||||
slEntireDocument = 131; { ~E~ntire document }
|
||||
slExit = 132; { E~x~it }
|
||||
slF10Menu = 133; { ~F10~ Menu }
|
||||
slF1Help = 134; { ~F1~ Help }
|
||||
slF3Open = 135; { ~F3~ Open }
|
||||
slFile = 136; { ~F~ile }
|
||||
slFiles = 137; { ~F~iles }
|
||||
slForeground = 138; { ~F~oreground }
|
||||
slGroup = 139; { ~G~roup }
|
||||
slHelp = 140; { ~H~elp }
|
||||
slIndex = 141; { ~I~ndex }
|
||||
slItem = 142; { ~I~tem }
|
||||
slLineNumber = 143; { ~L~ine number }
|
||||
slName = 144; { ~N~ame }
|
||||
slNew = 145; { ~N~ew }
|
||||
slNewText = 146; { ~N~ew text }
|
||||
slNext = 147; { ~N~ext }
|
||||
slNo = 148; { ~N~o }
|
||||
slOk = 149; { O~k~ }
|
||||
slOpen = 150; { ~O~pen }
|
||||
slOpenDots = 151; { ~O~pen... }
|
||||
slPaste = 152; { ~P~aste }
|
||||
slPrevious = 153; { ~P~revious }
|
||||
slPreviousTopic = 154; { ~P~revious topic }
|
||||
slPromptOnReplace = 155; { ~P~rompt on replace }
|
||||
slReformatDocument = 156; { ~R~eformat document }
|
||||
slReplace = 157; { ~R~eplace }
|
||||
slReplaceAll = 158; { ~R~eplace all }
|
||||
slRevert = 159; { ~R~evert }
|
||||
slSave = 160; { ~S~ave }
|
||||
slSaveAll = 161; { Save a~l~l }
|
||||
slSaveAs = 162; { S~a~ve as... }
|
||||
slSaveFileAs = 163; { ~S~ave file as }
|
||||
slShiftF1 = 164; { Shift+F1 }
|
||||
slSizeMove = 165; { ~S~ize/Move }
|
||||
slTextToFind = 166; { ~T~ext to find }
|
||||
slTile = 167; { ~T~ile }
|
||||
slTopicSearch = 168; { ~T~opic search }
|
||||
slUndo = 169; { ~U~ndo }
|
||||
slUsingHelp = 170; { ~U~sing help }
|
||||
slWholeWordsOnly = 171; { ~W~hole words only }
|
||||
slWindow = 172; { ~W~indow }
|
||||
slWindows = 173; { ~W~indows }
|
||||
slYes = 174; { ~Y~es }
|
||||
slZoom = 175; { ~Z~oom }
|
||||
slAltF3 = 176; { Alt+F3 }
|
||||
slAltX = 177; { Alt+X }
|
||||
slF2 = 178; { F2 }
|
||||
slF3 = 179; { F3 }
|
||||
slF5 = 180; { F5 }
|
||||
slF6 = 181; { F6 }
|
||||
slCtrlDel = 182; { Ctrl+Del }
|
||||
slCtrlF5 = 183; { Ctrl+F5 }
|
||||
slCtrlIns = 184; { Ctrl+Ins }
|
||||
slShiftDel = 185; { Shift+Del }
|
||||
slShiftF6 = 186; { Shift+F6 }
|
||||
slShiftIns = 187; { Shift+Ins }
|
||||
194
fvision/strtxt.inc
Normal file
194
fvision/strtxt.inc
Normal file
@ -0,0 +1,194 @@
|
||||
procedure InitResStrings;
|
||||
begin
|
||||
Strings^.Put(sButtonDefault,'Button default');
|
||||
Strings^.Put(sButtonDisabled,'Button disabled');
|
||||
Strings^.Put(sButtonNormal,'Button normal');
|
||||
Strings^.Put(sButtonSelected,'Button selected');
|
||||
Strings^.Put(sButtonShadow,'Button shadow');
|
||||
Strings^.Put(sButtonShortcut,'Button shortcut');
|
||||
Strings^.Put(sChangeDirectory,'Change Directory');
|
||||
Strings^.Put(sClipboard,'Clipboard');
|
||||
Strings^.Put(sClusterNormal,'Cluster normal');
|
||||
Strings^.Put(sClusterSelected,'Cluster selected');
|
||||
Strings^.Put(sClusterShortcut,'Cluster shortcut');
|
||||
Strings^.Put(sColor,'Color');
|
||||
Strings^.Put(sColors,'Colors');
|
||||
Strings^.Put(sConfirm,'Confirm');
|
||||
Strings^.Put(sDeleteFile,'Delete file?'#13#10#13#3'%s');
|
||||
Strings^.Put(sDirectory,'Directory');
|
||||
Strings^.Put(sDisabled,'Disabled');
|
||||
Strings^.Put(sDrives,'Drives');
|
||||
Strings^.Put(sError,'Error');
|
||||
Strings^.Put(sFileAlreadyOpen,''#3'%s'#13#10#13#3'is already open in window %d.');
|
||||
Strings^.Put(sFileCreateError,'Error creating file %s');
|
||||
Strings^.Put(sFileReadError,'Error reading file %s');
|
||||
Strings^.Put(sFileUntitled,'Save untitled file?');
|
||||
Strings^.Put(sFileWriteError,'Error writing to file %s');
|
||||
Strings^.Put(sFind,'Find');
|
||||
Strings^.Put(sFrameActive,'Frame active');
|
||||
Strings^.Put(sFrameBackground,'Frame/background');
|
||||
Strings^.Put(sFrameIcons,'Frame icons');
|
||||
Strings^.Put(sFramePassive,'Frame passive');
|
||||
Strings^.Put(sHighlight,'Highlight');
|
||||
Strings^.Put(sHistoryBarIcons,'History bar icons');
|
||||
Strings^.Put(sHistoryBarPage,'History bar page');
|
||||
Strings^.Put(sHistoryButton,'History button');
|
||||
Strings^.Put(sHistorySides,'History sides');
|
||||
Strings^.Put(sInformation,'Information');
|
||||
Strings^.Put(sInformationPane,'Information pane');
|
||||
Strings^.Put(sInputArrow,'Input arrow');
|
||||
Strings^.Put(sInputNormal,'Input normal');
|
||||
Strings^.Put(sInputSelected,'Input selected');
|
||||
Strings^.Put(sInvalidCharacter,'Invalid character in input');
|
||||
Strings^.Put(sInvalidDirectory,'Invalid directory.');
|
||||
Strings^.Put(sInvalidDriveOrDir,'Invalid drive or directory.');
|
||||
Strings^.Put(sInvalidFileName,'Invalid file name.');
|
||||
Strings^.Put(sInvalidPicture,'Input does not conform to picture: %s');
|
||||
Strings^.Put(sInvalidValue,'Value not in the range %d to %d');
|
||||
Strings^.Put(sInverse,'Inverse');
|
||||
Strings^.Put(sJumpTo,'Jump To');
|
||||
Strings^.Put(sLabelNormal,'Label normal');
|
||||
Strings^.Put(sLabelSelected,'Label selected');
|
||||
Strings^.Put(sLabelShortcut,'Label shortcut');
|
||||
Strings^.Put(sListDivider,'List divider');
|
||||
Strings^.Put(sListFocused,'List focused');
|
||||
Strings^.Put(sListNormal,'List normal');
|
||||
Strings^.Put(sListSelected,'List selected');
|
||||
Strings^.Put(sModified,''#3'%s'#13#10#13#3'has been modified. Save?');
|
||||
Strings^.Put(sNoName,'NONAME');
|
||||
Strings^.Put(sNormal,'Normal');
|
||||
Strings^.Put(sNormalText,'Normal text');
|
||||
Strings^.Put(sNotInList,'Input not in valid-list');
|
||||
Strings^.Put(sOpen,'Open');
|
||||
Strings^.Put(sOutOfMemory,'Not enough memory for this operation.');
|
||||
Strings^.Put(sOutOfUnNamedWindows,'Out of unnamed window numbers. Save or discard some unnamed files and try again.');
|
||||
Strings^.Put(sPasteNotPossible,'Wordwrap on: Paste not possible in current margins when at end of line.');
|
||||
Strings^.Put(sReformatDocument,'Reformat Document');
|
||||
Strings^.Put(sReformatNotPossible,'Paragraph reformat not possible while trying to wrap current line with current margins.');
|
||||
Strings^.Put(sReformattingTheDocument,'Reformatting the document:');
|
||||
Strings^.Put(sReplace,'Replace');
|
||||
Strings^.Put(sReplaceFile,'Replace file?'#13#10#13#3'%s');
|
||||
Strings^.Put(sReplaceNotPossible,'Wordwrap on: Replace not possible in current margins when at end of line.');
|
||||
Strings^.Put(sReplaceThisOccurence,'Replace this occurence?');
|
||||
Strings^.Put(sRightMargin,'Right Margin');
|
||||
Strings^.Put(sSaveAs,'Save As');
|
||||
Strings^.Put(sScrollbarIcons,'Scroll bar icons');
|
||||
Strings^.Put(sScrollbarPage,'Scroll bar page');
|
||||
Strings^.Put(sSearchStringNotFound,'Search string not found.');
|
||||
Strings^.Put(sSelectFormatStart,'Select Format Start');
|
||||
Strings^.Put(sSelectWhereToBegin,'Please select where to begin.');
|
||||
Strings^.Put(sSelected,'Selected');
|
||||
Strings^.Put(sSelectedDisabled,'Selected disabled');
|
||||
Strings^.Put(sSetting,'Setting:');
|
||||
Strings^.Put(sShortcut,'Shortcut');
|
||||
Strings^.Put(sShortcutSelected,'ShortcutSelected');
|
||||
Strings^.Put(sStaticText,'Static text');
|
||||
Strings^.Put(sTabSettings,'Tab Settings');
|
||||
Strings^.Put(sText,'Text');
|
||||
Strings^.Put(sTooManyFiles,'Too many files.');
|
||||
Strings^.Put(sTypeExitOnReturn,'Type EXIT to return...');
|
||||
Strings^.Put(sUnderline,'Underline');
|
||||
Strings^.Put(sUnknownDialog,'Unknown dialog requested!');
|
||||
Strings^.Put(sUntitled,'Untitled');
|
||||
Strings^.Put(sWarning,'Warning');
|
||||
Strings^.Put(sWindowList,'Window List');
|
||||
Strings^.Put(sWordWrapNotPossible,'Wordwrap on: Wordwrap not possible in current margins with continuous line.');
|
||||
Strings^.Put(sWordWrapOff,'You must turn on wordwrap before you can reformat.');
|
||||
Strings^.Put(smApr,'Apr');
|
||||
Strings^.Put(smAug,'Aug');
|
||||
Strings^.Put(smDec,'Dec');
|
||||
Strings^.Put(smFeb,'Feb');
|
||||
Strings^.Put(smJan,'Jan');
|
||||
Strings^.Put(smJul,'Jul');
|
||||
Strings^.Put(smJun,'Jun');
|
||||
Strings^.Put(smMar,'Mar');
|
||||
Strings^.Put(smMay,'May');
|
||||
Strings^.Put(smNov,'Nov');
|
||||
Strings^.Put(smOct,'Oct');
|
||||
Strings^.Put(smSep,'Sep');
|
||||
end;
|
||||
|
||||
procedure InitResLabels;
|
||||
begin
|
||||
Labels^.Put(slAbout,'~A~bout');
|
||||
Labels^.Put(slAltF1,'Alt+F1');
|
||||
Labels^.Put(slAltF3Close,'~Alt+F3~ Close');
|
||||
Labels^.Put(slAltXExit,'~Alt-X~ Exit');
|
||||
Labels^.Put(slBackground,'~B~ackground');
|
||||
Labels^.Put(slCancel,'Cancel');
|
||||
Labels^.Put(slCascade,'C~a~scade');
|
||||
Labels^.Put(slCaseSensitive,'~C~ase sensitive');
|
||||
Labels^.Put(slChDir,'~C~hdir');
|
||||
Labels^.Put(slChangeDir,'~C~hange dir...');
|
||||
Labels^.Put(slClear,'C~l~ear');
|
||||
Labels^.Put(slClose,'~C~lose');
|
||||
Labels^.Put(slCloseAll,'Cl~o~se all');
|
||||
Labels^.Put(slColor,'~C~olor');
|
||||
Labels^.Put(slContents,'~C~ontents');
|
||||
Labels^.Put(slCopy,'~C~opy');
|
||||
Labels^.Put(slCtrlF1,'Ctrl+F1');
|
||||
Labels^.Put(slCurrentLine,'~C~urrent line');
|
||||
Labels^.Put(slCut,'Cu~t~');
|
||||
Labels^.Put(slDOSShell,'~D~OS shell');
|
||||
Labels^.Put(slDelete,'~D~elete');
|
||||
Labels^.Put(slDirectoryName,'Directory ~n~ame');
|
||||
Labels^.Put(slDirectoryTree,'Directory ~t~ree');
|
||||
Labels^.Put(slEdit,'~E~dit');
|
||||
Labels^.Put(slEntireDocument,'~E~ntire document');
|
||||
Labels^.Put(slExit,'E~x~it');
|
||||
Labels^.Put(slF10Menu,'~F10~ Menu');
|
||||
Labels^.Put(slF1Help,'~F1~ Help');
|
||||
Labels^.Put(slF3Open,'~F3~ Open');
|
||||
Labels^.Put(slFile,'~F~ile');
|
||||
Labels^.Put(slFiles,'~F~iles');
|
||||
Labels^.Put(slForeground,'~F~oreground');
|
||||
Labels^.Put(slGroup,'~G~roup');
|
||||
Labels^.Put(slHelp,'~H~elp');
|
||||
Labels^.Put(slIndex,'~I~ndex');
|
||||
Labels^.Put(slItem,'~I~tem');
|
||||
Labels^.Put(slLineNumber,'~L~ine number');
|
||||
Labels^.Put(slName,'~N~ame');
|
||||
Labels^.Put(slNew,'~N~ew');
|
||||
Labels^.Put(slNewText,'~N~ew text');
|
||||
Labels^.Put(slNext,'~N~ext');
|
||||
Labels^.Put(slNo,'~N~o');
|
||||
Labels^.Put(slOk,'O~k~');
|
||||
Labels^.Put(slOpen,'~O~pen');
|
||||
Labels^.Put(slOpenDots,'~O~pen...');
|
||||
Labels^.Put(slPaste,'~P~aste');
|
||||
Labels^.Put(slPrevious,'~P~revious');
|
||||
Labels^.Put(slPreviousTopic,'~P~revious topic');
|
||||
Labels^.Put(slPromptOnReplace,'~P~rompt on replace');
|
||||
Labels^.Put(slReformatDocument,'~R~eformat document');
|
||||
Labels^.Put(slReplace,'~R~eplace');
|
||||
Labels^.Put(slReplaceAll,'~R~eplace all');
|
||||
Labels^.Put(slRevert,'~R~evert');
|
||||
Labels^.Put(slSave,'~S~ave');
|
||||
Labels^.Put(slSaveAll,'Save a~l~l');
|
||||
Labels^.Put(slSaveAs,'S~a~ve as...');
|
||||
Labels^.Put(slSaveFileAs,'~S~ave file as');
|
||||
Labels^.Put(slShiftF1,'Shift+F1');
|
||||
Labels^.Put(slSizeMove,'~S~ize/Move');
|
||||
Labels^.Put(slTextToFind,'~T~ext to find');
|
||||
Labels^.Put(slTile,'~T~ile');
|
||||
Labels^.Put(slTopicSearch,'~T~opic search');
|
||||
Labels^.Put(slUndo,'~U~ndo');
|
||||
Labels^.Put(slUsingHelp,'~U~sing help');
|
||||
Labels^.Put(slWholeWordsOnly,'~W~hole words only');
|
||||
Labels^.Put(slWindow,'~W~indow');
|
||||
Labels^.Put(slWindows,'~W~indows');
|
||||
Labels^.Put(slYes,'~Y~es');
|
||||
Labels^.Put(slZoom,'~Z~oom');
|
||||
Labels^.Put(slAltF3,'Alt+F3');
|
||||
Labels^.Put(slAltX,'Alt+X');
|
||||
Labels^.Put(slF2,'F2');
|
||||
Labels^.Put(slF3,'F3');
|
||||
Labels^.Put(slF5,'F5');
|
||||
Labels^.Put(slF6,'F6');
|
||||
Labels^.Put(slCtrlDel,'Ctrl+Del');
|
||||
Labels^.Put(slCtrlF5,'Ctrl+F5');
|
||||
Labels^.Put(slCtrlIns,'Ctrl+Ins');
|
||||
Labels^.Put(slShiftDel,'Shift+Del');
|
||||
Labels^.Put(slShiftF6,'Shift+F6');
|
||||
Labels^.Put(slShiftIns,'Shift+Ins');
|
||||
end;
|
||||
Loading…
Reference in New Issue
Block a user