From 563c2a7535b2e794062fd74424957cb66e778f5a Mon Sep 17 00:00:00 2001 From: Roman Pytkov Date: Thu, 26 Feb 2026 00:03:22 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9A=D0=BD=D0=BE=D0=BF=D0=BA=D0=B0=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D1=81=D0=BB=D1=83=D1=87=D0=B0=D0=B9=D0=BD=D1=8B?= =?UTF-8?q?=D1=85=20=D1=84=D0=B8=D0=B3=D1=83=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Canvas.zig | 6 ++++++ src/ui/left_panel.zig | 3 +++ 2 files changed, 9 insertions(+) diff --git a/src/Canvas.zig b/src/Canvas.zig index 57c78c2..0033ebb 100644 --- a/src/Canvas.zig +++ b/src/Canvas.zig @@ -10,6 +10,7 @@ const Point2_f = @import("models/basic_models.zig").Point2_f; const Color = dvui.Color; const tools = @import("tools.zig"); const Toolbar = @import("Toolbar.zig"); +const random_document = @import("random_document.zig"); const Canvas = @This(); allocator: std.mem.Allocator, @@ -84,6 +85,11 @@ pub fn exampleReset(self: *Canvas) !void { try self.redraw(); } +pub fn addRandomShapes(self: *Canvas) !void { + try random_document.addRandomShapes(self.document, std.crypto.random); + self.requestRedraw(); +} + pub fn setZoom(self: *Canvas, value: f32) void { self._zoom = @max(value, 0.01); } diff --git a/src/ui/left_panel.zig b/src/ui/left_panel.zig index 06af973..7735288 100644 --- a/src/ui/left_panel.zig +++ b/src/ui/left_panel.zig @@ -101,6 +101,9 @@ pub fn leftPanel(ctx: *WindowContext) void { canvas.requestRedraw(); } } + if (dvui.button(@src(), "Add random shapes", .{}, .{})) { + canvas.addRandomShapes() catch {}; + } } else { dvui.label(@src(), "No document", .{}, .{}); }