button.lua 583 B

1234567891011121314151617181920212223242526272829303132
  1. local text = require "text"
  2. local button = text:extend()
  3. button.event_fn = function () end
  4. -- lynx.button(text, event_fn, params)
  5. -- text: string
  6. -- event_fn: function
  7. -- params: table
  8. --
  9. function button:new(_text, event_fn, params)
  10. text.new(self, _text, params)
  11. if event_fn then
  12. self.event_fn = event_fn
  13. end
  14. end
  15. function button:input(menu, key, state)
  16. if menu.funcs.simple_key(key) == "enter" and state == "pressed" then
  17. self:event_fn(menu)
  18. end
  19. end
  20. function button:mouse(menu, x, y, btn)
  21. if btn == 1 then
  22. self:event_fn(menu)
  23. end
  24. end
  25. return button