Add optional text widget boundaries

This commit is contained in:
Wuzzy 2016-11-07 21:30:03 +01:00
parent d5736bda72
commit b0bec3da6a
2 changed files with 19 additions and 4 deletions

11
API.md
View File

@ -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.

View File

@ -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)))