From cf87c89cff261add71db47501b3bd860388e1006 Mon Sep 17 00:00:00 2001 From: Insality Date: Mon, 21 Sep 2020 00:00:00 +0300 Subject: [PATCH] Update grid usage at grid example page --- docs_md/changelog.md | 1 + druid/base/static_grid.lua | 2 +- druid/system/druid_instance.lua | 9 +++++++++ example/page/grid_page.lua | 23 +++++++++++++++++------ 4 files changed, 28 insertions(+), 7 deletions(-) diff --git a/docs_md/changelog.md b/docs_md/changelog.md index 7f397dc..809fa45 100644 --- a/docs_md/changelog.md +++ b/docs_md/changelog.md @@ -102,5 +102,6 @@ Druid 0.5.0: - **Fix #76:** Add params for lang text localization component - **Fix #79:** Fix druid:remove inside on_input callback - **Fix #80:** Fix hover set_enable typo function call +- _druid:create_ deprecated. Use _druid:new_ instead (for custom components) - Add `component.tempalte.lua` as template for Druid custom component diff --git a/druid/base/static_grid.lua b/druid/base/static_grid.lua index 8c8af2f..0e39fe8 100644 --- a/druid/base/static_grid.lua +++ b/druid/base/static_grid.lua @@ -46,7 +46,7 @@ function M.init(self, parent, element, in_row) self.node_size = gui.get_size(node) self.node_pivot = const.PIVOTS[gui.get_pivot(node)] - self.border = vmath.vector4(0) + self.border = vmath.vector4(0) -- Current grid content size self.border_offset = vmath.vector3(0) self.on_add_item = Event() diff --git a/druid/system/druid_instance.lua b/druid/system/druid_instance.lua index 0571e92..9106251 100644 --- a/druid/system/druid_instance.lua +++ b/druid/system/druid_instance.lua @@ -431,6 +431,15 @@ function Druid.new_grid(self, ...) end +--- Create staic grid basic component +-- @function druid:new_staic_grid +-- @tparam args ... grid init args +-- @treturn Component grid component +function Druid.new_static_grid(self, ...) + return Druid.create(self, static_grid, ...) +end + + --- Create scroll basic component -- @function druid:new_scroll -- @tparam args ... scroll init args diff --git a/example/page/grid_page.lua b/example/page/grid_page.lua index db6199b..b5330cf 100644 --- a/example/page/grid_page.lua +++ b/example/page/grid_page.lua @@ -5,11 +5,19 @@ local function add_node(self) local prefab = gui.get_node("grid_nodes_prefab") local cloned = gui.clone_tree(prefab) gui.set_enabled(cloned["grid_nodes_prefab"], true) - local index = #self.grid_nodes + 1 + local index = #self.grid_nodes.nodes + 1 gui.set_text(cloned["grid_nodes_text"], index) - local button = self.druid:new_button(cloned["grid_nodes_prefab"], function() - print(index) + local button = self.druid:new_button(cloned["grid_nodes_prefab"], function(_, params, button) + gui.delete_node(button.node) + self.druid:remove(button) + self.grid_nodes:remove(index) + for i = 1, #self.grid_node_buttons do + if self.grid_node_buttons[i] == button then + table.remove(self.grid_node_buttons, i) + break + end + end end) table.insert(self.grid_node_buttons, button) @@ -19,8 +27,8 @@ end local function clear_nodes(self) local nodes = self.grid_nodes.nodes - for i = 1, #nodes do - gui.delete_node(nodes[i]) + for i, node in pairs(nodes) do + gui.delete_node(node) end for i = 1, #self.grid_node_buttons do @@ -38,7 +46,10 @@ end function M.setup_page(self) - self.grid_nodes = self.druid:new_grid("grid_nodes", "grid_nodes_prefab", 5) + self.grid_nodes = self.druid:new_static_grid("grid_nodes", "grid_nodes_prefab", 5) + self.grid_nodes:set_position_function(function(node, pos) + gui.animate(node, "position", pos, gui.EASING_OUTSINE, 0.2) + end) self.grid_node_buttons = {} gui.set_enabled(gui.get_node("grid_nodes_prefab"), false)