nobody stops you from thinking and sure, new code with fewer lines means large changes are easier.
i did make an effort to keep every last bit of gui code out of the processing and modules. the description of the module ui is just a text file (here is a more complex example). the command line interface vkdt-cli
completely ignores all that and thus doesn’t need to link/compile in any ui code at all.
to make this super painful for the programmer to accidentally mix the two, the core is in c and the gui in c++ (kinda unfortunately, but that’s what imgui is).
gui code doing pretty much anything is factored out in gui/api.h[h]
and called from mouse clicks, hotkeys, and gamepad input.
so: i’m a big fan of modularity and separating concerns in code.
originally i thought i’d replace the std imgui sliders with some custom ones, same as the ones in dt. but.
in all honesty i stopped caring about the looks of the user interface. especially the discussions around it are tedious, time consuming and often lead nowhere because designers usually don’t code their proposals (like sometimes security people use fuzzing tools but can’t fix anything and researchers write papers which do not work in practice™).
also, you don’t write the user interface and it’s done (like some comments propose a project for a man month or so). if you look at dt screenshots over the years you’ll see many things evolve over time and style/guidelines change and focus shift. so keeping a “design” consistent requires more a core team member with a vision than an outsider bashing something together once in short time.
as long as it doesn’t get in my way i’m fine with many things. i think enabling workflow is much more important. so to get back to the sliders in the example above… they work just fine as they are! you can dial in numbers by ctrl-click (or triangle on the gamepad), you can step them with the mouse or with gamepad+fast/slow modifiers, and otherwise you don’t have to marry them.
that said, yes i think i’m happy with the core ability of the graph/pipeline now and i do want to focus more on streamlining the ui for workflows.