andlabs / libui

Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.
Other
10.73k stars 615 forks source link

Space between controls - AKA spacers #506

Open LoganDark opened 4 years ago

LoganDark commented 4 years ago

libui-rs currently uses empty uiBoxes as stretchy spacers, but what if I want fixed spacers? Not by any particular amount, of course, I just want a unit of space to separate things out by. Like the window margin - no nonstandard px amounts, just one standard unit of space.

Right now, an empty label works okay as a vertical spacer.

image

But what about a horizontal one? A label with a couple space characters as its content? Honestly, both of these solutions feel dirty to me. I think libui should implement proper spacers.

There could be a zero-size spacer, meant for stretchy use, and a one-size spacer meant for non-stretchy use. Maybe there could be two variants of the one-size spacer - one vertical one with zero width, and one horizontal one with zero height.

LoganDark commented 4 years ago

Also note that this isn't exactly the same as the padding that uiBox already provides, since that indiscriminately provides padding between all elements.