Первая версия тулбара

This commit is contained in:
2026-02-25 21:13:38 +03:00
parent 0d546782bb
commit 9202b527e4
9 changed files with 143 additions and 4 deletions

21
src/tools/line.zig Normal file
View File

@@ -0,0 +1,21 @@
//! Инструмент «Линия»: создаёт линию в позиции клика.
const Canvas = @import("../Canvas.zig");
const tool_interface = @import("../tool_interface.zig");
const shape = @import("../models/shape/shape.zig");
fn onClick(ctx: *const tool_interface.ToolContext) void {
const canvas: *Canvas = @alignCast(@ptrCast(ctx.canvas));
var obj = shape.createObject(canvas.document.allocator, .line) catch return;
obj.setProperty(canvas.document.allocator, .{ .data = .{ .position = ctx.document_point } }) catch {
obj.deinit(canvas.document.allocator);
return;
};
canvas.document.addObject(obj) catch {
obj.deinit(canvas.document.allocator);
return;
};
canvas.requestRedraw();
}
pub const tool = tool_interface.Tool{ .onClick = onClick };