about summary refs log tree commit diff stats
path: root/drawing.lua
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2022-05-17 22:53:09 -0700
committerKartik K. Agaram <vc@akkartik.com>2022-05-17 22:53:09 -0700
commit92bd6839c769b70e75c37c363a13789c8c0823e6 (patch)
treed3b2b7bbbd1429ff6a044c9723e942c197ae45c7 /drawing.lua
parent222a11a8dd0c8b5b68b5628928a38f05d0a3d13c (diff)
downloadlines.love-92bd6839c769b70e75c37c363a13789c8c0823e6.tar.gz
split mouse_pressed events between Text and Drawing
Diffstat (limited to 'drawing.lua')
-rw-r--r--drawing.lua20
1 files changed, 20 insertions, 0 deletions
diff --git a/drawing.lua b/drawing.lua
index 9592587..fad062f 100644
--- a/drawing.lua
+++ b/drawing.lua
@@ -49,6 +49,26 @@ function Drawing.draw(line, y)
   Drawing.draw_pending_shape(16,line.y, line)
 end
 
+function Drawing.in_drawing(drawing, x,y)
+  return y >= drawing.y and y < drawing.y + Drawing.pixels(drawing.h) and x >= 16 and x < 16+Drawing_width
+end
+
+function Drawing.mouse_pressed(drawing, x,y, button)
+  if Current_drawing_mode == 'freehand' then
+    drawing.pending = {mode=Current_drawing_mode, points={{x=Drawing.coord(x-16), y=Drawing.coord(y-drawing.y)}}}
+  elseif Current_drawing_mode == 'line' or Current_drawing_mode == 'manhattan' then
+    local j = Drawing.insert_point(drawing.points, Drawing.coord(x-16), Drawing.coord(y-drawing.y))
+    drawing.pending = {mode=Current_drawing_mode, p1=j}
+  elseif Current_drawing_mode == 'polygon' then
+    local j = Drawing.insert_point(drawing.points, Drawing.coord(x-16), Drawing.coord(y-drawing.y))
+    drawing.pending = {mode=Current_drawing_mode, vertices={j}}
+  elseif Current_drawing_mode == 'circle' then
+    local j = Drawing.insert_point(drawing.points, Drawing.coord(x-16), Drawing.coord(y-drawing.y))
+    drawing.pending = {mode=Current_drawing_mode, center=j}
+  end
+  Lines.current = drawing
+end
+
 function Drawing.keychord_pressed(chord)
   if chord == 'C-=' then
     Drawing_width = Drawing_width/Zoom