August 15th, 2024

ImRAD is a GUI builder for the ImGui library

ImRAD is a GUI builder for the ImGui library, supporting multiple operating systems with extensive widget options, dynamic variable management, and GPL-free generated code for project integration. Installation varies by platform.

Read original articleLink Icon
ConfusionAdmirationExcitement
ImRAD is a GUI builder for the ImGui library

ImRAD is a GUI builder designed for the ImGui library, enabling the generation and parsing of C++ code compatible with Windows, Linux, and MacOS applications. It features a variety of window types, including floating windows and popups, and integrates with GLFW. The tool supports numerous widgets such as text, checkboxes, buttons, sliders, tables, and menus, and employs a box layout system for consistent widget spacing and positioning. ImRAD also facilitates dynamic management of class variables through property binding and generates event handlers to keep user code separate from generated code. Users can customize styles and save them as INI files, and the generated code is free from GPL restrictions, allowing for use in both open-source and commercial projects. Installation on Windows involves using CMake with Visual Studio, while Linux users need to install specific packages and run an installation script. The source code is licensed under the GPL, but the generated code can be utilized freely. Additional resources, including tutorials and detailed documentation, are available on the ImRAD GitHub wiki.

- ImRAD is a GUI builder for the ImGui library, supporting multiple operating systems.

- It offers extensive widget support and layout management features.

- Users can customize styles and manage class variables dynamically.

- The generated code is free from GPL restrictions for project integration.

- Installation instructions differ for Windows and Linux platforms.

AI: What people are saying
The comments on the ImRAD GUI builder for the ImGui library reflect a mix of curiosity, nostalgia, and technical interest.
  • Some users express excitement about the potential of the tool, comparing it to nostalgic programming environments like Visual Basic and NetBeans.
  • There are inquiries about the technical aspects, such as the C++ code generation and its compatibility with other languages like Python.
  • Users discuss the unique features of the project, including its hand-rolled parser and the possibility of using it for non-gaming applications.
  • Some comments question why the GUI builder isn't implemented directly within ImGui itself.
  • Overall, the community shows a strong interest in the practical applications and implications of the tool.
Link Icon 12 comments
By @dymk - 2 months
Perhaps one of the most mind-boggling parts of this project is it has a hand-rolled parser for the subset of C++ that it can emit. All implemented in a single header. Equal parts impressive and crazy.

https://github.com/tpecholt/imrad/blob/main/src/cpp_parser.h

By @klaussilveira - 2 months
This is amazing. It might be my Visual Basic nostalgia kicking in, but this is the icing on the imgui cake for me.
By @dsp_person - 2 months
This would be cool built in a wasm html5 app to whip up a gui in the browser and copy paste the result into your editor.

> It generates and parses C++ code which can be directly used in your application.

Is the parsing part just to read it's own code it generates?

By @joenot443 - 2 months
This is fantastic. I've spent the last couple years working on an ImGui C++ app, this would have saved me many hours.
By @lainga - 2 months
Shouldn't it be "for the Dear library" given that the dear-imgui creator has stated it's named "dear"? (IMGUI means immediate-mode GUI, and ocornut has said he was inspired by another IMGUI named "simgui" [] )

> I renamed it to "dear imgui" (about 15 months later) because "imgui" has been hogging up the whole acronym. I am sorry for the confusion caused even today.

[] https://github.com/ocornut/imgui/issues/7892

By @exe34 - 2 months
I don't think there should be so many sudos in there. otherwise looks really cool!
By @tecleandor - 2 months
Is the C++ generated code usable from, for example, Python when using pyimgui bindings?
By @secondary_op - 2 months
Why is GUI builder for ImGui is not implemented in ImGui itself ?
By @9erdelta - 2 months
Awesome, I've been working on a project with ImGui and keep thinking how great something like this would be. I'll be trying this out!
By @supportengineer - 2 months
Steam is a popular cross-platform system, could it ever be used for non-gaming applications? Even Enterprise applications?
By @waynenilsen - 2 months
Makes me miss netbeans

Now do the same for tailwind