Add optional text widget boundaries
This commit is contained in:
parent
d5736bda72
commit
b0bec3da6a
11
API.md
11
API.md
@ -404,10 +404,13 @@ this function may be deprecated if it isn't needed anymore.
|
|||||||
|
|
||||||
#### Parameters
|
#### Parameters
|
||||||
* `data`: Text to be written inside the widget
|
* `data`: Text to be written inside the widget
|
||||||
* `x`: Formspec X coordinate
|
* `x`: Formspec X coordinate (optional)
|
||||||
* `y`: Formspec Y coordinate
|
* `y`: Formspec Y coordinate (optional)
|
||||||
* `width`: Width of the widget in formspec units
|
* `width`: Width of the widget in formspec units (optional)
|
||||||
* `height`: Height of the widget in formspec units
|
* `height`: Height of the widget in formspec units (optional)
|
||||||
|
|
||||||
|
The default values for the optional parameters result in a widget which fills
|
||||||
|
nearly the entire entry page.
|
||||||
|
|
||||||
#### Return value
|
#### Return value
|
||||||
A string which contains a complete formspec definition building the widget.
|
A string which contains a complete formspec definition building the widget.
|
||||||
|
12
init.lua
12
init.lua
@ -424,6 +424,18 @@ doc.widgets = {}
|
|||||||
local text_id = 1
|
local text_id = 1
|
||||||
-- Scrollable freeform text
|
-- Scrollable freeform text
|
||||||
doc.widgets.text = function(data, x, y, width, height)
|
doc.widgets.text = function(data, x, y, width, height)
|
||||||
|
if x == nil then
|
||||||
|
x = doc.FORMSPEC.ENTRY_START_X
|
||||||
|
end
|
||||||
|
if y == nil then
|
||||||
|
y = doc.FORMSPEC.ENTRY_START_Y
|
||||||
|
end
|
||||||
|
if width == nil then
|
||||||
|
width = doc.FORMSPEC.ENTRY_WIDTH
|
||||||
|
end
|
||||||
|
if height == nil then
|
||||||
|
height = doc.FORMSPEC.ENTRY_HEIGHT
|
||||||
|
end
|
||||||
local baselength = 80
|
local baselength = 80
|
||||||
local widget_basewidth = doc.FORMSPEC.WIDTH
|
local widget_basewidth = doc.FORMSPEC.WIDTH
|
||||||
local linelength = math.max(20, math.floor(baselength * (width / widget_basewidth)))
|
local linelength = math.max(20, math.floor(baselength * (width / widget_basewidth)))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user