News for hackers. Stuff that matters.
Re:Rust and C++ Interoperability by antihero on Monday November 14, 2022 @03:32AM (#33591490)
I think one of the issues with going beyond the basics is that once you start to tackle more advanced controls you not only have to be more opinionated, as there’s many ways to achieve these things, but also they become for more specific use cases and thus creating a general solution has exponential complexity.
Re:Rust and C++ Interoperability by zarzavat on Monday November 14, 2022 @04:13AM (#33591733)
What people want from a UI library is to be able to use system components. For example, there should be a way to open the system color picker, to display a system data grid, system date picker, etc. It doesn’t need to be more than that.
Re:Rust and C++ Interoperability by rob74 on Monday November 14, 2022 @04:24AM (#33591782)
There are definitely people who want more than that. Some controls I am always looking for in a UI library before I even think about using it is a more advanced list control (or table view) which supports columns, sorting etc., and a "tree view". Of course, as the GP wrote, it's hard to implement these without getting more opinionated. Plus, I might add, it's also hard to do these while staying "mobile-friendly".
Re:Rust and C++ Interoperability by exDM69 on Monday November 14, 2022 @04:28AM (#33591805)
These blessed "system components" do not exist any more. Windows has two or three different ways of doing widgets and so does MacOS while the Unix land never had one.

You can still use the old ones, but they will look old and may not behave like you would expect (hidpi displays, touch screen, etc).

wxWidgets and its bindings to many languages exists if that is what you want.

Writing an uniform interface to GUI widgets on many platforms is very much a non-trivial undertaking, there are plenty of failed attempts over the years.

Re:Rust and C++ Interoperability by zozbot234 on Monday November 14, 2022 @04:49AM (#33591922)
The look & feel of system components on Windows has actively regressed starting from Win 8 and subsequent releases. No idea about the situation on Mac OS. But AIUI, both Qt and GTK+ will give you a good enough UI in practice. Perhaps someone will even split out the SerenityOS widgets (which are truly best-in-class, meshing the advantages of "classic" and "modern" UX) as a multi-platform framework, much like has been done wrt. the browser engine.
Re:Rust and C++ Interoperability by dataflow on Monday November 14, 2022 @07:57AM (#33593279)
> AIUI, both Qt and GTK+ will give you a good enough UI in practice

Not GTK+, it sticks out like a sore thumb. Qt gets much closer, though in both cases you can tell something feels off.

(e.g., click an active tab in a tab control in Qt and you won't see the dotted selection line like you would in Win32. That normally indicates you can switch between tabs on the keyboard.)

Re:Rust and C++ Interoperability by Wuzado on Monday November 14, 2022 @08:02AM (#33593332)
SerenityOS is such an amazing project. "Oh, this thing would take a large team several years to build? Let's build it anyway!" The backstory behind the project is extremely admirable, too.
Re:Rust and C++ Interoperability by Ygg2 on Monday November 14, 2022 @08:23AM (#33593545)
> Perhaps someone will even split out the SerenityOS widgets as a multi-platform framework

That would look out of place on MacOS or Windows. Serenity has a Win 2000 look.

Re:Rust and C++ Interoperability by api on Monday November 14, 2022 @07:42AM (#33593146)
MacOS still has standard components at least. For Windows you can pick the best of several options and stick with that.
Re:Rust and C++ Interoperability by nix0n on Monday November 14, 2022 @10:57AM (#33595894)
For what it's worth, wxWidgets does have hidpi support (at least on Windows).
Re:Rust and C++ Interoperability by nuc1e0n on Monday November 14, 2022 @12:21PM (#33597459)
Don't forget about Microsoft COM components. That technology was specifically created as a system to produce "reusable components" with. What happened to that?
Re:Rust and C++ Interoperability by friendzis on Monday November 14, 2022 @07:32AM (#33593066)
Qt has solved this problem in a pretty neat way