maksym-pasichnyk / imrad

ImRAD is a GUI builder for the ImGui library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ImRAD

ImRAD is a GUI builder for the ImGui library. It generates and parses C++ code.

ImRAD runs on Windows and Linux.

Features

ImRAD is under active development but these are the main features:

  • supports wide range of widgets (WIP)
    • basic widgets like Text, Checkbox, Combo, Button
    • container widgets like Child, Table, CollapsingHeader
  • generates layout using SameLine/Spacing/NextColumn/BeginGroup instead of absolute positioning
    • This ensures widgets respect item spacing and frame padding in a consistent way
    • There is a clear relationship between parent - child widget as well as children ordering which is important for widgets like Table
  • supports property binding. Class variables can be managed through simple class wizard or from binding dialog
    • property binding is important because ImGui is immediate mode GUI library so widget states like initial input text or combobox items must be set at the time of drawing from within the generated code
    • using property binding generated UI becomes dynamic and it can still be designed at the same time
  • supports generating event handlers and other support code
    • for example modal dialog will generate OpenPopup member function with a lambda callback called when dialog is closed
    • event handlers allow event handling user code to be separated from the generated part so the designer still works
  • generated code is delimited by comment markers and user is free to add additional code around and continue to use ImRAD at the same time
    • advanced widget positioning can be implemented this way - see the calculator example (todo)
  • generated code is ready to use in your project and depends only on ImGui library and one accompanying header file imrad.h
    • for Image widget imrad.h uses an additional dependency to stb and GLFW libraries but if you are not going to use it you can comment it out or replace with code targeting different backed
  • ImRAD tracks changes to the opened files so files can be designed in ImRAD and edited in your IDE at the same time
    • maybe the auto-save feature would be useful to have

License

  • ImRAD source code is licensed under the GPL license
  • Any code generated by the tool is excluded from GPL and can be included in any project either open-source or commercial and it's up to the user to decide the license for it.
  • Additionally since imrad.h is used by the generated code it is also excluded from the GPL license

Download binaries

for up-to date version clone & build the repository using CMake. There are no nightly builds at the moment.

Releases

Screenshots

screen1

More information

Please check the wiki content for tutorials and more detailed explanations

About

ImRAD is a GUI builder for the ImGui library

License:GNU General Public License v3.0


Languages

Language:C++ 98.4%Language:CMake 1.5%Language:Shell 0.1%