This is the core library crate Emigui. It is fully platform independent without any backend. You give the Emigui library input each frame (mouse pos etc), and it outputs a triangle mesh for you to paint.
When drawing children, they are drawn just on the edge of the clip rect.
This means e.g. the leftmost side of a button or slider handle is clipped.
We can fix this in three ways:
* A) Each component minds its bounds, so button offset their position by their outline width + one pixel for AA
* B) Each region enlarges the clip_rect slightly to handle inner children
* C) Each region shrinks its rect slightly so children move further in in child regions (creates unintentional indentation. ugh)
I think A) is the correct solution, but might be tedious to get right for every component. For instance, the outline may grow on mouse-over, but we don't want to move the component as a consequence.
Ability to do a search for any widget. The search works even for collapsed regions and closed windows and menus. This is implemented like this: while searching, all region are layed out and their add_content functions are run. If none of the contents matches the search, the layout is reverted and nothing is shown. So windows will get temporarily opened and run, but if the search is not a match in the window it is closed again. This means then when searching your whole GUI is being run, which may be a bit slower, but it would be a really awesome feature.