Compare commits
2 Commits
bf63729124
...
9e2bb23c8a
| Author | SHA1 | Date | |
|---|---|---|---|
| 9e2bb23c8a | |||
| a1f31d76c7 |
@@ -8,8 +8,8 @@ const Rect_i = basic_models.Rect_i;
|
||||
const Size_i = basic_models.Size_i;
|
||||
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 tools = @import("toolbar/tools.zig");
|
||||
const Toolbar = @import("toolbar/Toolbar.zig");
|
||||
const random_document = @import("random_document.zig");
|
||||
const Canvas = @This();
|
||||
|
||||
@@ -99,6 +99,11 @@ pub fn addZoom(self: *Canvas, value: f32) void {
|
||||
self._zoom = @max(self._zoom, 0.01);
|
||||
}
|
||||
|
||||
pub fn multZoom(self: *Canvas, value: f32) void {
|
||||
self._zoom *= value;
|
||||
self._zoom = @max(self._zoom, 0.01);
|
||||
}
|
||||
|
||||
pub fn getZoom(self: Canvas) f32 {
|
||||
return self._zoom;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
const Point2_f = @import("models/basic_models.zig").Point2_f;
|
||||
const Canvas = @import("Canvas.zig");
|
||||
const Point2_f = @import("../models/basic_models.zig").Point2_f;
|
||||
const Canvas = @import("../Canvas.zig");
|
||||
|
||||
pub const ToolContext = struct {
|
||||
canvas: *Canvas,
|
||||
@@ -3,7 +3,7 @@ const line = @import("tools/line.zig");
|
||||
const ellipse = @import("tools/ellipse.zig");
|
||||
const arc = @import("tools/arc.zig");
|
||||
const broken = @import("tools/broken.zig");
|
||||
const icons = @import("icons.zig");
|
||||
const icons = @import("../icons.zig");
|
||||
|
||||
pub const default_tools = [_]Toolbar.ToolDescriptor{
|
||||
.{
|
||||
@@ -1,5 +1,5 @@
|
||||
const Tool = @import("../Tool.zig");
|
||||
const shape = @import("../models/shape/shape.zig");
|
||||
const shape = @import("../../models/shape/shape.zig");
|
||||
|
||||
fn onCanvasClick(ctx: *const Tool.ToolContext) !void {
|
||||
const canvas = ctx.canvas;
|
||||
@@ -1,5 +1,5 @@
|
||||
const Tool = @import("../Tool.zig");
|
||||
const shape = @import("../models/shape/shape.zig");
|
||||
const shape = @import("../../models/shape/shape.zig");
|
||||
|
||||
fn onCanvasClick(ctx: *const Tool.ToolContext) !void {
|
||||
const canvas = ctx.canvas;
|
||||
@@ -1,5 +1,5 @@
|
||||
const Tool = @import("../Tool.zig");
|
||||
const shape = @import("../models/shape/shape.zig");
|
||||
const shape = @import("../../models/shape/shape.zig");
|
||||
|
||||
fn onCanvasClick(ctx: *const Tool.ToolContext) !void {
|
||||
const canvas = ctx.canvas;
|
||||
@@ -1,7 +1,7 @@
|
||||
const std = @import("std");
|
||||
const Canvas = @import("../Canvas.zig");
|
||||
const Canvas = @import("../../Canvas.zig");
|
||||
const Tool = @import("../Tool.zig");
|
||||
const shape = @import("../models/shape/shape.zig");
|
||||
const shape = @import("../../models/shape/shape.zig");
|
||||
|
||||
fn onCanvasClick(ctx: *const Tool.ToolContext) !void {
|
||||
const canvas = ctx.canvas;
|
||||
@@ -3,7 +3,7 @@ const dvui = @import("dvui");
|
||||
const dvui_ext = @import("dvui_ext.zig");
|
||||
const Canvas = @import("../Canvas.zig");
|
||||
const Rect_i = @import("../models/basic_models.zig").Rect_i;
|
||||
const Tool = @import("../Tool.zig");
|
||||
const Tool = @import("../toolbar/Tool.zig");
|
||||
|
||||
pub fn canvasView(canvas: *Canvas, content_rect_scale: dvui.RectScale) void {
|
||||
var textured = dvui_ext.texturedBox(content_rect_scale, dvui.Rect.all(20));
|
||||
@@ -135,7 +135,8 @@ fn handleCanvasZoom(canvas: *Canvas, scroll: anytype) void {
|
||||
};
|
||||
const doc_pt = canvas.contentPointToDocument(content_pt, natural_scale);
|
||||
|
||||
canvas.addZoom(y / 1000);
|
||||
// canvas.addZoom(y / 1000);
|
||||
canvas.multZoom(1 + y / 3000);
|
||||
canvas.requestRedraw();
|
||||
|
||||
// Сдвигаем viewport так, чтобы точка под курсором (даже вне холста) не уезжала
|
||||
|
||||
Reference in New Issue
Block a user