can setup text max width (#14)

This commit is contained in:
Maxim Tuprikov 2019-03-30 01:01:24 +03:00 committed by GitHub
parent e6ac9e5725
commit 8be103111b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 2 deletions

View File

@ -9,9 +9,12 @@ M.interest = {
} }
function M.init(instance, node, value, is_locale) function M.init(instance, node, value, is_locale, max_width)
instance.max_width = max_width
instance.node = helper.get_node(node) instance.node = helper.get_node(node)
instance.start_scale = gui.get_scale(instance.node)
instance.last_color = gui.get_color(instance.node) instance.last_color = gui.get_color(instance.node)
if is_locale then if is_locale then
instance.text_id = value instance.text_id = value
instance:translate() instance:translate()
@ -29,11 +32,29 @@ function M.translate(instance)
end end
--- Setup scale x, but can only be smaller, than start text scale
local function setup_max_width(instance)
local metrics = gui.get_text_metrics_from_node(instance.node)
local cur_scale = gui.get_scale(instance.node)
if metrics.width * cur_scale.x > instance.max_width then
local scale_modifier = instance.max_width / metrics.width
scale_modifier = math.min(scale_modifier, instance.start_scale.x)
local new_scale = vmath.vector3(scale_modifier, scale_modifier, cur_scale.z)
gui.set_scale(instance.node, new_scale)
end
end
--- Set text to text field --- Set text to text field
-- @param set_to - set value to text field -- @param set_to - set value to text field
function M.set_to(instance, set_to) function M.set_to(instance, set_to)
instance.last_value = set_to instance.last_value = set_to
gui.set_text(instance.node, set_to) gui.set_text(instance.node, set_to)
if instance.max_width then
setup_max_width(instance)
end
end end

View File

@ -43,7 +43,7 @@ function init(self)
print("On android back", params) print("On android back", params)
end, 2) end, 2)
self.druid:new_text("text_2", "Simple text") self.druid:new_text("text_2", "Simple text", false, 400)
self.druid:new_text("text_3", "locale_text", true) self.druid:new_text("text_3", "locale_text", true)
self.druid:new_timer("text_1", 5, 0, function() self.druid:new_timer("text_1", 5, 0, function()