Добавлять объекты в родителя
This commit is contained in:
@@ -1,9 +1,16 @@
|
||||
const Point2_f = @import("../models/basic_models.zig").Point2_f;
|
||||
const Canvas = @import("../Canvas.zig");
|
||||
const Document = @import("../models/Document.zig");
|
||||
|
||||
pub const ToolContext = struct {
|
||||
canvas: *Canvas,
|
||||
document_point: Point2_f,
|
||||
selected_object_id: ?u64,
|
||||
|
||||
pub fn addObject(self: *const ToolContext, template: Document.Object) !void {
|
||||
try self.canvas.document.addObjectUnderParentId(self.selected_object_id, template);
|
||||
self.canvas.requestRedraw();
|
||||
}
|
||||
};
|
||||
|
||||
pub const Tool = struct {
|
||||
|
||||
@@ -6,7 +6,6 @@ fn onCanvasClick(ctx: *const Tool.ToolContext) !void {
|
||||
var obj = shape.createObject(canvas.document.allocator, .arc) catch return;
|
||||
defer obj.deinit(canvas.allocator);
|
||||
try obj.setProperty(canvas.document.allocator, .{ .data = .{ .position = ctx.document_point } });
|
||||
try canvas.document.addObject(obj);
|
||||
canvas.requestRedraw();
|
||||
try ctx.addObject(obj);
|
||||
}
|
||||
pub const tool = Tool.Tool{ .onCanvasClick = onCanvasClick };
|
||||
|
||||
@@ -6,7 +6,6 @@ fn onCanvasClick(ctx: *const Tool.ToolContext) !void {
|
||||
var obj = shape.createObject(canvas.document.allocator, .broken) catch return;
|
||||
defer obj.deinit(canvas.allocator);
|
||||
try obj.setProperty(canvas.document.allocator, .{ .data = .{ .position = ctx.document_point } });
|
||||
try canvas.document.addObject(obj);
|
||||
canvas.requestRedraw();
|
||||
try ctx.addObject(obj);
|
||||
}
|
||||
pub const tool = Tool.Tool{ .onCanvasClick = onCanvasClick };
|
||||
|
||||
@@ -6,7 +6,6 @@ fn onCanvasClick(ctx: *const Tool.ToolContext) !void {
|
||||
var obj = shape.createObject(canvas.document.allocator, .ellipse) catch return;
|
||||
defer obj.deinit(canvas.allocator);
|
||||
try obj.setProperty(canvas.document.allocator, .{ .data = .{ .position = ctx.document_point } });
|
||||
try canvas.document.addObject(obj);
|
||||
canvas.requestRedraw();
|
||||
try ctx.addObject(obj);
|
||||
}
|
||||
pub const tool = Tool.Tool{ .onCanvasClick = onCanvasClick };
|
||||
|
||||
@@ -8,7 +8,6 @@ fn onCanvasClick(ctx: *const Tool.ToolContext) !void {
|
||||
var obj = shape.createObject(canvas.document.allocator, .line) catch return;
|
||||
defer obj.deinit(canvas.allocator);
|
||||
try obj.setProperty(canvas.document.allocator, .{ .data = .{ .position = ctx.document_point } });
|
||||
try canvas.document.addObject(obj);
|
||||
canvas.requestRedraw();
|
||||
try ctx.addObject(obj);
|
||||
}
|
||||
pub const tool = Tool.Tool{ .onCanvasClick = onCanvasClick };
|
||||
|
||||
Reference in New Issue
Block a user