Window and GUI system based on Dear ImGui from OCornut

Related tags

GUI imgui
Overview

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.

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?

    opened by elect86 8
  • 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 wanted 
    opened by JoshParker11 4
  • 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

    opened by Shan0x228 3
  • 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

    opened by JoshParker11 3
  • 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'
    
    opened by wizzard0 3
  • 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);

    bug 
    opened by ChemistAion 2
  • 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?

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

    opened by swidku 0
  • 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.

    opened by bdumesnil 0
  • 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...

    opened by Detector-I 1
  • 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

    opened by gitQqqHs 0
  • 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).

    opened by holyodin776 5
  • 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

    opened by holyodin776 2
  • 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?

    opened by Detector-I 4
Releases(0.3)
  • 0.3(Mar 17, 2018)

    • Add autobuild with AppVeyor
    • Add BGFX sample
    • Add class ImwMenu and remove OnMenu from ImwWindow
    • Add Toolbar system and class ImwToolbar
    • Add OnContextMenu virtual function for ImwWindow
    • Add ability to inherited ImwWindow
    • Add customization of tabs rendering
    • Add ability to focus an ImwWindow
    • Add ability to save/load layout (but need to implement an instantiation of ImwWindow by classnames)
    • Add simple Json support for layout serialization
    • Update ImGui to 1.49
    • Change : Split Paint and Render in two step
    • Some fixes
    Source code(tar.gz)
    Source code(zip)
  • 0.2(Dec 18, 2015)

  • 0.1(Sep 27, 2015)

Owner
Thibault Hennequin
Tool developer in video game industry.
Thibault Hennequin
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

Z Guan 435 Jan 1, 2023
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
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
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
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
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
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
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

null 21 Oct 11, 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
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.

Antony Jr 40 Nov 30, 2022