diff --git a/drawing.lua b/drawing.lua index 7ebf177..19bdad0 100644 --- a/drawing.lua +++ b/drawing.lua @@ -8,13 +8,13 @@ require 'drawing_tests' -- into 256 parts. function Drawing.draw(line) local pmx,pmy = App.mouse_x(), App.mouse_y() - if pmx < Margin_left+Line_width and pmy > line.y and pmy < line.y+Drawing.pixels(line.h) then + if pmx < Line_width and pmy > line.y and pmy < line.y+Drawing.pixels(line.h) then love.graphics.setColor(0.75,0.75,0.75) - love.graphics.rectangle('line', Margin_left,line.y, Line_width,Drawing.pixels(line.h)) + love.graphics.rectangle('line', Margin_left,line.y, Line_width-Margin_left,Drawing.pixels(line.h)) if icon[Current_drawing_mode] then - icon[Current_drawing_mode](Margin_left+Line_width-22, line.y+4) + icon[Current_drawing_mode](Line_width-22, line.y+4) else - icon[Previous_drawing_mode](Margin_left+Line_width-22, line.y+4) + icon[Previous_drawing_mode](Line_width-22, line.y+4) end if App.mouse_down(1) and love.keyboard.isDown('h') then @@ -204,7 +204,7 @@ end function Drawing.in_drawing(drawing, x,y) if drawing.y == nil then return false end -- outside current page - return y >= drawing.y and y < drawing.y + Drawing.pixels(drawing.h) and x >= Margin_left and x < Margin_left+Line_width + return y >= drawing.y and y < drawing.y + Drawing.pixels(drawing.h) and x >= Margin_left and x < Line_width end function Drawing.mouse_pressed(drawing, x,y, button) @@ -685,10 +685,10 @@ function Drawing.near(point, x,y) end function Drawing.pixels(n) -- parts to pixels - return math.floor(n*Line_width/256) + return math.floor(n*(Line_width-Margin_left)/256) end function Drawing.coord(n) -- pixels to parts - return math.floor(n*256/Line_width) + return math.floor(n*256/(Line_width-Margin_left)) end function table.find(h, x) diff --git a/drawing_tests.lua b/drawing_tests.lua index e17b0bd..2625b7d 100644 --- a/drawing_tests.lua +++ b/drawing_tests.lua @@ -26,7 +26,7 @@ function test_draw_line() Filename = 'foo' App.screen.init{width=Margin_left+300, height=300} Lines = load_array{'```lines', '```', ''} - Line_width = 256 -- drawing coordinates 1:1 with pixels + Line_width = Margin_left+256 -- drawing coordinates 1:1 with pixels Current_drawing_mode = 'line' App.draw() check_eq(#Lines, 2, 'F - test_draw_line/baseline/#lines') @@ -70,7 +70,7 @@ function test_draw_horizontal_line() -- display a drawing followed by a line of text (you shouldn't ever have a drawing right at the end) App.screen.init{width=Margin_left+300, height=300} Lines = load_array{'```lines', '```', ''} - Line_width = 256 -- drawing coordinates 1:1 with pixels + Line_width = Margin_left+256 -- drawing coordinates 1:1 with pixels Current_drawing_mode = 'manhattan' App.draw() check_eq(#Lines, 2, 'F - test_draw_horizontal_line/baseline/#lines') @@ -98,7 +98,7 @@ function test_draw_circle() -- display a drawing followed by a line of text (you shouldn't ever have a drawing right at the end) App.screen.init{width=Margin_left+300, height=300} Lines = load_array{'```lines', '```', ''} - Line_width = 256 -- drawing coordinates 1:1 with pixels + Line_width = Margin_left+256 -- drawing coordinates 1:1 with pixels Current_drawing_mode = 'line' App.draw() check_eq(#Lines, 2, 'F - test_draw_circle/baseline/#lines') @@ -126,7 +126,7 @@ function test_keys_do_not_affect_shape_when_mouse_up() -- display a drawing followed by a line of text (you shouldn't ever have a drawing right at the end) App.screen.init{width=Margin_left+300, height=300} Lines = load_array{'```lines', '```', ''} - Line_width = 256 -- drawing coordinates 1:1 with pixels + Line_width = Margin_left+256 -- drawing coordinates 1:1 with pixels Current_drawing_mode = 'line' App.draw() -- hover over drawing and press 'o' without holding mouse @@ -142,7 +142,7 @@ function test_draw_circle_mid_stroke() -- display a drawing followed by a line of text (you shouldn't ever have a drawing right at the end) App.screen.init{width=Margin_left+300, height=300} Lines = load_array{'```lines', '```', ''} - Line_width = 256 -- drawing coordinates 1:1 with pixels + Line_width = Margin_left+256 -- drawing coordinates 1:1 with pixels Current_drawing_mode = 'line' App.draw() check_eq(#Lines, 2, 'F - test_draw_circle_mid_stroke/baseline/#lines') @@ -170,7 +170,7 @@ function test_draw_arc() -- display a drawing followed by a line of text (you shouldn't ever have a drawing right at the end) App.screen.init{width=Margin_left+300, height=300} Lines = load_array{'```lines', '```', ''} - Line_width = 256 -- drawing coordinates 1:1 with pixels + Line_width = Margin_left+256 -- drawing coordinates 1:1 with pixels Current_drawing_mode = 'circle' App.draw() check_eq(#Lines, 2, 'F - test_draw_arc/baseline/#lines') @@ -201,7 +201,7 @@ function test_draw_polygon() -- display a drawing followed by a line of text (you shouldn't ever have a drawing right at the end) App.screen.init{width=Margin_left+300, height=300} Lines = load_array{'```lines', '```', ''} - Line_width = 256 -- drawing coordinates 1:1 with pixels + Line_width = Margin_left+256 -- drawing coordinates 1:1 with pixels App.draw() check_eq(Current_drawing_mode, 'line', 'F - test_draw_polygon/baseline/drawing_mode') check_eq(#Lines, 2, 'F - test_draw_polygon/baseline/#lines') @@ -239,7 +239,7 @@ function test_draw_rectangle() -- display a drawing followed by a line of text (you shouldn't ever have a drawing right at the end) App.screen.init{width=Margin_left+300, height=300} Lines = load_array{'```lines', '```', ''} - Line_width = 256 -- drawing coordinates 1:1 with pixels + Line_width = Margin_left+256 -- drawing coordinates 1:1 with pixels App.draw() check_eq(Current_drawing_mode, 'line', 'F - test_draw_rectangle/baseline/drawing_mode') check_eq(#Lines, 2, 'F - test_draw_rectangle/baseline/#lines') @@ -283,7 +283,7 @@ function test_draw_rectangle_intermediate() -- display a drawing followed by a line of text (you shouldn't ever have a drawing right at the end) App.screen.init{width=Margin_left+300, height=300} Lines = load_array{'```lines', '```', ''} - Line_width = 256 -- drawing coordinates 1:1 with pixels + Line_width = Margin_left+256 -- drawing coordinates 1:1 with pixels App.draw() check_eq(Current_drawing_mode, 'line', 'F - test_draw_rectangle_intermediate/baseline/drawing_mode') check_eq(#Lines, 2, 'F - test_draw_rectangle_intermediate/baseline/#lines') @@ -319,7 +319,7 @@ function test_draw_square() -- display a drawing followed by a line of text (you shouldn't ever have a drawing right at the end) App.screen.init{width=Margin_left+300, height=300} Lines = load_array{'```lines', '```', ''} - Line_width = 256 -- drawing coordinates 1:1 with pixels + Line_width = Margin_left+256 -- drawing coordinates 1:1 with pixels App.draw() check_eq(Current_drawing_mode, 'line', 'F - test_draw_square/baseline/drawing_mode') check_eq(#Lines, 2, 'F - test_draw_square/baseline/#lines') @@ -363,7 +363,7 @@ function test_name_point() Filename = 'foo' App.screen.init{width=Margin_left+300, height=300} Lines = load_array{'```lines', '```', ''} - Line_width = 256 -- drawing coordinates 1:1 with pixels + Line_width = Margin_left+256 -- drawing coordinates 1:1 with pixels Current_drawing_mode = 'line' App.draw() -- draw a line @@ -406,7 +406,7 @@ function test_move_point() Filename = 'foo' App.screen.init{width=Margin_left+300, height=300} Lines = load_array{'```lines', '```', ''} - Line_width = 256 -- drawing coordinates 1:1 with pixels + Line_width = Margin_left+256 -- drawing coordinates 1:1 with pixels Current_drawing_mode = 'line' App.draw() App.run_after_mouse_press(Margin_left+5, Margin_top+Drawing_padding_top+6, 1) @@ -463,7 +463,7 @@ function test_move_point_on_manhattan_line() Filename = 'foo' App.screen.init{width=Margin_left+300, height=300} Lines = load_array{'```lines', '```', ''} - Line_width = 256 -- drawing coordinates 1:1 with pixels + Line_width = Margin_left+256 -- drawing coordinates 1:1 with pixels Current_drawing_mode = 'manhattan' App.draw() App.run_after_mouse_press(Margin_left+5, Margin_top+Drawing_padding_top+6, 1) @@ -489,7 +489,7 @@ function test_delete_lines_at_point() Filename = 'foo' App.screen.init{width=Margin_left+300, height=300} Lines = load_array{'```lines', '```', ''} - Line_width = 256 -- drawing coordinates 1:1 with pixels + Line_width = Margin_left+256 -- drawing coordinates 1:1 with pixels Current_drawing_mode = 'line' App.draw() App.run_after_mouse_press(Margin_left+5, Margin_top+Drawing_padding_top+6, 1) @@ -518,7 +518,7 @@ function test_delete_line_under_mouse_pointer() -- create a drawing with two lines connected at a point App.screen.init{width=Margin_left+300, height=300} Lines = load_array{'```lines', '```', ''} - Line_width = 256 -- drawing coordinates 1:1 with pixels + Line_width = Margin_left+256 -- drawing coordinates 1:1 with pixels Current_drawing_mode = 'line' App.draw() App.run_after_mouse_press(Margin_left+5, Margin_top+Drawing_padding_top+6, 1) @@ -542,7 +542,7 @@ function test_delete_point_from_polygon() -- create a drawing with two lines connected at a point App.screen.init{width=Margin_left+300, height=300} Lines = load_array{'```lines', '```', ''} - Line_width = 256 -- drawing coordinates 1:1 with pixels + Line_width = Margin_left+256 -- drawing coordinates 1:1 with pixels Current_drawing_mode = 'line' App.draw() -- first point @@ -573,7 +573,7 @@ function test_delete_point_from_polygon() -- create a drawing with two lines connected at a point App.screen.init{width=Margin_left+300, height=300} Lines = load_array{'```lines', '```', ''} - Line_width = 256 -- drawing coordinates 1:1 with pixels + Line_width = Margin_left+256 -- drawing coordinates 1:1 with pixels Current_drawing_mode = 'line' App.draw() -- first point @@ -601,7 +601,7 @@ function test_undo_name_point() Filename = 'foo' App.screen.init{width=Margin_left+300, height=300} Lines = load_array{'```lines', '```', ''} - Line_width = 256 -- drawing coordinates 1:1 with pixels + Line_width = Margin_left+256 -- drawing coordinates 1:1 with pixels Current_drawing_mode = 'line' App.draw() -- draw a line @@ -647,7 +647,7 @@ function test_undo_move_point() Filename = 'foo' App.screen.init{width=Margin_left+300, height=300} Lines = load_array{'```lines', '```', ''} - Line_width = 256 -- drawing coordinates 1:1 with pixels + Line_width = Margin_left+256 -- drawing coordinates 1:1 with pixels Current_drawing_mode = 'line' App.draw() App.run_after_mouse_press(Margin_left+5, Margin_top+Drawing_padding_top+6, 1) @@ -697,7 +697,7 @@ function test_undo_delete_point() Filename = 'foo' App.screen.init{width=Margin_left+300, height=300} Lines = load_array{'```lines', '```', ''} - Line_width = 256 -- drawing coordinates 1:1 with pixels + Line_width = Margin_left+256 -- drawing coordinates 1:1 with pixels Current_drawing_mode = 'line' App.draw() App.run_after_mouse_press(Margin_left+5, Margin_top+Drawing_padding_top+6, 1) diff --git a/text_tests.lua b/text_tests.lua index 0119223..dc5c0ff 100644 --- a/text_tests.lua +++ b/text_tests.lua @@ -530,7 +530,8 @@ end function test_pagedown_skips_drawings() io.write('\ntest_pagedown_skips_drawings') -- some lines of text with a drawing intermixed - App.screen.init{width=50, height=80} + local drawing_width = 50 + App.screen.init{width=Margin_left+drawing_width, height=80} Lines = load_array{'abc', -- height 15 '```lines', '```', -- height 25 'def', -- height 15 @@ -540,7 +541,7 @@ function test_pagedown_skips_drawings() Cursor1 = {line=1, pos=1} Screen_top1 = {line=1, pos=1} Screen_bottom1 = {} - local drawing_height = Drawing_padding_height + App.screen.width / 2 -- default + local drawing_height = Drawing_padding_height + drawing_width/2 -- default -- initially the screen displays the first line and the drawing -- 15px margin + 15px line1 + 10px margin + 25px drawing + 10px margin = 75px < screen height 80px App.draw()