1
mirror of https://github.com/DarkFlippers/unleashed-firmware.git synced 2025-12-12 04:34:43 +04:00
Files
unleashed-firmware/documentation/js/js_gui__widget.md
WillyJL d34ff3310d JS: Update and fix docs, fix Number.toString() with decimals (#4168)
* Update and fix JS docs

This could really use some automation, atleast for API reference
There are TypeScript definitions and typedocs, we don't need to be monkeys copying and reformatting this to API reference by hand

* Fix bugged character

* JS: Fix Number.toString() with decimals

* Fix

* Forgot this one

* docs: mention per-view child format

* Added @portasynthinca3 to docs' codeowners

* Updated CODEOWNERS

---------

Co-authored-by: Anna Antonenko <portasynthinca3@gmail.com>
Co-authored-by: hedger <hedger@nanode.su>
Co-authored-by: hedger <hedger@users.noreply.github.com>
2025-04-01 15:02:12 +04:00

3.3 KiB

Widget GUI view

Displays a combination of custom elements on one screen.

Sample screenshot of the view
let eventLoop = require("event_loop");
let gui = require("gui");
let widgetView = require("gui/widget");

This module depends on the gui module, which in turn depends on the event_loop module, so they must be imported in this order. It is also recommended to conceptualize these modules first before using this one.

Example

For an example, refer to the gui.js example script.

View props

This view does not have any props.

Children

This view has the elements as its children. Elements are objects with properties to define them, in the form { element: "type", ...properties } (e.g. { element: "button", button: "right", text: "Back" }).

Element Type Properties Description
string_multiline x (number), y (number)
align (("t", "c", "b") + ("l", "m", "r"))
font ("primary", "secondary", "keyboard", "big_numbers")
text (string)
String of text that can span multiple lines.
string x (number), y (number)
align (("t", "c", "b") + ("l", "m", "r"))
font ("primary", "secondary", "keyboard", "big_numbers")
text (string)
String of text.
text_box x (number), y (number)
w (number), h (number)
align (("t", "c", "b") + ("l", "m", "r"))
text (string)
stripToDots (boolean)
Box of with text that can be scrolled vertically.
text_scroll x (number), y (number)
w (number), h (number)
text (string)
Text that can be scrolled vertically.
button text (string)
button ("left", "center", "right")
Button at the bottom of the screen.
icon x (number), y (number)
iconData (IconData)
Display an icon.
rect x (number), y (number)
w (number), h (number)
radius (number), fill (boolean)
Draw a rectangle, optionally rounded and filled.
circle x (number), y (number)
radius (number), fill (boolean)
Draw a circle, optionally filled.
line x1 (number), y1 (number)
x2 (number), y2 (number)
Draw a line between 2 points.