mirror of
https://git.proxmox.com/git/mirror_novnc
synced 2025-05-02 01:31:52 +00:00

Use normal properties with JavaScript setters and getters instead of our homegrown stuff. This also changes the properties to follow normal naming conventions.
127 lines
6.1 KiB
Markdown
127 lines
6.1 KiB
Markdown
# 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.
|
|
[Websock API](https://github.com/novnc/websockify/wiki/websock.js) wiki page.
|
|
|
|
|
|
## 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
|
|
| ----------- | ----- | ---- | ------- | ------------
|
|
| logo | raw | RW | | Logo to display when cleared: {"width": width, "height": height, "type": mime-type, "data": data}
|
|
| scale | float | RW | 1.0 | Display area scale factor 0.0 - 1.0
|
|
| viewport | 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
|
|
| clear | () | Clear the display (show logo if set)
|
|
| 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
|
|
| changeCursor | (pixels, mask, hotx, hoty, w, h) | Change cursor appearance
|
|
| defaultCursor | () | Restore default cursor appearance
|
|
| disableLocalCursor | () | Disable local (client-side) cursor
|
|
| clippingDisplay | () | Check if the remote display is larger than the client display
|
|
| autoscale | (containerWidth, containerHeight, downscaleOnly) | 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
|