<traverseda>
Hey, I'd like to try changing some of the UI stuff to use "dear imgui". I am not a cpp dev, and have limited experience with statically typed languages, but am a pretty competent programmer in the python/webdev/data-science sphere. An even chance that code I write for this will be shitty to the point of being unusable, but what would be the entry point for things like the UI widgets?
<traverseda>
Probably something in graphicswin?
mifune has joined #solvespace
alex__ has joined #solvespace
traverseda has quit [Ping timeout: 240 seconds]
alex__ has quit [Ping timeout: 240 seconds]
traverseda has joined #solvespace
mifune has quit [Ping timeout: 240 seconds]
<whitequark>
traverseda: are you interested in integrating this upstream at all, or not?
<traverseda>
I am interested, but doubtful of the code quality.
<traverseda>
whitequark,
<whitequark>
traverseda: I am highly skeptical that imgui would fit my requirements
<traverseda>
Oh?
<whitequark>
specifically, solvespace will always use platform-native input widgets i.e. edit boxes
<whitequark>
this is because imgui doesn't support: input methods, RTL languages, ...
<whitequark>
I doubt it will render ligatures correctly either, though it might
<whitequark>
anyway, look at the very end of draw.cpp
<whitequark>
uiCanvas stuff is where you'd hook into
<traverseda>
Hmm. Mind if I open a ticket for discussion on the imgui thing? Would be good to have your thoughts on record
<whitequark>
there's been a few already
<whitequark>
but sure, go ahead
<traverseda>
Hmm, I'm not seeing anything when I search the repo for "imgui"
<traverseda>
Only one way to make it stop, make it searchable.
<GitHub>
[solvespace] whitequark commented on issue #263: So. Right now we already have a homegrown immediate mode UI library. It has obvious deficiencies (like not supporting RTL or ligatures in fonts), but neither does imgui! Moreover, we currently support input methods because we use platform's edit widgets on every platform, but imgui does not. So it's a lot of added code for what's essentially a regression in accessibility.... https://github.com/so
<GitHub>
[solvespace] whitequark commented on issue #263: > If you were to implement your main window on top of something generic like SDL, you should have an easier time implementing IME in a cross platform way, passing IME up the stack.... https://github.com/solvespace/solvespace/issues/263#issuecomment-315220142
<GitHub>
[solvespace] whitequark commented on issue #263: Ok, If you really want to use imgui, feel free to start the conversion with "toolbar.cpp". If the code actually comes out cleaner architecturally, or at least I see the *potential* for it to be cleaner architecturally, I will gladly migrate to this library. It doesn't matter if the particulars of your implementation are inelegant, I can look through that. https://github.com/solvespace/solvespace/