69 lines
1.9 KiB
Zig
69 lines
1.9 KiB
Zig
const std = @import("std");
|
|
const dvui = @import("dvui");
|
|
const WindowContext = @import("../WindowContext.zig");
|
|
const canvas_view = @import("canvas_view.zig");
|
|
|
|
pub fn rightPanel(ctx: *WindowContext) void {
|
|
const fill_color = dvui.Color.black.opacity(0.25);
|
|
var back = dvui.box(
|
|
@src(),
|
|
.{ .dir = .horizontal },
|
|
.{ .expand = .both, .padding = dvui.Rect.all(12), .background = true },
|
|
);
|
|
{
|
|
var panel = dvui.box(
|
|
@src(),
|
|
.{ .dir = .vertical },
|
|
.{
|
|
.expand = .both,
|
|
.background = true,
|
|
.padding = dvui.Rect.all(5),
|
|
.corner_radius = dvui.Rect.all(24),
|
|
.color_fill = fill_color,
|
|
},
|
|
);
|
|
{
|
|
const active_doc = ctx.activeDocument();
|
|
if (active_doc) |doc| {
|
|
const content_rect_scale = panel.data().contentRectScale();
|
|
canvas_view.canvasView(&doc.canvas, content_rect_scale);
|
|
} else {
|
|
noDocView(ctx);
|
|
}
|
|
}
|
|
panel.deinit();
|
|
}
|
|
back.deinit();
|
|
}
|
|
|
|
fn noDocView(ctx: *WindowContext) void {
|
|
var center = dvui.box(
|
|
@src(),
|
|
.{ .dir = .vertical },
|
|
.{
|
|
.expand = .both,
|
|
.padding = dvui.Rect.all(20),
|
|
},
|
|
);
|
|
{
|
|
var box = dvui.box(
|
|
@src(),
|
|
.{ .dir = .vertical },
|
|
.{
|
|
.gravity_x = 0.5,
|
|
.gravity_y = 0.5,
|
|
},
|
|
);
|
|
{
|
|
dvui.label(@src(), "No document open", .{}, .{});
|
|
if (dvui.button(@src(), "New document", .{}, .{})) {
|
|
ctx.addNewDocument() catch |err| {
|
|
std.debug.print("addNewDocument error: {}\n", .{err});
|
|
};
|
|
}
|
|
}
|
|
box.deinit();
|
|
}
|
|
center.deinit();
|
|
}
|