mirror of
https://github.com/Insality/druid.git
synced 2025-06-27 10:27:47 +02:00
can setup text max width (#14)
This commit is contained in:
parent
e6ac9e5725
commit
8be103111b
@ -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.start_scale = gui.get_scale(instance.node)
|
||||
instance.last_color = gui.get_color(instance.node)
|
||||
|
||||
if is_locale then
|
||||
instance.text_id = value
|
||||
instance:translate()
|
||||
@ -29,11 +32,29 @@ function M.translate(instance)
|
||||
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
|
||||
-- @param set_to - set value to text field
|
||||
function M.set_to(instance, set_to)
|
||||
instance.last_value = set_to
|
||||
gui.set_text(instance.node, set_to)
|
||||
|
||||
if instance.max_width then
|
||||
setup_max_width(instance)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
@ -43,7 +43,7 @@ function init(self)
|
||||
print("On android back", params)
|
||||
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_timer("text_1", 5, 0, function()
|
||||
|
Loading…
x
Reference in New Issue
Block a user