Commit Graph

95 Commits

Author SHA1 Message Date
luk3yx
da5cbfd0fc Support font_size for labels etc 2025-03-03 14:35:18 +13:00
luk3yx
bea549ec31 Support "size" and "spacing" list styles
These are only supported in inline styles so that flow can calculate the
size of the elements without having to look through the rest of the
tree.
2025-03-03 13:51:25 +13:00
luk3yx
8f3c3b1deb Add window_position, window_padding, and window_anchor
Now flow can actually be used for HUDs
2025-02-21 18:38:25 +13:00
luk3yx
e3dc6d6750 Add on_key_enter callback and close_on_enter
Closes https://gitlab.com/luk3yx/minetest-flow/-/issues/4
2025-02-21 17:16:54 +13:00
luk3yx
7bad88cdcd Make copyright headers consistent 2025-02-21 16:49:23 +13:00
luk3yx
df077dda95 Split code into more files
I hope I haven't broken anything
2025-02-21 16:39:51 +13:00
luk3yx
03ba40fb58 Fix last commit 2025-02-10 15:28:42 +13:00
luk3yx
25fc58afb5 Fix inline styles on centred labels
"font_size" still doesn't work properly though
2025-02-10 15:27:03 +13:00
luk3yx
adbcc432b2 Allow getting value of hypertext input
This is probably not the best but is the simplest
2025-01-15 13:46:49 +13:00
luk3yx
710a380d46 Do not add empty style elements 2024-12-30 11:08:13 +13:00
luk3yx
f306f01f57 Luanti rename, add ButtonURL support 2024-11-08 15:52:39 +13:00
luk3yx
136f2b1637 Explain why string.len is used 2024-09-14 20:23:12 +12:00
luk3yx
4563382551 Prevent crash when using numbers as labels
Closes https://gitlab.com/luk3yx/minetest-flow/-/merge_requests/1
2024-09-14 20:17:03 +12:00
luk3yx
e0626bdb42 Relicense to LGPL 2.1+
I think it's unlikely that flow will be used in the main menu, but now
licensing (hopefully) won't be an issue
2024-08-28 17:47:06 +12:00
Jo5629
38f09bedf3
Add pwdfield to default_value_fields (#17)
`pwdfield[]` doesn't actually have a "default" value, but flow uses default_value_fields for form input handling, and this seems better than adding a special case for it.
2024-08-17 12:01:33 +12:00
luk3yx
4a185105c3 Fix logic 2024-08-13 18:50:41 +12:00
luk3yx
e27b34700a Remove unused code, add missing check 2024-08-13 18:49:29 +12:00
luk3yx
d990864834 Fix tests 2024-08-13 10:27:34 +12:00
luk3yx
150cef9399 Change prefix of auto-generated field names
Fixes behaviour with https://github.com/minetest/minetest/pull/14878

I've also added a workaround to preserve the current behaviour of
dropdowns that don't have index_event set.
2024-08-13 10:22:47 +12:00
Lazerbeak12345
1528e87864
feat: Embed support (#15)
Co-authored-by: luk3yx <luk3yx@users.noreply.github.com>
2024-07-25 19:40:18 +12:00
luk3yx
da87496e26 Add listcolors to invisible_elems 2024-06-30 21:32:35 +12:00
luk3yx
13136ab2dc Add enter_after_edit parameter to Field
Closes https://gitlab.com/luk3yx/minetest-flow/-/issues/3
2024-06-18 15:02:14 +12:00
luk3yx
a3523c7073 The example form doesn't show a field by default 2024-05-18 19:25:56 +12:00
luk3yx
45363ee461 Minor performance improvement
It turns out that formspec_ast.find is quite slow, moving the
field_close_on_enter code to the new shorthand elements insertion
improves performance (at least on my rudimentary benchmarks of the
example form) and probably negates the overhead added by the inline
styles/tooltips code.
2024-05-18 19:24:12 +12:00
luk3yx
b42a9dc1be Make luacheck happy 2024-05-15 10:52:13 +12:00
luk3yx
5215229d8c Add inline styles and tooltips 2024-05-15 10:49:36 +12:00
luk3yx
6c48ccd446 Fix crash 2023-08-12 10:57:13 +12:00
luk3yx
918002d505 Even more input validation 2023-08-08 21:55:09 +12:00
luk3yx
6745777bfc Make __newindex a table 2023-08-05 14:27:08 +12:00
luk3yx
f5b7bc796a Add additional input validation
This makes it harder to crash mods that aren't expecting malicious
formspec input.

I don't like the large amount of unit tests but I don't see how to avoid
them and arguably those tests should have been there beforehand anyway.
2023-08-04 19:05:53 +12:00
luk3yx
57c1e20ace Reset bgimg style when centering labels 2023-07-08 12:17:30 +12:00
luk3yx
eb7cd77a23 Fix tabheader positioning when both width and height specified
Tabheaders without both a width and height specified still won't work properly.
2023-07-05 14:30:53 +12:00
luk3yx
18538ffd46 Always centre labels with align_h = "centre"
Previously flow wouldn't correctly centre labels that it thought were
already as wide as the box they were in.
2023-07-04 09:38:10 +12:00
luk3yx
8a924bbc7c Bugfix 2023-06-16 14:08:51 +12:00
luk3yx
4046fed55f Translate labels before calculating their size
I've made a new naive_str_width function that tries to estimate the
width of UTF-8 text and is faster than strip_escape_sequences on LuaJIT
(I guess because there isn't an intermediate string being created).

Closes #4
2023-06-16 14:06:32 +12:00
Lazerbeak12345
5bb5dba625
feat: add locale support (#9)
Co-authored-by: luk3yx <luk3yx@users.noreply.github.com>
2023-06-11 22:10:19 +12:00
luk3yx
4ccabcef0f Bugfix 2023-06-07 22:46:32 +12:00
luk3yx
a1e7eff2ff Replace background[] with image[] in gui.Stack 2023-06-07 22:39:57 +12:00
luk3yx
c336abde7e Fix bgimg in embedded render_to_formspec_string 2023-06-07 21:51:09 +12:00
luk3yx
20b99efaf3 Fix comment 2023-06-01 17:09:19 +12:00
luk3yx
c32ea53fd1 Fix compatibility hack 2023-06-01 17:08:33 +12:00
luk3yx
b4a72ade99 Add compatibility hack 2023-06-01 17:05:25 +12:00
Lazerbeak12345
35fa361f8d
fix: bgcolor settings for root node (#7) 2023-06-01 16:56:03 +12:00
luk3yx
238e432251 Don't save fields with an empty name 2023-05-30 16:26:45 +12:00
Lazerbeak12345
435efd014e
feat(flow.widgets): Add nil gui object (#6)
Skipped over by rendering library, and not included in output formspec.
2023-04-19 16:54:04 +12:00
luk3yx
7b25bc6083 Remove outdated comment 2023-04-12 20:14:17 +12:00
luk3yx
000bd976c2 Fix license comment 2023-04-12 20:11:36 +12:00
luk3yx
cdb4e61ca9 Remove unused debug code 2023-04-08 13:29:10 +12:00
Lazerbeak12345
60d2674a45
feat: Add render_to_formspec_string function (#5)
Co-authored-by: luk3yx <luk3yx@users.noreply.github.com>
2023-04-08 13:13:44 +12:00
luk3yx
fa13e188f9 Increase formspec version to 6
This should mean that older clients still show images that have the
"middle" parameter set
2023-04-07 08:49:15 +12:00