I'm looking for a ncurses-like framework for C++ that handles both the rendering and the layout of the UI components almost automatically.
What I mean by a fluid layout is a system somewhat similar to the HTML/CSS box model (margin, size, etc.); there are mins and maxes that the browser uses to render the page.
Designing a GUI using only a coordinate plane is highly inefficient and likely buggy. Furthermore, it usually breaks when using a different computer or when resizing the SSH window.
If I was building it (aka what I had in mind, but not necessarily the way the library has to be set up), I would set it up into columns and rows nested inside those columns. Each row would be a certain component type, like a paragraph or a button. Each of those would have a property for margins and min/max sizes. Also, columns would have min and maxes themselves, so it would be possible to have fixed width columns. Again, this is just how I'm picturing it in my head, not the requirements.
- Open source for poking around in; preferably a less restrictive license
- Uses ncurses or an equivalent with a comparable amount of compatibility for different terminals/SSH (Mac, PuTTY).
- Buttons, text boxes, etc. built in
- In depth, well-written documentation
NDK++ is pretty cool, but it still is based on a grid layout.
I don't completely care about the flexibility it gives me since this will be for a back-end, second class user interface that I want to just work.