20 lines
671 B
Zig
20 lines
671 B
Zig
const Canvas = @import("../Canvas.zig");
|
|
const Tool = @import("../Tool.zig");
|
|
const shape = @import("../models/shape/shape.zig");
|
|
|
|
fn onCanvasClick(ctx: *const Tool.ToolContext) void {
|
|
const canvas = ctx.canvas;
|
|
var obj = shape.createObject(canvas.document.allocator, .line) catch return;
|
|
defer obj.deinit(canvas.allocator);
|
|
obj.setProperty(canvas.document.allocator, .{ .data = .{ .position = ctx.document_point } }) catch {
|
|
obj.deinit(canvas.document.allocator);
|
|
return;
|
|
};
|
|
canvas.document.addObject(obj) catch {
|
|
return;
|
|
};
|
|
canvas.requestRedraw();
|
|
}
|
|
|
|
pub const tool = Tool.Tool{ .onCanvasClick = onCanvasClick };
|