diff options
| author | Mitchell Hashimoto <mitchell.hashimoto@gmail.com> | 2024-03-14 11:04:13 -0700 |
|---|---|---|
| committer | Mitchell Hashimoto <mitchell.hashimoto@gmail.com> | 2024-03-22 20:28:05 -0700 |
| commit | dae4c3e52d2ad2c1b1a167e075dba83a72af7d20 (patch) | |
| tree | a3beb4d32fa758b15ae3f00ef32db2c3f022428b /src/inspector/page.zig | |
| parent | aadd0d3d48afa3c6d604556d6b94c7aa03a20a39 (diff) | |
inspector: forgot another new file
Diffstat (limited to 'src/inspector/page.zig')
| -rw-r--r-- | src/inspector/page.zig | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/src/inspector/page.zig b/src/inspector/page.zig new file mode 100644 index 000000000..29e76be78 --- /dev/null +++ b/src/inspector/page.zig @@ -0,0 +1,169 @@ +const std = @import("std"); +const assert = std.debug.assert; +const Allocator = std.mem.Allocator; +const cimgui = @import("cimgui"); +const terminal = @import("../terminal/main.zig"); + +pub fn render(page: *const terminal.Page) void { + cimgui.c.igPushID_Ptr(page); + defer cimgui.c.igPopID(); + + _ = cimgui.c.igBeginTable( + "##page_state", + 2, + cimgui.c.ImGuiTableFlags_None, + .{ .x = 0, .y = 0 }, + 0, + ); + defer cimgui.c.igEndTable(); + + { + cimgui.c.igTableNextRow(cimgui.c.ImGuiTableRowFlags_None, 0); + { + _ = cimgui.c.igTableSetColumnIndex(0); + cimgui.c.igText("Memory Size"); + } + { + _ = cimgui.c.igTableSetColumnIndex(1); + cimgui.c.igText("%d bytes", page.memory.len); + cimgui.c.igText("%d VM pages", page.memory.len / std.mem.page_size); + } + } + { + cimgui.c.igTableNextRow(cimgui.c.ImGuiTableRowFlags_None, 0); + { + _ = cimgui.c.igTableSetColumnIndex(0); + cimgui.c.igText("Unique Styles"); + } + { + _ = cimgui.c.igTableSetColumnIndex(1); + cimgui.c.igText("%d", page.styles.count(page.memory)); + } + } + { + cimgui.c.igTableNextRow(cimgui.c.ImGuiTableRowFlags_None, 0); + { + _ = cimgui.c.igTableSetColumnIndex(0); + cimgui.c.igText("Grapheme Entries"); + } + { + _ = cimgui.c.igTableSetColumnIndex(1); + cimgui.c.igText("%d", page.graphemeCount()); + } + } + { + cimgui.c.igTableNextRow(cimgui.c.ImGuiTableRowFlags_None, 0); + { + _ = cimgui.c.igTableSetColumnIndex(0); + cimgui.c.igText("Capacity"); + } + { + _ = cimgui.c.igTableSetColumnIndex(1); + _ = cimgui.c.igBeginTable( + "##capacity", + 2, + cimgui.c.ImGuiTableFlags_None, + .{ .x = 0, .y = 0 }, + 0, + ); + defer cimgui.c.igEndTable(); + + const cap = page.capacity; + { + cimgui.c.igTableNextRow(cimgui.c.ImGuiTableRowFlags_None, 0); + { + _ = cimgui.c.igTableSetColumnIndex(0); + cimgui.c.igText("Columns"); + } + + { + _ = cimgui.c.igTableSetColumnIndex(1); + cimgui.c.igText("%d", @as(u32, @intCast(cap.cols))); + } + } + + { + cimgui.c.igTableNextRow(cimgui.c.ImGuiTableRowFlags_None, 0); + { + _ = cimgui.c.igTableSetColumnIndex(0); + cimgui.c.igText("Rows"); + } + + { + _ = cimgui.c.igTableSetColumnIndex(1); + cimgui.c.igText("%d", @as(u32, @intCast(cap.rows))); + } + } + + { + cimgui.c.igTableNextRow(cimgui.c.ImGuiTableRowFlags_None, 0); + { + _ = cimgui.c.igTableSetColumnIndex(0); + cimgui.c.igText("Unique Styles"); + } + + { + _ = cimgui.c.igTableSetColumnIndex(1); + cimgui.c.igText("%d", @as(u32, @intCast(cap.styles))); + } + } + + { + cimgui.c.igTableNextRow(cimgui.c.ImGuiTableRowFlags_None, 0); + { + _ = cimgui.c.igTableSetColumnIndex(0); + cimgui.c.igText("Grapheme Bytes"); + } + + { + _ = cimgui.c.igTableSetColumnIndex(1); + cimgui.c.igText("%d", cap.grapheme_bytes); + } + } + } + } + { + cimgui.c.igTableNextRow(cimgui.c.ImGuiTableRowFlags_None, 0); + { + _ = cimgui.c.igTableSetColumnIndex(0); + cimgui.c.igText("Size"); + } + { + _ = cimgui.c.igTableSetColumnIndex(1); + _ = cimgui.c.igBeginTable( + "##size", + 2, + cimgui.c.ImGuiTableFlags_None, + .{ .x = 0, .y = 0 }, + 0, + ); + defer cimgui.c.igEndTable(); + + const size = page.size; + { + cimgui.c.igTableNextRow(cimgui.c.ImGuiTableRowFlags_None, 0); + { + _ = cimgui.c.igTableSetColumnIndex(0); + cimgui.c.igText("Columns"); + } + + { + _ = cimgui.c.igTableSetColumnIndex(1); + cimgui.c.igText("%d", @as(u32, @intCast(size.cols))); + } + } + { + cimgui.c.igTableNextRow(cimgui.c.ImGuiTableRowFlags_None, 0); + { + _ = cimgui.c.igTableSetColumnIndex(0); + cimgui.c.igText("Rows"); + } + + { + _ = cimgui.c.igTableSetColumnIndex(1); + cimgui.c.igText("%d", @as(u32, @intCast(size.rows))); + } + } + } + } // size table +} |
