From 0a110d3777376e42671194abb209bff2d742c25e Mon Sep 17 00:00:00 2001 From: Ken Smith Date: Fri, 15 Feb 2013 09:55:02 -0800 Subject: [PATCH] Added definitions for noVNC (https://github.com/kanaka/noVNC) --- noVNC/noVNC-tests.ts | 32 ++++++++++ noVNC/noVNC.d.ts | 140 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 172 insertions(+) create mode 100644 noVNC/noVNC-tests.ts create mode 100644 noVNC/noVNC.d.ts diff --git a/noVNC/noVNC-tests.ts b/noVNC/noVNC-tests.ts new file mode 100644 index 000000000..5d4eb579f --- /dev/null +++ b/noVNC/noVNC-tests.ts @@ -0,0 +1,32 @@ +/// + +Util.load_scripts(["webutil.js", "base64.js", "websock.js", "des.js", + "input.js", "display.js", "jsunzip.js", "rfb.js"]); + +var rfb:RFB; + +function setPassword() { + rfb.sendPassword('password'); +} + +function sendCtrlAltDel() { + rfb.sendCtrlAltDel(); +} + +function init() { + var host:string, port:number, password:string, path:string, token; + var canvas = document.getElementById('noVNC_canvas'); + + rfb = new RFB({ + target: canvas, + encrypt: true, + repeaterID: "myrepeaterid", + true_color: true, + local_cursor: true, + shared: true, + view_only: true, + updateState: true, + onPasswordRequired: (rfb: RFB) => { } + }); + rfb.connect(host, port, password, path); +}; diff --git a/noVNC/noVNC.d.ts b/noVNC/noVNC.d.ts new file mode 100644 index 000000000..ff6f690ec --- /dev/null +++ b/noVNC/noVNC.d.ts @@ -0,0 +1,140 @@ +// Type definitions for noVNC +// Project: https://github.com/kanaka/noVNC +// Definitions by: Ken Smith +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +interface NvPoint { + x: number; + y: number; +} + +interface NvFeatures { + xpath: bool; + air: bool; + query: bool; +} + +interface NvEngine { + presto: bool; + trident: bool; + webkit: bool; + gecko: bool; +} + +interface NvFlash { + version: number; + build: number; +} + +interface NvBox { + x: number; + y: number; + w: number; + h: number; +} +interface NvCleanDirtyBox { + cleanBox: NvBox; + dirtyBoxes: NvBox[]; +} + +interface NvUtilStatic { + init_logging(level?: string): void; + get_logging(): string; + conf_default(cfg, api, defaults, v, mode, type, defval, desc): void; + conf_defaults(cfg, api, defaults, arr): void; + get_include_uri(): string; + load_scripts(files: string[]): void; + getPosition(obj: HTMLElement): NvPoint; + getEventPosition(e: Event, obj: HTMLElement, scale: number): NvPoint; + addEvent(obj: HTMLElement, evType: string, fn: Function): void; + removeEvent(obj: HTMLElement, evType: string, fn: Function): void; + stopEvent(e: Event): void; + Features: NvFeatures; + Engine: NvEngine; + Flash(): NvFlash; +} + +interface NvRenderAction { + type: string; + old_x: number; + old_y: number; + x: number; + y: number; + width: number; + height: number; +} + +interface NvRFBDefaults { + target?: HTMLCanvasElement; + focusContainer?: HTMLElement; + encrypt?: bool; + true_color?: bool; + local_cursor?: bool; + shared?: bool; + view_only?: bool; + connectTimeout?: number; + disconnectTimeout?: number; + viewportDrag?: bool; + check_rate?: number; + fbu_req_rate?: number; + repeaterID?: string; + onUpdateState?: (rfb: RFB, state: any, oldstate: any, statusMsg: string) => void; + onPasswordRequired?: (rfb: RFB) => void; + onClipboard?: (rfb: RFB, text: string) => void; + onBell?: (rfb: RFB) => void; + onFBUReceive?: (rfb: RFB, fbu: any) => void; + onFBUComplete?: (rfb: RFB, fbu: any) => void; + onFBResize?: (rfb: RFB, width: number, height: number) => void; +} + +class RFB { + constructor(defaults); + set_local_cursor(cursor): void; + get_display(): Display; + get_keyboard(): Keyboard; + get_mouse(): Mouse; + connect(host: string, port: number, password: string, path: string): void; + disconnect(): void; + sendPassword(passwd: string): void; + sendCtrlAltDel(): void; + sendKey(code: number, down: bool): void; + clipboardPasteFrom(text: string): void; + testMode(override_send: (arr: Array) => bool, data_mode: string): void; +} + +interface Display { + get_context(): CanvasRenderingContext2D; + set_scale(scale: number): void; + set_width(val: number): void; + get_width(): number; + set_height(val: number): void; + get_height(): number; + viewportChange(deltaX: number, deltaY: number, width: number, height: number): void; + getCleanDirtyReset(): NvCleanDirtyBox; + absX(x: number): number; + absY(y: number): number; + resize(width: number, height: number): void; + clear(): void; + fillRect(x: number, y: number, width: number, height: number, color: number[]); + copyImage(old_x: number, old_y: number, new_x: number, new_y: number, w: number, h: number); + startTile(x: number, y: number, width: number, height: number, color: number[]); + subTile(x: number, y: number, w: number, h: number, color: number[]); + finishTile(): void; + blitImage(x: number, y: number, width: number, height: number, arr: any[], offset: number): void; + blitRgbImage(x: number, y: number, width: number, height: number, arr: any[], offset: number): void; + blitStringImage(str: string, x: number, y: number): void; + drawImage(img: HTMLImageElement, x: number, y: number): void; + renderQ_push(action: NvRenderAction): void; +} + +interface Keyboard { + grab(): void; + ungrab(): void; +} + +interface Mouse { + grab(): void; + ungrab(): void; +} + +declare var Util: NvUtilStatic; \ No newline at end of file