diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2022-06-17 21:36:07 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2022-06-17 21:36:07 -0700 |
commit | efbbdfc58645dbee12a36a1a2f4c22054b969acc (patch) | |
tree | 692e08b469cf4c52c7dd2a1ee3a32bcf6760fcdf | |
parent | 0fb98d2ac9e35cde15a08f0fec3c7e99700325f3 (diff) | |
download | view.love-efbbdfc58645dbee12a36a1a2f4c22054b969acc.tar.gz |
affordance to adjust width for word wrap
-rw-r--r-- | icons.lua | 14 | ||||
-rw-r--r-- | main.lua | 30 |
2 files changed, 43 insertions, 1 deletions
diff --git a/icons.lua b/icons.lua index 8bfa67e..06ebf50 100644 --- a/icons.lua +++ b/icons.lua @@ -1,5 +1,19 @@ icon = {} +function icon.line_width(x, y) + love.graphics.setColor(0.7,0.7,0.7) + love.graphics.line(x+0,y+0, x+9,y+0) + love.graphics.line(x+0,y+1, x+9,y+1) + love.graphics.line(x+0,y+2, x+9,y+2) + love.graphics.line(x+0,y+3, x+9,y+3) + love.graphics.line(x+0,y+4, x+9,y+4) + love.graphics.line(x+0,y+5, x+9,y+5) + love.graphics.line(x+1,y+6, x+8,y+6) + love.graphics.line(x+2,y+7, x+7,y+7) + love.graphics.line(x+3,y+8, x+6,y+8) + love.graphics.line(x+4,y+9, x+5,y+9) +end + function icon.insert_drawing(x, y) love.graphics.setColor(0.7,0.7,0.7) love.graphics.rectangle('line', x,y, 12,12) diff --git a/main.lua b/main.lua index 6e0272f..ffe6838 100644 --- a/main.lua +++ b/main.lua @@ -93,6 +93,9 @@ Last_resize_time = nil -- blinking cursor Cursor_time = 0 +-- line-width indicator +Line_width_hover = nil + end -- App.initialize_globals function App.initialize(arg) @@ -216,6 +219,12 @@ function App.draw() end end + -- line-width indicator + button('line-width', {x=Margin_left+Line_width-4,y=Margin_top-10, w=10,h=10, color={1,1,1}, + icon = icon.line_width, + onpress1 = function() Line_width_hover = App.getTime() end, + }) + assert(Text.le1(Screen_top1, Cursor1)) Cursor_y = -1 local y = Margin_top @@ -228,6 +237,7 @@ function App.draw() Screen_bottom1.line = line_index if line.mode == 'text' and line.data == '' then line.y = y + -- insert new drawing button('draw', {x=4,y=y+4, w=12,h=12, color={1,1,0}, icon = icon.insert_drawing, onpress1 = function() @@ -238,7 +248,8 @@ function App.draw() end schedule_save() record_undo_event({before=Drawing.before, after=snapshot(line_index-1, line_index+1)}) - end}) + end + }) if Search_term == nil then if line_index == Cursor1.line then Text.draw_cursor(Margin_left, y) @@ -279,6 +290,18 @@ function App.update(dt) Last_resize_time = nil end end + -- update Line_width with some hysteresis while the indicator is dragged + if Line_width_hover then + if App.getTime() - Line_width_hover > 0.1 then + Line_width = App.mouse_x() - Margin_left + Text.redraw_all() + if App.mouse_down(1) then + Line_width_hover = App.getTime() + else + Line_width_hover = nil + end + end + end Drawing.update(dt) if Next_save and Next_save < App.getTime() then save_to_disk(Lines, Filename) @@ -296,6 +319,11 @@ function App.mousepressed(x,y, mouse_button) if Search_term then return end propagate_to_button_handlers(x,y, mouse_button) + -- we seem to sometimes get phantom clicks if the mouse moves down into text while adjusting line-width + if Line_width_hover then + Selection1 = {} + return + end for line_index,line in ipairs(Lines) do if line.mode == 'text' then if Text.in_line(line_index,line, x,y) then |