#58 fix get druid instance by name

This commit is contained in:
Insality 2020-05-07 23:48:37 +03:00
parent b9ebedbcf9
commit bb565432f3
3 changed files with 6 additions and 56 deletions

View File

@ -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
}

View File

@ -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)

View File

@ -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