diff --git a/docs/references/elements/BaseFrame.md b/docs/references/elements/BaseFrame.md index 830ea85..4f8f174 100644 --- a/docs/references/elements/BaseFrame.md +++ b/docs/references/elements/BaseFrame.md @@ -7,17 +7,19 @@ This is the base frame class. It is the root element of all elements and the onl |---|---|---| |_render|`Render`|The render object| |_renderUpdate|`boolean`|Whether the render object needs to be updated| +|_peripheralName|`string`|The name of a peripheral| ## Properties |Property|Type|Default|Description| |---|---|---|---| -|text|term|nil|The terminal object to render to +|term|term|peripheral|term.current()|The terminal or (monitor) peripheral object to render to ## Functions |Method|Returns|Description| |---|---|---| +|[BaseFrame:dispatchEvent](#baseframe-dispatchevent)|-| |[BaseFrame:setCursor](#baseframe-setcursor)|-|Sets the cursor position @@ -30,6 +32,8 @@ This is the base frame class. It is the root element of all elements and the onl |BaseFrame:init|table|Initializes the Frame instance |BaseFrame:key|-|Handles key events |BaseFrame:key_up|-|Handles key up events +|BaseFrame:monitor_touch|-|Handles monitor touch events +|BaseFrame:mouse_click|-|Handles mouse click events |BaseFrame:mouse_up|-|Handles mouse up events |BaseFrame:multiBlit|-|Renders a multiBlit to the render Object |BaseFrame:render|-|Renders the Frame @@ -37,6 +41,8 @@ This is the base frame class. It is the root element of all elements and the onl |BaseFrame:textBg|-|Renders a text with a background color to the render Object |BaseFrame:textFg|-|Renders a text with a foreground color to the render Object +## BaseFrame:dispatchEvent() + ## BaseFrame:setCursor(x, y, blink) Sets the cursor position diff --git a/docs/references/elements/Display.md b/docs/references/elements/Display.md index f8d2987..df532c4 100644 --- a/docs/references/elements/Display.md +++ b/docs/references/elements/Display.md @@ -6,6 +6,7 @@ The Display is a special element where you can use the window (term) API to draw |Method|Returns|Description| |---|---|---| |[Display:getWindow](#display-getwindow)|table|Returns the current window object +|[Display:write](#display-write)|Display|Writes text to the display ## Protected Functions @@ -21,4 +22,17 @@ Returns the current window object ### Returns * `table` `window` The current window object +## Display:write(x, y, text, fg?, bg?) +Writes text to the display at the given position with the given foreground and background colors + +### Parameters +* `x` `number` The x position to write to +* `y` `number` The y position to write to +* `text` `string` The text to write +* `fg` *(optional)* `colors` The foreground color (optional) +* `bg` *(optional)* `colors` The background color (optional) + +### Returns +* `Display` `self` The display instance + diff --git a/docs/references/main.md b/docs/references/main.md index 49cb01d..ae35fd0 100644 --- a/docs/references/main.md +++ b/docs/references/main.md @@ -32,11 +32,14 @@ What this code does is it loads basalt into the project, and you can access it b |[basalt.getActiveFrame](#basalt-getactiveframe)|BaseFrame?|Returns the active frame |[basalt.getElementClass](#basalt-getelementclass)|table|Returns an element class |[basalt.getElementManager](#basalt-getelementmanager)|table|Returns the element manager +|[basalt.getErrorManager](#basalt-geterrormanager)|table|Returns the error manager +|[basalt.getFocus](#basalt-getfocus)|BaseFrame?|Returns the focused frame |[basalt.getMainFrame](#basalt-getmainframe)|BaseFrame|Gets or creates the main frame |[basalt.removeSchedule](#basalt-removeschedule)|boolean|Removes a scheduled update |[basalt.run](#basalt-run)|-|Starts the Basalt runtime |[basalt.schedule](#basalt-schedule)|thread|Schedules a function to run in a coroutine |[basalt.setActiveFrame](#basalt-setactiveframe)|-|Sets the active frame +|[basalt.setFocus](#basalt-setfocus)|-|Sets a frame as focused |[basalt.stop](#basalt-stop)|-|Stops the Basalt runtime |[basalt.update](#basalt-update)|-|Runs basalt once @@ -62,11 +65,6 @@ Creates and returns a new BaseFrame ### Returns * `BaseFrame` `BaseFrame` The created frame instance -### Usage - ```lua -local mainFrame = basalt.createFrame() -``` - ## basalt.getAPI(name) Returns a Plugin API @@ -76,17 +74,15 @@ Returns a Plugin API ### Returns * `table` `Plugin` The plugin API -## basalt.getActiveFrame() +## basalt.getActiveFrame(t?) Returns the active frame +### Parameters +* `t` *(optional)* `term` The term to get the active frame for (default: current term) + ### Returns * `BaseFrame?` `BaseFrame` The frame to set as active -### Usage - ```lua -local frame = basalt.getActiveFrame() -``` - ## basalt.getElementClass(name) Returns an element's class without creating a instance @@ -102,10 +98,17 @@ Returns the element manager instance ### Returns * `table` `ElementManager` The element manager -### Usage - ```lua -local manager = basalt.getElementManager() -``` +## basalt.getErrorManager() +Returns the error manager instance + +### Returns +* `table` `ErrorManager` The error manager + +## basalt.getFocus() +Returns the focused frame + +### Returns +* `BaseFrame?` `BaseFrame` The focused frame ## basalt.getMainFrame() Gets or creates the main frame @@ -113,11 +116,6 @@ Gets or creates the main frame ### Returns * `BaseFrame` `BaseFrame` The main frame instance -### Usage - ```lua -local frame = basalt.getMainFrame() -``` - ## basalt.removeSchedule(func) Removes a scheduled update @@ -127,23 +125,12 @@ Removes a scheduled update ### Returns * `boolean` `success` Whether the scheduled function was removed -### Usage - ```lua -basalt.removeSchedule(scheduleId) -``` - ## basalt.run(isActive?) Starts the Basalt runtime ### Parameters * `isActive` *(optional)* `boolean` Whether to start active (default: true) -### Usage - ```lua -basalt.run() -basalt.run(false) -``` - ## basalt.schedule(func) Schedules a function to run in a coroutine @@ -153,39 +140,26 @@ Schedules a function to run in a coroutine ### Returns * `thread` `func` The scheduled function -### Usage - ```lua -local id = basalt.scheduleUpdate(myFunction) -``` - -## basalt.setActiveFrame(frame) +## basalt.setActiveFrame(frame, setActive?) Sets the active frame ### Parameters * `frame` `BaseFrame` The frame to set as active +* `setActive` *(optional)* `boolean` Whether to set the frame as active (default: true) -### Usage - ```lua -basalt.setActiveFrame(myFrame) -``` +## basalt.setFocus(frame) +Sets a frame as focused + +### Parameters +* `frame` `BaseFrame` The frame to set as focused ## basalt.stop() Stops the Basalt runtime -### Usage - ```lua -basalt.stop() -``` - ## basalt.update(...) Runs basalt once, can be used to update the UI manually, but you have to feed it the events ### Parameters * `...` *(vararg)* `any` The event to run with -### Usage - ```lua -basalt.update() -``` - diff --git a/docs/references/plugins/state.md b/docs/references/plugins/state.md index 578bf73..006b50a 100644 --- a/docs/references/plugins/state.md +++ b/docs/references/plugins/state.md @@ -6,25 +6,27 @@ persistent states, computed states, and state sharing between elements. |Method|Returns|Description| |---|---|---| -|[BaseElement:computed](#baseelement-computed)|BaseElement|Creates a computed state +|[BaseElement:bind](#baseelement-bind)|BaseElement| +|[BaseElement:computed](#baseelement-computed)|-| |[BaseElement:getState](#baseelement-getstate)|any|Gets a state value -|[BaseElement:initializeState](#baseelement-initializestate)|BaseElement|Initializes a new state |[BaseElement:onStateChange](#baseelement-onstatechange)|BaseElement|Watches for state changes +|[BaseElement:removeStateChange](#baseelement-removestatechange)|BaseElement|Removes a state change observer |[BaseElement:setState](#baseelement-setstate)|BaseElement|Sets a state value -|[BaseElement:shareState](#baseelement-sharestate)|BaseElement|Shares state between elements -## BaseElement:computed(self, key, computeFn) -Creates a computed state that derives its value from other states +## BaseElement:bind(self, propertyName, stateName) +Binds a property to a state ### Parameters -* `self` `BaseElement` The element to create computed state for -* `key` `string` The name of the computed state -* `computeFn` `function` Function that computes the state value +* `self` `BaseElement` The element to bind +* `propertyName` `string` The property to bind +* `stateName` `string` The state to bind to (optional, uses propertyName if not provided) ### Returns * `BaseElement` `self` The element instance +## BaseElement:computed() + ## BaseElement:getState(self, name) Gets the value of a state @@ -35,20 +37,6 @@ Gets the value of a state ### Returns * `any` `value` The current state value -## BaseElement:initializeState(self, name, default, canTriggerRender?, persist?, path?) -Initializes a new state for this element - -### Parameters -* `self` `BaseElement` The element to initialize state for -* `name` `string` The name of the state -* `default` `any` The default value of the state -* `canTriggerRender` *(optional)* `boolean` Whether state changes trigger a render -* `persist` *(optional)* `boolean` Whether to persist the state to disk -* `path` *(optional)* `string` Custom file path for persistence - -### Returns -* `BaseElement` `self` The element instance - ## BaseElement:onStateChange(self, stateName, callback) Registers a callback for state changes @@ -60,6 +48,17 @@ Registers a callback for state changes ### Returns * `BaseElement` `self` The element instance +## BaseElement:removeStateChange(self, stateName, callback) +Removes a state change observer + +### Parameters +* `self` `BaseElement` The element to remove observer from +* `stateName` `string` The state to remove observer from +* `callback` `function` The callback function to remove + +### Returns +* `BaseElement` `self` The element instance + ## BaseElement:setState(self, name, value) Sets the value of a state @@ -71,15 +70,33 @@ Sets the value of a state ### Returns * `BaseElement` `self` The element instance -## BaseElement:shareState(self, stateKey...) -Shares a state with other elements, keeping them in sync + +--- +
+ +# BaseFrame : Container + +## Functions + +|Method|Returns|Description| +|---|---|---| +|[BaseFrame.setup](#baseframe-setup)|-| +|[BaseFrame:initializeState](#baseframe-initializestate)|BaseFrame|Initializes a new state + + +## BaseFrame.setup() + +## BaseFrame:initializeState(self, name, default, persist?, path?) +Initializes a new state for this element ### Parameters -* `self` `BaseElement` The source element -* `stateKey` `string` The state to share -* `...` *(vararg)* `BaseElement` The target elements to share with +* `self` `BaseFrame` The element to initialize state for +* `name` `string` The name of the state +* `default` `any` The default value of the state +* `persist` *(optional)* `boolean` Whether to persist the state to disk +* `path` *(optional)* `string` Custom file path for persistence ### Returns -* `BaseElement` `self` The source element +* `BaseFrame` `self` The element instance