mirror of
https://github.com/Insality/druid
synced 2025-06-27 10:27:48 +02:00
73 lines
1.4 KiB
Lua
73 lines
1.4 KiB
Lua
local data = require("druid.data")
|
|
local settings = require("druid.settings")
|
|
|
|
local M = {}
|
|
M.interest = {
|
|
data.TRANSLATABLE,
|
|
data.LAYOUT_CHANGED
|
|
}
|
|
|
|
|
|
function M.init(instance, value, is_locale)
|
|
instance.last_color = gui.get_color(instance.node)
|
|
if is_locale then
|
|
instance.text_id = value
|
|
instance:translate()
|
|
else
|
|
instance:set_to(value or 0)
|
|
end
|
|
return instance
|
|
end
|
|
|
|
|
|
function M.translate(instance)
|
|
if instance.text_id then
|
|
instance:set_to(settings.get_text(instance.text_id))
|
|
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)
|
|
end
|
|
|
|
|
|
--- Set color
|
|
-- @param color
|
|
function M.set_color(instance, color)
|
|
instance.last_color = color
|
|
gui.set_color(instance.node, color)
|
|
end
|
|
|
|
|
|
--- Set alpha
|
|
-- @param alpha, number [0-1]
|
|
function M.set_alpha(instance, alpha)
|
|
instance.last_color.w = alpha
|
|
gui.set_color(instance.node, instance.last_color)
|
|
end
|
|
|
|
|
|
--- Set scale
|
|
-- @param scale
|
|
function M.set_scale(instance, scale)
|
|
instance.last_scale = scale
|
|
gui.set_scale(instance.node, scale)
|
|
end
|
|
|
|
|
|
--- Called when layout updated (rotate for example)
|
|
function M.on_layout_updated(instance)
|
|
if instance.last_color then
|
|
M.set_color(instance, instance.last_color)
|
|
end
|
|
if instance.last_scale then
|
|
M.set_scale(instance, instance.last_scale)
|
|
end
|
|
end
|
|
|
|
|
|
return M |