-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UI abstraction layer category, such as for goey
and govcl
#14
Comments
Honestly, I have not enough time to experiment all the libs in the list, so I only have rough understanding of most of the libs. The current category principle is simple, by how the widgets are rendered:
Do you mean the first category should be divided into two? |
Once again thanks for creating this repo and maintaining it. Trying to help here, let me know how this goes. I think the first category is missing a distinction between libraries that provide a library directly, ie GTK is just a direct CGO, and libraries which provide something more.. Like Goey provides an abstraction layer of it's own UI, and the abstraction layer category can mean it's supporting multiple different native (and custom) UIs.. Such as the LCL one is a PascalGo (is that a thing, probably via Sorry including more information that is necessary. GTK is technically a custom UI but *nix doesn't really have anything considered to be "native" for consistency of experience is does the same in each platform, it probably does use some native but I don't know. It's all happening outside of the GO ecosystem so perhaps that's where you're drawing the line: Goey directly links to the library for each platform. However it doesn't provide direct access to it, instead you do things in the Goey way. Which means the underline library could change at any point in time. Which is what I mean by an abstraction. wxWidgets is a C library example of this, they have a bit about it here: https://docs.wxwidgets.org/latest/page_port.html Something like Govcl / golcl are an extreme version, because they can target native OR another cross platform library OR their own: simplescreenrecorder-2023-05-15_10.52.15.mp4So I guess it will look something like this: (Probably many errors and omissions) Any my argument is that multi ui system "abstractions" is missing. However you might be looking at this and go "I got custom wrong -- technically they all are!" I don't think you have. But I think it's best to classify "custom ui" as "Drawn by go on all platforms." Which ties into my placement of Ebiten UI. (Feel free to reuse these diagrams in anyway you want) |
https://excalidraw.com/#json=ieQMe71haC3fF6Kd2Ca55,Pq42zbBnqmgexNckJDwBRg Editable version of the images above. |
@arran4 |
Sure. No worries. Let me know if I can help with any more details. |
I would argue that some of the UI toolkits, especially the ones which are cross platform, belong in their own category of abstraction layers. lcl/vcls seem to be switchable to gtk, native, qt, and other, that's very much an abstraction. While goey seems to be more like wxwidgets where it picks on UI library for each platform.
The text was updated successfully, but these errors were encountered: