egui
raygui
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
egui
-
Why Rust?
Anyone who's interested in the AccessKit integration can play with my work-in-progress branch: https://github.com/mwcampbell/egui/tree/accesskit
It's currently Windows-only, and I'm working on the big missing feature, which is text editing support.
-
UIs are not pure functions of the model
> A core premise of Cocoa, and MVC in general, is that UIs are a projection of data into a different form of data, specifically bits on a screen.
This is a tangent, but the implicit assumption that the UI is visual is just begging for a response from an accessibility perspective, so here goes.
Accessibility is very much an afterthought in native GUIs, not only in Cocoa, but also in Windows with the UI Automation API, and AFAIK with other native accessibility APIs as well. With these APIs, the assistive technology (e.g. screen reader) pulls information from the application (usually via the GUI toolkit), through repeated calls to methods defined by the accessibility API. Often the AT has to do several such calls in a row (and those often translate to multiple IPC round trips, making things slow). And the UI might change between such calls; there's no guaranteed way to get a consistent snapshot of the whole thing, as there is with a visual frame. On the application/toolkit side, these methods may return different responses from one call to the next, and the application or toolkit has to fire the right events when things change.
The web improves on this, in that accessibility information is conveyed through HTML tags and attributes. And yes, this is included in the output of a React component's render function. So while in practice, implementing accessibility may still be an afterthought, it's not an architectural afterthought as it is in native platforms.
One of my goals in AccessKit [1] is to work around this shortcoming of native accessibility APIs, particularly for developers of cross-platform non-web GUI toolkits. In AccessKit, the toolkit pushes a full or incremental accessibility tree update to the AccessKit platform adapter, which maintains the full tree in memory and uses that to implement the platform accessibility API. This even works for immediate-mode GUIs, as one can see in my proof-of-concept integration with the Rust egui toolkit [2].
[1]: https://github.com/AccessKit/accesskit
[2]: https://github.com/mwcampbell/egui/tree/accesskit
-
Raygui – A simple and easy-to-use immediate-mode GUI library
I can also report some modest progress on my own work on accessibility of immediate-mode GUIs. I have a branch of the Rust egui library [1] that has basic accessibility on Windows using my AccessKit project [2]. I do have a long way to go to make this fully usable and ready to submit upstream, especially when taking non-Windows platforms into account.
[1]: https://github.com/mwcampbell/egui/tree/accesskit
[2]: https://github.com/AccessKit/accesskit
raygui
-
Trying raylib, first time user, what should I know?
About the UI interface, I created raygui a simple immediate-mode UI library, you can also take a look: https://github.com/raysan5/raygui
-
Building and Linking Google's ANGLE with Raylib on MacOS
git submodule add https://github.com/raysan5/raygui.git vendor/raygui
-
Ported some of raylib examples to Zig
Added splicit type casting in commit: https://github.com/raysan5/raygui/commit/78ad65365ebae6433f60cf03a09e76b43c46cfa2
-
Is it be possible to use raygui with GLFW & GLEW?
Yes you can use raygui as a standalone library without raylib. Read for more info: https://github.com/raysan5/raygui/blob/master/src/raygui.h.
-
Graphic Library for C
Possibly with https://github.com/raysan5/raygui.
-
A question about how GUI libraries are written.
For your example of raygui, you can just look. It's a single header file (but does require raylib) to work.
-
Are people using Unity to make software?
I'm under the impression that Unity builds have a good deal of overhead. Plus, in many cases, something like raygui (C# bindings) will actually be quicker to develop with. Nothing wrong with Unity, though. The best tool is the one you know how to use, in my opinion.
-
raylib 4.2 released!
raylib extra libraries cleanup: raylib has been on diet and all the extra libraries included on previous releases have been removed from raylib. Now raylib only includes the original 7 raylib modules: rcore, rlgl, rshapes, rtextures, rtext, rmodels and raudio. But no worries, extra libraries have not been deleted, they have been moved to their own repos for better maintainability and more focus on its functionality. The libraries moved out from raylib repo are: raygui, physac, rmem, reasings and raudio (standalone mode). On that same line, a new amazing GitHub group: raylib-extras has been created by @JeffM2501 to contain raylib extra libraries as well as other raylib add-ons provided by the community. Jeff has done an amazing work on that line, providing multiple libraries and examples for raylib, like custom first-person and third person camera systems, Dear ImGui raylib integration, multiple specific examples and even a complete RPG Game Example! Great work Jeff! :D
- Raygui - A simple and easy-to-use immediate-mode gui library
-
I made a shortlist of good libraries for my GUI C project and I want your thoughts and comments.
You might also want to take a look at raygui
What are some alternatives?
fidget - Figma based UI library for nim, with HTML and OpenGL backends.
imgui - Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
react-community-tools-practices-cheatsheet - Descriptions and use cases for common tools and practices in the React community
raylib-cpp - C++ Object Oriented Wrapper for raylib
raylib - A simple and easy-to-use library to enjoy videogames programming
accesskit - UI accessibility infrastructure across platforms and programming languages
imgui-cmake - Simple project with cmake files to build imgui's example_sdl_opengl3 on multiple platforms.
mini-pinball-machine - A mini pinball machine based on the Raspberry Pi 4 with a laser-cut enclosure and custom software.
nuklear - A single-header ANSI C immediate mode cross-platform GUI library
nappgui - Cross-Platform C SDK (precompiled)
SDL - Simple Directmedia Layer