about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2023-12-18 21:55:14 -0800
committerKartik K. Agaram <vc@akkartik.com>2023-12-18 21:55:14 -0800
commit4b6a8aaba65c404a4acdcaa128a83285bee12a27 (patch)
tree34cb38a9a2904f612f3ea8609809e60c8d9e1257
parent02966ebb0bd421ed22687e52080e1c7387e93614 (diff)
parent81883d7dcaad04bcc335043db45b2f6fb2b16801 (diff)
downloadtext.love-4b6a8aaba65c404a4acdcaa128a83285bee12a27.tar.gz
Merge lines.love
-rw-r--r--button.lua6
-rw-r--r--reference.md19
-rw-r--r--source_text.lua2
3 files changed, 14 insertions, 13 deletions
diff --git a/button.lua b/button.lua
index 36923e2..df83704 100644
--- a/button.lua
+++ b/button.lua
@@ -9,8 +9,10 @@
 
 -- 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)
-  love.graphics.rectangle('fill', params.x,params.y, params.w,params.h, 5,5)
+  if params.bg then
+    love.graphics.setColor(params.bg.r, params.bg.g, params.bg.b, params.bg.a)
+    love.graphics.rectangle('fill', params.x,params.y, params.w,params.h, 5,5)
+  end
   if params.icon then params.icon(params) end
   table.insert(State.button_handlers, params)
 end
diff --git a/reference.md b/reference.md
index 4ef06a5..5f2d4d3 100644
--- a/reference.md
+++ b/reference.md
@@ -266,22 +266,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)`
 
diff --git a/source_text.lua b/source_text.lua
index dac2820..a1c7e6c 100644
--- a/source_text.lua
+++ b/source_text.lua
@@ -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