mirror of
https://github.com/minetest/minetest.git
synced 2024-08-18 20:44:16 +02:00
178 lines
5.3 KiB
Plaintext
178 lines
5.3 KiB
Plaintext
Formspec toolkit api 0.0.3
|
|
==========================
|
|
|
|
Formspec toolkit is a set of functions to create basic ui elements.
|
|
|
|
|
|
File: fst/ui.lua
|
|
----------------
|
|
|
|
ui.lua adds base ui interface to add additional components to.
|
|
|
|
ui.add(component) -> returns name of added component
|
|
^ add component to ui
|
|
^ component: component to add
|
|
|
|
ui.delete(component) -> true/false if a component was deleted or not
|
|
^ remove a component from ui
|
|
^ component: component to delete
|
|
|
|
ui.set_default(name)
|
|
^ set component to show if not a single component is set visible
|
|
^ name: name of component to set as default
|
|
|
|
ui.find_by_name(name) --> returns component or nil
|
|
^ find a component within ui
|
|
^ name: name of component to look for
|
|
|
|
File: fst/tabview.lua
|
|
---------------------
|
|
|
|
tabview_create(name, size, tabheaderpos) --> returns tabview component
|
|
^ create a new tabview component
|
|
^ name: name of tabview (has to be unique per ui)
|
|
^ size: size of tabview
|
|
{
|
|
x,
|
|
y
|
|
}
|
|
^ tabheaderpos: upper left position of tabheader (relative to upper left fs corner)
|
|
{
|
|
x,
|
|
y
|
|
}
|
|
|
|
Class reference tabview:
|
|
|
|
methods:
|
|
- add_tab(tab)
|
|
^ add a tab to this tabview
|
|
^ tab:
|
|
{
|
|
name = "tabname", -- name of tab to create
|
|
caption = "tab caption", -- text to show for tab header
|
|
cbf_button_handler = function(tabview, fields, tabname, tabdata), -- callback for button events
|
|
--TODO cbf_events = function(tabview, event, tabname), -- callback for events
|
|
cbf_formspec = function(tabview, name, tabdata), -- get formspec
|
|
tabsize =
|
|
{
|
|
x, -- x width
|
|
y -- y height
|
|
}, -- special size for this tab (only relevant if no parent for tabview set)
|
|
on_change = function(type,old_tab,new_tab) -- called on tab change, type is "ENTER" or "LEAVE"
|
|
}
|
|
- set_autosave_tab(value)
|
|
^ tell tabview to automatically save current tabname as "tabview_name"_LAST
|
|
^ value: true/false
|
|
- set_tab(name)
|
|
^ set's tab to tab named "name", returns true/false on success
|
|
^ name: name of tab to set
|
|
- set_global_event_handler(handler)
|
|
^ set a handler to be called prior calling tab specific event handler
|
|
^ handler: function(tabview,event) --> returns true to finish event processing false to continue
|
|
- set_global_button_handler(handler)
|
|
^ set a handler to be called prior calling tab specific button handler
|
|
^ handler: function(tabview,fields) --> returns true to finish button processing false to continue
|
|
- set_parent(parent)
|
|
^ set parent to attach tabview to. TV's with parent are hidden if their parent
|
|
is hidden and they don't set their specified size.
|
|
^ parent: component to attach to
|
|
- show()
|
|
^ show tabview
|
|
- hide()
|
|
^ hide tabview
|
|
- delete()
|
|
^ delete tabview
|
|
- set_fixed_size(state)
|
|
^ true/false set to fixed size, variable size
|
|
- set_end_button(info)
|
|
^ info is a table with:
|
|
* name: button name
|
|
* label: tooltip text
|
|
* icon: path to icon
|
|
* on_click(tabview): callback function
|
|
|
|
File: fst/dialog.lua
|
|
---------------------
|
|
Only one dialog can be shown at a time. If a dialog is closed it's parent is
|
|
gonna be activated and shown again.
|
|
|
|
dialog_create(name, cbf_formspec, cbf_button_handler, cbf_events)
|
|
^ create a dialog component
|
|
^ name: name of component (unique per ui)
|
|
^ cbf_formspec: function to be called to get formspec
|
|
function(dialogdata)
|
|
^ cbf_button_handler: function to handle buttons
|
|
function(dialog, fields)
|
|
^ cbf_events: function to handle events
|
|
function(dialog, event)
|
|
|
|
messagebox(name, message)
|
|
^ creates a message dialog
|
|
|
|
Class reference dialog:
|
|
|
|
methods:
|
|
- set_parent(parent)
|
|
^ set parent to attach a dialog to
|
|
^ parent: component to attach to
|
|
- show()
|
|
^ show dialog
|
|
- hide()
|
|
^ hide dialog
|
|
- delete()
|
|
^ delete dialog from ui
|
|
|
|
members:
|
|
- data
|
|
^ variable data attached to this dialog
|
|
- parent
|
|
^ parent component to return to on exit
|
|
|
|
File: fst/buttonbar.lua
|
|
-----------------------
|
|
|
|
buttonbar_create(name, pos, size, bgcolor, cbf_buttonhandler)
|
|
^ create a buttonbar
|
|
^ name: name of component (unique per ui)
|
|
^ pos: position relative to upper left of current shown formspec
|
|
{
|
|
x,
|
|
y
|
|
}
|
|
^ size: size of bar
|
|
{
|
|
x,
|
|
y
|
|
}
|
|
^ bgcolor: background color as `ColorString`
|
|
^ cbf_buttonhandler: function to be called on button pressed
|
|
function(fields)
|
|
|
|
Class reference buttonbar:
|
|
|
|
methods:
|
|
- add_button(name, caption, image, tooltip)
|
|
- show()
|
|
^ show buttonbar
|
|
- hide()
|
|
^ hide buttonbar
|
|
- delete()
|
|
^ delete buttonbar from ui
|
|
|
|
Developer doc:
|
|
==============
|
|
Skeleton for any component:
|
|
{
|
|
name = "some id", -- unique id
|
|
type = "toplevel", -- type of component
|
|
-- toplevel: component can be show without additional components
|
|
-- addon: component is an addon to be shown along toplevel component
|
|
hide = function(this) end, -- called to hide the component
|
|
show = function(this) end, -- called to show the component
|
|
delete = function(this) end, -- called to delete component from ui
|
|
handle_buttons = function(this,fields) -- called upon button press
|
|
handle_events = function(this,event) -- called upon event reception
|
|
get_formspec = function(this) -- has to return formspec to be displayed
|
|
}
|