From 7c6a945996a1d5510ff1412320ac7d07a0f82851 Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Sun, 11 Feb 2024 00:04:31 +0000 Subject: Start working on it --- layout.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 layout.c (limited to 'layout.c') diff --git a/layout.c b/layout.c new file mode 100644 index 0000000..76df9c7 --- /dev/null +++ b/layout.c @@ -0,0 +1,43 @@ +#include +#include +#include + +#include "guifs.h" + +void +layout(GuiElement *g, Rectangle r) +{ + GuiSpec spec = guispecs[g->type]; + + g->rect = r; + spec.layout(g, r); +} + +void +layoutnone(GuiElement *g, Rectangle r) +{ + USED(g); + USED(r); +} + +void +layoutcontainer(GuiElement *g, Rectangle r) +{ + USED(g); + USED(r); + + if(g->nchildren == 0) + return; + + int margin = 10; + + r = insetrect(r, 10); + int width = Dx(r) - (margin * (g->nchildren - 1)); + width = width / g->nchildren; + r.max.x = r.min.x + width; + + for(int i = 0; i < g->nchildren; i++){ + layout(g->children[i], r); + r = rectaddpt(r, Pt(width+margin, 0)); + } +} \ No newline at end of file -- cgit v1.2.3