A newer version of Max is available. Click here to access the latest version of the documentation

jsui Reference

Javascript user interfaces and graphics

jsui

Description

Provides an environment to make user interface elements using Javascript. This provides all of the programming tools available in the js object, but also exposes the mgraphics and sketch drawing routines for visual output.

Examples

A simple dial with logic and drawing defined in Javascript

Discussion

The jsui object is a general purpose user interface object driven by javascript. There are a number of templates already built to use (some of which are shown below). While the patcher is in edit mode, you can ctrl-click (mac) or right-click (pc) to bring up the contextual menu which will let you view and edit the currently loaded javascript file, or select one of the template files from jsui-library. If the javascript file also has a help file associated with it (as do all of the template objects contained in this patch), the associated help file will be loaded instead of jsui.maxhelp. The inspector lets you set the javascript file, javascript arguments, size, border flag, and disable full scene anti-aliasing (fsaa).

At the present time, mouse position and object redrawing will only be reported correctly in the jsui object if the patching and Presentation mode sizes of the object are the same.

Arguments

None.

Attributes

border [int] (default: 1)

Toggles the drawing of a border around the jsui object. The default is 1 (draw border).

filename [symbol] (default: none)

The word filename, followed by a symbol that specifies a pathname, designates the Javascript file to be loaded.

jsarguments [256 atoms] (default: )

Specifies any arguments to be passed to the Javascript code contained in the jsui object.

nofsaa [int] (default: 0)

Toggle full screen anti-aliasing

parameter_enable [int]

Enables use of this object with Max for Live Parameters.

parameter_mappable [int] (default: 1)

When parameter_mappable is enabled, the object will be available for mapping to keyboard or MIDI input using the Mappings feature.

Common Box Attributes

Parameter Attributes

Messages

bang

Invokes the function named bang if defined.

int

Arguments

user-defined [int]
Invokes the function named msg_int if defined.

float

Arguments

user-defined [float]
Invokes the function named msg_float if defined.

list

Arguments

user-defined [list]
Performs the same as anything.

anything

Arguments

user-defined [list]
Invokes the function with the message name, assigning the message arguments to the arguments to the function. For example, if the object has a function named xyz defined, the message xyz 1 2 3 would invoke the xyz function with arguments 1 2 and 3.

(drag)

When a file is dragged from the File Browser to a jsui object, the file is loaded and executed.

autowatch

Arguments

flag [int]
The word autowatch, followed by a 1, turns on file watching for the Javascript source file. When file watching is on, the file is recompiled automatically when it is modified. This allows you to use an external editor for your Javascript file. When you save the file, the jsui object will notice. autowatch 0 turns off file watching.

compile

Arguments

filename [symbol]
Recompiles the current file. If followed by a symbol, will load, compile, and set the currently loaded Javascript file to be the Javascript file specified by the symbol argument

delprop

Arguments

property [symbol]
The word delprop, followed by a name, deletes the named property.

editfontsize

Arguments

size [int]
Changes the font-size of the text used in the editing window which contains the object's Javascript source file.

getprop

Arguments

property [symbol]
The word getprop, followed by a name, outputs the value of the property name stored in the object out the left outlet.

jsargs

Arguments

arguments [list]
Sets the current Javascript arguments to any following message arguments.

jsfile

Arguments

filename [symbol]
The word jsfile, followed by a symbol , loads, compiles, and sets the currently loaded Javascript file to be the Javascript file specified by the symbol argument.

loadbang

Call the loadbang function

(mouse)

Double-clicking on a js object opens a text window where the object's Javascript source file can be edited. When the text window is saved, the text is compiled as the object's script.

open

Opens the text window where the object's Javascript source file can be edited.

setprop

Arguments

property and settings [list]
The word setprop, followed by name and one or more names or numbers, sets the named property to what follows the name. For example, after sending setprop xyz 1 2 3 to a js object. the xyz property would have a value of the list 1 2 3.

size

Arguments

width [int]
height [int]
The word size, followed by two int arguments, sets the width and height of the jsui object.

statemessage

Arguments

messages [list]
Allows for the testing of messages passed to functions within the Javascript source file.

wclose

Closes the text window where the object's Javascript source file is edited.

Output

anything

Numbers, lists, or symbols are sent out the jsui object's outlets when the Javascript code executing within the jsui object invokes the outlet function.

See Also

Name Description
JavaScript Usage JavaScript Usage
js
jstrigger
mxj
Javascript in Max Javascript in Max
Max JS Tutorial 3: JavaScript Tasks, Arguments, and Globals Max JS Tutorial 3: JavaScript Tasks, Arguments, and Globals
JS Painter Guide JS Painter Guide