mirror of
https://github.com/minetest/minetest.git
synced 2024-11-27 01:53:45 +01:00
Make the settings GUI more usable on Android (#13543)
This commit is contained in:
parent
d9f478cbfb
commit
a857c46e6e
@ -70,6 +70,7 @@ files["builtin/mainmenu"] = {
|
|||||||
|
|
||||||
read_globals = {
|
read_globals = {
|
||||||
"PLATFORM",
|
"PLATFORM",
|
||||||
|
"TOUCHSCREEN_GUI",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,12 +110,6 @@ add_page({
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
local tabsize = {
|
|
||||||
width = 15.5,
|
|
||||||
height= 12,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
local function load_settingtypes()
|
local function load_settingtypes()
|
||||||
local page = nil
|
local page = nil
|
||||||
local section = nil
|
local section = nil
|
||||||
@ -316,21 +310,26 @@ local function get_formspec(dialogdata)
|
|||||||
local page_id = dialogdata.page_id or "most_used"
|
local page_id = dialogdata.page_id or "most_used"
|
||||||
local page = filtered_page_by_id[page_id]
|
local page = filtered_page_by_id[page_id]
|
||||||
|
|
||||||
local scrollbar_w = 0.4
|
local extra_h = 1 -- not included in tabsize.height
|
||||||
if PLATFORM == "Android" then
|
local tabsize = {
|
||||||
scrollbar_w = 0.6
|
width = TOUCHSCREEN_GUI and 16.5 or 15.5,
|
||||||
end
|
height = TOUCHSCREEN_GUI and (10 - extra_h) or 12,
|
||||||
|
}
|
||||||
|
|
||||||
local left_pane_width = 4.25
|
local scrollbar_w = TOUCHSCREEN_GUI and 0.6 or 0.4
|
||||||
|
|
||||||
|
local left_pane_width = TOUCHSCREEN_GUI and 4.5 or 4.25
|
||||||
local search_width = left_pane_width + scrollbar_w - (0.75 * 2)
|
local search_width = left_pane_width + scrollbar_w - (0.75 * 2)
|
||||||
|
|
||||||
|
local technical_names_w = TOUCHSCREEN_GUI and 6 or 5
|
||||||
local show_technical_names = core.settings:get_bool("show_technical_names")
|
local show_technical_names = core.settings:get_bool("show_technical_names")
|
||||||
|
|
||||||
formspec_show_hack = not formspec_show_hack
|
formspec_show_hack = not formspec_show_hack
|
||||||
|
|
||||||
local fs = {
|
local fs = {
|
||||||
"formspec_version[6]",
|
"formspec_version[6]",
|
||||||
"size[", tostring(tabsize.width), ",", tostring(tabsize.height + 1), "]",
|
"size[", tostring(tabsize.width), ",", tostring(tabsize.height + extra_h), "]",
|
||||||
|
TOUCHSCREEN_GUI and "padding[0.01,0.01]" or "",
|
||||||
"bgcolor[#0000]",
|
"bgcolor[#0000]",
|
||||||
|
|
||||||
-- HACK: this is needed to allow resubmitting the same formspec
|
-- HACK: this is needed to allow resubmitting the same formspec
|
||||||
@ -340,9 +339,11 @@ local function get_formspec(dialogdata)
|
|||||||
|
|
||||||
"button[0,", tostring(tabsize.height + 0.2), ";3,0.8;back;", fgettext("Back"), "]",
|
"button[0,", tostring(tabsize.height + 0.2), ";3,0.8;back;", fgettext("Back"), "]",
|
||||||
|
|
||||||
("box[%f,%f;5,0.8;#0000008C]"):format(tabsize.width - 5, tabsize.height + 0.2),
|
("box[%f,%f;%f,0.8;#0000008C]"):format(
|
||||||
"checkbox[", tostring(tabsize.width - 4.75), ",", tostring(tabsize.height + 0.6), ";show_technical_names;",
|
tabsize.width - technical_names_w, tabsize.height + 0.2, technical_names_w),
|
||||||
fgettext("Show technical names"), ";", tostring(show_technical_names), "]",
|
("checkbox[%f,%f;show_technical_names;%s;%s]"):format(
|
||||||
|
tabsize.width - technical_names_w + 0.25, tabsize.height + 0.6,
|
||||||
|
fgettext("Show technical names"), tostring(show_technical_names)),
|
||||||
|
|
||||||
"field[0.25,0.25;", tostring(search_width), ",0.75;search_query;;",
|
"field[0.25,0.25;", tostring(search_width), ",0.75;search_query;;",
|
||||||
core.formspec_escape(dialogdata.query or ""), "]",
|
core.formspec_escape(dialogdata.query or ""), "]",
|
||||||
|
@ -153,6 +153,13 @@ ScriptApiBase::ScriptApiBase(ScriptingType type):
|
|||||||
lua_pushstring(m_luastack, porting::getPlatformName());
|
lua_pushstring(m_luastack, porting::getPlatformName());
|
||||||
lua_setglobal(m_luastack, "PLATFORM");
|
lua_setglobal(m_luastack, "PLATFORM");
|
||||||
|
|
||||||
|
#ifdef HAVE_TOUCHSCREENGUI
|
||||||
|
lua_pushboolean(m_luastack, true);
|
||||||
|
#else
|
||||||
|
lua_pushboolean(m_luastack, false);
|
||||||
|
#endif
|
||||||
|
lua_setglobal(m_luastack, "TOUCHSCREEN_GUI");
|
||||||
|
|
||||||
// Make sure Lua uses the right locale
|
// Make sure Lua uses the right locale
|
||||||
setlocale(LC_NUMERIC, "C");
|
setlocale(LC_NUMERIC, "C");
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user