рефакторинг небольшой
This commit is contained in:
@@ -1,21 +1,19 @@
|
||||
//! Инструмент «Линия»: создаёт линию в позиции клика.
|
||||
|
||||
const Canvas = @import("../Canvas.zig");
|
||||
const tool_interface = @import("../tool_interface.zig");
|
||||
const Tool = @import("../Tool.zig");
|
||||
const shape = @import("../models/shape/shape.zig");
|
||||
|
||||
fn onClick(ctx: *const tool_interface.ToolContext) void {
|
||||
const canvas: *Canvas = @alignCast(@ptrCast(ctx.canvas));
|
||||
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 {
|
||||
obj.deinit(canvas.document.allocator);
|
||||
return;
|
||||
};
|
||||
canvas.requestRedraw();
|
||||
}
|
||||
|
||||
pub const tool = tool_interface.Tool{ .onClick = onClick };
|
||||
pub const tool = Tool.Tool{ .onCanvasClick = onCanvasClick };
|
||||
|
||||
Reference in New Issue
Block a user