pxl8/demo/mod/menu.fnl

51 lines
915 B
Fennel

(local pxl8 (require :pxl8))
(var paused false)
(fn show []
(set paused true)
(pxl8.set_relative_mouse_mode false)
(pxl8.center_cursor))
(fn hide []
(set paused false)
(pxl8.set_relative_mouse_mode true))
(fn toggle []
(if paused
(hide)
(show)))
(fn update []
(let [(mx my) (pxl8.get_mouse_pos)]
(pxl8.gui_cursor_move mx my))
(when (pxl8.mouse_pressed 1)
(pxl8.gui_cursor_down))
(when (pxl8.mouse_released 1)
(pxl8.gui_cursor_up)))
(fn draw []
(pxl8.gui_begin_frame)
(pxl8.gui_window 200 100 240 140 "pxl8 demo")
(when (pxl8.gui_button 1 215 145 210 32 "Resume")
(hide))
(when (pxl8.gui_button 2 215 185 210 32 "Quit")
(pxl8.quit))
(if (pxl8.gui_is_hovering)
(pxl8.set_cursor :hand)
(pxl8.set_cursor :arrow))
(pxl8.gui_end_frame))
{:is-paused (fn [] paused)
:toggle toggle
:show show
:hide hide
:update update
:draw draw}