Real-time GUI layout creator/editor for Dear ImGui

Overview

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. :)

    opened by yousseb 2
  • 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.

    opened by sigmareaver 1
  • 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.

    opened by ebachard 1
  • 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. :)

    opened by yousseb 1
  • 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?

    opened by sigmareaver 3
Releases(v1.2.4)
Owner
i like c++
null
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

null 286 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

Victor Bombi 22 Jul 5, 2021
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

Thibault Hennequin 715 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

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

null 95 Nov 19, 2022
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

omar 44.5k Jan 7, 2023
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

Evan Pezent 2.9k 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

Nick Porcino 1 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

Feej 7 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

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

Emil Ernerfeldt 214 Dec 22, 2022
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

Cedric Guillemet 2.3k Dec 27, 2022
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.

omar 664 Jan 1, 2023
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

Juliette Foucaut 853 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

Kyle Geske 36 Dec 25, 2022
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

Yashmerino 3 Oct 27, 2022
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

Pietro Gagliardi 10.4k 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

Rasmus 11 May 19, 2022
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

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

An addon of imgui for support dock in the window

BB 207 Nov 29, 2022
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

Michał Cichoń 2.4k Jan 9, 2023