IUP – Cross platform C GUI library
tecgraf.puc-rio.br
tecgraf.puc-rio.br
That means that the advantage is being able to write against one API, and get cross-platform compatibility, which can be nice. It also means (typically) being limited in what you can do to the least common denominator, or you (=the toolkit author) end up having to re-implement features from one platform that you want to expose but that are missing on some supported target(s). Or, of course, have an API with non-portable parts in it.
In any case, it means the "look and feel" is not the core feature of the API since that is going to be "like the target platform" and that is the point.
Given the origin, I guess Lua support is important too, here.
So either make a UI for each OS or go your own way and have your own design language.
I wish development is faster though, perhaps moving the project to GitHub could help with that. I would like to see modern tray support on Linux instead of legacy one, someone to finish Cocoa support, native table/list view control (it is on the TODO list), support for gtk+ 4, etc.
I can understand the reason.
This library is made by Brazilian researchers working for an institute (very poorly) funded by the government. However, Apple machines are very, very expensive in Brazil and many other 3rd World countries, almost a luxury. Probably they're not affordable enough to many of those researchers.
However, not having a OS-X version is really a big obstacle for this library to be accepted.
The biggest issue for me was the somewhat constrained idea of "cross platform" it's working with. There was an attempt at a Cocoa port, but it seems even less active than the main project. https://github.com/ewmailing/IupCocoa
Ultimately, I decided that a careful addition of a minimal amount of C++ code to use wxWidgets was less kludgey than using a half-baked Cocoa port or coaxing IUP GTK to work with Mac GTK. I've been mostly happy with that decision.
Also there was some pressure for us to use IUP. We always had a "not as maintained as gtk or qt" feel and as much as we could, we refused it. I think nobody regrets that.
No overusing of weird macros, no large structs to define (IUP uses void pointers) or other C-isms that can be hard to translate over language barriers.
I tested to write bindings for PHP over FFI and it was trivial.
Main drawback is that the Mac support is experimental.
This sort of toolkit tends to look ok on macOS where that degree of insanity didn't happen.
Maybe somebody can use it to make the state-ful GUI browser that the "office" industry sorely needs so we don't have to force DOM to act like a real GUI (which it does painfully and poorly). GUI's and mice do most the real work; let's not give all the standards attention to web toys and mobile.
kids, get off my lawn
(doing curses work lately because its been reasonably stable and cross-platform for 30+ years now...)
https://www.tecgraf.puc-rio.br/cd/
example: https://www.tecgraf.puc-rio.br/cd/https://www.tecgraf.puc-rio.br/iup/en/screenshots.html
It looks like a hodgepodge of MS Windows look & feel from the Windows 95 to the Windows XP eras, combined with some even more basic looking controls.
https://raw.githubusercontent.com/PennRobotics/permalink/mai...
Since the same UUID in the manifest applies to Windows 11 and Windows 10, I'm willing to bet this would look a lot like the Windows 11 version of notepad.exe when compiled on a Windows 11 machine.
Which might be a good thing for someone.
Maybe it is from 2000s? I see they link to "sourceforge". Which is 2000s thing to do.
On the overview page there is a link called "Screenshots" and I clicked on it and it does really show screenshots.
Edit: found the pictures. Looks like another GUI toolkit emulating the 90s OS style paradigms.