mirror of
https://github.com/Insality/druid.git
synced 2025-06-27 10:27:47 +02:00
Open button_* functions to call a button callbacks directly
This commit is contained in:
parent
b982bc8277
commit
8ddb6e4e60
@ -67,8 +67,8 @@ function M:init(node_or_node_id, callback, custom_args, anim_node)
|
|||||||
self.start_scale = gui.get_scale(self.anim_node)
|
self.start_scale = gui.get_scale(self.anim_node)
|
||||||
self.start_pos = gui.get_position(self.anim_node)
|
self.start_pos = gui.get_position(self.anim_node)
|
||||||
self.params = custom_args
|
self.params = custom_args
|
||||||
self.hover = self.druid:new_hover(node_or_node_id, self._on_button_hover)
|
self.hover = self.druid:new_hover(node_or_node_id, self.button_hover)
|
||||||
self.hover.on_mouse_hover:subscribe(self._on_button_mouse_hover)
|
self.hover.on_mouse_hover:subscribe(self.button_mouse_hover)
|
||||||
self.click_zone = nil
|
self.click_zone = nil
|
||||||
self.is_repeated_started = false
|
self.is_repeated_started = false
|
||||||
self.last_pressed_time = 0
|
self.last_pressed_time = 0
|
||||||
@ -184,7 +184,7 @@ function M:on_input(action_id, action)
|
|||||||
if self._is_html5_mode then
|
if self._is_html5_mode then
|
||||||
self._is_html5_listener_set = true
|
self._is_html5_listener_set = true
|
||||||
html5.set_interaction_listener(function()
|
html5.set_interaction_listener(function()
|
||||||
self:_on_button_click()
|
self:button_click()
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
return is_consume
|
return is_consume
|
||||||
@ -193,7 +193,7 @@ function M:on_input(action_id, action)
|
|||||||
-- While hold button, repeat rate pick from input.repeat_interval
|
-- While hold button, repeat rate pick from input.repeat_interval
|
||||||
if action.repeated then
|
if action.repeated then
|
||||||
if not self.on_repeated_click:is_empty() and self.can_action then
|
if not self.on_repeated_click:is_empty() and self.can_action then
|
||||||
self:_on_button_repeated_click()
|
self:button_repeated_click()
|
||||||
return is_consume
|
return is_consume
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -211,7 +211,7 @@ function M:on_input(action_id, action)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if press_time >= self.style.LONGTAP_TIME then
|
if press_time >= self.style.LONGTAP_TIME then
|
||||||
self:_on_button_hold(press_time)
|
self:button_hold(press_time)
|
||||||
return is_consume
|
return is_consume
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -326,18 +326,18 @@ end
|
|||||||
|
|
||||||
|
|
||||||
---@param hover_state boolean True if the hover state is active
|
---@param hover_state boolean True if the hover state is active
|
||||||
function M:_on_button_hover(hover_state)
|
function M:button_hover(hover_state)
|
||||||
self.style.on_hover(self, self.anim_node, hover_state)
|
self.style.on_hover(self, self.anim_node, hover_state)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
---@param hover_state boolean True if the hover state is active
|
---@param hover_state boolean True if the hover state is active
|
||||||
function M:_on_button_mouse_hover(hover_state)
|
function M:button_mouse_hover(hover_state)
|
||||||
self.style.on_mouse_hover(self, self.anim_node, hover_state)
|
self.style.on_mouse_hover(self, self.anim_node, hover_state)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
function M:_on_button_click()
|
function M:button_click()
|
||||||
if self._is_html5_mode then
|
if self._is_html5_mode then
|
||||||
self._is_html5_listener_set = false
|
self._is_html5_listener_set = false
|
||||||
html5.set_interaction_listener(nil)
|
html5.set_interaction_listener(nil)
|
||||||
@ -348,7 +348,7 @@ function M:_on_button_click()
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
function M:_on_button_repeated_click()
|
function M:button_repeated_click()
|
||||||
if not self.is_repeated_started then
|
if not self.is_repeated_started then
|
||||||
self.click_in_row = 0
|
self.click_in_row = 0
|
||||||
self.is_repeated_started = true
|
self.is_repeated_started = true
|
||||||
@ -360,7 +360,7 @@ function M:_on_button_repeated_click()
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
function M:_on_button_long_click()
|
function M:button_long_click()
|
||||||
self.click_in_row = 1
|
self.click_in_row = 1
|
||||||
local time = socket.gettime() - self.last_pressed_time
|
local time = socket.gettime() - self.last_pressed_time
|
||||||
self.on_long_click:trigger(self:get_context(), self.params, self, time)
|
self.on_long_click:trigger(self:get_context(), self.params, self, time)
|
||||||
@ -368,7 +368,7 @@ function M:_on_button_long_click()
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
function M:_on_button_double_click()
|
function M:button_double_click()
|
||||||
self.click_in_row = self.click_in_row + 1
|
self.click_in_row = self.click_in_row + 1
|
||||||
self.on_double_click:trigger(self:get_context(), self.params, self, self.click_in_row)
|
self.on_double_click:trigger(self:get_context(), self.params, self, self.click_in_row)
|
||||||
self.style.on_click(self, self.anim_node)
|
self.style.on_click(self, self.anim_node)
|
||||||
@ -376,7 +376,7 @@ end
|
|||||||
|
|
||||||
|
|
||||||
---@param press_time number Amount of time the button was held
|
---@param press_time number Amount of time the button was held
|
||||||
function M:_on_button_hold(press_time)
|
function M:button_hold(press_time)
|
||||||
self.on_hold_callback:trigger(self:get_context(), self.params, self, press_time)
|
self.on_hold_callback:trigger(self:get_context(), self.params, self, press_time)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -413,14 +413,14 @@ function M:_on_button_release()
|
|||||||
if is_long_click then
|
if is_long_click then
|
||||||
local is_hold_complete = (time - self.last_pressed_time) >= self.style.AUTOHOLD_TRIGGER
|
local is_hold_complete = (time - self.last_pressed_time) >= self.style.AUTOHOLD_TRIGGER
|
||||||
if is_hold_complete then
|
if is_hold_complete then
|
||||||
self:_on_button_long_click()
|
self:button_long_click()
|
||||||
else
|
else
|
||||||
self.on_click_outside:trigger(self:get_context(), self.params, self)
|
self.on_click_outside:trigger(self:get_context(), self.params, self)
|
||||||
end
|
end
|
||||||
elseif is_double_click then
|
elseif is_double_click then
|
||||||
self:_on_button_double_click()
|
self:button_double_click()
|
||||||
else
|
else
|
||||||
self:_on_button_click()
|
self:button_click()
|
||||||
end
|
end
|
||||||
|
|
||||||
self.last_released_time = time
|
self.last_released_time = time
|
||||||
|
Loading…
x
Reference in New Issue
Block a user