"
+ }, {
+ "@type" : "AstFunctionDecl",
+ "name" : "ClearPlatformHandlers",
+ "resultType" : "void",
+ "decls" : [ {
+ "@type" : "AstFullComment",
+ "decls" : [ {
+ "@type" : "AstParagraphComment",
+ "decls" : [ {
+ "@type" : "AstTextComment",
+ "text" : "------------------------------------------------------------------"
+ }, {
+ "@type" : "AstTextComment",
+ "text" : " Functions"
+ }, {
+ "@type" : "AstTextComment",
+ "text" : "------------------------------------------------------------------"
+ } ]
+ } ]
+ } ]
+ }, {
+ "@type" : "AstFunctionDecl",
+ "name" : "ClearRendererHandlers",
+ "resultType" : "void"
} ]
}, {
"@type" : "AstRecordDecl",
@@ -37742,7 +43238,7 @@
"@type" : "AstParagraphComment",
"decls" : [ {
"@type" : "AstTextComment",
- "text" : " (Optional) Support for IME (Input Method Editor) via the io.SetPlatformImeDataFn() function."
+ "text" : " (Optional) Support for IME (Input Method Editor) via the platform_io.Platform_SetImeDataFn() function. Handler is called during EndFrame()."
} ]
} ]
}, {
@@ -37750,6 +43246,11 @@
"name" : "WantVisible",
"qualType" : "bool",
"desugaredQualType" : "bool"
+ }, {
+ "@type" : "AstFieldDecl",
+ "name" : "WantTextInput",
+ "qualType" : "bool",
+ "desugaredQualType" : "bool"
}, {
"@type" : "AstFieldDecl",
"name" : "InputPos",
@@ -37760,168 +43261,95 @@
"name" : "InputLineHeight",
"qualType" : "float",
"desugaredQualType" : "float"
+ }, {
+ "@type" : "AstFieldDecl",
+ "name" : "ViewportId",
+ "qualType" : "ImGuiID",
+ "desugaredQualType" : "unsigned int"
} ]
}, {
"@type" : "AstNamespaceDecl",
"name" : "ImGui",
"decls" : [ {
"@type" : "AstFunctionDecl",
- "name" : "BeginChildFrame",
- "resultType" : "bool",
+ "name" : "PushFont",
+ "resultType" : "void",
"decls" : [ {
"@type" : "AstParmVarDecl",
- "name" : "id",
- "qualType" : "ImGuiID",
- "desugaredQualType" : "unsigned int"
- }, {
- "@type" : "AstParmVarDecl",
- "name" : "size",
- "qualType" : "const ImVec2 &",
- "desugaredQualType" : "const ImVec2 &"
- }, {
- "@type" : "AstParmVarDecl",
- "name" : "window_flags",
- "qualType" : "ImGuiWindowFlags",
- "desugaredQualType" : "int"
+ "name" : "font",
+ "qualType" : "ImFont *",
+ "desugaredQualType" : "ImFont *"
}, {
"@type" : "AstFullComment",
"decls" : [ {
"@type" : "AstParagraphComment",
"decls" : [ {
"@type" : "AstTextComment",
- "text" : " OBSOLETED in 1.90.0 (from September 2023)"
+ "text" : " OBSOLETED in 1.92.0 (from June 2025)"
} ]
} ]
} ]
}, {
"@type" : "AstFunctionDecl",
- "name" : "EndChildFrame",
- "resultType" : "void"
- }, {
- "@type" : "AstFunctionDecl",
- "name" : "ShowStackToolWindow",
+ "name" : "SetWindowFontScale",
"resultType" : "void",
"decls" : [ {
"@type" : "AstParmVarDecl",
- "name" : "p_open",
- "qualType" : "bool *",
- "desugaredQualType" : "bool *"
- }, {
- "@type" : "AstFullComment",
- "decls" : [ {
- "@type" : "AstParagraphComment",
- "decls" : [ {
- "@type" : "AstTextComment",
- "text" : "static inline bool BeginChild(const char* str_id, const ImVec2"
- }, {
- "@type" : "AstTextComment",
- "text" : "&"
- }, {
- "@type" : "AstTextComment",
- "text" : " size_arg, bool border, ImGuiWindowFlags window_flags){ return BeginChild(str_id, size_arg, border ? ImGuiChildFlags_Border : ImGuiChildFlags_None, window_flags); } // Unnecessary as true == ImGuiChildFlags_Border"
- }, {
- "@type" : "AstTextComment",
- "text" : "static inline bool BeginChild(ImGuiID id, const ImVec2"
- }, {
- "@type" : "AstTextComment",
- "text" : "&"
- }, {
- "@type" : "AstTextComment",
- "text" : " size_arg, bool border, ImGuiWindowFlags window_flags) { return BeginChild(id, size_arg, border ? ImGuiChildFlags_Border : ImGuiChildFlags_None, window_flags); } // Unnecessary as true == ImGuiChildFlags_Border"
- } ]
- } ]
+ "name" : "scale",
+ "qualType" : "float",
+ "desugaredQualType" : "float"
} ]
}, {
"@type" : "AstFunctionDecl",
- "name" : "ListBox",
- "resultType" : "bool",
+ "name" : "Image",
+ "resultType" : "void",
"decls" : [ {
"@type" : "AstParmVarDecl",
- "name" : "label",
- "qualType" : "const char *",
- "desugaredQualType" : "const char *"
+ "name" : "tex_ref",
+ "qualType" : "ImTextureRef",
+ "desugaredQualType" : "ImTextureRef"
}, {
"@type" : "AstParmVarDecl",
- "name" : "current_item",
- "qualType" : "int *",
- "desugaredQualType" : "int *"
- }, {
- "@type" : "AstParmVarDecl",
- "name" : "old_callback",
- "qualType" : "bool (*)(void *, int, const char **)",
- "desugaredQualType" : "bool (*)(void *, int, const char **)"
- }, {
- "@type" : "AstParmVarDecl",
- "name" : "user_data",
- "qualType" : "void *",
- "desugaredQualType" : "void *"
- }, {
- "@type" : "AstParmVarDecl",
- "name" : "items_count",
- "qualType" : "int",
- "desugaredQualType" : "int"
- }, {
- "@type" : "AstParmVarDecl",
- "name" : "height_in_items",
- "qualType" : "int",
- "desugaredQualType" : "int"
- } ]
- }, {
- "@type" : "AstFunctionDecl",
- "name" : "Combo",
- "resultType" : "bool",
- "decls" : [ {
- "@type" : "AstParmVarDecl",
- "name" : "label",
- "qualType" : "const char *",
- "desugaredQualType" : "const char *"
+ "name" : "image_size",
+ "qualType" : "const ImVec2 &",
+ "desugaredQualType" : "const ImVec2 &"
}, {
"@type" : "AstParmVarDecl",
- "name" : "current_item",
- "qualType" : "int *",
- "desugaredQualType" : "int *"
+ "name" : "uv0",
+ "qualType" : "const ImVec2 &",
+ "desugaredQualType" : "const ImVec2 &"
}, {
"@type" : "AstParmVarDecl",
- "name" : "old_callback",
- "qualType" : "bool (*)(void *, int, const char **)",
- "desugaredQualType" : "bool (*)(void *, int, const char **)"
+ "name" : "uv1",
+ "qualType" : "const ImVec2 &",
+ "desugaredQualType" : "const ImVec2 &"
}, {
"@type" : "AstParmVarDecl",
- "name" : "user_data",
- "qualType" : "void *",
- "desugaredQualType" : "void *"
+ "name" : "tint_col",
+ "qualType" : "const ImVec4 &",
+ "desugaredQualType" : "const ImVec4 &"
}, {
"@type" : "AstParmVarDecl",
- "name" : "items_count",
- "qualType" : "int",
- "desugaredQualType" : "int"
+ "name" : "border_col",
+ "qualType" : "const ImVec4 &",
+ "desugaredQualType" : "const ImVec4 &"
}, {
- "@type" : "AstParmVarDecl",
- "name" : "popup_max_height_in_items",
- "qualType" : "int",
- "desugaredQualType" : "int"
- } ]
- }, {
- "@type" : "AstFunctionDecl",
- "name" : "SetItemAllowOverlap",
- "resultType" : "void",
- "decls" : [ {
"@type" : "AstFullComment",
"decls" : [ {
"@type" : "AstParagraphComment",
"decls" : [ {
"@type" : "AstTextComment",
- "text" : " OBSOLETED in 1.89.7 (from June 2023)"
+ "text" : " OBSOLETED in 1.91.9 (from February 2025)"
} ]
} ]
} ]
}, {
"@type" : "AstFunctionDecl",
- "name" : "PushAllowKeyboardFocus",
+ "name" : "PushButtonRepeat",
"resultType" : "void",
"decls" : [ {
"@type" : "AstParmVarDecl",
- "name" : "tab_stop",
+ "name" : "repeat",
"qualType" : "bool",
"desugaredQualType" : "bool"
}, {
@@ -37930,116 +43358,50 @@
"@type" : "AstParagraphComment",
"decls" : [ {
"@type" : "AstTextComment",
- "text" : " OBSOLETED in 1.89.4 (from March 2023)"
+ "text" : " OBSOLETED in 1.91.0 (from July 2024)"
} ]
} ]
} ]
}, {
"@type" : "AstFunctionDecl",
- "name" : "PopAllowKeyboardFocus",
+ "name" : "PopButtonRepeat",
"resultType" : "void"
}, {
"@type" : "AstFunctionDecl",
- "name" : "ImageButton",
- "resultType" : "bool",
+ "name" : "PushTabStop",
+ "resultType" : "void",
"decls" : [ {
"@type" : "AstParmVarDecl",
- "name" : "user_texture_id",
- "qualType" : "ImTextureID",
- "desugaredQualType" : "void *"
- }, {
- "@type" : "AstParmVarDecl",
- "name" : "size",
- "qualType" : "const ImVec2 &",
- "desugaredQualType" : "const ImVec2 &"
- }, {
- "@type" : "AstParmVarDecl",
- "name" : "uv0",
- "qualType" : "const ImVec2 &",
- "desugaredQualType" : "const ImVec2 &"
- }, {
- "@type" : "AstParmVarDecl",
- "name" : "uv1",
- "qualType" : "const ImVec2 &",
- "desugaredQualType" : "const ImVec2 &"
- }, {
- "@type" : "AstParmVarDecl",
- "name" : "frame_padding",
- "qualType" : "int",
- "desugaredQualType" : "int"
- }, {
- "@type" : "AstParmVarDecl",
- "name" : "bg_col",
- "qualType" : "const ImVec4 &",
- "desugaredQualType" : "const ImVec4 &"
- }, {
- "@type" : "AstParmVarDecl",
- "name" : "tint_col",
- "qualType" : "const ImVec4 &",
- "desugaredQualType" : "const ImVec4 &"
- }, {
- "@type" : "AstFullComment",
- "decls" : [ {
- "@type" : "AstParagraphComment",
- "decls" : [ {
- "@type" : "AstTextComment",
- "text" : " OBSOLETED in 1.89 (from August 2022)"
- } ]
- } ]
+ "name" : "tab_stop",
+ "qualType" : "bool",
+ "desugaredQualType" : "bool"
} ]
}, {
"@type" : "AstFunctionDecl",
- "name" : "GetKeyIndex",
- "resultType" : "ImGuiKey",
+ "name" : "PopTabStop",
+ "resultType" : "void"
+ }, {
+ "@type" : "AstFunctionDecl",
+ "name" : "GetContentRegionMax",
+ "resultType" : "ImVec2",
"decls" : [ {
- "@type" : "AstParmVarDecl",
- "name" : "key",
- "qualType" : "ImGuiKey",
- "desugaredQualType" : "ImGuiKey"
- }, {
"@type" : "AstFullComment",
"decls" : [ {
"@type" : "AstParagraphComment",
"decls" : [ {
"@type" : "AstTextComment",
- "text" : " OBSOLETED in 1.87 (from February 2022 but more formally obsoleted April 2024)"
+ "text" : " You do not need those functions! See #7838 on GitHub for more info."
} ]
} ]
} ]
- } ]
- }, {
- "@type" : "AstEnumDecl",
- "name" : "ImGuiModFlags_",
- "decls" : [ {
- "@type" : "AstEnumConstantDecl",
- "name" : "ImGuiModFlags_None",
- "qualType" : "ImGuiModFlags_",
- "order" : 0,
- "evaluatedValue" : 0
- }, {
- "@type" : "AstEnumConstantDecl",
- "name" : "ImGuiModFlags_Ctrl",
- "qualType" : "ImGuiModFlags_",
- "order" : 1,
- "evaluatedValue" : 4096
}, {
- "@type" : "AstEnumConstantDecl",
- "name" : "ImGuiModFlags_Shift",
- "qualType" : "ImGuiModFlags_",
- "order" : 2,
- "evaluatedValue" : 8192
- }, {
- "@type" : "AstEnumConstantDecl",
- "name" : "ImGuiModFlags_Alt",
- "qualType" : "ImGuiModFlags_",
- "order" : 3,
- "evaluatedValue" : 16384
+ "@type" : "AstFunctionDecl",
+ "name" : "GetWindowContentRegionMin",
+ "resultType" : "ImVec2"
}, {
- "@type" : "AstEnumConstantDecl",
- "name" : "ImGuiModFlags_Super",
- "qualType" : "ImGuiModFlags_",
- "order" : 4,
- "evaluatedValue" : 32768
+ "@type" : "AstFunctionDecl",
+ "name" : "GetWindowContentRegionMax",
+ "resultType" : "ImVec2"
} ]
} ]
}
\ No newline at end of file
diff --git a/buildSrc/src/main/resources/generator/api/ast/ast-imgui_node_editor.json b/buildSrc/src/main/resources/generator/api/ast/ast-imgui_node_editor.json
index e5f1572e..cb306290 100644
--- a/buildSrc/src/main/resources/generator/api/ast/ast-imgui_node_editor.json
+++ b/buildSrc/src/main/resources/generator/api/ast/ast-imgui_node_editor.json
@@ -1,9 +1,9 @@
{
"info" : {
"source" : "include/imgui-node-editor/imgui_node_editor.h",
- "hash" : "22122655801cd34b78703e44a74d5ee9",
+ "hash" : "dc12135522738cbd4dbe5d2575829dc9",
"url" : "https://github.com/thedmd/imgui-node-editor",
- "revision" : "b302971455b3719ec9b5fb94b2f92d27c62b9ff0"
+ "revision" : "021aa0ea4da13fed864bafb2a92d4c5205076866"
},
"decls" : [ {
"@type" : "AstNamespaceDecl",
diff --git a/buildSrc/src/main/resources/generator/api/ast/ast-implot.json b/buildSrc/src/main/resources/generator/api/ast/ast-implot.json
index 6af6c754..fd8596fd 100644
--- a/buildSrc/src/main/resources/generator/api/ast/ast-implot.json
+++ b/buildSrc/src/main/resources/generator/api/ast/ast-implot.json
@@ -1,9 +1,9 @@
{
"info" : {
"source" : "include/implot/implot.h",
- "hash" : "26beb5cb000f8e7982b3d2e46693fc78",
+ "hash" : "12fbbac559018475f060bca386b45ed6",
"url" : "https://github.com/epezent/implot.git",
- "revision" : "1f7a8c0314d838a76695bccebe0f66864f507bc0"
+ "revision" : "4707b245fbcd69075b1a8a74fa8d2435561b3134"
},
"decls" : [ {
"@type" : "AstRecordDecl",
@@ -76,7 +76,7 @@
}, {
"@type" : "AstEnumConstantDecl",
"name" : "ImAxis_COUNT",
- "docComment" : "bookeeping",
+ "docComment" : "bookkeeping",
"qualType" : "ImAxis_",
"order" : 6,
"evaluatedValue" : 6
@@ -104,7 +104,7 @@
}, {
"@type" : "AstEnumConstantDecl",
"name" : "ImPlotFlags_NoTitle",
- "docComment" : "the plot title will not be displayed (titles are also hidden if preceeded by double hashes, e.g. \"##MyPlot\")",
+ "docComment" : "the plot title will not be displayed (titles are also hidden if preceded by double hashes, e.g. \"##MyPlot\")",
"qualType" : "ImPlotFlags_",
"order" : 1,
"value" : "1 << 0",
@@ -374,7 +374,7 @@
}, {
"@type" : "AstEnumConstantDecl",
"name" : "ImPlotSubplotFlags_NoTitle",
- "docComment" : "the subplot title will not be displayed (titles are also hidden if preceeded by double hashes, e.g. \"##MySubplot\")",
+ "docComment" : "the subplot title will not be displayed (titles are also hidden if preceded by double hashes, e.g. \"##MySubplot\")",
"qualType" : "ImPlotSubplotFlags_",
"order" : 1,
"value" : "1 << 0",
@@ -536,6 +536,14 @@
"order" : 7,
"value" : "1 << 6",
"evaluatedValue" : 64
+ }, {
+ "@type" : "AstEnumConstantDecl",
+ "name" : "ImPlotLegendFlags_Reverse",
+ "docComment" : "legend entries will be displayed in reverse order",
+ "qualType" : "ImPlotLegendFlags_",
+ "order" : 8,
+ "value" : "1 << 7",
+ "evaluatedValue" : 128
} ]
}, {
"@type" : "AstEnumDecl",
@@ -1053,6 +1061,14 @@
"order" : 2,
"value" : "1 << 11",
"evaluatedValue" : 2048
+ }, {
+ "@type" : "AstEnumConstantDecl",
+ "name" : "ImPlotPieChartFlags_Exploding",
+ "docComment" : "Explode legend-hovered slice",
+ "qualType" : "ImPlotPieChartFlags_",
+ "order" : 3,
+ "value" : "1 << 12",
+ "evaluatedValue" : 4096
} ]
}, {
"@type" : "AstEnumDecl",
@@ -1130,7 +1146,7 @@
}, {
"@type" : "AstEnumConstantDecl",
"name" : "ImPlotHistogramFlags_NoOutliers",
- "docComment" : "exclude values outside the specifed histogram range from the count toward normalizing and cumulative counts",
+ "docComment" : "exclude values outside the specified histogram range from the count toward normalizing and cumulative counts",
"qualType" : "ImPlotHistogramFlags_",
"order" : 4,
"value" : "1 << 13",
@@ -1376,7 +1392,7 @@
}, {
"@type" : "AstEnumConstantDecl",
"name" : "ImPlotCol_AxisText",
- "docComment" : "axis label and tick lables color (defaults to ImGuiCol_Text)",
+ "docComment" : "axis label and tick labels color (defaults to ImGuiCol_Text)",
"qualType" : "ImPlotCol_",
"order" : 13,
"evaluatedValue" : 13
@@ -1674,7 +1690,7 @@
}, {
"@type" : "AstEnumConstantDecl",
"name" : "ImPlotScale_Log10",
- "docComment" : "base 10 logartithmic scale",
+ "docComment" : "base 10 logarithmic scale",
"qualType" : "ImPlotScale_",
"order" : 2,
"evaluatedValue" : 2
@@ -2481,7 +2497,7 @@
"name" : "ctx",
"qualType" : "ImPlotContext *",
"desugaredQualType" : "ImPlotContext *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstFullComment",
"decls" : [ {
@@ -2681,13 +2697,13 @@
"name" : "row_ratios",
"qualType" : "float *",
"desugaredQualType" : "float *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstParmVarDecl",
"name" : "col_ratios",
"qualType" : "float *",
"desugaredQualType" : "float *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstFullComment",
"decls" : [ {
@@ -2700,7 +2716,7 @@
"text" : " EndSubplots() MUST be called! Call BeginPlot/EndPlot AT MOST [rows*cols]"
}, {
"@type" : "AstTextComment",
- "text" : " times in between the begining and end of the subplot context. Plots are"
+ "text" : " times in between the beginning and end of the subplot context. Plots are"
}, {
"@type" : "AstTextComment",
"text" : " added in row major order."
@@ -2867,7 +2883,7 @@
"name" : "label",
"qualType" : "const char *",
"desugaredQualType" : "const char *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstParmVarDecl",
"name" : "flags",
@@ -2991,7 +3007,7 @@
"name" : "data",
"qualType" : "void *",
"desugaredQualType" : "void *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstFullComment",
"decls" : [ {
@@ -3026,7 +3042,7 @@
"name" : "labels",
"qualType" : "const char *const *",
"desugaredQualType" : "const char *const *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstParmVarDecl",
"name" : "keep_default",
@@ -3072,7 +3088,7 @@
"name" : "labels",
"qualType" : "const char *const *",
"desugaredQualType" : "const char *const *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstParmVarDecl",
"name" : "keep_default",
@@ -3137,14 +3153,14 @@
"name" : "data",
"qualType" : "void *",
"desugaredQualType" : "void *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstFullComment",
"decls" : [ {
"@type" : "AstParagraphComment",
"decls" : [ {
"@type" : "AstTextComment",
- "text" : " Sets an axis' scale using user supplied forward and inverse transfroms."
+ "text" : " Sets an axis' scale using user supplied forward and inverse transforms."
} ]
} ]
} ]
@@ -3698,7 +3714,7 @@
"desugaredQualType" : "const char *"
}, {
"@type" : "AstParmVarDecl",
- "name" : "user_texture_id",
+ "name" : "tex_ref",
"qualType" : "int",
"desugaredQualType" : "int"
}, {
@@ -3735,15 +3751,6 @@
"qualType" : "ImPlotImageFlags",
"desugaredQualType" : "int",
"defaultValue" : "0"
- }, {
- "@type" : "AstFullComment",
- "decls" : [ {
- "@type" : "AstParagraphComment",
- "decls" : [ {
- "@type" : "AstTextComment",
- "text" : " Plots an axis-aligned image. #bounds_min/bounds_max are in plot coordinates (y-up) and #uv0/uv1 are in texture coordinates (y-down)."
- } ]
- } ]
} ]
}, {
"@type" : "AstFunctionDecl",
@@ -3852,19 +3859,19 @@
"name" : "out_clicked",
"qualType" : "bool *",
"desugaredQualType" : "bool *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstParmVarDecl",
"name" : "out_hovered",
"qualType" : "bool *",
"desugaredQualType" : "bool *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstParmVarDecl",
- "name" : "held",
+ "name" : "out_held",
"qualType" : "bool *",
"desugaredQualType" : "bool *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstFullComment",
"decls" : [ {
@@ -3911,19 +3918,19 @@
"name" : "out_clicked",
"qualType" : "bool *",
"desugaredQualType" : "bool *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstParmVarDecl",
"name" : "out_hovered",
"qualType" : "bool *",
"desugaredQualType" : "bool *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstParmVarDecl",
- "name" : "held",
+ "name" : "out_held",
"qualType" : "bool *",
"desugaredQualType" : "bool *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstFullComment",
"decls" : [ {
@@ -3970,19 +3977,19 @@
"name" : "out_clicked",
"qualType" : "bool *",
"desugaredQualType" : "bool *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstParmVarDecl",
"name" : "out_hovered",
"qualType" : "bool *",
"desugaredQualType" : "bool *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstParmVarDecl",
- "name" : "held",
+ "name" : "out_held",
"qualType" : "bool *",
"desugaredQualType" : "bool *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstFullComment",
"decls" : [ {
@@ -4038,19 +4045,19 @@
"name" : "out_clicked",
"qualType" : "bool *",
"desugaredQualType" : "bool *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstParmVarDecl",
"name" : "out_hovered",
"qualType" : "bool *",
"desugaredQualType" : "bool *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstParmVarDecl",
- "name" : "held",
+ "name" : "out_held",
"qualType" : "bool *",
"desugaredQualType" : "bool *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstFullComment",
"decls" : [ {
@@ -4340,7 +4347,7 @@
"@type" : "AstParagraphComment",
"decls" : [ {
"@type" : "AstTextComment",
- "text" : " Get the curent Plot size in pixels."
+ "text" : " Get the current Plot size in pixels."
} ]
} ]
} ]
@@ -4781,7 +4788,7 @@
"@type" : "AstParagraphComment",
"decls" : [ {
"@type" : "AstTextComment",
- "text" : " Provides access to plot style structure for permanant modifications to colors, sizes, etc."
+ "text" : " Provides access to plot style structure for permanent modifications to colors, sizes, etc."
} ]
} ]
} ]
@@ -4794,7 +4801,7 @@
"name" : "dst",
"qualType" : "ImPlotStyle *",
"desugaredQualType" : "ImPlotStyle *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstFullComment",
"decls" : [ {
@@ -4814,7 +4821,7 @@
"name" : "dst",
"qualType" : "ImPlotStyle *",
"desugaredQualType" : "ImPlotStyle *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstFullComment",
"decls" : [ {
@@ -4834,7 +4841,7 @@
"name" : "dst",
"qualType" : "ImPlotStyle *",
"desugaredQualType" : "ImPlotStyle *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstFullComment",
"decls" : [ {
@@ -4854,7 +4861,7 @@
"name" : "dst",
"qualType" : "ImPlotStyle *",
"desugaredQualType" : "ImPlotStyle *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstFullComment",
"decls" : [ {
@@ -5538,7 +5545,7 @@
"name" : "out",
"qualType" : "int *",
"desugaredQualType" : "int *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstParmVarDecl",
"name" : "format",
@@ -5588,7 +5595,7 @@
"@type" : "AstParagraphComment",
"decls" : [ {
"@type" : "AstTextComment",
- "text" : " Shows a button with a colormap gradient brackground."
+ "text" : " Shows a button with a colormap gradient background."
} ]
} ]
} ]
@@ -5601,7 +5608,7 @@
"name" : "plot_title_id",
"qualType" : "const char *",
"desugaredQualType" : "const char *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstFullComment",
"decls" : [ {
@@ -5611,7 +5618,7 @@
"text" : " When items in a plot sample their color from a colormap, the color is cached and does not change"
}, {
"@type" : "AstTextComment",
- "text" : " unless explicitly overriden. Therefore, if you change the colormap after the item has already been plotted,"
+ "text" : " unless explicitly overridden. Therefore, if you change the colormap after the item has already been plotted,"
}, {
"@type" : "AstTextComment",
"text" : " item colors will NOT update. If you need item colors to resample the new colormap, then use this"
@@ -5640,7 +5647,7 @@
"@type" : "AstParagraphComment",
"decls" : [ {
"@type" : "AstTextComment",
- "text" : " Provides access to input mapping structure for permanant modifications to controls for pan, select, etc."
+ "text" : " Provides access to input mapping structure for permanent modifications to controls for pan, select, etc."
} ]
} ]
} ]
@@ -5653,7 +5660,7 @@
"name" : "dst",
"qualType" : "ImPlotInputMap *",
"desugaredQualType" : "ImPlotInputMap *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstFullComment",
"decls" : [ {
@@ -5673,7 +5680,7 @@
"name" : "dst",
"qualType" : "ImPlotInputMap *",
"desugaredQualType" : "ImPlotInputMap *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstFullComment",
"decls" : [ {
@@ -5837,7 +5844,7 @@
"name" : "ref",
"qualType" : "ImPlotStyle *",
"desugaredQualType" : "ImPlotStyle *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstFullComment",
"decls" : [ {
@@ -5871,7 +5878,7 @@
"name" : "p_popen",
"qualType" : "bool *",
"desugaredQualType" : "bool *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstFullComment",
"decls" : [ {
@@ -5891,7 +5898,7 @@
"name" : "p_open",
"qualType" : "bool *",
"desugaredQualType" : "bool *",
- "defaultValue" : "="
+ "defaultValue" : "nullptr"
}, {
"@type" : "AstFullComment",
"decls" : [ {
@@ -5991,6 +5998,15 @@
"qualType" : "const char *",
"desugaredQualType" : "const char *",
"defaultValue" : "IMPLOT_DEPRECATED"
+ }, {
+ "@type" : "AstFullComment",
+ "decls" : [ {
+ "@type" : "AstParagraphComment",
+ "decls" : [ {
+ "@type" : "AstTextComment",
+ "text" : " OBSOLETED in v0.13 -> PLANNED REMOVAL in v1.0"
+ } ]
+ } ]
} ]
} ]
} ]
diff --git a/example/src/main/java/Main.java b/example/src/main/java/Main.java
index fd82506f..59822cb5 100644
--- a/example/src/main/java/Main.java
+++ b/example/src/main/java/Main.java
@@ -83,9 +83,20 @@ public void process() {
}
ImGui.sameLine();
ImGui.text(String.valueOf(count));
+ ImGui.sameLine();
+ // imgui 1.91 TextLink — inline hyperlink widget, returns true when clicked.
+ if (ImGui.textLink("increment")) {
+ count++;
+ }
ImGui.inputText("string", str, ImGuiInputTextFlags.CallbackResize);
ImGui.text("Result: " + str.get());
ImGui.sliderFloat("float", flt, 0, 1);
+
+ // imgui 1.91 TextLinkOpenURL — hyperlink that opens a URL on click.
+ ImGui.text("Learn more:");
+ ImGui.sameLine();
+ ImGui.textLinkOpenURL("Dear ImGui on GitHub", "https://github.com/ocornut/imgui");
+
ImGui.separator();
ImGui.text("Extra");
Extra.show(this);
diff --git a/imgui-binding/build.gradle b/imgui-binding/build.gradle
index 0e94d4e0..0ce12842 100644
--- a/imgui-binding/build.gradle
+++ b/imgui-binding/build.gradle
@@ -44,6 +44,7 @@ tasks.register('generateApi', GenerateApi)
tasks.register('generateLibs', GenerateLibs) {
it.dependsOn assemble
+ it.dependsOn rootProject.tasks.named('applyVendorPatches')
}
apply from: "$rootDir/publish.gradle"
diff --git a/imgui-binding/src/generated/java/imgui/ImFont.java b/imgui-binding/src/generated/java/imgui/ImFont.java
index c8fce417..fd7d5558 100644
--- a/imgui-binding/src/generated/java/imgui/ImFont.java
+++ b/imgui-binding/src/generated/java/imgui/ImFont.java
@@ -3,8 +3,11 @@
import imgui.binding.ImGuiStructDestroyable;
/**
- * Font runtime data and rendering
- * ImFontAtlas automatically loads a default embedded font for you when you call GetTexDataAsAlpha8() or GetTexDataAsRGBA32().
+ * Font runtime data. A single logical font that can be baked at multiple sizes (see ImFontBaked via {@code getFontBaked}).
+ *
+ * In Dear ImGui 1.92 the font subsystem was reworked: {@code ImFont} now represents the font source set,
+ * while size-specific data (glyphs, ascent/descent, character metrics) lives on {@code ImFontBaked}.
+ * Many previously-exposed fields moved there and are no longer reachable through {@code ImFont}.
*/
public final class ImFont extends ImGuiStructDestroyable {
public ImFont() {
@@ -29,103 +32,28 @@ protected long create() {
return (uintptr_t)(new ImFont());
*/
- // TODO IndexAdvanceX
-
/**
- * = FallbackGlyph.AdvanceX
+ * Font size passed to {@code AddFontXXX()}. Use for legacy code calling {@link imgui.ImGui#pushFont(ImFont, float)}
+ * that expected the original size (use {@code ImGui::GetFontBaked()} in new code).
*/
- public float getFallbackAdvanceX() {
- return nGetFallbackAdvanceX();
+ public float getLegacySize() {
+ return nGetLegacySize();
}
/**
- * = FallbackGlyph.AdvanceX
+ * Font size passed to {@code AddFontXXX()}. Use for legacy code calling {@link imgui.ImGui#pushFont(ImFont, float)}
+ * that expected the original size (use {@code ImGui::GetFontBaked()} in new code).
*/
- public void setFallbackAdvanceX(final float value) {
- nSetFallbackAdvanceX(value);
+ public void setLegacySize(final float value) {
+ nSetLegacySize(value);
}
- private native float nGetFallbackAdvanceX(); /*
- return THIS->FallbackAdvanceX;
+ private native float nGetLegacySize(); /*
+ return THIS->LegacySize;
*/
- private native void nSetFallbackAdvanceX(float value); /*
- THIS->FallbackAdvanceX = value;
- */
-
- /**
- * Height of characters/line, set during loading (don't change after loading)
- */
- public float getFontSize() {
- return nGetFontSize();
- }
-
- /**
- * Height of characters/line, set during loading (don't change after loading)
- */
- public void setFontSize(final float value) {
- nSetFontSize(value);
- }
-
- private native float nGetFontSize(); /*
- return THIS->FontSize;
- */
-
- private native void nSetFontSize(float value); /*
- THIS->FontSize = value;
- */
-
- // TODO IndexLookup, Glyphs
-
- private static final ImFontGlyph _GETFALLBACKGLYPH_1 = new ImFontGlyph(0);
-
- /**
- * = FindGlyph(FontFallbackChar)
- */
- public ImFontGlyph getFallbackGlyph() {
- _GETFALLBACKGLYPH_1.ptr = nGetFallbackGlyph();
- return _GETFALLBACKGLYPH_1;
- }
-
- /**
- * = FindGlyph(FontFallbackChar)
- */
- public void setFallbackGlyph(final ImFontGlyph value) {
- nSetFallbackGlyph(value.ptr);
- }
-
- private native long nGetFallbackGlyph(); /*
- return (uintptr_t)THIS->FallbackGlyph;
- */
-
- private native void nSetFallbackGlyph(long value); /*
- THIS->FallbackGlyph = reinterpret_cast(value);
- */
-
- // TODO ContainerAtlas, ConfigData
-
- /**
- * Number of ImFontConfig involved in creating this font.
- * Bigger than 1 when merging multiple font sources into one ImFont.
- */
- public short getConfigDataCount() {
- return nGetConfigDataCount();
- }
-
- /**
- * Number of ImFontConfig involved in creating this font.
- * Bigger than 1 when merging multiple font sources into one ImFont.
- */
- public void setConfigDataCount(final short value) {
- nSetConfigDataCount(value);
- }
-
- private native short nGetConfigDataCount(); /*
- return THIS->ConfigDataCount;
- */
-
- private native void nSetConfigDataCount(short value); /*
- THIS->ConfigDataCount = value;
+ private native void nSetLegacySize(float value); /*
+ THIS->LegacySize = value;
*/
/**
@@ -150,79 +78,39 @@ public void setEllipsisChar(final short value) {
THIS->EllipsisChar = value;
*/
- public short getEllipsisCharCount() {
- return nGetEllipsisCharCount();
- }
-
- public void setEllipsisCharCount(final short value) {
- nSetEllipsisCharCount(value);
- }
-
- private native short nGetEllipsisCharCount(); /*
- return THIS->EllipsisCharCount;
- */
-
- private native void nSetEllipsisCharCount(short value); /*
- THIS->EllipsisCharCount = value;
- */
-
- public float getEllipsisWidth() {
- return nGetEllipsisWidth();
- }
-
- public void setEllipsisWidth(final float value) {
- nSetEllipsisWidth(value);
- }
-
- private native float nGetEllipsisWidth(); /*
- return THIS->EllipsisWidth;
- */
-
- private native void nSetEllipsisWidth(float value); /*
- THIS->EllipsisWidth = value;
- */
-
- public float getEllipsisCharStep() {
- return nGetEllipsisCharStep();
- }
-
- public void setEllipsisCharStep(final float value) {
- nSetEllipsisCharStep(value);
- }
-
- private native float nGetEllipsisCharStep(); /*
- return THIS->EllipsisCharStep;
- */
-
- private native void nSetEllipsisCharStep(float value); /*
- THIS->EllipsisCharStep = value;
- */
-
- public boolean getDirtyLookupTables() {
- return nGetDirtyLookupTables();
+ /**
+ * Character used if a glyph isn't found (U+FFFD, '?').
+ */
+ public short getFallbackChar() {
+ return nGetFallbackChar();
}
- public void setDirtyLookupTables(final boolean value) {
- nSetDirtyLookupTables(value);
+ /**
+ * Character used if a glyph isn't found (U+FFFD, '?').
+ */
+ public void setFallbackChar(final short value) {
+ nSetFallbackChar(value);
}
- private native boolean nGetDirtyLookupTables(); /*
- return THIS->DirtyLookupTables;
+ private native short nGetFallbackChar(); /*
+ return THIS->FallbackChar;
*/
- private native void nSetDirtyLookupTables(boolean value); /*
- THIS->DirtyLookupTables = value;
+ private native void nSetFallbackChar(short value); /*
+ THIS->FallbackChar = value;
*/
/**
- * Base font scale, multiplied by the per-window font scale which you can adjust with SetWindowFontScale()
+ * Legacy base font scale (~1.0f), multiplied by the per-window font scale which you can adjust with SetWindowFontScale().
+ * Obsolete since 1.92; kept behind {@code IMGUI_DISABLE_OBSOLETE_FUNCTIONS}.
*/
public float getScale() {
return nGetScale();
}
/**
- * Base font scale, multiplied by the per-window font scale which you can adjust with SetWindowFontScale()
+ * Legacy base font scale (~1.0f), multiplied by the per-window font scale which you can adjust with SetWindowFontScale().
+ * Obsolete since 1.92; kept behind {@code IMGUI_DISABLE_OBSOLETE_FUNCTIONS}.
*/
public void setScale(final float value) {
nSetScale(value);
@@ -236,92 +124,8 @@ public void setScale(final float value) {
THIS->Scale = value;
*/
- /**
- * Ascent: distance from top to bottom of e.g. 'A' [0..FontSize]
- */
- public float getAscent() {
- return nGetAscent();
- }
-
- /**
- * Ascent: distance from top to bottom of e.g. 'A' [0..FontSize]
- */
- public void setAscent(final float value) {
- nSetAscent(value);
- }
-
- private native float nGetAscent(); /*
- return THIS->Ascent;
- */
-
- private native void nSetAscent(float value); /*
- THIS->Ascent = value;
- */
-
- public float getDescent() {
- return nGetDescent();
- }
-
- public void setDescent(final float value) {
- nSetDescent(value);
- }
-
- private native float nGetDescent(); /*
- return THIS->Descent;
- */
-
- private native void nSetDescent(float value); /*
- THIS->Descent = value;
- */
-
- /**
- * Total surface in pixels to get an idea of the font rasterization/texture cost (not exact, we approximate the cost of padding between glyphs)
- */
- public int getMetricsTotalSurface() {
- return nGetMetricsTotalSurface();
- }
-
- /**
- * Total surface in pixels to get an idea of the font rasterization/texture cost (not exact, we approximate the cost of padding between glyphs)
- */
- public void setMetricsTotalSurface(final int value) {
- nSetMetricsTotalSurface(value);
- }
-
- private native int nGetMetricsTotalSurface(); /*
- return THIS->MetricsTotalSurface;
- */
-
- private native void nSetMetricsTotalSurface(int value); /*
- THIS->MetricsTotalSurface = value;
- */
-
// Methods
- public ImFontGlyph findGlyph(final int c) {
- return new ImFontGlyph(nFindGlyph(c));
- }
-
- private native long nFindGlyph(int c); /*
- return (uintptr_t)THIS->FindGlyph((ImWchar)c);
- */
-
- public ImFontGlyph findGlyphNoFallback(final int c) {
- return new ImFontGlyph(nFindGlyphNoFallback(c));
- }
-
- private native long nFindGlyphNoFallback(int c); /*
- return (uintptr_t)THIS->FindGlyphNoFallback((ImWchar)c);
- */
-
- public float getCharAdvance(final int c) {
- return nGetCharAdvance(c);
- }
-
- private native float nGetCharAdvance(int c); /*
- return THIS->GetCharAdvance((ImWchar)c);
- */
-
public boolean isLoaded() {
return nIsLoaded();
}
@@ -452,6 +256,12 @@ public void calcTextSizeA(final ImVec2 dst, final float size, final float maxWid
return _result;
*/
+ /**
+ *
+ * @deprecated since imgui 1.92; prefer {@code CalcWordWrapPosition(size, ...)}. This overload is kept as a
+ legacy redirect; internally it passes {@code LegacySize * scale} as the size.
+ */
+ @Deprecated
public String calcWordWrapPositionA(final float scale, final String text, final String textEnd, final float wrapWidth) {
return nCalcWordWrapPositionA(scale, text, textEnd, wrapWidth);
}
@@ -478,36 +288,60 @@ public void renderChar(final ImDrawList drawList, final float size, final float
THIS->RenderChar(reinterpret_cast(drawList), size, pos, col, (ImWchar)c);
*/
+ /**
+ * The {@code flags} parameter is {@code ImDrawTextFlags} (since imgui 1.92; previously a {@code bool cpu_fine_clip}).
+ */
public void renderText(final ImDrawList drawList, final float size, final ImVec2 pos, final int col, final ImVec4 clipRect, final String textBegin, final String textEnd) {
nRenderText(drawList.ptr, size, pos.x, pos.y, col, clipRect.x, clipRect.y, clipRect.z, clipRect.w, textBegin, textEnd);
}
+ /**
+ * The {@code flags} parameter is {@code ImDrawTextFlags} (since imgui 1.92; previously a {@code bool cpu_fine_clip}).
+ */
public void renderText(final ImDrawList drawList, final float size, final float posX, final float posY, final int col, final float clipRectX, final float clipRectY, final float clipRectZ, final float clipRectW, final String textBegin, final String textEnd) {
nRenderText(drawList.ptr, size, posX, posY, col, clipRectX, clipRectY, clipRectZ, clipRectW, textBegin, textEnd);
}
+ /**
+ * The {@code flags} parameter is {@code ImDrawTextFlags} (since imgui 1.92; previously a {@code bool cpu_fine_clip}).
+ */
public void renderText(final ImDrawList drawList, final float size, final ImVec2 pos, final int col, final ImVec4 clipRect, final String textBegin, final String textEnd, final float wrapWidth) {
nRenderText(drawList.ptr, size, pos.x, pos.y, col, clipRect.x, clipRect.y, clipRect.z, clipRect.w, textBegin, textEnd, wrapWidth);
}
+ /**
+ * The {@code flags} parameter is {@code ImDrawTextFlags} (since imgui 1.92; previously a {@code bool cpu_fine_clip}).
+ */
public void renderText(final ImDrawList drawList, final float size, final float posX, final float posY, final int col, final float clipRectX, final float clipRectY, final float clipRectZ, final float clipRectW, final String textBegin, final String textEnd, final float wrapWidth) {
nRenderText(drawList.ptr, size, posX, posY, col, clipRectX, clipRectY, clipRectZ, clipRectW, textBegin, textEnd, wrapWidth);
}
- public void renderText(final ImDrawList drawList, final float size, final ImVec2 pos, final int col, final ImVec4 clipRect, final String textBegin, final String textEnd, final float wrapWidth, final boolean cpuFineClip) {
- nRenderText(drawList.ptr, size, pos.x, pos.y, col, clipRect.x, clipRect.y, clipRect.z, clipRect.w, textBegin, textEnd, wrapWidth, cpuFineClip);
+ /**
+ * The {@code flags} parameter is {@code ImDrawTextFlags} (since imgui 1.92; previously a {@code bool cpu_fine_clip}).
+ */
+ public void renderText(final ImDrawList drawList, final float size, final ImVec2 pos, final int col, final ImVec4 clipRect, final String textBegin, final String textEnd, final float wrapWidth, final int flags) {
+ nRenderText(drawList.ptr, size, pos.x, pos.y, col, clipRect.x, clipRect.y, clipRect.z, clipRect.w, textBegin, textEnd, wrapWidth, flags);
}
- public void renderText(final ImDrawList drawList, final float size, final float posX, final float posY, final int col, final float clipRectX, final float clipRectY, final float clipRectZ, final float clipRectW, final String textBegin, final String textEnd, final float wrapWidth, final boolean cpuFineClip) {
- nRenderText(drawList.ptr, size, posX, posY, col, clipRectX, clipRectY, clipRectZ, clipRectW, textBegin, textEnd, wrapWidth, cpuFineClip);
+ /**
+ * The {@code flags} parameter is {@code ImDrawTextFlags} (since imgui 1.92; previously a {@code bool cpu_fine_clip}).
+ */
+ public void renderText(final ImDrawList drawList, final float size, final float posX, final float posY, final int col, final float clipRectX, final float clipRectY, final float clipRectZ, final float clipRectW, final String textBegin, final String textEnd, final float wrapWidth, final int flags) {
+ nRenderText(drawList.ptr, size, posX, posY, col, clipRectX, clipRectY, clipRectZ, clipRectW, textBegin, textEnd, wrapWidth, flags);
}
- public void renderText(final ImDrawList drawList, final float size, final ImVec2 pos, final int col, final ImVec4 clipRect, final String textBegin, final String textEnd, final boolean cpuFineClip) {
- nRenderText(drawList.ptr, size, pos.x, pos.y, col, clipRect.x, clipRect.y, clipRect.z, clipRect.w, textBegin, textEnd, cpuFineClip);
+ /**
+ * The {@code flags} parameter is {@code ImDrawTextFlags} (since imgui 1.92; previously a {@code bool cpu_fine_clip}).
+ */
+ public void renderText(final ImDrawList drawList, final float size, final ImVec2 pos, final int col, final ImVec4 clipRect, final String textBegin, final String textEnd, final int flags) {
+ nRenderText(drawList.ptr, size, pos.x, pos.y, col, clipRect.x, clipRect.y, clipRect.z, clipRect.w, textBegin, textEnd, flags);
}
- public void renderText(final ImDrawList drawList, final float size, final float posX, final float posY, final int col, final float clipRectX, final float clipRectY, final float clipRectZ, final float clipRectW, final String textBegin, final String textEnd, final boolean cpuFineClip) {
- nRenderText(drawList.ptr, size, posX, posY, col, clipRectX, clipRectY, clipRectZ, clipRectW, textBegin, textEnd, cpuFineClip);
+ /**
+ * The {@code flags} parameter is {@code ImDrawTextFlags} (since imgui 1.92; previously a {@code bool cpu_fine_clip}).
+ */
+ public void renderText(final ImDrawList drawList, final float size, final float posX, final float posY, final int col, final float clipRectX, final float clipRectY, final float clipRectZ, final float clipRectW, final String textBegin, final String textEnd, final int flags) {
+ nRenderText(drawList.ptr, size, posX, posY, col, clipRectX, clipRectY, clipRectZ, clipRectW, textBegin, textEnd, flags);
}
private native void nRenderText(long drawList, float size, float posX, float posY, int col, float clipRectX, float clipRectY, float clipRectZ, float clipRectW, String textBegin, String textEnd); /*MANUAL
@@ -530,22 +364,22 @@ public void renderText(final ImDrawList drawList, final float size, final float
if (textEnd != NULL) env->ReleaseStringUTFChars(obj_textEnd, textEnd);
*/
- private native void nRenderText(long drawList, float size, float posX, float posY, int col, float clipRectX, float clipRectY, float clipRectZ, float clipRectW, String textBegin, String textEnd, float wrapWidth, boolean cpuFineClip); /*MANUAL
+ private native void nRenderText(long drawList, float size, float posX, float posY, int col, float clipRectX, float clipRectY, float clipRectZ, float clipRectW, String textBegin, String textEnd, float wrapWidth, int flags); /*MANUAL
auto textBegin = obj_textBegin == NULL ? NULL : (char*)env->GetStringUTFChars(obj_textBegin, JNI_FALSE);
auto textEnd = obj_textEnd == NULL ? NULL : (char*)env->GetStringUTFChars(obj_textEnd, JNI_FALSE);
ImVec2 pos = ImVec2(posX, posY);
ImVec4 clipRect = ImVec4(clipRectX, clipRectY, clipRectZ, clipRectW);
- THIS->RenderText(reinterpret_cast(drawList), size, pos, col, clipRect, textBegin, textEnd, wrapWidth, cpuFineClip);
+ THIS->RenderText(reinterpret_cast(drawList), size, pos, col, clipRect, textBegin, textEnd, wrapWidth, flags);
if (textBegin != NULL) env->ReleaseStringUTFChars(obj_textBegin, textBegin);
if (textEnd != NULL) env->ReleaseStringUTFChars(obj_textEnd, textEnd);
*/
- private native void nRenderText(long drawList, float size, float posX, float posY, int col, float clipRectX, float clipRectY, float clipRectZ, float clipRectW, String textBegin, String textEnd, boolean cpuFineClip); /*MANUAL
+ private native void nRenderText(long drawList, float size, float posX, float posY, int col, float clipRectX, float clipRectY, float clipRectZ, float clipRectW, String textBegin, String textEnd, int flags); /*MANUAL
auto textBegin = obj_textBegin == NULL ? NULL : (char*)env->GetStringUTFChars(obj_textBegin, JNI_FALSE);
auto textEnd = obj_textEnd == NULL ? NULL : (char*)env->GetStringUTFChars(obj_textEnd, JNI_FALSE);
ImVec2 pos = ImVec2(posX, posY);
ImVec4 clipRect = ImVec4(clipRectX, clipRectY, clipRectZ, clipRectW);
- THIS->RenderText(reinterpret_cast(drawList), size, pos, col, clipRect, textBegin, textEnd, 0.0f, cpuFineClip);
+ THIS->RenderText(reinterpret_cast(drawList), size, pos, col, clipRect, textBegin, textEnd, 0.0f, flags);
if (textBegin != NULL) env->ReleaseStringUTFChars(obj_textBegin, textBegin);
if (textEnd != NULL) env->ReleaseStringUTFChars(obj_textEnd, textEnd);
*/
diff --git a/imgui-binding/src/generated/java/imgui/ImFontAtlas.java b/imgui-binding/src/generated/java/imgui/ImFontAtlas.java
index fed5a9f1..433cd54e 100644
--- a/imgui-binding/src/generated/java/imgui/ImFontAtlas.java
+++ b/imgui-binding/src/generated/java/imgui/ImFontAtlas.java
@@ -84,6 +84,52 @@ public ImFont addFontDefault(final ImFontConfig imFontConfig) {
return (uintptr_t)THIS->AddFontDefault(reinterpret_cast(imFontConfig));
*/
+ /**
+ * Embedded scalable (vector) default font — recommended at any higher size. (since imgui 1.92)
+ */
+ public ImFont addFontDefaultVector() {
+ return new ImFont(nAddFontDefaultVector());
+ }
+
+ /**
+ * Embedded scalable (vector) default font — recommended at any higher size. (since imgui 1.92)
+ */
+ public ImFont addFontDefaultVector(final ImFontConfig imFontConfig) {
+ return new ImFont(nAddFontDefaultVector(imFontConfig.ptr));
+ }
+
+ private native long nAddFontDefaultVector(); /*
+ return (uintptr_t)THIS->AddFontDefaultVector();
+ */
+
+ private native long nAddFontDefaultVector(long imFontConfig); /*
+ return (uintptr_t)THIS->AddFontDefaultVector(reinterpret_cast(imFontConfig));
+ */
+
+ /**
+ * Embedded classic pixel-clean bitmap default font — recommended at size 13px with no scaling.
+ * (since imgui 1.92)
+ */
+ public ImFont addFontDefaultBitmap() {
+ return new ImFont(nAddFontDefaultBitmap());
+ }
+
+ /**
+ * Embedded classic pixel-clean bitmap default font — recommended at size 13px with no scaling.
+ * (since imgui 1.92)
+ */
+ public ImFont addFontDefaultBitmap(final ImFontConfig imFontConfig) {
+ return new ImFont(nAddFontDefaultBitmap(imFontConfig.ptr));
+ }
+
+ private native long nAddFontDefaultBitmap(); /*
+ return (uintptr_t)THIS->AddFontDefaultBitmap();
+ */
+
+ private native long nAddFontDefaultBitmap(long imFontConfig); /*
+ return (uintptr_t)THIS->AddFontDefaultBitmap(reinterpret_cast(imFontConfig));
+ */
+
public ImFont addFontFromFileTTF(final String filename, final float sizePixels) {
return new ImFont(nAddFontFromFileTTF(filename, sizePixels));
}
@@ -478,10 +524,11 @@ public void clear() {
*/
public native void setFreeTypeRenderer(boolean enabled); /*
#ifdef IMGUI_ENABLE_FREETYPE
+ extern const ImFontLoader* ImFontAtlasGetFontLoaderForStbTruetype();
if (enabled) {
- THIS->FontBuilderIO = ImGuiFreeType::GetBuilderForFreeType();
+ THIS->SetFontLoader(ImGuiFreeType::GetFontLoader());
} else {
- THIS->FontBuilderIO = NULL;
+ THIS->SetFontLoader(ImFontAtlasGetFontLoaderForStbTruetype());
}
#endif
*/
@@ -772,27 +819,97 @@ public boolean hasFlags(final int flags) {
// TexID implemented as SetTexID function
/**
- * Texture width desired by user before Build(). Must be a power-of-two.
- * If have many glyphs your graphics API have texture size restrictions you may want to increase texture width to decrease height.
+ * Minimum desired atlas texture width (must be power of two). Default 512. (since imgui 1.92 —
+ * replaces the old TexDesiredWidth; set TexMinWidth = TexMaxWidth to pin a specific width.)
+ */
+ public int getTexMinWidth() {
+ return nGetTexMinWidth();
+ }
+
+ /**
+ * Minimum desired atlas texture width (must be power of two). Default 512. (since imgui 1.92 —
+ * replaces the old TexDesiredWidth; set TexMinWidth = TexMaxWidth to pin a specific width.)
+ */
+ public void setTexMinWidth(final int value) {
+ nSetTexMinWidth(value);
+ }
+
+ private native int nGetTexMinWidth(); /*
+ return THIS->TexMinWidth;
+ */
+
+ private native void nSetTexMinWidth(int value); /*
+ THIS->TexMinWidth = value;
+ */
+
+ /**
+ * Minimum desired atlas texture height (must be power of two). Default 128. (since imgui 1.92)
+ */
+ public int getTexMinHeight() {
+ return nGetTexMinHeight();
+ }
+
+ /**
+ * Minimum desired atlas texture height (must be power of two). Default 128. (since imgui 1.92)
+ */
+ public void setTexMinHeight(final int value) {
+ nSetTexMinHeight(value);
+ }
+
+ private native int nGetTexMinHeight(); /*
+ return THIS->TexMinHeight;
+ */
+
+ private native void nSetTexMinHeight(int value); /*
+ THIS->TexMinHeight = value;
+ */
+
+ /**
+ * Maximum desired atlas texture width (must be power of two). Default 8192. (since imgui 1.92)
+ * Increase when loading large glyph sets (e.g. full CJK) on legacy backends without
+ * {@code ImGuiBackendFlags_RendererHasTextures} support.
+ */
+ public int getTexMaxWidth() {
+ return nGetTexMaxWidth();
+ }
+
+ /**
+ * Maximum desired atlas texture width (must be power of two). Default 8192. (since imgui 1.92)
+ * Increase when loading large glyph sets (e.g. full CJK) on legacy backends without
+ * {@code ImGuiBackendFlags_RendererHasTextures} support.
+ */
+ public void setTexMaxWidth(final int value) {
+ nSetTexMaxWidth(value);
+ }
+
+ private native int nGetTexMaxWidth(); /*
+ return THIS->TexMaxWidth;
+ */
+
+ private native void nSetTexMaxWidth(int value); /*
+ THIS->TexMaxWidth = value;
+ */
+
+ /**
+ * Maximum desired atlas texture height (must be power of two). Default 8192. (since imgui 1.92)
*/
- public int getTexDesiredWidth() {
- return nGetTexDesiredWidth();
+ public int getTexMaxHeight() {
+ return nGetTexMaxHeight();
}
/**
- * Texture width desired by user before Build(). Must be a power-of-two.
- * If have many glyphs your graphics API have texture size restrictions you may want to increase texture width to decrease height.
+ * Maximum desired atlas texture height (must be power of two). Default 8192. (since imgui 1.92)
*/
- public void setTexDesiredWidth(final int value) {
- nSetTexDesiredWidth(value);
+ public void setTexMaxHeight(final int value) {
+ nSetTexMaxHeight(value);
}
- private native int nGetTexDesiredWidth(); /*
- return THIS->TexDesiredWidth;
+ private native int nGetTexMaxHeight(); /*
+ return THIS->TexMaxHeight;
*/
- private native void nSetTexDesiredWidth(int value); /*
- THIS->TexDesiredWidth = value;
+ private native void nSetTexMaxHeight(int value); /*
+ THIS->TexMaxHeight = value;
*/
/**
diff --git a/imgui-binding/src/generated/java/imgui/ImFontConfig.java b/imgui-binding/src/generated/java/imgui/ImFontConfig.java
index 4ee7811b..b486ede7 100644
--- a/imgui-binding/src/generated/java/imgui/ImFontConfig.java
+++ b/imgui-binding/src/generated/java/imgui/ImFontConfig.java
@@ -207,64 +207,27 @@ public void setPixelSnapH(final boolean value) {
*/
/**
- * Extra spacing (in pixels) between glyphs. Only X axis is supported for now.
+ * Extra spacing (in pixels) between glyphs (added to glyph AdvanceX). Since imgui 1.92 this is a
+ * scalar X-only value; the previous {@code GlyphExtraSpacing} ImVec2 was removed as largely obsolete.
*/
- public ImVec2 getGlyphExtraSpacing() {
- final ImVec2 dst = new ImVec2();
- nGetGlyphExtraSpacing(dst);
- return dst;
- }
-
- /**
- * Extra spacing (in pixels) between glyphs. Only X axis is supported for now.
- */
- public float getGlyphExtraSpacingX() {
- return nGetGlyphExtraSpacingX();
- }
-
- /**
- * Extra spacing (in pixels) between glyphs. Only X axis is supported for now.
- */
- public float getGlyphExtraSpacingY() {
- return nGetGlyphExtraSpacingY();
- }
-
- /**
- * Extra spacing (in pixels) between glyphs. Only X axis is supported for now.
- */
- public void getGlyphExtraSpacing(final ImVec2 dst) {
- nGetGlyphExtraSpacing(dst);
- }
-
- /**
- * Extra spacing (in pixels) between glyphs. Only X axis is supported for now.
- */
- public void setGlyphExtraSpacing(final ImVec2 value) {
- nSetGlyphExtraSpacing(value.x, value.y);
+ public float getGlyphExtraAdvanceX() {
+ return nGetGlyphExtraAdvanceX();
}
/**
- * Extra spacing (in pixels) between glyphs. Only X axis is supported for now.
+ * Extra spacing (in pixels) between glyphs (added to glyph AdvanceX). Since imgui 1.92 this is a
+ * scalar X-only value; the previous {@code GlyphExtraSpacing} ImVec2 was removed as largely obsolete.
*/
- public void setGlyphExtraSpacing(final float valueX, final float valueY) {
- nSetGlyphExtraSpacing(valueX, valueY);
+ public void setGlyphExtraAdvanceX(final float value) {
+ nSetGlyphExtraAdvanceX(value);
}
- private native void nGetGlyphExtraSpacing(ImVec2 dst); /*
- Jni::ImVec2Cpy(env, THIS->GlyphExtraSpacing, dst);
+ private native float nGetGlyphExtraAdvanceX(); /*
+ return THIS->GlyphExtraAdvanceX;
*/
- private native float nGetGlyphExtraSpacingX(); /*
- return THIS->GlyphExtraSpacing.x;
- */
-
- private native float nGetGlyphExtraSpacingY(); /*
- return THIS->GlyphExtraSpacing.y;
- */
-
- private native void nSetGlyphExtraSpacing(float valueX, float valueY); /*MANUAL
- ImVec2 value = ImVec2(valueX, valueY);
- THIS->GlyphExtraSpacing = value;
+ private native void nSetGlyphExtraAdvanceX(float value); /*
+ THIS->GlyphExtraAdvanceX = value;
*/
/**
@@ -351,6 +314,31 @@ public void setGlyphRanges(final short[] glyphRanges) {
THIS->GlyphRanges = glyphRanges != NULL ? (ImWchar*)&glyphRanges[0] : NULL;
*/
+ private short[] glyphExcludeRanges;
+
+ /**
+ * Exclude ranges (list of Unicode range pairs, zero-terminated) from this font source when merging
+ * multiple fonts -- useful to avoid one font's glyphs masking another's. New in imgui 1.92.
+ * THE ARRAY DATA NEEDS TO PERSIST AS LONG AS THE FONT IS ALIVE.
+ */
+ public short[] getGlyphExcludeRanges() {
+ return glyphExcludeRanges;
+ }
+
+ /**
+ * Exclude ranges (list of Unicode range pairs, zero-terminated) from this font source when merging
+ * multiple fonts. New in imgui 1.92.
+ * THE ARRAY DATA NEEDS TO PERSIST AS LONG AS THE FONT IS ALIVE.
+ */
+ public void setGlyphExcludeRanges(final short[] glyphExcludeRanges) {
+ this.glyphExcludeRanges = glyphExcludeRanges;
+ nSetGlyphExcludeRanges(glyphExcludeRanges);
+ }
+
+ private native void nSetGlyphExcludeRanges(short[] glyphExcludeRanges); /*
+ THIS->GlyphExcludeRanges = glyphExcludeRanges != NULL ? (ImWchar*)&glyphExcludeRanges[0] : NULL;
+ */
+
/**
* Minimum AdvanceX for glyphs, set Min to align font icons, set both Min/Max to enforce mono-space font
*/
@@ -420,46 +408,51 @@ public void setMergeMode(final boolean value) {
*/
/**
- * Settings for custom font builder. THIS IS BUILDER IMPLEMENTATION DEPENDENT. Leave as zero if unsure.
+ * Settings for custom font loader. THIS IS LOADER IMPLEMENTATION DEPENDENT. Leave as zero if unsure.
+ * (Renamed from {@code FontBuilderFlags} in imgui 1.92.)
*/
- public int getFontBuilderFlags() {
- return nGetFontBuilderFlags();
+ public int getFontLoaderFlags() {
+ return nGetFontLoaderFlags();
}
/**
- * Settings for custom font builder. THIS IS BUILDER IMPLEMENTATION DEPENDENT. Leave as zero if unsure.
+ * Settings for custom font loader. THIS IS LOADER IMPLEMENTATION DEPENDENT. Leave as zero if unsure.
+ * (Renamed from {@code FontBuilderFlags} in imgui 1.92.)
*/
- public void setFontBuilderFlags(final int value) {
- nSetFontBuilderFlags(value);
+ public void setFontLoaderFlags(final int value) {
+ nSetFontLoaderFlags(value);
}
/**
- * Settings for custom font builder. THIS IS BUILDER IMPLEMENTATION DEPENDENT. Leave as zero if unsure.
+ * Settings for custom font loader. THIS IS LOADER IMPLEMENTATION DEPENDENT. Leave as zero if unsure.
+ * (Renamed from {@code FontBuilderFlags} in imgui 1.92.)
*/
- public void addFontBuilderFlags(final int flags) {
- setFontBuilderFlags(getFontBuilderFlags() | flags);
+ public void addFontLoaderFlags(final int flags) {
+ setFontLoaderFlags(getFontLoaderFlags() | flags);
}
/**
- * Settings for custom font builder. THIS IS BUILDER IMPLEMENTATION DEPENDENT. Leave as zero if unsure.
+ * Settings for custom font loader. THIS IS LOADER IMPLEMENTATION DEPENDENT. Leave as zero if unsure.
+ * (Renamed from {@code FontBuilderFlags} in imgui 1.92.)
*/
- public void removeFontBuilderFlags(final int flags) {
- setFontBuilderFlags(getFontBuilderFlags() & ~(flags));
+ public void removeFontLoaderFlags(final int flags) {
+ setFontLoaderFlags(getFontLoaderFlags() & ~(flags));
}
/**
- * Settings for custom font builder. THIS IS BUILDER IMPLEMENTATION DEPENDENT. Leave as zero if unsure.
+ * Settings for custom font loader. THIS IS LOADER IMPLEMENTATION DEPENDENT. Leave as zero if unsure.
+ * (Renamed from {@code FontBuilderFlags} in imgui 1.92.)
*/
- public boolean hasFontBuilderFlags(final int flags) {
- return (getFontBuilderFlags() & flags) != 0;
+ public boolean hasFontLoaderFlags(final int flags) {
+ return (getFontLoaderFlags() & flags) != 0;
}
- private native int nGetFontBuilderFlags(); /*
- return THIS->FontBuilderFlags;
+ private native int nGetFontLoaderFlags(); /*
+ return THIS->FontLoaderFlags;
*/
- private native void nSetFontBuilderFlags(int value); /*
- THIS->FontBuilderFlags = value;
+ private native void nSetFontLoaderFlags(int value); /*
+ THIS->FontLoaderFlags = value;
*/
/**
diff --git a/imgui-binding/src/generated/java/imgui/ImGui.java b/imgui-binding/src/generated/java/imgui/ImGui.java
index 27826717..6a590b84 100644
--- a/imgui-binding/src/generated/java/imgui/ImGui.java
+++ b/imgui-binding/src/generated/java/imgui/ImGui.java
@@ -1911,12 +1911,17 @@ public static void setScrollFromPosY(final float localY, final float centerYRati
// Parameters stacks (shared)
- public static void pushFont(final ImFont font) {
- nPushFont(font.ptr);
+ /**
+ * Push a font onto the stack. Since imgui 1.92 the {@code size} parameter is required:
+ * pass {@code 0.0f} to keep the current size; pass {@code font.LegacySize} to restore
+ * pre-1.92 behavior of using the font's original AddFont size.
+ */
+ public static void pushFont(final ImFont font, final float size) {
+ nPushFont(font.ptr, size);
}
- private static native void nPushFont(long font); /*
- ImGui::PushFont(reinterpret_cast(font));
+ private static native void nPushFont(long font, float size); /*
+ ImGui::PushFont(reinterpret_cast(font), size);
*/
public static void popFont() {
@@ -3006,6 +3011,52 @@ public static void bulletText(final String text) {
if (text != NULL) env->ReleaseStringUTFChars(obj_text, text);
*/
+ /**
+ * Hyperlink text button; returns true when clicked (new in imgui 1.91). Style via {@code ImGuiCol_TextLink}.
+ */
+ public static boolean textLink(final String label) {
+ return nTextLink(label);
+ }
+
+ private static native boolean nTextLink(String obj_label); /*MANUAL
+ auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE);
+ auto _result = ImGui::TextLink(label);
+ if (label != NULL) env->ReleaseStringUTFChars(obj_label, label);
+ return _result;
+ */
+
+ /**
+ * Hyperlink text button that automatically opens the given file/URL on click (new in imgui 1.91).
+ * Uses {@code io.PlatformOpenInShellFn} (with OS defaults on Windows/Linux/macOS).
+ */
+ public static boolean textLinkOpenURL(final String label) {
+ return nTextLinkOpenURL(label);
+ }
+
+ /**
+ * Hyperlink text button that automatically opens the given file/URL on click (new in imgui 1.91).
+ * Uses {@code io.PlatformOpenInShellFn} (with OS defaults on Windows/Linux/macOS).
+ */
+ public static boolean textLinkOpenURL(final String label, final String url) {
+ return nTextLinkOpenURL(label, url);
+ }
+
+ private static native boolean nTextLinkOpenURL(String obj_label); /*MANUAL
+ auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE);
+ auto _result = ImGui::TextLinkOpenURL(label);
+ if (label != NULL) env->ReleaseStringUTFChars(obj_label, label);
+ return _result;
+ */
+
+ private static native boolean nTextLinkOpenURL(String obj_label, String obj_url); /*MANUAL
+ auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE);
+ auto url = obj_url == NULL ? NULL : (char*)env->GetStringUTFChars(obj_url, JNI_FALSE);
+ auto _result = ImGui::TextLinkOpenURL(label, url);
+ if (label != NULL) env->ReleaseStringUTFChars(obj_label, label);
+ if (url != NULL) env->ReleaseStringUTFChars(obj_url, url);
+ return _result;
+ */
+
/**
* Currently: formatted text with an horizontal line
*/
@@ -3255,6 +3306,8 @@ public static void bullet() {
// Widgets: Images
// - Read about ImTextureID here: https://github.com/ocornut/imgui/wiki/Image-Loading-and-Displaying-Examples
+ // - Since imgui 1.91.9 the 'tint_col' and 'border_col' params were removed from Image(); use
+ // ImageWithBg() for tinting, and ImGuiCol_ImageBorder style colour for the border (imgui 1.92+).
public static void image(final long userTextureId, final ImVec2 imageSize) {
nImage(userTextureId, imageSize.x, imageSize.y);
@@ -3280,55 +3333,97 @@ public static void image(final long userTextureId, final float imageSizeX, final
nImage(userTextureId, imageSizeX, imageSizeY, uv0X, uv0Y, uv1X, uv1Y);
}
- public static void image(final long userTextureId, final ImVec2 imageSize, final ImVec2 uv0, final ImVec2 uv1, final ImVec4 tintCol) {
- nImage(userTextureId, imageSize.x, imageSize.y, uv0.x, uv0.y, uv1.x, uv1.y, tintCol.x, tintCol.y, tintCol.z, tintCol.w);
+ private static native void nImage(long userTextureId, float imageSizeX, float imageSizeY); /*MANUAL
+ ImVec2 imageSize = ImVec2(imageSizeX, imageSizeY);
+ ImGui::Image((ImTextureID)(uintptr_t)userTextureId, imageSize);
+ */
+
+ private static native void nImage(long userTextureId, float imageSizeX, float imageSizeY, float uv0X, float uv0Y); /*MANUAL
+ ImVec2 imageSize = ImVec2(imageSizeX, imageSizeY);
+ ImVec2 uv0 = ImVec2(uv0X, uv0Y);
+ ImGui::Image((ImTextureID)(uintptr_t)userTextureId, imageSize, uv0);
+ */
+
+ private static native void nImage(long userTextureId, float imageSizeX, float imageSizeY, float uv0X, float uv0Y, float uv1X, float uv1Y); /*MANUAL
+ ImVec2 imageSize = ImVec2(imageSizeX, imageSizeY);
+ ImVec2 uv0 = ImVec2(uv0X, uv0Y);
+ ImVec2 uv1 = ImVec2(uv1X, uv1Y);
+ ImGui::Image((ImTextureID)(uintptr_t)userTextureId, imageSize, uv0, uv1);
+ */
+
+ public static void imageWithBg(final long userTextureId, final ImVec2 imageSize) {
+ nImageWithBg(userTextureId, imageSize.x, imageSize.y);
+ }
+
+ public static void imageWithBg(final long userTextureId, final float imageSizeX, final float imageSizeY) {
+ nImageWithBg(userTextureId, imageSizeX, imageSizeY);
}
- public static void image(final long userTextureId, final float imageSizeX, final float imageSizeY, final float uv0X, final float uv0Y, final float uv1X, final float uv1Y, final float tintColX, final float tintColY, final float tintColZ, final float tintColW) {
- nImage(userTextureId, imageSizeX, imageSizeY, uv0X, uv0Y, uv1X, uv1Y, tintColX, tintColY, tintColZ, tintColW);
+ public static void imageWithBg(final long userTextureId, final ImVec2 imageSize, final ImVec2 uv0) {
+ nImageWithBg(userTextureId, imageSize.x, imageSize.y, uv0.x, uv0.y);
}
- public static void image(final long userTextureId, final ImVec2 imageSize, final ImVec2 uv0, final ImVec2 uv1, final ImVec4 tintCol, final ImVec4 borderCol) {
- nImage(userTextureId, imageSize.x, imageSize.y, uv0.x, uv0.y, uv1.x, uv1.y, tintCol.x, tintCol.y, tintCol.z, tintCol.w, borderCol.x, borderCol.y, borderCol.z, borderCol.w);
+ public static void imageWithBg(final long userTextureId, final float imageSizeX, final float imageSizeY, final float uv0X, final float uv0Y) {
+ nImageWithBg(userTextureId, imageSizeX, imageSizeY, uv0X, uv0Y);
}
- public static void image(final long userTextureId, final float imageSizeX, final float imageSizeY, final float uv0X, final float uv0Y, final float uv1X, final float uv1Y, final float tintColX, final float tintColY, final float tintColZ, final float tintColW, final float borderColX, final float borderColY, final float borderColZ, final float borderColW) {
- nImage(userTextureId, imageSizeX, imageSizeY, uv0X, uv0Y, uv1X, uv1Y, tintColX, tintColY, tintColZ, tintColW, borderColX, borderColY, borderColZ, borderColW);
+ public static void imageWithBg(final long userTextureId, final ImVec2 imageSize, final ImVec2 uv0, final ImVec2 uv1) {
+ nImageWithBg(userTextureId, imageSize.x, imageSize.y, uv0.x, uv0.y, uv1.x, uv1.y);
}
- private static native void nImage(long userTextureId, float imageSizeX, float imageSizeY); /*MANUAL
+ public static void imageWithBg(final long userTextureId, final float imageSizeX, final float imageSizeY, final float uv0X, final float uv0Y, final float uv1X, final float uv1Y) {
+ nImageWithBg(userTextureId, imageSizeX, imageSizeY, uv0X, uv0Y, uv1X, uv1Y);
+ }
+
+ public static void imageWithBg(final long userTextureId, final ImVec2 imageSize, final ImVec2 uv0, final ImVec2 uv1, final ImVec4 bgCol) {
+ nImageWithBg(userTextureId, imageSize.x, imageSize.y, uv0.x, uv0.y, uv1.x, uv1.y, bgCol.x, bgCol.y, bgCol.z, bgCol.w);
+ }
+
+ public static void imageWithBg(final long userTextureId, final float imageSizeX, final float imageSizeY, final float uv0X, final float uv0Y, final float uv1X, final float uv1Y, final float bgColX, final float bgColY, final float bgColZ, final float bgColW) {
+ nImageWithBg(userTextureId, imageSizeX, imageSizeY, uv0X, uv0Y, uv1X, uv1Y, bgColX, bgColY, bgColZ, bgColW);
+ }
+
+ public static void imageWithBg(final long userTextureId, final ImVec2 imageSize, final ImVec2 uv0, final ImVec2 uv1, final ImVec4 bgCol, final ImVec4 tintCol) {
+ nImageWithBg(userTextureId, imageSize.x, imageSize.y, uv0.x, uv0.y, uv1.x, uv1.y, bgCol.x, bgCol.y, bgCol.z, bgCol.w, tintCol.x, tintCol.y, tintCol.z, tintCol.w);
+ }
+
+ public static void imageWithBg(final long userTextureId, final float imageSizeX, final float imageSizeY, final float uv0X, final float uv0Y, final float uv1X, final float uv1Y, final float bgColX, final float bgColY, final float bgColZ, final float bgColW, final float tintColX, final float tintColY, final float tintColZ, final float tintColW) {
+ nImageWithBg(userTextureId, imageSizeX, imageSizeY, uv0X, uv0Y, uv1X, uv1Y, bgColX, bgColY, bgColZ, bgColW, tintColX, tintColY, tintColZ, tintColW);
+ }
+
+ private static native void nImageWithBg(long userTextureId, float imageSizeX, float imageSizeY); /*MANUAL
ImVec2 imageSize = ImVec2(imageSizeX, imageSizeY);
- ImGui::Image((ImTextureID)(uintptr_t)userTextureId, imageSize);
+ ImGui::ImageWithBg((ImTextureID)(uintptr_t)userTextureId, imageSize);
*/
- private static native void nImage(long userTextureId, float imageSizeX, float imageSizeY, float uv0X, float uv0Y); /*MANUAL
+ private static native void nImageWithBg(long userTextureId, float imageSizeX, float imageSizeY, float uv0X, float uv0Y); /*MANUAL
ImVec2 imageSize = ImVec2(imageSizeX, imageSizeY);
ImVec2 uv0 = ImVec2(uv0X, uv0Y);
- ImGui::Image((ImTextureID)(uintptr_t)userTextureId, imageSize, uv0);
+ ImGui::ImageWithBg((ImTextureID)(uintptr_t)userTextureId, imageSize, uv0);
*/
- private static native void nImage(long userTextureId, float imageSizeX, float imageSizeY, float uv0X, float uv0Y, float uv1X, float uv1Y); /*MANUAL
+ private static native void nImageWithBg(long userTextureId, float imageSizeX, float imageSizeY, float uv0X, float uv0Y, float uv1X, float uv1Y); /*MANUAL
ImVec2 imageSize = ImVec2(imageSizeX, imageSizeY);
ImVec2 uv0 = ImVec2(uv0X, uv0Y);
ImVec2 uv1 = ImVec2(uv1X, uv1Y);
- ImGui::Image((ImTextureID)(uintptr_t)userTextureId, imageSize, uv0, uv1);
+ ImGui::ImageWithBg((ImTextureID)(uintptr_t)userTextureId, imageSize, uv0, uv1);
*/
- private static native void nImage(long userTextureId, float imageSizeX, float imageSizeY, float uv0X, float uv0Y, float uv1X, float uv1Y, float tintColX, float tintColY, float tintColZ, float tintColW); /*MANUAL
+ private static native void nImageWithBg(long userTextureId, float imageSizeX, float imageSizeY, float uv0X, float uv0Y, float uv1X, float uv1Y, float bgColX, float bgColY, float bgColZ, float bgColW); /*MANUAL
ImVec2 imageSize = ImVec2(imageSizeX, imageSizeY);
ImVec2 uv0 = ImVec2(uv0X, uv0Y);
ImVec2 uv1 = ImVec2(uv1X, uv1Y);
- ImVec4 tintCol = ImVec4(tintColX, tintColY, tintColZ, tintColW);
- ImGui::Image((ImTextureID)(uintptr_t)userTextureId, imageSize, uv0, uv1, tintCol);
+ ImVec4 bgCol = ImVec4(bgColX, bgColY, bgColZ, bgColW);
+ ImGui::ImageWithBg((ImTextureID)(uintptr_t)userTextureId, imageSize, uv0, uv1, bgCol);
*/
- private static native void nImage(long userTextureId, float imageSizeX, float imageSizeY, float uv0X, float uv0Y, float uv1X, float uv1Y, float tintColX, float tintColY, float tintColZ, float tintColW, float borderColX, float borderColY, float borderColZ, float borderColW); /*MANUAL
+ private static native void nImageWithBg(long userTextureId, float imageSizeX, float imageSizeY, float uv0X, float uv0Y, float uv1X, float uv1Y, float bgColX, float bgColY, float bgColZ, float bgColW, float tintColX, float tintColY, float tintColZ, float tintColW); /*MANUAL
ImVec2 imageSize = ImVec2(imageSizeX, imageSizeY);
ImVec2 uv0 = ImVec2(uv0X, uv0Y);
ImVec2 uv1 = ImVec2(uv1X, uv1Y);
+ ImVec4 bgCol = ImVec4(bgColX, bgColY, bgColZ, bgColW);
ImVec4 tintCol = ImVec4(tintColX, tintColY, tintColZ, tintColW);
- ImVec4 borderCol = ImVec4(borderColX, borderColY, borderColZ, borderColW);
- ImGui::Image((ImTextureID)(uintptr_t)userTextureId, imageSize, uv0, uv1, tintCol, borderCol);
+ ImGui::ImageWithBg((ImTextureID)(uintptr_t)userTextureId, imageSize, uv0, uv1, bgCol, tintCol);
*/
public static boolean imageButton(final String strId, final long userTextureId, final ImVec2 imageSize) {
@@ -11175,7 +11270,7 @@ public static void tableSetColumnEnabled(final int columnN, final boolean value)
*/
/**
- * Return hovered column. return -1 when table is not hovered. return columns_count if the unused space at the right of visible columns is hovered. Can also use ({@code TableGetColumnFlags() & ImGuiTableColumnFlags_IsHovered}) instead.
+ * Return hovered column. return -1 when table is not hovered. return columns_count if the unused space at the right of visible columns is hovered. Can also use {@code (TableGetColumnFlags() & ImGuiTableColumnFlags_IsHovered)} instead.
*/
public static int tableGetHoveredColumn() {
return nTableGetHoveredColumn();
@@ -12318,6 +12413,31 @@ public static boolean isItemToggledOpen() {
return ImGui::IsItemToggledOpen();
*/
+ /**
+ * Was the last item's selection state toggled? (since imgui 1.91 multi-select).
+ * Useful if you need per-item information before reaching {@code EndMultiSelect()}.
+ */
+ public static boolean isItemToggledSelection() {
+ return nIsItemToggledSelection();
+ }
+
+ private static native boolean nIsItemToggledSelection(); /*
+ return ImGui::IsItemToggledSelection();
+ */
+
+ /**
+ * Set selection user data for the next item, used by {@code BeginMultiSelect}/{@code EndMultiSelect()}
+ * and inside {@code ImGuiMultiSelectIO}. Opaque 64-bit value (e.g. an index, a pointer,
+ * a hash) unique to your item identity (since imgui 1.91).
+ */
+ public static void setNextItemSelectionUserData(final long selectionUserData) {
+ nSetNextItemSelectionUserData(selectionUserData);
+ }
+
+ private static native void nSetNextItemSelectionUserData(long selectionUserData); /*
+ ImGui::SetNextItemSelectionUserData(selectionUserData);
+ */
+
/**
* Is any item hovered?
*/
@@ -12361,6 +12481,17 @@ public static int getItemID() {
return ImGui::GetItemID();
*/
+ /**
+ * Get generic flags of last item (since imgui 1.91). Returns an {@code ImGuiItemFlags} mask.
+ */
+ public static int getItemFlags() {
+ return nGetItemFlags();
+ }
+
+ private static native int nGetItemFlags(); /*
+ return ImGui::GetItemFlags();
+ */
+
/**
* Get upper-left bounding rectangle of the last item (screen space)
*/
@@ -13273,14 +13404,14 @@ public static void getMousePosOnOpeningCurrentPopup(final ImVec2 dst) {
*/
/**
- * Is mouse dragging? (uses {@code io.MouseDraggingThreshold if lock_threshold < 0.0f})
+ * Is mouse dragging? {@code (uses io.MouseDraggingThreshold if lock_threshold < 0.0f)}
*/
public static boolean isMouseDragging(final int button) {
return nIsMouseDragging(button);
}
/**
- * Is mouse dragging? (uses {@code io.MouseDraggingThreshold if lock_threshold < 0.0f})
+ * Is mouse dragging? {@code (uses io.MouseDraggingThreshold if lock_threshold < 0.0f)}
*/
public static boolean isMouseDragging(final int button, final float lockThreshold) {
return nIsMouseDragging(button, lockThreshold);
@@ -13296,7 +13427,7 @@ public static boolean isMouseDragging(final int button, final float lockThreshol
/**
* Return the delta from the initial clicking position while the mouse button is pressed or was just released.
- * This is locked and return 0.0f until the mouse moves past a distance threshold at least once (uses {@code io.MouseDraggingThreshold if lock_threshold < 0.0f})
+ * This is locked and return 0.0f until the mouse moves past a distance threshold at least once {@code (uses io.MouseDraggingThreshold if lock_threshold < 0.0f)}
*/
public static ImVec2 getMouseDragDelta() {
final ImVec2 dst = new ImVec2();
@@ -13306,7 +13437,7 @@ public static ImVec2 getMouseDragDelta() {
/**
* Return the delta from the initial clicking position while the mouse button is pressed or was just released.
- * This is locked and return 0.0f until the mouse moves past a distance threshold at least once (uses {@code io.MouseDraggingThreshold if lock_threshold < 0.0f})
+ * This is locked and return 0.0f until the mouse moves past a distance threshold at least once {@code (uses io.MouseDraggingThreshold if lock_threshold < 0.0f)}
*/
public static float getMouseDragDeltaX() {
return nGetMouseDragDeltaX();
@@ -13314,7 +13445,7 @@ public static float getMouseDragDeltaX() {
/**
* Return the delta from the initial clicking position while the mouse button is pressed or was just released.
- * This is locked and return 0.0f until the mouse moves past a distance threshold at least once (uses {@code io.MouseDraggingThreshold if lock_threshold < 0.0f})
+ * This is locked and return 0.0f until the mouse moves past a distance threshold at least once {@code (uses io.MouseDraggingThreshold if lock_threshold < 0.0f)}
*/
public static float getMouseDragDeltaY() {
return nGetMouseDragDeltaY();
@@ -13322,7 +13453,7 @@ public static float getMouseDragDeltaY() {
/**
* Return the delta from the initial clicking position while the mouse button is pressed or was just released.
- * This is locked and return 0.0f until the mouse moves past a distance threshold at least once (uses {@code io.MouseDraggingThreshold if lock_threshold < 0.0f})
+ * This is locked and return 0.0f until the mouse moves past a distance threshold at least once {@code (uses io.MouseDraggingThreshold if lock_threshold < 0.0f)}
*/
public static void getMouseDragDelta(final ImVec2 dst) {
nGetMouseDragDelta(dst);
@@ -13330,7 +13461,7 @@ public static void getMouseDragDelta(final ImVec2 dst) {
/**
* Return the delta from the initial clicking position while the mouse button is pressed or was just released.
- * This is locked and return 0.0f until the mouse moves past a distance threshold at least once (uses {@code io.MouseDraggingThreshold if lock_threshold < 0.0f})
+ * This is locked and return 0.0f until the mouse moves past a distance threshold at least once {@code (uses io.MouseDraggingThreshold if lock_threshold < 0.0f)}
*/
public static ImVec2 getMouseDragDelta(final int button) {
final ImVec2 dst = new ImVec2();
@@ -13340,7 +13471,7 @@ public static ImVec2 getMouseDragDelta(final int button) {
/**
* Return the delta from the initial clicking position while the mouse button is pressed or was just released.
- * This is locked and return 0.0f until the mouse moves past a distance threshold at least once (uses {@code io.MouseDraggingThreshold if lock_threshold < 0.0f})
+ * This is locked and return 0.0f until the mouse moves past a distance threshold at least once {@code (uses io.MouseDraggingThreshold if lock_threshold < 0.0f)}
*/
public static float getMouseDragDeltaX(final int button) {
return nGetMouseDragDeltaX(button);
@@ -13348,7 +13479,7 @@ public static float getMouseDragDeltaX(final int button) {
/**
* Return the delta from the initial clicking position while the mouse button is pressed or was just released.
- * This is locked and return 0.0f until the mouse moves past a distance threshold at least once (uses {@code io.MouseDraggingThreshold if lock_threshold < 0.0f})
+ * This is locked and return 0.0f until the mouse moves past a distance threshold at least once {@code (uses io.MouseDraggingThreshold if lock_threshold < 0.0f)}
*/
public static float getMouseDragDeltaY(final int button) {
return nGetMouseDragDeltaY(button);
@@ -13356,7 +13487,7 @@ public static float getMouseDragDeltaY(final int button) {
/**
* Return the delta from the initial clicking position while the mouse button is pressed or was just released.
- * This is locked and return 0.0f until the mouse moves past a distance threshold at least once (uses {@code io.MouseDraggingThreshold if lock_threshold < 0.0f})
+ * This is locked and return 0.0f until the mouse moves past a distance threshold at least once {@code (uses io.MouseDraggingThreshold if lock_threshold < 0.0f)}
*/
public static void getMouseDragDelta(final ImVec2 dst, final int button) {
nGetMouseDragDelta(dst, button);
@@ -13364,7 +13495,7 @@ public static void getMouseDragDelta(final ImVec2 dst, final int button) {
/**
* Return the delta from the initial clicking position while the mouse button is pressed or was just released.
- * This is locked and return 0.0f until the mouse moves past a distance threshold at least once (uses {@code io.MouseDraggingThreshold if lock_threshold < 0.0f})
+ * This is locked and return 0.0f until the mouse moves past a distance threshold at least once {@code (uses io.MouseDraggingThreshold if lock_threshold < 0.0f)}
*/
public static ImVec2 getMouseDragDelta(final int button, final float lockThreshold) {
final ImVec2 dst = new ImVec2();
@@ -13374,7 +13505,7 @@ public static ImVec2 getMouseDragDelta(final int button, final float lockThresho
/**
* Return the delta from the initial clicking position while the mouse button is pressed or was just released.
- * This is locked and return 0.0f until the mouse moves past a distance threshold at least once (uses {@code io.MouseDraggingThreshold if lock_threshold < 0.0f})
+ * This is locked and return 0.0f until the mouse moves past a distance threshold at least once {@code (uses io.MouseDraggingThreshold if lock_threshold < 0.0f)}
*/
public static float getMouseDragDeltaX(final int button, final float lockThreshold) {
return nGetMouseDragDeltaX(button, lockThreshold);
@@ -13382,7 +13513,7 @@ public static float getMouseDragDeltaX(final int button, final float lockThresho
/**
* Return the delta from the initial clicking position while the mouse button is pressed or was just released.
- * This is locked and return 0.0f until the mouse moves past a distance threshold at least once (uses {@code io.MouseDraggingThreshold if lock_threshold < 0.0f})
+ * This is locked and return 0.0f until the mouse moves past a distance threshold at least once {@code (uses io.MouseDraggingThreshold if lock_threshold < 0.0f)}
*/
public static float getMouseDragDeltaY(final int button, final float lockThreshold) {
return nGetMouseDragDeltaY(button, lockThreshold);
@@ -13390,7 +13521,7 @@ public static float getMouseDragDeltaY(final int button, final float lockThresho
/**
* Return the delta from the initial clicking position while the mouse button is pressed or was just released.
- * This is locked and return 0.0f until the mouse moves past a distance threshold at least once (uses {@code io.MouseDraggingThreshold if lock_threshold < 0.0f})
+ * This is locked and return 0.0f until the mouse moves past a distance threshold at least once {@code (uses io.MouseDraggingThreshold if lock_threshold < 0.0f)}
*/
public static void getMouseDragDelta(final ImVec2 dst, final int button, final float lockThreshold) {
nGetMouseDragDelta(dst, button, lockThreshold);
diff --git a/imgui-binding/src/generated/java/imgui/ImGuiIO.java b/imgui-binding/src/generated/java/imgui/ImGuiIO.java
index c71faed7..74b74ff2 100644
--- a/imgui-binding/src/generated/java/imgui/ImGuiIO.java
+++ b/imgui-binding/src/generated/java/imgui/ImGuiIO.java
@@ -438,6 +438,30 @@ public void setConfigDockingNoSplit(final boolean value) {
THIS->ConfigDockingNoSplit = value;
*/
+ /**
+ * Simplified docking mode: disable window merging into the same tab-bar, so docking is limited to splitting windows.
+ * (new in imgui 1.92)
+ */
+ public boolean getConfigDockingNoDockingOver() {
+ return nGetConfigDockingNoDockingOver();
+ }
+
+ /**
+ * Simplified docking mode: disable window merging into the same tab-bar, so docking is limited to splitting windows.
+ * (new in imgui 1.92)
+ */
+ public void setConfigDockingNoDockingOver(final boolean value) {
+ nSetConfigDockingNoDockingOver(value);
+ }
+
+ private native boolean nGetConfigDockingNoDockingOver(); /*
+ return THIS->ConfigDockingNoDockingOver;
+ */
+
+ private native void nSetConfigDockingNoDockingOver(boolean value); /*
+ THIS->ConfigDockingNoDockingOver = value;
+ */
+
/**
* Enable docking with holding Shift key (reduce visual noise, allows dropping in wider space)
*/
@@ -588,6 +612,162 @@ public void setConfigViewportsNoDefaultParent(final boolean value) {
THIS->ConfigViewportsNoDefaultParent = value;
*/
+ /**
+ * [EXPERIMENTAL] Automatically overwrite {@code style.FontScaleDpi} when monitor DPI changes.
+ * Scales fonts but NOT sizes/padding (for now). Docking branch only. (since imgui 1.92)
+ */
+ public boolean getConfigDpiScaleFonts() {
+ return nGetConfigDpiScaleFonts();
+ }
+
+ /**
+ * [EXPERIMENTAL] Automatically overwrite {@code style.FontScaleDpi} when monitor DPI changes.
+ * Scales fonts but NOT sizes/padding (for now). Docking branch only. (since imgui 1.92)
+ */
+ public void setConfigDpiScaleFonts(final boolean value) {
+ nSetConfigDpiScaleFonts(value);
+ }
+
+ private native boolean nGetConfigDpiScaleFonts(); /*
+ return THIS->ConfigDpiScaleFonts;
+ */
+
+ private native void nSetConfigDpiScaleFonts(boolean value); /*
+ THIS->ConfigDpiScaleFonts = value;
+ */
+
+ /**
+ * [EXPERIMENTAL] Scale Dear ImGui and platform windows when monitor DPI changes. Docking branch only. (since imgui 1.92)
+ */
+ public boolean getConfigDpiScaleViewports() {
+ return nGetConfigDpiScaleViewports();
+ }
+
+ /**
+ * [EXPERIMENTAL] Scale Dear ImGui and platform windows when monitor DPI changes. Docking branch only. (since imgui 1.92)
+ */
+ public void setConfigDpiScaleViewports(final boolean value) {
+ nSetConfigDpiScaleViewports(value);
+ }
+
+ private native boolean nGetConfigDpiScaleViewports(); /*
+ return THIS->ConfigDpiScaleViewports;
+ */
+
+ private native void nSetConfigDpiScaleViewports(boolean value); /*
+ THIS->ConfigDpiScaleViewports = value;
+ */
+
+ /**
+ * Enable error recovery support. Some errors won't be detected and lead to direct crashes if recovery is disabled. (since imgui 1.91.6)
+ */
+ public boolean getConfigErrorRecovery() {
+ return nGetConfigErrorRecovery();
+ }
+
+ /**
+ * Enable error recovery support. Some errors won't be detected and lead to direct crashes if recovery is disabled. (since imgui 1.91.6)
+ */
+ public void setConfigErrorRecovery(final boolean value) {
+ nSetConfigErrorRecovery(value);
+ }
+
+ private native boolean nGetConfigErrorRecovery(); /*
+ return THIS->ConfigErrorRecovery;
+ */
+
+ private native void nSetConfigErrorRecovery(boolean value); /*
+ THIS->ConfigErrorRecovery = value;
+ */
+
+ /**
+ * Enable asserts on recoverable errors. By default calls IM_ASSERT() when returning from a failing IM_ASSERT_USER_ERROR(). (since imgui 1.91.6)
+ */
+ public boolean getConfigErrorRecoveryEnableAssert() {
+ return nGetConfigErrorRecoveryEnableAssert();
+ }
+
+ /**
+ * Enable asserts on recoverable errors. By default calls IM_ASSERT() when returning from a failing IM_ASSERT_USER_ERROR(). (since imgui 1.91.6)
+ */
+ public void setConfigErrorRecoveryEnableAssert(final boolean value) {
+ nSetConfigErrorRecoveryEnableAssert(value);
+ }
+
+ private native boolean nGetConfigErrorRecoveryEnableAssert(); /*
+ return THIS->ConfigErrorRecoveryEnableAssert;
+ */
+
+ private native void nSetConfigErrorRecoveryEnableAssert(boolean value); /*
+ THIS->ConfigErrorRecoveryEnableAssert = value;
+ */
+
+ /**
+ * Enable debug log output on recoverable errors. (since imgui 1.91.6)
+ */
+ public boolean getConfigErrorRecoveryEnableDebugLog() {
+ return nGetConfigErrorRecoveryEnableDebugLog();
+ }
+
+ /**
+ * Enable debug log output on recoverable errors. (since imgui 1.91.6)
+ */
+ public void setConfigErrorRecoveryEnableDebugLog(final boolean value) {
+ nSetConfigErrorRecoveryEnableDebugLog(value);
+ }
+
+ private native boolean nGetConfigErrorRecoveryEnableDebugLog(); /*
+ return THIS->ConfigErrorRecoveryEnableDebugLog;
+ */
+
+ private native void nSetConfigErrorRecoveryEnableDebugLog(boolean value); /*
+ THIS->ConfigErrorRecoveryEnableDebugLog = value;
+ */
+
+ /**
+ * Enable tooltip on recoverable errors. The tooltip includes a way to enable asserts if they were disabled. (since imgui 1.91.6)
+ */
+ public boolean getConfigErrorRecoveryEnableTooltip() {
+ return nGetConfigErrorRecoveryEnableTooltip();
+ }
+
+ /**
+ * Enable tooltip on recoverable errors. The tooltip includes a way to enable asserts if they were disabled. (since imgui 1.91.6)
+ */
+ public void setConfigErrorRecoveryEnableTooltip(final boolean value) {
+ nSetConfigErrorRecoveryEnableTooltip(value);
+ }
+
+ private native boolean nGetConfigErrorRecoveryEnableTooltip(); /*
+ return THIS->ConfigErrorRecoveryEnableTooltip;
+ */
+
+ private native void nSetConfigErrorRecoveryEnableTooltip(boolean value); /*
+ THIS->ConfigErrorRecoveryEnableTooltip = value;
+ */
+
+ /**
+ * Highlight and show an error message popup when multiple items have conflicting identifiers. (since imgui 1.91.0)
+ */
+ public boolean getConfigDebugHighlightIdConflicts() {
+ return nGetConfigDebugHighlightIdConflicts();
+ }
+
+ /**
+ * Highlight and show an error message popup when multiple items have conflicting identifiers. (since imgui 1.91.0)
+ */
+ public void setConfigDebugHighlightIdConflicts(final boolean value) {
+ nSetConfigDebugHighlightIdConflicts(value);
+ }
+
+ private native boolean nGetConfigDebugHighlightIdConflicts(); /*
+ return THIS->ConfigDebugHighlightIdConflicts;
+ */
+
+ private native void nSetConfigDebugHighlightIdConflicts(boolean value); /*
+ THIS->ConfigDebugHighlightIdConflicts = value;
+ */
+
// Miscellaneous options
/**
@@ -1132,29 +1312,8 @@ void setClipboardTextStub(void* userData, const char* text) {
THIS->GetClipboardTextFn = getClipboardTextStub;
*/
- /**
- * Optional: Platform locale
- * [Experimental] Configure decimal point e.g. '.' or ',' useful for some languages (e.g. German), generally pulled from {@code *localeconv()->decimal_point}
- */
- public short getPlatformLocaleDecimalPoint() {
- return nGetPlatformLocaleDecimalPoint();
- }
-
- /**
- * Optional: Platform locale
- * [Experimental] Configure decimal point e.g. '.' or ',' useful for some languages (e.g. German), generally pulled from {@code *localeconv()->decimal_point}
- */
- public void setPlatformLocaleDecimalPoint(final short value) {
- nSetPlatformLocaleDecimalPoint(value);
- }
-
- private native short nGetPlatformLocaleDecimalPoint(); /*
- return THIS->PlatformLocaleDecimalPoint;
- */
-
- private native void nSetPlatformLocaleDecimalPoint(short value); /*
- THIS->PlatformLocaleDecimalPoint = value;
- */
+ // PlatformLocaleDecimalPoint was removed from ImGuiIO in imgui 1.92; the equivalent is
+ // now 'style.LocaleDecimalPoint' (not currently surfaced in the Java binding).
//------------------------------------------------------------------
// Input - Call before calling NewFrame()
@@ -2041,11 +2200,11 @@ public void setKeysData(final ImGuiKeyData[] value) {
}
private native ImGuiKeyData[] nGetKeysData(); /*
- return Jni::NewImGuiKeyDataArray(env, THIS->KeysData, ImGuiKey_KeysData_SIZE);
+ return Jni::NewImGuiKeyDataArray(env, THIS->KeysData, ImGuiKey_NamedKey_COUNT);
*/
private native void nSetKeysData(ImGuiKeyData[] value); /*
- Jni::ImGuiKeyDataArrayCpy(env, value, THIS->KeysData, ImGuiKey_KeysData_SIZE);
+ Jni::ImGuiKeyDataArrayCpy(env, value, THIS->KeysData, ImGuiKey_NamedKey_COUNT);
*/
/**
@@ -2815,49 +2974,8 @@ public boolean getAppAcceptingEvents() {
return THIS->AppAcceptingEvents;
*/
- /**
- * -1: unknown, 0: using AddKeyEvent(), 1: using legacy io.KeysDown[]
- */
- public short getBackendUsingLegacyKeyArrays() {
- return nGetBackendUsingLegacyKeyArrays();
- }
-
- /**
- * -1: unknown, 0: using AddKeyEvent(), 1: using legacy io.KeysDown[]
- */
- public void setBackendUsingLegacyKeyArrays(final short value) {
- nSetBackendUsingLegacyKeyArrays(value);
- }
-
- private native short nGetBackendUsingLegacyKeyArrays(); /*
- return THIS->BackendUsingLegacyKeyArrays;
- */
-
- private native void nSetBackendUsingLegacyKeyArrays(short value); /*
- THIS->BackendUsingLegacyKeyArrays = value;
- */
-
- /**
- * 0: using AddKeyAnalogEvent(), 1: writing to legacy io.NavInputs[] directly
- */
- public boolean getBackendUsingLegacyNavInputArray() {
- return nGetBackendUsingLegacyNavInputArray();
- }
-
- /**
- * 0: using AddKeyAnalogEvent(), 1: writing to legacy io.NavInputs[] directly
- */
- public void setBackendUsingLegacyNavInputArray(final boolean value) {
- nSetBackendUsingLegacyNavInputArray(value);
- }
-
- private native boolean nGetBackendUsingLegacyNavInputArray(); /*
- return THIS->BackendUsingLegacyNavInputArray;
- */
-
- private native void nSetBackendUsingLegacyNavInputArray(boolean value); /*
- THIS->BackendUsingLegacyNavInputArray = value;
- */
+ // BackendUsingLegacyKeyArrays and BackendUsingLegacyNavInputArray were removed from ImGuiIO
+ // in imgui 1.92 (the legacy code paths those fields gated are gone).
/**
* For AddInputCharacterUTF16
diff --git a/imgui-binding/src/generated/java/imgui/ImGuiStyle.java b/imgui-binding/src/generated/java/imgui/ImGuiStyle.java
index 897a6cb9..194e228c 100644
--- a/imgui-binding/src/generated/java/imgui/ImGuiStyle.java
+++ b/imgui-binding/src/generated/java/imgui/ImGuiStyle.java
@@ -74,6 +74,56 @@ public void setDisabledAlpha(final float value) {
THIS->DisabledAlpha = value;
*/
+ /**
+ * Main global scale factor applied on top of font size. Replaces {@code io.FontGlobalScale} (moved
+ * from io to style in imgui 1.92). May be set by application once or exposed to end-users.
+ */
+ public float getFontScaleMain() {
+ return nGetFontScaleMain();
+ }
+
+ /**
+ * Main global scale factor applied on top of font size. Replaces {@code io.FontGlobalScale} (moved
+ * from io to style in imgui 1.92). May be set by application once or exposed to end-users.
+ */
+ public void setFontScaleMain(final float value) {
+ nSetFontScaleMain(value);
+ }
+
+ private native float nGetFontScaleMain(); /*
+ return THIS->FontScaleMain;
+ */
+
+ private native void nSetFontScaleMain(float value); /*
+ THIS->FontScaleMain = value;
+ */
+
+ /**
+ * Additional global scale factor from viewport/monitor contents scale (since imgui 1.92). In the
+ * docking branch: when {@code io.ConfigDpiScaleFonts} is enabled, this is automatically overwritten
+ * when changing monitor DPI.
+ */
+ public float getFontScaleDpi() {
+ return nGetFontScaleDpi();
+ }
+
+ /**
+ * Additional global scale factor from viewport/monitor contents scale (since imgui 1.92). In the
+ * docking branch: when {@code io.ConfigDpiScaleFonts} is enabled, this is automatically overwritten
+ * when changing monitor DPI.
+ */
+ public void setFontScaleDpi(final float value) {
+ nSetFontScaleDpi(value);
+ }
+
+ private native float nGetFontScaleDpi(); /*
+ return THIS->FontScaleDpi;
+ */
+
+ private native void nSetFontScaleDpi(float value); /*
+ THIS->FontScaleDpi = value;
+ */
+
/**
* Padding within a window.
*/
@@ -966,28 +1016,60 @@ public void setTabBorderSize(final float value) {
THIS->TabBorderSize = value;
*/
+ /**
+ * Minimum width for close button to appear on a selected tab when hovered.
+ * {@code -1}: always visible; {@code 0}: visible when hovered; {@code >0}: visible when hovered if
+ * tab width is at least this wide. (Since imgui 1.91.9 this field split into
+ * {@code TabCloseButtonMinWidthSelected} and {@code TabCloseButtonMinWidthUnselected}.)
+ */
+ public float getTabCloseButtonMinWidthSelected() {
+ return nGetTabCloseButtonMinWidthSelected();
+ }
+
+ /**
+ * Minimum width for close button to appear on a selected tab when hovered.
+ * {@code -1}: always visible; {@code 0}: visible when hovered; {@code >0}: visible when hovered if
+ * tab width is at least this wide. (Since imgui 1.91.9 this field split into
+ * {@code TabCloseButtonMinWidthSelected} and {@code TabCloseButtonMinWidthUnselected}.)
+ */
+ public void setTabCloseButtonMinWidthSelected(final float value) {
+ nSetTabCloseButtonMinWidthSelected(value);
+ }
+
+ private native float nGetTabCloseButtonMinWidthSelected(); /*
+ return THIS->TabCloseButtonMinWidthSelected;
+ */
+
+ private native void nSetTabCloseButtonMinWidthSelected(float value); /*
+ THIS->TabCloseButtonMinWidthSelected = value;
+ */
+
/**
* Minimum width for close button to appear on an unselected tab when hovered.
- * Set to 0.0f to always show when hovering, set to FLT_MAX to never show close button unless selected.
+ * {@code -1}: always visible; {@code 0}: visible when hovered; {@code >0}: visible when hovered if
+ * tab width is at least this wide; {@code FLT_MAX}: never show close button when unselected.
+ * (Since imgui 1.91.9; renamed from {@code TabMinWidthForCloseButton}.)
*/
- public float getTabMinWidthForCloseButton() {
- return nGetTabMinWidthForCloseButton();
+ public float getTabCloseButtonMinWidthUnselected() {
+ return nGetTabCloseButtonMinWidthUnselected();
}
/**
* Minimum width for close button to appear on an unselected tab when hovered.
- * Set to 0.0f to always show when hovering, set to FLT_MAX to never show close button unless selected.
+ * {@code -1}: always visible; {@code 0}: visible when hovered; {@code >0}: visible when hovered if
+ * tab width is at least this wide; {@code FLT_MAX}: never show close button when unselected.
+ * (Since imgui 1.91.9; renamed from {@code TabMinWidthForCloseButton}.)
*/
- public void setTabMinWidthForCloseButton(final float value) {
- nSetTabMinWidthForCloseButton(value);
+ public void setTabCloseButtonMinWidthUnselected(final float value) {
+ nSetTabCloseButtonMinWidthUnselected(value);
}
- private native float nGetTabMinWidthForCloseButton(); /*
- return THIS->TabMinWidthForCloseButton;
+ private native float nGetTabCloseButtonMinWidthUnselected(); /*
+ return THIS->TabCloseButtonMinWidthUnselected;
*/
- private native void nSetTabMinWidthForCloseButton(float value); /*
- THIS->TabMinWidthForCloseButton = value;
+ private native void nSetTabCloseButtonMinWidthUnselected(float value); /*
+ THIS->TabCloseButtonMinWidthUnselected = value;
*/
/**
@@ -1140,6 +1222,188 @@ public void setSelectableTextAlign(final float valueX, final float valueY) {
THIS->SelectableTextAlign = value;
*/
+ /**
+ * Rounding of Image() calls (since imgui 1.92).
+ */
+ public float getImageRounding() {
+ return nGetImageRounding();
+ }
+
+ /**
+ * Rounding of Image() calls (since imgui 1.92).
+ */
+ public void setImageRounding(final float value) {
+ nSetImageRounding(value);
+ }
+
+ private native float nGetImageRounding(); /*
+ return THIS->ImageRounding;
+ */
+
+ private native void nSetImageRounding(float value); /*
+ THIS->ImageRounding = value;
+ */
+
+ /**
+ * Thickness of border around Image() calls (since imgui 1.92).
+ */
+ public float getImageBorderSize() {
+ return nGetImageBorderSize();
+ }
+
+ /**
+ * Thickness of border around Image() calls (since imgui 1.92).
+ */
+ public void setImageBorderSize(final float value) {
+ nSetImageBorderSize(value);
+ }
+
+ private native float nGetImageBorderSize(); /*
+ return THIS->ImageBorderSize;
+ */
+
+ private native void nSetImageBorderSize(float value); /*
+ THIS->ImageBorderSize = value;
+ */
+
+ /**
+ * Default way to draw lines connecting TreeNode hierarchy (since imgui 1.92).
+ * One of {@code ImGuiTreeNodeFlags_DrawLinesNone} / {@code DrawLinesFull} / {@code DrawLinesToNodes}.
+ */
+ public int getTreeLinesFlags() {
+ return nGetTreeLinesFlags();
+ }
+
+ /**
+ * Default way to draw lines connecting TreeNode hierarchy (since imgui 1.92).
+ * One of {@code ImGuiTreeNodeFlags_DrawLinesNone} / {@code DrawLinesFull} / {@code DrawLinesToNodes}.
+ */
+ public void setTreeLinesFlags(final int value) {
+ nSetTreeLinesFlags(value);
+ }
+
+ /**
+ * Default way to draw lines connecting TreeNode hierarchy (since imgui 1.92).
+ * One of {@code ImGuiTreeNodeFlags_DrawLinesNone} / {@code DrawLinesFull} / {@code DrawLinesToNodes}.
+ */
+ public void addTreeLinesFlags(final int flags) {
+ setTreeLinesFlags(getTreeLinesFlags() | flags);
+ }
+
+ /**
+ * Default way to draw lines connecting TreeNode hierarchy (since imgui 1.92).
+ * One of {@code ImGuiTreeNodeFlags_DrawLinesNone} / {@code DrawLinesFull} / {@code DrawLinesToNodes}.
+ */
+ public void removeTreeLinesFlags(final int flags) {
+ setTreeLinesFlags(getTreeLinesFlags() & ~(flags));
+ }
+
+ /**
+ * Default way to draw lines connecting TreeNode hierarchy (since imgui 1.92).
+ * One of {@code ImGuiTreeNodeFlags_DrawLinesNone} / {@code DrawLinesFull} / {@code DrawLinesToNodes}.
+ */
+ public boolean hasTreeLinesFlags(final int flags) {
+ return (getTreeLinesFlags() & flags) != 0;
+ }
+
+ private native int nGetTreeLinesFlags(); /*
+ return THIS->TreeLinesFlags;
+ */
+
+ private native void nSetTreeLinesFlags(int value); /*
+ THIS->TreeLinesFlags = value;
+ */
+
+ /**
+ * Thickness of outlines when using {@code ImGuiTreeNodeFlags_DrawLines} (since imgui 1.92).
+ */
+ public float getTreeLinesSize() {
+ return nGetTreeLinesSize();
+ }
+
+ /**
+ * Thickness of outlines when using {@code ImGuiTreeNodeFlags_DrawLines} (since imgui 1.92).
+ */
+ public void setTreeLinesSize(final float value) {
+ nSetTreeLinesSize(value);
+ }
+
+ private native float nGetTreeLinesSize(); /*
+ return THIS->TreeLinesSize;
+ */
+
+ private native void nSetTreeLinesSize(float value); /*
+ THIS->TreeLinesSize = value;
+ */
+
+ /**
+ * Radius of lines connecting child nodes to the vertical line (since imgui 1.92).
+ */
+ public float getTreeLinesRounding() {
+ return nGetTreeLinesRounding();
+ }
+
+ /**
+ * Radius of lines connecting child nodes to the vertical line (since imgui 1.92).
+ */
+ public void setTreeLinesRounding(final float value) {
+ nSetTreeLinesRounding(value);
+ }
+
+ private native float nGetTreeLinesRounding(); /*
+ return THIS->TreeLinesRounding;
+ */
+
+ private native void nSetTreeLinesRounding(float value); /*
+ THIS->TreeLinesRounding = value;
+ */
+
+ /**
+ * Size of R/G/B/A color markers for {@code ColorEdit4()} and for Drags/Sliders when using
+ * {@code ImGuiSliderFlags_ColorMarkers} (since imgui 1.92.7). Set to 0 to disable globally.
+ */
+ public float getColorMarkerSize() {
+ return nGetColorMarkerSize();
+ }
+
+ /**
+ * Size of R/G/B/A color markers for {@code ColorEdit4()} and for Drags/Sliders when using
+ * {@code ImGuiSliderFlags_ColorMarkers} (since imgui 1.92.7). Set to 0 to disable globally.
+ */
+ public void setColorMarkerSize(final float value) {
+ nSetColorMarkerSize(value);
+ }
+
+ private native float nGetColorMarkerSize(); /*
+ return THIS->ColorMarkerSize;
+ */
+
+ private native void nSetColorMarkerSize(float value); /*
+ THIS->ColorMarkerSize = value;
+ */
+
+ /**
+ * Thickness of the separator line rendered by Separator() (new in imgui 1.92.7).
+ */
+ public float getSeparatorSize() {
+ return nGetSeparatorSize();
+ }
+
+ /**
+ * Thickness of the separator line rendered by Separator() (new in imgui 1.92.7).
+ */
+ public void setSeparatorSize(final float value) {
+ nSetSeparatorSize(value);
+ }
+
+ private native float nGetSeparatorSize(); /*
+ return THIS->SeparatorSize;
+ */
+
+ private native void nSetSeparatorSize(float value); /*
+ THIS->SeparatorSize = value;
+ */
+
/**
* Thickkness of border in SeparatorText()
*/
diff --git a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotAxis.java b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotAxis.java
index e3822470..0b55419b 100644
--- a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotAxis.java
+++ b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotAxis.java
@@ -38,7 +38,7 @@ private ImPlotAxis() {
public static final int Y3 = 5;
/**
- * bookeeping
+ * bookkeeping
*/
public static final int COUNT = 6;
}
diff --git a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotCol.java b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotCol.java
index 7026c6f1..776ac2d5 100644
--- a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotCol.java
+++ b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotCol.java
@@ -71,7 +71,7 @@ private ImPlotCol() {
public static final int InlayText = 12;
/**
- * axis label and tick lables color (defaults to ImGuiCol_Text)
+ * axis label and tick labels color (defaults to ImGuiCol_Text)
*/
public static final int AxisText = 13;
diff --git a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotFlags.java b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotFlags.java
index 4fd9b5a3..387ee982 100644
--- a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotFlags.java
+++ b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotFlags.java
@@ -13,7 +13,7 @@ private ImPlotFlags() {
public static final int None = 0;
/**
- * the plot title will not be displayed (titles are also hidden if preceeded by double hashes, e.g. "##MyPlot")
+ * the plot title will not be displayed (titles are also hidden if preceded by double hashes, e.g. "##MyPlot")
*
* Definition: {@code 1 << 0}
*/
diff --git a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotHistogramFlags.java b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotHistogramFlags.java
index ffb26a23..05982d78 100644
--- a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotHistogramFlags.java
+++ b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotHistogramFlags.java
@@ -34,7 +34,7 @@ private ImPlotHistogramFlags() {
public static final int Density = 4096;
/**
- * exclude values outside the specifed histogram range from the count toward normalizing and cumulative counts
+ * exclude values outside the specified histogram range from the count toward normalizing and cumulative counts
*
*
Definition: {@code 1 << 13}
*/
diff --git a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotLegendFlags.java b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotLegendFlags.java
index 7a9b8afa..01b90fdf 100644
--- a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotLegendFlags.java
+++ b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotLegendFlags.java
@@ -60,4 +60,11 @@ private ImPlotLegendFlags() {
*
Definition: {@code 1 << 6}
*/
public static final int Sort = 64;
+
+ /**
+ * legend entries will be displayed in reverse order
+ *
+ *
Definition: {@code 1 << 7}
+ */
+ public static final int Reverse = 128;
}
diff --git a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotPieChartFlags.java b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotPieChartFlags.java
index fc03c4c7..2111407a 100644
--- a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotPieChartFlags.java
+++ b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotPieChartFlags.java
@@ -25,4 +25,11 @@ private ImPlotPieChartFlags() {
*
Definition: {@code 1 << 11}
*/
public static final int IgnoreHidden = 2048;
+
+ /**
+ * Explode legend-hovered slice
+ *
+ *
Definition: {@code 1 << 12}
+ */
+ public static final int Exploding = 4096;
}
diff --git a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotScale.java b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotScale.java
index 295cd101..7eecfeb1 100644
--- a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotScale.java
+++ b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotScale.java
@@ -18,7 +18,7 @@ private ImPlotScale() {
public static final int Time = 1;
/**
- * base 10 logartithmic scale
+ * base 10 logarithmic scale
*/
public static final int Log10 = 2;
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiBackendFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiBackendFlags.java
index 523707cc..11c2d481 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiBackendFlags.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiBackendFlags.java
@@ -28,7 +28,7 @@ private ImGuiBackendFlags() {
public static final int HasMouseCursors = 2;
/**
- * Backend Platform supports io.WantSetMousePos requests to reposition the OS mouse position (only used if ImGuiConfigFlags_NavEnableSetMousePos is set).
+ * Backend Platform supports io.WantSetMousePos requests to reposition the OS mouse position (only used if io.ConfigNavMoveSetMousePos is set).
*
*
Definition: {@code 1 << 2}
*/
@@ -42,23 +42,37 @@ private ImGuiBackendFlags() {
public static final int RendererHasVtxOffset = 8;
/**
- * Backend Platform supports multiple viewports.
+ * Backend Renderer supports ImTextureData requests to create/update/destroy textures. This enables incremental texture updates and texture reloads. See https://github.com/ocornut/imgui/blob/master/docs/BACKENDS.md for instructions on how to upgrade your custom backend.
+ *
+ *
Definition: {@code 1 << 4}
+ */
+ public static final int RendererHasTextures = 16;
+
+ /**
+ * Backend Renderer supports multiple viewports.
*
*
Definition: {@code 1 << 10}
*/
- public static final int PlatformHasViewports = 1024;
+ public static final int RendererHasViewports = 1024;
/**
- * Backend Platform supports calling io.AddMouseViewportEvent() with the viewport under the mouse. IF POSSIBLE, ignore viewports with the ImGuiViewportFlags_NoInputs flag (Win32 backend, GLFW 3.30+ backend can do this, SDL backend cannot). If this cannot be done, Dear ImGui needs to use a flawed heuristic to find the viewport under.
+ * Backend Platform supports multiple viewports.
*
*
Definition: {@code 1 << 11}
*/
- public static final int HasMouseHoveredViewport = 2048;
+ public static final int PlatformHasViewports = 2048;
/**
- * Backend Renderer supports multiple viewports.
+ * Backend Platform supports calling io.AddMouseViewportEvent() with the viewport under the mouse. IF POSSIBLE, ignore viewports with the ImGuiViewportFlags_NoInputs flag (Win32 backend, GLFW 3.30+ backend can do this, SDL backend cannot). If this cannot be done, Dear ImGui needs to use a flawed heuristic to find the viewport under.
*
*
Definition: {@code 1 << 12}
*/
- public static final int RendererHasViewports = 4096;
+ public static final int HasMouseHoveredViewport = 4096;
+
+ /**
+ * Backend Platform supports honoring viewport{@code ->}ParentViewport/ParentViewportId value, by applying the corresponding parent/child relation at the Platform level.
+ *
+ *
Definition: {@code 1 << 13}
+ */
+ public static final int HasParentViewport = 8192;
}
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiButtonFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiButtonFlags.java
index 5635677b..b21bd0c2 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiButtonFlags.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiButtonFlags.java
@@ -37,4 +37,18 @@ private ImGuiButtonFlags() {
*
Definition: {@code ImGuiButtonFlags_MouseButtonLeft | ImGuiButtonFlags_MouseButtonRight | ImGuiButtonFlags_MouseButtonMiddle}
*/
public static final int MouseButtonMask_ = 7;
+
+ /**
+ * InvisibleButton(): do not disable navigation/tabbing. Otherwise disabled by default.
+ *
+ *
Definition: {@code 1 << 3}
+ */
+ public static final int EnableNav = 8;
+
+ /**
+ * Hit testing will allow subsequent widgets to overlap this one. Require previous frame HoveredId to match before being usable. Shortcut to calling SetNextItemAllowOverlap().
+ *
+ *
Definition: {@code 1 << 12}
+ */
+ public static final int AllowOverlap = 4096;
}
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiChildFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiChildFlags.java
index adacea43..95838e0a 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiChildFlags.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiChildFlags.java
@@ -26,7 +26,7 @@ private ImGuiChildFlags() {
*
*
Definition: {@code 1 << 0}
*/
- public static final int Border = 1;
+ public static final int Borders = 1;
/**
* Pad with style.WindowPadding even if no border are drawn (no padding by default for non-bordered child windows because it makes more sense)
@@ -78,7 +78,7 @@ private ImGuiChildFlags() {
public static final int FrameStyle = 128;
/**
- * Share focus scope, allow gamepad/keyboard navigation to cross over parent border to this child or between sibling child windows.
+ * [BETA] Share focus scope, allow keyboard/gamepad navigation to cross over parent border to this child or between sibling child windows.
*
*
Definition: {@code 1 << 8}
*/
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiCol.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiCol.java
index b71ccb5b..94ef00cb 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiCol.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiCol.java
@@ -104,131 +104,166 @@ private ImGuiCol() {
public static final int ResizeGripActive = 32;
+ /**
+ * InputText cursor/caret
+ */
+ public static final int InputTextCursor = 33;
+
/**
* Tab background, when hovered
*/
- public static final int TabHovered = 33;
+ public static final int TabHovered = 34;
/**
* Tab background, when tab-bar is focused {@code &} tab is unselected
*/
- public static final int Tab = 34;
+ public static final int Tab = 35;
/**
* Tab background, when tab-bar is focused {@code &} tab is selected
*/
- public static final int TabSelected = 35;
+ public static final int TabSelected = 36;
/**
* Tab horizontal overline, when tab-bar is focused {@code &} tab is selected
*/
- public static final int TabSelectedOverline = 36;
+ public static final int TabSelectedOverline = 37;
/**
* Tab background, when tab-bar is unfocused {@code &} tab is unselected
*/
- public static final int TabDimmed = 37;
+ public static final int TabDimmed = 38;
/**
* Tab background, when tab-bar is unfocused {@code &} tab is selected
*/
- public static final int TabDimmedSelected = 38;
+ public static final int TabDimmedSelected = 39;
/**
* ..horizontal overline, when tab-bar is unfocused {@code &} tab is selected
*/
- public static final int TabDimmedSelectedOverline = 39;
+ public static final int TabDimmedSelectedOverline = 40;
/**
* Preview overlay color when about to docking something
*/
- public static final int DockingPreview = 40;
+ public static final int DockingPreview = 41;
/**
* Background color for empty node (e.g. CentralNode with no window docked into it)
*/
- public static final int DockingEmptyBg = 41;
+ public static final int DockingEmptyBg = 42;
- public static final int PlotLines = 42;
+ public static final int PlotLines = 43;
- public static final int PlotLinesHovered = 43;
+ public static final int PlotLinesHovered = 44;
- public static final int PlotHistogram = 44;
+ public static final int PlotHistogram = 45;
- public static final int PlotHistogramHovered = 45;
+ public static final int PlotHistogramHovered = 46;
/**
* Table header background
*/
- public static final int TableHeaderBg = 46;
+ public static final int TableHeaderBg = 47;
/**
* Table outer and header borders (prefer using Alpha=1.0 here)
*/
- public static final int TableBorderStrong = 47;
+ public static final int TableBorderStrong = 48;
/**
* Table inner borders (prefer using Alpha=1.0 here)
*/
- public static final int TableBorderLight = 48;
+ public static final int TableBorderLight = 49;
/**
* Table row background (even rows)
*/
- public static final int TableRowBg = 49;
+ public static final int TableRowBg = 50;
/**
* Table row background (odd rows)
*/
- public static final int TableRowBgAlt = 50;
+ public static final int TableRowBgAlt = 51;
+
+ /**
+ * Hyperlink color
+ */
+ public static final int TextLink = 52;
- public static final int TextSelectedBg = 51;
+ /**
+ * Selected text inside an InputText
+ */
+ public static final int TextSelectedBg = 53;
+
+ /**
+ * Tree node hierarchy outlines when using ImGuiTreeNodeFlags_DrawLines
+ */
+ public static final int TreeLines = 54;
/**
- * Rectangle highlighting a drop target
+ * Rectangle border highlighting a drop target
*/
- public static final int DragDropTarget = 52;
+ public static final int DragDropTarget = 55;
/**
- * Gamepad/keyboard: current highlighted item
+ * Rectangle background highlighting a drop target
*/
- public static final int NavHighlight = 53;
+ public static final int DragDropTargetBg = 56;
/**
- * Highlight window when using CTRL+TAB
+ * Unsaved Document marker (in window title and tabs)
*/
- public static final int NavWindowingHighlight = 54;
+ public static final int UnsavedMarker = 57;
/**
- * Darken/colorize entire screen behind the CTRL+TAB window list, when active
+ * Color of keyboard/gamepad navigation cursor/rectangle, when visible
*/
- public static final int NavWindowingDimBg = 55;
+ public static final int NavCursor = 58;
+
+ /**
+ * Highlight window when using Ctrl+Tab
+ */
+ public static final int NavWindowingHighlight = 59;
+
+ /**
+ * Darken/colorize entire screen behind the Ctrl+Tab window list, when active
+ */
+ public static final int NavWindowingDimBg = 60;
/**
* Darken/colorize entire screen behind a modal window, when one is active
*/
- public static final int ModalWindowDimBg = 56;
+ public static final int ModalWindowDimBg = 61;
- public static final int COUNT = 57;
+ public static final int COUNT = 62;
/**
* [renamed in 1.90.9]
*
*
Definition: {@code ImGuiCol_TabSelected}
*/
- public static final int TabActive = 35;
+ public static final int TabActive = 36;
/**
* [renamed in 1.90.9]
*
*
Definition: {@code ImGuiCol_TabDimmed}
*/
- public static final int TabUnfocused = 37;
+ public static final int TabUnfocused = 38;
/**
* [renamed in 1.90.9]
*
*
Definition: {@code ImGuiCol_TabDimmedSelected}
*/
- public static final int TabUnfocusedActive = 38;
+ public static final int TabUnfocusedActive = 39;
+
+ /**
+ * [renamed in 1.91.4]
+ *
+ *
Definition: {@code ImGuiCol_NavCursor}
+ */
+ public static final int NavHighlight = 58;
}
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiColorEditFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiColorEditFlags.java
index 5a804038..c5412ded 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiColorEditFlags.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiColorEditFlags.java
@@ -70,7 +70,7 @@ private ImGuiColorEditFlags() {
public static final int NoSidePreview = 256;
/**
- * ColorEdit: disable drag and drop target. ColorButton: disable drag and drop source.
+ * ColorEdit: disable drag and drop target/source. ColorButton: disable drag and drop source.
*
*
Definition: {@code 1 << 9}
*/
@@ -84,25 +84,39 @@ private ImGuiColorEditFlags() {
public static final int NoBorder = 1024;
/**
- * ColorEdit, ColorPicker: show vertical alpha bar/gradient in picker.
+ * ColorEdit: disable rendering R/G/B/A color marker. May also be disabled globally by setting style.ColorMarkerSize = 0.
+ *
+ *
Definition: {@code 1 << 11}
+ */
+ public static final int NoColorMarkers = 2048;
+
+ /**
+ * ColorEdit, ColorPicker, ColorButton: disable alpha in the preview,. Contrary to _NoAlpha it may still be edited when calling ColorEdit4()/ColorPicker4(). For ColorButton() this does the same as _NoAlpha.
*
- *
Definition: {@code 1 << 16}
+ *
Definition: {@code 1 << 12}
*/
- public static final int AlphaBar = 65536;
+ public static final int AlphaOpaque = 4096;
/**
- * ColorEdit, ColorPicker, ColorButton: display preview as a transparent color over a checkerboard, instead of opaque.
+ * ColorEdit, ColorPicker, ColorButton: disable rendering a checkerboard background behind transparent color.
*
- *
Definition: {@code 1 << 17}
+ *
Definition: {@code 1 << 13}
*/
- public static final int AlphaPreview = 131072;
+ public static final int AlphaNoBg = 8192;
/**
- * ColorEdit, ColorPicker, ColorButton: display half opaque / half checkerboard, instead of opaque.
+ * ColorEdit, ColorPicker, ColorButton: display half opaque / half transparent preview.
+ *
+ *
Definition: {@code 1 << 14}
+ */
+ public static final int AlphaPreviewHalf = 16384;
+
+ /**
+ * ColorEdit, ColorPicker: show vertical alpha bar/gradient in picker.
*
*
Definition: {@code 1 << 18}
*/
- public static final int AlphaPreviewHalf = 262144;
+ public static final int AlphaBar = 262144;
/**
* (WIP) ColorEdit: Currently only disable 0.0f..1.0f limits in RGBA edition (note: you probably want to use ImGuiColorEditFlags_Float flag as well).
@@ -181,6 +195,13 @@ private ImGuiColorEditFlags() {
*/
public static final int DefaultOptions_ = 177209344;
+ /**
+ * [Internal] Masks
+ *
+ *
Definition: {@code ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_AlphaOpaque | ImGuiColorEditFlags_AlphaNoBg | ImGuiColorEditFlags_AlphaPreviewHalf}
+ */
+ public static final int AlphaMask_ = 28674;
+
/**
* [Internal] Masks
*
@@ -208,4 +229,11 @@ private ImGuiColorEditFlags() {
*
Definition: {@code ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_InputHSV}
*/
public static final int InputMask_ = 402653184;
+
+ /**
+ * Removed in 1.91.8. This is the default now. Will display a checkerboard unless ImGuiColorEditFlags_AlphaNoBg is set.
+ *
+ *
Definition: {@code 0}
+ */
+ public static final int AlphaPreview = 0;
}
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiConfigFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiConfigFlags.java
index 9a8134f3..77f9b093 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiConfigFlags.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiConfigFlags.java
@@ -14,7 +14,7 @@ private ImGuiConfigFlags() {
public static final int None = 0;
/**
- * Master keyboard navigation enable flag. Enable full Tabbing + directional arrows + space/enter to activate.
+ * Master keyboard navigation enable flag. Enable full Tabbing + directional arrows + Space/Enter to activate. Note: some features such as basic Tabbing and CtrL+Tab are enabled by regardless of this flag (and may be disabled via other means, see #4828, #9218).
*
*
Definition: {@code 1 << 0}
*/
@@ -27,20 +27,6 @@ private ImGuiConfigFlags() {
*/
public static final int NavEnableGamepad = 2;
- /**
- * Instruct navigation to move the mouse cursor. May be useful on TV/console systems where moving a virtual mouse is awkward. Will update io.MousePos and set io.WantSetMousePos=true. If enabled you MUST honor io.WantSetMousePos requests in your backend, otherwise ImGui will react as if the mouse is jumping around back and forth.
- *
- *
Definition: {@code 1 << 2}
- */
- public static final int NavEnableSetMousePos = 4;
-
- /**
- * Instruct navigation to not set the io.WantCaptureKeyboard flag when io.NavActive is set.
- *
- *
Definition: {@code 1 << 3}
- */
- public static final int NavNoCaptureKeyboard = 8;
-
/**
* Instruct dear imgui to disable mouse inputs and interactions.
*
@@ -77,30 +63,44 @@ private ImGuiConfigFlags() {
public static final int ViewportsEnable = 1024;
/**
- * [BETA: Don't use] FIXME-DPI: Reposition and resize imgui windows when the DpiScale of a viewport changed (mostly useful for the main viewport hosting other window). Note that resizing the main window itself is up to your application.
+ * Application is SRGB-aware.
*
- *
Definition: {@code 1 << 14}
+ *
Definition: {@code 1 << 20}
*/
- public static final int DpiEnableScaleViewports = 16384;
+ public static final int IsSRGB = 1048576;
/**
- * [BETA: Don't use] FIXME-DPI: Request bitmap-scaled fonts to match DpiScale. This is a very low-quality workaround. The correct way to handle DPI is _currently_ to replace the atlas and/or fonts in the Platform_OnChangedViewport callback, but this is all early work in progress.
+ * Application is using a touch screen instead of a mouse.
*
- *
Definition: {@code 1 << 15}
+ *
Definition: {@code 1 << 21}
+ */
+ public static final int IsTouchScreen = 2097152;
+
+ /**
+ * [moved/renamed in 1.91.4] {@code ->} use bool io.ConfigNavMoveSetMousePos
+ *
+ *
Definition: {@code 1 << 2}
*/
- public static final int DpiEnableScaleFonts = 32768;
+ public static final int NavEnableSetMousePos = 4;
/**
- * Application is SRGB-aware.
+ * [moved/renamed in 1.91.4] {@code ->} use bool io.ConfigNavCaptureKeyboard
*
- *
Definition: {@code 1 << 20}
+ *
Definition: {@code 1 << 3}
*/
- public static final int IsSRGB = 1048576;
+ public static final int NavNoCaptureKeyboard = 8;
/**
- * Application is using a touch screen instead of a mouse.
+ * [moved/renamed in 1.92.0] {@code ->} use bool io.ConfigDpiScaleFonts
*
- *
Definition: {@code 1 << 21}
+ *
Definition: {@code 1 << 14}
*/
- public static final int IsTouchScreen = 2097152;
+ public static final int DpiEnableScaleFonts = 16384;
+
+ /**
+ * [moved/renamed in 1.92.0] {@code ->} use bool io.ConfigDpiScaleViewports
+ *
+ *
Definition: {@code 1 << 15}
+ */
+ public static final int DpiEnableScaleViewports = 32768;
}
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiDataType.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiDataType.java
index 44a5bb88..622b3fa2 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiDataType.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiDataType.java
@@ -58,5 +58,15 @@ private ImGuiDataType() {
*/
public static final int Double = 9;
- public static final int COUNT = 10;
+ /**
+ * bool (provided for user convenience, not supported by scalar widgets)
+ */
+ public static final int Bool = 10;
+
+ /**
+ * char* (provided for user convenience, not supported by scalar widgets)
+ */
+ public static final int String = 11;
+
+ public static final int COUNT = 12;
}
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiDragDropFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiDragDropFlags.java
index 8ca9e0a6..591cbdd6 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiDragDropFlags.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiDragDropFlags.java
@@ -90,6 +90,13 @@ private ImGuiDragDropFlags() {
*/
public static final int AcceptNoPreviewTooltip = 4096;
+ /**
+ * Accepting item will render as if hovered. Useful for e.g. a Button() used as a drop target.
+ *
+ *
Definition: {@code 1 << 13}
+ */
+ public static final int AcceptDrawAsHovered = 8192;
+
/**
* For peeking ahead and inspecting the payload before delivery.
*
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiFreeTypeBuilderFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiFreeTypeLoaderFlags.java
similarity index 55%
rename from imgui-binding/src/generated/java/imgui/flag/ImGuiFreeTypeBuilderFlags.java
rename to imgui-binding/src/generated/java/imgui/flag/ImGuiFreeTypeLoaderFlags.java
index cd824e78..db15409f 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiFreeTypeBuilderFlags.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiFreeTypeLoaderFlags.java
@@ -1,8 +1,11 @@
package imgui.flag;
-public final class ImGuiFreeTypeBuilderFlags {
- private ImGuiFreeTypeBuilderFlags() {
+/**
+ * Renamed from {@code ImGuiFreeTypeBuilderFlags} in imgui 1.92.
+ */
+public final class ImGuiFreeTypeLoaderFlags {
+ private ImGuiFreeTypeLoaderFlags() {
}
/**
@@ -74,4 +77,54 @@ private ImGuiFreeTypeBuilderFlags() {
*
Definition: {@code 1 << 9}
*/
public static final int Bitmap = 512;
+
+ /**
+ * Definition: {@code ImGuiFreeTypeLoaderFlags_NoHinting}
+ */
+ public static final int ImGuiFreeTypeBuilderFlags_NoHinting = 1;
+
+ /**
+ * Definition: {@code ImGuiFreeTypeLoaderFlags_NoAutoHint}
+ */
+ public static final int ImGuiFreeTypeBuilderFlags_NoAutoHint = 2;
+
+ /**
+ * Definition: {@code ImGuiFreeTypeLoaderFlags_ForceAutoHint}
+ */
+ public static final int ImGuiFreeTypeBuilderFlags_ForceAutoHint = 4;
+
+ /**
+ * Definition: {@code ImGuiFreeTypeLoaderFlags_LightHinting}
+ */
+ public static final int ImGuiFreeTypeBuilderFlags_LightHinting = 8;
+
+ /**
+ * Definition: {@code ImGuiFreeTypeLoaderFlags_MonoHinting}
+ */
+ public static final int ImGuiFreeTypeBuilderFlags_MonoHinting = 16;
+
+ /**
+ * Definition: {@code ImGuiFreeTypeLoaderFlags_Bold}
+ */
+ public static final int ImGuiFreeTypeBuilderFlags_Bold = 32;
+
+ /**
+ * Definition: {@code ImGuiFreeTypeLoaderFlags_Oblique}
+ */
+ public static final int ImGuiFreeTypeBuilderFlags_Oblique = 64;
+
+ /**
+ * Definition: {@code ImGuiFreeTypeLoaderFlags_Monochrome}
+ */
+ public static final int ImGuiFreeTypeBuilderFlags_Monochrome = 128;
+
+ /**
+ * Definition: {@code ImGuiFreeTypeLoaderFlags_LoadColor}
+ */
+ public static final int ImGuiFreeTypeBuilderFlags_LoadColor = 256;
+
+ /**
+ * Definition: {@code ImGuiFreeTypeLoaderFlags_Bitmap}
+ */
+ public static final int ImGuiFreeTypeBuilderFlags_Bitmap = 512;
}
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiHoveredFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiHoveredFlags.java
index 07cc1aa0..528bb5b6 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiHoveredFlags.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiHoveredFlags.java
@@ -88,7 +88,7 @@ private ImGuiHoveredFlags() {
public static final int AllowWhenDisabled = 1024;
/**
- * IsItemHovered() only: Disable using gamepad/keyboard navigation state when active, always query mouse
+ * IsItemHovered() only: Disable using keyboard/gamepad navigation state when active, always query mouse
*
*
Definition: {@code 1 << 11}
*/
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiInputTextFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiInputTextFlags.java
index c3601927..ca7a7385 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiInputTextFlags.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiInputTextFlags.java
@@ -58,7 +58,7 @@ private ImGuiInputTextFlags() {
public static final int AllowTabInput = 32;
/**
- * Return 'true' when Enter is pressed (as opposed to every time the value was modified). Consider looking at the IsItemDeactivatedAfterEdit() function.
+ * Return 'true' when Enter is pressed (as opposed to every time the value was modified). Consider using IsItemDeactivatedAfterEdit() instead!
*
*
Definition: {@code 1 << 6}
*/
@@ -72,7 +72,7 @@ private ImGuiInputTextFlags() {
public static final int EscapeClearsAll = 128;
/**
- * In multi-line mode, validate with Enter, add new line with Ctrl+Enter (default is opposite: validate with Ctrl+Enter, add line with Enter).
+ * In multi-line mode: validate with Enter, add new line with Ctrl+Enter (default is opposite: validate with Ctrl+Enter, add line with Enter). Note that Shift+Enter always enter a new line either way.
*
*
Definition: {@code 1 << 8}
*/
@@ -135,44 +135,58 @@ private ImGuiInputTextFlags() {
public static final int NoUndoRedo = 65536;
/**
- * Callback on pressing TAB (for completion handling)
+ * When text doesn't fit, elide left side to ensure right side stays visible. Useful for path/filenames. Single-line only!
*
*
Definition: {@code 1 << 17}
*/
- public static final int CallbackCompletion = 131072;
+ public static final int ElideLeft = 131072;
/**
- * Callback on pressing Up/Down arrows (for history handling)
+ * Callback on pressing TAB (for completion handling)
*
*
Definition: {@code 1 << 18}
*/
- public static final int CallbackHistory = 262144;
+ public static final int CallbackCompletion = 262144;
/**
- * Callback on each iteration. User code may query cursor position, modify text buffer.
+ * Callback on pressing Up/Down arrows (for history handling)
*
*
Definition: {@code 1 << 19}
*/
- public static final int CallbackAlways = 524288;
+ public static final int CallbackHistory = 524288;
/**
- * Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard.
+ * Callback on each iteration. User code may query cursor position, modify text buffer.
*
*
Definition: {@code 1 << 20}
*/
- public static final int CallbackCharFilter = 1048576;
+ public static final int CallbackAlways = 1048576;
/**
- * Callback on buffer capacity changes request (beyond 'buf_size' parameter value), allowing the string to grow. Notify when the string wants to be resized (for string types which hold a cache of their Size). You will be provided a new BufSize in the callback and NEED to honor it. (see misc/cpp/imgui_stdlib.h for an example of using this)
+ * Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard.
*
*
Definition: {@code 1 << 21}
*/
- public static final int CallbackResize = 2097152;
+ public static final int CallbackCharFilter = 2097152;
/**
- * Callback on any edit (note that InputText() already returns true on edit, the callback is useful mainly to manipulate the underlying buffer while focus is active)
+ * Callback on buffer capacity changes request (beyond 'buf_size' parameter value), allowing the string to grow. Notify when the string wants to be resized (for string types which hold a cache of their Size). You will be provided a new BufSize in the callback and NEED to honor it. (see misc/cpp/imgui_stdlib.h for an example of using this)
*
*
Definition: {@code 1 << 22}
*/
- public static final int CallbackEdit = 4194304;
+ public static final int CallbackResize = 4194304;
+
+ /**
+ * Callback on any edit. Note that InputText() already returns true on edit + you can always use IsItemEdited(). The callback is useful to manipulate the underlying buffer while focus is active.
+ *
+ *
Definition: {@code 1 << 23}
+ */
+ public static final int CallbackEdit = 8388608;
+
+ /**
+ * InputTextMultiline(): word-wrap lines that are too long.
+ *
+ *
Definition: {@code 1 << 24}
+ */
+ public static final int WordWrap = 16777216;
}
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiKey.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiKey.java
index 9588afad..62d50ca5 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiKey.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiKey.java
@@ -19,6 +19,13 @@ private ImGuiKey() {
*/
public static final int None = 0;
+ /**
+ * First valid key value (other than 0)
+ *
+ *
Definition: {@code 512}
+ */
+ public static final int NamedKey_BEGIN = 512;
+
/**
* == ImGuiKey_NamedKey_BEGIN
*
@@ -54,12 +61,24 @@ private ImGuiKey() {
public static final int Escape = 526;
+ /**
+ * Also see ImGuiMod_Ctrl, ImGuiMod_Shift, ImGuiMod_Alt, ImGuiMod_Super below!
+ */
public static final int LeftCtrl = 527;
+ /**
+ * Also see ImGuiMod_Ctrl, ImGuiMod_Shift, ImGuiMod_Alt, ImGuiMod_Super below!
+ */
public static final int LeftShift = 528;
+ /**
+ * Also see ImGuiMod_Ctrl, ImGuiMod_Shift, ImGuiMod_Alt, ImGuiMod_Super below!
+ */
public static final int LeftAlt = 529;
+ /**
+ * Also see ImGuiMod_Ctrl, ImGuiMod_Shift, ImGuiMod_Alt, ImGuiMod_Super below!
+ */
public static final int LeftSuper = 530;
public static final int RightCtrl = 531;
@@ -299,187 +318,199 @@ private ImGuiKey() {
public static final int AppForward = 630;
/**
- * Menu (Xbox) + (Switch) Start/Options (PS)
+ * Non-US backslash.
+ */
+ public static final int Oem102 = 631;
+
+ /**
+ * Menu | + | Options |
*/
- public static final int GamepadStart = 631;
+ public static final int GamepadStart = 632;
/**
- * View (Xbox) - (Switch) Share (PS)
+ * View | - | Share |
*/
- public static final int GamepadBack = 632;
+ public static final int GamepadBack = 633;
/**
- * X (Xbox) Y (Switch) Square (PS) // Tap: Toggle Menu. Hold: Windowing mode (Focus/Move/Resize windows)
+ * X | Y | Square | Toggle Menu. Hold for Windowing mode (Focus/Move/Resize windows)
*/
- public static final int GamepadFaceLeft = 633;
+ public static final int GamepadFaceLeft = 634;
/**
- * B (Xbox) A (Switch) Circle (PS) // Cancel / Close / Exit
+ * B | A | Circle | Cancel / Close / Exit
*/
- public static final int GamepadFaceRight = 634;
+ public static final int GamepadFaceRight = 635;
/**
- * Y (Xbox) X (Switch) Triangle (PS) // Text Input / On-screen Keyboard
+ * Y | X | Triangle | Open Context Menu
*/
- public static final int GamepadFaceUp = 635;
+ public static final int GamepadFaceUp = 636;
/**
- * A (Xbox) B (Switch) Cross (PS) // Activate / Open / Toggle / Tweak
+ * A | B | Cross | Activate / Open / Toggle. Hold for 0.60f to Activate in Text Input mode (e.g. wired to an on-screen keyboard).
*/
- public static final int GamepadFaceDown = 636;
+ public static final int GamepadFaceDown = 637;
/**
- * D-pad Left // Move / Tweak / Resize Window (in Windowing mode)
+ * D-pad Left | " | " | Move / Tweak / Resize Window (in Windowing mode)
*/
- public static final int GamepadDpadLeft = 637;
+ public static final int GamepadDpadLeft = 638;
/**
- * D-pad Right // Move / Tweak / Resize Window (in Windowing mode)
+ * D-pad Right | " | " | Move / Tweak / Resize Window (in Windowing mode)
*/
- public static final int GamepadDpadRight = 638;
+ public static final int GamepadDpadRight = 639;
/**
- * D-pad Up // Move / Tweak / Resize Window (in Windowing mode)
+ * D-pad Up | " | " | Move / Tweak / Resize Window (in Windowing mode)
*/
- public static final int GamepadDpadUp = 639;
+ public static final int GamepadDpadUp = 640;
/**
- * D-pad Down // Move / Tweak / Resize Window (in Windowing mode)
+ * D-pad Down | " | " | Move / Tweak / Resize Window (in Windowing mode)
*/
- public static final int GamepadDpadDown = 640;
+ public static final int GamepadDpadDown = 641;
/**
- * L Bumper (Xbox) L (Switch) L1 (PS) // Tweak Slower / Focus Previous (in Windowing mode)
+ * L Bumper | L | L1 | Tweak Slower / Focus Previous (in Windowing mode)
*/
- public static final int GamepadL1 = 641;
+ public static final int GamepadL1 = 642;
/**
- * R Bumper (Xbox) R (Switch) R1 (PS) // Tweak Faster / Focus Next (in Windowing mode)
+ * R Bumper | R | R1 | Tweak Faster / Focus Next (in Windowing mode)
*/
- public static final int GamepadR1 = 642;
+ public static final int GamepadR1 = 643;
/**
- * L Trig. (Xbox) ZL (Switch) L2 (PS) [Analog]
+ * L Trigger | ZL | L2 | [Analog]
*/
- public static final int GamepadL2 = 643;
+ public static final int GamepadL2 = 644;
/**
- * R Trig. (Xbox) ZR (Switch) R2 (PS) [Analog]
+ * R Trigger | ZR | R2 | [Analog]
*/
- public static final int GamepadR2 = 644;
+ public static final int GamepadR2 = 645;
/**
- * L Stick (Xbox) L3 (Switch) L3 (PS)
+ * L Stick | L3 | L3 |
*/
- public static final int GamepadL3 = 645;
+ public static final int GamepadL3 = 646;
/**
- * R Stick (Xbox) R3 (Switch) R3 (PS)
+ * R Stick | R3 | R3 |
*/
- public static final int GamepadR3 = 646;
+ public static final int GamepadR3 = 647;
/**
- * [Analog] // Move Window (in Windowing mode)
+ * | | | [Analog] Move Window (in Windowing mode)
*/
- public static final int GamepadLStickLeft = 647;
+ public static final int GamepadLStickLeft = 648;
/**
- * [Analog] // Move Window (in Windowing mode)
+ * | | | [Analog] Move Window (in Windowing mode)
*/
- public static final int GamepadLStickRight = 648;
+ public static final int GamepadLStickRight = 649;
/**
- * [Analog] // Move Window (in Windowing mode)
+ * | | | [Analog] Move Window (in Windowing mode)
*/
- public static final int GamepadLStickUp = 649;
+ public static final int GamepadLStickUp = 650;
/**
- * [Analog] // Move Window (in Windowing mode)
+ * | | | [Analog] Move Window (in Windowing mode)
*/
- public static final int GamepadLStickDown = 650;
+ public static final int GamepadLStickDown = 651;
/**
- * [Analog]
+ * | | | [Analog]
*/
- public static final int GamepadRStickLeft = 651;
+ public static final int GamepadRStickLeft = 652;
/**
- * [Analog]
+ * | | | [Analog]
*/
- public static final int GamepadRStickRight = 652;
+ public static final int GamepadRStickRight = 653;
/**
- * [Analog]
+ * | | | [Analog]
*/
- public static final int GamepadRStickUp = 653;
+ public static final int GamepadRStickUp = 654;
/**
- * [Analog]
+ * | | | [Analog]
*/
- public static final int GamepadRStickDown = 654;
+ public static final int GamepadRStickDown = 655;
/**
* Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls) - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.
*/
- public static final int MouseLeft = 655;
+ public static final int MouseLeft = 656;
/**
* Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls) - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.
*/
- public static final int MouseRight = 656;
+ public static final int MouseRight = 657;
/**
* Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls) - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.
*/
- public static final int MouseMiddle = 657;
+ public static final int MouseMiddle = 658;
/**
* Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls) - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.
*/
- public static final int MouseX1 = 658;
+ public static final int MouseX1 = 659;
/**
* Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls) - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.
*/
- public static final int MouseX2 = 659;
+ public static final int MouseX2 = 660;
/**
* Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls) - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.
*/
- public static final int MouseWheelX = 660;
+ public static final int MouseWheelX = 661;
/**
* Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls) - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.
*/
- public static final int MouseWheelY = 661;
+ public static final int MouseWheelY = 662;
/**
* [Internal] Reserved for mod storage
*/
- public static final int ReservedForModCtrl = 662;
+ public static final int ReservedForModCtrl = 663;
/**
* [Internal] Reserved for mod storage
*/
- public static final int ReservedForModShift = 663;
+ public static final int ReservedForModShift = 664;
/**
* [Internal] Reserved for mod storage
*/
- public static final int ReservedForModAlt = 664;
+ public static final int ReservedForModAlt = 665;
/**
* [Internal] Reserved for mod storage
*/
- public static final int ReservedForModSuper = 665;
+ public static final int ReservedForModSuper = 666;
/**
- * [Internal] Reserved for mod storage
+ * [Internal] If you need to iterate all keys (for e.g. an input mapper) you may use ImGuiKey_NamedKey_BEGIN..ImGuiKey_NamedKey_END.
+ */
+ public static final int NamedKey_END = 667;
+
+ /**
+ * [Internal] If you need to iterate all keys (for e.g. an input mapper) you may use ImGuiKey_NamedKey_BEGIN..ImGuiKey_NamedKey_END.
+ *
+ *
Definition: {@code ImGuiKey_NamedKey_END - ImGuiKey_NamedKey_BEGIN}
*/
- public static final int COUNT = 666;
+ public static final int NamedKey_COUNT = 155;
/**
- * Keyboard Modifiers (explicitly submitted by backend via AddKeyEvent() calls) - This is mirroring the data also written to io.KeyCtrl, io.KeyShift, io.KeyAlt, io.KeySuper, in a format allowing them to be accessed via standard key API, allowing calls such as IsKeyPressed(), IsKeyReleased(), querying duration etc. - Code polling every key (e.g. an interface to detect a key press for input mapping) might want to ignore those and prefer using the real keys (e.g. ImGuiKey_LeftCtrl, ImGuiKey_RightCtrl instead of ImGuiMod_Ctrl). - In theory the value of keyboard modifiers should be roughly equivalent to a logical or of the equivalent left/right keys. In practice: it's complicated; mods are often provided from different sources. Keyboard layout, IME, sticky keys and backends tend to interfere and break that equivalence. The safer decision is to relay that ambiguity down to the end-user... - On macOS, we swap Cmd(Super) and Ctrl keys at the time of the io.AddKeyEvent() call.
+ * Keyboard Modifiers (explicitly submitted by backend via AddKeyEvent() calls) - Any functions taking a ImGuiKeyChord parameter can binary-or those with regular keys, e.g. Shortcut(ImGuiMod_Ctrl | ImGuiKey_S). - Those are written back into io.KeyCtrl, io.KeyShift, io.KeyAlt, io.KeySuper for convenience, but may be accessed via standard key API such as IsKeyPressed(), IsKeyReleased(), querying duration etc. - Code polling every key (e.g. an interface to detect a key press for input mapping) might want to ignore those and prefer using the real keys (e.g. ImGuiKey_LeftCtrl, ImGuiKey_RightCtrl instead of ImGuiMod_Ctrl). - In theory the value of keyboard modifiers should be roughly equivalent to a logical or of the equivalent left/right keys. In practice: it's complicated; mods are often provided from different sources. Keyboard layout, IME, sticky keys and backends tend to interfere and break that equivalence. The safer decision is to relay that ambiguity down to the end-user... - On macOS, we swap Cmd(Super) and Ctrl keys at the time of the io.AddKeyEvent() call.
*
*
Definition: {@code 0}
*/
@@ -521,39 +552,11 @@ private ImGuiKey() {
public static final int ImGuiMod_Mask_ = 61440;
/**
- * [Internal] Prior to 1.87 we required user to fill io.KeysDown[512] using their own native index + the io.KeyMap[] array. We are ditching this method but keeping a legacy path for user code doing e.g. IsKeyPressed(MY_NATIVE_KEY_CODE) If you need to iterate all keys (for e.g. an input mapper) you may use ImGuiKey_NamedKey_BEGIN..ImGuiKey_NamedKey_END.
- *
- *
Definition: {@code 512}
- */
- public static final int NamedKey_BEGIN = 512;
-
- /**
- * [Internal] Prior to 1.87 we required user to fill io.KeysDown[512] using their own native index + the io.KeyMap[] array. We are ditching this method but keeping a legacy path for user code doing e.g. IsKeyPressed(MY_NATIVE_KEY_CODE) If you need to iterate all keys (for e.g. an input mapper) you may use ImGuiKey_NamedKey_BEGIN..ImGuiKey_NamedKey_END.
- *
- *
Definition: {@code ImGuiKey_COUNT}
- */
- public static final int NamedKey_END = 666;
-
- /**
- * [Internal] Prior to 1.87 we required user to fill io.KeysDown[512] using their own native index + the io.KeyMap[] array. We are ditching this method but keeping a legacy path for user code doing e.g. IsKeyPressed(MY_NATIVE_KEY_CODE) If you need to iterate all keys (for e.g. an input mapper) you may use ImGuiKey_NamedKey_BEGIN..ImGuiKey_NamedKey_END.
- *
- *
Definition: {@code ImGuiKey_NamedKey_END - ImGuiKey_NamedKey_BEGIN}
- */
- public static final int NamedKey_COUNT = 154;
-
- /**
- * Size of KeysData[]: hold legacy 0..512 keycodes + named keys
+ * Obsoleted in 1.91.5 because it was misleading (since named keys don't start at 0 anymore)
*
- *
Definition: {@code ImGuiKey_COUNT}
+ *
Definition: {@code ImGuiKey_NamedKey_END}
*/
- public static final int KeysData_SIZE = 666;
-
- /**
- * Accesses to io.KeysData[] must use (key - ImGuiKey_KeysData_OFFSET) index.
- *
- *
Definition: {@code 0}
- */
- public static final int KeysData_OFFSET = 0;
+ public static final int COUNT = 667;
/**
* Removed in 1.90.7, you can now simply use ImGuiMod_Ctrl
@@ -561,32 +564,4 @@ private ImGuiKey() {
*
Definition: {@code ImGuiMod_Ctrl}
*/
public static final int ImGuiMod_Shortcut = 4096;
-
- /**
- * Renamed in 1.89
- *
- *
Definition: {@code ImGuiMod_Ctrl}
- */
- public static final int ModCtrl = 4096;
-
- /**
- * Renamed in 1.89
- *
- *
Definition: {@code ImGuiMod_Shift}
- */
- public static final int ModShift = 8192;
-
- /**
- * Renamed in 1.89
- *
- *
Definition: {@code ImGuiMod_Alt}
- */
- public static final int ModAlt = 16384;
-
- /**
- * Renamed in 1.89
- *
- *
Definition: {@code ImGuiMod_Super}
- */
- public static final int ModSuper = 32768;
}
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiMouseCursor.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiMouseCursor.java
index eaa4fcb4..880e5f1b 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiMouseCursor.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiMouseCursor.java
@@ -54,10 +54,20 @@ private ImGuiMouseCursor() {
*/
public static final int Hand = 7;
+ /**
+ * When waiting for something to process/load.
+ */
+ public static final int Wait = 8;
+
+ /**
+ * When waiting for something to process/load, but application is still interactive.
+ */
+ public static final int Progress = 9;
+
/**
* When hovering something with disallowed interaction. Usually a crossed circle.
*/
- public static final int NotAllowed = 8;
+ public static final int NotAllowed = 10;
- public static final int COUNT = 9;
+ public static final int COUNT = 11;
}
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiPopupFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiPopupFlags.java
index 570868b6..09dc6974 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiPopupFlags.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiPopupFlags.java
@@ -19,35 +19,25 @@ private ImGuiPopupFlags() {
public static final int None = 0;
/**
- * For BeginPopupContext*(): open on Left Mouse release. Guaranteed to always be == 0 (same as ImGuiMouseButton_Left)
+ * For BeginPopupContext*(): open on Left Mouse release. Only one button allowed!
*
- *
Definition: {@code 0}
+ *
Definition: {@code 1 << 2}
*/
- public static final int MouseButtonLeft = 0;
+ public static final int MouseButtonLeft = 4;
/**
- * For BeginPopupContext*(): open on Right Mouse release. Guaranteed to always be == 1 (same as ImGuiMouseButton_Right)
+ * For BeginPopupContext*(): open on Right Mouse release. Only one button allowed! (default)
*
- *
Definition: {@code 1}
+ *
Definition: {@code 2 << 2}
*/
- public static final int MouseButtonRight = 1;
+ public static final int MouseButtonRight = 8;
/**
- * For BeginPopupContext*(): open on Middle Mouse release. Guaranteed to always be == 2 (same as ImGuiMouseButton_Middle)
+ * For BeginPopupContext*(): open on Middle Mouse release. Only one button allowed!
*
- *
Definition: {@code 2}
- */
- public static final int MouseButtonMiddle = 2;
-
- /**
- * Definition: {@code 0x1F}
- */
- public static final int MouseButtonMask_ = 31;
-
- /**
- * Definition: {@code 1}
+ *
Definition: {@code 3 << 2}
*/
- public static final int MouseButtonDefault_ = 1;
+ public static final int MouseButtonMiddle = 12;
/**
* For OpenPopup*(), BeginPopupContext*(): don't reopen same popup if already open (won't reposition, won't reinitialize navigation)
@@ -88,4 +78,25 @@ private ImGuiPopupFlags() {
* Definition: {@code ImGuiPopupFlags_AnyPopupId | ImGuiPopupFlags_AnyPopupLevel}
*/
public static final int AnyPopup = 3072;
+
+ /**
+ * [Internal]
+ *
+ *
Definition: {@code 2}
+ */
+ public static final int MouseButtonShift_ = 2;
+
+ /**
+ * [Internal]
+ *
+ *
Definition: {@code 0x0C}
+ */
+ public static final int MouseButtonMask_ = 12;
+
+ /**
+ * [Internal] Reserve legacy bits 0-1 to detect incorrectly passing 1 or 2 to the function.
+ *
+ *
Definition: {@code 0x03}
+ */
+ public static final int InvalidMask_ = 3;
}
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiSelectableFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiSelectableFlags.java
index 365ec9ff..58643581 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiSelectableFlags.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiSelectableFlags.java
@@ -14,11 +14,11 @@ private ImGuiSelectableFlags() {
public static final int None = 0;
/**
- * Clicking this doesn't close parent popup window
+ * Clicking this doesn't close parent popup window (overrides ImGuiItemFlags_AutoClosePopups)
*
*
Definition: {@code 1 << 0}
*/
- public static final int DontClosePopups = 1;
+ public static final int NoAutoClosePopups = 1;
/**
* Frame will span all columns of its container table (text will still fit in current column)
@@ -42,16 +42,30 @@ private ImGuiSelectableFlags() {
public static final int Disabled = 8;
/**
- * (WIP) Hit testing to allow subsequent widgets to overlap this one
+ * Hit testing will allow subsequent widgets to overlap this one. Require previous frame HoveredId to match before being usable. Shortcut to calling SetNextItemAllowOverlap().
*
*
Definition: {@code 1 << 4}
*/
public static final int AllowOverlap = 16;
/**
- * Renamed in 1.89.7
+ * Make the item be displayed as if it is hovered
+ *
+ *
Definition: {@code 1 << 5}
+ */
+ public static final int Highlight = 32;
+
+ /**
+ * Auto-select when moved into, unless Ctrl is held. Automatic when in a BeginMultiSelect() block.
*
- *
Definition: {@code ImGuiSelectableFlags_AllowOverlap}
+ *
Definition: {@code 1 << 6}
*/
- public static final int AllowItemOverlap = 16;
+ public static final int SelectOnNav = 64;
+
+ /**
+ * Renamed in 1.91.0
+ *
+ *
Definition: {@code ImGuiSelectableFlags_NoAutoClosePopups}
+ */
+ public static final int DontClosePopups = 1;
}
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiSliderFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiSliderFlags.java
index b8795c3e..d07af391 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiSliderFlags.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiSliderFlags.java
@@ -10,13 +10,6 @@ private ImGuiSliderFlags() {
*/
public static final int None = 0;
- /**
- * Clamp value to min/max bounds when input manually with CTRL+Click. By default CTRL+Click allows going out of bounds.
- *
- *
Definition: {@code 1 << 4}
- */
- public static final int AlwaysClamp = 16;
-
/**
* Make the widget logarithmic (linear otherwise). Consider using ImGuiSliderFlags_NoRoundToFormat with this if using a format-string with small amount of digits.
*
@@ -32,21 +25,54 @@ private ImGuiSliderFlags() {
public static final int NoRoundToFormat = 64;
/**
- * Disable CTRL+Click or Enter key allowing to input text directly into the widget.
+ * Disable Ctrl+Click or Enter key allowing to input text directly into the widget.
*
*
Definition: {@code 1 << 7}
*/
public static final int NoInput = 128;
/**
- * Enable wrapping around from max to min and from min to max (only supported by DragXXX() functions for now.
+ * Enable wrapping around from max to min and from min to max. Only supported by DragXXX() functions for now.
*
*
Definition: {@code 1 << 8}
*/
public static final int WrapAround = 256;
/**
- * [Internal] We treat using those bits as being potentially a 'float power' argument from the previous API that has got miscast to this enum, and will trigger an assert if needed.
+ * Clamp value to min/max bounds when input manually with Ctrl+Click. By default Ctrl+Click allows going out of bounds.
+ *
+ *
Definition: {@code 1 << 9}
+ */
+ public static final int ClampOnInput = 512;
+
+ /**
+ * Clamp even if min==max==0.0f. Otherwise due to legacy reason DragXXX functions don't clamp with those values. When your clamping limits are dynamic you almost always want to use it.
+ *
+ *
Definition: {@code 1 << 10}
+ */
+ public static final int ClampZeroRange = 1024;
+
+ /**
+ * Disable keyboard modifiers altering tweak speed. Useful if you want to alter tweak speed yourself based on your own logic.
+ *
+ *
Definition: {@code 1 << 11}
+ */
+ public static final int NoSpeedTweaks = 2048;
+
+ /**
+ * DragScalarN(), SliderScalarN(): Draw R/G/B/A color markers on each component.
+ *
+ *
Definition: {@code 1 << 12}
+ */
+ public static final int ColorMarkers = 4096;
+
+ /**
+ * Definition: {@code ImGuiSliderFlags_ClampOnInput | ImGuiSliderFlags_ClampZeroRange}
+ */
+ public static final int AlwaysClamp = 1536;
+
+ /**
+ * [Internal] We treat using those bits as being potentially a 'float power' argument from legacy API (obsoleted 2020-08) that has got miscast to this enum, and will trigger an assert if needed.
*
*
Definition: {@code 0x7000000F}
*/
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiStyleVar.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiStyleVar.java
index 466a5604..735b010a 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiStyleVar.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiStyleVar.java
@@ -114,70 +114,115 @@ private ImGuiStyleVar() {
*/
public static final int ScrollbarRounding = 19;
+ /**
+ * float ScrollbarPadding
+ */
+ public static final int ScrollbarPadding = 20;
+
/**
* float GrabMinSize
*/
- public static final int GrabMinSize = 20;
+ public static final int GrabMinSize = 21;
/**
* float GrabRounding
*/
- public static final int GrabRounding = 21;
+ public static final int GrabRounding = 22;
+
+ /**
+ * float ImageRounding
+ */
+ public static final int ImageRounding = 23;
+
+ /**
+ * float ImageBorderSize
+ */
+ public static final int ImageBorderSize = 24;
/**
* float TabRounding
*/
- public static final int TabRounding = 22;
+ public static final int TabRounding = 25;
/**
* float TabBorderSize
*/
- public static final int TabBorderSize = 23;
+ public static final int TabBorderSize = 26;
+
+ /**
+ * float TabMinWidthBase
+ */
+ public static final int TabMinWidthBase = 27;
+
+ /**
+ * float TabMinWidthShrink
+ */
+ public static final int TabMinWidthShrink = 28;
/**
* float TabBarBorderSize
*/
- public static final int TabBarBorderSize = 24;
+ public static final int TabBarBorderSize = 29;
+
+ /**
+ * float TabBarOverlineSize
+ */
+ public static final int TabBarOverlineSize = 30;
/**
* float TableAngledHeadersAngle
*/
- public static final int TableAngledHeadersAngle = 25;
+ public static final int TableAngledHeadersAngle = 31;
/**
* ImVec2 TableAngledHeadersTextAlign
*/
- public static final int TableAngledHeadersTextAlign = 26;
+ public static final int TableAngledHeadersTextAlign = 32;
+
+ /**
+ * float TreeLinesSize
+ */
+ public static final int TreeLinesSize = 33;
+
+ /**
+ * float TreeLinesRounding
+ */
+ public static final int TreeLinesRounding = 34;
/**
* ImVec2 ButtonTextAlign
*/
- public static final int ButtonTextAlign = 27;
+ public static final int ButtonTextAlign = 35;
/**
* ImVec2 SelectableTextAlign
*/
- public static final int SelectableTextAlign = 28;
+ public static final int SelectableTextAlign = 36;
+
+ /**
+ * float SeparatorSize
+ */
+ public static final int SeparatorSize = 37;
/**
* float SeparatorTextBorderSize
*/
- public static final int SeparatorTextBorderSize = 29;
+ public static final int SeparatorTextBorderSize = 38;
/**
* ImVec2 SeparatorTextAlign
*/
- public static final int SeparatorTextAlign = 30;
+ public static final int SeparatorTextAlign = 39;
/**
* ImVec2 SeparatorTextPadding
*/
- public static final int SeparatorTextPadding = 31;
+ public static final int SeparatorTextPadding = 40;
/**
* float DockingSeparatorSize
*/
- public static final int DockingSeparatorSize = 32;
+ public static final int DockingSeparatorSize = 41;
- public static final int COUNT = 33;
+ public static final int COUNT = 42;
}
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiTabBarFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiTabBarFlags.java
index 08f7f31b..892ab456 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiTabBarFlags.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiTabBarFlags.java
@@ -63,26 +63,40 @@ private ImGuiTabBarFlags() {
public static final int DrawSelectedOverline = 64;
/**
- * Resize tabs when they don't fit
+ * Shrink down tabs when they don't fit, until width is style.TabMinWidthShrink, then enable scrolling buttons.
*
*
Definition: {@code 1 << 7}
*/
- public static final int FittingPolicyResizeDown = 128;
+ public static final int FittingPolicyMixed = 128;
/**
- * Add scroll buttons when tabs don't fit
+ * Shrink down tabs when they don't fit
*
*
Definition: {@code 1 << 8}
*/
- public static final int FittingPolicyScroll = 256;
+ public static final int FittingPolicyShrink = 256;
/**
- * Definition: {@code ImGuiTabBarFlags_FittingPolicyResizeDown | ImGuiTabBarFlags_FittingPolicyScroll}
+ * Enable scrolling buttons when tabs don't fit
+ *
+ *
Definition: {@code 1 << 9}
+ */
+ public static final int FittingPolicyScroll = 512;
+
+ /**
+ * Definition: {@code ImGuiTabBarFlags_FittingPolicyMixed | ImGuiTabBarFlags_FittingPolicyShrink | ImGuiTabBarFlags_FittingPolicyScroll}
*/
- public static final int FittingPolicyMask_ = 384;
+ public static final int FittingPolicyMask_ = 896;
/**
- * Definition: {@code ImGuiTabBarFlags_FittingPolicyResizeDown}
+ * Definition: {@code ImGuiTabBarFlags_FittingPolicyMixed}
*/
public static final int FittingPolicyDefault_ = 128;
+
+ /**
+ * Renamed in 1.92.2
+ *
+ *
Definition: {@code ImGuiTabBarFlags_FittingPolicyShrink}
+ */
+ public static final int FittingPolicyResizeDown = 256;
}
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiTableColumnFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiTableColumnFlags.java
index a4b8b58a..87746d49 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiTableColumnFlags.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiTableColumnFlags.java
@@ -100,7 +100,7 @@ private ImGuiTableColumnFlags() {
public static final int NoSortDescending = 2048;
/**
- * TableHeadersRow() will not submit horizontal label for this column. Convenient for some small columns. Name will still appear in context menu or in angled headers.
+ * TableHeadersRow() will submit an empty label for this column. Convenient for some small columns. Name will still appear in context menu or in angled headers. You may append into this cell by calling TableSetColumnIndex() right after the TableHeadersRow() call.
*
*
Definition: {@code 1 << 12}
*/
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiTableFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiTableFlags.java
index e028018e..7d5bf422 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiTableFlags.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiTableFlags.java
@@ -45,7 +45,7 @@ private ImGuiTableFlags() {
public static final int Resizable = 1;
/**
- * Enable reordering columns in header row (need calling TableSetupColumn() + TableHeadersRow() to display headers)
+ * Enable reordering columns in header row. (Need calling TableSetupColumn() + TableHeadersRow() to display headers, or using ImGuiTableFlags_ContextMenuInBody to access context-menu without headers).
*
*
Definition: {@code 1 << 1}
*/
@@ -66,14 +66,14 @@ private ImGuiTableFlags() {
public static final int Sortable = 8;
/**
- * Disable persisting columns order, width and sort settings in the .ini file.
+ * Disable persisting columns order, width, visibility and sort settings in the .ini file.
*
*
Definition: {@code 1 << 4}
*/
public static final int NoSavedSettings = 16;
/**
- * Right-click on columns body/contents will display table context menu. By default it is available in TableHeadersRow().
+ * Right-click on columns body/contents will also display table context menu. By default it is available in TableHeadersRow().
*
*
Definition: {@code 1 << 5}
*/
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiTreeNodeFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiTreeNodeFlags.java
index 15cad2c1..6618f9ba 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiTreeNodeFlags.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiTreeNodeFlags.java
@@ -28,7 +28,7 @@ private ImGuiTreeNodeFlags() {
public static final int Framed = 2;
/**
- * Hit testing to allow subsequent widgets to overlap this one
+ * Hit testing will allow subsequent widgets to overlap this one. Require previous frame HoveredId to match before being usable. Shortcut to calling SetNextItemAllowOverlap().
*
*
Definition: {@code 1 << 2}
*/
@@ -56,21 +56,21 @@ private ImGuiTreeNodeFlags() {
public static final int DefaultOpen = 32;
/**
- * Need double-click to open node
+ * Open on double-click instead of simple click (default for multi-select unless any _OpenOnXXX behavior is set explicitly). Both behaviors may be combined.
*
*
Definition: {@code 1 << 6}
*/
public static final int OpenOnDoubleClick = 64;
/**
- * Only open when clicking on the arrow part. If ImGuiTreeNodeFlags_OpenOnDoubleClick is also set, single-click arrow or double-click all box to open.
+ * Open when clicking on the arrow part (default for multi-select unless any _OpenOnXXX behavior is set explicitly). Both behaviors may be combined.
*
*
Definition: {@code 1 << 7}
*/
public static final int OpenOnArrow = 128;
/**
- * No collapsing, no arrow (use as a convenience for leaf nodes).
+ * No collapsing, no arrow (use as a convenience for leaf nodes). Note: will always open a tree/id scope and return true. If you never use that scope, add ImGuiTreeNodeFlags_NoTreePushOnOpen.
*
*
Definition: {@code 1 << 8}
*/
@@ -109,33 +109,66 @@ private ImGuiTreeNodeFlags() {
*
*
Definition: {@code 1 << 13}
*/
- public static final int SpanTextWidth = 8192;
+ public static final int SpanLabelWidth = 8192;
/**
- * Frame will span all columns of its container table (text will still fit in current column)
+ * Frame will span all columns of its container table (label will still fit in current column)
*
*
Definition: {@code 1 << 14}
*/
public static final int SpanAllColumns = 16384;
/**
- * (WIP) Nav: left direction may move to this TreeNode() from any of its child (items submitted between TreeNode and TreePop)
+ * Label will span all columns of its container table
*
*
Definition: {@code 1 << 15}
*/
- public static final int NavLeftJumpsBackHere = 32768;
+ public static final int LabelSpanAllColumns = 32768;
/**
- * ImGuiTreeNodeFlags_NoScrollOnOpen = 1 {@code <<} 16, // FIXME: TODO: Disable automatic scroll on TreePop() if node got just open and contents is not visible
+ * Nav: left arrow moves back to parent. This is processed in TreePop() when there's an unfulfilled Left nav request remaining.
*
- *
Definition: {@code ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog}
+ *
Definition: {@code 1 << 17}
+ */
+ public static final int NavLeftJumpsToParent = 131072;
+
+ /**
+ * Definition: {@code ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog}
*/
public static final int CollapsingHeader = 26;
/**
- * Renamed in 1.89.7
+ * No lines drawn
*
- *
Definition: {@code ImGuiTreeNodeFlags_AllowOverlap}
+ *
Definition: {@code 1 << 18}
*/
- public static final int AllowItemOverlap = 4;
+ public static final int DrawLinesNone = 262144;
+
+ /**
+ * Horizontal lines to child nodes. Vertical line drawn down to TreePop() position: cover full contents. Faster (for large trees).
+ *
+ *
Definition: {@code 1 << 19}
+ */
+ public static final int DrawLinesFull = 524288;
+
+ /**
+ * Horizontal lines to child nodes. Vertical line drawn down to bottom-most child node. Slower (for large trees).
+ *
+ *
Definition: {@code 1 << 20}
+ */
+ public static final int DrawLinesToNodes = 1048576;
+
+ /**
+ * Renamed in 1.92.0
+ *
+ *
Definition: {@code ImGuiTreeNodeFlags_NavLeftJumpsToParent}
+ */
+ public static final int NavLeftJumpsBackHere = 131072;
+
+ /**
+ * Renamed in 1.90.7
+ *
+ *
Definition: {@code ImGuiTreeNodeFlags_SpanLabelWidth}
+ */
+ public static final int SpanTextWidth = 8192;
}
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiViewportFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiViewportFlags.java
index a281ff76..015afb40 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiViewportFlags.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiViewportFlags.java
@@ -28,7 +28,7 @@ private ImGuiViewportFlags() {
public static final int IsPlatformMonitor = 2;
/**
- * Platform Window: Was created/managed by the user application? (rather than our backend)
+ * Platform Window: Is created/managed by the user application? (rather than our backend)
*
*
Definition: {@code 1 << 2}
*/
diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiWindowFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiWindowFlags.java
index 3289c075..1de9127e 100644
--- a/imgui-binding/src/generated/java/imgui/flag/ImGuiWindowFlags.java
+++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiWindowFlags.java
@@ -126,14 +126,14 @@ private ImGuiWindowFlags() {
public static final int AlwaysHorizontalScrollbar = 32768;
/**
- * No gamepad/keyboard navigation within the window
+ * No keyboard/gamepad navigation within the window
*
*
Definition: {@code 1 << 16}
*/
public static final int NoNavInputs = 65536;
/**
- * No focusing toward this window with gamepad/keyboard navigation (e.g. skipped by CTRL+TAB)
+ * No focusing toward this window with keyboard/gamepad navigation (e.g. skipped by Ctrl+Tab)
*
*
Definition: {@code 1 << 17}
*/
@@ -168,6 +168,13 @@ private ImGuiWindowFlags() {
*/
public static final int NoInputs = 197120;
+ /**
+ * Don't use! For internal use by Begin()/NewFrame()
+ *
+ *
Definition: {@code 1 << 23}
+ */
+ public static final int DockNodeHost = 8388608;
+
/**
* Don't use! For internal use by BeginChild()
*
@@ -202,25 +209,4 @@ private ImGuiWindowFlags() {
*
Definition: {@code 1 << 28}
*/
public static final int ChildMenu = 268435456;
-
- /**
- * Don't use! For internal use by Begin()/NewFrame()
- *
- *
Definition: {@code 1 << 29}
- */
- public static final int DockNodeHost = 536870912;
-
- /**
- * Obsoleted in 1.90: Use ImGuiChildFlags_AlwaysUseWindowPadding in BeginChild() call.
- *
- *
Definition: {@code 1 << 30}
- */
- public static final int AlwaysUseWindowPadding = 1073741824;
-
- /**
- * Obsoleted in 1.90.9: Use ImGuiChildFlags_NavFlattened in BeginChild() call.
- *
- *
Definition: {@code 1 << 31}
- */
- public static final int NavFlattened = -2147483648;
}
diff --git a/imgui-binding/src/generated/java/imgui/internal/ImGui.java b/imgui-binding/src/generated/java/imgui/internal/ImGui.java
index fe5f6fef..73e3ee4e 100644
--- a/imgui-binding/src/generated/java/imgui/internal/ImGui.java
+++ b/imgui-binding/src/generated/java/imgui/internal/ImGui.java
@@ -345,12 +345,12 @@ public static ImGuiWindow findBottomMostVisibleWindowWithinBeginStack(final ImGu
// Fonts, drawing
- public static void setCurrentFont(final ImFont font) {
- nSetCurrentFont(font.ptr);
+ public static void setCurrentFont(final ImFont font, final float fontSizeBeforeScaling, final float fontSizeAfterScaling) {
+ nSetCurrentFont(font.ptr, fontSizeBeforeScaling, fontSizeAfterScaling);
}
- private static native void nSetCurrentFont(long font); /*
- ImGui::SetCurrentFont(reinterpret_cast(font));
+ private static native void nSetCurrentFont(long font, float fontSizeBeforeScaling, float fontSizeAfterScaling); /*
+ ImGui::SetCurrentFont(reinterpret_cast(font), fontSizeBeforeScaling, fontSizeAfterScaling);
*/
public static ImFont getDefaultFont() {
@@ -397,12 +397,17 @@ public static void updateInputEvents(final boolean trickleFastInputs) {
ImGui::UpdateInputEvents(trickleFastInputs);
*/
- public static void updateHoveredWindowAndCaptureFlags() {
- nUpdateHoveredWindowAndCaptureFlags();
+ public static void updateHoveredWindowAndCaptureFlags(final ImVec2 mousePos) {
+ nUpdateHoveredWindowAndCaptureFlags(mousePos.x, mousePos.y);
}
- private static native void nUpdateHoveredWindowAndCaptureFlags(); /*
- ImGui::UpdateHoveredWindowAndCaptureFlags();
+ public static void updateHoveredWindowAndCaptureFlags(final float mousePosX, final float mousePosY) {
+ nUpdateHoveredWindowAndCaptureFlags(mousePosX, mousePosY);
+ }
+
+ private static native void nUpdateHoveredWindowAndCaptureFlags(float mousePosX, float mousePosY); /*MANUAL
+ ImVec2 mousePos = ImVec2(mousePosX, mousePosY);
+ ImGui::UpdateHoveredWindowAndCaptureFlags(mousePos);
*/
public static void startMouseMovingWindow(final ImGuiWindow window) {
@@ -904,35 +909,8 @@ public static boolean isItemToggledSelection() {
return ImGui::IsItemToggledSelection();
*/
- public static ImVec2 getContentRegionMaxAbs() {
- final ImVec2 dst = new ImVec2();
- nGetContentRegionMaxAbs(dst);
- return dst;
- }
-
- public static float getContentRegionMaxAbsX() {
- return nGetContentRegionMaxAbsX();
- }
-
- public static float getContentRegionMaxAbsY() {
- return nGetContentRegionMaxAbsY();
- }
-
- public static void getContentRegionMaxAbs(final ImVec2 dst) {
- nGetContentRegionMaxAbs(dst);
- }
-
- private static native void nGetContentRegionMaxAbs(ImVec2 dst); /*
- Jni::ImVec2Cpy(env, ImGui::GetContentRegionMaxAbs(), dst);
- */
-
- private static native float nGetContentRegionMaxAbsX(); /*
- return ImGui::GetContentRegionMaxAbs().x;
- */
-
- private static native float nGetContentRegionMaxAbsY(); /*
- return ImGui::GetContentRegionMaxAbs().y;
- */
+ // GetContentRegionMaxAbs was removed from imgui_internal in imgui 1.92; the equivalent
+ // is now '(window->Pos - window->Scroll + window->ContentRegionRect.Max)'.
// TODO: ShrinkWidths
diff --git a/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiButtonFlags.java b/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiButtonFlags.java
index 7b1064d3..5b988c05 100644
--- a/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiButtonFlags.java
+++ b/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiButtonFlags.java
@@ -38,6 +38,20 @@ private ImGuiButtonFlags() {
*/
public static final int MouseButtonMask_ = 7;
+ /**
+ * InvisibleButton(): do not disable navigation/tabbing. Otherwise disabled by default.
+ *
+ * Definition: {@code 1 << 3}
+ */
+ public static final int EnableNav = 8;
+
+ /**
+ * Hit testing will allow subsequent widgets to overlap this one. Require previous frame HoveredId to match before being usable. Shortcut to calling SetNextItemAllowOverlap().
+ *
+ *
Definition: {@code 1 << 12}
+ */
+ public static final int AllowOverlap = 4096;
+
/**
* return true on click (mouse down event)
*
@@ -60,7 +74,7 @@ private ImGuiButtonFlags() {
public static final int PressedOnClickReleaseAnywhere = 64;
/**
- * return true on release (default requires click+release)
+ * return true on release (default requires click+release). Prior to 2026/03/20 this implied ImGuiButtonFlags_NoHoldingActiveId but they are separate now.
*
*
Definition: {@code 1 << 7}
*/
@@ -80,13 +94,6 @@ private ImGuiButtonFlags() {
*/
public static final int PressedOnDragDropHold = 512;
- /**
- * hold to repeat
- *
- *
Definition: {@code 1 << 10}
- */
- public static final int Repeat = 1024;
-
/**
* allow interactions even if a child window is overlapping
*
@@ -94,20 +101,6 @@ private ImGuiButtonFlags() {
*/
public static final int FlattenChildren = 2048;
- /**
- * require previous frame HoveredId to either match id or be null before being usable.
- *
- *
Definition: {@code 1 << 12}
- */
- public static final int AllowOverlap = 4096;
-
- /**
- * disable automatically closing parent popup on press // [UNUSED]
- *
- *
Definition: {@code 1 << 13}
- */
- public static final int DontClosePopups = 8192;
-
/**
* vertically align button to match text baseline - ButtonEx() only // FIXME: Should be removed and handled by SmallButton(), not possible currently because of DC.CursorPosPrevLine
*
@@ -120,7 +113,7 @@ private ImGuiButtonFlags() {
*
*
Definition: {@code 1 << 16}
*/
- public static final int NoKeyModifiers = 65536;
+ public static final int NoKeyModsAllowed = 65536;
/**
* don't set ActiveId while holding the mouse (ImGuiButtonFlags_PressedOnClick only)
@@ -130,7 +123,7 @@ private ImGuiButtonFlags() {
public static final int NoHoldingActiveId = 131072;
/**
- * don't override navigation focus when activated (FIXME: this is essentially used every time an item uses ImGuiItemFlags_NoNav, but because legacy specs don't requires LastItemData to be set ButtonBehavior(), we can't poll g.LastItemData.InFlags)
+ * don't override navigation focus when activated (FIXME: this is essentially used every time an item uses ImGuiItemFlags_NoNav, but because legacy specs don't requires LastItemData to be set ButtonBehavior(), we can't poll g.LastItemData.ItemFlags)
*
*
Definition: {@code 1 << 18}
*/
@@ -157,6 +150,13 @@ private ImGuiButtonFlags() {
*/
public static final int NoTestKeyOwner = 2097152;
+ /**
+ * [EXPERIMENTAL: Not very well specced]. Don't focus parent window when clicking.
+ *
+ *
Definition: {@code 1 << 22}
+ */
+ public static final int NoFocus = 4194304;
+
/**
* Definition: {@code ImGuiButtonFlags_PressedOnClick | ImGuiButtonFlags_PressedOnClickRelease | ImGuiButtonFlags_PressedOnClickReleaseAnywhere | ImGuiButtonFlags_PressedOnRelease | ImGuiButtonFlags_PressedOnDoubleClick | ImGuiButtonFlags_PressedOnDragDropHold}
*/
diff --git a/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiDockNodeFlags.java b/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiDockNodeFlags.java
index 78409c01..926c2ffc 100644
--- a/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiDockNodeFlags.java
+++ b/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiDockNodeFlags.java
@@ -178,14 +178,14 @@ private ImGuiDockNodeFlags() {
/**
* Masks
*
- *
Definition: {@code ImGuiDockNodeFlags_NoResize | ImGuiDockNodeFlags_NoResizeX | ImGuiDockNodeFlags_NoResizeY}
+ *
Definition: {@code (int)ImGuiDockNodeFlags_NoResize | ImGuiDockNodeFlags_NoResizeX | ImGuiDockNodeFlags_NoResizeY}
*/
public static final int NoResizeFlagsMask_ = 196640;
/**
* When splitting, those local flags are moved to the inheriting child, never duplicated
*
- *
Definition: {@code ImGuiDockNodeFlags_NoDockingSplit | ImGuiDockNodeFlags_NoResizeFlagsMask_ | ImGuiDockNodeFlags_AutoHideTabBar | ImGuiDockNodeFlags_CentralNode | ImGuiDockNodeFlags_NoTabBar | ImGuiDockNodeFlags_HiddenTabBar | ImGuiDockNodeFlags_NoWindowMenuButton | ImGuiDockNodeFlags_NoCloseButton}
+ *
Definition: {@code (int)ImGuiDockNodeFlags_NoDockingSplit | ImGuiDockNodeFlags_NoResizeFlagsMask_ | (int)ImGuiDockNodeFlags_AutoHideTabBar | ImGuiDockNodeFlags_CentralNode | ImGuiDockNodeFlags_NoTabBar | ImGuiDockNodeFlags_HiddenTabBar | ImGuiDockNodeFlags_NoWindowMenuButton | ImGuiDockNodeFlags_NoCloseButton}
*/
public static final int LocalFlagsTransferMask_ = 260208;
diff --git a/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiItemFlags.java b/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiItemFlags.java
index 6755636f..11dac8f8 100644
--- a/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiItemFlags.java
+++ b/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiItemFlags.java
@@ -10,93 +10,58 @@ private ImGuiItemFlags() {
}
/**
- * Controlled by user
+ * (Default)
*
- *
Definition: {@code 0}
+ *
Definition: {@code o}
*/
public static final int None = 0;
/**
- * false // Disable keyboard tabbing. This is a "lighter" version of ImGuiItemFlags_NoNav.
+ * false // Disable keyboard tabbing. This is a "lighter" version of ImGuiItemFlags_NoNav.
*
- *
Definition: {@code 1 << 0}
+ *
Definition: {@code dler);}
*/
public static final int NoTabStop = 1;
/**
- * false // Button() will return true multiple times based on io.KeyRepeatDelay and io.KeyRepeatRate settings.
+ * false // Disable any form of focusing (keyboard/gamepad directional navigation and SetKeyboardFocusHere() calls).
*
- *
Definition: {@code 1 << 1}
+ *
Definition: {@code }
*/
- public static final int ButtonRepeat = 2;
+ public static final int NoNav = 2;
/**
- * false // Disable interactions but doesn't affect visuals. See BeginDisabled()/EndDisabled(). See github.com/ocornut/imgui/issues/211
+ * false // Disable item being a candidate for default focus (e.g. used by title bar items).
*
- *
Definition: {@code 1 << 2}
+ *
Definition: {@code me);}
*/
- public static final int Disabled = 4;
+ public static final int NoNavDefaultFocus = 4;
/**
- * false // Disable any form of focusing (keyboard/gamepad directional navigation and SetKeyboardFocusHere() calls)
+ * false // Any button-like behavior will have repeat mode enabled (based on io.KeyRepeatDelay and io.KeyRepeatRate values). Note that you can also call IsItemActive() after any button to tell if it is being held.
*
- *
Definition: {@code 1 << 3}
+ *
Definition: {@code sHandl}
*/
- public static final int NoNav = 8;
+ public static final int ButtonRepeat = 8;
/**
- * false // Disable item being a candidate for default focus (e.g. used by title bar items)
+ * true // MenuItem()/Selectable() automatically close their parent popup window.
*
- *
Definition: {@code 1 << 4}
+ *
Definition: {@code r)}
*/
- public static final int NoNavDefaultFocus = 16;
+ public static final int AutoClosePopups = 16;
/**
- * false // Disable MenuItem/Selectable() automatically closing their popup window
+ * false // Allow submitting an item with the same identifier as an item already submitted this frame without triggering a warning tooltip if io.ConfigDebugHighlightIdConflicts is set.
*
- *
Definition: {@code 1 << 5}
+ *
Definition: {@code ies in}
*/
- public static final int SelectableDontClosePopup = 32;
+ public static final int AllowDuplicateId = 32;
/**
- * false // [BETA] Represent a mixed/indeterminate value, generally multi-selection where values differ. Currently only supported by Checkbox() (later should support all sorts of widgets)
+ * false // [Internal] Disable interactions. DOES NOT affect visuals. This is used by BeginDisabled()/EndDisabled() and only provided here so you can read back via GetItemFlags().
*
- *
Definition: {@code 1 << 6}
+ *
Definition: {@code ------}
*/
- public static final int MixedValue = 64;
-
- /**
- * false // [ALPHA] Allow hovering interactions but underlying value is not changed.
- *
- *
Definition: {@code 1 << 7}
- */
- public static final int ReadOnly = 128;
-
- /**
- * false // Disable hoverable check in ItemHoverable()
- *
- *
Definition: {@code 1 << 8}
- */
- public static final int NoWindowHoverableCheck = 256;
-
- /**
- * false // Allow being overlapped by another widget. Not-hovered to Hovered transition deferred by a frame.
- *
- *
Definition: {@code 1 << 9}
- */
- public static final int AllowOverlap = 512;
-
- /**
- * false // [WIP] Auto-activate input mode when tab focused. Currently only used and supported by a few items before it becomes a generic feature.
- *
- *
Definition: {@code 1 << 10}
- */
- public static final int Inputable = 1024;
-
- /**
- * false // Set by SetNextItemSelectionUserData()
- *
- *
Definition: {@code 1 << 11}
- */
- public static final int HasSelectionUserData = 2048;
+ public static final int Disabled = 64;
}
diff --git a/imgui-binding/src/main/java/imgui/ImFont.java b/imgui-binding/src/main/java/imgui/ImFont.java
index fd600960..a2ee9200 100644
--- a/imgui-binding/src/main/java/imgui/ImFont.java
+++ b/imgui-binding/src/main/java/imgui/ImFont.java
@@ -6,11 +6,13 @@
import imgui.binding.annotation.BindingMethod;
import imgui.binding.annotation.BindingSource;
import imgui.binding.annotation.OptArg;
-import imgui.binding.annotation.ReturnValue;
/**
- * Font runtime data and rendering
- * ImFontAtlas automatically loads a default embedded font for you when you call GetTexDataAsAlpha8() or GetTexDataAsRGBA32().
+ * Font runtime data. A single logical font that can be baked at multiple sizes (see ImFontBaked via {@code getFontBaked}).
+ *
+ *
In Dear ImGui 1.92 the font subsystem was reworked: {@code ImFont} now represents the font source set,
+ * while size-specific data (glyphs, ascent/descent, character metrics) lives on {@code ImFontBaked}.
+ * Many previously-exposed fields moved there and are no longer reachable through {@code ImFont}.
*/
@BindingSource
public final class ImFont extends ImGuiStructDestroyable {
@@ -36,37 +38,12 @@ protected long create() {
return (uintptr_t)(new ImFont());
*/
- // TODO IndexAdvanceX
-
- /**
- * = FallbackGlyph.AdvanceX
- */
- @BindingField
- public float FallbackAdvanceX;
-
/**
- * Height of characters/line, set during loading (don't change after loading)
+ * Font size passed to {@code AddFontXXX()}. Use for legacy code calling {@link imgui.ImGui#pushFont(ImFont, float)}
+ * that expected the original size (use {@code ImGui::GetFontBaked()} in new code).
*/
@BindingField
- public float FontSize;
-
- // TODO IndexLookup, Glyphs
-
- /**
- * = FindGlyph(FontFallbackChar)
- */
- @BindingField
- @ReturnValue(isStatic = true)
- public ImFontGlyph FallbackGlyph;
-
- // TODO ContainerAtlas, ConfigData
-
- /**
- * Number of ImFontConfig involved in creating this font.
- * Bigger than 1 when merging multiple font sources into one ImFont.
- */
- @BindingField
- public short ConfigDataCount;
+ public float LegacySize;
/**
* Character used for ellipsis rendering.
@@ -74,50 +51,21 @@ protected long create() {
@BindingField
public short EllipsisChar;
- @BindingField
- public short EllipsisCharCount;
-
- @BindingField
- public float EllipsisWidth;
-
- @BindingField
- public float EllipsisCharStep;
-
- @BindingField
- public boolean DirtyLookupTables;
-
- /**
- * Base font scale, multiplied by the per-window font scale which you can adjust with SetWindowFontScale()
- */
- @BindingField
- public float Scale;
-
/**
- * Ascent: distance from top to bottom of e.g. 'A' [0..FontSize]
+ * Character used if a glyph isn't found (U+FFFD, '?').
*/
@BindingField
- public float Ascent;
-
- @BindingField
- public float Descent;
+ public short FallbackChar;
/**
- * Total surface in pixels to get an idea of the font rasterization/texture cost (not exact, we approximate the cost of padding between glyphs)
+ * Legacy base font scale (~1.0f), multiplied by the per-window font scale which you can adjust with SetWindowFontScale().
+ * Obsolete since 1.92; kept behind {@code IMGUI_DISABLE_OBSOLETE_FUNCTIONS}.
*/
@BindingField
- public int MetricsTotalSurface;
+ public float Scale;
// Methods
- @BindingMethod
- public native ImFontGlyph FindGlyph(@ArgValue(callPrefix = "(ImWchar)") int c);
-
- @BindingMethod
- public native ImFontGlyph FindGlyphNoFallback(@ArgValue(callPrefix = "(ImWchar)") int c);
-
- @BindingMethod
- public native float GetCharAdvance(@ArgValue(callPrefix = "(ImWchar)") int c);
-
@BindingMethod
public native boolean IsLoaded();
@@ -131,14 +79,22 @@ protected long create() {
@BindingMethod
public native ImVec2 CalcTextSizeA(float size, float maxWidth, float wrapWidth, String textBegin, @OptArg String textEnd);
+ /**
+ * @deprecated since imgui 1.92; prefer {@code CalcWordWrapPosition(size, ...)}. This overload is kept as a
+ * legacy redirect; internally it passes {@code LegacySize * scale} as the size.
+ */
+ @Deprecated
@BindingMethod
public native String CalcWordWrapPositionA(float scale, String text, String textEnd, float wrapWidth);
@BindingMethod
public native void RenderChar(ImDrawList drawList, float size, ImVec2 pos, int col, @ArgValue(callPrefix = "(ImWchar)") int c);
+ /**
+ * The {@code flags} parameter is {@code ImDrawTextFlags} (since imgui 1.92; previously a {@code bool cpu_fine_clip}).
+ */
@BindingMethod
- public native void RenderText(ImDrawList drawList, float size, ImVec2 pos, int col, ImVec4 clipRect, String textBegin, String textEnd, @OptArg(callValue = "0.0f") float wrapWidth, @OptArg boolean cpuFineClip);
+ public native void RenderText(ImDrawList drawList, float size, ImVec2 pos, int col, ImVec4 clipRect, String textBegin, String textEnd, @OptArg(callValue = "0.0f") float wrapWidth, @OptArg int flags);
/*JNI
#undef THIS
diff --git a/imgui-binding/src/main/java/imgui/ImFontAtlas.java b/imgui-binding/src/main/java/imgui/ImFontAtlas.java
index bab43a67..31ab9870 100644
--- a/imgui-binding/src/main/java/imgui/ImFontAtlas.java
+++ b/imgui-binding/src/main/java/imgui/ImFontAtlas.java
@@ -72,6 +72,19 @@ protected long create() {
@BindingMethod
public native ImFont AddFontDefault(@OptArg ImFontConfig imFontConfig);
+ /**
+ * Embedded scalable (vector) default font — recommended at any higher size. (since imgui 1.92)
+ */
+ @BindingMethod
+ public native ImFont AddFontDefaultVector(@OptArg ImFontConfig imFontConfig);
+
+ /**
+ * Embedded classic pixel-clean bitmap default font — recommended at size 13px with no scaling.
+ * (since imgui 1.92)
+ */
+ @BindingMethod
+ public native ImFont AddFontDefaultBitmap(@OptArg ImFontConfig imFontConfig);
+
@BindingMethod
public native ImFont AddFontFromFileTTF(String filename, float sizePixels, @OptArg(callValue = "NULL") ImFontConfig fontConfig, @OptArg @ArgValue(callPrefix = "(ImWchar*)") short[] glyphRanges);
@@ -155,10 +168,11 @@ protected long create() {
*/
public native void setFreeTypeRenderer(boolean enabled); /*
#ifdef IMGUI_ENABLE_FREETYPE
+ extern const ImFontLoader* ImFontAtlasGetFontLoaderForStbTruetype();
if (enabled) {
- THIS->FontBuilderIO = ImGuiFreeType::GetBuilderForFreeType();
+ THIS->SetFontLoader(ImGuiFreeType::GetFontLoader());
} else {
- THIS->FontBuilderIO = NULL;
+ THIS->SetFontLoader(ImFontAtlasGetFontLoaderForStbTruetype());
}
#endif
*/
@@ -367,11 +381,31 @@ private ByteBuffer createRgba32Pixels(final int size) {
// TexID implemented as SetTexID function
/**
- * Texture width desired by user before Build(). Must be a power-of-two.
- * If have many glyphs your graphics API have texture size restrictions you may want to increase texture width to decrease height.
+ * Minimum desired atlas texture width (must be power of two). Default 512. (since imgui 1.92 —
+ * replaces the old TexDesiredWidth; set TexMinWidth = TexMaxWidth to pin a specific width.)
+ */
+ @BindingField
+ public int TexMinWidth;
+
+ /**
+ * Minimum desired atlas texture height (must be power of two). Default 128. (since imgui 1.92)
+ */
+ @BindingField
+ public int TexMinHeight;
+
+ /**
+ * Maximum desired atlas texture width (must be power of two). Default 8192. (since imgui 1.92)
+ * Increase when loading large glyph sets (e.g. full CJK) on legacy backends without
+ * {@code ImGuiBackendFlags_RendererHasTextures} support.
+ */
+ @BindingField
+ public int TexMaxWidth;
+
+ /**
+ * Maximum desired atlas texture height (must be power of two). Default 8192. (since imgui 1.92)
*/
@BindingField
- public int TexDesiredWidth;
+ public int TexMaxHeight;
/**
* Padding between glyphs within texture in pixels. Defaults to 1.
diff --git a/imgui-binding/src/main/java/imgui/ImFontConfig.java b/imgui-binding/src/main/java/imgui/ImFontConfig.java
index c366149f..1600c4d1 100644
--- a/imgui-binding/src/main/java/imgui/ImFontConfig.java
+++ b/imgui-binding/src/main/java/imgui/ImFontConfig.java
@@ -94,10 +94,11 @@ protected long create() {
public boolean PixelSnapH;
/**
- * Extra spacing (in pixels) between glyphs. Only X axis is supported for now.
+ * Extra spacing (in pixels) between glyphs (added to glyph AdvanceX). Since imgui 1.92 this is a
+ * scalar X-only value; the previous {@code GlyphExtraSpacing} ImVec2 was removed as largely obsolete.
*/
@BindingField
- public ImVec2 GlyphExtraSpacing;
+ public float GlyphExtraAdvanceX;
/**
* Offset all glyphs from this font input.
@@ -128,6 +129,31 @@ public void setGlyphRanges(final short[] glyphRanges) {
THIS->GlyphRanges = glyphRanges != NULL ? (ImWchar*)&glyphRanges[0] : NULL;
*/
+ private short[] glyphExcludeRanges;
+
+ /**
+ * Exclude ranges (list of Unicode range pairs, zero-terminated) from this font source when merging
+ * multiple fonts -- useful to avoid one font's glyphs masking another's. New in imgui 1.92.
+ * THE ARRAY DATA NEEDS TO PERSIST AS LONG AS THE FONT IS ALIVE.
+ */
+ public short[] getGlyphExcludeRanges() {
+ return glyphExcludeRanges;
+ }
+
+ /**
+ * Exclude ranges (list of Unicode range pairs, zero-terminated) from this font source when merging
+ * multiple fonts. New in imgui 1.92.
+ * THE ARRAY DATA NEEDS TO PERSIST AS LONG AS THE FONT IS ALIVE.
+ */
+ public void setGlyphExcludeRanges(final short[] glyphExcludeRanges) {
+ this.glyphExcludeRanges = glyphExcludeRanges;
+ nSetGlyphExcludeRanges(glyphExcludeRanges);
+ }
+
+ private native void nSetGlyphExcludeRanges(short[] glyphExcludeRanges); /*
+ THIS->GlyphExcludeRanges = glyphExcludeRanges != NULL ? (ImWchar*)&glyphExcludeRanges[0] : NULL;
+ */
+
/**
* Minimum AdvanceX for glyphs, set Min to align font icons, set both Min/Max to enforce mono-space font
*/
@@ -148,10 +174,11 @@ public void setGlyphRanges(final short[] glyphRanges) {
public boolean MergeMode;
/**
- * Settings for custom font builder. THIS IS BUILDER IMPLEMENTATION DEPENDENT. Leave as zero if unsure.
+ * Settings for custom font loader. THIS IS LOADER IMPLEMENTATION DEPENDENT. Leave as zero if unsure.
+ * (Renamed from {@code FontBuilderFlags} in imgui 1.92.)
*/
@BindingField(isFlag = true)
- public int FontBuilderFlags;
+ public int FontLoaderFlags;
/**
* Brighten ({@code >}1.0f) or darken ({@code <}1.0f) font output. Brightening small fonts may be a good workaround to make them more readable.
diff --git a/imgui-binding/src/main/java/imgui/ImGui.java b/imgui-binding/src/main/java/imgui/ImGui.java
index 1561095d..32342ab3 100644
--- a/imgui-binding/src/main/java/imgui/ImGui.java
+++ b/imgui-binding/src/main/java/imgui/ImGui.java
@@ -643,8 +643,13 @@ public static void init() {
// Parameters stacks (shared)
+ /**
+ * Push a font onto the stack. Since imgui 1.92 the {@code size} parameter is required:
+ * pass {@code 0.0f} to keep the current size; pass {@code font.LegacySize} to restore
+ * pre-1.92 behavior of using the font's original AddFont size.
+ */
@BindingMethod
- public static native void PushFont(ImFont font);
+ public static native void PushFont(ImFont font, float size);
@BindingMethod
public static native void PopFont();
@@ -1051,6 +1056,19 @@ public static void init() {
@BindingMethod
public static native void BulletText(String text, Void NULL);
+ /**
+ * Hyperlink text button; returns true when clicked (new in imgui 1.91). Style via {@code ImGuiCol_TextLink}.
+ */
+ @BindingMethod
+ public static native boolean TextLink(String label);
+
+ /**
+ * Hyperlink text button that automatically opens the given file/URL on click (new in imgui 1.91).
+ * Uses {@code io.PlatformOpenInShellFn} (with OS defaults on Windows/Linux/macOS).
+ */
+ @BindingMethod
+ public static native boolean TextLinkOpenURL(String label, @OptArg String url);
+
/**
* Currently: formatted text with an horizontal line
*/
@@ -1123,9 +1141,14 @@ public static boolean checkbox(String label, boolean active) {
// Widgets: Images
// - Read about ImTextureID here: https://github.com/ocornut/imgui/wiki/Image-Loading-and-Displaying-Examples
+ // - Since imgui 1.91.9 the 'tint_col' and 'border_col' params were removed from Image(); use
+ // ImageWithBg() for tinting, and ImGuiCol_ImageBorder style colour for the border (imgui 1.92+).
+
+ @BindingMethod
+ public static native void Image(@ArgValue(callPrefix = "(ImTextureID)(uintptr_t)") long userTextureId, ImVec2 imageSize, @OptArg ImVec2 uv0, @OptArg ImVec2 uv1);
@BindingMethod
- public static native void Image(@ArgValue(callPrefix = "(ImTextureID)(uintptr_t)") long userTextureId, ImVec2 imageSize, @OptArg ImVec2 uv0, @OptArg ImVec2 uv1, @OptArg ImVec4 tintCol, @OptArg ImVec4 borderCol);
+ public static native void ImageWithBg(@ArgValue(callPrefix = "(ImTextureID)(uintptr_t)") long userTextureId, ImVec2 imageSize, @OptArg ImVec2 uv0, @OptArg ImVec2 uv1, @OptArg ImVec4 bgCol, @OptArg ImVec4 tintCol);
@BindingMethod
public static native boolean ImageButton(String strId, @ArgValue(callPrefix = "(ImTextureID)(uintptr_t)") long userTextureId, ImVec2 imageSize, @OptArg ImVec2 uv0, @OptArg ImVec2 uv1, @OptArg ImVec4 bgCol, @OptArg ImVec4 tintCol);
@@ -2104,7 +2127,7 @@ public static void value(final String prefix, final float value, String floatFor
public static native void TableSetColumnEnabled(int columnN, boolean value);
/**
- * Return hovered column. return -1 when table is not hovered. return columns_count if the unused space at the right of visible columns is hovered. Can also use (TableGetColumnFlags() & ImGuiTableColumnFlags_IsHovered) instead.
+ * Return hovered column. return -1 when table is not hovered. return columns_count if the unused space at the right of visible columns is hovered. Can also use {@code (TableGetColumnFlags() & ImGuiTableColumnFlags_IsHovered)} instead.
*/
@BindingMethod
public static native int TableGetHoveredColumn();
@@ -2574,6 +2597,21 @@ public static T getDragDropPayload(final Class aClass) {
@BindingMethod
public static native boolean IsItemToggledOpen();
+ /**
+ * Was the last item's selection state toggled? (since imgui 1.91 multi-select).
+ * Useful if you need per-item information before reaching {@code EndMultiSelect()}.
+ */
+ @BindingMethod
+ public static native boolean IsItemToggledSelection();
+
+ /**
+ * Set selection user data for the next item, used by {@code BeginMultiSelect}/{@code EndMultiSelect()}
+ * and inside {@code ImGuiMultiSelectIO}. Opaque 64-bit value (e.g. an index, a pointer,
+ * a hash) unique to your item identity (since imgui 1.91).
+ */
+ @BindingMethod
+ public static native void SetNextItemSelectionUserData(long selectionUserData);
+
/**
* Is any item hovered?
*/
@@ -2597,6 +2635,12 @@ public static T getDragDropPayload(final Class aClass) {
@BindingMethod
public static native int GetItemID();
+ /**
+ * Get generic flags of last item (since imgui 1.91). Returns an {@code ImGuiItemFlags} mask.
+ */
+ @BindingMethod
+ public static native int GetItemFlags();
+
/**
* Get upper-left bounding rectangle of the last item (screen space)
*/
@@ -2857,14 +2901,14 @@ public static void colorConvertHSVtoRGB(float[] hsv, float[] rgb) {
public static native ImVec2 GetMousePosOnOpeningCurrentPopup();
/**
- * Is mouse dragging? (uses io.MouseDraggingThreshold if lock_threshold < 0.0f)
+ * Is mouse dragging? {@code (uses io.MouseDraggingThreshold if lock_threshold < 0.0f)}
*/
@BindingMethod
public static native boolean IsMouseDragging(int button, @OptArg float lockThreshold);
/**
* Return the delta from the initial clicking position while the mouse button is pressed or was just released.
- * This is locked and return 0.0f until the mouse moves past a distance threshold at least once (uses io.MouseDraggingThreshold if lock_threshold < 0.0f)
+ * This is locked and return 0.0f until the mouse moves past a distance threshold at least once {@code (uses io.MouseDraggingThreshold if lock_threshold < 0.0f)}
*/
@BindingMethod
public static native ImVec2 GetMouseDragDelta(@OptArg final int button, @OptArg final float lockThreshold);
diff --git a/imgui-binding/src/main/java/imgui/ImGuiIO.java b/imgui-binding/src/main/java/imgui/ImGuiIO.java
index 07c98b08..d4aa19e1 100644
--- a/imgui-binding/src/main/java/imgui/ImGuiIO.java
+++ b/imgui-binding/src/main/java/imgui/ImGuiIO.java
@@ -112,6 +112,13 @@ public ImGuiIO(final long ptr) {
@BindingField
public boolean ConfigDockingNoSplit;
+ /**
+ * Simplified docking mode: disable window merging into the same tab-bar, so docking is limited to splitting windows.
+ * (new in imgui 1.92)
+ */
+ @BindingField
+ public boolean ConfigDockingNoDockingOver;
+
/**
* Enable docking with holding Shift key (reduce visual noise, allows dropping in wider space)
*/
@@ -153,6 +160,49 @@ public ImGuiIO(final long ptr) {
@BindingField
public boolean ConfigViewportsNoDefaultParent;
+ /**
+ * [EXPERIMENTAL] Automatically overwrite {@code style.FontScaleDpi} when monitor DPI changes.
+ * Scales fonts but NOT sizes/padding (for now). Docking branch only. (since imgui 1.92)
+ */
+ @BindingField
+ public boolean ConfigDpiScaleFonts;
+
+ /**
+ * [EXPERIMENTAL] Scale Dear ImGui and platform windows when monitor DPI changes. Docking branch only. (since imgui 1.92)
+ */
+ @BindingField
+ public boolean ConfigDpiScaleViewports;
+
+ /**
+ * Enable error recovery support. Some errors won't be detected and lead to direct crashes if recovery is disabled. (since imgui 1.91.6)
+ */
+ @BindingField
+ public boolean ConfigErrorRecovery;
+
+ /**
+ * Enable asserts on recoverable errors. By default calls IM_ASSERT() when returning from a failing IM_ASSERT_USER_ERROR(). (since imgui 1.91.6)
+ */
+ @BindingField
+ public boolean ConfigErrorRecoveryEnableAssert;
+
+ /**
+ * Enable debug log output on recoverable errors. (since imgui 1.91.6)
+ */
+ @BindingField
+ public boolean ConfigErrorRecoveryEnableDebugLog;
+
+ /**
+ * Enable tooltip on recoverable errors. The tooltip includes a way to enable asserts if they were disabled. (since imgui 1.91.6)
+ */
+ @BindingField
+ public boolean ConfigErrorRecoveryEnableTooltip;
+
+ /**
+ * Highlight and show an error message popup when multiple items have conflicting identifiers. (since imgui 1.91.0)
+ */
+ @BindingField
+ public boolean ConfigDebugHighlightIdConflicts;
+
// Miscellaneous options
/**
@@ -342,12 +392,8 @@ void setClipboardTextStub(void* userData, const char* text) {
THIS->GetClipboardTextFn = getClipboardTextStub;
*/
- /**
- * Optional: Platform locale
- * [Experimental] Configure decimal point e.g. '.' or ',' useful for some languages (e.g. German), generally pulled from {@code *localeconv()->decimal_point}
- */
- @BindingField
- public short PlatformLocaleDecimalPoint;
+ // PlatformLocaleDecimalPoint was removed from ImGuiIO in imgui 1.92; the equivalent is
+ // now 'style.LocaleDecimalPoint' (not currently surfaced in the Java binding).
//------------------------------------------------------------------
// Input - Call before calling NewFrame()
@@ -625,7 +671,7 @@ void setClipboardTextStub(void* userData, const char* text) {
* Key state for all known keys. Use IsKeyXXX() functions to access this.
*/
@BindingField
- @TypeArray(type = "ImGuiKeyData", size = "ImGuiKey_KeysData_SIZE")
+ @TypeArray(type = "ImGuiKeyData", size = "ImGuiKey_NamedKey_COUNT")
public ImGuiKeyData[] KeysData;
/**
@@ -762,17 +808,8 @@ void setClipboardTextStub(void* userData, const char* text) {
@BindingField(accessors = BindingField.Accessor.GETTER)
public boolean AppAcceptingEvents;
- /**
- * -1: unknown, 0: using AddKeyEvent(), 1: using legacy io.KeysDown[]
- */
- @BindingField
- public short BackendUsingLegacyKeyArrays;
-
- /**
- * 0: using AddKeyAnalogEvent(), 1: writing to legacy io.NavInputs[] directly
- */
- @BindingField
- public boolean BackendUsingLegacyNavInputArray;
+ // BackendUsingLegacyKeyArrays and BackendUsingLegacyNavInputArray were removed from ImGuiIO
+ // in imgui 1.92 (the legacy code paths those fields gated are gone).
/**
* For AddInputCharacterUTF16
diff --git a/imgui-binding/src/main/java/imgui/ImGuiStyle.java b/imgui-binding/src/main/java/imgui/ImGuiStyle.java
index 133705eb..1aaf3793 100644
--- a/imgui-binding/src/main/java/imgui/ImGuiStyle.java
+++ b/imgui-binding/src/main/java/imgui/ImGuiStyle.java
@@ -47,6 +47,21 @@ protected long create() {
@BindingField
public float DisabledAlpha;
+ /**
+ * Main global scale factor applied on top of font size. Replaces {@code io.FontGlobalScale} (moved
+ * from io to style in imgui 1.92). May be set by application once or exposed to end-users.
+ */
+ @BindingField
+ public float FontScaleMain;
+
+ /**
+ * Additional global scale factor from viewport/monitor contents scale (since imgui 1.92). In the
+ * docking branch: when {@code io.ConfigDpiScaleFonts} is enabled, this is automatically overwritten
+ * when changing monitor DPI.
+ */
+ @BindingField
+ public float FontScaleDpi;
+
/**
* Padding within a window.
*/
@@ -205,12 +220,23 @@ protected long create() {
@BindingField
public float TabBorderSize;
+ /**
+ * Minimum width for close button to appear on a selected tab when hovered.
+ * {@code -1}: always visible; {@code 0}: visible when hovered; {@code >0}: visible when hovered if
+ * tab width is at least this wide. (Since imgui 1.91.9 this field split into
+ * {@code TabCloseButtonMinWidthSelected} and {@code TabCloseButtonMinWidthUnselected}.)
+ */
+ @BindingField
+ public float TabCloseButtonMinWidthSelected;
+
/**
* Minimum width for close button to appear on an unselected tab when hovered.
- * Set to 0.0f to always show when hovering, set to FLT_MAX to never show close button unless selected.
+ * {@code -1}: always visible; {@code 0}: visible when hovered; {@code >0}: visible when hovered if
+ * tab width is at least this wide; {@code FLT_MAX}: never show close button when unselected.
+ * (Since imgui 1.91.9; renamed from {@code TabMinWidthForCloseButton}.)
*/
@BindingField
- public float TabMinWidthForCloseButton;
+ public float TabCloseButtonMinWidthUnselected;
/**
* Side of the color button in the ColorEdit4 widget (left/right). Defaults to ImGuiDir_Right.
@@ -231,6 +257,50 @@ protected long create() {
@BindingField
public ImVec2 SelectableTextAlign;
+ /**
+ * Rounding of Image() calls (since imgui 1.92).
+ */
+ @BindingField
+ public float ImageRounding;
+
+ /**
+ * Thickness of border around Image() calls (since imgui 1.92).
+ */
+ @BindingField
+ public float ImageBorderSize;
+
+ /**
+ * Default way to draw lines connecting TreeNode hierarchy (since imgui 1.92).
+ * One of {@code ImGuiTreeNodeFlags_DrawLinesNone} / {@code DrawLinesFull} / {@code DrawLinesToNodes}.
+ */
+ @BindingField(isFlag = true)
+ public int TreeLinesFlags;
+
+ /**
+ * Thickness of outlines when using {@code ImGuiTreeNodeFlags_DrawLines} (since imgui 1.92).
+ */
+ @BindingField
+ public float TreeLinesSize;
+
+ /**
+ * Radius of lines connecting child nodes to the vertical line (since imgui 1.92).
+ */
+ @BindingField
+ public float TreeLinesRounding;
+
+ /**
+ * Size of R/G/B/A color markers for {@code ColorEdit4()} and for Drags/Sliders when using
+ * {@code ImGuiSliderFlags_ColorMarkers} (since imgui 1.92.7). Set to 0 to disable globally.
+ */
+ @BindingField
+ public float ColorMarkerSize;
+
+ /**
+ * Thickness of the separator line rendered by Separator() (new in imgui 1.92.7).
+ */
+ @BindingField
+ public float SeparatorSize;
+
/**
* Thickkness of border in SeparatorText()
*/
diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiChildFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiChildFlags.java
index df6e5f6f..7094298b 100644
--- a/imgui-binding/src/main/java/imgui/flag/ImGuiChildFlags.java
+++ b/imgui-binding/src/main/java/imgui/flag/ImGuiChildFlags.java
@@ -7,7 +7,7 @@
* Flags for ImGui::BeginChild()
* (Legacy: bit 0 must always correspond to ImGuiChildFlags_Border to be backward compatible with old API using 'bool border = false'.
* About using AutoResizeX/AutoResizeY flags:
- * - May be combined with SetNextWindowSizeConstraints() to set a min/max size for each axis (see "Demo->Child->Auto-resize with Constraints").
+ * - May be combined with SetNextWindowSizeConstraints() to set a min/max size for each axis (see {@code Demo->Child->Auto-resize with Constraints}).
* - Size measurement for a given axis is only performed when the child window is within visible boundaries, or is just appearing.
* - This allows BeginChild() to return false when not within boundaries (e.g. when scrolling), which is more optimal. BUT it won't update its auto-size while clipped.
* While not perfect, it is a better default behavior as the always-on performance gain is more valuable than the occasional "resizing after becoming visible again" glitch.
diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiFreeTypeBuilderFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiFreeTypeBuilderFlags.java
deleted file mode 100644
index 45e0748f..00000000
--- a/imgui-binding/src/main/java/imgui/flag/ImGuiFreeTypeBuilderFlags.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package imgui.flag;
-
-import imgui.binding.annotation.BindingAstEnum;
-import imgui.binding.annotation.BindingSource;
-
-@BindingSource
-public final class ImGuiFreeTypeBuilderFlags {
- private ImGuiFreeTypeBuilderFlags() {
- }
-
- @BindingAstEnum(file = "ast-imgui_freetype.json", qualType = "ImGuiFreeTypeBuilderFlags", sanitizeName = "ImGuiFreeTypeBuilderFlags_")
- public Void __;
-}
diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiFreeTypeLoaderFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiFreeTypeLoaderFlags.java
new file mode 100644
index 00000000..be801220
--- /dev/null
+++ b/imgui-binding/src/main/java/imgui/flag/ImGuiFreeTypeLoaderFlags.java
@@ -0,0 +1,16 @@
+package imgui.flag;
+
+import imgui.binding.annotation.BindingAstEnum;
+import imgui.binding.annotation.BindingSource;
+
+/**
+ * Renamed from {@code ImGuiFreeTypeBuilderFlags} in imgui 1.92.
+ */
+@BindingSource
+public final class ImGuiFreeTypeLoaderFlags {
+ private ImGuiFreeTypeLoaderFlags() {
+ }
+
+ @BindingAstEnum(file = "ast-imgui_freetype.json", qualType = "ImGuiFreeTypeLoaderFlags_", sanitizeName = "ImGuiFreeTypeLoaderFlags_")
+ public Void __;
+}
diff --git a/imgui-binding/src/main/java/imgui/internal/ImGui.java b/imgui-binding/src/main/java/imgui/internal/ImGui.java
index aae23171..a7d610ee 100644
--- a/imgui-binding/src/main/java/imgui/internal/ImGui.java
+++ b/imgui-binding/src/main/java/imgui/internal/ImGui.java
@@ -116,7 +116,7 @@ public static void init() {
// Fonts, drawing
@BindingMethod
- public static native void SetCurrentFont(ImFont font);
+ public static native void SetCurrentFont(ImFont font, float fontSizeBeforeScaling, float fontSizeAfterScaling);
@BindingMethod
public static native ImFont GetDefaultFont();
@@ -138,7 +138,7 @@ public static void init() {
public static native void UpdateInputEvents(boolean trickleFastInputs);
@BindingMethod
- public static native void UpdateHoveredWindowAndCaptureFlags();
+ public static native void UpdateHoveredWindowAndCaptureFlags(ImVec2 mousePos);
@BindingMethod
public static native void StartMouseMovingWindow(ImGuiWindow window);
@@ -264,8 +264,8 @@ public static void init() {
@BindingMethod
public static native boolean IsItemToggledSelection();
- @BindingMethod
- public static native ImVec2 GetContentRegionMaxAbs();
+ // GetContentRegionMaxAbs was removed from imgui_internal in imgui 1.92; the equivalent
+ // is now '(window->Pos - window->Scroll + window->ContentRegionRect.Max)'.
// TODO: ShrinkWidths
diff --git a/imgui-lwjgl3/src/main/java/imgui/glfw/ImGuiImplGlfw.java b/imgui-lwjgl3/src/main/java/imgui/glfw/ImGuiImplGlfw.java
index e2fa8914..99df2cfe 100644
--- a/imgui-lwjgl3/src/main/java/imgui/glfw/ImGuiImplGlfw.java
+++ b/imgui-lwjgl3/src/main/java/imgui/glfw/ImGuiImplGlfw.java
@@ -624,10 +624,10 @@ protected int glfwKeyToImGuiKey(final int glfwKey) {
// See https://github.com/ocornut/imgui/issues/6034 and https://github.com/glfw/glfw/issues/1630
protected void updateKeyModifiers(final long window) {
final ImGuiIO io = ImGui.getIO();
- io.addKeyEvent(ImGuiKey.ModCtrl, (glfwGetKey(window, GLFW_KEY_LEFT_CONTROL) == GLFW_PRESS) || (glfwGetKey(window, GLFW_KEY_RIGHT_CONTROL) == GLFW_PRESS));
- io.addKeyEvent(ImGuiKey.ModShift, (glfwGetKey(window, GLFW_KEY_LEFT_SHIFT) == GLFW_PRESS) || (glfwGetKey(window, GLFW_KEY_RIGHT_SHIFT) == GLFW_PRESS));
- io.addKeyEvent(ImGuiKey.ModAlt, (glfwGetKey(window, GLFW_KEY_LEFT_ALT) == GLFW_PRESS) || (glfwGetKey(window, GLFW_KEY_RIGHT_ALT) == GLFW_PRESS));
- io.addKeyEvent(ImGuiKey.ModSuper, (glfwGetKey(window, GLFW_KEY_LEFT_SUPER) == GLFW_PRESS) || (glfwGetKey(window, GLFW_KEY_RIGHT_SUPER) == GLFW_PRESS));
+ io.addKeyEvent(ImGuiKey.ImGuiMod_Ctrl, (glfwGetKey(window, GLFW_KEY_LEFT_CONTROL) == GLFW_PRESS) || (glfwGetKey(window, GLFW_KEY_RIGHT_CONTROL) == GLFW_PRESS));
+ io.addKeyEvent(ImGuiKey.ImGuiMod_Shift, (glfwGetKey(window, GLFW_KEY_LEFT_SHIFT) == GLFW_PRESS) || (glfwGetKey(window, GLFW_KEY_RIGHT_SHIFT) == GLFW_PRESS));
+ io.addKeyEvent(ImGuiKey.ImGuiMod_Alt, (glfwGetKey(window, GLFW_KEY_LEFT_ALT) == GLFW_PRESS) || (glfwGetKey(window, GLFW_KEY_RIGHT_ALT) == GLFW_PRESS));
+ io.addKeyEvent(ImGuiKey.ImGuiMod_Super, (glfwGetKey(window, GLFW_KEY_LEFT_SUPER) == GLFW_PRESS) || (glfwGetKey(window, GLFW_KEY_RIGHT_SUPER) == GLFW_PRESS));
}
protected boolean shouldChainCallback(final long window) {
@@ -909,7 +909,12 @@ public void shutdown() {
}
for (int cursorN = 0; cursorN < ImGuiMouseCursor.COUNT; cursorN++) {
- glfwDestroyCursor(data.mouseCursors[cursorN]);
+ // Skip unpopulated slots (e.g. Wait/Progress, added in imgui 1.91; GLFW has no
+ // corresponding standard cursor). Upstream C code is tolerant of NULL here but
+ // LWJGL's glfwDestroyCursor asserts non-null.
+ if (data.mouseCursors[cursorN] != 0) {
+ glfwDestroyCursor(data.mouseCursors[cursorN]);
+ }
}
io.setBackendPlatformName(null);
diff --git a/include/imgui b/include/imgui
index 3369cbd2..b1bcb12a 160000
--- a/include/imgui
+++ b/include/imgui
@@ -1 +1 @@
-Subproject commit 3369cbd2776d7567ac198b1a3017a4fa2d547cc3
+Subproject commit b1bcb12a624af7509894c8e77dd47416997777fa
diff --git a/include/imgui-node-editor b/include/imgui-node-editor
index b3029714..021aa0ea 160000
--- a/include/imgui-node-editor
+++ b/include/imgui-node-editor
@@ -1 +1 @@
-Subproject commit b302971455b3719ec9b5fb94b2f92d27c62b9ff0
+Subproject commit 021aa0ea4da13fed864bafb2a92d4c5205076866
diff --git a/include/implot b/include/implot
index 1f7a8c03..4707b245 160000
--- a/include/implot
+++ b/include/implot
@@ -1 +1 @@
-Subproject commit 1f7a8c0314d838a76695bccebe0f66864f507bc0
+Subproject commit 4707b245fbcd69075b1a8a74fa8d2435561b3134
diff --git a/patches/imgui-node-editor-imgui-1.92-operator-star.patch b/patches/imgui-node-editor-imgui-1.92-operator-star.patch
new file mode 100644
index 00000000..499fa5ae
--- /dev/null
+++ b/patches/imgui-node-editor-imgui-1.92-operator-star.patch
@@ -0,0 +1,31 @@
+diff --git a/imgui_extra_math.h b/imgui_extra_math.h
+index 3df615a..cc3612a 100644
+--- a/imgui_extra_math.h
++++ b/imgui_extra_math.h
+@@ -34,7 +34,9 @@ struct ImLine
+ inline bool operator==(const ImVec2& lhs, const ImVec2& rhs);
+ inline bool operator!=(const ImVec2& lhs, const ImVec2& rhs);
+ # endif
++# if IMGUI_VERSION_NUM < 19200
+ inline ImVec2 operator*(const float lhs, const ImVec2& rhs);
++# endif
+ # if IMGUI_VERSION_NUM < 18955
+ inline ImVec2 operator-(const ImVec2& lhs);
+ # endif
+diff --git a/imgui_extra_math.inl b/imgui_extra_math.inl
+index 8e2347f..06de556 100644
+--- a/imgui_extra_math.inl
++++ b/imgui_extra_math.inl
+@@ -31,10 +31,12 @@ inline bool operator!=(const ImVec2& lhs, const ImVec2& rhs)
+ }
+ # endif
+
++# if IMGUI_VERSION_NUM < 19200
+ inline ImVec2 operator*(const float lhs, const ImVec2& rhs)
+ {
+ return ImVec2(lhs * rhs.x, lhs * rhs.y);
+ }
++# endif
+
+ # if IMGUI_VERSION_NUM < 18955
+ inline ImVec2 operator-(const ImVec2& lhs)