mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-04-16 03:19:22 +02:00
461 lines
18 KiB
ObjectPascal
461 lines
18 KiB
ObjectPascal
{
|
|
Xterm.js package, autogenerated from typescript description.
|
|
This is still incomplete (some event handlers need to be correctly typed)
|
|
}
|
|
|
|
Unit xterm;
|
|
|
|
{$MODE ObjFPC}
|
|
{$H+}
|
|
{$modeswitch externalclass}
|
|
|
|
interface
|
|
|
|
uses SysUtils, JS, Types, Web;
|
|
|
|
Type
|
|
// Forward class definitions
|
|
Txterm = Class;
|
|
// Modules
|
|
HTMLELement = TJSHTMLElement;
|
|
MouseEvent = TJSMouseEvent;
|
|
|
|
Txterm = class external name 'window' (TJSObject)
|
|
Public
|
|
Type
|
|
// Forward class definitions
|
|
TITerminalOptions = Class;
|
|
TITheme = Class;
|
|
TILinkMatcherOptions = Class;
|
|
TIDisposable = Class;
|
|
TIEvent = Class;
|
|
TIMarker = Class;
|
|
TILocalizableStrings = Class;
|
|
TIWindowOptions = Class;
|
|
TITerminalAddon = Class;
|
|
TISelectionPosition = Class;
|
|
TIViewportRange = Class;
|
|
TIViewportRangePosition = Class;
|
|
TILinkProvider = Class;
|
|
TILink = Class;
|
|
TILinkDecorations = Class;
|
|
TIBufferRange = Class;
|
|
TIBufferCellPosition = Class;
|
|
TIBuffer = Class;
|
|
TIBufferNamespace = Class;
|
|
TIBufferLine = Class;
|
|
TIBufferCell = Class;
|
|
TIFunctionIdentifier = Class;
|
|
TIParser = Class;
|
|
TIUnicodeVersionProvider = Class;
|
|
TIUnicodeHandling = Class;
|
|
TIModes = Class;
|
|
// Forward class definitions
|
|
TTerminal = Class;
|
|
TFontWeight = jsvalue; // number
|
|
TLogLevel = jsvalue; //
|
|
TRendererType = jsvalue; //
|
|
TattachCustomKeyEventHandler_customKeyEventHandler = reference to function (event: TJSKeyboardEvent): boolean;
|
|
TCallBack = reference to procedure;
|
|
|
|
TMarkersType = specialize TArray<TIMarker>;
|
|
TOnDataCallback = reference to function (data : String) : Boolean;
|
|
|
|
|
|
TOnRenderCallbackDataType = class external name 'Object' (TJSObject)
|
|
start : integer;
|
|
end_ : integer; external name 'end';
|
|
end;
|
|
|
|
TOnKeyCallbackDataType = class external name 'Object' (TJSObject)
|
|
key : string;
|
|
domEvent : TJSKeyBoardEvent;
|
|
end;
|
|
|
|
TOnResizeCallbackDataType = class external name 'Object' (TJSObject)
|
|
cols : integer;
|
|
rows : integer;
|
|
end;
|
|
|
|
|
|
TOnKeyCallback = reference to function(data : TOnKeyCallbackDataType) : Boolean;
|
|
TOnRenderCallBack = reference to function(data : TOnRenderCallBackDataType) : Boolean;
|
|
TOnResizeCallBack = reference to function(data : TOnResizeCallBackDataType) : Boolean;
|
|
TOnScrollCallBack = reference to function(data : double) : Boolean;
|
|
|
|
TTerminal = class external name 'Terminal' (TJSObject)
|
|
Private
|
|
Felement : jsvalue; external name 'element';
|
|
Ftextarea : jsvalue; external name 'textarea';
|
|
Frows : Double; external name 'rows';
|
|
Fcols : Double; external name 'cols';
|
|
Fbuffer : TIBufferNamespace; external name 'buffer';
|
|
Fmarkers : TMarkersType; external name 'markers';
|
|
Fparser : TIParser; external name 'parser';
|
|
Funicode : TIUnicodeHandling; external name 'unicode';
|
|
Fmodes : TIModes; external name 'modes';
|
|
Public
|
|
Function addMarker(cursorYOffset : Double): jsvalue;
|
|
Procedure attachCustomKeyEventHandler(customKeyEventHandler : TattachCustomKeyEventHandler_customKeyEventHandler);
|
|
Procedure blur;
|
|
Procedure clear;
|
|
Procedure clearSelection;
|
|
Procedure clearTextureAtlas;
|
|
constructor new(options : TITerminalOptions); overload;
|
|
constructor new; overload;
|
|
Procedure deregisterCharacterJoiner(joinerId : Double);
|
|
Procedure deregisterLinkMatcher(matcherId : Double);
|
|
Procedure dispose;
|
|
Procedure focus;
|
|
Function getOption(key : jsvalue): string; overload;
|
|
Function getOption(key : string): string; overload;
|
|
Function getSelection: string;
|
|
Function getSelectionPosition: jsvalue;
|
|
Function hasSelection: boolean;
|
|
Procedure loadAddon(addon : TITerminalAddon);
|
|
Procedure open(parent : HTMLElement);
|
|
Procedure paste(data : string);
|
|
Procedure refresh(start : Double; &end : Double);
|
|
// Function registerCharacterJoiner(handler : procedure): Double;
|
|
// Function registerLinkMatcher(regex : RegExp; handler : procedure; options : TILinkMatcherOptions): Double; overload;
|
|
// Function registerLinkMatcher(regex : RegExp; handler : procedure): Double; overload;
|
|
Function registerLinkProvider(linkProvider : TILinkProvider): TIDisposable;
|
|
Function registerMarker(cursorYOffset : Double): jsvalue;
|
|
Procedure reset;
|
|
Procedure resize(columns : Double; rows : Double);
|
|
Procedure scrollLines(amount : Double);
|
|
Procedure scrollPages(pageCount : Double);
|
|
Procedure scrollToBottom;
|
|
Procedure scrollToLine(line : Double);
|
|
Procedure scrollToTop;
|
|
Procedure select(column : Double; row : Double; &length : Double);
|
|
Procedure selectAll;
|
|
Procedure selectLines(start : Double; &end : Double);
|
|
Procedure setOption(key : jsvalue; value : string); overload;
|
|
Procedure setOption(key : jsvalue; value : jsvalue); overload;
|
|
Procedure setOption(key : String; value : TLogLevel); overload;
|
|
Procedure setOption(key : jsvalue; value : boolean); overload;
|
|
Procedure setOption(key : jsvalue; value : Double); overload;
|
|
Procedure setOption(key : String; value : TITheme); overload;
|
|
Procedure write(data : jsvalue; callback : TCallback); overload;
|
|
Procedure write(data : jsvalue); overload;
|
|
Procedure writeln(data : jsvalue; callback : TCallBack); overload;
|
|
Procedure writeln(data : jsvalue); overload;
|
|
Procedure writeUtf8(data : TJSUint8Array; callback : TCallback); overload;
|
|
Procedure writeUtf8(data : TJSUint8Array); overload;
|
|
Property element : jsvalue Read Felement;
|
|
Property textarea : jsvalue Read Ftextarea;
|
|
Property rows : Double Read Frows;
|
|
Property cols : Double Read Fcols;
|
|
Property buffer : TIBufferNamespace Read Fbuffer;
|
|
Property markers : TMarkersType Read Fmarkers;
|
|
Property parser : TIParser Read Fparser;
|
|
Property unicode : TIUnicodeHandling Read Funicode;
|
|
Property modes : TIModes Read Fmodes;
|
|
options : TITerminalOptions;
|
|
strings : TILocalizableStrings;
|
|
function onBell(listener: TCallBack) : TIDisposable;
|
|
function onBinary(listener : TOnDataCallBack) : TIDisposable;
|
|
Function onCursorMove(listener: TCallBack) : TIDisposable;
|
|
function onData (listener : TOnDataCallback) : TIDisposable;
|
|
function onKey(listener: TOnKeyCallback) : TIDisposable;
|
|
function onLineFeed (listener: TCallBack) : TIDisposable;
|
|
function onRender(listener : TOnRenderCallBack) : TIDisposable;
|
|
function onResize(listener : TOnResizeCallBack) : TIDisposable;
|
|
function onScroll(listener : TOnScrollCallBack) : TIDisposable;
|
|
function onSelectionChange(listener : TCallBack) : TIDisposable;
|
|
function onTitleChange(listener : TOnDataCallback) : TIDisposable;
|
|
end;
|
|
|
|
TITerminalOptions = class external name 'Object' (TJSObject)
|
|
allowProposedApi : boolean;
|
|
allowTransparency : boolean;
|
|
altClickMovesCursor : boolean;
|
|
bellSound : string;
|
|
bellStyle : jsvalue;
|
|
convertEol : boolean;
|
|
cols : Double;
|
|
cursorBlink : boolean;
|
|
cursorStyle : jsvalue;
|
|
cursorWidth : Double;
|
|
customGlyphs : boolean;
|
|
disableStdin : boolean;
|
|
drawBoldTextInBrightColors : boolean;
|
|
fastScrollModifier : jsvalue;
|
|
fastScrollSensitivity : Double;
|
|
fontSize : Double;
|
|
fontFamily : string;
|
|
fontWeight : TFontWeight;
|
|
fontWeightBold : TFontWeight;
|
|
letterSpacing : Double;
|
|
lineHeight : Double;
|
|
linkTooltipHoverDuration : Double;
|
|
logLevel : TLogLevel;
|
|
macOptionIsMeta : boolean;
|
|
macOptionClickForcesSelection : boolean;
|
|
minimumContrastRatio : Double;
|
|
rendererType : TRendererType;
|
|
rightClickSelectsWord : boolean;
|
|
rows : Double;
|
|
screenReaderMode : boolean;
|
|
scrollback : Double;
|
|
scrollSensitivity : Double;
|
|
tabStopWidth : Double;
|
|
theme : TITheme;
|
|
windowsMode : boolean;
|
|
wordSeparator : string;
|
|
windowOptions : TIWindowOptions;
|
|
end;
|
|
|
|
TITheme = class external name 'Object' (TJSObject)
|
|
foreground : string;
|
|
background : string;
|
|
cursor : string;
|
|
cursorAccent : string;
|
|
selection : string;
|
|
black : string;
|
|
red : string;
|
|
green : string;
|
|
yellow : string;
|
|
blue : string;
|
|
magenta : string;
|
|
cyan : string;
|
|
white : string;
|
|
brightBlack : string;
|
|
brightRed : string;
|
|
brightGreen : string;
|
|
brightYellow : string;
|
|
brightBlue : string;
|
|
brightMagenta : string;
|
|
brightCyan : string;
|
|
brightWhite : string;
|
|
end;
|
|
|
|
TILinkMatcherOptions = class external name 'Object' (TJSObject)
|
|
matchIndex : Double;
|
|
validationCallback : TCallBack;
|
|
tooltipCallback : TCallBack;
|
|
leaveCallback : TCallback;
|
|
priority : Double;
|
|
willLinkActivate : TCallBack;
|
|
end;
|
|
|
|
TIDisposable = class external name 'Object' (TJSObject)
|
|
Procedure dispose;
|
|
end;
|
|
|
|
TIEvent = class external name 'Object' (TJSObject)
|
|
constructor new(listener : TCallback);
|
|
end;
|
|
|
|
TIMarker = class external name 'Object' (TJSObject)
|
|
Fid : Double; external name 'id';
|
|
FisDisposed : boolean; external name 'isDisposed';
|
|
Fline : Double; external name 'line';
|
|
Property id : Double Read Fid;
|
|
Property isDisposed : boolean Read FisDisposed;
|
|
Property line : Double Read Fline;
|
|
onDispose : TIEvent;
|
|
end;
|
|
|
|
TILocalizableStrings = class external name 'Object' (TJSObject)
|
|
promptLabel : string;
|
|
tooMuchOutput : string;
|
|
end;
|
|
|
|
TIWindowOptions = class external name 'Object' (TJSObject)
|
|
restoreWin : boolean;
|
|
minimizeWin : boolean;
|
|
setWinPosition : boolean;
|
|
setWinSizePixels : boolean;
|
|
raiseWin : boolean;
|
|
lowerWin : boolean;
|
|
refreshWin : boolean;
|
|
setWinSizeChars : boolean;
|
|
maximizeWin : boolean;
|
|
fullscreenWin : boolean;
|
|
getWinState : boolean;
|
|
getWinPosition : boolean;
|
|
getWinSizePixels : boolean;
|
|
getScreenSizePixels : boolean;
|
|
getCellSizePixels : boolean;
|
|
getWinSizeChars : boolean;
|
|
getScreenSizeChars : boolean;
|
|
getIconTitle : boolean;
|
|
getWinTitle : boolean;
|
|
pushTitle : boolean;
|
|
popTitle : boolean;
|
|
setWinLines : boolean;
|
|
end;
|
|
|
|
TITerminalAddon = class external name 'Object' (TJSObject)
|
|
Procedure activate(terminal : TTerminal);
|
|
end;
|
|
|
|
TISelectionPosition = class external name 'Object' (TJSObject)
|
|
startColumn : Double;
|
|
startRow : Double;
|
|
endColumn : Double;
|
|
endRow : Double;
|
|
end;
|
|
|
|
TIViewportRange = class external name 'Object' (TJSObject)
|
|
start : TIViewportRangePosition;
|
|
&end : TIViewportRangePosition;external name 'end';
|
|
end;
|
|
|
|
TIViewportRangePosition = class external name 'Object' (TJSObject)
|
|
x : Double;
|
|
y : Double;
|
|
end;
|
|
|
|
TILinkProvider = class external name 'Object' (TJSObject)
|
|
Procedure provideLinks(bufferLineNumber : Double; callback : TCallback);
|
|
end;
|
|
|
|
TILink = class external name 'Object' (TJSObject)
|
|
Procedure activate(event : MouseEvent; text : string);
|
|
Procedure dispose;
|
|
Procedure hover(event : MouseEvent; text : string);
|
|
Procedure leave(event : MouseEvent; text : string);
|
|
range : TIBufferRange;
|
|
text : string;
|
|
decorations : TILinkDecorations;
|
|
end;
|
|
|
|
TILinkDecorations = class external name 'Object' (TJSObject)
|
|
pointerCursor : boolean;
|
|
underline : boolean;
|
|
end;
|
|
|
|
TIBufferRange = class external name 'Object' (TJSObject)
|
|
start : TIBufferCellPosition;
|
|
&end : TIBufferCellPosition;external name 'end';
|
|
end;
|
|
|
|
TIBufferCellPosition = class external name 'Object' (TJSObject)
|
|
x : Double;
|
|
y : Double;
|
|
end;
|
|
|
|
TIBuffer = class external name 'Object' (TJSObject)
|
|
Ftype : jsvalue; external name 'type';
|
|
FcursorY : Double; external name 'cursorY';
|
|
FcursorX : Double; external name 'cursorX';
|
|
FviewportY : Double; external name 'viewportY';
|
|
FbaseY : Double; external name 'baseY';
|
|
Flength : Double; external name 'length';
|
|
Function getLine(y : Double): jsvalue;
|
|
Function getNullCell: TIBufferCell;
|
|
Property &type : jsvalue Read Ftype;
|
|
Property cursorY : Double Read FcursorY;
|
|
Property cursorX : Double Read FcursorX;
|
|
Property viewportY : Double Read FviewportY;
|
|
Property baseY : Double Read FbaseY;
|
|
Property &length : Double Read Flength;
|
|
end;
|
|
|
|
TIBufferNamespace = class external name 'Object' (TJSObject)
|
|
Factive : TIBuffer; external name 'active';
|
|
Fnormal : TIBuffer; external name 'normal';
|
|
Falternate : TIBuffer; external name 'alternate';
|
|
Property active : TIBuffer Read Factive;
|
|
Property normal : TIBuffer Read Fnormal;
|
|
Property alternate : TIBuffer Read Falternate;
|
|
onBufferChange : TIEvent;
|
|
end;
|
|
|
|
TIBufferLine = class external name 'Object' (TJSObject)
|
|
FisWrapped : boolean; external name 'isWrapped';
|
|
Flength : Double; external name 'length';
|
|
Function getCell(x : Double; cell : TIBufferCell): jsvalue; overload;
|
|
Function getCell(x : Double): jsvalue; overload;
|
|
Function translateToString(trimRight : boolean; startColumn : Double; endColumn : Double): string; overload;
|
|
Function translateToString: string; overload;
|
|
Function translateToString(trimRight : boolean): string; overload;
|
|
Function translateToString(trimRight : boolean; startColumn : Double): string; overload;
|
|
Property isWrapped : boolean Read FisWrapped;
|
|
Property &length : Double Read Flength;
|
|
end;
|
|
|
|
|
|
TIBufferCell = class external name 'Object' (TJSObject)
|
|
Function getBgColor: Double;
|
|
Function getBgColorMode: Double;
|
|
Function getChars: string;
|
|
Function getCode: Double;
|
|
Function getFgColor: Double;
|
|
Function getFgColorMode: Double;
|
|
Function getWidth: Double;
|
|
Function isAttributeDefault: boolean;
|
|
Function isBgDefault: boolean;
|
|
Function isBgPalette: boolean;
|
|
Function isBgRGB: boolean;
|
|
Function isBlink: Double;
|
|
Function isBold: Double;
|
|
Function isDim: Double;
|
|
Function isFgDefault: boolean;
|
|
Function isFgPalette: boolean;
|
|
Function isFgRGB: boolean;
|
|
Function isInverse: Double;
|
|
Function isInvisible: Double;
|
|
Function isItalic: Double;
|
|
Function isStrikethrough: Double;
|
|
Function isUnderline: Double;
|
|
end;
|
|
|
|
TIFunctionIdentifier = class external name 'Object' (TJSObject)
|
|
prefix : string;
|
|
intermediates : string;
|
|
final : string;
|
|
end;
|
|
|
|
TIParser = class external name 'Object' (TJSObject)
|
|
Function registerCsiHandler(id : TIFunctionIdentifier; callback : TCallBack): TIDisposable;
|
|
Function registerDcsHandler(id : TIFunctionIdentifier; callback : TCallBack): TIDisposable;
|
|
Function registerEscHandler(id : TIFunctionIdentifier; handler : TCallBack): TIDisposable;
|
|
Function registerOscHandler(ident : Double; callback : TCallBack): TIDisposable;
|
|
end;
|
|
|
|
TIUnicodeVersionProvider = class external name 'Object' (TJSObject)
|
|
Fversion : string; external name 'version';
|
|
Function wcwidth(codepoint : Double): jsvalue;
|
|
Property version : string Read Fversion;
|
|
end;
|
|
|
|
TIUnicodeHandling = class external name 'Object' (TJSObject)
|
|
Fversions : TStringDynArray; external name 'versions';
|
|
Procedure register(provider : TIUnicodeVersionProvider);
|
|
Property versions : TStringDynArray Read Fversions;
|
|
activeVersion : string;
|
|
end;
|
|
|
|
TIModes = class external name 'Object' (TJSObject)
|
|
FapplicationCursorKeysMode : boolean; external name 'applicationCursorKeysMode';
|
|
FapplicationKeypadMode : boolean; external name 'applicationKeypadMode';
|
|
FbracketedPasteMode : boolean; external name 'bracketedPasteMode';
|
|
FinsertMode : boolean; external name 'insertMode';
|
|
FmouseTrackingMode : jsvalue; external name 'mouseTrackingMode';
|
|
ForiginMode : boolean; external name 'originMode';
|
|
FreverseWraparoundMode : boolean; external name 'reverseWraparoundMode';
|
|
FsendFocusMode : boolean; external name 'sendFocusMode';
|
|
FwraparoundMode : boolean; external name 'wraparoundMode';
|
|
Property applicationCursorKeysMode : boolean Read FapplicationCursorKeysMode;
|
|
Property applicationKeypadMode : boolean Read FapplicationKeypadMode;
|
|
Property bracketedPasteMode : boolean Read FbracketedPasteMode;
|
|
Property insertMode : boolean Read FinsertMode;
|
|
Property mouseTrackingMode : jsvalue Read FmouseTrackingMode;
|
|
Property originMode : boolean Read ForiginMode;
|
|
Property reverseWraparoundMode : boolean Read FreverseWraparoundMode;
|
|
Property sendFocusMode : boolean Read FsendFocusMode;
|
|
Property wraparoundMode : boolean Read FwraparoundMode;
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
implementation
|
|
end.
|