diff options
Diffstat (limited to 'button.lua')
-rw-r--r-- | button.lua | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/button.lua b/button.lua index 4cafc86..4c7fe0b 100644 --- a/button.lua +++ b/button.lua @@ -3,19 +3,23 @@ -- If the handler returns true, it'll prevent any further processing of the -- event. -Button_handlers = {} - -- draw button and queue up event handlers -function button(name, params) +function button(State, name, params) + if State.button_handlers == nil then + State.button_handlers = {} + end love.graphics.setColor(params.color[1], params.color[2], params.color[3]) love.graphics.rectangle('fill', params.x,params.y, params.w,params.h, 5,5) if params.icon then params.icon(params.x, params.y) end - table.insert(Button_handlers, params) + table.insert(State.button_handlers, params) end -- process button event handlers -function propagate_to_button_handlers(x, y, mouse_button) - for _,ev in ipairs(Button_handlers) do +function propagate_to_button_handlers(State, x, y, mouse_button) + if State.button_handlers == nil then + return + end + for _,ev in ipairs(State.button_handlers) do if x>ev.x and x<ev.x+ev.w and y>ev.y and y<ev.y+ev.h then if ev.onpress1 and mouse_button == 1 then return ev.onpress1() |