From 40dbc7134bae5cff48c2262d92721a3dd5394f84 Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Tue, 7 Feb 2012 23:10:29 +0100 Subject: Initial commit --- button.lua | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 button.lua (limited to 'button.lua') diff --git a/button.lua b/button.lua new file mode 100644 index 0000000..2374645 --- /dev/null +++ b/button.lua @@ -0,0 +1,27 @@ +local core = require((...):match("^(.+)%.[^%.]+") .. '.core') + +-- the widget +return function(title, x,y, w,h, draw) + -- Generate unique identifier for gui state update and querying. + local id = core.generateID() + + -- The widget mouse-state can be: + -- hot (mouse over widget), + -- active (mouse pressed on widget) or + -- normal (mouse not on widget and not pressed on widget). + -- + -- core.mouse.updateState(id, x,y,w,h) updates the state for this widget. + core.mouse.updateState(id, x,y,w,h) + + -- core.makeTabable makes the item focus on tab. Tab order is determied + -- by the order you call the widget functions. + core.makeTabable(id) + + -- core.registerDraw(id, drawfunction, drawfunction-arguments...) + -- shows widget when core.draw() is called. + core.registerDraw(id, draw or core.style.Button, title,x,y,w,h) + + return core.mouse.releasedOn(id) or + (core.keyboard.key == 'return' and core.hasKeyFocus(id)) +end + -- cgit v1.2.3-54-g00ecf