Update text multiline sizing

This commit is contained in:
Insality 2020-03-13 16:03:19 +03:00
parent 53a77c0fcb
commit 5ef9e6fa65

View File

@ -9,6 +9,16 @@ local component = require("druid.component")
local M = component.create("text") local M = component.create("text")
local function update_text_size(self)
local size = vmath.vector3(
self.start_size.x * (self.start_scale.x / self.scale.x),
self.start_size.y * (self.start_scale.y / self.scale.y),
self.start_size.z
)
gui.set_size(self.node, size)
end
function M.init(self, node, value, no_adjust) function M.init(self, node, value, no_adjust)
self.node = self:get_node(node) self.node = self:get_node(node)
self.start_pivot = gui.get_pivot(self.node) self.start_pivot = gui.get_pivot(self.node)
@ -19,6 +29,7 @@ function M.init(self, node, value, no_adjust)
self.start_scale = gui.get_scale(self.node) self.start_scale = gui.get_scale(self.node)
self.scale = gui.get_scale(self.node) self.scale = gui.get_scale(self.node)
self.start_size = gui.get_size(self.node)
self.text_area = gui.get_size(self.node) self.text_area = gui.get_size(self.node)
self.text_area.x = self.text_area.x * self.start_scale.x self.text_area.x = self.text_area.x * self.start_scale.x
self.text_area.y = self.text_area.y * self.start_scale.y self.text_area.y = self.text_area.y * self.start_scale.y
@ -53,6 +64,8 @@ local function update_text_area_size(self)
gui.set_scale(self.node, new_scale) gui.set_scale(self.node, new_scale)
self.scale = new_scale self.scale = new_scale
update_text_size(self)
self.on_update_text_scale:trigger(self:get_context(), new_scale) self.on_update_text_scale:trigger(self:get_context(), new_scale)
end end