diff --git a/build.zig.zon b/build.zig.zon index 0a8ab4f..5f7bb98 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -40,8 +40,8 @@ .hash = "122055beff332830a391e9895c044d33b15ea21063779557024b46169fb1984c6e40", }, .zterm = .{ - .url = "git+https://gitea.yves-biener.de/yves-biener/zterm#0cc0ed10d20feadd053aa2c573b73cd8d67edf71", - .hash = "122072281f3dab8b8ce7ce407def708010b5282b9e31d9c998346c9a0094f3b8648f", + .url = "git+https://gitea.yves-biener.de/yves-biener/zterm#aeac4bdc83ffbaa20e7def7fcc3d2a7d25d80bb7", + .hash = "1220bed707afded28b20971d960bb7053ed4fc99b9f146be2850838c301b3acbbeae", }, }, .paths = .{ diff --git a/src/main.zig b/src/main.zig index 57ee98d..c39ca2b 100644 --- a/src/main.zig +++ b/src/main.zig @@ -7,6 +7,7 @@ const App = zterm.App( zterm.Renderer.Direct, true, ); +const Cell = zterm.Cell; const Key = zterm.Key; const Layout = App.Layout; const Widget = App.Widget; @@ -30,40 +31,72 @@ pub fn main() !void { var app: App = .{}; var renderer: App.Renderer = .{}; - var layout = Layout.createFrom(vstack: { - var vstack = Layout.VStack.init(allocator, .{ - Layout.createFrom(framing: { - var framing = Layout.Framing.init(allocator, .{ - .title = .{ - .str = "Welcome to my terminal website", - .style = .{ - .ul = .{ .index = 6 }, - .ul_style = .single, + var layout = Layout.createFrom(vcontainer: { + var vcontainer = Layout.VContainer.init(allocator, .{ + .{ + Layout.createFrom(framing: { + var framing = Layout.Framing.init(allocator, .{ + .title = .{ + .str = "Welcome to my terminal website", + .style = .{ + .ul = .{ .index = 6 }, + .ul_style = .single, + }, }, - }, - }, .{ - .widget = Widget.createFrom(header: { - const doc = try std.fs.cwd().openFile("./doc/home.md", .{}); - defer doc.close(); - var header = Widget.RawText.init(allocator, doc); - break :header &header; - }), - }); - break :framing &framing; - }), - Layout.createFrom(margin: { - var margin = Layout.Margin.init(allocator, .{ .left = 15, .right = 15 }, .{ - .widget = Widget.createFrom(body: { - const doc = try std.fs.cwd().openFile("./doc/test.md", .{}); - defer doc.close(); - var body = Widget.RawText.init(allocator, doc); - break :body &body; - }), - }); - break :margin &margin; - }), + }, .{ + .layout = Layout.createFrom(hcontainer: { + var hcontainer = Layout.HContainer.init(allocator, .{ + .{ + Widget.createFrom(header: { + var header = Widget.Text.init(&[1]Cell{ + .{ .content = "Yves Biener", .style = .{ .bold = true } }, + }); + break :header &header; + }), + 25, + }, + .{ + Widget.createFrom(name: { + var name = Widget.Text.init(&[1]Cell{ + .{ .content = "File name", .style = .{ .bold = true } }, + }); + break :name &name; + }), + 50, + }, + .{ + Widget.createFrom(contacts: { + var contacts = Widget.Text.init(&[1]Cell{ + .{ .content = "Contact", .style = .{ .bold = true, .ul_style = .single } }, + }); + break :contacts &contacts; + }), + 25, + }, + }); + break :hcontainer &hcontainer; + }), + }); + break :framing &framing; + }), + 10, + }, + .{ + Layout.createFrom(margin: { + var margin = Layout.Margin.init(allocator, .{ .left = 15, .right = 15 }, .{ + .widget = Widget.createFrom(body: { + const doc = try std.fs.cwd().openFile("./doc/test.md", .{}); + defer doc.close(); + var body = Widget.RawText.init(allocator, doc); + break :body &body; + }), + }); + break :margin &margin; + }), + 90, + }, }); - break :vstack &vstack; + break :vcontainer &vcontainer; }); defer layout.deinit();