Sorry, reply using the wrong email. It was for Brad, not Igor. Best regards, Diego
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ On Monday, November 1st, 2021 at 1:45 AM, Diego Hernan Borghetti <bdi...@protonmail.com> wrote: > Hi Igor, > > Moving or upgrading depends on the resource and requirements that you have. > Sometimes is better to use a toolkit, and others not. > > Even using a toolkit will add overhead to your app. What happens when there > is a new version? (Gtk 2, 3, 4. Qt 4, 5, 6, etc) How complex is your > application? > > If you think porting your toolkit is better in the long run, go for it. > Another option is to look into using something like glfw or similar. > > At the end of the day is how much of the system you want to own and maintain. > > Best regards, > Diego > > ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ > On Monday, November 1st, 2021 at 1:16 AM, Brad Robinson > <brobin...@toptensoftware.com> wrote: > >> Hi Igor, >> >> Thanks for taking the time to answer. >> >> It sounds like you're suggesting porting the application to a new toolkit >> rather than updating the toolkit? As mentioned, that's not really feasible >> as I have literally hundreds of screens that would need to be ported. >> Porting my existing toolkit - either directly to X11, Wayland or by >> leveraging an existing toolkit seems an easier option. >> >> Would you say the same about AvaloniaUI... that instead of porting Avalonia, >> every app that uses it should move to a new toolkit? >> >> Brad >> >> On Sat, Oct 30, 2021 at 3:07 PM Igor Korot <ikoro...@gmail.com> wrote: >> >>> Hi, >>> >>> On Fri, Oct 29, 2021 at 6:59 PM Brad Robinson >>> <brobin...@toptensoftware.com> wrote: >>>> >>>> Hey All, >>>> >>>> I have a custom UI toolkit that I initially developed for my music >>>> application over 15 years ago. Currently it runs on Windows and OSX, and >>>> I'd like to port it to Linux. >>>> >>>> The main thing I'm trying to decide is whether to port directly to Wayland >>>> or to a higher level UI toolkit like GTK or QT. Here's what I'm thinking >>>> about. >>> >>> There is no doubt that the UI should be ported to GTK/Qt/wxWidgets. >>> >>> Why do you even ask? >>> >>> Especially since those libraries are capable of being used under both >>> X11 and Wayland. >>> >>> But that not even the main reason. >>> >>> Wayland/X11 is a low-level API where UI doesn't have any business accessing. >>> >>> There is a reason Qt/GTK/wxWidgets libraries exist - to make the >>> cross-platform development >>> nice and smooth. Remember the paradigm: design once - build/run everywhere. >>> >>> Everything else should be irrelevant. >>> >>> Thank you. >>> >>> P.S.: If you do port to wxWidgets you could disregard the Windows/Mac >>> ports. You will have one >>> codebase which will run on all platforms. >>> >>> P.S.S.: Same can be sad for Qt. >>> >>>> >>>> Pros: >>>> >>>> * I really like the elegance of Wayland and think I'd enjoy coding against >>>> it. It seems lightweight and the way of the future for Linux desktop apps. >>>> * I've written a partial, proof of concept C# wrapper for Wayland which >>>> seems to work fine. (my toolkit is written in C#) >>>> * My toolkit already includes implementations of every control/widget I >>>> need (including menus) so I don't need much of what GTK/QT provides. >>>> Wayland seems like a nice fit in this regard. >>>> * Regarding GTK/QT I'm not keen to learn yet another UI API unless I >>>> really have to. I've dabbled with GTK and didn't really like it. I've >>>> never used QT but it seems over the top for my needs and possibly >>>> difficult to call from C#. Wayland seems simple in comparison. >>>> * I use Skia for graphics rendering. So long as I can blit to the screen >>>> and get user input it should port reasonably well. >>>> >>>> Cons: >>>> >>>> * Seems like I might need to implement window decorations myself as I >>>> understand not all Wayland compositors provide this. >>>> * System dialogs - in particular file and folder selection dialogs. I'd >>>> need to either implement these myself or figure out how to invoke GTK/QT >>>> versions? >>>> * IME support - I believe this is outside the scope of Wayland. >>>> * Automation/Accessibility - again outside the scope of Wayland. >>>> * OS theme consistency. >>>> >>>> I think all the cons are workable - either I'm happy to put in the work to >>>> get it done (cons 1 and 2) or I can live without if I have to (cons 3 and >>>> 4), or I'm not that fussed about (con 5) >>>> >>>> Other notes: >>>> >>>> * Porting my apps from my toolkit to GTK or QT is out of the question as >>>> that would entail porting literally hundreds of screens, dialogs and >>>> widgets. >>>> * I'm a long time Windows developer but I've never done Linux desktop >>>> development. >>>> * I'm not the only one in this boat. The AvaloniaUI project is very >>>> similar to my toolkit and while I can't speak for them, they currently use >>>> X11 and I believe will have similar issues when it comes to Wayland, >>>> Accessibility and IME. >>>> * I'd also really like support for OpenGL. Not a deal breaker but I >>>> presume it's available through Wayland. >>>> * My toolkit is closed source and only used by apps I develop - it's not >>>> likely that it will suddenly have lots of additional requirements placed >>>> on it besides what I'm currently considering. >>>> * I don't have any particular distros that I need to support. If my app >>>> only works on particular distros then so be it. >>>> * It's not urgent and I'm willing to put in the time. >>>> >>>> So, with all that in mind, here's my questions: >>>> >>>> 1. Wayland, GTK or QT? >>>> 2. Are there options for IME and Accessibility for pure Wayland apps? >>>> 3. Assuming I go with Wayland, is there a Linux distro you would recommend >>>> that includes a good, regularly updated, feature rich Wayland compositor. >>>> (Unless there's a compelling reason to, I'd prefer not to have to compile >>>> a compositor myself). >>>> 4. Any other advice - am I neglecting to consider anything obvious? >>>> >>>> Sorry for the long post... much to think about and any advice greatly >>>> appreciated. >>>> >>>> Brad >>>>