forked from minetest/minetest
-
Notifications
You must be signed in to change notification settings - Fork 1
/
fst_api.txt
177 lines (154 loc) · 5.32 KB
/
fst_api.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
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. Either a string or a function: (tabview) -> string
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
}