mirror of
https://github.com/Insality/druid.git
synced 2025-06-27 02:17:52 +02:00
99 lines
2.5 KiB
Lua
99 lines
2.5 KiB
Lua
local druid = require("druid.druid")
|
|
|
|
|
|
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 check_function(self)
|
|
self._some_test_value = self._some_test_value or 0
|
|
self._some_test_value = self._some_test_value + 1
|
|
|
|
return self._some_test_value % 2 == 0
|
|
end
|
|
|
|
|
|
local function failure_check_callback(self)
|
|
gui.set_text(gui.get_node("text_custom_result"), "Failure callback: true")
|
|
end
|
|
|
|
|
|
local function check_clicked_callback(self)
|
|
local node = gui.get_node("text_custom_result")
|
|
gui.set_text(node, "Failure callback: false")
|
|
|
|
gui.set_scale(node, vmath.vector3(0.75))
|
|
gui.animate(node, gui.PROP_SCALE, 0.5, gui.EASING_OUTSINE, 0.2)
|
|
end
|
|
|
|
|
|
local function setup_buttons(self)
|
|
self.druid:new_button("button_usual/button", usual_callback)
|
|
|
|
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)
|
|
|
|
-- Button with another node for animating
|
|
self.druid:new_button("button_anim/button", usual_callback, nil, "anim_node_icon")
|
|
|
|
self.druid:new_button("button_custom_check/button", check_clicked_callback)
|
|
:set_check_function(check_function, failure_check_callback)
|
|
end
|
|
|
|
|
|
function init(self)
|
|
self.druid = druid.new(self)
|
|
setup_buttons(self)
|
|
end
|
|
|
|
|
|
function final(self)
|
|
self.druid:final()
|
|
end
|
|
|
|
|
|
function update(self, dt)
|
|
self.druid:update(dt)
|
|
end
|
|
|
|
|
|
function on_message(self, message_id, message, sender)
|
|
self.druid:on_message(message_id, message, sender)
|
|
end
|
|
|
|
|
|
function on_input(self, action_id, action)
|
|
return self.druid:on_input(action_id, action)
|
|
end
|