make button backgrounds optional
This commit is contained in:
parent
445ce2d220
commit
0c4730dffc
|
@ -9,7 +9,9 @@
|
|||
|
||||
-- draw button and queue up event handlers
|
||||
function button(State, name, params)
|
||||
love.graphics.setColor(params.bg.r, params.bg.g, params.bg.b, params.bg.a)
|
||||
if params.bg then
|
||||
love.graphics.setColor(params.bg.r, params.bg.g, params.bg.b, params.bg.a)
|
||||
end
|
||||
love.graphics.rectangle('fill', params.x,params.y, params.w,params.h, 5,5)
|
||||
if params.icon then params.icon(params) end
|
||||
table.insert(State.button_handlers, params)
|
||||
|
|
19
reference.md
19
reference.md
|
@ -277,22 +277,21 @@ The following facilities help set these things up:
|
|||
* `button` creates a single button. The syntax is:
|
||||
|
||||
```
|
||||
button(state, name, {x=..., y=..., w=..., h=..., color={r,g,b},
|
||||
button(state, name, {x=..., y=..., w=..., h=..., bg={r,g,b},
|
||||
icon = function({x=..., y=..., w=..., h=...}) ... end,
|
||||
onpress1 = ...
|
||||
})
|
||||
```
|
||||
|
||||
Call this either directly or indirectly from `App.draw`. It will paint a
|
||||
rectangle to the screen with top-left at (x,y), dimensions w×h pixels in the
|
||||
specified `color`. It will then overlay any drawing instructions within
|
||||
`icon` atop it. The `icon` callback will receive a table containing the same
|
||||
x/y/w/h.
|
||||
Call this either directly or indirectly from `App.draw`. It will assign a
|
||||
rectangle with the given dimensions and trigger the provided (zero-arg)
|
||||
`onpress1` callback when the primary mouse button is clicked within.
|
||||
It will also optionally paint the rectangle with the specified background
|
||||
color `bg` and a foreground described by the `icon` callback (which will
|
||||
receive the same dimensions).
|
||||
|
||||
The rectangle also registers within `state` the `onpress1` callback (without
|
||||
any arguments) when mouse button 1 is clicked on it. This way you can see
|
||||
everything about a button in one place. Create as many buttons as you like
|
||||
within a single shared `state`.
|
||||
This way you can see everything about a button in one place. Create as many
|
||||
buttons as you like within a single shared `state`.
|
||||
|
||||
* `mouse_press_consumed_by_any_button(state, x,y, mouse_button)`
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ function Text.draw(State, line_index, y, startpos, hide_cursor, show_line_number
|
|||
local s,e,filename = unpack(link_offsets)
|
||||
local lo, hi = Text.clip_wikiword_with_screen_line(line, line_cache, i, s, e)
|
||||
if lo then
|
||||
button(State, 'link', {x=State.left+lo, y=y, w=hi-lo, h=State.line_height, bg={r=1,g=1,b=1},
|
||||
button(State, 'link', {x=State.left+lo, y=y, w=hi-lo, h=State.line_height,
|
||||
icon = icon.hyperlink_decoration,
|
||||
onpress1 = function()
|
||||
if file_exists(filename) then
|
||||
|
|
Loading…
Reference in New Issue