Window and GUI system based on Dear ImGui from OCornut

ImWindow

Build status

Window and GUI system based on ImGui from OCornut.

Include docking/floating window, multi window and multi render support.

Custom titlebar Screenshot

Docking

Platform

Actually work on Windows with different backend

  • DX11
  • OpenGL
  • OpenGL with GLFW
  • BGFX
  • Sokol (with DX11 and OpenGL support)

Linux support is in pause.

For Mac it's not decided yet.

License

ImWindow is licensed under the MIT License, see LICENSE for more information.

Owner
Thibault Hennequin
Tool developer in video game industry.
Thibault Hennequin
Comments
  • Cannot build

    Cannot build

    Hi,

    I'm not experienced with C/C++ environments.. however whenever I tried to execute a build script, I get always the following:

    
    PS C:\Users\elect\Documents\Visual Studio 2017\Projects\ImWindow\scripts> & '.\build 2017 and single file format.bat'
    
    C:\Users\elect\Documents\Visual Studio 2017\Projects\ImWindow\scripts>build --with-sff vs2017
    Downloading genie...
    Invoke-WebRequest : A positional parameter cannot be found that accepts argument 'Studio'.
    At line:1 char:1
    + Invoke-WebRequest -Uri https://github.com/bkaradzic/bx/raw/master/too ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidArgument: (:) [Invoke-WebRequest], ParameterBindingException
        + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
    
    'genie.exe' is not recognized as an internal or external command,
    

    Any idea?

  • Unresolved Externals in DX11 example project

    Unresolved Externals in DX11 example project

    Hi, sorry to bug you again, thought I had it worked out, got everything to build at one point, until I tried to build the example project, I got these unresolved externals: image

    I'm building in debug, x86

  • Help to build this library.

    Help to build this library.

    Hello, i can't build this library, have errors. Im link(in project settings) and download all external dependencies but have errors. Im use Visual Studio 2017 Community. Screenshot: default

  • Undefined Identifier ImGuiState

    Undefined Identifier ImGuiState

    Hi there, got everything to build fine expect the last couple of errors which have to do with ImGuiState not being defined, Is it a problem with the version of ImGui im using, I'm pretty sure I have all of the newest stuff? Thank you!

    image

    image

  • not buildable on windows using provided genie scripts

    not buildable on windows using provided genie scripts

    vs2015 upd1 installed, otherwise clean system

    C:\dev\ImWindow\build>build
    C:/dev/ImWindow/build/genie.lua:89: attempt to concatenate a nil value (global '_ACTION')
    stack traceback:
            C:/dev/ath/ImWindow/build/genie.lua:89: in main chunk
            [C]: in upvalue 'builtin_dofile'
            [string "premake = { }..."]:85: in function 'dofile'
            [string "_WORKING_DIR        = os.getcwd()..."]:41: in function '_premake_main'
    
  • Floating windows improvements.

    Floating windows improvements.

    Two small things (too small IMO for pull-req.) within ImWindowDX11.

    1. When you are docking/undocking floating window to/from single external EasyWindow (with E_STYLE_NORMAL sytle): window loses height by 25 pixel every time it is undocked.

    The oSize.y in ImwWindowManager::StartDragWindow should include c_fTabHeight: ImVec2 oSize = ImVec2(pWindow->GetLastSize().x, pWindow->GetLastSize().y + ImwContainer::c_fTabHeight);

    1. When you are docking/undocking floating window to/from single external EasyWindow (with E_STYLE_NORMAL sytle): the position is not aligned with Window ClientArea.

    The pPlatformWindow->SetPosition(...) from ImwWindowManager::InternalFloat should adjust client rect pos based on EasyWindow style, in ImwPlatformWindowDX11::SetPosition: DWORD style = GetWindowLong(m_pWindow->GetHandle(), GWL_STYLE); AdjustWindowRect(&rect, style, FALSE);

  • bugged test?

    bugged test?

    So, I finally succeeded to build it.

    But if I run the test and click on the first Platform window

    Imgur

    Also the other Platform window gets highlighted and I see also some sparse ticks

    Is the test bugged?

  • [Java] Drag drop payload correct size all data is 0

    [Java] Drag drop payload correct size all data is 0

    Example Am I not correctly using the drag drop feature correctly? Whenever I try sending anything over (strings, ints, booleans, etc..) the payload data is always filled with an array of empty bytes.

  • Handle imgui with 16bits and 32bits indices

    Handle imgui with 16bits and 32bits indices

    Currently the bgfx backend uses "transient buffers" that only handles 16bits indices. I modified it to use one dynamic vertex/index buffer per window to handle 16/32bits indices.

  • Support new version of Imgui

    Support new version of Imgui

    Hi, thank you for this great project want to ask you there is any plan to update the project for support latest Imgui? this is a great project, its such waste that its dont get any more updates...

  • Imgui requires an Android-like ListView control

    Imgui requires an Android-like ListView control

    Your project is great and solves a lot of desktop development problems. But there seems to be a need for a control like the Android ListView to provide richer and more visual information Imgui is better suited for developing light applications with visual effects, making desktop applications look like mobile applications. It doesn't need a lot of features, but it has to be visually cool

    68747470733a2f2f6c6375692e6c632d736f66742e696f2f7374617469632f696d616765732f73686f77636173652f6c632d64657369676e2d6578616d706c652d707265766965772e706e67

  • Suggestion: May ImwContainer be pointed by ImwWindow

    Suggestion: May ImwContainer be pointed by ImwWindow

    By store a ImwContainer pointer inside ImwWindow, it is handy to know which ImwContainer contains the window, and through this pointer one can further fetch the PlatformWindow in which some PlatformWindow--specific states can be known.(for example, key and mouse state).

  • Is LAYOUT_SERIALIZATION fully supported?

    Is LAYOUT_SERIALIZATION fully supported?

    It seems that functions like "SaveLayoutToFile" and "LoadLayoutFromFile" are implemented but never used in any sample? and other related interfaces like "CreateWindowByClassName" or "GetWindowClassName" are simply return null

  • add support to dx9 backend

    add support to dx9 backend

    Hi, can you please add support to DX9 backend to the ImWindow? also one small question, what version of window ImWindow support? I mean it will run on a win 7?

