Real-time GUI layout creator/editor for Dear ImGui

ImStudio

Build Status

Real-time GUI layout creator/editor for Dear ImGui

Screenshot with all windows

Making a simple layout

Inspired by Code-Building/ImGuiBuilder

Features

  • Drag edit
  • Property edit
  • Covers most of the commonly used default widgets (primitives, data inputs, and other miscellaneous)
  • Child windows
  • Real-time generation
  • Export to clipboard
  • Useful tools (Style & Color export, Demo Window, etc.)
  • Helpful resources (external)

Installation

Dependencies

  • GLFW
    Ubuntu Linux: sudo apt-get install libglfw3 libglfw3-dev
    Arch Linux: sudo pacman -S glfw
    MacOS: brew install glfw

Instructions

git clone https://github.com/Raais/ImStudio
cd ImStudio
make
./ImStudio

Ubuntu one-liner (not recommended)
#tested 20.04 | this is mainly for quickly testing on a VM
sudo apt-get -y update && sudo apt-get -y install build-essential git libglfw3 libglfw3-dev && git clone https://github.com/Raais/ImStudio && cd ImStudio && make -j2 && ./ImStudio

Credits

Thanks to Omar for Dear ImGui.
Thanks to Code-Building for the inspiration.

Comments
  • Makefile -> CMake + MSVC for Windows + Windows Workflow & Installer + macOS Workflow

    Makefile -> CMake + MSVC for Windows + Windows Workflow & Installer + macOS Workflow

    Thank you very much for the nice work. I think that developer community of Dear ImGUI will benefit a lot from this project.

    I made tiny modifications to the C++ part so that it can compile cleanly using MSVC 2019 and replaced the Makefile with CMake. Also added workflow/actions for Windows and macOS.

    You now need to install glfw only if the target platform is Linux. Windows & macOS will automatically download GLFW during the build process and build a static version that can then be linked against. This means that no brew is needed or macOS. It also means that native Windows runtime from VS2019 can be utilized and there's no need for mingw or msys runtimes. The app works pretty nicely on Windows. I haven't tried it yet on macOS, but the workflow builds with a few warnings.

    The Windows Workflow will now also create an MSI installer that users can install and use right away.

    Hope this helps. :)

  • Generated Output: ImGui::End() needs to be outside of if block.

    Generated Output: ImGui::End() needs to be outside of if block.

    ImGui::End() should always be called, even if ImGui::Begin() returns false. Otherwise ImGui will assert on a begin/end stack mismatch.

    This might seem confusing initially, because ImGui widgets that have Begin/End calls should have their End calls inside the if block. However, that rule does not apply to ImGui windows.

  • Fix some warning and add a Linux script to simplify the build

    Fix some warning and add a Linux script to simplify the build

    Hello,

    Thanks a lot for your nice tool, and sharing your code. I'll study your tool, and try to help if I can. Waiting, I found some little changes like fix some warnings. The change are under MIT license, i.e. for the script.

    Feel free to use it, or not, and to do whatever you want of this PR.

  • Make -> CMake + Workflows for Windows & macOS

    Make -> CMake + Workflows for Windows & macOS

    Thank you very much for the nice work. I think that developer community of Dear ImGUI will benefit a lot from this project.

    I made tiny modifications to the C++ part so that it can compile cleanly using MSVC 2019 and replaced the Makefile with CMake. Also added workflow/actions for Windows and macOS.

    You now need to install glfw only if the target platform is Linux. Windows & macOS will automatically download GLFW during the build process and build a static version that can then be linked against. This means that no brew is needed or macOS. It also means that native Windows runtime from VS2019 can be utilized and there's no need for mingw or msys runtimes. The app works pretty nicely on Windows. I haven't tried it yet on macOS, but the workflow builds with a few warnings.

    Hope this helps. :)

  • BaseObject's parent pointer variable not initialized?

    BaseObject's parent pointer variable not initialized?

    I'm working on a serializer for ImStudio so that I can save and load GUI projects (using yaml-cpp).

    Admittedly, I'm not super familiar with how ImStudio stores and looks up children/parents, or rather, how the object hierarchy works, at the moment.

    I wrote something like this pseudo code:

        if (obj.parent)
            out << "ParentID" << obj.parent->id;
        else
            out << "ParentID" << 0;
    

    I then tested this serialization with a few widgets (no nesting) in a window, and the objects' parent ID always serialize as: ParentID: 30198988 (This turns out to be 0x01CCCCCC, probably some kind of magic number.) I tried adding the line parent = nullptr; to BaseObject's constructor, but this doesn't seem to make a difference. And also, when I put in a break point and look at the object that is currently being serialized, the obj.parent doesn't appear to be valid memory.

    I was hoping you might be able to see if you have similar results with your object.parent, or if it's just something I did.

    Also, I did notice that in the Object constructor, it seems to set itself as the parent of itself, so I'm thinking I may be misunderstanding your data structure, and it isn't tree-like?

