diff --git a/druid/base/android_back.lua b/druid/base/android_back.lua index a237675..4202811 100644 --- a/druid/base/android_back.lua +++ b/druid/base/android_back.lua @@ -1,11 +1,30 @@ +local data = require("druid.data") + local M = {} +M.interest = { + data.ON_INPUT +} + + +function M.init(instance, params) + -- TODO: first arg store as node. Find way to escape this + local callback = instance.node + instance.event = data.A_ANDR_BACK + instance.callback = callback + instance.params = params +end + + --- input handler -- @param action_id - input action id -- @param action - input action function M.on_input(instance, action_id, action) - instance.callback(instance.parent.parent) - return true + if action[data.RELEASED] then + instance.callback(instance.parent.parent, instance.params) + end + return true end + return M diff --git a/druid/druid.lua b/druid/druid.lua index 8f1da78..4d734de 100644 --- a/druid/druid.lua +++ b/druid/druid.lua @@ -9,9 +9,9 @@ local STRING = "string" local components = { -- basic button = require("druid.base.button"), + android_back = require("druid.base.android_back"), text = require("druid.base.text"), timer = require("druid.base.timer"), - -- android_back = require("druid.base.android_back"), } diff --git a/example/example.gui.gui_script b/example/example.gui.gui_script index 34b54fe..41cee78 100644 --- a/example/example.gui.gui_script +++ b/example/example.gui.gui_script @@ -30,6 +30,11 @@ function init(self) print("On button 3") end) + + self.druid:new_android_back(function(self, params) + print("On android back", params) + end, 2) + self.druid:new_text("text_2", "Simple text") self.druid:new_text("text_3", "locale_text", true) @@ -37,7 +42,6 @@ function init(self) print("On timer end") end) - end function update(self, dt) diff --git a/input/game.input_binding b/input/game.input_binding index 8ed1d4e..4d43ca9 100644 --- a/input/game.input_binding +++ b/input/game.input_binding @@ -1,3 +1,11 @@ +key_trigger { + input: KEY_BACKSPACE + action: "back" +} +key_trigger { + input: KEY_BACK + action: "back" +} mouse_trigger { input: MOUSE_BUTTON_1 action: "touch"