Program
This is the program class. It provides a program that runs in a window.
Extends: VisualElement
Examples (Executable)
lua
local basalt = require("basalt")
local main = basalt.getMainFrame()
local execPath = "rom/programs/fun/worm.lua"
local btn = main:addButton({
x = 5,
y = 2,
width = 20,
height = 3,
text = "Run Worm",
}):onClick(function()
local frame = main:addFrame({
x = 2,
y = 2,
width = 28,
height = 10,
title = "Worm Program",
draggable = true,
})
:setDraggingMap({{x=1, y=1, width=27, height=1}})
:onFocus(function(self)
self:prioritize()
end)
local program = frame:addProgram({
x = 1,
y = 2,
width = 28,
height = 9,
})
program:execute(execPath)
frame:addLabel({
x = 2,
y = 1,
text = "Worm",
foreground = colors.lightBlue
})
frame:addButton({
x = frame.get("width"),
y = 1,
width = 1,
height = 1,
text = "X",
background = colors.red,
foreground = colors.white
}):onClick(function()
frame:destroy()
end)
end)
basalt.run()Properties
| Property | Type | Default | Description |
|---|---|---|---|
| program | table | nil | The program instance |
| path | string | "" | The path to the program |
| running | boolean | false | Whether the program is running |
| errorCallback | function | nil | The error callback function |
| doneCallback | function | nil | The done callback function |
Functions
| Method | Returns | Description |
|---|---|---|
| Program:execute | Program | Executes a program |
| Program:stop | Program | Stops the program |
| Program:sendEvent | Program | Sends an event to the program |
| Program:onError | Program | Registers a callback for the program's error event |
| Program:onDone | Program | Registers a callback for the program's done event |
Program:execute(path, env?, addEnvironment?)
Executes a program
Parameters
pathstringThe path to the programenv(optional)tableThe environment to run the program inaddEnvironment(optional)booleanWhether to add the environment to the program's environment (false = overwrite instead of adding)
Returns
ProgramselfThe Program instance
Program:stop()
Stops the program
Returns
ProgramselfThe Program instance
Program:sendEvent(event, any)
Sends an event to the program
Parameters
eventstringThe event to sendanyTheevent arguments
Returns
ProgramselfThe Program instance
Program:onError(fn)
Registers a callback for the program's error event, if the function returns false, the program won't stop
Parameters
fnfunctionThe callback function to register
Returns
ProgramselfThe Program instance
Program:onDone(fn)
Registers a callback for the program's done event
Parameters
fnfunctionThe callback function to register
Returns
ProgramselfThe Program instance