Fixed dead link for "ImGui File Dialogs - CLI and Client Library". My old account I deleted when my email got hacked it caused me to overreact and delete all my online accounts. New links added. |
||
|---|---|---|
| src | ||
| tests | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| imgui.ini | ||
| imguin.nimble | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
ImGuin
Updated to latest Dear ImGui / CImGui version: : v1.92.4 dock (2025/11)
This project is Dear ImGui wrapper library for Nim language 1.
Screenshot
Note: First see examples project ImGuin_examples
tests folder
Dear ImGui + Naylib(Raylib) + rlImgui example
Prerequisites
-
Nim-2.2.4 or later
-
Windows11 or later
MSys2/MinGW command line tools (Unix tools), make, cp, rm, git, ...etcpacman -S mingw-w64-ucrt-x86_64-glfw make -
Linux: Ubuntu / Debian families
$ sudo apt install gcc g++ make git curl xz-utils $ sudo apt install lib{opengl-dev,gl1-mesa-dev,glfw3-dev,xcursor-dev,xinerama-dev,xi-dev,sdl2-dev}-
Install nim
curl https://nim-lang.org/choosenim/init.sh -sSf | shYou must now ensure that the Nimble bin dir is in your PATH. Place the following line in the ~/.profile or ~/.bashrc file. export PATH=/home/username/.nimble/bin:$PATH
-
Install
nimble refresh
nimble uninstall imguin # Remove old versions if exists.
nimble install imguin
Available libraries
Library name / C lang. wrapper
- ImGui / CImGui
- ImPlot / CImPlot
- ImNodes / CImNodes
- ImGuizmo / CImGuizmo
- ImGui-Knobs / CImGui-Knobs
- ImGuiFileDialog / CImGuiFileDialog
- ImGui_Toggle / CimGui_Toggle
- ImPlot3d / CImPlot3d
- ImSpinner / CImSpinner
- ImGuiColorTextEdit / cimCTE (2025/03)
- ImGuiTextSelect / CImGuiTextSelect (2025/09)
- ImGui_Markdown (2025/09) WIP
Additional examples
Frontends and Backends
| GLFW | SDL2 | SDL3 | |
|---|---|---|---|
| OpenGL3 backend | v | v | v |
| SDL2 backend | v | ||
| SDL3 GPU / Renderer backend | v | ||
| Vulkan backend | WIP |
Update / Downgrade Dear ImGui and CImGui by yourself
-
Prerequisite
-
Windows10 or later Clang/LLVM refer to Futhark installation.
nimble install futharkIt must exist
libclang.afile in the library path (e.g. inc:\llvm\lib). -
Linux Debian / Ubuntu families
sudo apt install clang-16 nimble install --passL:"-L/usr/lib/llvm-16/lib" futhark
Important Notice: Confirm Futhark version is v0.15.0 at this time.
nimble dump futhark -
-
Update / Downgrade ImGui/CImGui
-
Compose development folders
First move to your working folder you like, thenmkdir imguin_dev cd imguin_dev git clone https://github.com/dinau/imguin cd imguin -
Clone ImGui/CImGui etc. sources at once forever
pwd imguin make clonelibsCloned libraries are under
../libs/folder -
Recursively update the sources using git
Pullorfetchin the each library folder,
../libs/cimgui
../libs/cimguizmo
../libs/cimnodes
../libs/cimplot
... snip ... -
Checkout arbitrary version with git command in the respective folder
-
Specify your
Clanginclude path toClangIncludePathinimguin/src/imguin/cimgui.nim. -
Generate the definition file uisng Futhark,
pwd imguin make gen -
Install updated files
Properly edit the version info etc inimguin.nimblefile, thenpwd imguin nimble uninstall imguin # Remove old versions if it exists. nimble installThat's all.
Repeat from3.if you'd like to update or downgrade to other version.
-
-
Confirmed version
Windows OS is all OK.ImGui/CImGui Ver. ImGuin Ver. Date Linux Debian Family (3) 1.92.4 dock 1.92.4.0 2025/11 OK 1.92.3 dock 1.92.3.0 2025/09 OK 1.92.2b dock 1.92.2.1 2025/09 OK 1.92.2b dock 1.92.2.0 2025/08 OK 1.92.0 dock 1.92.0.2 2025/08 OK 1.92.0 dock 1.92.0.1 2025/07 OK 1.91.9b dock 1.91.9.4 2025/06 OK 1.91.8dock 1.91.8.2 2025/03 OK 1.91.6dock 1.91.6.15 2025/01 (4) 1.91.4dock 1.91.4.2 2024/12 OK 1.91.3dock 1.91.3.1 2024/10 (4) 1.91.2dock 1.91.2.0 2024/10 (4) 1.91.1dock 1.91.1.2 2024/09 Except ImNodes example 1.91.0dock 1.91.0.0 2024/08 (4) 1.90.4dock 1.90.4.2 2024/02 Use nim-2.0.2 1.89.9dock 1.89.9.8 2023/12 OK (1)(2) (1) Except imnodes and SDL2 example.
(2) Works well only if it is compiled debug mode.
(3) Dedian / Ubuntu familiy.
(4) Doesn't check, but probably will work well.
TODO
Whether can it useClosed. Only be static link.cimgui.dll? (Now it can only be static link)Easier compilation for SDL2 app. (2024/09) Done.Added: ImNodes/CImNodes(2023/10) DoneUnfortunately ImGui 1.89.7 dosn't work well at this moment.(2023/07)Done. (2023/08)Whether can it doDone (2023/09) (#Issue 13)nimble install imguin?Add Font Awesome (Icon Font) demo.Done (2023/04).Can it compile with MSVC (--cc:vcc) ?Done. Except SDL2 demo. (2023/03), TODO (2024/09)Can it compile with Clang (--cc:clang) ?Done. (2023/03)Add SDL2 example.Done. examples/sdl2_opengl3 (2023/03)
- First step is done. (2023/03)
My tools version
Windows11 (main)
- Nim Compiler Version 2.2.4
- GCC (Rev1, Built by MSYS2 project) 15.2.0
- Visual Studio C++/C 2022
- git version 2.46.0.windows.1
- Make: GNU Make 4.4.1
- MSys2/MinGW tools
Linux Debian 13
- Nim Compiler Version 2.2.4
- gcc 14.2.0
- make: GNU Make 4.4.1
Other link
-
File Dialog
-
Other
-
GUI
-
Graphical
-
Similar project ImGui / CImGui
| Language | Project | |
|---|---|---|
| Lua | Script | LuaJITImGui |
| NeLua | Compiler | NeLuaImGui / NeLuaImGui2 |
| Nim | Compiler | ImGuin, Nimgl_test, Nim_implot |
| Python | Script | DearPyGui for 32bit WindowsOS Binary |
| Ruby | Script | igRuby_Examples |
| Zig, C lang. | Compiler | Dear_Bindings_Build |
| Zig | Compiler | ImGuinZ |
| Language | SDL | Project | |
|---|---|---|---|
| LuaJIT | Script | SDL2 | LuaJIT-Platformer |
| Nelua | Compiler | SDL2 | NeLua-Platformer |
| Nim | Compiler | SDL3 / SDL2 | Nim-Platformer-sdl2/ Nim-Platformer-sdl3 |
| Ruby | Script | SDL3 | Ruby-Platformer |
| Zig | Compiler | SDL2 | Zig-Platformer |
-
Other link2
- https://github.com/SpartanJ/SOIL2
SOIL2 is a tiny C library used primarily for uploading textures into OpenGL.
- https://github.com/SpartanJ/SOIL2
-
Memo
error: assignment to 'char **' from incompatible pointer type 'const char * const*' [-Wincompatible-pointer-types]type ConstCstring {.importc: const char *.} = cstring
Notes:
- Using ImPlot3D / ImPlot with Nim
- Nim + ImGui + ImPlot3D / ImPlot demo
- Build with ImPlot3D / ImPlot
- ImPlot3D integration example
- This project builds and runs Dear ImGui + ImPlot3D / ImPlotusing Nim.
- ImPlot3D is compiled from source (implot3d.h / implot3d.cpp)
- ImPlot is compiled from source (implot.h / implot.cpp)
-
It may be better to use the mainstream project nimgl/imgui (ImGui v1.85)
,updated project nimgl-imgui (ImGui v1.89.9) ,sub project nim_implot and test project nimgl_test,
or https://github.com/daniel-j/nimgl-imgui (ImGui v1.91.1) ↩︎



