diff --git a/druid/component.lua b/druid/component.lua index ba0d834..2864aac 100644 --- a/druid/component.lua +++ b/druid/component.lua @@ -92,6 +92,7 @@ function Component.increase_input_priority(self) self._meta.increased_input_priority = true end + --- Reset input priority in current input stack -- @function component:reset_input_priority function Component.reset_input_priority(self) @@ -133,21 +134,23 @@ end -- @treturn Druid Druid instance with component context function Component.get_druid(self) local context = { _context = self } - return setmetatable(context, { __index = self:get_context().druid }) + return setmetatable(context, { __index = self._meta.druid }) end --- Setup component context and his style table -- @function component:setup_component +-- @tparam druid_instance table The parent druid instance -- @tparam context table Druid context. Usually it is self of script -- @tparam style table Druid style module -- @treturn Component Component itself -function Component.setup_component(self, context, style) +function Component.setup_component(self, druid_instance, context, style) self._meta = { template = nil, context = nil, nodes = nil, style = nil, + druid = druid_instance, increased_input_priority = false } diff --git a/druid/system/druid_instance.lua b/druid/system/druid_instance.lua index 93782d7..dbed6ba 100644 --- a/druid/system/druid_instance.lua +++ b/druid/system/druid_instance.lua @@ -61,7 +61,7 @@ end -- Create the component itself local function create(self, instance_class) local instance = instance_class() - instance:setup_component(self._context, self._style) + instance:setup_component(self, self._context, self._style) table.insert(self.components[const.ALL], instance) diff --git a/example/page/button.lua b/example/page/button.lua deleted file mode 100644 index e736935..0000000 --- a/example/page/button.lua +++ /dev/null @@ -1,53 +0,0 @@ -local sprite_style = require("druid.styles.sprites.style") - -local M = {} - - -local function usual_callback() - print("Usual callback") -end - -local function long_tap_callback(self, params, button, hold_time) - print("Long tap callback", hold_time) -end - -local function hold_callback(self, params, button, hold_time) - print("On hold callback", hold_time) -end - -local function repeated_callback(self, params, button, click_in_row) - print("Repeated callback", click_in_row) -end - -local function double_tap_callback(self, params, button, click_in_row) - print("Double tap callback", click_in_row) -end - - -local function setup_buttons(self) - self.druid:new_button("button_usual/button", usual_callback) - - local custom_style = self.druid:new_button("button_custom_style/button", usual_callback) - custom_style:set_style(sprite_style) - - local long_button = self.druid:new_button("button_long_tap/button", usual_callback) - long_button.on_hold_callback:subscribe(hold_callback) - long_button.on_long_click:subscribe(long_tap_callback) - self.druid:new_button("button_repeated_tap/button", usual_callback) - .on_repeated_click:subscribe(repeated_callback) - self.druid:new_button("button_double_tap/button", usual_callback) - .on_double_click:subscribe(double_tap_callback) - - local button_space = self.druid:new_button("button_key_trigger/button", usual_callback) - button_space:set_key_trigger("key_space") - button_space.on_long_click:subscribe(long_tap_callback) - button_space.on_double_click:subscribe(double_tap_callback) -end - - -function M.setup_page(self) - setup_buttons(self) -end - - -return M