2020-09-20 14:16:44 +02:00
|
|
|
# 1. Internal Modules
|
|
|
|
|
|
|
|
The noVNC client is composed of several internal modules that handle
|
|
|
|
rendering, input, networking, etc. Each of the modules is designed to
|
|
|
|
be cross-browser and independent from each other.
|
|
|
|
|
|
|
|
Note however that the API of these modules is not guaranteed to be
|
|
|
|
stable, and this documentation is not maintained as well as the
|
|
|
|
official external API.
|
|
|
|
|
|
|
|
|
|
|
|
## 1.1 Module List
|
|
|
|
|
|
|
|
* __Mouse__ (core/input/mouse.js): Mouse input event handler with
|
|
|
|
limited touch support.
|
|
|
|
|
|
|
|
* __Keyboard__ (core/input/keyboard.js): Keyboard input event handler with
|
|
|
|
non-US keyboard support. Translates keyDown and keyUp events to X11
|
|
|
|
keysym values.
|
|
|
|
|
|
|
|
* __Display__ (core/display.js): Efficient 2D rendering abstraction
|
|
|
|
layered on the HTML5 canvas element.
|
|
|
|
|
|
|
|
* __Websock__ (core/websock.js): Websock client from websockify
|
|
|
|
with transparent binary data support.
|
2019-07-15 14:05:24 +02:00
|
|
|
[Websock API](https://github.com/novnc/websockify-js/wiki/websock.js) wiki page.
|
2020-09-20 14:16:44 +02:00
|
|
|
|
|
|
|
|
|
|
|
## 1.2 Callbacks
|
|
|
|
|
|
|
|
For the Mouse, Keyboard and Display objects the callback functions are
|
|
|
|
assigned to configuration attributes, just as for the RFB object. The
|
|
|
|
WebSock module has a method named 'on' that takes two parameters: the
|
|
|
|
callback event name, and the callback function.
|
|
|
|
|
|
|
|
## 2. Modules
|
|
|
|
|
|
|
|
## 2.1 Mouse Module
|
|
|
|
|
|
|
|
### 2.1.1 Configuration Attributes
|
|
|
|
|
|
|
|
| name | type | mode | default | description
|
|
|
|
| ----------- | ---- | ---- | -------- | ------------
|
|
|
|
| touchButton | int | RW | 1 | Button mask (1, 2, 4) for which click to send on touch devices. 0 means ignore clicks.
|
|
|
|
|
|
|
|
### 2.1.2 Methods
|
|
|
|
|
|
|
|
| name | parameters | description
|
|
|
|
| ------ | ---------- | ------------
|
|
|
|
| grab | () | Begin capturing mouse events
|
|
|
|
| ungrab | () | Stop capturing mouse events
|
|
|
|
|
|
|
|
### 2.1.2 Callbacks
|
|
|
|
|
|
|
|
| name | parameters | description
|
|
|
|
| ------------- | ------------------- | ------------
|
|
|
|
| onmousebutton | (x, y, down, bmask) | Handler for mouse button click/release
|
|
|
|
| onmousemove | (x, y) | Handler for mouse movement
|
|
|
|
|
|
|
|
|
|
|
|
## 2.2 Keyboard Module
|
|
|
|
|
|
|
|
### 2.2.1 Configuration Attributes
|
|
|
|
|
|
|
|
None
|
|
|
|
|
|
|
|
### 2.2.2 Methods
|
|
|
|
|
|
|
|
| name | parameters | description
|
|
|
|
| ------ | ---------- | ------------
|
|
|
|
| grab | () | Begin capturing keyboard events
|
|
|
|
| ungrab | () | Stop capturing keyboard events
|
|
|
|
|
|
|
|
### 2.2.3 Callbacks
|
|
|
|
|
|
|
|
| name | parameters | description
|
|
|
|
| ---------- | -------------------- | ------------
|
|
|
|
| onkeypress | (keysym, code, down) | Handler for key press/release
|
|
|
|
|
|
|
|
|
|
|
|
## 2.3 Display Module
|
|
|
|
|
|
|
|
### 2.3.1 Configuration Attributes
|
|
|
|
|
|
|
|
| name | type | mode | default | description
|
|
|
|
| ------------ | ----- | ---- | ------- | ------------
|
|
|
|
| scale | float | RW | 1.0 | Display area scale factor 0.0 - 1.0
|
|
|
|
| clipViewport | bool | RW | false | Use viewport clipping
|
|
|
|
| width | int | RO | | Display area width
|
|
|
|
| height | int | RO | | Display area height
|
|
|
|
|
|
|
|
### 2.3.2 Methods
|
|
|
|
|
|
|
|
| name | parameters | description
|
|
|
|
| ------------------ | ------------------------------------------------------- | ------------
|
|
|
|
| viewportChangePos | (deltaX, deltaY) | Move the viewport relative to the current location
|
|
|
|
| viewportChangeSize | (width, height) | Change size of the viewport
|
|
|
|
| absX | (x) | Return X relative to the remote display
|
|
|
|
| absY | (y) | Return Y relative to the remote display
|
|
|
|
| resize | (width, height) | Set width and height
|
|
|
|
| flip | (from_queue) | Update the visible canvas with the contents of the rendering canvas
|
|
|
|
| pending | () | Check if there are waiting items in the render queue
|
|
|
|
| flush | () | Resume processing the render queue unless it's empty
|
|
|
|
| fillRect | (x, y, width, height, color, from_queue) | Draw a filled in rectangle
|
|
|
|
| copyImage | (old_x, old_y, new_x, new_y, width, height, from_queue) | Copy a rectangular area
|
|
|
|
| imageRect | (x, y, mime, arr) | Draw a rectangle with an image
|
|
|
|
| startTile | (x, y, width, height, color) | Begin updating a tile
|
|
|
|
| subTile | (tile, x, y, w, h, color) | Update a sub-rectangle within the given tile
|
|
|
|
| finishTile | () | Draw the current tile to the display
|
|
|
|
| blitImage | (x, y, width, height, arr, offset, from_queue) | Blit pixels (of R,G,B,A) to the display
|
|
|
|
| blitRgbImage | (x, y, width, height, arr, offset, from_queue) | Blit RGB encoded image to display
|
|
|
|
| blitRgbxImage | (x, y, width, height, arr, offset, from_queue) | Blit RGBX encoded image to display
|
|
|
|
| drawImage | (img, x, y) | Draw image and track damage
|
|
|
|
| autoscale | (containerWidth, containerHeight) | Scale the display
|
|
|
|
|
|
|
|
### 2.3.3 Callbacks
|
|
|
|
|
|
|
|
| name | parameters | description
|
|
|
|
| ------- | ---------- | ------------
|
|
|
|
| onflush | () | A display flush has been requested and we are now ready to resume FBU processing
|