Related tags
Real-time GUI layout creator/editor for Dear ImGui
Real-time GUI layout creator/editor for Dear ImGui

ImStudio Real-time GUI layout creator/editor for Dear ImGui Inspired by Code-Building/ImGuiBuilder Features Drag edit Property edit Covers most of the

Sep 28, 2022
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

Sep 21, 2022
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
imgui-filebrowser is a header-only file browser implementation for dear-imgui. C++ 17 is required.
imgui-filebrowser is a header-only file browser implementation for dear-imgui. C++ 17 is required.

imgui-filebrowser imgui-filebrowser is a header-only file browser implementation for dear-imgui. C++ 17 is required. Getting Started imfilebrowser.h s

Sep 27, 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

Sep 21, 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

Sep 23, 2022
GUI for calibrating the wacom tablet to a screen or window
GUI for calibrating the wacom tablet to a screen or window

wacom-settings GUI for calibrating the wacom tablet to a screen or window. Learning project for writing in C. Uses GTK4 library for the GUI and X11 li

Sep 10, 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

Sep 26, 2022
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

Sep 29, 2022
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 2, 2021
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

Jul 20, 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

Sep 23, 2022
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

Sep 24, 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.

Sep 16, 2022
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

Sep 20, 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

Sep 26, 2022
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
Modern Window Sitter for X11 based Desktop Environments
Modern Window Sitter for X11 based Desktop Environments

Modern Window Sitter for X11 based Desktop Environments (Coming to Wayland, Windows and Mac soon-ish). But using with a terminal emulator is recommended.

Aug 30, 2022