Skip to content

iamclint/ImGuiDesigner

Repository files navigation

ImGui Designer

ImGuiDesigner is a project aimed at simplifying the process of building user interfaces (UI) in C++ applications. The project provides an easy-to-use interface builder with interactive controls that allow users to create UIs using drag and drop, drag resizing, drag moving, and editing flags, colors, and styles. Furthermore, it generates C++ pseudo code that developers can use as a starting point for building their UIs.

Features: The following are the key features of ImGuiDesigner:

User-friendly interface builder: ImGuiDesigner provides a user-friendly interface builder that allows developers to create UIs using drag and drop. The interface builder also supports drag resizing, drag moving, and editing flags, colors, and styles.

C++ pseudo code generation: ImGuiDesigner generates C++ pseudo code for the UI created using the interface builder. The generated code can be used as a starting point for building UIs in C++ applications.

Interactive controls: ImGuiDesigner provides interactive controls that allow users to modify flags, colors, and styles of the UI components. This feature helps developers to customize the UI components according to their requirements.

Open-source: ImGuiDesigner is an open-source project, which means that developers can contribute to the project and enhance its functionality.

ImGuiDesigner also takes a modern approach that allows developers to create their own components, just like in React. These components can then be reused in any ImGuiDesigner project, which makes it easy to create custom UI elements that can be used across different applications.

This feature is particularly useful for developers who work on multiple projects or who need to create complex UI elements that cannot be easily achieved with the standard ImGui components. By creating their own components, developers can save time and improve the consistency of their UIs across different applications.

Furthermore, the ability to create custom components also encourages code reusability and makes it easier to maintain codebases over time. As new projects are created, developers can simply reuse existing components rather than reinventing the wheel each time. This not only saves time but also reduces the risk of introducing bugs and errors into the code.

Overall, the ability to create custom components in ImGuiDesigner is a valuable feature that sets it apart from other UI building tools. By combining this feature with its other capabilities, ImGuiDesigner provides a powerful solution for building modern, customizable UIs in C++ applications.

Conclusion: In summary, ImGuiDesigner is an easy-to-use interface builder that simplifies the process of building UIs in C++ applications. Its interactive controls, C++ pseudo code generation, and multi-platform support make it a useful tool for developers. Furthermore, being open-source allows developers to contribute to the project and make it even better.

It's worth noting that ImGuiDesigner utilizes Walnut, a C++ framework for building user interfaces developed by TheCherno. The framework has been modified to better suit the needs of ImGuiDesigner and provide a seamless experience for users. https://github.com/TheCherno/Walnut

A few samples of the features

Table example:

add_to_table.mp4

Widgets example:

widgets.mp4

Text/Font alignment example:

element_manipulation.mp4

Drag/Resize snapping to other elements:

drag.snap.mp4

Drag and Drop onto different parent elements:

drag.drop.parents.mp4

Properties:

properties.mp4

Color Pallette:

color_pallet.mp4