This is what I mentioned previously when I said you could create the whole UI procedurally - all you need is a vector with hashes to provide the corresponding meta information (label, tooltip, callback) and it's going to be less work than creating a PUI/XML dialog or a Canvas/QML dialog from scratch.
I can post the corresponding snippet of code, but it's actually all shown in the wiki article I posted previously. However, I don't think it's needed, since you're already using the same approach to procedurally create your Emesary notifications, i.e. a vector with hash map, that is then traversed - and like you said, it's a sure way to maintain your sanity. It will not look as nice as a custom-designed UI, but it will at least be highly functional that way.
Given your background/experience, you can probably see that this is the trivial portion, i.e. setting up a vector with configuration options that are encoded in the form of a hash map. The only other part that you'd need is a factory function for each kind of widget you'd like to be created.
Again, I've done this previously, so it's a straightforward option and I can post the code here - the other thing worth keeping in mind is that the Canvas system has a built-in UI system (which is what dialogs and tooltips are using anyway). In other words, there is a MVC-based UI system which can be used to reuse existing widget logic, which is even style-able that way.
This has already all the logic that you'd need to layout/resize as needed.
If in doubt, I'd suggest to check out $FG_ROOT/Nasal/canvas/gui:
https://sourceforge.net/p/flightgear/fg ... anvas/gui/Note that the parent widget class (Widget.nas) can be sub-classed, and styling/appearance is handled separately via the
https://sourceforge.net/p/flightgear/fg ... Widget.nasFor a list of existing widgets, see:
https://sourceforge.net/p/flightgear/fg ... i/widgets/The most straightforward widget certainly being the "Label":
https://sourceforge.net/p/flightgear/fg ... /Label.nasThe actual implementation (the view part) is implemented here:
https://sourceforge.net/p/flightgear/fg ... tStyle.nasAgain, at this point, I think it would be less work to create a procedural UI for something as trivial as a config page - but given that you mentioned elsewhere, that you'd like see other devices developed on top of your work, extracting a generic widget set for avionics specifically, might be a sensible option sooner or later.