Addon widgets for GUI library Dear ImGui.
Addon widgets for GUI library Dear ImGui.

ImGui-Addons Addon widgets for GUI library Dear ImGui. File Dialog A simple cross-platform file dialog that uses dirent interface for reading director

Jan 7, 2023
This is a thin c-api wrapper programmatically generated for the excellent C++ immediate mode gui Dear ImGui.

cimgui This is a thin c-api wrapper programmatically generated for the excellent C++ immediate mode gui Dear ImGui. All imgui.h functions are programm

Jul 5, 2021
Window and GUI system based on Dear ImGui from OCornut
Window and GUI system based on Dear ImGui from OCornut

ImWindow Window and GUI system based on ImGui from OCornut. Include docking/floating window, multi window and multi render support. Platform Actually

Dec 20, 2022
This is a collection of widgets and utilities for the immediate mode GUI (imgui) that I am developing for the critic2 GUI
This is a collection of widgets and utilities for the immediate mode GUI (imgui) that I am developing for the critic2 GUI

ImGui Goodies This is a collection of widgets and utilities for the immediate mode GUI (imgui) that I am developing for the critic2 GUI. Currently, th

Nov 19, 2022
Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies

Dear ImGui (This library is available under a free and permissive license, but needs financial support to sustain its continued improvements. In addit

Jan 7, 2023
Advanced 2D Plotting for Dear ImGui
Advanced 2D Plotting for Dear ImGui

ImPlot ImPlot is an immediate mode, GPU accelerated plotting library for Dear ImGui. It aims to provide a first-class API that ImGui fans will love. I

Jan 9, 2023
Dear ImGui prototyping wrapper.

LabImGui Prototyping framework LabImGui wraps up creating a window, GL bindings, and a full screen docking set up with ImGui so that all of the boiler

Dec 5, 2022
An integrated information center created with dear ImGui using modern C++ design / coding style.

ImGui info-center Introduction An integrated notification and information center created with dear ImGui. Interfaces and variables are designed under

Oct 29, 2022
This is a software renderer for Dear ImGui. I built it not out of a specific need, but because it was fun
This is a software renderer for Dear ImGui. I built it not out of a specific need, but because it was fun

Dear ImGui software renderer This is a software renderer for Dear ImGui. I built it not out of a specific need, but because it was fun. The goal was t

Dec 22, 2022
Immediate mode 3D gizmo for scene editing and other controls based on Dear Imgui
Immediate mode 3D gizmo for scene editing and other controls based on Dear Imgui

ImGuizmo Latest stable tagged version is 1.83. Current master version is 1.84 WIP. What started with the gizmo is now a collection of dear imgui widge

Dec 27, 2022
Nice things to use along dear imgui
Nice things to use along dear imgui

Mini hexadecimal editor! Right-click for option menu. Features: Keyboard controls. Read-only mode. Optional Ascii display. Optional HexII display. Goto address. Highlight range/function. Read/Write handlers.

Jan 1, 2023
A permissively licensed markdown single-header library for Dear ImGui.
A permissively licensed markdown single-header library for Dear ImGui.

Support development of imgui_markdown through GitHub Sponsors or Patreon imgui_markdown Markdown For Dear ImGui A permissively licensed markdown singl

Jan 8, 2023
Sample Unreal Engine 5.0.1 C++ Project That Incorporates Dear ImGui

UE5 With Dear ImGui A sample Unreal Engine 5.0.1 C++ project that incorporates the Dear ImGui graphical user interface library. YouTube Tutorial This

Dec 25, 2022
Simple Notepad App. C++ with Qt Creator
Simple Notepad App. C++ with Qt Creator

Notepad How to run the app? To run this application: You have to have installed latest Visual C++ Redistributable for Visual Studio 2015, 2017 and 201

Oct 27, 2022
Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.
Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.

libui: a portable GUI library for C This README is being written. Status It has come to my attention that I have not been particularly clear about how

Jan 2, 2023
super duper simple gui for C, wrapping imgui and stb

super duper simle gui for C, wrapping imgui and stb You can use it as a static library with cmake. See the example directory for a complete example. E

May 19, 2022
Simple ImGui external base. Uses ImGui DX9.
Simple ImGui external base. Uses ImGui DX9.

ImGui External Base ??️ What is this? ⚡ Hello all! I used to use noteffex's loader base for all my external ImGui projects. I got bored of using this

Jun 29, 2022
An addon of imgui for supporting docks in the imgui's window
An addon of imgui for supporting docks in the imgui's window

An addon of imgui for support dock in the window

Nov 29, 2022
An implementation of node editor with ImGui-like API.
An implementation of node editor with ImGui-like API.

Node Editor in ImGui About An implementation of node editor with ImGui-like API. Project purpose is to serve as a basis for more complex solutions lik

Jan 9, 2023