@@ -249,6 +249,9 @@ Dear ImGui Bundle includes the following libraries, which are available in {cpp}
249249|https://github.com/epezent/implot[ImPlot]: Immediate Mode Plotting
250250|image:{url-demo-images}/battery_implot.jpg[width=200]
251251
252+ |https://github.com/brenocq/implot3d[ImPlot3D]: Immediate Mode 3D Plotting
253+ |image:{url-demo-images}/battery_implot3d.jpg[width=200]
254+
252255
253256|https://github.com/CedricGuillemet/ImGuizmo.git[ImGuizmo]: Immediate mode 3D gizmo for scene editing and other controls based on Dear ImGui
254257|image:{url-demo-images}/demo_gizmo.jpg[width=200]
@@ -757,11 +760,9 @@ void LoadFonts(AppState& appState) // This is called by runnerParams.callbacks.L
757760 HelloImGui::ImGuiDefaultSettings::LoadDefaultFont_WithFontAwesomeIcons();
758761
759762 // Load the title font. Also manually merge FontAwesome icons to it
760- appState.TitleFont = HelloImGui::LoadFont("fonts/DroidSans.ttf", 18.f);
761763 HelloImGui::FontLoadingParams fontLoadingParamsTitleIcons;
762- fontLoadingParamsTitleIcons.mergeToLastFont = true;
763- fontLoadingParamsTitleIcons.useFullGlyphRange = true;
764- appState.TitleFont = HelloImGui::LoadFont("fonts/Font_Awesome_6_Free-Solid-900.otf", 18.f, fontLoadingParamsTitleIcons);
764+ fontLoadingParamsTitleIcons.mergeFontAwesome = true;
765+ appState.TitleFont = HelloImGui::LoadFont("fonts/Roboto/Roboto-BoldItalic.ttf", 18.f, fontLoadingParamsTitleIcons);
765766
766767 // Load an Emoji font
767768 HelloImGui::FontLoadingParams fontLoadingParamsEmoji;
@@ -1130,7 +1131,7 @@ void DemoAssets(AppState& appState)
11301131
11311132void DemoFonts(AppState& appState)
11321133{
1133- ImGui::PushFont(appState.TitleFont); ImGui::Text("Fonts - " ICON_FA_PEN_NIB ); ImGui::PopFont();
1134+ ImGui::PushFont(appState.TitleFont); ImGui::Text("Fonts - " ICON_FA_ROCKET ); ImGui::PopFont();
11341135
11351136 ImGui::TextWrapped("Mix icons " ICON_FA_FACE_SMILE " and text " ICON_FA_ROCKET "");
11361137 if (ImGui::IsItemHovered())
@@ -1707,12 +1708,10 @@ def load_fonts(app_state: AppState): # This is called by runnerParams.callbacks
17071708 hello_imgui.imgui_default_settings.load_default_font_with_font_awesome_icons()
17081709
17091710 # Load the title font
1710- app_state.title_font = hello_imgui.load_font("fonts/DroidSans.ttf", 18.0)
1711+ # app_state.title_font = hello_imgui.load_font("fonts/DroidSans.ttf", 18.0)
17111712 font_loading_params_title_icons = hello_imgui.FontLoadingParams()
1712- font_loading_params_title_icons.merge_to_last_font = True
1713- font_loading_params_title_icons.use_full_glyph_range = True
1714- app_state.title_font = hello_imgui.load_font("fonts/Font_Awesome_6_Free-Solid-900.otf",
1715- 18.0, font_loading_params_title_icons)
1713+ font_loading_params_title_icons.merge_font_awesome = True
1714+ app_state.title_font = hello_imgui.load_font("fonts/Roboto/Roboto-BoldItalic.ttf", 18, font_loading_params_title_icons)
17161715
17171716 # Load the emoji font
17181717 font_loading_params_emoji = hello_imgui.FontLoadingParams()
@@ -2112,7 +2111,7 @@ def demo_assets(app_state: AppState):
21122111
21132112def demo_fonts(app_state: AppState):
21142113 imgui.push_font(app_state.title_font)
2115- imgui.text("Fonts - " + icons_fontawesome_6.ICON_FA_PEN_NIB )
2114+ imgui.text("Fonts - " + icons_fontawesome_6.ICON_FA_ROCKET )
21162115 imgui.pop_font()
21172116
21182117 imgui.text_wrapped("Mix icons " + icons_fontawesome_6.ICON_FA_FACE_SMILE + " and text " + icons_fontawesome_6.ICON_FA_ROCKET)
@@ -2655,7 +2654,7 @@ NOTE: See link:https://github.com/ocornut/imgui_test_engine/blob/main/imgui_test
26552654{cpp}
26562655[source, cpp]
26572656----
2658- #ifdef IMGUI_BUNDLE_WITH_TEST_ENGINE
2657+ #ifdef HELLOIMGUI_WITH_TEST_ENGINE
26592658// A demo app that demonstrates how to use ImGui Test Engine (https://github.com/ocornut/imgui_test_engine)
26602659//
26612660// It demonstrates how to:
@@ -2901,9 +2900,9 @@ void ApplyApplicationLayout(HelloImGui::RunnerParams* runnerParams)
29012900 runnerParams->dockingParams.dockableWindows = CreateDockableWindows();
29022901 runnerParams->dockingParams.layoutCondition = HelloImGui::DockingLayoutCondition::ApplicationStart;
29032902}
2904- #else
2903+ #else // #ifdef HELLOIMGUI_WITH_TEST_ENGINE
29052904int main(int, const char**) {}
2906- #endif // #ifdef IMGUI_BUNDLE_WITH_TEST_ENGINE
2905+ #endif // #ifdef HELLOIMGUI_WITH_TEST_ENGINE
29072906----
29082907====
29092908
@@ -3601,6 +3600,7 @@ link:https://traineq.org/ImGuiBundle/emscripten/bin/demo_widgets.html[Try these
36013600----
36023601// Part of ImGui Bundle - MIT License - Copyright (c) 2022-2024 Pascal Thomet - https://github.com/pthom/imgui_bundle
36033602#include "hello_imgui/hello_imgui.h"
3603+ #include "hello_imgui/icons_font_awesome_4.h"
36043604#include "imspinner/imspinner.h"
36053605#include "imgui_toggle/imgui_toggle.h"
36063606#include "imgui_toggle/imgui_toggle_presets.h"
@@ -3899,9 +3899,18 @@ void DemoImFileDialog()
38993899
39003900 ImGuiMd::RenderUnindented(R"(
39013901 # ImFileDialog
3902- [ImFileDialog](https://github.com/pthom/ImFileDialog.git) provides file dialogs for ImGui, with images preview.
3903- *Not (yet) adapted for High DPI resolution under windows*
3902+ [ImFileDialog](https://github.com/pthom/ImFileDialog.git) provides file dialogs for ImGui.
39043903 )");
3904+ ImGui::SameLine();
3905+ ImGui::Text(ICON_FA_EXCLAMATION_TRIANGLE);
3906+ ImGui::SetItemTooltip(
3907+ "It is advised to use Portable File Dialogs instead, which offer native dialogs on each platform, "
3908+ "as well as notifications and messages.\n\n"
3909+ "Known limitations of ImFileDialog:\n"
3910+ " * Not adapted for High DPI resolution under windows\n"
3911+ " * No support for multi-selection\n"
3912+ " * Will not work under python with a pure python backend (requires to use `immapp.run()`)"
3913+ );
39053914
39063915 if (ImGui::Button("Open file"))
39073916 ifd::FileDialog::Instance().Open(
@@ -4094,6 +4103,7 @@ from imgui_bundle import (
40944103 immapp,
40954104 ImVec4,
40964105 im_cool_bar,
4106+ icons_fontawesome,
40974107)
40984108from imgui_bundle import imgui_command_palette as imcmd
40994109from imgui_bundle import portable_file_dialogs as pfd
@@ -4355,14 +4365,24 @@ def demo_imfile_dialog():
43554365 if not has_submodule("im_file_dialog"):
43564366 return
43574367 from imgui_bundle import im_file_dialog as ifd
4358-
43594368 imgui_md.render_unindented(
43604369 """
43614370 # ImFileDialog
4362- [ImFileDialog](https://github.com/pthom/ImFileDialog.git) provides file dialogs for ImGui, with images preview.
4363- *Not (yet) adapted for High DPI resolution under windows*
4371+ [ImFileDialog](https://github.com/pthom/ImFileDialog.git) provides file dialogs for ImGui.
43644372 """
43654373 )
4374+ # Warning / low support
4375+ imgui.same_line()
4376+ imgui.text(icons_fontawesome.ICON_FA_EXCLAMATION_TRIANGLE)
4377+ imgui.set_item_tooltip("""
4378+ It is advised to use Portable File Dialogs instead, which offer native dialogs on each platform,
4379+ as well as notifications and messages.
4380+
4381+ Known limitations of ImFileDialog:
4382+ * Not adapted for High DPI resolution under windows
4383+ * No support for multi-selection
4384+ * Will not work under python with a pure python backend (requires to use `immapp.run()`)
4385+ """)
43664386
43674387 if imgui.button("Open file"):
43684388 ifd.FileDialog.instance().open(
@@ -6162,9 +6182,10 @@ if __name__ == "__main__":
61626182
61636183from imgui_bundle.python_backends.glfw_backend import GlfwRenderer
61646184import OpenGL.GL as gl # type: ignore
6185+ # When using a pure python backend, prefer to import glfw before imgui_bundle (so that you end up using the standard glfw, not the one provided by imgui_bundle)
6186+ import glfw # type: ignore
61656187from imgui_bundle import imgui, imgui_ctx
61666188from imgui_bundle import imgui_md
6167- import glfw # type: ignore
61686189import sys
61696190
61706191
0 commit comments