From 8a8cd22ed610e4370be058874c60ad4a67f064ca Mon Sep 17 00:00:00 2001 From: SpaiR Date: Tue, 14 May 2024 10:37:29 +0300 Subject: [PATCH] feat: introduce binding generator A squash of hundreds of commits with a binding API generator. The API generator works with a hybrid model: 1. We define methods and fields in the code. 2. Mark them with API annotations. 3. For specific use cases, we use the old approach with JNI generation comments. There is also an API to generate an AST tree, which is saved to JSON. This JSON can be used for full API generation by declaring only field/method names. Currently, it is used to generate constants. By eyeballing, 95% of the API has been converted to the new approach. This is sufficient for the current moment. Only edge cases with specific API calls are left. fix: ambiguous call for ImGui::GetColorU32 build: disable checkstyle for imgui-binding module Since the module is heavily generated, checkstyle for it doesn't make sense. build: make buildSrc to use JDK 11 build: make generateApi optional when compiling project Initially generated module was not included to the project VCS. Since it's now in the separate src folder, we don't need to call generator every time. Only when a new generation result is required. --- build.gradle | 20 + buildSrc/build.gradle | 18 - buildSrc/build.gradle.kts | 31 + .../groovy/tool/generator/GenerateLibs.groovy | 2 +- .../generator/api/BindingSourceProcessor.kt | 155 + .../generator/api/ExcludedSourceProcessor.kt | 23 + .../kotlin/tool/generator/api/ast_content.kt | 60 + .../kotlin/tool/generator/api/jni_content.kt | 688 + .../kotlin/tool/generator/api/jvm_content.kt | 713 + .../tool/generator/api/task/GenerateApi.kt | 48 + .../main/kotlin/tool/generator/api/util.kt | 186 + .../kotlin/tool/generator/ast/AstParser.kt | 22 + .../main/kotlin/tool/generator/ast/decl.kt | 127 + .../tool/generator/ast/task/GenerateAst.kt | 530 + .../resources/generator/api/ast/_gen_ast.sh | 7 + .../api/ast/ast-ImGuiFileDialog.json | 2979 +++ .../generator/api/ast/ast-ImGuizmo.json | 779 + .../generator/api/ast/ast-TextEditor.json | 1826 ++ .../generator/api/ast/ast-imgui-knobs.json | 279 + .../generator/api/ast/ast-imgui.json | 21411 ++++++++++++++++ .../generator/api/ast/ast-imgui_internal.json | 11882 +++++++++ .../api/ast/ast-imgui_node_editor.json | 3024 +++ .../generator/api/ast/ast-imnodes.json | 1987 ++ .../generator/api/ast/ast-implot.json | 5542 ++++ .../main/java/ExampleImGuiColorTextEdit.java | 8 +- .../src/main/java/ExampleImGuiFileDialog.java | 4 +- .../src/main/java/ExampleImGuiNodeEditor.java | 8 +- example/src/main/java/ExampleImGuizmo.java | 23 +- example/src/main/java/ExampleImNodes.java | 7 +- example/src/main/java/ExampleImPlot.java | 43 +- example/src/main/java/ExampleKnobs.java | 20 +- imgui-binding/build.gradle | 16 +- imgui-binding/scripts/struct_to_java.groovy | 81 - .../src/generated/java/imgui/ImColor.java | 209 + .../src/generated/java/imgui/ImDrawData.java | 370 + .../src/generated/java/imgui/ImDrawList.java | 1487 ++ .../src/generated/java/imgui/ImFont.java | 529 + .../src/generated/java/imgui/ImFontAtlas.java | 812 + .../generated/java/imgui/ImFontConfig.java | 501 + .../src/generated/java/imgui/ImFontGlyph.java | 298 + .../java/imgui/ImFontGlyphRangesBuilder.java | 95 + .../src/generated/java/imgui/ImGui.java | 12660 +++++++++ .../src/generated/java/imgui/ImGuiIO.java | 2778 ++ .../imgui/ImGuiInputTextCallbackData.java | 294 + .../java/imgui/ImGuiListClipper.java | 69 + .../java/imgui/ImGuiOnceUponAFrame.java | 23 + .../generated/java/imgui/ImGuiPlatformIO.java | 540 + .../java/imgui/ImGuiPlatformMonitor.java | 300 + .../generated/java/imgui/ImGuiStorage.java | 146 + .../src/generated/java/imgui/ImGuiStyle.java | 1461 ++ .../generated/java/imgui/ImGuiTextFilter.java | 135 + .../generated/java/imgui/ImGuiViewport.java | 593 + .../java/imgui/ImGuiWindowClass.java | 318 + .../src/generated/java/imgui/ImVec2.java | 93 + .../src/generated/java/imgui/ImVec4.java | 105 + .../imgui/assertion/ImAssertCallback.java | 45 + .../java/imgui/binding/ImGuiStruct.java | 38 + .../imgui/binding/ImGuiStructDestroyable.java | 31 + .../callback/ImGuiInputTextCallback.java | 17 + .../imgui/callback/ImListClipperCallback.java | 8 + .../callback/ImPlatformFuncViewport.java | 10 + .../callback/ImPlatformFuncViewportFloat.java | 10 + .../ImPlatformFuncViewportImVec2.java | 11 + .../ImPlatformFuncViewportString.java | 10 + .../ImPlatformFuncViewportSuppBoolean.java | 10 + .../ImPlatformFuncViewportSuppFloat.java | 10 + .../ImPlatformFuncViewportSuppImVec2.java | 11 + .../java/imgui/callback/ImStrConsumer.java | 8 + .../java/imgui/callback/ImStrSupplier.java | 8 + .../imguifiledialog/ImGuiFileDialog.java | 1591 ++ .../callback/ImGuiFileDialogPaneFun.java | 5 + .../flag/ImGuiFileDialogFlags.java | 59 + .../extension/imguiknobs/ImGuiKnobs.java | 1013 + .../imguiknobs/flag/ImGuiKnobFlags.java | 29 + .../imguiknobs/flag/ImGuiKnobVariant.java | 42 + .../imgui/extension/imguizmo/ImGuizmo.java | 542 + .../imgui/extension/imguizmo/flag/Mode.java | 11 + .../extension/imguizmo/flag/Operation.java | 82 + .../java/imgui/extension/imnodes/ImNodes.java | 1079 + .../extension/imnodes/ImNodesContext.java | 9 + .../imnodes/ImNodesEditorContext.java | 9 + .../imgui/extension/imnodes/ImNodesIO.java | 64 + .../imgui/extension/imnodes/ImNodesStyle.java | 494 + .../imnodes/flag/ImNodesAttributeFlags.java | 29 + .../extension/imnodes/flag/ImNodesCol.java} | 36 +- .../imnodes/flag/ImNodesMiniMapLocation.java | 18 + .../imnodes/flag/ImNodesPinShape.java | 22 + .../imnodes/flag/ImNodesStyleFlags.java | 22 + .../imnodes/flag/ImNodesStyleVar.java | 42 + .../java/imgui/extension/implot/ImPlot.java | 13626 ++++++++++ .../imgui/extension/implot/ImPlotContext.java | 9 + .../imgui/extension/implot/ImPlotLimits.java | 93 + .../imgui/extension/implot/ImPlotPoint.java | 100 + .../imgui/extension/implot/ImPlotRange.java | 98 + .../imgui/extension/implot/ImPlotStyle.java | 992 + .../implot/flag/ImPlotAxisFlags.java | 115 + .../extension/implot/flag/ImPlotBin.java | 35 + .../extension/implot/flag/ImPlotCol.java | 129 + .../extension/implot/flag/ImPlotColormap.java | 119 + .../extension/implot/flag/ImPlotFlags.java | 110 + .../extension/implot/flag/ImPlotLocation.java | 70 + .../extension/implot/flag/ImPlotMarker.java | 66 + .../implot/flag/ImPlotOrientation.java | 17 + .../extension/implot/flag/ImPlotStyleVar.java | 144 + .../extension/implot/flag/ImPlotYAxis.java | 28 + .../imgui/extension/memedit/MemoryEditor.java | 312 + .../extension/memedit/MemoryEditorSizes.java | 190 + .../imgui/extension/nodeditor/NodeEditor.java | 1534 ++ .../extension/nodeditor/NodeEditorConfig.java | 105 + .../nodeditor/NodeEditorContext.java | 9 + .../extension/nodeditor/NodeEditorStyle.java | 582 + .../flag/NodeEditorFlowDirection.java | 11 + .../nodeditor/flag/NodeEditorPinKind.java | 11 + .../nodeditor/flag/NodeEditorStyleColor.java | 45 + .../nodeditor/flag/NodeEditorStyleVar.java | 55 + .../extension/texteditor/TextEditor.java | 761 + .../texteditor/TextEditorCoordinates.java | 90 + .../TextEditorLanguageDefinition.java | 313 + .../flag/TextEditorPaletteIndex.java | 51 + .../flag/TextEditorSelectionMode.java | 13 + .../java/imgui/flag/ImDrawFlags.java | 94 + .../java/imgui/flag/ImDrawListFlags.java | 44 + .../java/imgui/flag/ImFontAtlasFlags.java | 36 + .../java/imgui/flag/ImGuiBackendFlags.java | 64 + .../java/imgui/flag/ImGuiButtonFlags.java | 47 + .../generated/java/imgui/flag/ImGuiCol.java | 170 + .../java/imgui/flag/ImGuiColorEditFlags.java | 232 + .../java/imgui/flag/ImGuiComboFlags.java | 69 + .../generated/java/imgui/flag/ImGuiCond.java | 47 + .../java/imgui/flag/ImGuiConfigFlags.java | 99 + .../java/imgui/flag/ImGuiDataType.java | 62 + .../generated/java/imgui/flag/ImGuiDir.java | 37 + .../java/imgui/flag/ImGuiDockNodeFlags.java | 58 + .../java/imgui/flag/ImGuiDragDropFlags.java | 85 + .../java/imgui/flag/ImGuiFocusedFlags.java | 55 + .../imgui/flag/ImGuiFreeTypeBuilderFlags.java | 9 + .../java/imgui/flag/ImGuiHoveredFlags.java | 92 + .../java/imgui/flag/ImGuiInputTextFlags.java | 162 + .../generated/java/imgui/flag/ImGuiKey.java | 74 + .../java/imgui/flag/ImGuiKeyModFlags.java | 35 + .../java/imgui/flag/ImGuiMouseButton.java | 31 + .../java/imgui/flag/ImGuiMouseCursor.java | 63 + .../java/imgui/flag/ImGuiNavInput.java | 105 + .../java/imgui/flag/ImGuiPopupFlags.java | 84 + .../java/imgui/flag/ImGuiSelectableFlags.java | 50 + .../java/imgui/flag/ImGuiSliderFlags.java | 54 + .../java/imgui/flag/ImGuiSortDirection.java | 29 + .../java/imgui/flag/ImGuiStyleVar.java | 143 + .../java/imgui/flag/ImGuiTabBarFlags.java | 81 + .../java/imgui/flag/ImGuiTabItemFlags.java | 71 + .../java/imgui/flag/ImGuiTableBgTarget.java | 44 + .../imgui/flag/ImGuiTableColumnFlags.java | 199 + .../java/imgui/flag/ImGuiTableFlags.java | 284 + .../java/imgui/flag/ImGuiTableRowFlags.java | 22 + .../java/imgui/flag/ImGuiTreeNodeFlags.java | 120 + .../java/imgui/flag/ImGuiViewportFlags.java | 106 + .../java/imgui/flag/ImGuiWindowFlags.java | 226 + .../generated/java/imgui/internal/ImGui.java | 336 + .../java/imgui/internal/ImGuiContext.java | 10 + .../java/imgui/internal/ImGuiDockNode.java | 1010 + .../java/imgui/internal/ImGuiWindow.java | 42 + .../generated/java/imgui/internal/ImRect.java | 83 + .../java/imgui/internal/flag/ImGuiAxis.java | 22 + .../internal/flag/ImGuiDataAuthority.java | 16 + .../internal/flag/ImGuiDockNodeFlags.java | 176 + .../internal/flag/ImGuiDockNodeState.java | 15 + .../imgui/internal/flag/ImGuiItemFlags.java | 79 + .../lwjgl3/glfw/ImGuiImplGlfwNative.java | 30 + .../generated/java/imgui/type/ImBoolean.java | 65 + .../generated/java/imgui/type/ImDouble.java | 85 + .../generated/java/imgui/type/ImFloat.java | 85 + .../src/generated/java/imgui/type/ImInt.java | 85 + .../src/generated/java/imgui/type/ImLong.java | 85 + .../generated/java/imgui/type/ImShort.java | 85 + .../generated/java/imgui/type/ImString.java | 250 + .../src/main/java/imgui/ImDrawData.java | 173 +- .../src/main/java/imgui/ImDrawList.java | 523 +- imgui-binding/src/main/java/imgui/ImFont.java | 244 +- .../src/main/java/imgui/ImFontAtlas.java | 382 +- .../src/main/java/imgui/ImFontConfig.java | 310 +- .../src/main/java/imgui/ImFontGlyph.java | 158 +- imgui-binding/src/main/java/imgui/ImGui.java | 5080 +--- .../src/main/java/imgui/ImGuiIO.java | 1256 +- .../imgui/ImGuiInputTextCallbackData.java | 153 +- .../main/java/imgui/ImGuiPlatformMonitor.java | 125 +- .../src/main/java/imgui/ImGuiStorage.java | 76 +- .../src/main/java/imgui/ImGuiStyle.java | 895 +- .../src/main/java/imgui/ImGuiTextFilter.java | 64 +- .../src/main/java/imgui/ImGuiViewport.java | 329 +- .../src/main/java/imgui/ImGuiWindowClass.java | 136 +- imgui-binding/src/main/java/imgui/ImVec2.java | 2 +- imgui-binding/src/main/java/imgui/ImVec4.java | 2 +- .../imgui/binding/annotation/ArgValue.java | 39 + .../binding/annotation/BindingAstEnum.java | 38 + .../binding/annotation/BindingField.java | 34 + .../binding/annotation/BindingMethod.java | 24 + .../binding/annotation/BindingSource.java | 25 + .../binding/annotation/ExcludedSource.java | 12 + .../java/imgui/binding/annotation/OptArg.java | 26 + .../imgui/binding/annotation/ReturnValue.java | 32 + .../imgui/binding/annotation/TypeArray.java | 24 + .../imguifiledialog/ImGuiFileDialog.java | 325 +- .../callback/ImGuiFileDialogPaneFun.java | 2 +- .../flag/ImGuiFileDialogFlags.java | 39 +- .../extension/imguiknobs/ImGuiKnobs.java | 71 +- .../imguiknobs/flag/ImGuiKnobFlags.java | 13 +- .../imguiknobs/flag/ImGuiKnobVariant.java | 13 +- .../imgui/extension/imguizmo/ImGuizmo.java | 320 +- .../imgui/extension/imguizmo/flag/Mode.java | 8 +- .../extension/imguizmo/flag/Operation.java | 58 +- .../java/imgui/extension/imnodes/ImNodes.java | 636 +- .../extension/imnodes/ImNodesContext.java | 31 +- .../imnodes/ImNodesEditorContext.java | 9 + .../imgui/extension/imnodes/ImNodesIO.java | 34 + .../imgui/extension/imnodes/ImNodesStyle.java | 179 +- .../imnodes/flag/ImNodesAttributeFlags.java | 24 +- .../extension/imnodes/flag/ImNodesCol.java | 13 + .../imnodes/flag/ImNodesMiniMapLocation.java | 10 +- .../imnodes/flag/ImNodesPinShape.java | 12 +- .../imnodes/flag/ImNodesStyleFlags.java | 9 +- .../imnodes/flag/ImNodesStyleVar.java | 21 +- .../java/imgui/extension/implot/ImPlot.java | 2715 +- .../imgui/extension/implot/ImPlotLimits.java | 168 +- .../imgui/extension/implot/ImPlotPoint.java | 119 +- .../imgui/extension/implot/ImPlotRange.java | 122 +- .../imgui/extension/implot/ImPlotStyle.java | 627 +- .../implot/flag/ImPlotAxisFlags.java | 36 +- .../extension/implot/flag/ImPlotBin.java | 14 +- .../extension/implot/flag/ImPlotCol.java | 56 +- .../extension/implot/flag/ImPlotColormap.java | 38 +- .../extension/implot/flag/ImPlotFlags.java | 35 +- .../extension/implot/flag/ImPlotLocation.java | 24 +- .../extension/implot/flag/ImPlotMarker.java | 29 +- .../implot/flag/ImPlotOrientation.java | 10 +- .../extension/implot/flag/ImPlotStyleVar.java | 61 +- .../extension/implot/flag/ImPlotYAxis.java | 12 +- .../imgui/extension/memedit/MemoryEditor.java | 106 +- .../extension/memedit/MemoryEditorSizes.java | 108 +- .../imgui/extension/nodeditor/NodeEditor.java | 700 +- .../extension/nodeditor/NodeEditorConfig.java | 48 +- .../nodeditor/NodeEditorContext.java | 41 +- .../extension/nodeditor/NodeEditorStyle.java | 366 +- .../flag/NodeEditorFlowDirection.java | 13 + .../nodeditor/flag/NodeEditorPinKind.java | 8 +- .../nodeditor/flag/NodeEditorStyleColor.java | 25 +- .../nodeditor/flag/NodeEditorStyleVar.java | 29 +- .../extension/texteditor/TextEditor.java | 338 +- .../texteditor/TextEditorCoordinates.java | 90 + .../TextEditorLanguageDefinition.java | 175 +- .../flag/TextEditorPaletteIndex.java | 28 +- .../flag/TextEditorSelectionMode.java | 9 +- .../src/main/java/imgui/flag/ImDrawFlags.java | 44 +- .../main/java/imgui/flag/ImDrawListFlags.java | 23 +- .../java/imgui/flag/ImFontAtlasFlags.java | 20 +- .../java/imgui/flag/ImGuiBackendFlags.java | 40 +- .../java/imgui/flag/ImGuiButtonFlags.java | 19 +- .../src/main/java/imgui/flag/ImGuiCol.java | 110 +- .../java/imgui/flag/ImGuiColorEditFlags.java | 122 +- .../main/java/imgui/flag/ImGuiComboFlags.java | 36 +- .../src/main/java/imgui/flag/ImGuiCond.java | 26 +- .../java/imgui/flag/ImGuiConfigFlags.java | 70 +- .../main/java/imgui/flag/ImGuiDataType.java | 47 +- .../src/main/java/imgui/flag/ImGuiDir.java | 12 +- .../java/imgui/flag/ImGuiDockNodeFlags.java | 45 +- .../java/imgui/flag/ImGuiDragDropFlags.java | 57 +- .../java/imgui/flag/ImGuiFocusedFlags.java | 35 +- .../imgui/flag/ImGuiFreeTypeBuilderFlags.java | 44 +- .../java/imgui/flag/ImGuiHoveredFlags.java | 61 +- .../java/imgui/flag/ImGuiInputTextFlags.java | 89 +- .../src/main/java/imgui/flag/ImGuiKey.java | 47 +- .../java/imgui/flag/ImGuiKeyModFlags.java | 11 +- .../java/imgui/flag/ImGuiMouseButton.java | 10 +- .../java/imgui/flag/ImGuiMouseCursor.java | 41 +- .../main/java/imgui/flag/ImGuiNavInput.java | 88 +- .../main/java/imgui/flag/ImGuiPopupFlags.java | 38 +- .../java/imgui/flag/ImGuiSelectableFlags.java | 27 +- .../java/imgui/flag/ImGuiSliderFlags.java | 24 +- .../java/imgui/flag/ImGuiSortDirection.java | 15 +- .../main/java/imgui/flag/ImGuiStyleVar.java | 107 +- .../java/imgui/flag/ImGuiTabBarFlags.java | 42 +- .../java/imgui/flag/ImGuiTabItemFlags.java | 41 +- .../java/imgui/flag/ImGuiTableBgTarget.java | 19 +- .../imgui/flag/ImGuiTableColumnFlags.java | 98 +- .../main/java/imgui/flag/ImGuiTableFlags.java | 158 +- .../java/imgui/flag/ImGuiTableRowFlags.java | 11 +- .../java/imgui/flag/ImGuiTreeNodeFlags.java | 67 +- .../java/imgui/flag/ImGuiViewportFlags.java | 62 +- .../java/imgui/flag/ImGuiWindowFlags.java | 91 +- .../src/main/java/imgui/internal/ImGui.java | 197 +- .../java/imgui/internal/ImGuiContext.java | 1 + .../java/imgui/internal/ImGuiDockNode.java | 623 +- .../main/java/imgui/internal/ImGuiWindow.java | 22 +- .../src/main/java/imgui/internal/ImRect.java | 33 +- .../java/imgui/internal/flag/ImGuiAxis.java | 9 +- .../internal/flag/ImGuiDataAuthority.java | 9 +- .../internal/flag/ImGuiDockNodeFlags.java | 54 +- .../internal/flag/ImGuiDockNodeState.java | 10 +- .../imgui/internal/flag/ImGuiItemFlags.java | 31 +- .../lwjgl3/glfw/ImGuiImplGlfwNative.java | 2 +- imgui-binding/src/main/native/_base.h | 4 - imgui-binding/src/main/native/_binding.h | 7 - imgui-binding/src/main/native/_common.h | 11 +- .../src/main/native/_imguifiledialog.h | 1 + imgui-binding/src/main/native/_imguiknobs.h | 2 + imgui-binding/src/main/native/_imnodes.h | 2 +- imgui-binding/src/main/native/_implot.h | 4 +- imgui-binding/src/main/native/_internal.h | 4 + imgui-binding/src/main/native/_nodeeditor.h | 4 +- imgui-binding/src/main/native/_texteditor.h | 3 + imgui-binding/src/main/native/jni_assertion.h | 2 +- .../src/main/native/jni_binding_struct.h | 2 +- .../src/main/native/jni_callbacks.cpp | 2 +- imgui-binding/src/main/native/jni_callbacks.h | 2 +- imgui-binding/src/main/native/jni_common.cpp | 59 +- imgui-binding/src/main/native/jni_common.h | 12 +- imgui-binding/src/main/native/jni_implot.cpp | 94 + imgui-binding/src/main/native/jni_implot.h | 19 + .../src/main/native/jni_internal.cpp | 34 + imgui-binding/src/main/native/jni_internal.h | 13 + imgui-binding/src/main/native/jni_jvm.h | 4 +- .../src/main/native/jni_texteditor.cpp | 38 + .../src/main/native/jni_texteditor.h | 11 + .../src/main/java/imgui/gl3/ImGuiImplGl3.java | 10 +- 323 files changed, 113518 insertions(+), 15318 deletions(-) delete mode 100644 buildSrc/build.gradle create mode 100644 buildSrc/build.gradle.kts create mode 100644 buildSrc/src/main/kotlin/tool/generator/api/BindingSourceProcessor.kt create mode 100644 buildSrc/src/main/kotlin/tool/generator/api/ExcludedSourceProcessor.kt create mode 100644 buildSrc/src/main/kotlin/tool/generator/api/ast_content.kt create mode 100644 buildSrc/src/main/kotlin/tool/generator/api/jni_content.kt create mode 100644 buildSrc/src/main/kotlin/tool/generator/api/jvm_content.kt create mode 100644 buildSrc/src/main/kotlin/tool/generator/api/task/GenerateApi.kt create mode 100644 buildSrc/src/main/kotlin/tool/generator/api/util.kt create mode 100644 buildSrc/src/main/kotlin/tool/generator/ast/AstParser.kt create mode 100644 buildSrc/src/main/kotlin/tool/generator/ast/decl.kt create mode 100644 buildSrc/src/main/kotlin/tool/generator/ast/task/GenerateAst.kt create mode 100755 buildSrc/src/main/resources/generator/api/ast/_gen_ast.sh create mode 100644 buildSrc/src/main/resources/generator/api/ast/ast-ImGuiFileDialog.json create mode 100644 buildSrc/src/main/resources/generator/api/ast/ast-ImGuizmo.json create mode 100644 buildSrc/src/main/resources/generator/api/ast/ast-TextEditor.json create mode 100644 buildSrc/src/main/resources/generator/api/ast/ast-imgui-knobs.json create mode 100644 buildSrc/src/main/resources/generator/api/ast/ast-imgui.json create mode 100644 buildSrc/src/main/resources/generator/api/ast/ast-imgui_internal.json create mode 100644 buildSrc/src/main/resources/generator/api/ast/ast-imgui_node_editor.json create mode 100644 buildSrc/src/main/resources/generator/api/ast/ast-imnodes.json create mode 100644 buildSrc/src/main/resources/generator/api/ast/ast-implot.json delete mode 100644 imgui-binding/scripts/struct_to_java.groovy create mode 100644 imgui-binding/src/generated/java/imgui/ImColor.java create mode 100644 imgui-binding/src/generated/java/imgui/ImDrawData.java create mode 100644 imgui-binding/src/generated/java/imgui/ImDrawList.java create mode 100644 imgui-binding/src/generated/java/imgui/ImFont.java create mode 100644 imgui-binding/src/generated/java/imgui/ImFontAtlas.java create mode 100644 imgui-binding/src/generated/java/imgui/ImFontConfig.java create mode 100644 imgui-binding/src/generated/java/imgui/ImFontGlyph.java create mode 100644 imgui-binding/src/generated/java/imgui/ImFontGlyphRangesBuilder.java create mode 100644 imgui-binding/src/generated/java/imgui/ImGui.java create mode 100644 imgui-binding/src/generated/java/imgui/ImGuiIO.java create mode 100644 imgui-binding/src/generated/java/imgui/ImGuiInputTextCallbackData.java create mode 100644 imgui-binding/src/generated/java/imgui/ImGuiListClipper.java create mode 100644 imgui-binding/src/generated/java/imgui/ImGuiOnceUponAFrame.java create mode 100644 imgui-binding/src/generated/java/imgui/ImGuiPlatformIO.java create mode 100644 imgui-binding/src/generated/java/imgui/ImGuiPlatformMonitor.java create mode 100644 imgui-binding/src/generated/java/imgui/ImGuiStorage.java create mode 100644 imgui-binding/src/generated/java/imgui/ImGuiStyle.java create mode 100644 imgui-binding/src/generated/java/imgui/ImGuiTextFilter.java create mode 100644 imgui-binding/src/generated/java/imgui/ImGuiViewport.java create mode 100644 imgui-binding/src/generated/java/imgui/ImGuiWindowClass.java create mode 100644 imgui-binding/src/generated/java/imgui/ImVec2.java create mode 100644 imgui-binding/src/generated/java/imgui/ImVec4.java create mode 100644 imgui-binding/src/generated/java/imgui/assertion/ImAssertCallback.java create mode 100644 imgui-binding/src/generated/java/imgui/binding/ImGuiStruct.java create mode 100644 imgui-binding/src/generated/java/imgui/binding/ImGuiStructDestroyable.java create mode 100644 imgui-binding/src/generated/java/imgui/callback/ImGuiInputTextCallback.java create mode 100644 imgui-binding/src/generated/java/imgui/callback/ImListClipperCallback.java create mode 100644 imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewport.java create mode 100644 imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportFloat.java create mode 100644 imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportImVec2.java create mode 100644 imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportString.java create mode 100644 imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportSuppBoolean.java create mode 100644 imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportSuppFloat.java create mode 100644 imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportSuppImVec2.java create mode 100644 imgui-binding/src/generated/java/imgui/callback/ImStrConsumer.java create mode 100644 imgui-binding/src/generated/java/imgui/callback/ImStrSupplier.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/imguifiledialog/ImGuiFileDialog.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/imguifiledialog/callback/ImGuiFileDialogPaneFun.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/imguifiledialog/flag/ImGuiFileDialogFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/imguiknobs/ImGuiKnobs.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/imguiknobs/flag/ImGuiKnobFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/imguiknobs/flag/ImGuiKnobVariant.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/imguizmo/ImGuizmo.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/imguizmo/flag/Mode.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/imguizmo/flag/Operation.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodes.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodesContext.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodesEditorContext.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodesIO.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodesStyle.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesAttributeFlags.java rename imgui-binding/src/{main/java/imgui/extension/imnodes/flag/ImNodesColorStyle.java => generated/java/imgui/extension/imnodes/flag/ImNodesCol.java} (91%) create mode 100644 imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesMiniMapLocation.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesPinShape.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesStyleFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesStyleVar.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/implot/ImPlot.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/implot/ImPlotContext.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/implot/ImPlotLimits.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/implot/ImPlotPoint.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/implot/ImPlotRange.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/implot/ImPlotStyle.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotAxisFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotBin.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotCol.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotColormap.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotLocation.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotMarker.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotOrientation.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotStyleVar.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotYAxis.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/memedit/MemoryEditor.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/memedit/MemoryEditorSizes.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/nodeditor/NodeEditor.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/nodeditor/NodeEditorConfig.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/nodeditor/NodeEditorContext.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/nodeditor/NodeEditorStyle.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/nodeditor/flag/NodeEditorFlowDirection.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/nodeditor/flag/NodeEditorPinKind.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/nodeditor/flag/NodeEditorStyleColor.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/nodeditor/flag/NodeEditorStyleVar.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditor.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditorCoordinates.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditorLanguageDefinition.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/texteditor/flag/TextEditorPaletteIndex.java create mode 100644 imgui-binding/src/generated/java/imgui/extension/texteditor/flag/TextEditorSelectionMode.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImDrawFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImDrawListFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImFontAtlasFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiBackendFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiButtonFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiCol.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiColorEditFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiComboFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiCond.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiConfigFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiDataType.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiDir.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiDockNodeFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiDragDropFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiFocusedFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiFreeTypeBuilderFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiHoveredFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiInputTextFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiKey.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiKeyModFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiMouseButton.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiMouseCursor.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiNavInput.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiPopupFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiSelectableFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiSliderFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiSortDirection.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiStyleVar.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiTabBarFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiTabItemFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiTableBgTarget.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiTableColumnFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiTableFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiTableRowFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiTreeNodeFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiViewportFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/flag/ImGuiWindowFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/internal/ImGui.java create mode 100644 imgui-binding/src/generated/java/imgui/internal/ImGuiContext.java create mode 100644 imgui-binding/src/generated/java/imgui/internal/ImGuiDockNode.java create mode 100644 imgui-binding/src/generated/java/imgui/internal/ImGuiWindow.java create mode 100644 imgui-binding/src/generated/java/imgui/internal/ImRect.java create mode 100644 imgui-binding/src/generated/java/imgui/internal/flag/ImGuiAxis.java create mode 100644 imgui-binding/src/generated/java/imgui/internal/flag/ImGuiDataAuthority.java create mode 100644 imgui-binding/src/generated/java/imgui/internal/flag/ImGuiDockNodeFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/internal/flag/ImGuiDockNodeState.java create mode 100644 imgui-binding/src/generated/java/imgui/internal/flag/ImGuiItemFlags.java create mode 100644 imgui-binding/src/generated/java/imgui/lwjgl3/glfw/ImGuiImplGlfwNative.java create mode 100644 imgui-binding/src/generated/java/imgui/type/ImBoolean.java create mode 100644 imgui-binding/src/generated/java/imgui/type/ImDouble.java create mode 100644 imgui-binding/src/generated/java/imgui/type/ImFloat.java create mode 100644 imgui-binding/src/generated/java/imgui/type/ImInt.java create mode 100644 imgui-binding/src/generated/java/imgui/type/ImLong.java create mode 100644 imgui-binding/src/generated/java/imgui/type/ImShort.java create mode 100644 imgui-binding/src/generated/java/imgui/type/ImString.java create mode 100644 imgui-binding/src/main/java/imgui/binding/annotation/ArgValue.java create mode 100644 imgui-binding/src/main/java/imgui/binding/annotation/BindingAstEnum.java create mode 100644 imgui-binding/src/main/java/imgui/binding/annotation/BindingField.java create mode 100644 imgui-binding/src/main/java/imgui/binding/annotation/BindingMethod.java create mode 100644 imgui-binding/src/main/java/imgui/binding/annotation/BindingSource.java create mode 100644 imgui-binding/src/main/java/imgui/binding/annotation/ExcludedSource.java create mode 100644 imgui-binding/src/main/java/imgui/binding/annotation/OptArg.java create mode 100644 imgui-binding/src/main/java/imgui/binding/annotation/ReturnValue.java create mode 100644 imgui-binding/src/main/java/imgui/binding/annotation/TypeArray.java create mode 100644 imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesEditorContext.java create mode 100644 imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesIO.java create mode 100644 imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesCol.java create mode 100644 imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorFlowDirection.java create mode 100644 imgui-binding/src/main/java/imgui/extension/texteditor/TextEditorCoordinates.java delete mode 100644 imgui-binding/src/main/native/_base.h delete mode 100644 imgui-binding/src/main/native/_binding.h create mode 100644 imgui-binding/src/main/native/_internal.h create mode 100644 imgui-binding/src/main/native/jni_implot.cpp create mode 100644 imgui-binding/src/main/native/jni_implot.h create mode 100644 imgui-binding/src/main/native/jni_internal.cpp create mode 100644 imgui-binding/src/main/native/jni_internal.h create mode 100644 imgui-binding/src/main/native/jni_texteditor.cpp create mode 100644 imgui-binding/src/main/native/jni_texteditor.h diff --git a/build.gradle b/build.gradle index 276d03e..15589b5 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,5 @@ +import tool.generator.ast.task.GenerateAst + import java.text.SimpleDateFormat ext { @@ -45,3 +47,21 @@ tasks.register('buildAll') { t -> } } } + +tasks.register('generateAst', GenerateAst) { + headerFiles = [ + (file('include/imgui/imgui.h')): [], + (file('include/imgui/imgui_internal.h')): [ + "#define IMGUI_HAS_TABLE", + "#define IMGUI_HAS_VIEWPORT", + "#define IMGUI_HAS_DOCK", + ], + (file('include/ImGuiFileDialog/ImGuiFileDialog.h')): [], + (file('include/imgui-knobs/imgui-knobs.h')): [], + (file('include/imguizmo/ImGuizmo.h')): [], + (file('include/imnodes/imnodes.h')): [], + (file('include/implot/implot.h')): [], + (file('include/imgui-node-editor/imgui_node_editor.h')): [], + (file('include/ImGuiColorTextEdit/TextEditor.h')): [], + ] +} diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle deleted file mode 100644 index 9fd5a8b..0000000 --- a/buildSrc/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -plugins { - id 'groovy' -} - -repositories { - mavenCentral() -} - -ext { - jnigenVersion = '2.4.0' -} - -dependencies { - implementation gradleApi() - implementation localGroovy() - - implementation "com.badlogicgames.gdx:gdx-jnigen:$jnigenVersion" -} diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts new file mode 100644 index 0000000..3ae92d9 --- /dev/null +++ b/buildSrc/build.gradle.kts @@ -0,0 +1,31 @@ +plugins { + groovy + `kotlin-dsl` +} + +java { + toolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + } +} + +kotlinDslPluginOptions { + jvmTarget.set("11") // TODO: remove when migrating to Gradle 8 +} + +repositories { + mavenCentral() +} + +dependencies { + implementation(gradleApi()) + implementation(localGroovy()) + + implementation("com.badlogicgames.gdx:gdx-jnigen:2.4.0") + implementation("org.reflections:reflections:0.10.2") + implementation("com.lordcodes.turtle:turtle:0.6.0") + implementation("fr.inria.gforge.spoon:spoon-core:10.3.0") + + implementation("com.fasterxml.jackson.core:jackson-core:2.14.2") + implementation("com.fasterxml.jackson.core:jackson-databind:2.14.2") +} diff --git a/buildSrc/src/main/groovy/tool/generator/GenerateLibs.groovy b/buildSrc/src/main/groovy/tool/generator/GenerateLibs.groovy index b0aabf4..a71de21 100644 --- a/buildSrc/src/main/groovy/tool/generator/GenerateLibs.groovy +++ b/buildSrc/src/main/groovy/tool/generator/GenerateLibs.groovy @@ -36,7 +36,7 @@ class GenerateLibs extends DefaultTask { private final boolean isLocal = System.properties.containsKey('local') private final boolean withFreeType = Boolean.valueOf(System.properties.getProperty('freetype', 'false')) - private final String sourceDir = project.file('src/main/java') + private final String sourceDir = project.file('src/generated/java') private final String classpath = project.file('build/classes/java/main') private final String rootDir = (isLocal ? project.buildDir.path : '/tmp/imgui') private final String jniDir = "$rootDir/jni" diff --git a/buildSrc/src/main/kotlin/tool/generator/api/BindingSourceProcessor.kt b/buildSrc/src/main/kotlin/tool/generator/api/BindingSourceProcessor.kt new file mode 100644 index 0000000..b26db1f --- /dev/null +++ b/buildSrc/src/main/kotlin/tool/generator/api/BindingSourceProcessor.kt @@ -0,0 +1,155 @@ +package tool.generator.api + +import spoon.reflect.code.CtJavaDoc +import spoon.reflect.declaration.CtElement +import spoon.reflect.declaration.CtField +import spoon.reflect.declaration.CtMethod +import spoon.reflect.declaration.CtType + +class BindingSourceProcessor( + private val type: CtType<*> +) { + companion object { + private const val BLANK_SPACE = " " + + private val CLEANUP_ANNOTATIONS_REGEX = Regex( + "@" + CLEANUP_ANNOTATIONS_LIST.joinToString(separator = "|", prefix = "(", postfix = ")") + ".*" + ) + + private val CLEANUP_IMPORTS_REGEX = Regex( + "import.+" + CLEANUP_ANNOTATIONS_LIST.joinToString(separator = "|", prefix = "(", postfix = ")") + ) + + fun isProcessable(type: CtType<*>): Boolean { + return type.hasAnnotation(A_NAME_BINDING_SOURCE) + } + } + + private val originalContent: String = type.position.file.readText() + + fun process() { + val contentToReplace = mutableMapOf() + contentToReplace += collectBindingFields() + contentToReplace += collectBindingMethods() + contentToReplace += collectBindingAstEnums() + + val contentBuilder = StringBuilder(originalContent) + contentToReplace.keys.sortedDescending().forEach { replacePos -> + contentBuilder.replace(replacePos.startIdx, replacePos.endIdx, contentToReplace[replacePos]) + } + + cleanupBindingAnnotations(contentBuilder) + + type.position.file.writeText(contentBuilder.toString()) + } + + private fun collectBindingFields(): Map { + val result = mutableMapOf() + for (field in type.fields) { + if (field.hasAnnotation(A_NAME_BINDING_FIELD)) { + result += processBindingField(field) + } + } + return result + } + + private fun collectBindingMethods(): Map { + val result = mutableMapOf() + for (method in type.methods) { + if (method.hasAnnotation(A_NAME_BINDING_METHOD)) { + result += processBindingMethod(method) + } + } + return result + } + + private fun collectBindingAstEnums(): Map { + val result = mutableMapOf() + for (field in type.fields) { + if (field.hasAnnotation(A_NAME_BINDING_AST_ENUM)) { + result += processBindingAstEnum(field) + } + } + return result + } + + private fun cleanupBindingAnnotations(contentBuilder: StringBuilder) { + val linesToRemove = mutableListOf() + contentBuilder.lineSequence().forEach { line -> + if (line.contains(CLEANUP_IMPORTS_REGEX)) { + linesToRemove += line + } + if (line.contains(CLEANUP_ANNOTATIONS_REGEX)) { + linesToRemove += line + } + } + linesToRemove.reversed().forEach { line -> + val idx = contentBuilder.indexOf(line) + contentBuilder.delete(idx, idx + line.length + 1) + } + } + + private fun processBindingMethod(method: CtMethod<*>): Map { + val contentToReplace = mutableMapOf() + + // Remove the original javadoc comment from the generated content. + method.comments.find { it is CtJavaDoc }?.let { + // sourceEnd has an additional offset of 6. + // 1 - '/' + // 2 - '\n' + // 3-6 - ' ' + contentToReplace[ReplacePos(it.position.sourceStart, it.position.sourceEnd + 6)] = "" + } + + val content = jvmMethodContent(method) + jniMethodContent(method) + contentToReplace[method.findReplacePos()] = content.joinWithIndention() + return contentToReplace + } + + private fun processBindingField(field: CtField<*>): Map { + val contentToReplace = mutableMapOf() + + // Remove the original javadoc comment from the generated content. + field.comments.find { it is CtJavaDoc }?.let { + // sourceEnd has an additional offset of 6. + // 1 - '/' + // 2 - '\n' + // 3-6 - ' ' + contentToReplace[ReplacePos(it.position.sourceStart, it.position.sourceEnd + 6)] = "" + } + + val content = jvmFieldContent(field) + jniFieldContent(field) + contentToReplace[field.findReplacePos()] = content.joinWithIndention() + return contentToReplace + } + + private fun processBindingAstEnum(field: CtField<*>): Map { + val content = astEnumContent(field.getAnnotation(A_NAME_BINDING_AST_ENUM)!!) + val contentStr = content.joinWithIndention() + return mapOf(field.findReplacePos() to contentStr) + } + + private fun List.joinWithIndention(): String { + return joinToString("\n\n") { str -> + str.lines().joinToString("\n") { + it.takeIf(String::isNotBlank)?.prependIndent(BLANK_SPACE) ?: it + } + } + } + + private fun CtElement.findReplacePos(): ReplacePos { + var startIdx = annotations[0].position.sourceStart + while (originalContent[startIdx] != '\n') { + startIdx-- + } + startIdx++ + val endIdx = position.sourceEnd + 1 + return ReplacePos(startIdx, endIdx) + } + + private data class ReplacePos(val startIdx: Int, val endIdx: Int) : Comparable { + override fun compareTo(other: ReplacePos): Int { + return startIdx.compareTo(other.startIdx) + } + } +} diff --git a/buildSrc/src/main/kotlin/tool/generator/api/ExcludedSourceProcessor.kt b/buildSrc/src/main/kotlin/tool/generator/api/ExcludedSourceProcessor.kt new file mode 100644 index 0000000..dd797fa --- /dev/null +++ b/buildSrc/src/main/kotlin/tool/generator/api/ExcludedSourceProcessor.kt @@ -0,0 +1,23 @@ +package tool.generator.api + +import org.apache.commons.io.FileUtils +import spoon.reflect.declaration.CtType + +class ExcludedSourceProcessor( + private val type: CtType<*> +) { + companion object { + fun isProcessable(type: CtType<*>): Boolean { + return type.hasAnnotation(A_NAME_EXCLUDED_SOURCE) + } + } + + fun process() { + val sourceFile = type.position.file + val parentDir = sourceFile.parentFile + sourceFile.delete() + if (FileUtils.isEmptyDirectory(parentDir)) { + parentDir.delete() + } + } +} diff --git a/buildSrc/src/main/kotlin/tool/generator/api/ast_content.kt b/buildSrc/src/main/kotlin/tool/generator/api/ast_content.kt new file mode 100644 index 0000000..ec57001 --- /dev/null +++ b/buildSrc/src/main/kotlin/tool/generator/api/ast_content.kt @@ -0,0 +1,60 @@ +package tool.generator.api + +import spoon.reflect.declaration.CtAnnotation +import spoon.reflect.declaration.ModifierKind +import tool.generator.ast.AstEnumConstantDecl +import tool.generator.ast.AstParser + +fun astEnumContent(markerAnnotation: CtAnnotation<*>): List { + val result = mutableListOf() + + val file = markerAnnotation.getValueAsString(A_VALUE_FILE)!! + val qualType = markerAnnotation.getValueAsString(A_VALUE_QUAL_TYPE)!! + val sanitizeName = markerAnnotation.getValueAsString(A_VALUE_SANITIZE_NAME)?.takeIf(String::isNotEmpty) ?: qualType + val astRoot = AstParser.readFromResource(file) + + val enums = astRoot.decls.filterDecls0 { + it is AstEnumConstantDecl && it.qualType == qualType + }.map { it as AstEnumConstantDecl } + + val factory = markerAnnotation.factory + + enums.forEach { e -> + val f = factory.createField() + + f.setModifiers(setOf(ModifierKind.PUBLIC, ModifierKind.STATIC, ModifierKind.FINAL)) + f.setType(factory.createTypeParam("int")) + f.setSimpleName(e.name.replace(sanitizeName, "")) + buildString { + if (e.docComment != null) { + appendLine(e.docComment) + if (e.value != null) { + appendLine() + append("

") + } + } + if (e.value != null) { + append("Definition: {@code ${e.value}}") + } + }.let { + if (it.isNotEmpty()) { + f.setDocComment(sanitizeDocComment(it)) + } + } + f.setAssignment(factory.createCodeSnippetExpression((e.evaluatedValue ?: e.order).toString())) + + result += f.prettyprint() + } + + return result +} + +private fun sanitizeDocComment(doc: String): String { + return doc + .replace("*/", "* /") + .replace(" > ", "{@code >}") + .replace("< <", "{@code <<}") + .replace(" < ", "{@code <}") + .replace("->", "{@code ->}") + .replace("&", "{@code &}") +} diff --git a/buildSrc/src/main/kotlin/tool/generator/api/jni_content.kt b/buildSrc/src/main/kotlin/tool/generator/api/jni_content.kt new file mode 100644 index 0000000..1818389 --- /dev/null +++ b/buildSrc/src/main/kotlin/tool/generator/api/jni_content.kt @@ -0,0 +1,688 @@ +package tool.generator.api + +import spoon.reflect.code.CtStatement +import spoon.reflect.declaration.CtField +import spoon.reflect.declaration.CtMethod +import spoon.reflect.declaration.CtParameter +import spoon.reflect.declaration.ModifierKind +import spoon.reflect.factory.Factory +import spoon.reflect.reference.CtTypeReference + +private fun convertParams2jni(f: Factory, params: List>, defaults: IntArray): List> { + val result = mutableListOf>() + for ((index, p) in params.withIndex()) { + if (defaults.isNotEmpty() && !defaults.contains(index)) { + continue + } + if (p.isType("Void")) { + continue + } + if (p.isType("ImVec2") || p.isType("ImVec4")) { // vec param always accepted as primitive values + result += f.createParameter().apply { + setType(f.createTypeParam("float")) + setSimpleName("${p.simpleName}X") + } + result += f.createParameter().apply { + setType(f.createTypeParam("float")) + setSimpleName("${p.simpleName}Y") + } + if (p.isType("ImVec4")) { + result += f.createParameter().apply { + setType(f.createTypeParam("float")) + setSimpleName("${p.simpleName}Z") + } + result += f.createParameter().apply { + setType(f.createTypeParam("float")) + setSimpleName("${p.simpleName}W") + } + } + } else if (p.isType("ImRect")) { + result += f.createParameter().apply { + setType(f.createTypeParam("float")) + setSimpleName("${p.simpleName}MinX") + } + result += f.createParameter().apply { + setType(f.createTypeParam("float")) + setSimpleName("${p.simpleName}MinY") + } + result += f.createParameter().apply { + setType(f.createTypeParam("float")) + setSimpleName("${p.simpleName}MaxX") + } + result += f.createParameter().apply { + setType(f.createTypeParam("float")) + setSimpleName("${p.simpleName}MaxY") + } + } else if (p.isType("ImPlotPoint")) { + result += f.createParameter().apply { + setType(f.createTypeParam("double")) + setSimpleName("${p.simpleName}X") + } + result += f.createParameter().apply { + setType(f.createTypeParam("double")) + setSimpleName("${p.simpleName}Y") + } + } else if (p.isType("ImPlotRange")) { + result += f.createParameter().apply { + setType(f.createTypeParam("double")) + setSimpleName("${p.simpleName}Min") + } + result += f.createParameter().apply { + setType(f.createTypeParam("double")) + setSimpleName("${p.simpleName}Max") + } + } else if (p.isType("ImPlotLimits")) { + result += f.createParameter().apply { + setType(f.createTypeParam("double")) + setSimpleName("${p.simpleName}MinX") + } + result += f.createParameter().apply { + setType(f.createTypeParam("double")) + setSimpleName("${p.simpleName}MinY") + } + result += f.createParameter().apply { + setType(f.createTypeParam("double")) + setSimpleName("${p.simpleName}MaxX") + } + result += f.createParameter().apply { + setType(f.createTypeParam("double")) + setSimpleName("${p.simpleName}MaxY") + } + } else if (p.isType("TextEditorCoordinates")) { + result += f.createParameter().apply { + setType(f.createTypeParam("int")) + setSimpleName("${p.simpleName}Line") + } + result += f.createParameter().apply { + setType(f.createTypeParam("int")) + setSimpleName("${p.simpleName}Column") + } + } else if (p.isType("String[]")) { + result += f.createParameter().apply { + setType(f.createTypeParam("String[]")) + setSimpleName(p.simpleName) + } + result += f.createParameter().apply { + setType(f.createTypeParam("int")) + setSimpleName("${p.simpleName}$PARAM_ARR_LEN_POSTFIX") + } + } else { + result += f.createParameter().apply { + val type = if (p.type.isPtrClass()) { + f.createTypeParam("long") + } else if (p.type.isClass) { + when (p.type.simpleName) { + "ImBoolean" -> f.createTypeParam("boolean[]") + "ImInt" -> f.createTypeParam("int[]") + "ImFloat" -> f.createTypeParam("float[]") + "ImLong" -> f.createTypeParam("long[]") + "ImDouble" -> f.createTypeParam("double[]") + else -> p.type + } + } else { + p.type + } + + setType(type) + setSimpleName(p.simpleName) + } + } + } + return result +} + +private fun joinInBodyParams(params: List>, defaults: IntArray): String { + fun param2str(p: CtParameter<*>): String { + return if (p.type.isPtrClass()) { + "reinterpret_cast<${p.type.simpleName}*>(${p.simpleName})" + } else if (p.isPrimitivePtrType()) { + "&${p.simpleName}[0]" + } else if (p.type.isClass) { + when (p.type.simpleName) { + "ImBoolean", "ImInt", "ImFloat", "ImLong", "ImDouble" -> { + "(${p.simpleName} != NULL ? &${p.simpleName}[0] : NULL)" + } + + "ImRect" -> { + "ImRect(${p.simpleName}MinX, ${p.simpleName}MinY, ${p.simpleName}MaxX, ${p.simpleName}MaxY)" + } + + "ImPlotPoint" -> { + "ImPlotPoint(${p.simpleName}X, ${p.simpleName}Y)" + } + + "ImPlotRange" -> { + "ImPlotRange(${p.simpleName}Min, ${p.simpleName}Max)" + } + + "ImPlotLimits" -> { + "ImPlotLimits(${p.simpleName}MinX, ${p.simpleName}MinY, ${p.simpleName}MaxX, ${p.simpleName}MaxY)" + } + + "TextEditorCoordinates" -> { + "TextEditor::Coordinates(${p.simpleName}Line, ${p.simpleName}Column)" + } + + else -> p.simpleName + } + } else { + p.simpleName + } + } + + val visibleParams = mutableListOf() + for ((index, p) in params.withIndex()) { + if (defaults.isNotEmpty() && !defaults.contains(index)) { + visibleParams += p.getAnnotation(A_NAME_OPT_ARG)!!.getValueAsString(A_VALUE_CALL_VALUE) + continue + } + if (p.isType("Void")) { + visibleParams += p.getAnnotation(A_NAME_ARG_VALUE)?.getValueAsString(A_VALUE_CALL_VALUE) ?: p.simpleName + continue + } + var value = param2str(p) + p.getAnnotation(A_NAME_ARG_VALUE)?.let { a -> + a.getValueAsString(A_VALUE_CALL_VALUE).takeIf(String::isNotEmpty)?.let { v -> + value = v + } + a.getValueAsString(A_VALUE_CALL_PREFIX).takeIf(String::isNotEmpty)?.let { v -> + value = v + value + } + a.getValueAsString(A_VALUE_CALL_SUFFIX).takeIf(String::isNotEmpty)?.let { v -> + value += v + } + a.getValueAsString(A_VALUE_STATIC_CAST).takeIf(String::isNotEmpty)?.let { v -> + value = "static_cast<$v>($value)" + } + a.getValueAsString(A_VALUE_REINTERPRET_CAST).takeIf(String::isNotEmpty)?.let { v -> + value = "reinterpret_cast<$v>($value)" + } + } + visibleParams += value + } + return visibleParams.joinToString() +} + +private fun createMethod(mOrig: CtMethod<*>, params: List>, defaults: IntArray): CtMethod<*> { + val f = mOrig.factory + val newM = f.createMethod() + + newM.setParent(mOrig.parent) + + newM.addModifier(ModifierKind.PRIVATE) + newM.addModifier(ModifierKind.NATIVE) + if (mOrig.isStatic) { + newM.addModifier(ModifierKind.STATIC) + } + + if (DST_RETURN_TYPE_SET.contains(mOrig.type.simpleName)) { + newM.setType(f.createTypeParam("void")) + } else if (mOrig.type.isPtrClass()) { // classes returned as a pointer + newM.setType(f.createTypeParam("long")) + } else { + newM.setType(mOrig.type) + } + + newM.setSimpleName(mOrig.getJniName()) + + convertParams2jni(f, params, defaults).forEach { + newM.addParameter(it) + } + + if (DST_RETURN_TYPE_SET.contains(mOrig.type.simpleName)) { + newM.addParameterAt(0, f.createParameter().apply { + setType(mOrig.type) + setSimpleName("dst") + }) + } + + newM.setBody(f.createCodeSnippet( + buildString { + val jniCpyReturn = DST_RETURN_TYPE_SET.contains(mOrig.type.simpleName) + val isStrReturn = mOrig.isType("String") + + if (jniCpyReturn) { + append("Jni::${mOrig.type.simpleName}Cpy(env, ") + } else { + if (!mOrig.isType("void")) { + append("return ") + if (isStrReturn) { + append("env->NewStringUTF(") + } else if (!mOrig.type.isPrimitive) { + append("($PTR_JNI_CAST)") + } + mOrig.getAnnotation(A_NAME_RETURN_VALUE)?.let { a -> + append(a.getValueAsString(A_VALUE_CALL_PREFIX)) + } + } + } + + val callName = mOrig.getAnnotation(A_NAME_BINDING_METHOD)?.let { a -> + a.getValueAsString(A_VALUE_CALL_NAME)?.takeIf(String::isNotEmpty) + } ?: mOrig.simpleName + + val callPtr = mOrig.parent.getAnnotation(A_NAME_BINDING_SOURCE)!!.let { a -> + a.getValueAsString(A_VALUE_CALL_PTR)?.takeIf(String::isNotEmpty) ?: if (mOrig.isStatic) { + mOrig.declaringType.simpleName + } else { + PTR_JNI_THIS + } + } + + val callOperator = mOrig.parent.getAnnotation(A_NAME_BINDING_SOURCE)!!.let { a -> + a.getValueAsString(A_VALUE_CALL_OPERATOR)?.takeIf(String::isNotEmpty) ?: if (mOrig.isStatic) { + "::" + } else { + "->" + } + } + + append("$callPtr$callOperator${callName}(") + append(joinInBodyParams(params, defaults)) + append(')') + + mOrig.getAnnotation(A_NAME_RETURN_VALUE)?.let { a -> + append(a.getValueAsString(A_VALUE_CALL_SUFFIX)) + } + + if (jniCpyReturn) { + append(", dst)") + } else if (isStrReturn) { + append(')') + } + } + )) + + return newM +} + +private fun createMethodVecValueReturn( + vecVal: String, + mOrig: CtMethod<*>, + nameOrig: String, + params: List>, + defaults: IntArray +): CtMethod<*> { + val callPtr = mOrig.parent.getAnnotation(A_NAME_BINDING_SOURCE)!!.let { a -> + a.getValueAsString(A_VALUE_CALL_PTR)?.takeIf(String::isNotEmpty) ?: if (mOrig.isStatic) { + mOrig.declaringType.simpleName + } else { + PTR_JNI_THIS + } + } + + val callOperator = mOrig.parent.getAnnotation(A_NAME_BINDING_SOURCE)!!.let { a -> + a.getValueAsString(A_VALUE_CALL_OPERATOR)?.takeIf(String::isNotEmpty) ?: if (mOrig.isStatic) { + "::" + } else { + "->" + } + } + + val mNew = mOrig.clone() + mNew.setSimpleName(mOrig.simpleName + vecVal.capitalize()) + mNew.removeParameter(mNew.parameters[0]) // dst param which was added during orig method creation + mNew.type.setSimpleName("float") + mNew.setBody(mOrig.factory.createCodeSnippet( + buildString { + append("return ") + append("$callPtr$callOperator$nameOrig(") + append(joinInBodyParams(params, defaults)) + append(").$vecVal") + } + )) + return mNew +} + +private fun convertManualJni(mOrig: CtMethod<*>, method: CtMethod<*>): CtMethod<*>? { + val mNew = method.clone() + + val getLines = mutableListOf() + val releaseLines = mutableListOf() + + mNew.parameters.forEach { p -> + var isConverted = false + + if (p.isPrimitivePtrType()) { + val typeCast = PRIMITIVE_PTR_TYPECAST_MAP[p.type.simpleName] + getLines += "auto ${p.simpleName} = obj_${p.simpleName} == NULL ? NULL : (${typeCast})env->GetPrimitiveArrayCritical(obj_${p.simpleName}, JNI_FALSE)" + releaseLines += "if (${p.simpleName} != NULL) env->ReleasePrimitiveArrayCritical(obj_${p.simpleName}, ${p.simpleName}, JNI_FALSE)" + isConverted = true + } + + if (p.isType("String")) { + getLines += "auto ${p.simpleName} = obj_${p.simpleName} == NULL ? NULL : (char*)env->GetStringUTFChars(obj_${p.simpleName}, JNI_FALSE)" + releaseLines += "if (${p.simpleName} != NULL) env->ReleaseStringUTFChars(obj_${p.simpleName}, ${p.simpleName})" + isConverted = true + } + + if (p.isType("String[]")) { + val countParam = "${p.simpleName}$PARAM_ARR_LEN_POSTFIX" + getLines += """ + const char* ${p.simpleName}[$countParam]; + for (int i = 0; i < ${p.simpleName}$PARAM_ARR_LEN_POSTFIX; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_${p.simpleName}, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + ${p.simpleName}[i] = rawStr; + } + """.trimIndent() + releaseLines += """ + for (int i = 0; i < $countParam; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_${p.simpleName}, i); + env->ReleaseStringUTFChars(str, ${p.simpleName}[i]); + } + """.trimIndent() + isConverted = true + } + + if (p.isType("ImVec2[]")) { + val lengthVar = "${p.simpleName}Length" + getLines += """ + int $lengthVar = env->GetArrayLength(obj_${p.simpleName}); + ImVec2 ${p.simpleName}[$lengthVar]; + for (int i = 0; i < $lengthVar; i++) { + jobject src = env->GetObjectArrayElement(obj_${p.simpleName}, i); + ImVec2 dst; + Jni::ImVec2Cpy(env, src, &dst); + ${p.simpleName}[i] = dst; + } + """.trimIndent() + isConverted = true + } + + if (p.isType("ImVec4[]")) { + val lengthVar = "${p.simpleName}Length" + getLines += """ + int $lengthVar = env->GetArrayLength(obj_${p.simpleName}); + ImVec4 ${p.simpleName}[$lengthVar]; + for (int i = 0; i < $lengthVar; i++) { + jobject src = env->GetObjectArrayElement(obj_${p.simpleName}, i); + ImVec4 dst; + Jni::ImVec4Cpy(env, src, &dst); + ${p.simpleName}[i] = dst; + } + """.trimIndent() + isConverted = true + } + + fun isAddPrefixType(type: CtTypeReference<*>): Boolean { + return setOf( + "String[]", + "ImVec2[]", + "ImVec4[]", + ).contains(type.simpleName) + } + + if (isConverted && (!mNew.isType("void") || isAddPrefixType(p.type))) { + p.setSimpleName("obj_" + p.simpleName) + } + } + + // Sine we work with an already transformed method, which doesn't contain original information, + // we need to process the original method instead. For example, ImVec args are transformed into floats. + mOrig.parameters.forEach { p -> + // Transformed method may not have the current param. For example, if it's optional. + // So for ImVec arguments we check, if there is a parameter with the same name and "X" attached. + // It's a sort of marker in our case. + if (method.parameters.find { it.simpleName == p.simpleName + "X" } != null) { + if (p.isType("ImVec2")) { + getLines += "ImVec2 ${p.simpleName} = ImVec2(${p.simpleName}X, ${p.simpleName}Y)" + } + if (p.isType("ImVec4")) { + getLines += "ImVec4 ${p.simpleName} = ImVec4(${p.simpleName}X, ${p.simpleName}Y, ${p.simpleName}Z, ${p.simpleName}W)" + } + } + } + + if (getLines.isNotEmpty() || releaseLines.isNotEmpty()) { + val bOrigCode = mNew.body.getLastStatement().prettyprint() + + mNew.body.statements.clear() + + getLines.forEach { + mNew.body.addStatement(mNew.factory.createCodeSnippet(it)) + } + + mNew.body.addStatement(mNew.factory.createCodeSnippet(bOrigCode.replace("return ", "auto _result = "))) + + releaseLines.forEach { + mNew.body.addStatement(mNew.factory.createCodeSnippet(it)) + } + + if (!mNew.isType("void")) { + mNew.body.addStatement(mNew.factory.createCodeSnippet("return _result")) + } + + return mNew + } + + return null +} + +private fun CtMethod<*>.prettyprint(isManual: Boolean): String { + return buildString { + val str = prettyprint().let { + if (isManual) { + it.replaceFirst(" {", "; /*MANUAL") + } else { + it.replaceFirst(" {", "; /*") + } + } + append(str) + lastIndexOf("}").let { idx -> + replace(idx, idx + 1, "*/") + } + } +} + +private fun transformMethodToContent( + mOrig: CtMethod<*>, + params: List> = emptyList(), + defaults: IntArray = intArrayOf() +): List { + fun CtMethod<*>.printJni(): String { + return convertManualJni(mOrig, this)?.prettyprint(true) ?: prettyprint(false) + } + + val methods = mutableListOf() + val mNew = createMethod(mOrig, params, defaults) + + methods += mNew.printJni() + + if (mOrig.isType("ImVec2") || mOrig.isType("ImVec4")) { + methods += createMethodVecValueReturn("x", mNew, mOrig.simpleName, params, defaults).printJni() + methods += createMethodVecValueReturn("y", mNew, mOrig.simpleName, params, defaults).printJni() + if (mOrig.isType("ImVec4")) { + methods += createMethodVecValueReturn("z", mNew, mOrig.simpleName, params, defaults).printJni() + methods += createMethodVecValueReturn("w", mNew, mOrig.simpleName, params, defaults).printJni() + } + } + + return methods +} + +fun jniMethodContent(method: CtMethod<*>): List { + val methods = mutableListOf() + + for (paramsSize in (findFirstOptParam(method)..method.parameters.size)) { + val params = method.parameters.subList(0, paramsSize) + methods += transformMethodToContent(method, params) + } + + for (defaults in findDefaultsCombinations(method)) { + methods += transformMethodToContent(method, method.parameters, defaults) + } + + return methods +} + +private fun createFieldGetContent(field: CtField<*>): List { + val f = field.factory + + val getAccessor = f.createMethod() + getAccessor.setParent(field.parent) + getAccessor.setSimpleName("get${field.simpleName}") + getAccessor.setType(field.type) + getAccessor.addModifier(ModifierKind.PRIVATE) + getAccessor.setAnnotations(field.annotations) + + val result = mutableListOf() + + if (field.hasAnnotation(A_NAME_TYPE_ARRAY)) { + val arrayType = field.getAnnotation(A_NAME_TYPE_ARRAY)!!.getValueAsString(A_VALUE_TYPE) + val arraySize = field.getAnnotation(A_NAME_TYPE_ARRAY)!!.getValueAsString(A_VALUE_SIZE) + + val getArray = getAccessor.clone() + getArray.addModifier(ModifierKind.NATIVE) + getArray.setSimpleName("nGet${field.simpleName}") + getArray.setType(f.createTypeParam("$arrayType[]")) + + when (arrayType) { + "boolean", "short", "int", "float", "double", "long" -> { + getArray.setBody( + f.createCodeSnippet( + """ + j$arrayType jBuf[$arraySize]; + for (int i = 0; i < $arraySize; i++) + jBuf[i] = $PTR_JNI_THIS->${field.getCallName()}[i]; + j${arrayType}Array result = env->New${arrayType.capitalize()}Array($arraySize); + env->Set${arrayType.capitalize()}ArrayRegion(result, 0, $arraySize, jBuf); + return result + """.trimIndent() + ) + ) + } + + "ImVec2", "ImVec4" -> { + getArray.setBody( + f.createCodeSnippet( + """ + return Jni::New${arrayType}Array(env, $PTR_JNI_THIS->${field.getCallName()}, $arraySize) + """.trimIndent() + ) + ) + } + } + + result += getArray.prettyprint(false) + + when (arrayType) { + "boolean", "short", "int", "float", "double", "long" -> { + val getArrayIdx = getArray.clone() + getArrayIdx.addParameter(f.createParameter().apply { + setType(f.createTypeParam("int")) + setSimpleName("idx") + }) + getArrayIdx.setType(f.createTypeParam(arrayType)) + getArrayIdx.setBody(f.createCodeSnippet("return $PTR_JNI_THIS->${field.getCallName()}[idx]")) + + result += getArrayIdx.prettyprint(false) + } + } + } else { + getAccessor.addAnnotation(f.createAnnotation(f.createTypeReference().apply { + setSimpleName("imgui.binding.annotation.BindingMethod") + }).apply { + addValue(A_VALUE_CALL_NAME, field.getCallName()) + }) + + result += transformMethodToContent(getAccessor).map { + it.replace("$PTR_JNI_THIS->${getAccessor.simpleName}()", "$PTR_JNI_THIS->${field.getCallName()}") + } + } + + return result +} + +private fun createFieldSetContent(field: CtField<*>): List { + val f = field.factory + + val setAccessor = f.createMethod() + setAccessor.setType(f.createTypeParam("void")) + setAccessor.setParent(field.parent) + setAccessor.setSimpleName("set${field.simpleName}") + setAccessor.addModifier(ModifierKind.PRIVATE) + + val valueParam = f.createParameter().apply { + setType(field.type) + setSimpleName("value") + } + + // Add this param to the method placeholder, since some transformations can check it. + setAccessor.addParameter(valueParam) + + val result = mutableListOf() + + if (field.hasAnnotation(A_NAME_TYPE_ARRAY)) { + val arrayType = field.getAnnotation(A_NAME_TYPE_ARRAY)!!.getValueAsString(A_VALUE_TYPE) + val arraySize = field.getAnnotation(A_NAME_TYPE_ARRAY)!!.getValueAsString(A_VALUE_SIZE) + + val setArray = setAccessor.clone() + setArray.addModifier(ModifierKind.NATIVE) + setArray.setSimpleName("nSet${field.simpleName}") + + when (arrayType) { + "boolean", "short", "int", "float", "double", "long" -> { + setArray.setBody( + f.createCodeSnippet( + """ + for (int i = 0; i < $arraySize; i++) + $PTR_JNI_THIS->${field.getCallName()}[i] = value[i] + """.trimIndent() + ) + ) + } + + "ImVec2", "ImVec4" -> { + setArray.setBody( + f.createCodeSnippet(""" + Jni::${arrayType}ArrayCpy(env, value, $PTR_JNI_THIS->${field.getCallName()}, $arraySize) + """.trimIndent() + ) + ) + } + } + + result += setArray.prettyprint(false) + + when (arrayType) { + "boolean", "short", "int", "float", "double", "long" -> { + val setArrayIdx = setArray.clone() + setArrayIdx.parameters.clear() + setArrayIdx.addParameter(f.createParameter().apply { + setType(f.createTypeParam("int")) + setSimpleName("idx") + }) + setArrayIdx.addParameter(f.createParameter().apply { + setType(f.createTypeParam(arrayType)) + setSimpleName("value") + }) + setArrayIdx.setType(f.createTypeParam(arrayType)) + setArrayIdx.setBody(f.createCodeSnippet("$PTR_JNI_THIS->${field.getCallName()}[idx] = value")) + + result += setArrayIdx.prettyprint(false) + } + } + } else { + result += transformMethodToContent(setAccessor, listOf(valueParam)).map { + it.replace( + "$PTR_JNI_THIS->${setAccessor.simpleName}\\((.+)\\)".toRegex(), + "$PTR_JNI_THIS->${field.getCallName()} = $1" + ) + } + } + + return result +} + +fun jniFieldContent(field: CtField<*>): List { + val fields = mutableListOf() + val a = field.getAnnotation(A_NAME_BINDING_FIELD) + if (a?.containsValue(A_VALUE_ACCESSORS, A_TYPE_VALUE_ACCESSOR_GETTER) == true) { + fields += createFieldGetContent(field) + } + if (a?.containsValue(A_VALUE_ACCESSORS, A_TYPE_VALUE_ACCESSOR_SETTER) == true) { + fields += createFieldSetContent(field) + } + return fields +} diff --git a/buildSrc/src/main/kotlin/tool/generator/api/jvm_content.kt b/buildSrc/src/main/kotlin/tool/generator/api/jvm_content.kt new file mode 100644 index 0000000..b5eef39 --- /dev/null +++ b/buildSrc/src/main/kotlin/tool/generator/api/jvm_content.kt @@ -0,0 +1,713 @@ +package tool.generator.api + +import spoon.reflect.code.CtJavaDoc +import spoon.reflect.code.CtJavaDocTag +import spoon.reflect.declaration.CtField +import spoon.reflect.declaration.CtMethod +import spoon.reflect.declaration.CtParameter +import spoon.reflect.declaration.ModifierKind +import kotlin.math.absoluteValue + +private fun createStaticStructFieldName(method: CtMethod<*>): String { + return "_${method.simpleName.toUpperCase()}_${method.parameters.hashCode().absoluteValue}" +} + +private fun createStaticStructField(typeName: String, fieldName: String): String { + return "private static final $typeName $fieldName = new $typeName(0);" +} + +private fun joinInBodyParams(params: List>, defaults: IntArray): String { + fun param2str(p: CtParameter<*>): String { + return if (p.type.isPtrClass()) { + "${p.simpleName}.$PTR_JVM_FIELD" + } else if (p.type.isClass) { + when (p.type.simpleName) { + "ImBoolean", "ImShort", "ImInt", "ImFloat", "ImLong", "ImDouble" -> { + "${p.simpleName} != null ? ${p.simpleName}.getData() : null" + } + + "ImVec2" -> "${p.simpleName}.x, ${p.simpleName}.y" + "ImVec4" -> "${p.simpleName}.x, ${p.simpleName}.y, ${p.simpleName}.z, ${p.simpleName}.w" + "ImRect" -> "${p.simpleName}.min.x, ${p.simpleName}.min.y, ${p.simpleName}.max.x, ${p.simpleName}.max.y" + + "ImPlotPoint" -> "${p.simpleName}.x, ${p.simpleName}.y" + "ImPlotRange" -> "${p.simpleName}.min, ${p.simpleName}.max" + "ImPlotLimits" -> "${p.simpleName}.x.min, ${p.simpleName}.y.min, ${p.simpleName}.x.max, ${p.simpleName}.y.max" + + "TextEditorCoordinates" -> "${p.simpleName}.mLine, ${p.simpleName}.mColumn" + + "String[]" -> "${p.simpleName}, ${p.simpleName}.length" + + "boolean[]", "byte[]", "short[]", "int[]", "float[]", "long[]", "double[]" -> p.simpleName + + else -> p.simpleName + } + } else { + p.simpleName + } + } + + val visibleParams = mutableListOf() + for ((index, p) in params.withIndex()) { + if (defaults.isNotEmpty() && !defaults.contains(index)) { + continue + } + if (p.isType("Void")) { + continue + } + visibleParams += param2str(p) + } + return visibleParams.joinToString() +} + +private fun createBodyStaticStructReturn( + method: CtMethod<*>, + params: List>, + defaults: IntArray +): String { + val fieldName = createStaticStructFieldName(method) + return buildString { + append("${fieldName}.$PTR_JVM_FIELD = ${method.getJniName()}(") + append(joinInBodyParams(params, defaults)) + appendLine(");") + append("return $fieldName") + } +} + +private fun createBodyStructReturn( + method: CtMethod<*>, + params: List>, + defaults: IntArray +): String { + return buildString { + append("return new ${method.type.simpleName}(${method.getJniName()}(") + append(joinInBodyParams(params, defaults)) + append("))") + } +} + +private fun createBodyDstReturn( + method: CtMethod<*>, + params: List>, + defaults: IntArray +): String { + val type = method.type.simpleName + return buildString { + appendLine("final $type dst = new ${type}();") + append("${method.getJniName()}(dst") + joinInBodyParams(params, defaults).let { + if (it.isNotEmpty()) { + append(", $it") + } + } + appendLine(");") + append("return dst") + } +} + +private fun createMethod(origM: CtMethod<*>, params: List>, defaults: IntArray): CtMethod<*> { + val f = origM.factory + val newM = f.createMethod() + + if (origM.isPublic) { + newM.addModifier(ModifierKind.PUBLIC) + } + if (origM.isStatic) { + newM.addModifier(ModifierKind.STATIC) + } + + if (origM.docComment.isNotBlank()) { + newM.setDocComment(origM.docComment) + } + + newM.setAnnotations(origM.annotations) + newM.setType(origM.type) + newM.setSimpleName(origM.getName()) + + for ((index, p) in params.withIndex()) { + if (defaults.isNotEmpty() && !defaults.contains(index)) { + continue + } + if (p.isType("Void")) { + continue + } + newM.addParameter(f.createParameter().apply { + addModifier(ModifierKind.FINAL) + setType(p.type) + setSimpleName(p.simpleName) + }) + } + + sanitizeDocComment(newM) + sanitizeAnnotations(newM) + + newM.setBody(f.createCodeSnippet( + buildString { + if (origM.isStaticStructReturnValue()) { + append(createBodyStaticStructReturn(origM, params, defaults)) + } else if (DST_RETURN_TYPE_SET.contains(origM.type.simpleName)) { + append(createBodyDstReturn(origM, params, defaults)) + } else if (origM.type.isClass && !origM.type.isPrimitive && !origM.isType("void") && !origM.isType("String") && !origM.isPrimitivePtrType()) { + append(createBodyStructReturn(origM, params, defaults)) + } else { + if (!origM.isType("void")) { + append("return ") + } + append("${origM.getJniName()}(") + append(joinInBodyParams(params, defaults)) + append(")") + } + } + )) + + return newM +} + +private fun methodVecUnwrappedContent(method: CtMethod<*>): String { + val newMethod = method.clone() + val newParams = mutableListOf>() + val vecParamNames = mutableSetOf() + + for (p in newMethod.parameters) { + if (p.isType("ImVec2") || p.isType("ImVec4")) { + vecParamNames += p.simpleName + + val paramX = p.factory.createParameter() + paramX.addModifier(ModifierKind.FINAL) + paramX.setType(p.factory.createTypeParam("float")) + paramX.setSimpleName("${p.simpleName}X") + + val paramY = paramX.clone() + paramY.setSimpleName("${p.simpleName}Y") + + newParams += paramX + newParams += paramY + + if (p.isType("ImVec4")) { + val paramZ = paramX.clone() + paramZ.setSimpleName("${p.simpleName}Z") + val paramW = paramX.clone() + paramW.setSimpleName("${p.simpleName}W") + + newParams += paramZ + newParams += paramW + } + + getJDoc(newMethod)?.let { jDoc -> + val idx = jDoc.tags.indexOfFirst { it.param == p.simpleName } + if (idx != -1) { + jDoc.removeTag(idx) + } + } + } else { + newParams += p + } + } + + newMethod.setParameters(newParams) + + val mContentOrig = method.prettyprint() + val mContent = newMethod.prettyprint().let { + var str = it + for (paramName in vecParamNames) { + str = str.replace("${paramName}.x, ${paramName}.y", "${paramName}X, ${paramName}Y") + str = str.replace("${paramName}.z, ${paramName}.w", "${paramName}Z, ${paramName}W") + } + str + } + + if (mContent != mContentOrig) { + return mContent + } + + return "" +} + +private fun methodRectUnwrappedContent(method: CtMethod<*>): String { + val newMethod = method.clone() + val newParams = mutableListOf>() + val paramNames = mutableSetOf() + + for (p in newMethod.parameters) { + if (p.isType("ImRect")) { + paramNames += p.simpleName + + val paramMinX = p.factory.createParameter() + paramMinX.addModifier(ModifierKind.FINAL) + paramMinX.setType(p.factory.createTypeParam("float")) + paramMinX.setSimpleName("${p.simpleName}MinX") + + val paramMinY = paramMinX.clone() + paramMinY.setSimpleName("${p.simpleName}MinY") + + newParams += paramMinX + newParams += paramMinY + + val paramMaxX = paramMinX.clone() + paramMaxX.setSimpleName("${p.simpleName}MaxX") + val paramMaxY = paramMinX.clone() + paramMaxY.setSimpleName("${p.simpleName}MaxY") + + newParams += paramMaxX + newParams += paramMaxY + } else { + newParams += p + } + } + + newMethod.setParameters(newParams) + + val mContentOrig = method.prettyprint() + val mContent = newMethod.prettyprint().let { + var str = it + for (paramName in paramNames) { + str = str.replace( + "${paramName}.min.x, ${paramName}.min.y, ${paramName}.max.x, ${paramName}.max.y", + "${paramName}MinX, ${paramName}MinY, ${paramName}MaxX, ${paramName}MaxY" + ) + } + str + } + + if (mContent != mContentOrig) { + return mContent + } + + return "" +} + +private fun methodPlotPointUnwrappedContent(method: CtMethod<*>): String { + val newMethod = method.clone() + val newParams = mutableListOf>() + val paramNames = mutableSetOf() + + for (p in newMethod.parameters) { + if (p.isType("ImPlotPoint")) { + paramNames += p.simpleName + + val paramX = p.factory.createParameter() + paramX.addModifier(ModifierKind.FINAL) + paramX.setType(p.factory.createTypeParam("double")) + paramX.setSimpleName("${p.simpleName}X") + + val paramY = paramX.clone() + paramY.setSimpleName("${p.simpleName}Y") + + newParams += paramX + newParams += paramY + } else { + newParams += p + } + } + + newMethod.setParameters(newParams) + + val mContentOrig = method.prettyprint() + val mContent = newMethod.prettyprint().let { + var str = it + for (paramName in paramNames) { + str = str.replace("${paramName}.x, ${paramName}.y", "${paramName}X, ${paramName}Y") + } + str + } + + if (mContent != mContentOrig) { + return mContent + } + + return "" +} + +private fun methodPlotRangeUnwrappedContent(method: CtMethod<*>): String { + val newMethod = method.clone() + val newParams = mutableListOf>() + val paramNames = mutableSetOf() + + for (p in newMethod.parameters) { + if (p.isType("ImPlotRange")) { + paramNames += p.simpleName + + val paramX = p.factory.createParameter() + paramX.addModifier(ModifierKind.FINAL) + paramX.setType(p.factory.createTypeParam("double")) + paramX.setSimpleName("${p.simpleName}Min") + + val paramY = paramX.clone() + paramY.setSimpleName("${p.simpleName}Max") + + newParams += paramX + newParams += paramY + } else { + newParams += p + } + } + + newMethod.setParameters(newParams) + + val mContentOrig = method.prettyprint() + val mContent = newMethod.prettyprint().let { + var str = it + for (paramName in paramNames) { + str = str.replace("${paramName}.min, ${paramName}.max", "${paramName}Min, ${paramName}Max") + } + str + } + + if (mContent != mContentOrig) { + return mContent + } + + return "" +} + +private fun methodPlotLimitsUnwrappedContent(method: CtMethod<*>): String { + val newMethod = method.clone() + val newParams = mutableListOf>() + val paramNames = mutableSetOf() + + for (p in newMethod.parameters) { + if (p.isType("ImPlotLimits")) { + paramNames += p.simpleName + + val paramMinX = p.factory.createParameter() + paramMinX.addModifier(ModifierKind.FINAL) + paramMinX.setType(p.factory.createTypeParam("double")) + paramMinX.setSimpleName("${p.simpleName}MinX") + + val paramMinY = paramMinX.clone() + paramMinY.setSimpleName("${p.simpleName}MinY") + + newParams += paramMinX + newParams += paramMinY + + val paramMaxX = paramMinX.clone() + paramMaxX.setSimpleName("${p.simpleName}MaxX") + val paramMaxY = paramMinX.clone() + paramMaxY.setSimpleName("${p.simpleName}MaxY") + + newParams += paramMaxX + newParams += paramMaxY + } else { + newParams += p + } + } + + newMethod.setParameters(newParams) + + val mContentOrig = method.prettyprint() + val mContent = newMethod.prettyprint().let { + var str = it + for (paramName in paramNames) { + str = str.replace( + "${paramName}.x.min, ${paramName}.y.min, ${paramName}.x.max, ${paramName}.y.max", + "${paramName}MinX, ${paramName}MinY, ${paramName}MaxX, ${paramName}MaxY" + ) + } + str + } + + if (mContent != mContentOrig) { + return mContent + } + + return "" +} + +private fun methodCoordinatesUnwrappedContent(method: CtMethod<*>): String { + val newMethod = method.clone() + val newParams = mutableListOf>() + val paramNames = mutableSetOf() + + for (p in newMethod.parameters) { + if (p.isType("TextEditorCoordinates")) { + paramNames += p.simpleName + + val paramX = p.factory.createParameter() + paramX.addModifier(ModifierKind.FINAL) + paramX.setType(p.factory.createTypeParam("int")) + paramX.setSimpleName("${p.simpleName}Line") + + val paramY = paramX.clone() + paramY.setSimpleName("${p.simpleName}Column") + + newParams += paramX + newParams += paramY + } else { + newParams += p + } + } + + newMethod.setParameters(newParams) + + val mContentOrig = method.prettyprint() + val mContent = newMethod.prettyprint().let { + var str = it + for (paramName in paramNames) { + str = str.replace("${paramName}.mLine, ${paramName}.mColumn", "${paramName}Line, ${paramName}Column") + } + str + } + + if (mContent != mContentOrig) { + return mContent + } + + return "" +} + +private fun createMethodDstReturn( + mOrig: CtMethod<*>, + params: List>, + defaults: IntArray +): CtMethod<*> { + val mNew = mOrig.clone() + mNew.setType(mNew.factory.createTypeParam("void")) + mNew.addParameterAt(0, mOrig.factory.createParameter().apply { + addModifier(ModifierKind.FINAL) + setType(factory.createTypeParam(mOrig.type.simpleName)) + setSimpleName("dst") + }) + mNew.setBody(mOrig.factory.createCodeSnippet( + buildString { + append("${mOrig.getJniName()}(dst") + joinInBodyParams(params, defaults).let { + if (it.isNotEmpty()) { + append(", $it") + } + } + append(")") + } + )) + return mNew +} + +private fun createMethodVecValueReturn( + vecVal: String, + mOrig: CtMethod<*>, + params: List>, + defaults: IntArray +): CtMethod<*> { + val mNew = mOrig.clone() + mNew.setSimpleName(mOrig.getName() + vecVal.capitalize()) + mNew.type.setSimpleName("float") + mNew.setBody(mOrig.factory.createCodeSnippetStatement().apply { + setValue(buildString { + append("return ") + append("${mNew.getJniName()}(") + append(joinInBodyParams(params, defaults)) + append(")") + }) + }) + return mNew +} + +private fun transformMethodToContent( + mOrig: CtMethod<*>, + params: List> = emptyList(), + defaults: IntArray = intArrayOf() +): List { + val methods = mutableListOf() + val mNew = createMethod(mOrig, params, defaults) + + methods += mNew.prettyprint() + + if (params.find { it.isType("ImVec2") || it.isType("ImVec4") } != null) { + methodVecUnwrappedContent(mNew).takeIf(String::isNotEmpty)?.run(methods::add) + } + + if (params.find { it.isType("ImRect") } != null) { + methodRectUnwrappedContent(mNew).takeIf(String::isNotEmpty)?.run(methods::add) + } + + if (params.find { it.isType("ImPlotPoint") } != null) { + methodPlotPointUnwrappedContent(mNew).takeIf(String::isNotEmpty)?.run(methods::add) + } + + if (params.find { it.isType("ImPlotRange") } != null) { + methodPlotRangeUnwrappedContent(mNew).takeIf(String::isNotEmpty)?.run(methods::add) + } + + if (params.find { it.isType("ImPlotLimits") } != null) { + methodPlotLimitsUnwrappedContent(mNew).takeIf(String::isNotEmpty)?.run(methods::add) + } + + if (params.find { it.isType("TextEditorCoordinates") } != null) { + methodCoordinatesUnwrappedContent(mNew).takeIf(String::isNotEmpty)?.run(methods::add) + } + + if (mOrig.isType("ImVec2") || mOrig.isType("ImVec4")) { + methods += createMethodVecValueReturn("x", mNew, params, defaults).prettyprint() + methods += createMethodVecValueReturn("y", mNew, params, defaults).prettyprint() + if (mOrig.isType("ImVec4")) { + methods += createMethodVecValueReturn("z", mNew, params, defaults).prettyprint() + methods += createMethodVecValueReturn("w", mNew, params, defaults).prettyprint() + } + } + + if (DST_RETURN_TYPE_SET.contains(mOrig.type.simpleName)) { + methods += createMethodDstReturn(mNew, params, defaults).prettyprint() + } + + return methods +} + +fun jvmMethodContent(method: CtMethod<*>): List { + val addContent = mutableListOf() + + if (method.isStaticStructReturnValue()) { + val staticStructFieldName = createStaticStructFieldName(method) + addContent += createStaticStructField(method.type.simpleName, staticStructFieldName) + } + + val methods = mutableListOf() + + for (paramsSize in (findFirstOptParam(method)..method.parameters.size)) { + val params = method.parameters.subList(0, paramsSize) + methods += transformMethodToContent(method, params) + } + + for (defaults in findDefaultsCombinations(method)) { + methods += transformMethodToContent(method, method.parameters, defaults) + } + + return addContent + methods +} + +private fun CtMethod<*>.isStaticStructReturnValue(): Boolean { + return !isType("void") && getAnnotation(A_NAME_RETURN_VALUE)?.getValueAsObject(A_VALUE_IS_STATIC) == true +} + +private fun createFieldGetContent(field: CtField<*>): List { + val f = field.factory + + val getAccessor = f.createMethod() + getAccessor.setParent(field.parent) + getAccessor.setSimpleName("get${field.simpleName}") + getAccessor.setType(field.type) + getAccessor.addModifier(ModifierKind.PUBLIC) + getAccessor.setDocComment(field.docComment) + getAccessor.setAnnotations(field.annotations) + + val result = jvmMethodContent(getAccessor).toMutableList() + + if (field.hasAnnotation(A_NAME_TYPE_ARRAY)) { + when (val arrayType = field.getAnnotation(A_NAME_TYPE_ARRAY)!!.getValueAsString(A_VALUE_TYPE)) { + "boolean", "short", "int", "float", "double", "long" -> { + val newM = getAccessor.clone() + newM.setType(f.createTypeParam(arrayType)) + newM.addParameter(f.createParameter().apply { + setType(f.createTypeParam("int")) + setSimpleName("idx") + }) + result += jvmMethodContent(newM) + } + } + } + + return result +} + +private fun createFieldSetContent(field: CtField<*>): List { + val f = field.factory + + val setAccessor = f.createMethod() + setAccessor.setType(f.createTypeParam("void")) + setAccessor.setParent(field.parent) + setAccessor.setSimpleName("set${field.simpleName}") + setAccessor.addModifier(ModifierKind.PUBLIC) + setAccessor.setDocComment(field.docComment) + setAccessor.setAnnotations(field.annotations) + + val valueParam = f.createParameter().apply { + setType(field.type) + setSimpleName("value") + } + + val result = transformMethodToContent(setAccessor, listOf(valueParam)).toMutableList() + + if (field.hasAnnotation(A_NAME_TYPE_ARRAY)) { + when (val arrayType = field.getAnnotation(A_NAME_TYPE_ARRAY)!!.getValueAsString(A_VALUE_TYPE)) { + "boolean", "short", "int", "float", "double", "long" -> { + val newM = setAccessor.clone() + newM.parameters.clear() + newM.addParameter(f.createParameter().apply { + setType(f.createTypeParam("int")) + setSimpleName("idx") + }) + newM.addParameter(f.createParameter().apply { + setType(f.createTypeParam(arrayType)) + setSimpleName("value") + }) + result += transformMethodToContent(newM, newM.parameters) + } + } + } + + return result +} + +private fun createFieldFlagUtils(field: CtField<*>): List { + val mAdd = field.factory.createMethod() + mAdd.setSimpleName("add${field.simpleName}") + mAdd.setType(field.factory.createTypeParam("void")) + mAdd.addModifier(ModifierKind.PUBLIC) + mAdd.setDocComment(field.docComment) + mAdd.addParameter(field.factory.createParameter().apply { + addModifier(ModifierKind.FINAL) + setType(field.factory.createTypeParam("int")) + setSimpleName("flags") + }) + mAdd.setBody(field.factory.createCodeSnippet("set${field.simpleName}(get${field.simpleName}() | flags)")) + + val mRemove = mAdd.clone() + mRemove.setSimpleName("remove${field.simpleName}") + mRemove.setBody(field.factory.createCodeSnippet("set${field.simpleName}(get${field.simpleName}() & ~(flags))")) + + val mHas = mAdd.clone() + mHas.setSimpleName("has${field.simpleName}") + mHas.setType(field.factory.createTypeParam("boolean")) + mHas.setBody(field.factory.createCodeSnippet("return (get${field.simpleName}() & flags) != 0")) + + val utilMethods = mutableListOf() + val bindingFieldAnnotation = field.getAnnotation(A_NAME_BINDING_FIELD) + + if (bindingFieldAnnotation?.containsValue(A_VALUE_ACCESSORS, A_TYPE_VALUE_ACCESSOR_SETTER) == true) { + utilMethods += mAdd.prettyprint() + utilMethods += mRemove.prettyprint() + } + + if (bindingFieldAnnotation?.containsValue(A_VALUE_ACCESSORS, A_TYPE_VALUE_ACCESSOR_GETTER) == true) { + utilMethods += mHas.prettyprint() + } + + return utilMethods +} + +fun jvmFieldContent(field: CtField<*>): List { + val fields = mutableListOf() + val a = field.getAnnotation(A_NAME_BINDING_FIELD) + if (a?.containsValue(A_VALUE_ACCESSORS, A_TYPE_VALUE_ACCESSOR_GETTER) == true) { + fields += createFieldGetContent(field) + } + if (a?.containsValue(A_VALUE_ACCESSORS, A_TYPE_VALUE_ACCESSOR_SETTER) == true) { + fields += createFieldSetContent(field) + } + if (field.getAnnotation(A_NAME_BINDING_FIELD)?.getValueAsObject(A_VALUE_IS_FLAG) == true) { + fields += createFieldFlagUtils(field) + } + return fields +} + +private fun getJDoc(method: CtMethod<*>): CtJavaDoc? { + return method.comments.filterIsInstance().firstOrNull() +} + +private fun sanitizeDocComment(method: CtMethod<*>) { + val jDoc = getJDoc(method) ?: return + val paramNames = method.parameters.map { it.simpleName } + jDoc.setTags(jDoc.tags.filter { it.type != CtJavaDocTag.TagType.PARAM || paramNames.contains(it.param) }) +} + +private fun sanitizeAnnotations(method: CtMethod<*>) { + method.setAnnotations(method.annotations.filter { !CLEANUP_ANNOTATIONS_LIST.contains(it.name) }) +} diff --git a/buildSrc/src/main/kotlin/tool/generator/api/task/GenerateApi.kt b/buildSrc/src/main/kotlin/tool/generator/api/task/GenerateApi.kt new file mode 100644 index 0000000..1fced06 --- /dev/null +++ b/buildSrc/src/main/kotlin/tool/generator/api/task/GenerateApi.kt @@ -0,0 +1,48 @@ +package tool.generator.api.task + +import org.gradle.api.DefaultTask +import org.gradle.api.tasks.Internal +import org.gradle.api.tasks.TaskAction +import spoon.Launcher +import spoon.support.compiler.FileSystemFolder +import tool.generator.api.BindingSourceProcessor +import tool.generator.api.ExcludedSourceProcessor + +open class GenerateApi : DefaultTask() { + @Internal + override fun getGroup() = "build" + + @Internal + override fun getDescription() = "Generate API for native binaries." + + private val genSrcDir = project.file("src/main/java") + private val genDstDir = project.file("src/generated/java") + + @TaskAction + fun run() { + logger.info("Generating API...") + + logger.info("Removing old generated files in $genDstDir...") + project.file(genDstDir).deleteRecursively() + + logger.info("Copying raw sources...") + logger.info("| from: $genSrcDir") + logger.info("| into: $genDstDir") + project.copy { + from(genSrcDir) + into(genDstDir) + } + + logger.info("Processing generated sources...") + + val launcher = Launcher() + launcher.addInputResource(FileSystemFolder(genDstDir)) + val model = launcher.buildModel() + model.allTypes.filter(BindingSourceProcessor::isProcessable).forEach { + BindingSourceProcessor(it).process() + } + model.allTypes.filter(ExcludedSourceProcessor::isProcessable).forEach { + ExcludedSourceProcessor(it).process() + } + } +} diff --git a/buildSrc/src/main/kotlin/tool/generator/api/util.kt b/buildSrc/src/main/kotlin/tool/generator/api/util.kt new file mode 100644 index 0000000..1bcc074 --- /dev/null +++ b/buildSrc/src/main/kotlin/tool/generator/api/util.kt @@ -0,0 +1,186 @@ +package tool.generator.api + +import spoon.reflect.code.CtCodeSnippetStatement +import spoon.reflect.code.CtExpression +import spoon.reflect.code.CtFieldRead +import spoon.reflect.code.CtNewArray +import spoon.reflect.declaration.* +import spoon.reflect.factory.Factory +import spoon.reflect.reference.CtTypeParameterReference +import tool.generator.ast.Decl +import tool.generator.ast.DeclContainer + +const val A_NAME_BINDING_SOURCE = "BindingSource" +const val A_NAME_BINDING_METHOD = "BindingMethod" +const val A_NAME_BINDING_FIELD = "BindingField" +const val A_NAME_BINDING_AST_ENUM = "BindingAstEnum" +const val A_NAME_OPT_ARG = "OptArg" +const val A_NAME_EXCLUDED_SOURCE = "ExcludedSource" +const val A_NAME_RETURN_VALUE = "ReturnValue" +const val A_NAME_ARG_VALUE = "ArgValue" +const val A_NAME_TYPE_ARRAY = "TypeArray" + +const val A_VALUE_CALL_PTR = "callPtr" +const val A_VALUE_CALL_OPERATOR = "callOperator" +const val A_VALUE_CALL_PREFIX = "callPrefix" +const val A_VALUE_CALL_SUFFIX = "callSuffix" +const val A_VALUE_STATIC_CAST = "staticCast" +const val A_VALUE_REINTERPRET_CAST = "reinterpretCast" +const val A_VALUE_IS_STATIC = "isStatic" +const val A_VALUE_CALL_VALUE = "callValue" +const val A_VALUE_NAME = "name" +const val A_VALUE_CALL_NAME = "callName" +const val A_VALUE_ACCESSORS = "accessors" +const val A_VALUE_IS_FLAG = "isFlag" +const val A_VALUE_TYPE = "type" +const val A_VALUE_SIZE = "size" +const val A_VALUE_FILE = "file" +const val A_VALUE_QUAL_TYPE = "qualType" +const val A_VALUE_SANITIZE_NAME = "sanitizeName" + +const val A_TYPE_VALUE_ACCESSOR_SETTER = "SETTER" +const val A_TYPE_VALUE_ACCESSOR_GETTER = "GETTER" + +const val PTR_JVM_FIELD = "ptr" +const val PTR_JNI_CAST = "intptr_t" +const val PTR_JNI_THIS = "THIS" + +const val PARAM_ARR_LEN_POSTFIX = "Count" + +val CLEANUP_ANNOTATIONS_LIST = listOf( + A_NAME_BINDING_SOURCE, + A_NAME_BINDING_METHOD, + A_NAME_BINDING_FIELD, + A_NAME_RETURN_VALUE, + A_NAME_OPT_ARG, + A_NAME_ARG_VALUE, + A_NAME_TYPE_ARRAY, + A_NAME_BINDING_AST_ENUM, +) + +val PRIMITIVE_PTR_TYPECAST_MAP = mapOf( + "boolean[]" to "bool*", + "byte[]" to "char*", + "short[]" to "short*", + "int[]" to "int*", + "float[]" to "float*", + "long[]" to "long*", + "double[]" to "double*", +) + +val DST_RETURN_TYPE_SET = setOf( + "ImVec2", + "ImVec4", + "ImRect", + "ImPlotPoint", + "ImPlotRange", + "ImPlotLimits", + "TextEditorCoordinates", +) + +fun CtElement.hasAnnotation(annotationName: String): Boolean { + return getAnnotation(annotationName) != null +} + +fun CtElement.getAnnotation(annotationName: String): CtAnnotation<*>? { + return annotations.find { a -> a?.name == annotationName } +} + +fun CtAnnotation<*>.containsValue(annotationField: String, value: String): Boolean { + val v = getValue>(annotationField) + if (v is CtFieldRead) { + return v.prettyprint().contains(value) + } + if (v is CtNewArray) { + return v.elements.find { it.prettyprint().contains(value) } != null + } + return false +} + +fun Factory.createTypeParam(name: String): CtTypeParameterReference = createTypeParameterReference().apply { + setSimpleName(name) +} + +fun Factory.createCodeSnippet(code: String): CtCodeSnippetStatement = createCodeSnippetStatement().apply { + setValue(code) +} + +fun CtTypedElement<*>.isType(type: String): Boolean = this.type.simpleName == type + +fun CtTypedElement<*>.isPrimitivePtrType(): Boolean { + return PRIMITIVE_PTR_TYPECAST_MAP.containsKey(type.simpleName) +} + +fun CtTypeInformation.isPtrClass(): Boolean { + return getDeclaredOrInheritedField(PTR_JVM_FIELD) != null +} + +fun CtMethod<*>.getJniName(): String = "n${simpleName.capitalize()}" + +fun CtMethod<*>.getName(): String { + return getAnnotation(A_NAME_BINDING_METHOD)?.getValueAsString(A_VALUE_NAME)?.takeIf(String::isNotEmpty) + ?: simpleName.decapitalize() +} + +fun CtField<*>.getCallName(): String { + return getAnnotation(A_NAME_BINDING_FIELD)?.getValueAsString(A_VALUE_CALL_NAME)?.takeIf(String::isNotEmpty) + ?: simpleName +} + +fun findDefaultsCombinations(method: CtMethod<*>): List { + fun findDefaults(params: List>): Map { + val defaults = mutableMapOf() + for ((index, p) in params.withIndex()) { + p.getAnnotation(A_NAME_OPT_ARG)?.let { a -> + val value = a.getValueAsString(A_VALUE_CALL_VALUE) + if (value.isNotEmpty()) { + defaults[index] = value + } + } + } + return defaults + } + + fun concatNextParam0(combinations: MutableList, idx0: Int, idxN: Int) { + val p1 = method.parameters[idx0] + val p2 = method.parameters[idxN] + if (p1.type.simpleName != p2.type.simpleName) { + combinations.add(((0 until idx0) + (idxN until method.parameters.size)).toIntArray()) + if (p2.getAnnotation(A_NAME_OPT_ARG)?.getValueAsString(A_VALUE_CALL_VALUE)?.isNotEmpty() == true) { + concatNextParam0(combinations, idx0, idxN + 1) + } + } + } + + val combinations = mutableListOf() + findDefaults(method.parameters).forEach { (idx, _) -> concatNextParam0(combinations, idx, idx + 1) } + return combinations +} + +fun findFirstOptParam(method: CtMethod<*>): Int { + if (method.parameters.isEmpty()) { + return method.parameters.size + } + for ((index, p) in method.parameters.withIndex()) { + if (p.hasAnnotation(A_NAME_OPT_ARG)) { + return index + } + } + return method.parameters.size +} + +fun Collection.filterDecls0(filter: (Decl) -> Boolean): Collection { + val result = mutableListOf() + fun filter0(decls: Collection) { + decls.forEach { decl -> + if (filter(decl)) { + result += decl + } + if (decl is DeclContainer) { + filter0(decl.decls) + } + } + } + filter0(this) + return result +} diff --git a/buildSrc/src/main/kotlin/tool/generator/ast/AstParser.kt b/buildSrc/src/main/kotlin/tool/generator/ast/AstParser.kt new file mode 100644 index 0000000..77de004 --- /dev/null +++ b/buildSrc/src/main/kotlin/tool/generator/ast/AstParser.kt @@ -0,0 +1,22 @@ +package tool.generator.ast + +import com.fasterxml.jackson.databind.ObjectMapper +import java.io.InputStream + +object AstParser { + const val RESOURCE_PATH: String = "generator/api/ast" + + private val astCache = mutableMapOf() + + fun readFromResource(astResourcePath: String): AstRoot { + return astCache.computeIfAbsent(astResourcePath) { + val astResourceContent = getAtResourceStream(astResourcePath).use { s -> s.reader().use { r -> r.readText() } } + val objectMapper = ObjectMapper() + objectMapper.readValue(astResourceContent, AstRoot::class.java) + } + } + + private fun getAtResourceStream(astResourcePath: String): InputStream { + return AstRoot::class.java.classLoader.getResourceAsStream("$RESOURCE_PATH/$astResourcePath")!! + } +} diff --git a/buildSrc/src/main/kotlin/tool/generator/ast/decl.kt b/buildSrc/src/main/kotlin/tool/generator/ast/decl.kt new file mode 100644 index 0000000..7f75d40 --- /dev/null +++ b/buildSrc/src/main/kotlin/tool/generator/ast/decl.kt @@ -0,0 +1,127 @@ +package tool.generator.ast + +import com.fasterxml.jackson.annotation.JsonIgnore +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo + +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY) +@JsonSubTypes( + JsonSubTypes.Type(AstNamespaceDecl::class), + JsonSubTypes.Type(AstFullComment::class), + JsonSubTypes.Type(AstParagraphComment::class), + JsonSubTypes.Type(AstTextComment::class), + JsonSubTypes.Type(AstFunctionDecl::class), + JsonSubTypes.Type(AstParmVarDecl::class), + JsonSubTypes.Type(AstEnumDecl::class), + JsonSubTypes.Type(AstEnumConstantDecl::class), + JsonSubTypes.Type(AstRecordDecl::class), + JsonSubTypes.Type(AstFieldDecl::class), +) +interface Decl { + val offset: Int +} + +interface DeclContainer { + val decls: List +} + +data class AstRoot( + val info: AstInfo = AstInfo(), + override val decls: List = emptyList() +) : DeclContainer + +data class AstInfo( + val source: String = "", + val hash: String = "", + val url: String = "", + val revision: String = "", +) + +data class AstNamespaceDecl( + override val offset: Int = -1, + val name: String = "", + override val decls: List = emptyList(), +) : Decl, DeclContainer + +data class AstFullComment( + override val offset: Int = -1, + override val decls: List = emptyList(), +) : Decl, DeclContainer + +data class AstParagraphComment( + override val offset: Int = -1, + override val decls: List = emptyList(), +) : Decl, DeclContainer + +data class AstTextComment( + override val offset: Int = -1, + val text: String = "", +) : Decl + +data class AstFunctionDecl( + override val offset: Int = -1, + val name: String = "", + val resultType: String = "", + override val decls: List = emptyList(), +) : Decl, DeclContainer { + @JsonIgnore + fun getParams(): List { + return decls.filterIsInstance() + } +} + +data class AstParmVarDecl( + override val offset: Int = -1, + val name: String = "", + val qualType: String = "", + val desugaredQualType: String = "", + val defaultValue: String? = null, +) : Decl { + companion object { + const val FORMAT_ATTR_NAME = "#FORMAT_ATTR_MARKER#" + + fun asFormatAttr(offset: Int): AstParmVarDecl { + return AstParmVarDecl( + offset = offset, + name = FORMAT_ATTR_NAME, + qualType = FORMAT_ATTR_NAME, + desugaredQualType = FORMAT_ATTR_NAME, + defaultValue = null + ) + } + } + + @JsonIgnore + fun isFormatAttr(): Boolean { + return this.name == FORMAT_ATTR_NAME + } +} + +data class AstEnumDecl( + override val offset: Int = -1, + val name: String = "", + override val decls: List = emptyList(), +) : Decl, DeclContainer + +data class AstEnumConstantDecl( + override val offset: Int = -1, + val name: String = "", + val docComment: String? = null, + val qualType: String = "", + val order: Int = -1, + val value: String? = null, + val evaluatedValue: String? = null, +) : Decl + +data class AstRecordDecl( + override val offset: Int = -1, + val name: String = "", + override val decls: List = emptyList(), +) : Decl, DeclContainer + +data class AstFieldDecl( + override val offset: Int = -1, + val name: String = "", + val qualType: String = "", + val desugaredQualType: String = "", +) : Decl diff --git a/buildSrc/src/main/kotlin/tool/generator/ast/task/GenerateAst.kt b/buildSrc/src/main/kotlin/tool/generator/ast/task/GenerateAst.kt new file mode 100644 index 0000000..43f4fca --- /dev/null +++ b/buildSrc/src/main/kotlin/tool/generator/ast/task/GenerateAst.kt @@ -0,0 +1,530 @@ +package tool.generator.ast.task + +import com.fasterxml.jackson.annotation.JsonInclude +import com.fasterxml.jackson.databind.JsonNode +import com.fasterxml.jackson.databind.ObjectMapper +import com.fasterxml.jackson.databind.SerializationFeature +import com.fasterxml.jackson.databind.node.ObjectNode +import com.lordcodes.turtle.shellRun +import org.gradle.api.DefaultTask +import org.gradle.api.tasks.InputFiles +import org.gradle.api.tasks.Internal +import org.gradle.api.tasks.TaskAction +import tool.generator.ast.* +import java.io.File +import java.math.BigInteger +import java.security.MessageDigest +import java.util.* + +open class GenerateAst : DefaultTask() { + @Internal + override fun getGroup() = "build" + + @Internal + override fun getDescription() = "Generate AST tree for declared header files." + + @InputFiles + lateinit var headerFiles: Map> + + private val dstDir: File = File("${project.rootDir}/buildSrc/src/main/resources/${AstParser.RESOURCE_PATH}") + + private val objectMapper: ObjectMapper = ObjectMapper() + + /** + * During the parsing of ast-dump we need to access an initial header file content. + * Required for cases like: get the content of the file (comment or default param value) by offset pos in file. + */ + private var currentParsingHeaderContent: String = "" + + /** + * This is used only to log stuff properly. + */ + private var currentParsingIndent: Int = 0 + + init { + objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true) + objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY) + } + + @TaskAction + fun run() { + logger.info("Generating AST...") + + dstDir.mkdirs() + + val scriptPath = "$dstDir/_gen_ast.sh" + File(scriptPath).setExecutable(true) + + logger.info("Processing headers...") + + headerFiles.forEach { (header, defines) -> + System.gc() + + logger.info("| $header") + + // Store the header content in the field, so we can access it when parsing. + currentParsingHeaderContent = header.readText() + + // Header hash content to create a unique path for generated content. + val headerHash = md5Hash(currentParsingHeaderContent) + + // Append additional defines if provided. + currentParsingHeaderContent = defines.joinToString("\n") + currentParsingHeaderContent + + // We create a unique folder to store files generated for the header. + // This is necessary because when we store all headers in the same directory, + // their AST dump can overlap with each other. + val astBuildDir = File("${project.buildDir}/generated/ast/$headerHash") + astBuildDir.mkdirs() + + // Move the header content to the temp file to make an ast-dump of it. + val headerName = header.nameWithoutExtension + val tmpHeaderFile = File("$astBuildDir/$headerName.h") + tmpHeaderFile.createNewFile() + tmpHeaderFile.writeText(currentParsingHeaderContent) + + logger.info(" | Making an ast-dump...") + + // Destination for ast-dump. + val astBumpJson = File("$astBuildDir/$headerName.json") + + // Call clang++ with the script. + // During the process of making an ast-dump there could be errors/warnings. + // Thus making a call like that can help to ignore them. + callClangAstBump(scriptPath, tmpHeaderFile, astBumpJson) + + logger.info(" | Processing an ast-dump result: $astBumpJson...") + + // Read the ast-dump of the whole header content. + // It will contain technical information, like unneeded typdefs, std types etc. + val fullDeclsList = mutableListOf() + objectMapper.readTree(astBumpJson).get("inner").forEach { topDecl -> + parseDeclNode0(topDecl)?.let(fullDeclsList::add) + } + + ////////////// + // After parsing the entire header file, we need to remove unnecessary information from it. + // So we pre-process the initial content and parse it again. + // This way, we can compare the initial result with the trimmed version + // to remove types and declarations that represent compiler information. + + + // Remove all includes and typedefs. + // They are not needed to process the AST, but they add extra information to the final dump. + // And since we want to have an ast-dump as minimal as possible we remove that information. + currentParsingHeaderContent = currentParsingHeaderContent + .replace("#include .*".toRegex(), "") + .replace("typedef .*".toRegex(), "") + + // Re-write with pre-processed content. + tmpHeaderFile.writeText(currentParsingHeaderContent) + + callClangAstBump(scriptPath, tmpHeaderFile, astBumpJson) + + // As its said - we do the parsing once again, but now the final result won't contain std types. + val strippedDeclsList = mutableListOf() + objectMapper.readTree(astBumpJson).get("inner").forEach { topDecl -> + parseDeclNode0(topDecl)?.let(strippedDeclsList::add) + } + + logger.info(" | Removing an ast-decls diff...") + val resultDeclsList = removeAstDiff(fullDeclsList, strippedDeclsList) + + logger.info(" | Sorting an ast-decls...") + sortDecls0(resultDeclsList) + + /////////////// + // In the end we write down the ast-decls result to the file. + // The file itself will be stored in VCS, so we can understand if there were any changes in native code. + + val astResultJson = File("$dstDir/ast-$headerName.json") + + logger.info(" | Writing processed AST: $astResultJson...") + + objectMapper.writer().writeValue( + astResultJson, AstRoot( + info = AstInfo( + source = header.relativeTo(project.rootDir).path, + hash = headerHash, + url = shellRun(header.parentFile) { + command("git", listOf("config", "--get", "remote.origin.url")) + }, + revision = shellRun(header.parentFile) { + command("git", listOf("rev-parse", "HEAD")) + }, + ), + decls = resultDeclsList + ) + ) + } + } + + private fun parseDeclNode0(declNode: JsonNode): Decl? { + fun logParsingDecl(name: String) { + logger.info(" ${" ".repeat(currentParsingIndent)}| Parsing $name...") + } + + fun logParsingInner(name: String) { + logger.info(" ${" ".repeat(currentParsingIndent)}| $name") + } + + fun JsonNode.hasNoName(): Boolean { + return !has("name") || get("name").asText().isBlank() + } + + fun JsonNode.hasNoInnerContent(): Boolean { + return !has("inner") || get("inner").isEmpty + } + + fun JsonNode.getOffset(): Int { + val loc = (get("loc") ?: get("range").get("begin")).let { loc -> + if (loc.has("expansionLoc")) { + loc.get("expansionLoc") + } else { + loc + } + } + return loc.get("offset")?.asInt() ?: -1 + } + + fun JsonNode.getDefaultParamValue(): String { + fun getOffset(jsonNode: JsonNode): Pair { + val loc = if (jsonNode.has("expansionLoc")) { + jsonNode.get("expansionLoc") + } else { + jsonNode + } + return loc.get("offset").asInt() to loc.get("tokLen").asInt() + } + return get("inner").get(0).get("range").let { range -> + val (beginOffset, _) = getOffset(range.get("begin")) + val (endOffset, endTokLoc) = getOffset(range.get("end")) + currentParsingHeaderContent.substring(beginOffset, endOffset + endTokLoc) + } + } + + try { + return when (declNode.get("kind").textValue()) { + "NamespaceDecl" -> { + if (declNode.hasNoInnerContent()) { + return null + } + + val offset = declNode.getOffset() + val name = declNode.get("name").asText() + val decls = mutableListOf() + + if (name.startsWith("_")) { // internal API namespaces + return null + } + + logParsingDecl("namespace $name") + + currentParsingIndent++ + declNode.get("inner").forEach { innerDecl -> + parseDeclNode0(innerDecl)?.let(decls::add) + } + currentParsingIndent-- + + return AstNamespaceDecl(offset, name, decls) + } + + "FullComment" -> { + if (declNode.hasNoInnerContent()) { + return null + } + + val offset = declNode.getOffset() + val decls = mutableListOf() + + logParsingDecl("full comment") + + currentParsingIndent++ + declNode.get("inner").forEach { innerDecl -> + parseDeclNode0(innerDecl)?.let(decls::add) + } + currentParsingIndent-- + + return AstFullComment(offset, decls) + } + + "ParagraphComment" -> { + if (declNode.hasNoInnerContent()) { + return null + } + + val offset = declNode.getOffset() + val decls = mutableListOf() + + logParsingDecl("paragraph comment") + + currentParsingIndent++ + declNode.get("inner").forEach { innerDecl -> + parseDeclNode0(innerDecl)?.let(decls::add) + } + currentParsingIndent-- + + return AstParagraphComment(offset, decls) + } + + "TextComment" -> { + val offset = declNode.getOffset() + val text = declNode.get("text").asText() + logParsingInner("text comment") + return AstTextComment(offset, text) + } + + "FunctionDecl", "CXXMethodDecl" -> { + val offset = declNode.getOffset() + val name = declNode.get("name").asText() + val resultType = declNode.get("type").get("qualType").asText().substringBefore("(").trim() + val decls = mutableListOf() + + logParsingDecl("function $name") + + currentParsingIndent++ + declNode.get("inner")?.forEach { innerDecl -> + parseDeclNode0(innerDecl)?.let(decls::add) + } + currentParsingIndent-- + + return AstFunctionDecl(offset, name, resultType, decls) + } + + "ParmVarDecl" -> { + if (declNode.hasNoName()) { + return null + } + + val offset = declNode.getOffset() + val name = declNode.get("name").asText() + val qualType = declNode.get("type").get("qualType").asText() + val desugaredQualType = declNode.get("type").get("desugaredQualType")?.asText() ?: qualType + + val defaultValue: String? = if (declNode.has("init")) { + declNode.getDefaultParamValue() + } else { + null + } + + logParsingInner("param $name") + + return AstParmVarDecl(offset, name, qualType, desugaredQualType, defaultValue) + } + + "FormatAttr" -> { + logParsingInner("param ...") + return AstParmVarDecl.asFormatAttr(declNode.getOffset()) + } + + "EnumDecl" -> { + if (declNode.hasNoInnerContent() || declNode.hasNoName()) { + return null + } + + val offset = declNode.getOffset() + val name = declNode.get("name").asText() + val decls = mutableListOf() + + logParsingDecl("enum $name") + + currentParsingIndent++ + declNode.get("inner").forEach { innerDecl -> + parseDeclNode0(innerDecl)?.let(decls::add) + } + currentParsingIndent + + // Sort enums by their real pos in the header file. + sortDecls0(decls) + + var order = 0 + val sortedDecls = decls.map { decl -> + if (decl is AstEnumConstantDecl) { + if (order == 0 && decl.value != null) { + order = decl.value.toIntOrNull() ?: 0 + } + + AstEnumConstantDecl( + decl.offset, + decl.name, + decl.docComment, + decl.qualType, + order++, + decl.value, + decl.evaluatedValue + ) + } else { + decl + } + } + + return AstEnumDecl(offset, name, sortedDecls) + } + + "EnumConstantDecl" -> { + val offset = declNode.getOffset() + val name = declNode.get("name").asText() + val qualType = declNode.get("type").get("qualType").asText() + + // ->inner[0]-> + val declValue: String? = declNode.get("inner")?.get(0)?.let { + // Check if the first node is not a comment. + if (it.get("kind").asText() != "FullComment") { + declNode.getDefaultParamValue() + } else { + null + } + } + + val evaluatedValue: String? = findNode0(declNode, "kind", "ConstantExpr")?.get("value")?.asText() + val docComment: String? = declNode.findValuesAsText("text")?.joinToString(" ") { it.trim() } + + logParsingInner("enum value $name") + + return AstEnumConstantDecl( + offset, + name, + docComment, + qualType, + // We provide a proper order in EnumDecl, after sorting all enums by their offset. + -1, + declValue, + evaluatedValue + ) + } + + "CXXRecordDecl" -> { + if (declNode.hasNoInnerContent() || declNode.hasNoName()) { + return null + } + + val offset = declNode.getOffset() + val name = declNode.get("name").asText() + val decls = mutableListOf() + + logParsingDecl("record $name") + + currentParsingIndent++ + declNode.get("inner").forEach { innerDecl -> + parseDeclNode0(innerDecl)?.let(decls::add) + } + currentParsingIndent-- + + return AstRecordDecl(offset, name, decls) + } + + "FieldDecl" -> { + if (declNode.hasNoName()) { + return null + } + + val offset = declNode.getOffset() + val name = declNode.get("name").asText() + val qualType = declNode.get("type").get("qualType").asText() + val desugaredQualType = declNode.get("type").get("desugaredQualType")?.asText() ?: qualType + + logParsingInner("field $name") + + return AstFieldDecl(offset, name, qualType, desugaredQualType) + } + + else -> { + null + } + } + } catch (e: Exception) { + logger.error("Unable to parse: {}", declNode) + throw Error(e) + } + } + + private fun md5Hash(str: String): String { + val md = MessageDigest.getInstance("MD5") + val bigInt = BigInteger(1, md.digest(str.toByteArray(Charsets.UTF_8))) + return String.format("%032x", bigInt) + } + + private fun callClangAstBump(scriptPath: String, srcHeader: File, dstJson: File) { + dstJson.delete() + val pb = ProcessBuilder() + pb.command(scriptPath, srcHeader.absolutePath, dstJson.absolutePath) + pb.start().waitFor() + } + + /** + * Function removes difference between ast-trees. + * Basically, it returns the list which contains only types with the same name. + */ + private fun removeAstDiff(fullDeclsList: List, strippedDeclsList: List): List { + fun isSameNamespaceName(d1: Decl, d2: Decl): Boolean { + return d1 is AstNamespaceDecl && d2 is AstNamespaceDecl && d1.name == d2.name + } + + fun isSameRecordName(d1: Decl, d2: Decl): Boolean { + return d1 is AstRecordDecl && d2 is AstRecordDecl && d1.name == d2.name + } + + fun isSameEnumName(d1: Decl, d2: Decl): Boolean { + return d1 is AstEnumDecl && d2 is AstEnumDecl && d1.name == d2.name + } + + fun isSameFunctionName(d1: Decl, d2: Decl): Boolean { + return d1 is AstFunctionDecl && d2 is AstFunctionDecl && d1.name == d2.name + } + + return fullDeclsList + .filter { d1 -> + strippedDeclsList + .find { d2 -> + d1 == d2 + || isSameRecordName(d1, d2) + || isSameNamespaceName(d1, d2) + || isSameEnumName(d1, d2) + || isSameFunctionName(d1, d2) + } != null + } + .filterNot { it is AstFunctionDecl && it.name.startsWith("operator") } + .toMutableList() // Ensure final list will be mutable for later sorting. + } + + /** + * Sort decls in the provided list recursively using offset value. + */ + @Suppress("JavaCollectionsStaticMethodOnImmutableList") + private fun sortDecls0(decls: List) { + Collections.sort(decls) { d1, d2 -> + d1.offset.compareTo(d2.offset) + } + decls.forEach { + if (it is DeclContainer) { + sortDecls0(it.decls) + } + } + } + + private fun findNode0(root: JsonNode, field: String, value: String): JsonNode? { + if (root.isObject) { + val objectNode = root as ObjectNode + val fields = objectNode.fields() + while (fields.hasNext()) { + val entry = fields.next() + if (entry.key == field && entry.value.asText() == value) { + return root + } else { + val foundNode = findNode0(entry.value, field, value) + if (foundNode != null) { + return foundNode + } + } + } + } else if (root.isArray) { + for (node in root) { + val foundNode = findNode0(node, field, value) + if (foundNode != null) { + return foundNode + } + } + } + return null + } +} diff --git a/buildSrc/src/main/resources/generator/api/ast/_gen_ast.sh b/buildSrc/src/main/resources/generator/api/ast/_gen_ast.sh new file mode 100755 index 0000000..bca5dda --- /dev/null +++ b/buildSrc/src/main/resources/generator/api/ast/_gen_ast.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env sh + +# Separate shell script required to ensure that clang++ command is runnable. +# Java ProcessBuilder doesn't see command properly. +# Also, running like that helps to ignore local clang++ warnings which can happen. + +clang++ -Xclang -ast-dump=json -fsyntax-only -fparse-all-comments -fmerge-all-constants "$1" >> "$2" diff --git a/buildSrc/src/main/resources/generator/api/ast/ast-ImGuiFileDialog.json b/buildSrc/src/main/resources/generator/api/ast/ast-ImGuiFileDialog.json new file mode 100644 index 0000000..f63888e --- /dev/null +++ b/buildSrc/src/main/resources/generator/api/ast/ast-ImGuiFileDialog.json @@ -0,0 +1,2979 @@ +{ + "info" : { + "source" : "include/ImGuiFileDialog/ImGuiFileDialog.h", + "hash" : "11872045e07178b9875d166a203d0345", + "url" : "https://github.com/aiekick/ImGuiFileDialog", + "revision" : "007091af18c69a2eed15cf5016951eb481a1de79" + }, + "decls" : [ { + "@type" : "AstEnumDecl", + "offset" : 27717, + "name" : "IGFD_FileStyleFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 27775, + "name" : "IGFD_FileStyle_None", + "docComment" : "define none style", + "qualType" : "IGFD_FileStyleFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 27827, + "name" : "IGFD_FileStyleByTypeFile", + "docComment" : "define style for all files", + "qualType" : "IGFD_FileStyleFlags_", + "order" : 1, + "value" : "(1 << 0)", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 27898, + "name" : "IGFD_FileStyleByTypeDir", + "docComment" : "define style for all dir", + "qualType" : "IGFD_FileStyleFlags_", + "order" : 2, + "value" : "(1 << 1)", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 27967, + "name" : "IGFD_FileStyleByTypeLink", + "docComment" : "define style for all link", + "qualType" : "IGFD_FileStyleFlags_", + "order" : 3, + "value" : "(1 << 2)", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 28037, + "name" : "IGFD_FileStyleByExtention", + "docComment" : "define style by extention, for files or links", + "qualType" : "IGFD_FileStyleFlags_", + "order" : 4, + "value" : "(1 << 3)", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 28127, + "name" : "IGFD_FileStyleByFullName", + "docComment" : "define style for particular file/dir/link full name (filename + extention)", + "qualType" : "IGFD_FileStyleFlags_", + "order" : 5, + "value" : "(1 << 4)", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 28245, + "name" : "IGFD_FileStyleByContainedInFullName", + "docComment" : "define style for file/dir/link when criteria is contained in full name", + "qualType" : "IGFD_FileStyleFlags_", + "order" : 6, + "value" : "(1 << 5)", + "evaluatedValue" : "32" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 28443, + "name" : "ImGuiFileDialogFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 28468, + "name" : "ImGuiFileDialogFlags_None", + "qualType" : "ImGuiFileDialogFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 28500, + "name" : "ImGuiFileDialogFlags_ConfirmOverwrite", + "docComment" : "show confirm to overwrite dialog", + "qualType" : "ImGuiFileDialogFlags_", + "order" : 1, + "value" : "(1 << 0)", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 28593, + "name" : "ImGuiFileDialogFlags_DontShowHiddenFiles", + "docComment" : "dont show hidden file (file starting with a .)", + "qualType" : "ImGuiFileDialogFlags_", + "order" : 2, + "value" : "(1 << 1)", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 28702, + "name" : "ImGuiFileDialogFlags_DisableCreateDirectoryButton", + "docComment" : "disable the create directory button", + "qualType" : "ImGuiFileDialogFlags_", + "order" : 3, + "value" : "(1 << 2)", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 28807, + "name" : "ImGuiFileDialogFlags_HideColumnType", + "docComment" : "hide column file type", + "qualType" : "ImGuiFileDialogFlags_", + "order" : 4, + "value" : "(1 << 3)", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 28888, + "name" : "ImGuiFileDialogFlags_HideColumnSize", + "docComment" : "hide column file size", + "qualType" : "ImGuiFileDialogFlags_", + "order" : 5, + "value" : "(1 << 4)", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 28969, + "name" : "ImGuiFileDialogFlags_HideColumnDate", + "docComment" : "hide column file date", + "qualType" : "ImGuiFileDialogFlags_", + "order" : 6, + "value" : "(1 << 5)", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 29169, + "name" : "ImGuiFileDialogFlags_Default", + "qualType" : "ImGuiFileDialogFlags_", + "order" : 7, + "value" : "ImGuiFileDialogFlags_ConfirmOverwrite", + "evaluatedValue" : "1" + } ] + }, { + "@type" : "AstNamespaceDecl", + "offset" : 30274, + "name" : "IGFD", + "decls" : [ { + "@type" : "AstRecordDecl", + "offset" : 30864, + "name" : "FileDialogInternal", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 30497, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 30497, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 30497, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "offset" : 30618, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "offset" : 30739, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 31256, + "name" : "SearchManager", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 30889, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 30889, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 30889, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "offset" : 31010, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "offset" : 31131, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 31296, + "name" : "puSearchTag", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 31316, + "name" : "puSearchBuffer", + "qualType" : "char[1024]", + "desugaredQualType" : "char[1024]" + }, { + "@type" : "AstFieldDecl", + "offset" : 31373, + "name" : "puSearchInputIsActive", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 31421, + "name" : "Clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 31474, + "name" : "DrawSearchBar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 31508, + "name" : "vFileDialogInternal", + "qualType" : "FileDialogInternal &", + "desugaredQualType" : "FileDialogInternal &" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 31939, + "name" : "Utils", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 31572, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 31572, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 31572, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "offset" : 31693, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "offset" : 31814, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 31966, + "name" : "PathStruct", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 31996, + "name" : "path", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 32017, + "name" : "name", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 32038, + "name" : "ext", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 32051, + "name" : "isOk", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 32094, + "name" : "Splitter", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 32108, + "name" : "split_vertically", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32132, + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32150, + "name" : "size1", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32164, + "name" : "size2", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32177, + "name" : "min_size1", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32194, + "name" : "min_size2", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32211, + "name" : "splitter_long_axis_size", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 32259, + "name" : "ReplaceString", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 32286, + "name" : "str", + "qualType" : "int &", + "desugaredQualType" : "int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32310, + "name" : "oldStr", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32337, + "name" : "newStr", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 32360, + "name" : "IsDirectoryExist", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 32396, + "name" : "name", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 32417, + "name" : "CreateDirectoryIfNotExist", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 32462, + "name" : "name", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 32489, + "name" : "ParsePathFileName", + "resultType" : "PathStruct", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 32526, + "name" : "vPathFileName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 32556, + "name" : "AppendToBuffer", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 32577, + "name" : "vBuffer", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32593, + "name" : "vBufferLen", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32624, + "name" : "vStr", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 32645, + "name" : "ResetBuffer", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 32663, + "name" : "vBuffer", + "qualType" : "char *", + "desugaredQualType" : "char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 32687, + "name" : "SetBuffer", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 32703, + "name" : "vBuffer", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32719, + "name" : "vBufferLen", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32750, + "name" : "vStr", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 33164, + "name" : "SplitStringToVector", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 33203, + "name" : "text", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 33214, + "name" : "delimiter", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstParmVarDecl", + "offset" : 33230, + "name" : "pushEmpty", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 33276, + "name" : "GetDrivesList", + "resultType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 33669, + "name" : "FileStyle", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 33302, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 33302, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 33302, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "offset" : 33423, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "offset" : 33544, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 33700, + "name" : "color", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 33742, + "name" : "icon", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 33758, + "name" : "font", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstFieldDecl", + "offset" : 33796, + "name" : "flags", + "qualType" : "IGFD_FileStyleFlags", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 34337, + "name" : "FileInfos", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 33970, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 33970, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 33970, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "offset" : 34091, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "offset" : 34212, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 34355, + "name" : "FilterManager", + "decls" : [ { + "@type" : "AstRecordDecl", + "offset" : 34389, + "name" : "FilterInfos", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 34430, + "name" : "filter", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 34463, + "name" : "collectionfilters", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 34501, + "name" : "clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 34557, + "name" : "empty", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 34618, + "name" : "exist", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 34643, + "name" : "vFilter", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 34733, + "name" : "prParsedFilters", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 34920, + "name" : "prSelectedFilter", + "qualType" : "FilterInfos", + "desugaredQualType" : "IGFD::FilterManager::FilterInfos" + }, { + "@type" : "AstFieldDecl", + "offset" : 34962, + "name" : "puDLGFilters", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 34990, + "name" : "puDLGdefaultExt", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 35024, + "name" : "ParseFilters", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 35049, + "name" : "vFilters", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 35140, + "name" : "SetSelectedFilterWithExt", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 35184, + "name" : "vFilter", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 35231, + "name" : "prFillFileStyle", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 35274, + "name" : "vFileInfos", + "qualType" : "std::shared_ptr", + "desugaredQualType" : "std::shared_ptr" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 35340, + "name" : "SetFileStyle", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 35384, + "name" : "vFlags", + "qualType" : "const IGFD_FileStyleFlags &", + "desugaredQualType" : "const IGFD_FileStyleFlags &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 35407, + "name" : "vCriteria", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 35438, + "name" : "vInfos", + "qualType" : "const FileStyle &", + "desugaredQualType" : "const FileStyle &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 35488, + "name" : "SetFileStyle", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 35532, + "name" : "vFlags", + "qualType" : "const IGFD_FileStyleFlags &", + "desugaredQualType" : "const IGFD_FileStyleFlags &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 35555, + "name" : "vCriteria", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 35583, + "name" : "vColor", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 35613, + "name" : "vIcon", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 35631, + "name" : "vFont", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 35712, + "name" : "GetFileStyle", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 35756, + "name" : "vFlags", + "qualType" : "const IGFD_FileStyleFlags &", + "desugaredQualType" : "const IGFD_FileStyleFlags &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 35786, + "name" : "vCriteria", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 35808, + "name" : "vOutColor", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 35835, + "name" : "vOutIcon", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 35857, + "name" : "vOutFont", + "qualType" : "int **", + "desugaredQualType" : "int **" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 35927, + "name" : "ClearFilesStyle", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 35994, + "name" : "IsCoveredByFilters", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 36032, + "name" : "vTag", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 36135, + "name" : "DrawFilterComboBox", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 36174, + "name" : "vFileDialogInternal", + "qualType" : "FileDialogInternal &", + "desugaredQualType" : "FileDialogInternal &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 36247, + "name" : "GetSelectedFilter", + "resultType" : "FilterInfos" + }, { + "@type" : "AstFunctionDecl", + "offset" : 36333, + "name" : "ReplaceExtentionWithCurrentFilter", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 36386, + "name" : "vFile", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 36481, + "name" : "SetDefaultFilterIfNotDefined", + "resultType" : "void" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 36957, + "name" : "FileInfos", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 36590, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 36590, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 36590, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "offset" : 36711, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "offset" : 36832, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 36986, + "name" : "fileType", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "offset" : 37076, + "name" : "filePath", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 37127, + "name" : "fileNameExt", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 37222, + "name" : "fileNameExt_optimized", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 37306, + "name" : "fileExt", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 37356, + "name" : "fileSize", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstFieldDecl", + "offset" : 37417, + "name" : "formatedFileSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 37504, + "name" : "fileModifDate", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 37619, + "name" : "fileStyle", + "qualType" : "std::shared_ptr", + "desugaredQualType" : "std::shared_ptr" + }, { + "@type" : "AstFunctionDecl", + "offset" : 37815, + "name" : "IsTagFound", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 37845, + "name" : "vTag", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 38234, + "name" : "FileManager", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 37867, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 37867, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 37867, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "offset" : 37988, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "offset" : 38109, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 38280, + "name" : "SortingFieldEnum", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 38348, + "name" : "FIELD_NONE", + "docComment" : "no sorting preference, result indetermined haha..", + "qualType" : "IGFD::FileManager::SortingFieldEnum", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 38423, + "name" : "FIELD_FILENAME", + "docComment" : "sorted by filename", + "qualType" : "IGFD::FileManager::SortingFieldEnum", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 38467, + "name" : "FIELD_TYPE", + "docComment" : "sorted by filetype", + "qualType" : "IGFD::FileManager::SortingFieldEnum", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 38508, + "name" : "FIELD_SIZE", + "docComment" : "sorted by filesize (formated file size)", + "qualType" : "IGFD::FileManager::SortingFieldEnum", + "order" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 38570, + "name" : "FIELD_DATE", + "docComment" : "sorted by filedate", + "qualType" : "IGFD::FileManager::SortingFieldEnum", + "order" : 4 + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 38770, + "name" : "prCurrentPath", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 38886, + "name" : "prCurrentPathDecomposition", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 38973, + "name" : "prFileList", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 39049, + "name" : "prFilteredFileList", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 39132, + "name" : "prLastSelectedFileName", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 39217, + "name" : "prSelectedFileNames", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 39290, + "name" : "prCreateDirectoryMode", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 39377, + "name" : "puVariadicBuffer", + "qualType" : "char[1024]", + "desugaredQualType" : "char[1024]" + }, { + "@type" : "AstFieldDecl", + "offset" : 39468, + "name" : "puInputPathActivated", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 39544, + "name" : "puDrivesClicked", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 39625, + "name" : "puPathClicked", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 39705, + "name" : "puInputPathBuffer", + "qualType" : "char[1024]", + "desugaredQualType" : "char[1024]" + }, { + "@type" : "AstFieldDecl", + "offset" : 39844, + "name" : "puFileNameBuffer", + "qualType" : "char[1024]", + "desugaredQualType" : "char[1024]" + }, { + "@type" : "AstFieldDecl", + "offset" : 39963, + "name" : "puDirectoryNameBuffer", + "qualType" : "char[1024]", + "desugaredQualType" : "char[1024]" + }, { + "@type" : "AstFieldDecl", + "offset" : 40123, + "name" : "puHeaderFileName", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 40199, + "name" : "puHeaderFileType", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 40275, + "name" : "puHeaderFileSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 40351, + "name" : "puHeaderFileDate", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 40665, + "name" : "puSortingDirection", + "qualType" : "bool[4]", + "desugaredQualType" : "bool[4]" + }, { + "@type" : "AstFieldDecl", + "offset" : 40802, + "name" : "puSortingField", + "qualType" : "SortingFieldEnum", + "desugaredQualType" : "IGFD::FileManager::SortingFieldEnum" + }, { + "@type" : "AstFieldDecl", + "offset" : 40890, + "name" : "puShowDrives", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 40978, + "name" : "puDLGpath", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 41076, + "name" : "puDLGDefaultFileName", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 41195, + "name" : "puDLGcountSelectionMax", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstFieldDecl", + "offset" : 41329, + "name" : "puDLGDirectoryMode", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 41457, + "name" : "puFsRoot", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 41499, + "name" : "prRoundNumber", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 41520, + "name" : "vvalue", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "offset" : 41532, + "name" : "n", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 41593, + "name" : "prFormatFileSize", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 41617, + "name" : "vByteSize", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 41686, + "name" : "prOptimizeFilenameForSearchOperations", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 41743, + "name" : "vFileNameExt", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 41825, + "name" : "prCompleteFileInfos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 41879, + "name" : "FileInfos", + "qualType" : "const std::shared_ptr &", + "desugaredQualType" : "const std::shared_ptr &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 41958, + "name" : "prRemoveFileNameInSelection", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 42005, + "name" : "vFileName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 42066, + "name" : "prAddFileNameInSelection", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 42110, + "name" : "vFileName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 42126, + "name" : "vSetLastSelectionFileName", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 42192, + "name" : "AddFile", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 42226, + "name" : "vFileDialogInternal", + "qualType" : "const FileDialogInternal &", + "desugaredQualType" : "const FileDialogInternal &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 42270, + "name" : "vPath", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 42296, + "name" : "vFileName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 42319, + "name" : "vFileType", + "qualType" : "const char &", + "desugaredQualType" : "const char &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 42398, + "name" : "IsComposerEmpty", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 42426, + "name" : "GetComposerSize", + "resultType" : "size_t" + }, { + "@type" : "AstFunctionDecl", + "offset" : 42452, + "name" : "IsFileListEmpty", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 42478, + "name" : "IsFilteredListEmpty", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 42510, + "name" : "GetFullFileListSize", + "resultType" : "size_t" + }, { + "@type" : "AstFunctionDecl", + "offset" : 42562, + "name" : "GetFullFileAt", + "resultType" : "std::shared_ptr", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 42583, + "name" : "vIdx", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 42599, + "name" : "GetFilteredListSize", + "resultType" : "size_t" + }, { + "@type" : "AstFunctionDecl", + "offset" : 42651, + "name" : "GetFilteredFileAt", + "resultType" : "std::shared_ptr", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 42676, + "name" : "vIdx", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 42690, + "name" : "IsFileNameSelected", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 42728, + "name" : "vFileName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 42754, + "name" : "GetBack", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 42772, + "name" : "ClearComposer", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 42796, + "name" : "ClearFileLists", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 42891, + "name" : "ClearAll", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 42910, + "name" : "ApplyFilteringOnFileList", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 42961, + "name" : "vFileDialogInternal", + "qualType" : "const FileDialogInternal &", + "desugaredQualType" : "const FileDialogInternal &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 42990, + "name" : "OpenCurrentPath", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 43032, + "name" : "vFileDialogInternal", + "qualType" : "const FileDialogInternal &", + "desugaredQualType" : "const FileDialogInternal &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 43160, + "name" : "SortFields", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 43197, + "name" : "vFileDialogInternal", + "qualType" : "const FileDialogInternal &", + "desugaredQualType" : "const FileDialogInternal &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 43246, + "name" : "vSortingField", + "qualType" : "const SortingFieldEnum &", + "desugaredQualType" : "const SortingFieldEnum &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 43273, + "name" : "vCanChangeOrder", + "qualType" : "const bool &", + "desugaredQualType" : "const bool &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 43325, + "name" : "GetDrives", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 43399, + "name" : "CreateDir", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 43428, + "name" : "vPath", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 43497, + "name" : "ComposeNewPath", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 43547, + "name" : "vIter", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 43617, + "name" : "SetPathOnParentDirectoryIfAny", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 43714, + "name" : "GetCurrentPath", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 43779, + "name" : "SetCurrentPath", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 43813, + "name" : "vCurrentPath", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 43876, + "name" : "IsFileExist", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 43907, + "name" : "vFile", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 43922, + "name" : "SetDefaultFileName", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 43960, + "name" : "vFileName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 43979, + "name" : "SelectDirectory", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 44029, + "name" : "vInfos", + "qualType" : "const std::shared_ptr &", + "desugaredQualType" : "const std::shared_ptr &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 44073, + "name" : "SelectFileName", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 44114, + "name" : "vFileDialogInternal", + "qualType" : "const FileDialogInternal &", + "desugaredQualType" : "const FileDialogInternal &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 44173, + "name" : "vInfos", + "qualType" : "const std::shared_ptr &", + "desugaredQualType" : "const std::shared_ptr &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 44248, + "name" : "SetCurrentDir", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 44222, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 44222, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 44222, + "text" : "depend of dirent.h" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 44281, + "name" : "vPath", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 44345, + "name" : "ScanDir", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 44379, + "name" : "vFileDialogInternal", + "qualType" : "const FileDialogInternal &", + "desugaredQualType" : "const FileDialogInternal &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 44419, + "name" : "vPath", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 44502, + "name" : "GetResultingPath", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 44536, + "name" : "GetResultingFileName", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 44577, + "name" : "vFileDialogInternal", + "qualType" : "FileDialogInternal &", + "desugaredQualType" : "FileDialogInternal &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 44613, + "name" : "GetResultingFilePathName", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 44658, + "name" : "vFileDialogInternal", + "qualType" : "FileDialogInternal &", + "desugaredQualType" : "FileDialogInternal &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 44717, + "name" : "GetResultingSelection", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 44759, + "name" : "DrawDirectoryCreation", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 44807, + "name" : "vFileDialogInternal", + "qualType" : "const FileDialogInternal &", + "desugaredQualType" : "const FileDialogInternal &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 44875, + "name" : "DrawPathComposer", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 44918, + "name" : "vFileDialogInternal", + "qualType" : "const FileDialogInternal &", + "desugaredQualType" : "const FileDialogInternal &" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 45602, + "name" : "ThumbnailFeature", + "decls" : [ { + "@type" : "AstFunctionDecl", + "offset" : 45687, + "name" : "NewThumbnailFrame", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 45725, + "name" : "vFileDialogInternal", + "qualType" : "FileDialogInternal &", + "desugaredQualType" : "FileDialogInternal &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 45754, + "name" : "EndThumbnailFrame", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 45792, + "name" : "vFileDialogInternal", + "qualType" : "FileDialogInternal &", + "desugaredQualType" : "FileDialogInternal &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 45821, + "name" : "QuitThumbnailFrame", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 45860, + "name" : "vFileDialogInternal", + "qualType" : "FileDialogInternal &", + "desugaredQualType" : "FileDialogInternal &" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 48470, + "name" : "BookMarkFeature", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 48103, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 48103, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 48103, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "offset" : 48224, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "offset" : 48345, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 50052, + "name" : "KeyExplorerFeature", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 49993, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 49993, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 49993, + "text" : " file localization by input chat // widget flashing" + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 52396, + "name" : "FileDialogInternal", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 52441, + "name" : "puFileManager", + "qualType" : "FileManager", + "desugaredQualType" : "IGFD::FileManager" + }, { + "@type" : "AstFieldDecl", + "offset" : 52472, + "name" : "puFilterManager", + "qualType" : "FilterManager", + "desugaredQualType" : "IGFD::FilterManager" + }, { + "@type" : "AstFieldDecl", + "offset" : 52505, + "name" : "puSearchManager", + "qualType" : "SearchManager", + "desugaredQualType" : "IGFD::SearchManager" + }, { + "@type" : "AstFieldDecl", + "offset" : 52546, + "name" : "puName", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 52561, + "name" : "puShowDialog", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 52592, + "name" : "puDialogCenterPos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 52698, + "name" : "puLastImGuiFrameCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 52802, + "name" : "puFooterHeight", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 52832, + "name" : "puCanWeContinue", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 52887, + "name" : "puOkResultToConfirm", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 52969, + "name" : "puIsOk", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 52992, + "name" : "puFileInputIsActive", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 53092, + "name" : "puFileListViewIsActive", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 53178, + "name" : "puDLGkey", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 53202, + "name" : "puDLGtitle", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 53237, + "name" : "puDLGflags", + "qualType" : "ImGuiFileDialogFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 53289, + "name" : "puDLGuserDatas", + "qualType" : "UserDatas", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 53325, + "name" : "puDLGoptionsPane", + "qualType" : "PaneFun", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 53361, + "name" : "puDLGoptionsPaneWidth", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 53398, + "name" : "puDLGmodal", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 53425, + "name" : "puNeedToExitDialog", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 53461, + "name" : "puUseCustomLocale", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 53494, + "name" : "puLocaleCategory", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 53561, + "name" : "puLocaleBegin", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 53655, + "name" : "puLocaleEnd", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 53749, + "name" : "NewFrame", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 53835, + "name" : "EndFrame", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 53912, + "name" : "ResetForNewDialog", + "resultType" : "void" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 54375, + "name" : "FileDialog", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 54008, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 54008, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 54008, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "offset" : 54129, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "offset" : 54250, + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 54375, + "name" : "operator=", + "resultType" : "IGFD::FileDialog &" + }, { + "@type" : "AstFieldDecl", + "offset" : 54506, + "name" : "prFileDialogInternal", + "qualType" : "FileDialogInternal", + "desugaredQualType" : "IGFD::FileDialogInternal" + }, { + "@type" : "AstFieldDecl", + "offset" : 54547, + "name" : "prFileListClipper", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 54583, + "name" : "puAnyWindowsHovered", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 54710, + "name" : "Instance", + "resultType" : "FileDialog *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 55103, + "name" : "OpenDialog", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 55079, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 55079, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 55079, + "text" : " standard dialog" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 55206, + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55255, + "name" : "vTitle", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55294, + "name" : "vFilters", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55345, + "name" : "vPath", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55389, + "name" : "vFileName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55440, + "name" : "vCountSelectionMax", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55505, + "name" : "vUserDatas", + "qualType" : "UserDatas", + "desugaredQualType" : "void *", + "defaultValue" : "nullptr" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55598, + "name" : "vFlags", + "qualType" : "ImGuiFileDialogFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 55649, + "name" : "OpenDialog", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 55766, + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55815, + "name" : "vTitle", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55854, + "name" : "vFilters", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55905, + "name" : "vFilePathName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55999, + "name" : "vCountSelectionMax", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56064, + "name" : "vUserDatas", + "qualType" : "UserDatas", + "desugaredQualType" : "void *", + "defaultValue" : "nullptr" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56157, + "name" : "vFlags", + "qualType" : "ImGuiFileDialogFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 56223, + "name" : "OpenDialog", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 56205, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 56205, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 56205, + "text" : " with pane" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 56342, + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56391, + "name" : "vTitle", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56430, + "name" : "vFilters", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56481, + "name" : "vPath", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56525, + "name" : "vFileName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56580, + "name" : "vSidePane", + "qualType" : "const PaneFun &", + "desugaredQualType" : "const PaneFun &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56627, + "name" : "vSidePaneWidth", + "qualType" : "const float &", + "desugaredQualType" : "const float &", + "defaultValue" : "250.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56689, + "name" : "vCountSelectionMax", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56754, + "name" : "vUserDatas", + "qualType" : "UserDatas", + "desugaredQualType" : "void *", + "defaultValue" : "nullptr" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56847, + "name" : "vFlags", + "qualType" : "ImGuiFileDialogFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 56898, + "name" : "OpenDialog", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 57031, + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57080, + "name" : "vTitle", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57119, + "name" : "vFilters", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57170, + "name" : "vFilePathName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57268, + "name" : "vSidePane", + "qualType" : "const PaneFun &", + "desugaredQualType" : "const PaneFun &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57315, + "name" : "vSidePaneWidth", + "qualType" : "const float &", + "desugaredQualType" : "const float &", + "defaultValue" : "250.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57377, + "name" : "vCountSelectionMax", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57442, + "name" : "vUserDatas", + "qualType" : "UserDatas", + "desugaredQualType" : "void *", + "defaultValue" : "nullptr" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57535, + "name" : "vFlags", + "qualType" : "ImGuiFileDialogFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 57604, + "name" : "OpenModal", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 57583, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 57583, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 57583, + "text" : " modal dialog" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 57706, + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57755, + "name" : "vTitle", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57794, + "name" : "vFilters", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57845, + "name" : "vPath", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57889, + "name" : "vFileName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57940, + "name" : "vCountSelectionMax", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "offset" : 58005, + "name" : "vUserDatas", + "qualType" : "UserDatas", + "desugaredQualType" : "void *", + "defaultValue" : "nullptr" + }, { + "@type" : "AstParmVarDecl", + "offset" : 58098, + "name" : "vFlags", + "qualType" : "ImGuiFileDialogFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 58149, + "name" : "OpenModal", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 58265, + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 58314, + "name" : "vTitle", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 58353, + "name" : "vFilters", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 58404, + "name" : "vFilePathName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 58498, + "name" : "vCountSelectionMax", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "offset" : 58563, + "name" : "vUserDatas", + "qualType" : "UserDatas", + "desugaredQualType" : "void *", + "defaultValue" : "nullptr" + }, { + "@type" : "AstParmVarDecl", + "offset" : 58656, + "name" : "vFlags", + "qualType" : "ImGuiFileDialogFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 58722, + "name" : "OpenModal", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 58704, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 58704, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 58704, + "text" : " with pane" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 58854, + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 58903, + "name" : "vTitle", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 58942, + "name" : "vFilters", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 58993, + "name" : "vPath", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59037, + "name" : "vFileName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59092, + "name" : "vSidePane", + "qualType" : "const PaneFun &", + "desugaredQualType" : "const PaneFun &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59139, + "name" : "vSidePaneWidth", + "qualType" : "const float &", + "desugaredQualType" : "const float &", + "defaultValue" : "250.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59201, + "name" : "vCountSelectionMax", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59266, + "name" : "vUserDatas", + "qualType" : "UserDatas", + "desugaredQualType" : "void *", + "defaultValue" : "nullptr" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59359, + "name" : "vFlags", + "qualType" : "ImGuiFileDialogFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 59410, + "name" : "OpenModal", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 59542, + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59591, + "name" : "vTitle", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59630, + "name" : "vFilters", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59681, + "name" : "vFilePathName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59779, + "name" : "vSidePane", + "qualType" : "const PaneFun &", + "desugaredQualType" : "const PaneFun &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59826, + "name" : "vSidePaneWidth", + "qualType" : "const float &", + "desugaredQualType" : "const float &", + "defaultValue" : "250.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59888, + "name" : "vCountSelectionMax", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59953, + "name" : "vUserDatas", + "qualType" : "UserDatas", + "desugaredQualType" : "void *", + "defaultValue" : "nullptr" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60046, + "name" : "vFlags", + "qualType" : "ImGuiFileDialogFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 60130, + "name" : "Display", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 60094, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 60094, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 60094, + "text" : " Display / Close dialog form" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 60244, + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60369, + "name" : "vFlags", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60437, + "name" : "vMinSize", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60525, + "name" : "vMaxSize", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "ImVec2(FLT_MAX, FLT_MAX)" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 60618, + "name" : "Close", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 60675, + "name" : "WasOpenedThisFrame", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 60659, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 60659, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 60659, + "text" : " queries" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 60713, + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 60789, + "name" : "WasOpenedThisFrame", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 60881, + "name" : "IsOpened", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 60909, + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 60960, + "name" : "IsOpened", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 61042, + "name" : "GetOpenedKey", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 61163, + "name" : "IsOk", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 61144, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 61144, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 61144, + "text" : " get result" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 61307, + "name" : "GetSelection", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 61419, + "name" : "GetFilePathName", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 61574, + "name" : "GetCurrentFileName", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 61714, + "name" : "GetCurrentPath", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 61781, + "name" : "GetCurrentFilter", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 61851, + "name" : "GetUserDatas", + "resultType" : "UserDatas" + }, { + "@type" : "AstFunctionDecl", + "offset" : 61972, + "name" : "SetFileStyle", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 61939, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 61939, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 61939, + "text" : " file style by extentions" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 62096, + "name" : "vFlags", + "qualType" : "const IGFD_FileStyleFlags &", + "desugaredQualType" : "const IGFD_FileStyleFlags &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62138, + "name" : "vCriteria", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62205, + "name" : "vInfos", + "qualType" : "const FileStyle &", + "desugaredQualType" : "const FileStyle &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 62337, + "name" : "SetFileStyle", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 62461, + "name" : "vFlags", + "qualType" : "const IGFD_FileStyleFlags &", + "desugaredQualType" : "const IGFD_FileStyleFlags &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62504, + "name" : "vCriteria", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62568, + "name" : "vColor", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62672, + "name" : "vIcon", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62758, + "name" : "vFont", + "qualType" : "int *", + "desugaredQualType" : "int *", + "defaultValue" : "nullptr" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 62828, + "name" : "GetFileStyle", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 62936, + "name" : "vFlags", + "qualType" : "const IGFD_FileStyleFlags &", + "desugaredQualType" : "const IGFD_FileStyleFlags &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62986, + "name" : "vCriteria", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63072, + "name" : "vOutColor", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63129, + "name" : "vOutIcon", + "qualType" : "int *", + "desugaredQualType" : "int *", + "defaultValue" : "nullptr" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63203, + "name" : "vOutFont", + "qualType" : "int **", + "desugaredQualType" : "int **", + "defaultValue" : "nullptr" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 63277, + "name" : "ClearFilesStyle", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 63343, + "name" : "SetLocales", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 63437, + "name" : "vLocaleCategory", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63505, + "name" : "vLocaleBegin", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63597, + "name" : "vLocaleEnd", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 63686, + "name" : "NewFrame", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 63756, + "name" : "EndFrame", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 63821, + "name" : "QuitFrame", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 63903, + "name" : "prConfirm_Or_OpenOverWriteFileDialog_IfNeeded", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 63888, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 63888, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 63888, + "text" : " others" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 63958, + "name" : "vLastAction", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63988, + "name" : "vFlags", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 64143, + "name" : "prDrawHeader", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 64114, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 64114, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 64114, + "text" : " dialog parts" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 64271, + "name" : "prDrawContent", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 64383, + "name" : "prDrawFooter", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 64527, + "name" : "prDrawSidePane", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 64492, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 64492, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 64492, + "text" : " widgets components" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 64548, + "name" : "vHeight", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 64595, + "name" : "prSelectableItem", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 64616, + "name" : "vidx", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 64653, + "name" : "vInfos", + "qualType" : "std::shared_ptr", + "desugaredQualType" : "std::shared_ptr" + }, { + "@type" : "AstParmVarDecl", + "offset" : 64670, + "name" : "vSelected", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "offset" : 64693, + "name" : "vFmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 64766, + "name" : "prDrawFileListView", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 64792, + "name" : "vSize", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 65240, + "name" : "prBeginFileColorIconStyle", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 65085, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 65085, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 65085, + "text" : " to be called only by these function and theirs overrides" + }, { + "@type" : "AstTextComment", + "offset" : 65147, + "text" : " - prDrawFileListView" + }, { + "@type" : "AstTextComment", + "offset" : 65173, + "text" : " - prDrawThumbnailsListView" + }, { + "@type" : "AstTextComment", + "offset" : 65205, + "text" : " - prDrawThumbnailsGridView" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 65297, + "name" : "vFileInfos", + "qualType" : "std::shared_ptr", + "desugaredQualType" : "std::shared_ptr" + }, { + "@type" : "AstParmVarDecl", + "offset" : 65319, + "name" : "vOutShowColor", + "qualType" : "bool &", + "desugaredQualType" : "bool &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 65351, + "name" : "vOutStr", + "qualType" : "int &", + "desugaredQualType" : "int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 65373, + "name" : "vOutFont", + "qualType" : "int **", + "desugaredQualType" : "int **" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 65457, + "name" : "prEndFileColorIconStyle", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 65497, + "name" : "vShowColor", + "qualType" : "const bool &", + "desugaredQualType" : "const bool &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 65520, + "name" : "vFont", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 66917, + "name" : "IGFD_Selection_Pair", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 66465, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 66465, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 66465, + "text" : "/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "offset" : 66614, + "text" : "// C API ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "offset" : 66763, + "text" : "/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 66946, + "name" : "fileName", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "offset" : 66963, + "name" : "filePathName", + "qualType" : "char *", + "desugaredQualType" : "char *" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 67261, + "name" : "IGFD_Selection", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 67300, + "name" : "table", + "qualType" : "IGFD_Selection_Pair *", + "desugaredQualType" : "IGFD_Selection_Pair *" + }, { + "@type" : "AstFieldDecl", + "offset" : 67320, + "name" : "count", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + } ] +} \ No newline at end of file diff --git a/buildSrc/src/main/resources/generator/api/ast/ast-ImGuizmo.json b/buildSrc/src/main/resources/generator/api/ast/ast-ImGuizmo.json new file mode 100644 index 0000000..11672e1 --- /dev/null +++ b/buildSrc/src/main/resources/generator/api/ast/ast-ImGuizmo.json @@ -0,0 +1,779 @@ +{ + "info" : { + "source" : "include/imguizmo/ImGuizmo.h", + "hash" : "e4cff3bc8014e2bccae881f1b0535298", + "url" : "https://github.com/CedricGuillemet/ImGuizmo.git", + "revision" : "f7bbbe39971d9d45816417a70e9b53a0f698c56e" + }, + "decls" : [ { + "@type" : "AstNamespaceDecl", + "offset" : 4983, + "name" : "ImGuizmo", + "decls" : [ { + "@type" : "AstFunctionDecl", + "offset" : 5199, + "name" : "SetDrawlist", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 5001, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 5001, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 5001, + "text" : " call inside your own window and before Manipulate() in order to draw gizmo to that window." + }, { + "@type" : "AstTextComment", + "offset" : 5099, + "text" : " Or pass a specific ImDrawList to draw to (e.g. ImGui::GetForegroundDrawList())." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 5223, + "name" : "drawlist", + "qualType" : "int *", + "desugaredQualType" : "int *", + "defaultValue" : "=" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 5323, + "name" : "BeginFrame", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 5252, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 5252, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 5252, + "text" : " call BeginFrame right after ImGui_XXXX_NewFrame();" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 5687, + "name" : "SetImGuiContext", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 5345, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 5345, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 5345, + "text" : " this is necessary because when imguizmo is compiled into a dll, and imgui into another" + }, { + "@type" : "AstTextComment", + "offset" : 5439, + "text" : " globals are not shared between them." + }, { + "@type" : "AstTextComment", + "offset" : 5483, + "text" : " More details at https://stackoverflow.com/questions/19373061/what-happens-to-global-and-static-variables-in-a-shared-library-when-it-is-dynam" + }, { + "@type" : "AstTextComment", + "offset" : 5632, + "text" : " expose method to set imgui context" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 5717, + "name" : "ctx", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 5838, + "name" : "IsOver", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 5731, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 5731, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 5731, + "text" : " return true if mouse cursor is over any gizmo control (axis, plan or screen component)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 5939, + "name" : "IsUsing", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 5856, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 5856, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 5856, + "text" : " return true if mouse IsOver or if the gizmo is in moving state" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 6121, + "name" : "Enable", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 5958, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 5958, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 5958, + "text" : " enable/disable the gizmo. Stay in the state until next call to Enable." + }, { + "@type" : "AstTextComment", + "offset" : 6036, + "text" : " gizmo is rendered with gray half transparent color when disabled" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 6133, + "name" : "enable", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 6946, + "name" : "DecomposeMatrixToComponents", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 6150, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 6150, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 6150, + "text" : " helper functions for manualy editing translation/rotation/scale with an input float" + }, { + "@type" : "AstTextComment", + "offset" : 6241, + "text" : " translation, rotation and scale float points to 3 floats each" + }, { + "@type" : "AstTextComment", + "offset" : 6310, + "text" : " Angles are in degrees (more suitable for human editing)" + }, { + "@type" : "AstTextComment", + "offset" : 6373, + "text" : " example:" + }, { + "@type" : "AstTextComment", + "offset" : 6389, + "text" : " float matrixTranslation[3], matrixRotation[3], matrixScale[3];" + }, { + "@type" : "AstTextComment", + "offset" : 6459, + "text" : " ImGuizmo::DecomposeMatrixToComponents(gizmoMatrix.m16, matrixTranslation, matrixRotation, matrixScale);" + }, { + "@type" : "AstTextComment", + "offset" : 6570, + "text" : " ImGui::InputFloat3(\"Tr\", matrixTranslation, 3);" + }, { + "@type" : "AstTextComment", + "offset" : 6625, + "text" : " ImGui::InputFloat3(\"Rt\", matrixRotation, 3);" + }, { + "@type" : "AstTextComment", + "offset" : 6677, + "text" : " ImGui::InputFloat3(\"Sc\", matrixScale, 3);" + }, { + "@type" : "AstTextComment", + "offset" : 6726, + "text" : " ImGuizmo::RecomposeMatrixFromComponents(matrixTranslation, matrixRotation, matrixScale, gizmoMatrix.m16);" + } ] + }, { + "@type" : "AstParagraphComment", + "offset" : 6846, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 6846, + "text" : " These functions have some numerical stability issues for now. Use with caution." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 6987, + "name" : "matrix", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 7002, + "name" : "translation", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 7022, + "name" : "rotation", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 7039, + "name" : "scale", + "qualType" : "float *", + "desugaredQualType" : "float *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 7066, + "name" : "RecomposeMatrixFromComponents", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 7109, + "name" : "translation", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 7135, + "name" : "rotation", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 7158, + "name" : "scale", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 7172, + "name" : "matrix", + "qualType" : "float *", + "desugaredQualType" : "float *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 7202, + "name" : "SetRect", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 7216, + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 7225, + "name" : "y", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 7234, + "name" : "width", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 7247, + "name" : "height", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 7299, + "name" : "SetOrthographic", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 7262, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 7262, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 7262, + "text" : " default is false" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 7320, + "name" : "isOrthographic", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 7449, + "name" : "DrawCubes", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 7345, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 7345, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 7345, + "text" : " Render a cube with face color corresponding to face normal. Usefull for debug/tests" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 7472, + "name" : "view", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 7491, + "name" : "projection", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 7516, + "name" : "matrices", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 7530, + "name" : "matrixCount", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 7563, + "name" : "DrawGrid", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 7585, + "name" : "view", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 7604, + "name" : "projection", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 7629, + "name" : "matrix", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 7649, + "name" : "gridSize", + "qualType" : "const float", + "desugaredQualType" : "const float" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 7946, + "name" : "OPERATION", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 7668, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 7668, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 7668, + "text" : " call it when you want a gizmo" + }, { + "@type" : "AstTextComment", + "offset" : 7705, + "text" : " Needs view and projection matrices. " + }, { + "@type" : "AstTextComment", + "offset" : 7749, + "text" : " matrix parameter is the source matrix (where will be gizmo be drawn) and might be transformed by the function. Return deltaMatrix is optional" + }, { + "@type" : "AstTextComment", + "offset" : 7898, + "text" : " translation is applied in world space" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 7969, + "name" : "TRANSLATE_X", + "qualType" : "ImGuizmo::OPERATION", + "order" : 0, + "value" : "(1u << 0)", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8006, + "name" : "TRANSLATE_Y", + "qualType" : "ImGuizmo::OPERATION", + "order" : 1, + "value" : "(1u << 1)", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8043, + "name" : "TRANSLATE_Z", + "qualType" : "ImGuizmo::OPERATION", + "order" : 2, + "value" : "(1u << 2)", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8080, + "name" : "ROTATE_X", + "qualType" : "ImGuizmo::OPERATION", + "order" : 3, + "value" : "(1u << 3)", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8117, + "name" : "ROTATE_Y", + "qualType" : "ImGuizmo::OPERATION", + "order" : 4, + "value" : "(1u << 4)", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8154, + "name" : "ROTATE_Z", + "qualType" : "ImGuizmo::OPERATION", + "order" : 5, + "value" : "(1u << 5)", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8191, + "name" : "ROTATE_SCREEN", + "qualType" : "ImGuizmo::OPERATION", + "order" : 6, + "value" : "(1u << 6)", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8228, + "name" : "SCALE_X", + "qualType" : "ImGuizmo::OPERATION", + "order" : 7, + "value" : "(1u << 7)", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8265, + "name" : "SCALE_Y", + "qualType" : "ImGuizmo::OPERATION", + "order" : 8, + "value" : "(1u << 8)", + "evaluatedValue" : "256" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8302, + "name" : "SCALE_Z", + "qualType" : "ImGuizmo::OPERATION", + "order" : 9, + "value" : "(1u << 9)", + "evaluatedValue" : "512" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8339, + "name" : "BOUNDS", + "qualType" : "ImGuizmo::OPERATION", + "order" : 10, + "value" : "(1u << 10)", + "evaluatedValue" : "1024" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8377, + "name" : "TRANSLATE", + "qualType" : "ImGuizmo::OPERATION", + "order" : 11, + "value" : "TRANSLATE_X | TRANSLATE_Y | TRANSLATE_Z", + "evaluatedValue" : "7" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8437, + "name" : "ROTATE", + "qualType" : "ImGuizmo::OPERATION", + "order" : 12, + "value" : "ROTATE_X | ROTATE_Y | ROTATE_Z | ROTATE_SCREEN", + "evaluatedValue" : "120" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8501, + "name" : "SCALE", + "qualType" : "ImGuizmo::OPERATION", + "order" : 13, + "value" : "SCALE_X | SCALE_Y | SCALE_Z", + "evaluatedValue" : "896" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8567, + "name" : "operator|", + "resultType" : "OPERATION", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8587, + "name" : "lhs", + "qualType" : "OPERATION", + "desugaredQualType" : "ImGuizmo::OPERATION" + }, { + "@type" : "AstParmVarDecl", + "offset" : 8602, + "name" : "rhs", + "qualType" : "OPERATION", + "desugaredQualType" : "ImGuizmo::OPERATION" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 8714, + "name" : "MODE", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 8732, + "name" : "LOCAL", + "qualType" : "ImGuizmo::MODE", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8746, + "name" : "WORLD", + "qualType" : "ImGuizmo::MODE", + "order" : 1 + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8780, + "name" : "Manipulate", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8804, + "name" : "view", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 8823, + "name" : "projection", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 8845, + "name" : "operation", + "qualType" : "OPERATION", + "desugaredQualType" : "ImGuizmo::OPERATION" + }, { + "@type" : "AstParmVarDecl", + "offset" : 8861, + "name" : "mode", + "qualType" : "MODE", + "desugaredQualType" : "ImGuizmo::MODE" + }, { + "@type" : "AstParmVarDecl", + "offset" : 8874, + "name" : "matrix", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 8889, + "name" : "deltaMatrix", + "qualType" : "float *", + "desugaredQualType" : "float *", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "offset" : 8922, + "name" : "snap", + "qualType" : "const float *", + "desugaredQualType" : "const float *", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "offset" : 8948, + "name" : "localBounds", + "qualType" : "const float *", + "desugaredQualType" : "const float *", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "offset" : 8981, + "name" : "boundsSnap", + "qualType" : "const float *", + "desugaredQualType" : "const float *", + "defaultValue" : "=" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9338, + "name" : "ViewManipulate", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 9014, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 9014, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 9014, + "text" : " Please note that this cubeview is patented by Autodesk : https://patents.google.com/patent/US7782319B2/en" + }, { + "@type" : "AstTextComment", + "offset" : 9127, + "text" : " It seems to be a defensive patent in the US. I don't think it will bring troubles using it as" + }, { + "@type" : "AstTextComment", + "offset" : 9228, + "text" : " other software are using the same mechanics. But just in case, you are now warned!" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 9360, + "name" : "view", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9372, + "name" : "length", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9387, + "name" : "position", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9404, + "name" : "size", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9416, + "name" : "backgroundColor", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9455, + "name" : "SetID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9465, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9554, + "name" : "IsOver", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 9478, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 9478, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 9478, + "text" : " return true if the cursor is over the operation's gizmo" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 9571, + "name" : "op", + "qualType" : "OPERATION", + "desugaredQualType" : "ImGuizmo::OPERATION" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9595, + "name" : "SetGizmoSizeClipSpace", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9623, + "name" : "value", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9821, + "name" : "AllowAxisFlip", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 9639, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 9639, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 9639, + "text" : " Allow axis to flip" + }, { + "@type" : "AstTextComment", + "offset" : 9665, + "text" : " When true (default), the guizmo axis flip for better visibility" + }, { + "@type" : "AstTextComment", + "offset" : 9736, + "text" : " When false, they always stay along the positive world/local axis" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 9840, + "name" : "value", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + } ] + } ] +} \ No newline at end of file diff --git a/buildSrc/src/main/resources/generator/api/ast/ast-TextEditor.json b/buildSrc/src/main/resources/generator/api/ast/ast-TextEditor.json new file mode 100644 index 0000000..ba171a0 --- /dev/null +++ b/buildSrc/src/main/resources/generator/api/ast/ast-TextEditor.json @@ -0,0 +1,1826 @@ +{ + "info" : { + "source" : "include/ImGuiColorTextEdit/TextEditor.h", + "hash" : "1e5c6cd321f415c393ab30d4800a0dc2", + "url" : "https://github.com/BalazsJako/ImGuiColorTextEdit", + "revision" : "0a88824f7de8d0bd11d8419066caa7d3469395c4" + }, + "decls" : [ { + "@type" : "AstRecordDecl", + "offset" : 205, + "name" : "TextEditor", + "decls" : [ { + "@type" : "AstFunctionDecl", + "offset" : 205, + "name" : "operator=", + "resultType" : "TextEditor &" + }, { + "@type" : "AstEnumDecl", + "offset" : 241, + "name" : "PaletteIndex", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 261, + "name" : "Default", + "qualType" : "TextEditor::PaletteIndex", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 273, + "name" : "Keyword", + "qualType" : "TextEditor::PaletteIndex", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 285, + "name" : "Number", + "qualType" : "TextEditor::PaletteIndex", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 296, + "name" : "String", + "qualType" : "TextEditor::PaletteIndex", + "order" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 307, + "name" : "CharLiteral", + "qualType" : "TextEditor::PaletteIndex", + "order" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 323, + "name" : "Punctuation", + "qualType" : "TextEditor::PaletteIndex", + "order" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 339, + "name" : "Preprocessor", + "qualType" : "TextEditor::PaletteIndex", + "order" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 356, + "name" : "Identifier", + "qualType" : "TextEditor::PaletteIndex", + "order" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 371, + "name" : "KnownIdentifier", + "qualType" : "TextEditor::PaletteIndex", + "order" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 391, + "name" : "PreprocIdentifier", + "qualType" : "TextEditor::PaletteIndex", + "order" : 9 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 413, + "name" : "Comment", + "qualType" : "TextEditor::PaletteIndex", + "order" : 10 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 425, + "name" : "MultiLineComment", + "qualType" : "TextEditor::PaletteIndex", + "order" : 11 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 446, + "name" : "Background", + "qualType" : "TextEditor::PaletteIndex", + "order" : 12 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 461, + "name" : "Cursor", + "qualType" : "TextEditor::PaletteIndex", + "order" : 13 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 472, + "name" : "Selection", + "qualType" : "TextEditor::PaletteIndex", + "order" : 14 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 486, + "name" : "ErrorMarker", + "qualType" : "TextEditor::PaletteIndex", + "order" : 15 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 502, + "name" : "Breakpoint", + "qualType" : "TextEditor::PaletteIndex", + "order" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 517, + "name" : "LineNumber", + "qualType" : "TextEditor::PaletteIndex", + "order" : 17 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 532, + "name" : "CurrentLineFill", + "qualType" : "TextEditor::PaletteIndex", + "order" : 18 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 552, + "name" : "CurrentLineFillInactive", + "qualType" : "TextEditor::PaletteIndex", + "order" : 19 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 580, + "name" : "CurrentLineEdge", + "qualType" : "TextEditor::PaletteIndex", + "order" : 20 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 600, + "name" : "Max", + "qualType" : "TextEditor::PaletteIndex", + "order" : 21 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 624, + "name" : "SelectionMode", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 645, + "name" : "Normal", + "qualType" : "TextEditor::SelectionMode", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 656, + "name" : "Word", + "qualType" : "TextEditor::SelectionMode", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 665, + "name" : "Line", + "qualType" : "TextEditor::SelectionMode", + "order" : 2 + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 686, + "name" : "Breakpoint", + "decls" : [ { + "@type" : "AstFunctionDecl", + "offset" : 686, + "name" : "operator=", + "resultType" : "TextEditor::Breakpoint &" + }, { + "@type" : "AstFieldDecl", + "offset" : 708, + "name" : "mLine", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 723, + "name" : "mEnabled", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 748, + "name" : "mCondition", + "qualType" : "std::string", + "desugaredQualType" : "std::string" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 1357, + "name" : "Coordinates", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 833, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 833, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 833, + "text" : " Represents a character coordinate from the user's point of view," + }, { + "@type" : "AstTextComment", + "offset" : 903, + "text" : " i. e. consider an uniform grid (assuming fixed-width font) on the" + }, { + "@type" : "AstTextComment", + "offset" : 974, + "text" : " screen as it is rendered, and each cell has its own coordinate, starting from 0." + }, { + "@type" : "AstTextComment", + "offset" : 1060, + "text" : " Tabs are counted as [1..mTabSize] count empty spaces, depending on" + }, { + "@type" : "AstTextComment", + "offset" : 1132, + "text" : " how many space is necessary to reach the next tab stop." + }, { + "@type" : "AstTextComment", + "offset" : 1193, + "text" : " For example, coordinate (1, 5) represents the character 'B' in a line \"\\tABC\", when mTabSize = 4," + }, { + "@type" : "AstTextComment", + "offset" : 1296, + "text" : " because it is rendered as \" ABC\" on the screen." + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 1357, + "name" : "operator=", + "resultType" : "TextEditor::Coordinates &" + }, { + "@type" : "AstFieldDecl", + "offset" : 1380, + "name" : "mLine", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 1387, + "name" : "mColumn", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 1593, + "name" : "Invalid", + "resultType" : "Coordinates" + }, { + "@type" : "AstFunctionDecl", + "offset" : 1669, + "name" : "operator==", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 1700, + "name" : "o", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 1792, + "name" : "operator!=", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 1823, + "name" : "o", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 1915, + "name" : "operator<", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 1945, + "name" : "o", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 2061, + "name" : "operator>", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 2091, + "name" : "o", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 2207, + "name" : "operator<=", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 2238, + "name" : "o", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 2355, + "name" : "operator>=", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 2386, + "name" : "o", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 2509, + "name" : "Identifier", + "decls" : [ { + "@type" : "AstFunctionDecl", + "offset" : 2509, + "name" : "operator=", + "resultType" : "TextEditor::Identifier &" + }, { + "@type" : "AstFieldDecl", + "offset" : 2539, + "name" : "mLocation", + "qualType" : "Coordinates", + "desugaredQualType" : "TextEditor::Coordinates" + }, { + "@type" : "AstFieldDecl", + "offset" : 2565, + "name" : "mDeclaration", + "qualType" : "std::string", + "desugaredQualType" : "std::string" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 2934, + "name" : "Glyph", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 2952, + "name" : "mChar", + "qualType" : "Char", + "desugaredQualType" : "unsigned char" + }, { + "@type" : "AstFieldDecl", + "offset" : 2975, + "name" : "mColorIndex", + "qualType" : "PaletteIndex", + "desugaredQualType" : "TextEditor::PaletteIndex" + }, { + "@type" : "AstFieldDecl", + "offset" : 3020, + "name" : "mComment", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 3042, + "name" : "mMultiLineComment", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 3073, + "name" : "mPreprocessor", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 3342, + "name" : "LanguageDefinition", + "decls" : [ { + "@type" : "AstFunctionDecl", + "offset" : 3342, + "name" : "operator=", + "resultType" : "TextEditor::LanguageDefinition &" + }, { + "@type" : "AstFieldDecl", + "offset" : 3665, + "name" : "mName", + "qualType" : "std::string", + "desugaredQualType" : "std::string" + }, { + "@type" : "AstFieldDecl", + "offset" : 3684, + "name" : "mKeywords", + "qualType" : "Keywords", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 3710, + "name" : "mIdentifiers", + "qualType" : "Identifiers", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 3739, + "name" : "mPreprocIdentifiers", + "qualType" : "Identifiers", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 3775, + "name" : "mCommentStart", + "qualType" : "std::string", + "desugaredQualType" : "std::string" + }, { + "@type" : "AstFieldDecl", + "offset" : 3790, + "name" : "mCommentEnd", + "qualType" : "std::string", + "desugaredQualType" : "std::string" + }, { + "@type" : "AstFieldDecl", + "offset" : 3803, + "name" : "mSingleLineComment", + "qualType" : "std::string", + "desugaredQualType" : "std::string" + }, { + "@type" : "AstFieldDecl", + "offset" : 3831, + "name" : "mPreprocChar", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "offset" : 3853, + "name" : "mAutoIndentation", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 3893, + "name" : "mTokenize", + "qualType" : "TokenizeCallback", + "desugaredQualType" : "bool (*)(const char *, const char *, const char *&, const char *&, PaletteIndex &)" + }, { + "@type" : "AstFieldDecl", + "offset" : 3927, + "name" : "mTokenRegexStrings", + "qualType" : "TokenRegexStrings", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 3957, + "name" : "mCaseSensitive", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 4137, + "name" : "CPlusPlus", + "resultType" : "const LanguageDefinition &" + }, { + "@type" : "AstFunctionDecl", + "offset" : 4186, + "name" : "HLSL", + "resultType" : "const LanguageDefinition &" + }, { + "@type" : "AstFunctionDecl", + "offset" : 4230, + "name" : "GLSL", + "resultType" : "const LanguageDefinition &" + }, { + "@type" : "AstFunctionDecl", + "offset" : 4274, + "name" : "C", + "resultType" : "const LanguageDefinition &" + }, { + "@type" : "AstFunctionDecl", + "offset" : 4315, + "name" : "SQL", + "resultType" : "const LanguageDefinition &" + }, { + "@type" : "AstFunctionDecl", + "offset" : 4358, + "name" : "AngelScript", + "resultType" : "const LanguageDefinition &" + }, { + "@type" : "AstFunctionDecl", + "offset" : 4409, + "name" : "Lua", + "resultType" : "const LanguageDefinition &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 4465, + "name" : "SetLanguageDefinition", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 4513, + "name" : "aLanguageDef", + "qualType" : "const LanguageDefinition &", + "desugaredQualType" : "const LanguageDefinition &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 4556, + "name" : "GetLanguageDefinition", + "resultType" : "const LanguageDefinition &" + }, { + "@type" : "AstFunctionDecl", + "offset" : 4637, + "name" : "GetPalette", + "resultType" : "const Palette &" + }, { + "@type" : "AstFunctionDecl", + "offset" : 4688, + "name" : "SetPalette", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 4714, + "name" : "aValue", + "qualType" : "const Palette &", + "desugaredQualType" : "const Palette &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 4732, + "name" : "SetErrorMarkers", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 4768, + "name" : "aMarkers", + "qualType" : "const ErrorMarkers &", + "desugaredQualType" : "const ErrorMarkers &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 4815, + "name" : "SetBreakpoints", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 4849, + "name" : "aMarkers", + "qualType" : "const Breakpoints &", + "desugaredQualType" : "const Breakpoints &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 4897, + "name" : "Render", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 4916, + "name" : "aTitle", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 4938, + "name" : "aSize", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "ImVec2()" + }, { + "@type" : "AstParmVarDecl", + "offset" : 4961, + "name" : "aBorder", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 4986, + "name" : "SetText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 5013, + "name" : "aText", + "qualType" : "const std::string &", + "desugaredQualType" : "const std::string &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 5035, + "name" : "GetText", + "resultType" : "std::string" + }, { + "@type" : "AstFunctionDecl", + "offset" : 5061, + "name" : "SetTextLines", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 5106, + "name" : "aLines", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 5142, + "name" : "GetTextLines", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 5180, + "name" : "GetSelectedText", + "resultType" : "std::string" + }, { + "@type" : "AstFunctionDecl", + "offset" : 5219, + "name" : "GetCurrentLineText", + "resultType" : "std::string" + }, { + "@type" : "AstFunctionDecl", + "offset" : 5254, + "name" : "GetTotalLines", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 5314, + "name" : "IsOverwrite", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 5366, + "name" : "SetReadOnly", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 5383, + "name" : "aValue", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 5399, + "name" : "IsReadOnly", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 5447, + "name" : "IsTextChanged", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 5501, + "name" : "IsCursorPositionChanged", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 5577, + "name" : "IsColorizerEnabled", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 5641, + "name" : "SetColorizerEnable", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 5665, + "name" : "aValue", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 5690, + "name" : "GetCursorPosition", + "resultType" : "Coordinates" + }, { + "@type" : "AstFunctionDecl", + "offset" : 5764, + "name" : "SetCursorPosition", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 5801, + "name" : "aPosition", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 5829, + "name" : "SetHandleMouseInputs", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 5859, + "name" : "aValue", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 5915, + "name" : "IsHandleMouseInputsEnabled", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 6000, + "name" : "SetHandleKeyboardInputs", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 6030, + "name" : "aValue", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 6086, + "name" : "IsHandleKeyboardInputsEnabled", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 6174, + "name" : "SetImGuiChildIgnored", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 6204, + "name" : "aValue", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 6260, + "name" : "IsImGuiChildIgnored", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 6334, + "name" : "SetShowWhitespaces", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 6358, + "name" : "aValue", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 6411, + "name" : "IsShowingWhitespaces", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 6478, + "name" : "SetTabSize", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 6493, + "name" : "aValue", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 6515, + "name" : "GetTabSize", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 6564, + "name" : "InsertText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 6594, + "name" : "aValue", + "qualType" : "const std::string &", + "desugaredQualType" : "const std::string &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 6610, + "name" : "InsertText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 6633, + "name" : "aValue", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 6651, + "name" : "MoveUp", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 6662, + "name" : "aAmount", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "offset" : 6680, + "name" : "aSelect", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 6705, + "name" : "MoveDown", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 6718, + "name" : "aAmount", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "offset" : 6736, + "name" : "aSelect", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 6761, + "name" : "MoveLeft", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 6774, + "name" : "aAmount", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "offset" : 6792, + "name" : "aSelect", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + }, { + "@type" : "AstParmVarDecl", + "offset" : 6814, + "name" : "aWordMode", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 6841, + "name" : "MoveRight", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 6855, + "name" : "aAmount", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "offset" : 6873, + "name" : "aSelect", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + }, { + "@type" : "AstParmVarDecl", + "offset" : 6895, + "name" : "aWordMode", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 6922, + "name" : "MoveTop", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 6935, + "name" : "aSelect", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 6960, + "name" : "MoveBottom", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 6976, + "name" : "aSelect", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 7001, + "name" : "MoveHome", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 7015, + "name" : "aSelect", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 7040, + "name" : "MoveEnd", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 7053, + "name" : "aSelect", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 7080, + "name" : "SetSelectionStart", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 7117, + "name" : "aPosition", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 7136, + "name" : "SetSelectionEnd", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 7171, + "name" : "aPosition", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 7190, + "name" : "SetSelection", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 7222, + "name" : "aStart", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 7249, + "name" : "aEnd", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 7269, + "name" : "aMode", + "qualType" : "SelectionMode", + "desugaredQualType" : "TextEditor::SelectionMode", + "defaultValue" : "SelectionMode::Normal" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 7308, + "name" : "SelectWordUnderCursor", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 7340, + "name" : "SelectAll", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 7360, + "name" : "HasSelection", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 7391, + "name" : "Copy", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 7406, + "name" : "Cut", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 7420, + "name" : "Paste", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 7436, + "name" : "Delete", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 7455, + "name" : "CanUndo", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 7479, + "name" : "CanRedo", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 7503, + "name" : "Undo", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 7512, + "name" : "aSteps", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 7532, + "name" : "Redo", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 7541, + "name" : "aSteps", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 7580, + "name" : "GetDarkPalette", + "resultType" : "const Palette &" + }, { + "@type" : "AstFunctionDecl", + "offset" : 7622, + "name" : "GetLightPalette", + "resultType" : "const Palette &" + }, { + "@type" : "AstFunctionDecl", + "offset" : 7665, + "name" : "GetRetroBluePalette", + "resultType" : "const Palette &" + }, { + "@type" : "AstRecordDecl", + "offset" : 7781, + "name" : "EditorState", + "decls" : [ { + "@type" : "AstFunctionDecl", + "offset" : 7781, + "name" : "operator=", + "resultType" : "TextEditor::EditorState &" + }, { + "@type" : "AstFieldDecl", + "offset" : 7812, + "name" : "mSelectionStart", + "qualType" : "Coordinates", + "desugaredQualType" : "TextEditor::Coordinates" + }, { + "@type" : "AstFieldDecl", + "offset" : 7844, + "name" : "mSelectionEnd", + "qualType" : "Coordinates", + "desugaredQualType" : "TextEditor::Coordinates" + }, { + "@type" : "AstFieldDecl", + "offset" : 7874, + "name" : "mCursorPosition", + "qualType" : "Coordinates", + "desugaredQualType" : "TextEditor::Coordinates" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 7906, + "name" : "UndoRecord", + "decls" : [ { + "@type" : "AstFunctionDecl", + "offset" : 7906, + "name" : "operator=", + "resultType" : "TextEditor::UndoRecord &" + }, { + "@type" : "AstFunctionDecl", + "offset" : 8329, + "name" : "Undo", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8346, + "name" : "aEditor", + "qualType" : "TextEditor *", + "desugaredQualType" : "TextEditor *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8364, + "name" : "Redo", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8381, + "name" : "aEditor", + "qualType" : "TextEditor *", + "desugaredQualType" : "TextEditor *" + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 8408, + "name" : "mAdded", + "qualType" : "std::string", + "desugaredQualType" : "std::string" + }, { + "@type" : "AstFieldDecl", + "offset" : 8431, + "name" : "mAddedStart", + "qualType" : "Coordinates", + "desugaredQualType" : "TextEditor::Coordinates" + }, { + "@type" : "AstFieldDecl", + "offset" : 8459, + "name" : "mAddedEnd", + "qualType" : "Coordinates", + "desugaredQualType" : "TextEditor::Coordinates" + }, { + "@type" : "AstFieldDecl", + "offset" : 8487, + "name" : "mRemoved", + "qualType" : "std::string", + "desugaredQualType" : "std::string" + }, { + "@type" : "AstFieldDecl", + "offset" : 8512, + "name" : "mRemovedStart", + "qualType" : "Coordinates", + "desugaredQualType" : "TextEditor::Coordinates" + }, { + "@type" : "AstFieldDecl", + "offset" : 8542, + "name" : "mRemovedEnd", + "qualType" : "Coordinates", + "desugaredQualType" : "TextEditor::Coordinates" + }, { + "@type" : "AstFieldDecl", + "offset" : 8572, + "name" : "mBefore", + "qualType" : "EditorState", + "desugaredQualType" : "TextEditor::EditorState" + }, { + "@type" : "AstFieldDecl", + "offset" : 8596, + "name" : "mAfter", + "qualType" : "EditorState", + "desugaredQualType" : "TextEditor::EditorState" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8666, + "name" : "ProcessInputs", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 8690, + "name" : "Colorize", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8703, + "name" : "aFromLine", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 8722, + "name" : "aCount", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8743, + "name" : "ColorizeRange", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8761, + "name" : "aFromLine", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 8780, + "name" : "aToLine", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8801, + "name" : "ColorizeInternal", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 8829, + "name" : "TextDistanceToLineStart", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8872, + "name" : "aFrom", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8893, + "name" : "EnsureCursorVisible", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 8922, + "name" : "GetPageSize", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 8957, + "name" : "GetText", + "resultType" : "std::string", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8984, + "name" : "aStart", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9011, + "name" : "aEnd", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9038, + "name" : "GetActualCursorCoordinates", + "resultType" : "Coordinates" + }, { + "@type" : "AstFunctionDecl", + "offset" : 9088, + "name" : "SanitizeCoordinates", + "resultType" : "Coordinates", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9127, + "name" : "aValue", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9149, + "name" : "Advance", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9170, + "name" : "aCoordinates", + "qualType" : "Coordinates &", + "desugaredQualType" : "Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9198, + "name" : "DeleteRange", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9229, + "name" : "aStart", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9256, + "name" : "aEnd", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9269, + "name" : "InsertTextAt", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9295, + "name" : "aWhere", + "qualType" : "Coordinates &", + "desugaredQualType" : "Coordinates &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9315, + "name" : "aValue", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9331, + "name" : "AddUndo", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9351, + "name" : "aValue", + "qualType" : "UndoRecord &", + "desugaredQualType" : "UndoRecord &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9374, + "name" : "ScreenPosToCoordinates", + "resultType" : "Coordinates", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9411, + "name" : "aPosition", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9443, + "name" : "FindWordStart", + "resultType" : "Coordinates", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9476, + "name" : "aFrom", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9504, + "name" : "FindWordEnd", + "resultType" : "Coordinates", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9535, + "name" : "aFrom", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9563, + "name" : "FindNextWord", + "resultType" : "Coordinates", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9595, + "name" : "aFrom", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9615, + "name" : "GetCharacterIndex", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9652, + "name" : "aCoordinates", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9679, + "name" : "GetCharacterColumn", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9702, + "name" : "aLine", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9713, + "name" : "aIndex", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9734, + "name" : "GetLineCharacterCount", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9760, + "name" : "aLine", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9780, + "name" : "GetLineMaxColumn", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9801, + "name" : "aLine", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9822, + "name" : "IsOnWordBoundary", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9858, + "name" : "aAt", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9877, + "name" : "RemoveLine", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9892, + "name" : "aStart", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9904, + "name" : "aEnd", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9918, + "name" : "RemoveLine", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9933, + "name" : "aIndex", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9950, + "name" : "InsertLine", + "resultType" : "Line &", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9965, + "name" : "aIndex", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9981, + "name" : "EnterCharacter", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 10004, + "name" : "aChar", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 10016, + "name" : "aShift", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 10032, + "name" : "Backspace", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 10052, + "name" : "DeleteSelection", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 10085, + "name" : "GetWordUnderCursor", + "resultType" : "std::string" + }, { + "@type" : "AstFunctionDecl", + "offset" : 10127, + "name" : "GetWordAt", + "resultType" : "std::string", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 10156, + "name" : "aCoords", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 10180, + "name" : "GetGlyphColor", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 10207, + "name" : "aGlyph", + "qualType" : "const Glyph &", + "desugaredQualType" : "const Glyph &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 10231, + "name" : "HandleKeyboardInputs", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 10262, + "name" : "HandleMouseInputs", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 10290, + "name" : "Render", + "resultType" : "void" + }, { + "@type" : "AstFieldDecl", + "offset" : 10310, + "name" : "mLineSpacing", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 10332, + "name" : "mLines", + "qualType" : "Lines", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 10354, + "name" : "mState", + "qualType" : "EditorState", + "desugaredQualType" : "TextEditor::EditorState" + }, { + "@type" : "AstFieldDecl", + "offset" : 10375, + "name" : "mUndoBuffer", + "qualType" : "UndoBuffer", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 10394, + "name" : "mUndoIndex", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 10414, + "name" : "mTabSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 10431, + "name" : "mOverwrite", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 10450, + "name" : "mReadOnly", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 10468, + "name" : "mWithinRender", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 10490, + "name" : "mScrollToCursor", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 10514, + "name" : "mScrollToTop", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 10535, + "name" : "mTextChanged", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 10556, + "name" : "mColorizerEnabled", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 10583, + "name" : "mTextStart", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 10709, + "name" : "mLeftMargin", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 10729, + "name" : "mCursorPositionChanged", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 10759, + "name" : "mColorRangeMin", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 10775, + "name" : "mColorRangeMax", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 10807, + "name" : "mSelectionMode", + "qualType" : "SelectionMode", + "desugaredQualType" : "TextEditor::SelectionMode" + }, { + "@type" : "AstFieldDecl", + "offset" : 10830, + "name" : "mHandleKeyboardInputs", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 10860, + "name" : "mHandleMouseInputs", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 10887, + "name" : "mIgnoreImGuiChild", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 10913, + "name" : "mShowWhitespaces", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 10943, + "name" : "mPaletteBase", + "qualType" : "Palette", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 10967, + "name" : "mPalette", + "qualType" : "Palette", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 10998, + "name" : "mLanguageDefinition", + "qualType" : "LanguageDefinition", + "desugaredQualType" : "TextEditor::LanguageDefinition" + }, { + "@type" : "AstFieldDecl", + "offset" : 11031, + "name" : "mRegexList", + "qualType" : "RegexList", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 11052, + "name" : "mCheckComments", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 11082, + "name" : "mBreakpoints", + "qualType" : "Breakpoints", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 11111, + "name" : "mErrorMarkers", + "qualType" : "ErrorMarkers", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 11135, + "name" : "mCharAdvance", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 11163, + "name" : "mInteractiveStart", + "qualType" : "Coordinates", + "desugaredQualType" : "TextEditor::Coordinates" + }, { + "@type" : "AstFieldDecl", + "offset" : 11182, + "name" : "mInteractiveEnd", + "qualType" : "Coordinates", + "desugaredQualType" : "TextEditor::Coordinates" + }, { + "@type" : "AstFieldDecl", + "offset" : 11213, + "name" : "mLineBuffer", + "qualType" : "std::string", + "desugaredQualType" : "std::string" + }, { + "@type" : "AstFieldDecl", + "offset" : 11237, + "name" : "mStartTime", + "qualType" : "uint64_t", + "desugaredQualType" : "unsigned long long" + }, { + "@type" : "AstFieldDecl", + "offset" : 11259, + "name" : "mLastClick", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + } ] +} \ No newline at end of file diff --git a/buildSrc/src/main/resources/generator/api/ast/ast-imgui-knobs.json b/buildSrc/src/main/resources/generator/api/ast/ast-imgui-knobs.json new file mode 100644 index 0000000..44ff9da --- /dev/null +++ b/buildSrc/src/main/resources/generator/api/ast/ast-imgui-knobs.json @@ -0,0 +1,279 @@ +{ + "info" : { + "source" : "include/imgui-knobs/imgui-knobs.h", + "hash" : "1f637f21a158aff7116bdb283dc83d46", + "url" : "https://github.com/altschuler/imgui-knobs", + "revision" : "4f207526f9ef036a0aff7edfaad92cfbe12d987a" + }, + "decls" : [ { + "@type" : "AstEnumDecl", + "offset" : 87, + "name" : "ImGuiKnobFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 109, + "name" : "ImGuiKnobFlags_NoTitle", + "qualType" : "ImGuiKnobFlags_", + "order" : 0, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 146, + "name" : "ImGuiKnobFlags_NoInput", + "qualType" : "ImGuiKnobFlags_", + "order" : 1, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 183, + "name" : "ImGuiKnobFlags_ValueTooltip", + "qualType" : "ImGuiKnobFlags_", + "order" : 2, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 225, + "name" : "ImGuiKnobFlags_DragHorizontal", + "qualType" : "ImGuiKnobFlags_", + "order" : 3, + "value" : "1 << 3", + "evaluatedValue" : "8" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 305, + "name" : "ImGuiKnobVariant_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 329, + "name" : "ImGuiKnobVariant_Tick", + "qualType" : "ImGuiKnobVariant_", + "order" : 0, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 365, + "name" : "ImGuiKnobVariant_Dot", + "qualType" : "ImGuiKnobVariant_", + "order" : 1, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 400, + "name" : "ImGuiKnobVariant_Wiper", + "qualType" : "ImGuiKnobVariant_", + "order" : 2, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 437, + "name" : "ImGuiKnobVariant_WiperOnly", + "qualType" : "ImGuiKnobVariant_", + "order" : 3, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 478, + "name" : "ImGuiKnobVariant_WiperDot", + "qualType" : "ImGuiKnobVariant_", + "order" : 4, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 518, + "name" : "ImGuiKnobVariant_Stepped", + "qualType" : "ImGuiKnobVariant_", + "order" : 5, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 557, + "name" : "ImGuiKnobVariant_Space", + "qualType" : "ImGuiKnobVariant_", + "order" : 6, + "value" : "1 << 6", + "evaluatedValue" : "64" + } ] + }, { + "@type" : "AstNamespaceDecl", + "offset" : 604, + "name" : "ImGuiKnobs", + "decls" : [ { + "@type" : "AstRecordDecl", + "offset" : 629, + "name" : "color_set", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 657, + "name" : "base", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 679, + "name" : "hovered", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 704, + "name" : "active", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 974, + "name" : "Knob", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 991, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 1005, + "name" : "p_value", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 1020, + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 1033, + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 1046, + "name" : "speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 1069, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 1101, + "name" : "variant", + "qualType" : "ImGuiKnobVariant", + "desugaredQualType" : "int", + "defaultValue" : "ImGuiKnobVariant_Tick" + }, { + "@type" : "AstParmVarDecl", + "offset" : 1140, + "name" : "size", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 1165, + "name" : "flags", + "qualType" : "ImGuiKnobFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 1180, + "name" : "steps", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "10" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 1202, + "name" : "KnobInt", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 1222, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 1234, + "name" : "p_value", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 1247, + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 1258, + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 1271, + "name" : "speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 1294, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 1326, + "name" : "variant", + "qualType" : "ImGuiKnobVariant", + "desugaredQualType" : "int", + "defaultValue" : "ImGuiKnobVariant_Tick" + }, { + "@type" : "AstParmVarDecl", + "offset" : 1365, + "name" : "size", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 1390, + "name" : "flags", + "qualType" : "ImGuiKnobFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 1405, + "name" : "steps", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "10" + } ] + } ] + } ] +} \ No newline at end of file diff --git a/buildSrc/src/main/resources/generator/api/ast/ast-imgui.json b/buildSrc/src/main/resources/generator/api/ast/ast-imgui.json new file mode 100644 index 0000000..0c9d8fa --- /dev/null +++ b/buildSrc/src/main/resources/generator/api/ast/ast-imgui.json @@ -0,0 +1,21411 @@ +{ + "info" : { + "source" : "include/imgui/imgui.h", + "hash" : "97ead8252e026205d9bf9540a0106e96", + "url" : "https://github.com/ocornut/imgui", + "revision" : "15b4a064f9244c430e65214f7249b615fb394321" + }, + "decls" : [ { + "@type" : "AstRecordDecl", + "offset" : 7326, + "name" : "ImDrawChannel", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 7297, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 7297, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 7297, + "text" : " Forward declarations" + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 19276, + "name" : "ImVec2", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 19021, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 19021, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 19021, + "text" : " ImVec2: 2D vector used to store positions, sizes etc. [Compile-time configurable type]" + }, { + "@type" : "AstTextComment", + "offset" : 19111, + "text" : " This is a frequently used type in the API. Consider using IM_VEC2_CLASS_EXTRA to create implicit cast from/to our preferred type." + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 19276, + "name" : "operator=", + "resultType" : "ImVec2 &" + }, { + "@type" : "AstFieldDecl", + "offset" : 19329, + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 19332, + "name" : "y", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFunctionDecl", + "offset" : 19472, + "name" : "operator[]", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 19491, + "name" : "idx", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 19631, + "name" : "operator[]", + "resultType" : "float &", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 19650, + "name" : "idx", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 20091, + "name" : "ImVec4", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 19985, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 19985, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 19985, + "text" : " ImVec4: 4D vector used to store clipping rectangles, colors etc. [Compile-time configurable type]" + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 20091, + "name" : "operator=", + "resultType" : "ImVec4 &" + }, { + "@type" : "AstFieldDecl", + "offset" : 20152, + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 20155, + "name" : "y", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 20158, + "name" : "z", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 20161, + "name" : "w", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstNamespaceDecl", + "offset" : 20928, + "name" : "ImGui", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 20567, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 20567, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 20567, + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "offset" : 20647, + "text" : " [SECTION] Dear ImGui end-user API functions" + }, { + "@type" : "AstTextComment", + "offset" : 20694, + "text" : " (Note that ImGui:: being a namespace, you can add extra ImGui:: functions in your own separate file. Please don't modify imgui source files!)" + }, { + "@type" : "AstTextComment", + "offset" : 20839, + "text" : "-----------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 21436, + "name" : "CreateContext", + "resultType" : "ImGuiContext *", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 20942, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 20942, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 20942, + "text" : " Context creation and access" + }, { + "@type" : "AstTextComment", + "offset" : 20977, + "text" : " - Each context create its own ImFontAtlas by default. You may instance one yourself and pass it to CreateContext() to share a font atlas between contexts." + }, { + "@type" : "AstTextComment", + "offset" : 21139, + "text" : " - DLL users: heaps and globals are not shared across DLL boundaries! You will need to call SetCurrentContext() + SetAllocatorFunctions()" + }, { + "@type" : "AstTextComment", + "offset" : 21283, + "text" : " for each static/DLL boundary you are calling from. Read \"Context and Memory Allocators\" section of imgui.cpp for details." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 21463, + "name" : "shared_font_atlas", + "qualType" : "ImFontAtlas *", + "desugaredQualType" : "ImFontAtlas *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 21518, + "name" : "DestroyContext", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 21547, + "name" : "ctx", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 21624, + "name" : "GetCurrentContext", + "resultType" : "ImGuiContext *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 21673, + "name" : "SetCurrentContext", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 21705, + "name" : "ctx", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 21752, + "name" : "GetIO", + "resultType" : "ImGuiIO &", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 21718, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 21718, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 21718, + "text" : " Main" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 21926, + "name" : "GetStyle", + "resultType" : "ImGuiStyle &" + }, { + "@type" : "AstFunctionDecl", + "offset" : 22114, + "name" : "NewFrame", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 22289, + "name" : "EndFrame", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 22653, + "name" : "Render", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 22816, + "name" : "GetDrawData", + "resultType" : "ImDrawData *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 23017, + "name" : "ShowDemoWindow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 22963, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 22963, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 22963, + "text" : " Demo, Debug, Information" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 23038, + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 23236, + "name" : "ShowMetricsWindow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 23260, + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 23426, + "name" : "ShowStackToolWindow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 23452, + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 23608, + "name" : "ShowAboutWindow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 23630, + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 23770, + "name" : "ShowStyleEditor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 23798, + "name" : "ref", + "qualType" : "ImGuiStyle *", + "desugaredQualType" : "ImGuiStyle *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 24003, + "name" : "ShowStyleSelector", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 24033, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 24167, + "name" : "ShowFontSelector", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 24196, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 24328, + "name" : "ShowUserGuide", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 24510, + "name" : "GetVersion", + "resultType" : "const char *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 24729, + "name" : "StyleColorsDark", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 24693, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 24693, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 24693, + "text" : " Styles" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 24757, + "name" : "dst", + "qualType" : "ImGuiStyle *", + "desugaredQualType" : "ImGuiStyle *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 24837, + "name" : "StyleColorsLight", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 24866, + "name" : "dst", + "qualType" : "ImGuiStyle *", + "desugaredQualType" : "ImGuiStyle *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 24962, + "name" : "StyleColorsClassic", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 24993, + "name" : "dst", + "qualType" : "ImGuiStyle *", + "desugaredQualType" : "ImGuiStyle *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 26266, + "name" : "Begin", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 25036, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 25036, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 25036, + "text" : " Windows" + }, { + "@type" : "AstTextComment", + "offset" : 25051, + "text" : " - Begin() = push window to the stack and start appending to it. End() = pop window from the stack." + }, { + "@type" : "AstTextComment", + "offset" : 25157, + "text" : " - Passing 'bool* p_open != NULL' shows a window-closing widget in the upper-right corner of the window," + }, { + "@type" : "AstTextComment", + "offset" : 25268, + "text" : " which clicking will set the boolean to false when clicked." + }, { + "@type" : "AstTextComment", + "offset" : 25336, + "text" : " - You may append multiple times to the same window during the same frame by calling Begin()/End() pairs multiple times." + }, { + "@type" : "AstTextComment", + "offset" : 25463, + "text" : " Some information such as 'flags' or 'p_open' will only be considered by the first call to Begin()." + }, { + "@type" : "AstTextComment", + "offset" : 25571, + "text" : " - Begin() return false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting" + }, { + "@type" : "AstTextComment", + "offset" : 25696, + "text" : " anything to the window. Always call a matching End() for each Begin() call, regardless of its return value!" + }, { + "@type" : "AstTextComment", + "offset" : 25813, + "text" : " [Important: due to legacy reason, this is inconsistent with most other functions such as BeginMenu/EndMenu," + }, { + "@type" : "AstTextComment", + "offset" : 25930, + "text" : " BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding BeginXXX function" + }, { + "@type" : "AstTextComment", + "offset" : 26049, + "text" : " returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.]" + }, { + "@type" : "AstTextComment", + "offset" : 26157, + "text" : " - Note that the bottom of window stack always contains a window called \"Debug\"." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 26284, + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 26296, + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 26328, + "name" : "flags", + "qualType" : "ImGuiWindowFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 26368, + "name" : "End", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 27401, + "name" : "BeginChild", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 26382, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 26382, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 26382, + "text" : " Child Windows" + }, { + "@type" : "AstTextComment", + "offset" : 26403, + "text" : " - Use child windows to begin into a self-contained independent scrolling/clipping regions within a host window. Child windows can embed their own child." + }, { + "@type" : "AstTextComment", + "offset" : 26563, + "text" : " - For each independent axis of 'size': ==0.0f: use remaining host window size / >0.0f: fixed size / " + }, { + "@type" : "AstTextComment", + "offset" : 26664, + "text" : "<" + }, { + "@type" : "AstTextComment", + "offset" : 26665, + "text" : "0.0f: use remaining window size minus abs(size) / Each axis can use a different mode, e.g. ImVec2(0,400)." + }, { + "@type" : "AstTextComment", + "offset" : 26777, + "text" : " - BeginChild() returns false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting anything to the window." + }, { + "@type" : "AstTextComment", + "offset" : 26932, + "text" : " Always call a matching EndChild() for each BeginChild() call, regardless of its return value." + }, { + "@type" : "AstTextComment", + "offset" : 27035, + "text" : " [Important: due to legacy reason, this is inconsistent with most other functions such as BeginMenu/EndMenu," + }, { + "@type" : "AstTextComment", + "offset" : 27152, + "text" : " BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding BeginXXX function" + }, { + "@type" : "AstTextComment", + "offset" : 27271, + "text" : " returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.]" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 27424, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 27446, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 27472, + "name" : "border", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + }, { + "@type" : "AstParmVarDecl", + "offset" : 27505, + "name" : "flags", + "qualType" : "ImGuiWindowFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 27545, + "name" : "BeginChild", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 27564, + "name" : "id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 27582, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 27608, + "name" : "border", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + }, { + "@type" : "AstParmVarDecl", + "offset" : 27641, + "name" : "flags", + "qualType" : "ImGuiWindowFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 27681, + "name" : "EndChild", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 27894, + "name" : "IsWindowAppearing", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 27700, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 27700, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 27700, + "text" : " Windows Utilities" + }, { + "@type" : "AstTextComment", + "offset" : 27725, + "text" : " - 'current window' = the window we are appending into while inside a Begin()/End() block. 'next window' = next window we will Begin() into." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 27943, + "name" : "IsWindowCollapsed", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 27992, + "name" : "IsWindowFocused", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 28026, + "name" : "flags", + "qualType" : "ImGuiFocusedFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 28156, + "name" : "IsWindowHovered", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 28190, + "name" : "flags", + "qualType" : "ImGuiHoveredFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 28503, + "name" : "GetWindowDrawList", + "resultType" : "ImDrawList *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 28664, + "name" : "GetWindowDpiScale", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "offset" : 28808, + "name" : "GetWindowPos", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "offset" : 28992, + "name" : "GetWindowSize", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "offset" : 29091, + "name" : "GetWindowWidth", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "offset" : 29224, + "name" : "GetWindowHeight", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "offset" : 29358, + "name" : "GetWindowViewport", + "resultType" : "ImGuiViewport *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 29620, + "name" : "SetNextWindowPos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 29469, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 29469, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 29469, + "text" : " Window manipulation" + }, { + "@type" : "AstTextComment", + "offset" : 29496, + "text" : " - Prefer using SetNextXXX functions (before Begin) rather that SetXXX functions (after Begin)." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 29651, + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 29666, + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 29690, + "name" : "pivot", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 29844, + "name" : "SetNextWindowSize", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 29876, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 29892, + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 30045, + "name" : "SetNextWindowSizeConstraints", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 30088, + "name" : "size_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 30112, + "name" : "size_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 30140, + "name" : "custom_callback", + "qualType" : "ImGuiSizeCallback", + "desugaredQualType" : "void (*)(ImGuiSizeCallbackData *)", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 30170, + "name" : "custom_callback_data", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 30407, + "name" : "SetNextWindowContentSize", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 30446, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 30753, + "name" : "SetNextWindowCollapsed", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 30781, + "name" : "collapsed", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "offset" : 30802, + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 30913, + "name" : "SetNextWindowFocus", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 31082, + "name" : "SetNextWindowBgAlpha", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 31109, + "name" : "alpha", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 31361, + "name" : "SetNextWindowViewport", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 31391, + "name" : "viewport_id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 31493, + "name" : "SetWindowPos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 31520, + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 31535, + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 31752, + "name" : "SetWindowSize", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 31780, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 31796, + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 32056, + "name" : "SetWindowCollapsed", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 32080, + "name" : "collapsed", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32101, + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 32256, + "name" : "SetWindowFocus", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 32461, + "name" : "SetWindowFontScale", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 32486, + "name" : "scale", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 32770, + "name" : "SetWindowPos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 32795, + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32815, + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32830, + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 32904, + "name" : "SetWindowSize", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 32930, + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32950, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32966, + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 33086, + "name" : "SetWindowCollapsed", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 33117, + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 33128, + "name" : "collapsed", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "offset" : 33149, + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 33226, + "name" : "SetWindowFocus", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 33253, + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 33698, + "name" : "GetContentRegionAvail", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 33381, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 33381, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 33381, + "text" : " Content region" + }, { + "@type" : "AstTextComment", + "offset" : 33403, + "text" : " - Retrieve available space from a given point. GetContentRegionAvail() is frequently useful." + }, { + "@type" : "AstTextComment", + "offset" : 33503, + "text" : " - Those functions are bound to be redesigned (they are confusing, incomplete and the Min/Max return values are in local window coordinates which increases confusion)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 33835, + "name" : "GetContentRegionMax", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "offset" : 34061, + "name" : "GetWindowContentRegionMin", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "offset" : 34245, + "name" : "GetWindowContentRegionMax", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "offset" : 34519, + "name" : "GetScrollX", + "resultType" : "float", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 34472, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 34472, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 34472, + "text" : " Windows Scrolling" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 34658, + "name" : "GetScrollY", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "offset" : 34797, + "name" : "SetScrollX", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 34814, + "name" : "scroll_x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 34936, + "name" : "SetScrollY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 34953, + "name" : "scroll_y", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 35075, + "name" : "GetScrollMaxX", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "offset" : 35251, + "name" : "GetScrollMaxY", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "offset" : 35427, + "name" : "SetScrollHereX", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 35448, + "name" : "center_x_ratio", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.5f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 35737, + "name" : "SetScrollHereY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 35758, + "name" : "center_y_ratio", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.5f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 36047, + "name" : "SetScrollFromPosX", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 36071, + "name" : "local_x", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 36086, + "name" : "center_x_ratio", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.5f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 36266, + "name" : "SetScrollFromPosY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 36290, + "name" : "local_y", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 36305, + "name" : "center_y_ratio", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.5f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 36520, + "name" : "PushFont", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 36464, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 36464, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 36464, + "text" : " Parameters stacks (shared)" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 36537, + "name" : "font", + "qualType" : "ImFont *", + "desugaredQualType" : "ImFont *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 36659, + "name" : "PopFont", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 36698, + "name" : "PushStyleColor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 36722, + "name" : "idx", + "qualType" : "ImGuiCol", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 36733, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 36873, + "name" : "PushStyleColor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 36897, + "name" : "idx", + "qualType" : "ImGuiCol", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 36916, + "name" : "col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 36950, + "name" : "PopStyleColor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 36968, + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 37008, + "name" : "PushStyleVar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 37035, + "name" : "idx", + "qualType" : "ImGuiStyleVar", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 37046, + "name" : "val", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 37192, + "name" : "PushStyleVar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 37219, + "name" : "idx", + "qualType" : "ImGuiStyleVar", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 37238, + "name" : "val", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 37377, + "name" : "PopStyleVar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 37393, + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 37433, + "name" : "PushAllowKeyboardFocus", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 37461, + "name" : "allow_keyboard_focus", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 37646, + "name" : "PopAllowKeyboardFocus", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 37699, + "name" : "PushButtonRepeat", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 37721, + "name" : "repeat", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 38036, + "name" : "PopButtonRepeat", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 38126, + "name" : "PushItemWidth", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 38062, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 38062, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 38062, + "text" : " Parameters stacks (current window)" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 38146, + "name" : "item_width", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 38401, + "name" : "PopItemWidth", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 38445, + "name" : "SetNextItemWidth", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 38468, + "name" : "item_width", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 38718, + "name" : "CalcItemWidth", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "offset" : 38947, + "name" : "PushTextWrapPos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 38969, + "name" : "wrap_local_pos_x", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 39214, + "name" : "PopTextWrapPos", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 39387, + "name" : "GetFont", + "resultType" : "ImFont *", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 39239, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 39239, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 39239, + "text" : " Style read access" + }, { + "@type" : "AstTextComment", + "offset" : 39264, + "text" : " - Use the style editor (ShowStyleEditor() function) to interactively see what the colors are)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 39499, + "name" : "GetFontSize", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "offset" : 39680, + "name" : "GetFontTexUvWhitePixel", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "offset" : 39864, + "name" : "GetColorU32", + "resultType" : "ImU32", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 39885, + "name" : "idx", + "qualType" : "ImGuiCol", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 39896, + "name" : "alpha_mul", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 40097, + "name" : "GetColorU32", + "resultType" : "ImU32", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 40123, + "name" : "col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 40288, + "name" : "GetColorU32", + "resultType" : "ImU32", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 40306, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 40479, + "name" : "GetStyleColorVec4", + "resultType" : "const ImVec4 &", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 40506, + "name" : "idx", + "qualType" : "ImGuiCol", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 41501, + "name" : "Separator", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 40723, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 40723, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 40723, + "text" : " Cursor / Layout" + }, { + "@type" : "AstTextComment", + "offset" : 40746, + "text" : " - By \"cursor\" we mean the current output position." + }, { + "@type" : "AstTextComment", + "offset" : 40804, + "text" : " - The typical widget behavior is to output themselves at the current cursor position, then move the cursor one line down." + }, { + "@type" : "AstTextComment", + "offset" : 40933, + "text" : " - You can call SameLine() between widgets to undo the last carriage return and output at the right of the preceding widget." + }, { + "@type" : "AstTextComment", + "offset" : 41064, + "text" : " - Attention! We currently have inconsistencies between window-local and absolute positions we will aim to fix with future API:" + }, { + "@type" : "AstTextComment", + "offset" : 41198, + "text" : " Window-local coordinates: SameLine(), GetCursorPos(), SetCursorPos(), GetCursorStartPos(), GetContentRegionMax(), GetWindowContentRegion*(), PushTextWrapPos()" + }, { + "@type" : "AstTextComment", + "offset" : 41369, + "text" : " Absolute coordinate: GetCursorScreenPos(), SetCursorScreenPos(), all ImDrawList:: functions." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 41712, + "name" : "SameLine", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 41727, + "name" : "offset_from_start_x", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 41759, + "name" : "spacing", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 41907, + "name" : "NewLine", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 42078, + "name" : "Spacing", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 42195, + "name" : "Dummy", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 42215, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 42405, + "name" : "Indent", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 42418, + "name" : "indent_w", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 42593, + "name" : "Unindent", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 42608, + "name" : "indent_w", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 42781, + "name" : "BeginGroup", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 42910, + "name" : "EndGroup", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 43190, + "name" : "GetCursorPos", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "offset" : 43353, + "name" : "GetCursorPosX", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "offset" : 43597, + "name" : "GetCursorPosY", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "offset" : 43768, + "name" : "SetCursorPos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 43795, + "name" : "local_pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 43914, + "name" : "SetCursorPosX", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 43934, + "name" : "local_x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 44074, + "name" : "SetCursorPosY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 44094, + "name" : "local_y", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 44169, + "name" : "GetCursorStartPos", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "offset" : 44310, + "name" : "GetCursorScreenPos", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "offset" : 44653, + "name" : "SetCursorScreenPos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 44686, + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 44788, + "name" : "AlignTextToFramePadding", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 45053, + "name" : "GetTextLineHeight", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "offset" : 45159, + "name" : "GetTextLineHeightWithSpacing", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "offset" : 45344, + "name" : "GetFrameHeight", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "offset" : 45477, + "name" : "GetFrameHeightWithSpacing", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "offset" : 46687, + "name" : "PushID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 45678, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 45678, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 45678, + "text" : " ID stack/scopes" + }, { + "@type" : "AstTextComment", + "offset" : 45701, + "text" : " Read the FAQ (docs/FAQ.md or http://dearimgui.org/faq) for more details about how ID are handled in dear imgui." + }, { + "@type" : "AstTextComment", + "offset" : 45820, + "text" : " - Those questions are answered and impacted by understanding of the ID stack system:" + }, { + "@type" : "AstTextComment", + "offset" : 45912, + "text" : " - \"Q: Why is my widget not reacting when I click on it?\"" + }, { + "@type" : "AstTextComment", + "offset" : 45978, + "text" : " - \"Q: How can I have widgets with an empty label?\"" + }, { + "@type" : "AstTextComment", + "offset" : 46038, + "text" : " - \"Q: How can I have multiple widgets with the same label?\"" + }, { + "@type" : "AstTextComment", + "offset" : 46107, + "text" : " - Short version: ID are hashes of the entire ID stack. If you are creating widgets in a loop you most likely" + }, { + "@type" : "AstTextComment", + "offset" : 46223, + "text" : " want to push a unique identifier (e.g. object pointer, loop index) to uniquely differentiate them." + }, { + "@type" : "AstTextComment", + "offset" : 46331, + "text" : " - You can also use the \"Label##foobar\" syntax within widget label to distinguish them from each others." + }, { + "@type" : "AstTextComment", + "offset" : 46442, + "text" : " - In this header file we use the \"label\"/\"name\" terminology to denote a string that will be displayed + used as an ID," + }, { + "@type" : "AstTextComment", + "offset" : 46568, + "text" : " whereas \"str_id\" denote a string that is only used as an ID and not normally displayed." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 46706, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 46832, + "name" : "PushID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 46851, + "name" : "str_id_begin", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 46877, + "name" : "str_id_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 46977, + "name" : "PushID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 46996, + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 47124, + "name" : "PushID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 47135, + "name" : "int_id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 47271, + "name" : "PopID", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 47389, + "name" : "GetID", + "resultType" : "ImGuiID", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 47407, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 47601, + "name" : "GetID", + "resultType" : "ImGuiID", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 47619, + "name" : "str_id_begin", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 47645, + "name" : "str_id_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 47686, + "name" : "GetID", + "resultType" : "ImGuiID", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 47704, + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 47763, + "name" : "TextUnformatted", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 47720, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 47720, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 47720, + "text" : " Widgets: Text" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 47791, + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 47809, + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 48101, + "name" : "Text", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 48118, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 48165, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 48226, + "name" : "TextV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 48244, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 48257, + "name" : "args", + "qualType" : "__va_list_tag *", + "desugaredQualType" : "__va_list_tag *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 48290, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 48333, + "name" : "TextColored", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 48359, + "name" : "col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 48376, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 48397, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 48525, + "name" : "TextColoredV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 48552, + "name" : "col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 48569, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 48582, + "name" : "args", + "qualType" : "__va_list_tag *", + "desugaredQualType" : "__va_list_tag *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 48589, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 48632, + "name" : "TextDisabled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 48657, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 48696, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 48856, + "name" : "TextDisabledV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 48882, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 48895, + "name" : "args", + "qualType" : "__va_list_tag *", + "desugaredQualType" : "__va_list_tag *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 48920, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 48963, + "name" : "TextWrapped", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 48987, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 49027, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 49307, + "name" : "TextWrappedV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 49332, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 49345, + "name" : "args", + "qualType" : "__va_list_tag *", + "desugaredQualType" : "__va_list_tag *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 49371, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 49414, + "name" : "LabelText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 49436, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 49455, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 49478, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 49587, + "name" : "LabelTextV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 49610, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 49629, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 49642, + "name" : "args", + "qualType" : "__va_list_tag *", + "desugaredQualType" : "__va_list_tag *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 49651, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 49694, + "name" : "BulletText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 49717, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 49758, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 49833, + "name" : "BulletTextV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 49857, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 49870, + "name" : "args", + "qualType" : "__va_list_tag *", + "desugaredQualType" : "__va_list_tag *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 49897, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 50179, + "name" : "Button", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 49919, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 49919, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 49919, + "text" : " Widgets: Main" + }, { + "@type" : "AstTextComment", + "offset" : 49940, + "text" : " - Most widgets return true when the value has been changed or when pressed/selected" + }, { + "@type" : "AstTextComment", + "offset" : 50031, + "text" : " - You may also use one of the many IsItemXXX functions (e.g. IsItemActive, IsItemHovered, etc.) to query widget state." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 50198, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 50219, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 50281, + "name" : "SmallButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 50305, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 50435, + "name" : "InvisibleButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 50463, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 50485, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 50508, + "name" : "flags", + "qualType" : "ImGuiButtonFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 50709, + "name" : "ArrowButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 50733, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 50750, + "name" : "dir", + "qualType" : "ImGuiDir", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 50838, + "name" : "Image", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 50856, + "name" : "user_texture_id", + "qualType" : "ImTextureID", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 50887, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 50907, + "name" : "uv0", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 50941, + "name" : "uv1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(1,1)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 50974, + "name" : "tint_col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &", + "defaultValue" : "ImVec4(1,1,1,1)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 51016, + "name" : "border_col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &", + "defaultValue" : "ImVec4(0,0,0,0)" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 51075, + "name" : "ImageButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 51099, + "name" : "user_texture_id", + "qualType" : "ImTextureID", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 51130, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 51150, + "name" : "uv0", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 51185, + "name" : "uv1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(1,1)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 51208, + "name" : "frame_padding", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + }, { + "@type" : "AstParmVarDecl", + "offset" : 51242, + "name" : "bg_col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &", + "defaultValue" : "ImVec4(0,0,0,0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 51282, + "name" : "tint_col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &", + "defaultValue" : "ImVec4(1,1,1,1)" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 51416, + "name" : "Checkbox", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 51437, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 51450, + "name" : "v", + "qualType" : "bool *", + "desugaredQualType" : "bool *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 51482, + "name" : "CheckboxFlags", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 51508, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 51520, + "name" : "flags", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 51531, + "name" : "flags_value", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 51573, + "name" : "CheckboxFlags", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 51599, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 51620, + "name" : "flags", + "qualType" : "unsigned int *", + "desugaredQualType" : "unsigned int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 51640, + "name" : "flags_value", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 51682, + "name" : "RadioButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 51706, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 51718, + "name" : "active", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 51846, + "name" : "RadioButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 51870, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 51882, + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 51889, + "name" : "v_button", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 52003, + "name" : "ProgressBar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 52021, + "name" : "fraction", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 52045, + "name" : "size_arg", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(-FLT_MIN, 0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 52089, + "name" : "overlay", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 52134, + "name" : "Bullet", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 52725, + "name" : "BeginCombo", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 52357, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 52357, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 52357, + "text" : " Widgets: Combo Box" + }, { + "@type" : "AstTextComment", + "offset" : 52383, + "text" : " - The BeginCombo()/EndCombo() api allows you to manage your contents and selection state however you want it, by creating e.g. Selectable() items." + }, { + "@type" : "AstTextComment", + "offset" : 52537, + "text" : " - The old Combo() api are helpers over BeginCombo()/EndCombo() which are kept available for convenience purpose. This is analogous to how ListBox are created." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 52748, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 52767, + "name" : "preview_value", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 52798, + "name" : "flags", + "qualType" : "ImGuiComboFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 52838, + "name" : "EndCombo", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 52932, + "name" : "Combo", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 52950, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 52962, + "name" : "current_item", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 52994, + "name" : "items", + "qualType" : "const char *const *", + "desugaredQualType" : "const char *const *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 53007, + "name" : "items_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 53024, + "name" : "popup_max_height_in_items", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 53085, + "name" : "Combo", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 53103, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 53115, + "name" : "current_item", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 53141, + "name" : "items_separated_by_zeros", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 53171, + "name" : "popup_max_height_in_items", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 53330, + "name" : "Combo", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 53348, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 53360, + "name" : "current_item", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 53380, + "name" : "items_getter", + "qualType" : "bool (*)(void *, int, const char **)", + "desugaredQualType" : "bool (*)(void *, int, const char **)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 53445, + "name" : "data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 53455, + "name" : "items_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 53472, + "name" : "popup_max_height_in_items", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 55344, + "name" : "DragFloat", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 53512, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 53512, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 53512, + "text" : " Widgets: Drag Sliders" + }, { + "@type" : "AstTextComment", + "offset" : 53541, + "text" : " - CTRL+Click on any drag box to turn them into an input box. Manually input values aren't clamped by default and can go off-bounds. Use ImGuiSliderFlags_AlwaysClamp to always clamp." + }, { + "@type" : "AstTextComment", + "offset" : 53730, + "text" : " - For all the Float2/Float3/Float4/Int2/Int3/Int4 versions of every functions, note that a 'float v[X]' function argument is the same as 'float* v', the array syntax is just a way to document the number of elements that are expected to be accessible. You can pass address of your first element out of a contiguous set, e.g. " + }, { + "@type" : "AstTextComment", + "offset" : 54055, + "text" : "&myvector" + }, { + "@type" : "AstTextComment", + "offset" : 54064, + "text" : ".x" + }, { + "@type" : "AstTextComment", + "offset" : 54073, + "text" : " - Adjust format string to decorate the value with a prefix, a suffix, or adapt the editing and display precision e.g. \"%.3f\" -> 1.234; \"%5.2f secs\" -> 01.23 secs; \"Biscuit: %.0f\" -> Biscuit: 1; etc." + }, { + "@type" : "AstTextComment", + "offset" : 54279, + "text" : " - Format string may also be set to NULL or use the default format (\"%f\" or \"%d\")." + }, { + "@type" : "AstTextComment", + "offset" : 54368, + "text" : " - Speed are per-pixel of mouse movement (v_speed=0.2f: mouse needs to move by 5 pixels to increase value by 1). For gamepad/keyboard navigation, minimum speed is Max(v_speed, minimum_step_at_given_precision)." + }, { + "@type" : "AstTextComment", + "offset" : 54584, + "text" : " - Use v_min " + }, { + "@type" : "AstTextComment", + "offset" : 54597, + "text" : "<" + }, { + "@type" : "AstTextComment", + "offset" : 54598, + "text" : " v_max to clamp edits to given limits. Note that CTRL+Click manual input can override those limits if ImGuiSliderFlags_AlwaysClamp is not used." + }, { + "@type" : "AstTextComment", + "offset" : 54748, + "text" : " - Use v_max = FLT_MAX / INT_MAX etc to avoid clamping to a maximum, same with v_min = -FLT_MAX / INT_MIN to avoid clamping to a minimum." + }, { + "@type" : "AstTextComment", + "offset" : 54892, + "text" : " - We use the same sets of flags for DragXXX() and SliderXXX() functions as the features are the same and it makes it easier to swap them." + }, { + "@type" : "AstTextComment", + "offset" : 55037, + "text" : " - Legacy: Pre-1.78 there are DragXXX() function signatures that takes a final `float power=1.0f' argument instead of the `ImGuiSliderFlags flags=0' argument." + }, { + "@type" : "AstTextComment", + "offset" : 55202, + "text" : " If you get a warning converting a float to ImGuiSliderFlags, read https://github.com/ocornut/imgui/issues/3361" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 55366, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55380, + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55389, + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55411, + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55431, + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55457, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55491, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 55573, + "name" : "DragFloat2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 55596, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55609, + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55621, + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55643, + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55663, + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55689, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55723, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 55763, + "name" : "DragFloat3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 55786, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55799, + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55811, + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55833, + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55853, + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55879, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55913, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 55953, + "name" : "DragFloat4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 55976, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55989, + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56001, + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56023, + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56043, + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56069, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56103, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 56143, + "name" : "DragFloatRange2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 56171, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56185, + "name" : "v_current_min", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56207, + "name" : "v_current_max", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56228, + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56250, + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56270, + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56296, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56325, + "name" : "format_max", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56361, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 56401, + "name" : "DragInt", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 56421, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56433, + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56442, + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56462, + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56477, + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56500, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%d\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56532, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 56611, + "name" : "DragInt2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 56632, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56643, + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56655, + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56675, + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56690, + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56713, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%d\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56745, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 56785, + "name" : "DragInt3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 56806, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56817, + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56829, + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56849, + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56864, + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56887, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%d\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56919, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 56959, + "name" : "DragInt4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 56980, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 56991, + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57003, + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57023, + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57038, + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57061, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%d\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57093, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 57133, + "name" : "DragIntRange2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 57159, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57171, + "name" : "v_current_min", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57191, + "name" : "v_current_max", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57212, + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57232, + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57247, + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57270, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%d\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57297, + "name" : "format_max", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57333, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 57373, + "name" : "DragScalar", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 57396, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57417, + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57434, + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57448, + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57476, + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57502, + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57528, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57560, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 57600, + "name" : "DragScalarN", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 57624, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57645, + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57662, + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57674, + "name" : "components", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57692, + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57720, + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57746, + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57772, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57804, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 58646, + "name" : "SliderFloat", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 57823, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 57823, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 57823, + "text" : " Widgets: Regular Sliders" + }, { + "@type" : "AstTextComment", + "offset" : 57855, + "text" : " - CTRL+Click on any slider to turn them into an input box. Manually input values aren't clamped by default and can go off-bounds. Use ImGuiSliderFlags_AlwaysClamp to always clamp." + }, { + "@type" : "AstTextComment", + "offset" : 58042, + "text" : " - Adjust format string to decorate the value with a prefix, a suffix, or adapt the editing and display precision e.g. \"%.3f\" -> 1.234; \"%5.2f secs\" -> 01.23 secs; \"Biscuit: %.0f\" -> Biscuit: 1; etc." + }, { + "@type" : "AstTextComment", + "offset" : 58248, + "text" : " - Format string may also be set to NULL or use the default format (\"%f\" or \"%d\")." + }, { + "@type" : "AstTextComment", + "offset" : 58337, + "text" : " - Legacy: Pre-1.78 there are SliderXXX() function signatures that takes a final `float power=1.0f' argument instead of the `ImGuiSliderFlags flags=0' argument." + }, { + "@type" : "AstTextComment", + "offset" : 58504, + "text" : " If you get a warning converting a float to ImGuiSliderFlags, read https://github.com/ocornut/imgui/issues/3361" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 58670, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 58684, + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 58693, + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 58706, + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 58725, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 58759, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 58906, + "name" : "SliderFloat2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 58931, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 58944, + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 58956, + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 58969, + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 58988, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59022, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 59062, + "name" : "SliderFloat3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 59087, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59100, + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59112, + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59125, + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59144, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59178, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 59218, + "name" : "SliderFloat4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 59243, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59256, + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59268, + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59281, + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59300, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59334, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 59374, + "name" : "SliderAngle", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 59398, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59412, + "name" : "v_rad", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59425, + "name" : "v_degrees_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-360.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59456, + "name" : "v_degrees_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "+360.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59493, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.0f deg\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59531, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 59571, + "name" : "SliderInt", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 59593, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59605, + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59612, + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59623, + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59642, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%d\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59674, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 59714, + "name" : "SliderInt2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 59737, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59748, + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59758, + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59769, + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59788, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%d\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59820, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 59860, + "name" : "SliderInt3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 59883, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59894, + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59904, + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59915, + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59934, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%d\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59966, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 60006, + "name" : "SliderInt4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 60029, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60040, + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60050, + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60061, + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60080, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%d\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60112, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 60152, + "name" : "SliderScalar", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 60177, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60198, + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60215, + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60235, + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60254, + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60273, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60305, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 60345, + "name" : "SliderScalarN", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 60371, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60392, + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60409, + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60421, + "name" : "components", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60445, + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60464, + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60483, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60515, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 60555, + "name" : "VSliderFloat", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 60580, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60601, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60614, + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60623, + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60636, + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60655, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60689, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 60729, + "name" : "VSliderInt", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 60752, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60773, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60784, + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60791, + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60802, + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60821, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%d\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60853, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 60893, + "name" : "VSliderScalar", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 60919, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60940, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60960, + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60977, + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60997, + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 61016, + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 61035, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 61067, + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 61428, + "name" : "InputText", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 61086, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 61086, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 61086, + "text" : " Widgets: Input with Keyboard" + }, { + "@type" : "AstTextComment", + "offset" : 61122, + "text" : " - If you want to use InputText() with std::string or any custom dynamic string type, see misc/cpp/imgui_stdlib.h and comments in imgui_demo.cpp." + }, { + "@type" : "AstTextComment", + "offset" : 61274, + "text" : " - Most of the ImGuiInputTextFlags flags are only useful for InputText() and not for InputFloatX, InputIntX, InputDouble etc." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 61450, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 61463, + "name" : "buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 61475, + "name" : "buf_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "offset" : 61505, + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 61539, + "name" : "callback", + "qualType" : "ImGuiInputTextCallback", + "desugaredQualType" : "int (*)(ImGuiInputTextCallbackData *)", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 61562, + "name" : "user_data", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 61609, + "name" : "InputTextMultiline", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 61640, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 61653, + "name" : "buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 61665, + "name" : "buf_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "offset" : 61689, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 61730, + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 61764, + "name" : "callback", + "qualType" : "ImGuiInputTextCallback", + "desugaredQualType" : "int (*)(ImGuiInputTextCallbackData *)", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 61787, + "name" : "user_data", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 61834, + "name" : "InputTextWithHint", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 61864, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 61883, + "name" : "hint", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 61895, + "name" : "buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 61907, + "name" : "buf_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "offset" : 61937, + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 61971, + "name" : "callback", + "qualType" : "ImGuiInputTextCallback", + "desugaredQualType" : "int (*)(ImGuiInputTextCallbackData *)", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 61994, + "name" : "user_data", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 62041, + "name" : "InputFloat", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 62064, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62078, + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62087, + "name" : "step", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62106, + "name" : "step_fast", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62136, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62173, + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 62213, + "name" : "InputFloat2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 62237, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62250, + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62268, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62305, + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 62345, + "name" : "InputFloat3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 62369, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62382, + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62400, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62437, + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 62477, + "name" : "InputFloat4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 62501, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62514, + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62532, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62569, + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 62609, + "name" : "InputInt", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 62630, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62642, + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62649, + "name" : "step", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62663, + "name" : "step_fast", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "100" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62700, + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 62740, + "name" : "InputInt2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 62762, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62773, + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62799, + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 62839, + "name" : "InputInt3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 62861, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62872, + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62898, + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 62938, + "name" : "InputInt4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 62960, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62971, + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 62997, + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 63037, + "name" : "InputDouble", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 63061, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63076, + "name" : "v", + "qualType" : "double *", + "desugaredQualType" : "double *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63086, + "name" : "step", + "qualType" : "double", + "desugaredQualType" : "double", + "defaultValue" : "0.0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63105, + "name" : "step_fast", + "qualType" : "double", + "desugaredQualType" : "double", + "defaultValue" : "0.0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63134, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.6f\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63171, + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 63211, + "name" : "InputScalar", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 63235, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63256, + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63273, + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63293, + "name" : "p_step", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63320, + "name" : "p_step_fast", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63352, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63387, + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 63427, + "name" : "InputScalarN", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 63452, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63473, + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63490, + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63502, + "name" : "components", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63526, + "name" : "p_step", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63553, + "name" : "p_step_fast", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63585, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 63620, + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 64138, + "name" : "ColorEdit3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 63639, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 63639, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 63639, + "text" : " Widgets: Color Editor/Picker (tip: the ColorEdit* functions have a little color square that can be left-clicked to open a picker, and right-clicked to open an option menu.)" + }, { + "@type" : "AstTextComment", + "offset" : 63819, + "text" : " - Note that in C++ a 'float v[X]' function argument is the _same_ as 'float* v', the array syntax is just a way to document the number of elements that are expected to be accessible." + }, { + "@type" : "AstTextComment", + "offset" : 64009, + "text" : " - You can pass the address of a first float element out of a contiguous structure, e.g. " + }, { + "@type" : "AstTextComment", + "offset" : 64098, + "text" : "&myvector" + }, { + "@type" : "AstTextComment", + "offset" : 64107, + "text" : ".x" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 64161, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 64174, + "name" : "col", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 64202, + "name" : "flags", + "qualType" : "ImGuiColorEditFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 64242, + "name" : "ColorEdit4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 64265, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 64278, + "name" : "col", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 64306, + "name" : "flags", + "qualType" : "ImGuiColorEditFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 64346, + "name" : "ColorPicker3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 64371, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 64384, + "name" : "col", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 64412, + "name" : "flags", + "qualType" : "ImGuiColorEditFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 64452, + "name" : "ColorPicker4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 64477, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 64490, + "name" : "col", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 64518, + "name" : "flags", + "qualType" : "ImGuiColorEditFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 64542, + "name" : "ref_col", + "qualType" : "const float *", + "desugaredQualType" : "const float *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 64587, + "name" : "ColorButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 64611, + "name" : "desc_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 64634, + "name" : "col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 64659, + "name" : "flags", + "qualType" : "ImGuiColorEditFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 64677, + "name" : "size", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2", + "defaultValue" : "= ImVec2(0, 0)" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 64806, + "name" : "SetColorEditOptions", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 64846, + "name" : "flags", + "qualType" : "ImGuiColorEditFlags", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 65308, + "name" : "TreeNode", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 65098, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 65098, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 65098, + "text" : " Widgets: Trees" + }, { + "@type" : "AstTextComment", + "offset" : 65120, + "text" : " - TreeNode functions return true when the node is open, in which case you need to also call TreePop() when you are finished displaying the tree node contents." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 65329, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 65365, + "name" : "TreeNode", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 65386, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 65406, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 65416, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 65658, + "name" : "TreeNode", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 65679, + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 65699, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 65709, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 65759, + "name" : "TreeNodeV", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 65781, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 65801, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 65814, + "name" : "args", + "qualType" : "__va_list_tag *", + "desugaredQualType" : "__va_list_tag *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 65820, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 65863, + "name" : "TreeNodeV", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 65885, + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 65905, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 65918, + "name" : "args", + "qualType" : "__va_list_tag *", + "desugaredQualType" : "__va_list_tag *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 65924, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 65967, + "name" : "TreeNodeEx", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 65990, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 66016, + "name" : "flags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 66056, + "name" : "TreeNodeEx", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 66079, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 66106, + "name" : "flags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 66125, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 66135, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 66178, + "name" : "TreeNodeEx", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 66201, + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 66228, + "name" : "flags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 66247, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 66257, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 66300, + "name" : "TreeNodeExV", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 66324, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 66351, + "name" : "flags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 66370, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 66383, + "name" : "args", + "qualType" : "__va_list_tag *", + "desugaredQualType" : "__va_list_tag *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 66389, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 66432, + "name" : "TreeNodeExV", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 66456, + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 66483, + "name" : "flags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 66502, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 66515, + "name" : "args", + "qualType" : "__va_list_tag *", + "desugaredQualType" : "__va_list_tag *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 66521, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 66564, + "name" : "TreePush", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 66585, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 66789, + "name" : "TreePush", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 66810, + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 66890, + "name" : "TreePop", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 67010, + "name" : "GetTreeNodeToLabelSpacing", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "offset" : 67253, + "name" : "CollapsingHeader", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 67282, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 67308, + "name" : "flags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 67466, + "name" : "CollapsingHeader", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 67495, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 67508, + "name" : "p_visible", + "qualType" : "bool *", + "desugaredQualType" : "bool *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 67538, + "name" : "flags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 67795, + "name" : "SetNextItemOpen", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 67816, + "name" : "is_open", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "offset" : 67835, + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 68223, + "name" : "Selectable", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 67920, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 67920, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 67920, + "text" : " Widgets: Selectables" + }, { + "@type" : "AstTextComment", + "offset" : 67948, + "text" : " - A selectable highlights when hovered, and can display another color when selected." + }, { + "@type" : "AstTextComment", + "offset" : 68040, + "text" : " - Neighbors selectable extend their highlight bounds in order to leave no gap between them. This is so a series of selected Selectable appear contiguous." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 68246, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 68258, + "name" : "selected", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + }, { + "@type" : "AstParmVarDecl", + "offset" : 68297, + "name" : "flags", + "qualType" : "ImGuiSelectableFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 68322, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 68629, + "name" : "Selectable", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 68652, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 68665, + "name" : "p_selected", + "qualType" : "bool *", + "desugaredQualType" : "bool *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 68698, + "name" : "flags", + "qualType" : "ImGuiSelectableFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 68723, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 69667, + "name" : "BeginListBox", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 68846, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 68846, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 68846, + "text" : " Widgets: List Boxes" + }, { + "@type" : "AstTextComment", + "offset" : 68873, + "text" : " - This is essentially a thin wrapper to using BeginChild/EndChild with some stylistic changes." + }, { + "@type" : "AstTextComment", + "offset" : 68975, + "text" : " - The BeginListBox()/EndListBox() api allows you to manage your contents and selection state however you want it, by creating e.g. Selectable() or any items." + }, { + "@type" : "AstTextComment", + "offset" : 69140, + "text" : " - The simplified/old ListBox() api are helpers over BeginListBox()/EndListBox() which are kept available for convenience purpose. This is analoguous to how Combos are created." + }, { + "@type" : "AstTextComment", + "offset" : 69323, + "text" : " - Choose frame width: size.x > 0.0f: custom / size.x " + }, { + "@type" : "AstTextComment", + "offset" : 69381, + "text" : "<" + }, { + "@type" : "AstTextComment", + "offset" : 69382, + "text" : " 0.0f or -FLT_MIN: right-align / size.x = 0.0f (default): use current ItemWidth" + }, { + "@type" : "AstTextComment", + "offset" : 69471, + "text" : " - Choose frame height: size.y > 0.0f: custom / size.y " + }, { + "@type" : "AstTextComment", + "offset" : 69529, + "text" : "<" + }, { + "@type" : "AstTextComment", + "offset" : 69530, + "text" : " 0.0f or -FLT_MIN: bottom-align / size.y = 0.0f (default): arbitrary default height which can fit ~7 items" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 69692, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 69713, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 69797, + "name" : "EndListBox", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 69952, + "name" : "ListBox", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 69972, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 69984, + "name" : "current_item", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70016, + "name" : "items", + "qualType" : "const char *const *", + "desugaredQualType" : "const char *const *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70029, + "name" : "items_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70046, + "name" : "height_in_items", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 70097, + "name" : "ListBox", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 70117, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70129, + "name" : "current_item", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70150, + "name" : "items_getter", + "qualType" : "bool (*)(void *, int, const char **)", + "desugaredQualType" : "bool (*)(void *, int, const char **)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70215, + "name" : "data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70225, + "name" : "items_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70242, + "name" : "height_in_items", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 70413, + "name" : "PlotLines", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 70272, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 70272, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 70272, + "text" : " Widgets: Data Plotting" + }, { + "@type" : "AstTextComment", + "offset" : 70302, + "text" : " - Consider using ImPlot (https://github.com/epezent/implot) which is much better!" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 70435, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70455, + "name" : "values", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70467, + "name" : "values_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70485, + "name" : "values_offset", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70516, + "name" : "overlay_text", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70543, + "name" : "scale_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "FLT_MAX" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70570, + "name" : "scale_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "FLT_MAX" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70598, + "name" : "graph_size", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2", + "defaultValue" : "= ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70629, + "name" : "stride", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "sizeof(float)" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 70682, + "name" : "PlotLines", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 70704, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70718, + "name" : "values_getter", + "qualType" : "float (*)(void *, int)", + "desugaredQualType" : "float (*)(void *, int)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70761, + "name" : "data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70771, + "name" : "values_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70789, + "name" : "values_offset", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70820, + "name" : "overlay_text", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70847, + "name" : "scale_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "FLT_MAX" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70874, + "name" : "scale_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "FLT_MAX" + }, { + "@type" : "AstParmVarDecl", + "offset" : 70902, + "name" : "graph_size", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2", + "defaultValue" : "= ImVec2(0, 0)" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 70958, + "name" : "PlotHistogram", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 70984, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 71004, + "name" : "values", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 71016, + "name" : "values_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 71034, + "name" : "values_offset", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 71065, + "name" : "overlay_text", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 71092, + "name" : "scale_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "FLT_MAX" + }, { + "@type" : "AstParmVarDecl", + "offset" : 71119, + "name" : "scale_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "FLT_MAX" + }, { + "@type" : "AstParmVarDecl", + "offset" : 71147, + "name" : "graph_size", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2", + "defaultValue" : "= ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 71178, + "name" : "stride", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "sizeof(float)" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 71231, + "name" : "PlotHistogram", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 71257, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 71271, + "name" : "values_getter", + "qualType" : "float (*)(void *, int)", + "desugaredQualType" : "float (*)(void *, int)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 71314, + "name" : "data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 71324, + "name" : "values_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 71342, + "name" : "values_offset", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 71373, + "name" : "overlay_text", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 71400, + "name" : "scale_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "FLT_MAX" + }, { + "@type" : "AstParmVarDecl", + "offset" : 71427, + "name" : "scale_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "FLT_MAX" + }, { + "@type" : "AstParmVarDecl", + "offset" : 71455, + "name" : "graph_size", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2", + "defaultValue" : "= ImVec2(0, 0)" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 71771, + "name" : "Value", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 71490, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 71490, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 71490, + "text" : " Widgets: Value() Helpers." + }, { + "@type" : "AstTextComment", + "offset" : 71523, + "text" : " - Those are merely shortcut to calling Text() with a format string. Output single value in \"name: value\" format (tip: freely declare more in your code to handle your types. you can add functions to the ImGui namespace)" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 71789, + "name" : "prefix", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 71802, + "name" : "b", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 71834, + "name" : "Value", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 71852, + "name" : "prefix", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 71864, + "name" : "v", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 71896, + "name" : "Value", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 71914, + "name" : "prefix", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 71935, + "name" : "v", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 71967, + "name" : "Value", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 71985, + "name" : "prefix", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 71999, + "name" : "v", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 72014, + "name" : "float_format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 72537, + "name" : "BeginMenuBar", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 72043, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 72043, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 72043, + "text" : " Widgets: Menus" + }, { + "@type" : "AstTextComment", + "offset" : 72065, + "text" : " - Use BeginMenuBar() on a window ImGuiWindowFlags_MenuBar to append to its menu bar." + }, { + "@type" : "AstTextComment", + "offset" : 72157, + "text" : " - Use BeginMainMenuBar() to create a menu bar at the top of the screen and append to it." + }, { + "@type" : "AstTextComment", + "offset" : 72253, + "text" : " - Use BeginMenu() to create a menu. You can call BeginMenu() multiple time with the same identifier to append more items to it." + }, { + "@type" : "AstTextComment", + "offset" : 72388, + "text" : " - Not that MenuItem() keyboardshortcuts are displayed as a convenience but _not processed_ by Dear ImGui at the moment." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 72736, + "name" : "EndMenuBar", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 72890, + "name" : "BeginMainMenuBar", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 73034, + "name" : "EndMainMenuBar", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 73196, + "name" : "BeginMenu", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 73218, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 73230, + "name" : "enabled", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 73362, + "name" : "EndMenu", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 73510, + "name" : "MenuItem", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 73531, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 73550, + "name" : "shortcut", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 73572, + "name" : "selected", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + }, { + "@type" : "AstParmVarDecl", + "offset" : 73595, + "name" : "enabled", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 73672, + "name" : "MenuItem", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 73693, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 73712, + "name" : "shortcut", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 73728, + "name" : "p_selected", + "qualType" : "bool *", + "desugaredQualType" : "bool *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 73745, + "name" : "enabled", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 73974, + "name" : "BeginTooltip", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 73857, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 73857, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 73857, + "text" : " Tooltips" + }, { + "@type" : "AstTextComment", + "offset" : 73873, + "text" : " - Tooltip are windows following the mouse. They do not take focus away." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 74162, + "name" : "EndTooltip", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 74204, + "name" : "SetTooltip", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 74227, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 74237, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 74415, + "name" : "SetTooltipV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 74439, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 74452, + "name" : "args", + "qualType" : "__va_list_tag *", + "desugaredQualType" : "__va_list_tag *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 74458, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 75759, + "name" : "BeginPopup", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 75402, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 75402, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 75402, + "text" : " Popups: begin/end functions" + }, { + "@type" : "AstTextComment", + "offset" : 75437, + "text" : " - BeginPopup(): query popup state, if open start appending into the window. Call EndPopup() afterwards. ImGuiWindowFlags are forwarded to the window." + }, { + "@type" : "AstTextComment", + "offset" : 75595, + "text" : " - BeginPopupModal(): block every interactions behind the window, cannot be closed by user, add a dimming background, has a title bar." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 75782, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 75807, + "name" : "flags", + "qualType" : "ImGuiWindowFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 75944, + "name" : "BeginPopupModal", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 75972, + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 75984, + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 76016, + "name" : "flags", + "qualType" : "ImGuiWindowFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 76129, + "name" : "EndPopup", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 77037, + "name" : "OpenPopup", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 76277, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 76277, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 76277, + "text" : " Popups: open/close functions" + }, { + "@type" : "AstTextComment", + "offset" : 76313, + "text" : " - OpenPopup(): set popup state to open. ImGuiPopupFlags are available for opening options." + }, { + "@type" : "AstTextComment", + "offset" : 76412, + "text" : " - If not modal: they can be closed by clicking anywhere outside them, or by pressing ESCAPE." + }, { + "@type" : "AstTextComment", + "offset" : 76513, + "text" : " - CloseCurrentPopup(): use inside the BeginPopup()/EndPopup() scope to close manually." + }, { + "@type" : "AstTextComment", + "offset" : 76608, + "text" : " - CloseCurrentPopup() is called by default by Selectable()/MenuItem() when activated (FIXME: need some options)." + }, { + "@type" : "AstTextComment", + "offset" : 76729, + "text" : " - Use ImGuiPopupFlags_NoOpenOverExistingPopup to avoid opening a popup if there's already one at the same level. This is equivalent to e.g. testing for !IsAnyPopupOpen() prior to OpenPopup()." + }, { + "@type" : "AstTextComment", + "offset" : 76929, + "text" : " - Use IsWindowAppearing() after BeginPopup() to tell if a window just opened." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 77059, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 77083, + "name" : "popup_flags", + "qualType" : "ImGuiPopupFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 77206, + "name" : "OpenPopup", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 77224, + "name" : "id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 77244, + "name" : "popup_flags", + "qualType" : "ImGuiPopupFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 77374, + "name" : "OpenPopupOnItemClick", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 77407, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 77438, + "name" : "popup_flags", + "qualType" : "ImGuiPopupFlags", + "desugaredQualType" : "int", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 77681, + "name" : "CloseCurrentPopup", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 78594, + "name" : "BeginPopupContextItem", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 77823, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 77823, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 77823, + "text" : " Popups: open+begin combined functions helpers" + }, { + "@type" : "AstTextComment", + "offset" : 77876, + "text" : " - Helpers to do OpenPopup+BeginPopup where the Open action is triggered by e.g. hovering an item and right-clicking." + }, { + "@type" : "AstTextComment", + "offset" : 78001, + "text" : " - They are convenient to easily create context menus, hence the name." + }, { + "@type" : "AstTextComment", + "offset" : 78079, + "text" : " - IMPORTANT: Notice that BeginPopupContextXXX takes ImGuiPopupFlags just like OpenPopup() and unlike BeginPopup(). For full consistency, we may add ImGuiWindowFlags to the BeginPopupContextXXX functions in the future." + }, { + "@type" : "AstTextComment", + "offset" : 78305, + "text" : " - IMPORTANT: we exceptionally default their flags to 1 (== ImGuiPopupFlags_MouseButtonRight) for backward compatibility with older API taking 'int mouse_button = 1' parameter, so if you add other flags remember to re-add the ImGuiPopupFlags_MouseButtonRight." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 78628, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 78659, + "name" : "popup_flags", + "qualType" : "ImGuiPopupFlags", + "desugaredQualType" : "int", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 78940, + "name" : "BeginPopupContextWindow", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 78976, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 79007, + "name" : "popup_flags", + "qualType" : "ImGuiPopupFlags", + "desugaredQualType" : "int", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 79104, + "name" : "BeginPopupContextVoid", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 79138, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 79169, + "name" : "popup_flags", + "qualType" : "ImGuiPopupFlags", + "desugaredQualType" : "int", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 79698, + "name" : "IsPopupOpen", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 79266, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 79266, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 79266, + "text" : " Popups: query functions" + }, { + "@type" : "AstTextComment", + "offset" : 79297, + "text" : " - IsPopupOpen(): return true if the popup is open at the current BeginPopup() level of the popup stack." + }, { + "@type" : "AstTextComment", + "offset" : 79409, + "text" : " - IsPopupOpen() with ImGuiPopupFlags_AnyPopupId: return true if any popup is open at the current BeginPopup() level of the popup stack." + }, { + "@type" : "AstTextComment", + "offset" : 79553, + "text" : " - IsPopupOpen() with ImGuiPopupFlags_AnyPopupId + ImGuiPopupFlags_AnyPopupLevel: return true if any popup is open." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 79722, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 79746, + "name" : "flags", + "qualType" : "ImGuiPopupFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 82112, + "name" : "BeginTable", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 79826, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 79826, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 79826, + "text" : " Tables" + }, { + "@type" : "AstTextComment", + "offset" : 79840, + "text" : " [BETA API] API may evolve slightly! If you use this, please update to the next version when it comes out!" + }, { + "@type" : "AstTextComment", + "offset" : 79953, + "text" : " - Full-featured replacement for old Columns API." + }, { + "@type" : "AstTextComment", + "offset" : 80009, + "text" : " - See Demo->Tables for demo code." + }, { + "@type" : "AstTextComment", + "offset" : 80050, + "text" : " - See top of imgui_tables.cpp for general commentary." + }, { + "@type" : "AstTextComment", + "offset" : 80111, + "text" : " - See ImGuiTableFlags_ and ImGuiTableColumnFlags_ enums for a description of available flags." + }, { + "@type" : "AstTextComment", + "offset" : 80212, + "text" : " The typical call flow is:" + }, { + "@type" : "AstTextComment", + "offset" : 80245, + "text" : " - 1. Call BeginTable()." + }, { + "@type" : "AstTextComment", + "offset" : 80276, + "text" : " - 2. Optionally call TableSetupColumn() to submit column name/flags/defaults." + }, { + "@type" : "AstTextComment", + "offset" : 80361, + "text" : " - 3. Optionally call TableSetupScrollFreeze() to request scroll freezing of columns/rows." + }, { + "@type" : "AstTextComment", + "offset" : 80458, + "text" : " - 4. Optionally call TableHeadersRow() to submit a header row. Names are pulled from TableSetupColumn() data." + }, { + "@type" : "AstTextComment", + "offset" : 80575, + "text" : " - 5. Populate contents:" + }, { + "@type" : "AstTextComment", + "offset" : 80606, + "text" : " - In most situations you can use TableNextRow() + TableSetColumnIndex(N) to start appending into a column." + }, { + "@type" : "AstTextComment", + "offset" : 80723, + "text" : " - If you are using tables as a sort of grid, where every columns is holding the same type of contents," + }, { + "@type" : "AstTextComment", + "offset" : 80836, + "text" : " you may prefer using TableNextColumn() instead of TableNextRow() + TableSetColumnIndex()." + }, { + "@type" : "AstTextComment", + "offset" : 80938, + "text" : " TableNextColumn() will automatically wrap-around into the next row if needed." + }, { + "@type" : "AstTextComment", + "offset" : 81028, + "text" : " - IMPORTANT: Comparatively to the old Columns() API, we need to call TableNextColumn() for the first column!" + }, { + "@type" : "AstTextComment", + "offset" : 81147, + "text" : " - Summary of possible call flow:" + }, { + "@type" : "AstTextComment", + "offset" : 81190, + "text" : " --------------------------------------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "offset" : 81309, + "text" : " TableNextRow() -> TableSetColumnIndex(0) -> Text(\"Hello 0\") -> TableSetColumnIndex(1) -> Text(\"Hello 1\") // OK" + }, { + "@type" : "AstTextComment", + "offset" : 81435, + "text" : " TableNextRow() -> TableNextColumn() -> Text(\"Hello 0\") -> TableNextColumn() -> Text(\"Hello 1\") // OK" + }, { + "@type" : "AstTextComment", + "offset" : 81561, + "text" : " TableNextColumn() -> Text(\"Hello 0\") -> TableNextColumn() -> Text(\"Hello 1\") // OK: TableNextColumn() automatically gets to next row!" + }, { + "@type" : "AstTextComment", + "offset" : 81738, + "text" : " TableNextRow() -> Text(\"Hello 0\") // Not OK! Missing TableSetColumnIndex() or TableNextColumn()! Text will not appear!" + }, { + "@type" : "AstTextComment", + "offset" : 81943, + "text" : " --------------------------------------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "offset" : 82062, + "text" : " - 5. Call EndTable()" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 82135, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 82147, + "name" : "column", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 82171, + "name" : "flags", + "qualType" : "ImGuiTableFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 82196, + "name" : "outer_size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0.0f, 0.0f)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 82235, + "name" : "inner_width", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 82284, + "name" : "EndTable", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 82410, + "name" : "TableNextRow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 82442, + "name" : "row_flags", + "qualType" : "ImGuiTableRowFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 82463, + "name" : "min_row_height", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 82559, + "name" : "TableNextColumn", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 82757, + "name" : "TableSetColumnIndex", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 82781, + "name" : "column_n", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 83665, + "name" : "TableSetupColumn", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 82881, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 82881, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 82881, + "text" : " Tables: Headers " + }, { + "@type" : "AstTextComment", + "offset" : 82898, + "text" : "&" + }, { + "@type" : "AstTextComment", + "offset" : 82899, + "text" : " Columns declaration" + }, { + "@type" : "AstTextComment", + "offset" : 82926, + "text" : " - Use TableSetupColumn() to specify label, resizing policy, default width/weight, id, various other flags etc." + }, { + "@type" : "AstTextComment", + "offset" : 83044, + "text" : " - Use TableHeadersRow() to create a header row and automatically submit a TableHeader() for each column." + }, { + "@type" : "AstTextComment", + "offset" : 83156, + "text" : " Headers are required to perform: reordering, sorting, and opening the context menu." + }, { + "@type" : "AstTextComment", + "offset" : 83249, + "text" : " The context menu can also be made available in columns body using ImGuiTableFlags_ContextMenuInBody." + }, { + "@type" : "AstTextComment", + "offset" : 83359, + "text" : " - You may manually submit headers using TableNextRow() + TableHeader() calls, but this is only useful in" + }, { + "@type" : "AstTextComment", + "offset" : 83471, + "text" : " some advanced use cases (e.g. adding custom widgets in header row)." + }, { + "@type" : "AstTextComment", + "offset" : 83548, + "text" : " - Use TableSetupScrollFreeze() to lock columns/rows so they stay visible when scrolled." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 83694, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 83723, + "name" : "flags", + "qualType" : "ImGuiTableColumnFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 83740, + "name" : "init_width_or_weight", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 83777, + "name" : "user_id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 83819, + "name" : "TableSetupScrollFreeze", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 83846, + "name" : "cols", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 83856, + "name" : "rows", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 83948, + "name" : "TableHeadersRow", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 84115, + "name" : "TableHeader", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 84139, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 84751, + "name" : "TableGetSortSpecs", + "resultType" : "ImGuiTableSortSpecs *", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 84215, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 84215, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 84215, + "text" : " Tables: Sorting" + }, { + "@type" : "AstTextComment", + "offset" : 84238, + "text" : " - Call TableGetSortSpecs() to retrieve latest sort specs for the table. NULL when not sorting." + }, { + "@type" : "AstTextComment", + "offset" : 84340, + "text" : " - When 'SpecsDirty == true' you should sort your data. It will be true when sorting specs have changed" + }, { + "@type" : "AstTextComment", + "offset" : 84450, + "text" : " since last call, or the first time. Make sure to set 'SpecsDirty = false' after sorting, else you may" + }, { + "@type" : "AstTextComment", + "offset" : 84561, + "text" : " wastefully sort your data every frame!" + }, { + "@type" : "AstTextComment", + "offset" : 84609, + "text" : " - Lifetime: don't hold on this pointer over multiple frames or past any subsequent call to BeginTable()." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 85051, + "name" : "TableGetColumnCount", + "resultType" : "int", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 84864, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 84864, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 84864, + "text" : " Tables: Miscellaneous functions" + }, { + "@type" : "AstTextComment", + "offset" : 84903, + "text" : " - Functions args 'int column_n' treat the default value of -1 as the same as passing the current column index." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 85188, + "name" : "TableGetColumnIndex", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 85300, + "name" : "TableGetRowIndex", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 85409, + "name" : "TableGetColumnName", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 85432, + "name" : "column_n", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 85594, + "name" : "TableGetColumnFlags", + "resultType" : "ImGuiTableColumnFlags", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 85618, + "name" : "column_n", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 85796, + "name" : "TableSetColumnEnabled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 85822, + "name" : "column_n", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 85837, + "name" : "v", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 86123, + "name" : "TableSetBgColor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 86158, + "name" : "target", + "qualType" : "ImGuiTableBgTarget", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 86172, + "name" : "color", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 86183, + "name" : "column_n", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 86439, + "name" : "Columns", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 86297, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 86297, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 86297, + "text" : " Legacy Columns API (prefer using Tables!)" + }, { + "@type" : "AstTextComment", + "offset" : 86346, + "text" : " - You can also use SameLine(pos_x) to mimic simplified columns." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 86451, + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "offset" : 86474, + "name" : "id", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 86490, + "name" : "border", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 86534, + "name" : "NextColumn", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 86713, + "name" : "GetColumnIndex", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 86837, + "name" : "GetColumnWidth", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 86856, + "name" : "column_index", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 86996, + "name" : "SetColumnWidth", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 87015, + "name" : "column_index", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 87035, + "name" : "width", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 87155, + "name" : "GetColumnOffset", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 87175, + "name" : "column_index", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 87438, + "name" : "SetColumnOffset", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 87458, + "name" : "column_index", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 87478, + "name" : "offset_x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 87651, + "name" : "GetColumnsCount", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 87862, + "name" : "BeginTabBar", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 87677, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 87677, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 87677, + "text" : " Tab Bars, Tabs" + }, { + "@type" : "AstTextComment", + "offset" : 87699, + "text" : " Note: Tabs are automatically created by the docking system. Use this to create tab bars/tabs yourself without docking being involved." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 87886, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 87911, + "name" : "flags", + "qualType" : "ImGuiTabBarFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 87993, + "name" : "EndTabBar", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 88145, + "name" : "BeginTabItem", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 88170, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 88183, + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 88216, + "name" : "flags", + "qualType" : "ImGuiTabItemFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 88310, + "name" : "EndTabItem", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 88464, + "name" : "TabItemButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 88490, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 88515, + "name" : "flags", + "qualType" : "ImGuiTabItemFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 88661, + "name" : "SetTabItemClosed", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 88690, + "name" : "tab_or_docked_window_label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 90225, + "name" : "DockSpace", + "resultType" : "ImGuiID", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 88960, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 88960, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 88960, + "text" : " Docking" + }, { + "@type" : "AstTextComment", + "offset" : 88975, + "text" : " [BETA API] Enable with io.ConfigFlags |= ImGuiConfigFlags_DockingEnable." + }, { + "@type" : "AstTextComment", + "offset" : 89055, + "text" : " Note: You can use most Docking facilities without calling any API. You DO NOT need to call DockSpace() to use Docking!" + }, { + "@type" : "AstTextComment", + "offset" : 89181, + "text" : " - Drag from window title bar or their tab to dock/undock. Hold SHIFT to disable docking/undocking." + }, { + "@type" : "AstTextComment", + "offset" : 89287, + "text" : " - Drag from window menu button (upper-left button) to undock an entire node (all windows)." + }, { + "@type" : "AstTextComment", + "offset" : 89385, + "text" : " - When io.ConfigDockingWithShift == true, you instead need to hold SHIFT to _enable_ docking/undocking." + }, { + "@type" : "AstTextComment", + "offset" : 89496, + "text" : " About dockspaces:" + }, { + "@type" : "AstTextComment", + "offset" : 89521, + "text" : " - Use DockSpace() to create an explicit dock node _within_ an existing window. See Docking demo for details." + }, { + "@type" : "AstTextComment", + "offset" : 89637, + "text" : " - Use DockSpaceOverViewport() to create an explicit dock node covering the screen or a specific viewport." + }, { + "@type" : "AstTextComment", + "offset" : 89750, + "text" : " This is often used with ImGuiDockNodeFlags_PassthruCentralNode." + }, { + "@type" : "AstTextComment", + "offset" : 89823, + "text" : " - Important: Dockspaces need to be submitted _before_ any window they can host. Submit it early in your frame!" + }, { + "@type" : "AstTextComment", + "offset" : 89941, + "text" : " - Important: Dockspaces need to be kept alive if hidden, otherwise windows docked into it will be undocked." + }, { + "@type" : "AstTextComment", + "offset" : 90056, + "text" : " e.g. if you have multiple tabs with a dockspace inside each tab: submit the non-visible dockspaces with ImGuiDockNodeFlags_KeepAliveOnly." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 90243, + "name" : "id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 90261, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 90301, + "name" : "flags", + "qualType" : "ImGuiDockNodeFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 90336, + "name" : "window_class", + "qualType" : "const ImGuiWindowClass *", + "desugaredQualType" : "const ImGuiWindowClass *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 90386, + "name" : "DockSpaceOverViewport", + "resultType" : "ImGuiID", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 90429, + "name" : "viewport", + "qualType" : "const ImGuiViewport *", + "desugaredQualType" : "const ImGuiViewport *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 90465, + "name" : "flags", + "qualType" : "ImGuiDockNodeFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 90500, + "name" : "window_class", + "qualType" : "const ImGuiWindowClass *", + "desugaredQualType" : "const ImGuiWindowClass *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 90550, + "name" : "SetNextWindowDockID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 90578, + "name" : "dock_id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 90597, + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 90673, + "name" : "SetNextWindowClass", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 90716, + "name" : "window_class", + "qualType" : "const ImGuiWindowClass *", + "desugaredQualType" : "const ImGuiWindowClass *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 90927, + "name" : "GetWindowDockID", + "resultType" : "ImGuiID" + }, { + "@type" : "AstFunctionDecl", + "offset" : 90974, + "name" : "IsWindowDocked", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 91292, + "name" : "LogToTTY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 91098, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 91098, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 91098, + "text" : " Logging/Capture" + }, { + "@type" : "AstTextComment", + "offset" : 91121, + "text" : " - All text output from the interface can be captured into tty/file/clipboard. By default, tree nodes are automatically opened during logging." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 91305, + "name" : "auto_open_depth", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 91421, + "name" : "LogToFile", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 91435, + "name" : "auto_open_depth", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + }, { + "@type" : "AstParmVarDecl", + "offset" : 91469, + "name" : "filename", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 91542, + "name" : "LogToClipboard", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 91561, + "name" : "auto_open_depth", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 91671, + "name" : "LogFinish", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 91802, + "name" : "LogButtons", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 91961, + "name" : "LogText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 91981, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 91991, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 92117, + "name" : "LogTextV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 92138, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 92151, + "name" : "args", + "qualType" : "__va_list_tag *", + "desugaredQualType" : "__va_list_tag *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 92157, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 92717, + "name" : "BeginDragDropSource", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 92179, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 92179, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 92179, + "text" : " Drag and Drop" + }, { + "@type" : "AstTextComment", + "offset" : 92200, + "text" : " - On source items, call BeginDragDropSource(), if it returns true also call SetDragDropPayload() + EndDragDropSource()." + }, { + "@type" : "AstTextComment", + "offset" : 92327, + "text" : " - On target candidates, call BeginDragDropTarget(), if it returns true also call AcceptDragDropPayload() + EndDragDropTarget()." + }, { + "@type" : "AstTextComment", + "offset" : 92462, + "text" : " - If you stop calling BeginDragDropSource() the payload is preserved however it won't have a preview tooltip (we currently display a fallback \"...\" tooltip, see #1725)" + }, { + "@type" : "AstTextComment", + "offset" : 92637, + "text" : " - An item can be both drag source and drop target." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 92756, + "name" : "flags", + "qualType" : "ImGuiDragDropFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 92967, + "name" : "SetDragDropPayload", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 92998, + "name" : "type", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 93016, + "name" : "data", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 93029, + "name" : "sz", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "offset" : 93043, + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 93246, + "name" : "EndDragDropSource", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 93442, + "name" : "BeginDragDropTarget", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 93700, + "name" : "AcceptDragDropPayload", + "resultType" : "const ImGuiPayload *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 93734, + "name" : "type", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 93759, + "name" : "flags", + "qualType" : "ImGuiDragDropFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 93969, + "name" : "EndDragDropTarget", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 94157, + "name" : "GetDragDropPayload", + "resultType" : "const ImGuiPayload *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 94910, + "name" : "BeginDisabled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 94379, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 94379, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 94379, + "text" : " Disabling [BETA API]" + }, { + "@type" : "AstTextComment", + "offset" : 94407, + "text" : " - Disable all user interactions and dim items visuals (applying style.DisabledAlpha over current colors)" + }, { + "@type" : "AstTextComment", + "offset" : 94519, + "text" : " - Those can be nested but it cannot be used to enable an already disabled section (a single BeginDisabled(true) in the stack is enough to keep everything disabled)" + }, { + "@type" : "AstTextComment", + "offset" : 94690, + "text" : " - BeginDisabled(false) essentially does nothing useful but is provided to facilitate use of boolean expressions. If you can avoid calling BeginDisabled(False)/EndDisabled() best to avoid it." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 94929, + "name" : "disabled", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 94975, + "name" : "EndDisabled", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 95176, + "name" : "PushClipRect", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 94997, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 94997, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 94997, + "text" : " Clipping" + }, { + "@type" : "AstTextComment", + "offset" : 95013, + "text" : " - Mouse hovering is affected by ImGui::PushClipRect() calls, unlike direct calls to ImDrawList::PushClipRect() which are render only." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 95203, + "name" : "clip_rect_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 95232, + "name" : "clip_rect_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 95252, + "name" : "intersect_with_current_clip_rect", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 95315, + "name" : "PopClipRect", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 95533, + "name" : "SetItemDefaultFocus", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 95337, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 95337, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 95337, + "text" : " Focus, Activation" + }, { + "@type" : "AstTextComment", + "offset" : 95362, + "text" : " - Prefer using \"SetItemDefaultFocus()\" over \"if (IsWindowAppearing()) SetScrollHereY()\" when applicable to signify \"this is the default item\"" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 95685, + "name" : "SetKeyboardFocusHere", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 95710, + "name" : "offset", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 96193, + "name" : "IsItemHovered", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 95911, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 95911, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 95911, + "text" : " Item/Widgets Utilities and Query Functions" + }, { + "@type" : "AstTextComment", + "offset" : 95961, + "text" : " - Most of the functions are referring to the previous Item that has been submitted." + }, { + "@type" : "AstTextComment", + "offset" : 96052, + "text" : " - See Demo Window under \"Widgets->Querying Status\" for an interactive visualization of most of those functions." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 96225, + "name" : "flags", + "qualType" : "ImGuiHoveredFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 96406, + "name" : "IsItemActive", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 96706, + "name" : "IsItemFocused", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 96863, + "name" : "IsItemClicked", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 96894, + "name" : "mouse_button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 97176, + "name" : "IsItemVisible", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 97359, + "name" : "IsItemEdited", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 97603, + "name" : "IsItemActivated", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 97769, + "name" : "IsItemDeactivated", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 98012, + "name" : "IsItemDeactivatedAfterEdit", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 98449, + "name" : "IsItemToggledOpen", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 98605, + "name" : "IsAnyItemHovered", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 98725, + "name" : "IsAnyItemActive", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 98844, + "name" : "IsAnyItemFocused", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 98964, + "name" : "GetItemRectMin", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "offset" : 99129, + "name" : "GetItemRectMax", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "offset" : 99295, + "name" : "GetItemRectSize", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "offset" : 99416, + "name" : "SetItemAllowOverlap", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 100054, + "name" : "GetMainViewport", + "resultType" : "ImGuiViewport *", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 99630, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 99630, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 99630, + "text" : " Viewports" + }, { + "@type" : "AstTextComment", + "offset" : 99647, + "text" : " - Currently represents the Platform Window created by the application which is hosting our Dear ImGui windows." + }, { + "@type" : "AstTextComment", + "offset" : 99765, + "text" : " - In 'docking' branch with multi-viewport enabled, we extend this concept to have multiple active viewports." + }, { + "@type" : "AstTextComment", + "offset" : 99881, + "text" : " - In the future we will extend this concept further to also represent Platform Monitor and support a \"no main platform window\" operation mode." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 100241, + "name" : "IsRectVisible", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 100188, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 100188, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 100188, + "text" : " Miscellaneous Utilities" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 100269, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 100431, + "name" : "IsRectVisible", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 100459, + "name" : "rect_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 100483, + "name" : "rect_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 100635, + "name" : "GetTime", + "resultType" : "double" + }, { + "@type" : "AstFunctionDecl", + "offset" : 100798, + "name" : "GetFrameCount", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 100957, + "name" : "GetBackgroundDrawList", + "resultType" : "ImDrawList *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 101243, + "name" : "GetForegroundDrawList", + "resultType" : "ImDrawList *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 101525, + "name" : "GetBackgroundDrawList", + "resultType" : "ImDrawList *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 101562, + "name" : "viewport", + "qualType" : "ImGuiViewport *", + "desugaredQualType" : "ImGuiViewport *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 101784, + "name" : "GetForegroundDrawList", + "resultType" : "ImDrawList *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 101821, + "name" : "viewport", + "qualType" : "ImGuiViewport *", + "desugaredQualType" : "ImGuiViewport *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 102047, + "name" : "GetDrawListSharedData", + "resultType" : "ImDrawListSharedData *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 102200, + "name" : "GetStyleColorName", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 102227, + "name" : "idx", + "qualType" : "ImGuiCol", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 102373, + "name" : "SetStateStorage", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 102403, + "name" : "storage", + "qualType" : "ImGuiStorage *", + "desugaredQualType" : "ImGuiStorage *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 102590, + "name" : "GetStateStorage", + "resultType" : "ImGuiStorage *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 102637, + "name" : "BeginChildFrame", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 102661, + "name" : "id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 102679, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 102702, + "name" : "flags", + "qualType" : "ImGuiWindowFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 102834, + "name" : "EndChildFrame", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 103075, + "name" : "CalcTextSize", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 103031, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 103031, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 103031, + "text" : " Text Utilities" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 103100, + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 103118, + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 103140, + "name" : "hide_text_after_double_hash", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + }, { + "@type" : "AstParmVarDecl", + "offset" : 103183, + "name" : "wrap_width", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 103256, + "name" : "ColorConvertU32ToFloat4", + "resultType" : "ImVec4", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 103211, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 103211, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 103211, + "text" : " Color Utilities" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 103286, + "name" : "in", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 103319, + "name" : "ColorConvertFloat4ToU32", + "resultType" : "ImU32", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 103357, + "name" : "in", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 103390, + "name" : "ColorConvertRGBtoHSV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 103417, + "name" : "r", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 103426, + "name" : "g", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 103435, + "name" : "b", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 103445, + "name" : "out_h", + "qualType" : "float &", + "desugaredQualType" : "float &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 103459, + "name" : "out_s", + "qualType" : "float &", + "desugaredQualType" : "float &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 103473, + "name" : "out_v", + "qualType" : "float &", + "desugaredQualType" : "float &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 103509, + "name" : "ColorConvertHSVtoRGB", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 103536, + "name" : "h", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 103545, + "name" : "s", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 103554, + "name" : "v", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 103564, + "name" : "out_r", + "qualType" : "float &", + "desugaredQualType" : "float &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 103578, + "name" : "out_g", + "qualType" : "float &", + "desugaredQualType" : "float &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 103592, + "name" : "out_b", + "qualType" : "float &", + "desugaredQualType" : "float &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 103922, + "name" : "GetKeyIndex", + "resultType" : "int", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 103607, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 103607, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 103607, + "text" : " Inputs Utilities: Keyboard" + }, { + "@type" : "AstTextComment", + "offset" : 103641, + "text" : " - For 'int user_key_index' you can use your own indices/enums according to how your backend/engine stored them in io.KeysDown[]." + }, { + "@type" : "AstTextComment", + "offset" : 103777, + "text" : " - We don't know the meaning of those value. You can use GetKeyIndex() to map a ImGuiKey_ value into the user index." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 103943, + "name" : "imgui_key", + "qualType" : "ImGuiKey", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 104084, + "name" : "IsKeyDown", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 104098, + "name" : "user_key_index", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 104234, + "name" : "IsKeyPressed", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 104251, + "name" : "user_key_index", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 104272, + "name" : "repeat", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 104431, + "name" : "IsKeyReleased", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 104449, + "name" : "user_key_index", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 104574, + "name" : "GetKeyPressedAmount", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 104598, + "name" : "key_index", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 104615, + "name" : "repeat_delay", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 104635, + "name" : "rate", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 104814, + "name" : "CaptureKeyboardFromApp", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 104842, + "name" : "want_capture_keyboard_value", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 105681, + "name" : "IsMouseDown", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 105219, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 105219, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 105219, + "text" : " Inputs Utilities: Mouse" + }, { + "@type" : "AstTextComment", + "offset" : 105250, + "text" : " - To refer to a mouse button, you may use named enums in your code e.g. ImGuiMouseButton_Left, ImGuiMouseButton_Right." + }, { + "@type" : "AstTextComment", + "offset" : 105376, + "text" : " - You can also use regular integer: it is forever guaranteed that 0=Left, 1=Right, 2=Middle." + }, { + "@type" : "AstTextComment", + "offset" : 105476, + "text" : " - Dragging operations are only reported after mouse has moved a certain distance away from the initial clicking position (see 'lock_threshold' and 'io.MouseDraggingThreshold')" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 105710, + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 105802, + "name" : "IsMouseClicked", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 105834, + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 105847, + "name" : "repeat", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 105991, + "name" : "IsMouseReleased", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 106024, + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 106143, + "name" : "IsMouseDoubleClicked", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 106181, + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 106381, + "name" : "GetMouseClickedCount", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 106419, + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 106573, + "name" : "IsMouseHoveringRect", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 106607, + "name" : "r_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 106628, + "name" : "r_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 106640, + "name" : "clip", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 106857, + "name" : "IsMousePosValid", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 106887, + "name" : "mouse_pos", + "qualType" : "const ImVec2 *", + "desugaredQualType" : "const ImVec2 *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 107040, + "name" : "IsAnyMouseDown", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 107165, + "name" : "GetMousePos", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "offset" : 107352, + "name" : "GetMousePosOnOpeningCurrentPopup", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "offset" : 107583, + "name" : "IsMouseDragging", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 107616, + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 107630, + "name" : "lock_threshold", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 107773, + "name" : "GetMouseDragDelta", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 107808, + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 107826, + "name" : "lock_threshold", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 108145, + "name" : "ResetMouseDragDelta", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 108182, + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 108247, + "name" : "GetMouseCursor", + "resultType" : "ImGuiMouseCursor" + }, { + "@type" : "AstFunctionDecl", + "offset" : 108545, + "name" : "SetMouseCursor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 108577, + "name" : "cursor_type", + "qualType" : "ImGuiMouseCursor", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 108668, + "name" : "CaptureMouseFromApp", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 108693, + "name" : "want_capture_mouse_value", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 109174, + "name" : "GetClipboardText", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 109001, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 109001, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 109001, + "text" : " Clipboard Utilities" + }, { + "@type" : "AstTextComment", + "offset" : 109028, + "text" : " - Also see the LogToClipboard() function to capture GUI into clipboard, or easily output text data to the clipboard." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 109222, + "name" : "SetClipboardText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 109251, + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 109727, + "name" : "LoadIniSettingsFromDisk", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 109265, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 109265, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 109265, + "text" : " Settings/.Ini Utilities" + }, { + "@type" : "AstTextComment", + "offset" : 109296, + "text" : " - The disk functions are automatically called if io.IniFilename != NULL (default is \"imgui.ini\")." + }, { + "@type" : "AstTextComment", + "offset" : 109401, + "text" : " - Set io.IniFilename to NULL to load/save manually. Read io.WantSaveIniSettings description about handling .ini saving manually." + }, { + "@type" : "AstTextComment", + "offset" : 109537, + "text" : " - Important: default value \"imgui.ini\" is relative to current working dir! Most apps will want to lock this to an absolute path (e.g. same path as executables)." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 109763, + "name" : "ini_filename", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 109966, + "name" : "LoadIniSettingsFromMemory", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 110004, + "name" : "ini_data", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 110021, + "name" : "ini_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 110180, + "name" : "SaveIniSettingsToDisk", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 110214, + "name" : "ini_filename", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 110450, + "name" : "SaveIniSettingsToMemory", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 110482, + "name" : "out_ini_size", + "qualType" : "size_t *", + "desugaredQualType" : "size_t *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 110825, + "name" : "DebugCheckVersionAndDataLayout", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 110723, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 110723, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 110723, + "text" : " Debug Utilities" + }, { + "@type" : "AstTextComment", + "offset" : 110746, + "text" : " - This is used by the IMGUI_CHECKVERSION() macro." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 110868, + "name" : "version_str", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 110888, + "name" : "sz_io", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "offset" : 110902, + "name" : "sz_style", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "offset" : 110919, + "name" : "sz_vec2", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "offset" : 110935, + "name" : "sz_vec4", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "offset" : 110951, + "name" : "sz_drawvert", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "offset" : 110971, + "name" : "sz_drawidx", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 111432, + "name" : "SetAllocatorFunctions", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 111040, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 111040, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 111040, + "text" : " Memory Allocators" + }, { + "@type" : "AstTextComment", + "offset" : 111065, + "text" : " - Those functions are not reliant on the current context." + }, { + "@type" : "AstTextComment", + "offset" : 111130, + "text" : " - DLL users: heaps and globals are not shared across DLL boundaries! You will need to call SetCurrentContext() + SetAllocatorFunctions()" + }, { + "@type" : "AstTextComment", + "offset" : 111274, + "text" : " for each static/DLL boundary you are calling from. Read \"Context and Memory Allocators\" section of imgui.cpp for more details." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 111472, + "name" : "alloc_func", + "qualType" : "ImGuiMemAllocFunc", + "desugaredQualType" : "void *(*)(size_t, void *)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 111501, + "name" : "free_func", + "qualType" : "ImGuiMemFreeFunc", + "desugaredQualType" : "void (*)(void *, void *)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 111518, + "name" : "user_data", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 111565, + "name" : "GetAllocatorFunctions", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 111606, + "name" : "p_alloc_func", + "qualType" : "ImGuiMemAllocFunc *", + "desugaredQualType" : "ImGuiMemAllocFunc *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 111638, + "name" : "p_free_func", + "qualType" : "ImGuiMemFreeFunc *", + "desugaredQualType" : "ImGuiMemFreeFunc *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 111658, + "name" : "p_user_data", + "qualType" : "void **", + "desugaredQualType" : "void **" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 111700, + "name" : "MemAlloc", + "resultType" : "void *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 111716, + "name" : "size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 111751, + "name" : "MemFree", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 111765, + "name" : "ptr", + "qualType" : "void *", + "desugaredQualType" : "void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 112043, + "name" : "GetPlatformIO", + "resultType" : "ImGuiPlatformIO &", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 111778, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 111778, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 111778, + "text" : " (Optional) Platform/OS interface for multi-viewport support" + }, { + "@type" : "AstTextComment", + "offset" : 111845, + "text" : " Read comments around the ImGuiPlatformIO structure for more details." + }, { + "@type" : "AstTextComment", + "offset" : 111921, + "text" : " Note: You may use GetWindowViewport() to get the current viewport of the current window." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 112210, + "name" : "UpdatePlatformWindows", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 112463, + "name" : "RenderPlatformWindowsDefault", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 112498, + "name" : "platform_render_arg", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 112532, + "name" : "renderer_render_arg", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 112816, + "name" : "DestroyPlatformWindows", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 113108, + "name" : "FindViewportByID", + "resultType" : "ImGuiViewport *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 113133, + "name" : "id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 113238, + "name" : "FindViewportByPlatformHandle", + "resultType" : "ImGuiViewport *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 113273, + "name" : "platform_handle", + "qualType" : "void *", + "desugaredQualType" : "void *" + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 113679, + "name" : "ImGuiWindowFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 113648, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 113648, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 113648, + "text" : " Flags for ImGui::Begin()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 113703, + "name" : "ImGuiWindowFlags_None", + "qualType" : "ImGuiWindowFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 113752, + "name" : "ImGuiWindowFlags_NoTitleBar", + "docComment" : "Disable title-bar", + "qualType" : "ImGuiWindowFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 113829, + "name" : "ImGuiWindowFlags_NoResize", + "docComment" : "Disable user resizing with the lower-right grip", + "qualType" : "ImGuiWindowFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 113936, + "name" : "ImGuiWindowFlags_NoMove", + "docComment" : "Disable user moving the window", + "qualType" : "ImGuiWindowFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 114026, + "name" : "ImGuiWindowFlags_NoScrollbar", + "docComment" : "Disable scrollbars (window can still scroll with mouse or programmatically)", + "qualType" : "ImGuiWindowFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 114161, + "name" : "ImGuiWindowFlags_NoScrollWithMouse", + "docComment" : "Disable user vertically scrolling with mouse wheel. On child window, mouse wheel will be forwarded to the parent unless NoScrollbar is also set.", + "qualType" : "ImGuiWindowFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 114365, + "name" : "ImGuiWindowFlags_NoCollapse", + "docComment" : "Disable user collapsing window by double-clicking on it. Also referred to as Window Menu Button (e.g. within a docking node).", + "qualType" : "ImGuiWindowFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 114550, + "name" : "ImGuiWindowFlags_AlwaysAutoResize", + "docComment" : "Resize every window to its content every frame", + "qualType" : "ImGuiWindowFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 114656, + "name" : "ImGuiWindowFlags_NoBackground", + "docComment" : "Disable drawing background color (WindowBg, etc.) and outside border. Similar as using SetNextWindowBgAlpha(0.0f).", + "qualType" : "ImGuiWindowFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 114830, + "name" : "ImGuiWindowFlags_NoSavedSettings", + "docComment" : "Never load/save settings in .ini file", + "qualType" : "ImGuiWindowFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : "256" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 114927, + "name" : "ImGuiWindowFlags_NoMouseInputs", + "docComment" : "Disable catching mouse, hovering test with pass through.", + "qualType" : "ImGuiWindowFlags_", + "order" : 10, + "value" : "1 << 9", + "evaluatedValue" : "512" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 115043, + "name" : "ImGuiWindowFlags_MenuBar", + "docComment" : "Has a menu-bar", + "qualType" : "ImGuiWindowFlags_", + "order" : 11, + "value" : "1 << 10", + "evaluatedValue" : "1024" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 115117, + "name" : "ImGuiWindowFlags_HorizontalScrollbar", + "docComment" : "Allow horizontal scrollbar to appear (off by default). You may use SetNextWindowContentSize(ImVec2(width,0.0f)); prior to calling Begin() to specify width. Read code in imgui_demo in the \"Horizontal Scrolling\" section.", + "qualType" : "ImGuiWindowFlags_", + "order" : 12, + "value" : "1 << 11", + "evaluatedValue" : "2048" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 115395, + "name" : "ImGuiWindowFlags_NoFocusOnAppearing", + "docComment" : "Disable taking focus when transitioning from hidden to visible state", + "qualType" : "ImGuiWindowFlags_", + "order" : 13, + "value" : "1 << 12", + "evaluatedValue" : "4096" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 115523, + "name" : "ImGuiWindowFlags_NoBringToFrontOnFocus", + "docComment" : "Disable bringing window to front when taking focus (e.g. clicking on it or programmatically giving it focus)", + "qualType" : "ImGuiWindowFlags_", + "order" : 14, + "value" : "1 << 13", + "evaluatedValue" : "8192" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 115691, + "name" : "ImGuiWindowFlags_AlwaysVerticalScrollbar", + "docComment" : "Always show vertical scrollbar (even if ContentSize.y < Size.y)", + "qualType" : "ImGuiWindowFlags_", + "order" : 15, + "value" : "1 << 14", + "evaluatedValue" : "16384" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 115814, + "name" : "ImGuiWindowFlags_AlwaysHorizontalScrollbar", + "docComment" : "Always show horizontal scrollbar (even if ContentSize.x < Size.x)", + "qualType" : "ImGuiWindowFlags_", + "order" : 16, + "value" : "1<< 15", + "evaluatedValue" : "32768" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 115939, + "name" : "ImGuiWindowFlags_AlwaysUseWindowPadding", + "docComment" : "Ensure child windows without border uses style.WindowPadding (ignored by default for non-bordered child windows, because more convenient)", + "qualType" : "ImGuiWindowFlags_", + "order" : 17, + "value" : "1 << 16", + "evaluatedValue" : "65536" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 116136, + "name" : "ImGuiWindowFlags_NoNavInputs", + "docComment" : "No gamepad/keyboard navigation within the window", + "qualType" : "ImGuiWindowFlags_", + "order" : 18, + "value" : "1 << 18", + "evaluatedValue" : "262144" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 116244, + "name" : "ImGuiWindowFlags_NoNavFocus", + "docComment" : "No focusing toward this window with gamepad/keyboard navigation (e.g. skipped by CTRL+TAB)", + "qualType" : "ImGuiWindowFlags_", + "order" : 19, + "value" : "1 << 19", + "evaluatedValue" : "524288" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 116394, + "name" : "ImGuiWindowFlags_UnsavedDocument", + "docComment" : "Display a dot next to the title. When used in a tab/docking context, tab is selected when clicking the X + closure is not assumed (will wait for user to stop submitting the tab). Otherwise closure is assumed when pressing the X, so if you keep submitting the tab may reappear at end of tab bar.", + "qualType" : "ImGuiWindowFlags_", + "order" : 20, + "value" : "1 << 20", + "evaluatedValue" : "1048576" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 116748, + "name" : "ImGuiWindowFlags_NoDocking", + "docComment" : "Disable docking of this window", + "qualType" : "ImGuiWindowFlags_", + "order" : 21, + "value" : "1 << 21", + "evaluatedValue" : "2097152" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 116839, + "name" : "ImGuiWindowFlags_NoNav", + "qualType" : "ImGuiWindowFlags_", + "order" : 22, + "value" : "ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus", + "evaluatedValue" : "786432" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 116945, + "name" : "ImGuiWindowFlags_NoDecoration", + "qualType" : "ImGuiWindowFlags_", + "order" : 23, + "value" : "ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoCollapse", + "evaluatedValue" : "43" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 117109, + "name" : "ImGuiWindowFlags_NoInputs", + "qualType" : "ImGuiWindowFlags_", + "order" : 24, + "value" : "ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus", + "evaluatedValue" : "786944" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 117267, + "name" : "ImGuiWindowFlags_NavFlattened", + "docComment" : "[BETA] On child window: allow gamepad/keyboard navigation to cross over parent border to this child or between sibling child windows.", + "qualType" : "ImGuiWindowFlags_", + "order" : 25, + "value" : "1 << 23", + "evaluatedValue" : "8388608" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 117460, + "name" : "ImGuiWindowFlags_ChildWindow", + "docComment" : "Don't use! For internal use by BeginChild()", + "qualType" : "ImGuiWindowFlags_", + "order" : 26, + "value" : "1 << 24", + "evaluatedValue" : "16777216" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 117563, + "name" : "ImGuiWindowFlags_Tooltip", + "docComment" : "Don't use! For internal use by BeginTooltip()", + "qualType" : "ImGuiWindowFlags_", + "order" : 27, + "value" : "1 << 25", + "evaluatedValue" : "33554432" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 117668, + "name" : "ImGuiWindowFlags_Popup", + "docComment" : "Don't use! For internal use by BeginPopup()", + "qualType" : "ImGuiWindowFlags_", + "order" : 28, + "value" : "1 << 26", + "evaluatedValue" : "67108864" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 117771, + "name" : "ImGuiWindowFlags_Modal", + "docComment" : "Don't use! For internal use by BeginPopupModal()", + "qualType" : "ImGuiWindowFlags_", + "order" : 29, + "value" : "1 << 27", + "evaluatedValue" : "134217728" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 117879, + "name" : "ImGuiWindowFlags_ChildMenu", + "docComment" : "Don't use! For internal use by BeginMenu()", + "qualType" : "ImGuiWindowFlags_", + "order" : 30, + "value" : "1 << 28", + "evaluatedValue" : "268435456" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 117981, + "name" : "ImGuiWindowFlags_DockNodeHost", + "docComment" : "Don't use! For internal use by Begin()/NewFrame()", + "qualType" : "ImGuiWindowFlags_", + "order" : 31, + "value" : "1 << 29", + "evaluatedValue" : "536870912" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 118357, + "name" : "ImGuiInputTextFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 118322, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 118322, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 118322, + "text" : " Flags for ImGui::InputText()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 118384, + "name" : "ImGuiInputTextFlags_None", + "qualType" : "ImGuiInputTextFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 118433, + "name" : "ImGuiInputTextFlags_CharsDecimal", + "docComment" : "Allow 0123456789.+-*/", + "qualType" : "ImGuiInputTextFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 118514, + "name" : "ImGuiInputTextFlags_CharsHexadecimal", + "docComment" : "Allow 0123456789ABCDEFabcdef", + "qualType" : "ImGuiInputTextFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 118602, + "name" : "ImGuiInputTextFlags_CharsUppercase", + "docComment" : "Turn a..z into A..Z", + "qualType" : "ImGuiInputTextFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 118681, + "name" : "ImGuiInputTextFlags_CharsNoBlank", + "docComment" : "Filter out spaces, tabs", + "qualType" : "ImGuiInputTextFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 118764, + "name" : "ImGuiInputTextFlags_AutoSelectAll", + "docComment" : "Select entire text when first taking mouse focus", + "qualType" : "ImGuiInputTextFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 118872, + "name" : "ImGuiInputTextFlags_EnterReturnsTrue", + "docComment" : "Return 'true' when Enter is pressed (as opposed to every time the value was modified). Consider looking at the IsItemDeactivatedAfterEdit() function.", + "qualType" : "ImGuiInputTextFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 119081, + "name" : "ImGuiInputTextFlags_CallbackCompletion", + "docComment" : "Callback on pressing TAB (for completion handling)", + "qualType" : "ImGuiInputTextFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 119191, + "name" : "ImGuiInputTextFlags_CallbackHistory", + "docComment" : "Callback on pressing Up/Down arrows (for history handling)", + "qualType" : "ImGuiInputTextFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 119309, + "name" : "ImGuiInputTextFlags_CallbackAlways", + "docComment" : "Callback on each iteration. User code may query cursor position, modify text buffer.", + "qualType" : "ImGuiInputTextFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : "256" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 119453, + "name" : "ImGuiInputTextFlags_CallbackCharFilter", + "docComment" : "Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard.", + "qualType" : "ImGuiInputTextFlags_", + "order" : 10, + "value" : "1 << 9", + "evaluatedValue" : "512" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 119647, + "name" : "ImGuiInputTextFlags_AllowTabInput", + "docComment" : "Pressing TAB input a ' ' character into the text field", + "qualType" : "ImGuiInputTextFlags_", + "order" : 11, + "value" : "1 << 10", + "evaluatedValue" : "1024" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 119762, + "name" : "ImGuiInputTextFlags_CtrlEnterForNewLine", + "docComment" : "In multi-line mode, unfocus with Enter, add new line with Ctrl+Enter (default is opposite: unfocus with Ctrl+Enter, add line with Enter).", + "qualType" : "ImGuiInputTextFlags_", + "order" : 12, + "value" : "1 << 11", + "evaluatedValue" : "2048" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 119959, + "name" : "ImGuiInputTextFlags_NoHorizontalScroll", + "docComment" : "Disable following the cursor horizontally", + "qualType" : "ImGuiInputTextFlags_", + "order" : 13, + "value" : "1 << 12", + "evaluatedValue" : "4096" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 120060, + "name" : "ImGuiInputTextFlags_AlwaysOverwrite", + "docComment" : "Overwrite mode", + "qualType" : "ImGuiInputTextFlags_", + "order" : 14, + "value" : "1 << 13", + "evaluatedValue" : "8192" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 120134, + "name" : "ImGuiInputTextFlags_ReadOnly", + "docComment" : "Read-only mode", + "qualType" : "ImGuiInputTextFlags_", + "order" : 15, + "value" : "1 << 14", + "evaluatedValue" : "16384" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 120208, + "name" : "ImGuiInputTextFlags_Password", + "docComment" : "Password mode, display all characters as '*'", + "qualType" : "ImGuiInputTextFlags_", + "order" : 16, + "value" : "1 << 15", + "evaluatedValue" : "32768" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 120312, + "name" : "ImGuiInputTextFlags_NoUndoRedo", + "docComment" : "Disable undo/redo. Note that input text owns the text data while active, if you want to provide your own undo/redo stack you need e.g. to call ClearActiveID().", + "qualType" : "ImGuiInputTextFlags_", + "order" : 17, + "value" : "1 << 16", + "evaluatedValue" : "65536" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 120531, + "name" : "ImGuiInputTextFlags_CharsScientific", + "docComment" : "Allow 0123456789.+-*/eE (Scientific notation input)", + "qualType" : "ImGuiInputTextFlags_", + "order" : 18, + "value" : "1 << 17", + "evaluatedValue" : "131072" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 120642, + "name" : "ImGuiInputTextFlags_CallbackResize", + "docComment" : "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)", + "qualType" : "ImGuiInputTextFlags_", + "order" : 19, + "value" : "1 << 18", + "evaluatedValue" : "262144" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 121039, + "name" : "ImGuiInputTextFlags_CallbackEdit", + "docComment" : "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)", + "qualType" : "ImGuiInputTextFlags_", + "order" : 20, + "value" : "1 << 19", + "evaluatedValue" : "524288" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 121350, + "name" : "ImGuiInputTextFlags_AlwaysInsertMode", + "docComment" : "[renamed in 1.82] name was not matching behavior", + "qualType" : "ImGuiInputTextFlags_", + "order" : 21, + "value" : "ImGuiInputTextFlags_AlwaysOverwrite", + "evaluatedValue" : "8192" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 121559, + "name" : "ImGuiTreeNodeFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 121495, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 121495, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 121495, + "text" : " Flags for ImGui::TreeNodeEx(), ImGui::CollapsingHeader*()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 121585, + "name" : "ImGuiTreeNodeFlags_None", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 121634, + "name" : "ImGuiTreeNodeFlags_Selected", + "docComment" : "Draw as selected", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 121710, + "name" : "ImGuiTreeNodeFlags_Framed", + "docComment" : "Draw frame with background (e.g. for CollapsingHeader)", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 121824, + "name" : "ImGuiTreeNodeFlags_AllowItemOverlap", + "docComment" : "Hit testing to allow subsequent widgets to overlap this one", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 121943, + "name" : "ImGuiTreeNodeFlags_NoTreePushOnOpen", + "docComment" : "Don't do a TreePush() when open (e.g. for CollapsingHeader) = no extra indent nor pushing on ID stack", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 122104, + "name" : "ImGuiTreeNodeFlags_NoAutoOpenOnLog", + "docComment" : "Don't automatically and temporarily open node when Logging is active (by default logging will automatically open tree nodes)", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 122288, + "name" : "ImGuiTreeNodeFlags_DefaultOpen", + "docComment" : "Default node to be open", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 122371, + "name" : "ImGuiTreeNodeFlags_OpenOnDoubleClick", + "docComment" : "Need double-click to open node", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 122461, + "name" : "ImGuiTreeNodeFlags_OpenOnArrow", + "docComment" : "Only open when clicking on the arrow part. If ImGuiTreeNodeFlags_OpenOnDoubleClick is also set, single-click arrow or double-click all box to open.", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 122668, + "name" : "ImGuiTreeNodeFlags_Leaf", + "docComment" : "No collapsing, no arrow (use as a convenience for leaf nodes).", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : "256" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 122790, + "name" : "ImGuiTreeNodeFlags_Bullet", + "docComment" : "Display a bullet instead of arrow", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 10, + "value" : "1 << 9", + "evaluatedValue" : "512" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 122883, + "name" : "ImGuiTreeNodeFlags_FramePadding", + "docComment" : "Use FramePadding (even for an unframed text node) to vertically align text baseline to regular widget height. Equivalent to calling AlignTextToFramePadding().", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 11, + "value" : "1 << 10", + "evaluatedValue" : "1024" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 123101, + "name" : "ImGuiTreeNodeFlags_SpanAvailWidth", + "docComment" : "Extend hit box to the right-most edge, even if not framed. This is not the default in order to allow adding other items on the same line. In the future we may refactor the hit system to be front-to-back, allowing natural overlaps and then this can become the default.", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 12, + "value" : "1 << 11", + "evaluatedValue" : "2048" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 123428, + "name" : "ImGuiTreeNodeFlags_SpanFullWidth", + "docComment" : "Extend hit box to the left-most and right-most edges (bypass the indented area).", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 13, + "value" : "1 << 12", + "evaluatedValue" : "4096" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 123568, + "name" : "ImGuiTreeNodeFlags_NavLeftJumpsBackHere", + "docComment" : "(WIP) Nav: left direction may move to this TreeNode() from any of its child (items submitted between TreeNode and TreePop)", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 14, + "value" : "1 << 13", + "evaluatedValue" : "8192" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 123910, + "name" : "ImGuiTreeNodeFlags_CollapsingHeader", + "docComment" : "ImGuiTreeNodeFlags_NoScrollOnOpen = 1 < < 14, // FIXME: TODO: Disable automatic scroll on TreePop() if node got just open and contents is not visible", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 15, + "value" : "ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog", + "evaluatedValue" : "26" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 124918, + "name" : "ImGuiPopupFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 124059, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 124059, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 124059, + "text" : " Flags for OpenPopup*(), BeginPopupContext*(), IsPopupOpen() functions." + }, { + "@type" : "AstTextComment", + "offset" : 124133, + "text" : " - To be backward compatible with older API which took an 'int mouse_button = 1' argument, we need to treat" + }, { + "@type" : "AstTextComment", + "offset" : 124243, + "text" : " small flags values as a mouse button index, so we encode the mouse button in the first few bits of the flags." + }, { + "@type" : "AstTextComment", + "offset" : 124358, + "text" : " It is therefore guaranteed to be legal to pass a mouse button index in ImGuiPopupFlags." + }, { + "@type" : "AstTextComment", + "offset" : 124451, + "text" : " - For the same reason, we exceptionally default the ImGuiPopupFlags argument of BeginPopupContextXXX functions to 1 instead of 0." + }, { + "@type" : "AstTextComment", + "offset" : 124584, + "text" : " IMPORTANT: because the default parameter is 1 (==ImGuiPopupFlags_MouseButtonRight), if you rely on the default parameter" + }, { + "@type" : "AstTextComment", + "offset" : 124710, + "text" : " and want to another another flag, you need to pass in the ImGuiPopupFlags_MouseButtonRight flag." + }, { + "@type" : "AstTextComment", + "offset" : 124812, + "text" : " - Multiple buttons currently cannot be combined/or-ed in those functions (we could allow it later)." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 124941, + "name" : "ImGuiPopupFlags_None", + "qualType" : "ImGuiPopupFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 124990, + "name" : "ImGuiPopupFlags_MouseButtonLeft", + "docComment" : "For BeginPopupContext*(): open on Left Mouse release. Guaranteed to always be == 0 (same as ImGuiMouseButton_Left)", + "qualType" : "ImGuiPopupFlags_", + "order" : 1, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 125164, + "name" : "ImGuiPopupFlags_MouseButtonRight", + "docComment" : "For BeginPopupContext*(): open on Right Mouse release. Guaranteed to always be == 1 (same as ImGuiMouseButton_Right)", + "qualType" : "ImGuiPopupFlags_", + "order" : 2, + "value" : "1", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 125340, + "name" : "ImGuiPopupFlags_MouseButtonMiddle", + "docComment" : "For BeginPopupContext*(): open on Middle Mouse release. Guaranteed to always be == 2 (same as ImGuiMouseButton_Middle)", + "qualType" : "ImGuiPopupFlags_", + "order" : 3, + "value" : "2", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 125518, + "name" : "ImGuiPopupFlags_MouseButtonMask_", + "qualType" : "ImGuiPopupFlags_", + "order" : 4, + "value" : "0x1F", + "evaluatedValue" : "31" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 125570, + "name" : "ImGuiPopupFlags_MouseButtonDefault_", + "qualType" : "ImGuiPopupFlags_", + "order" : 5, + "value" : "1", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 125619, + "name" : "ImGuiPopupFlags_NoOpenOverExistingPopup", + "docComment" : "For OpenPopup*(), BeginPopupContext*(): don't open if there's already a popup at the same level of the popup stack", + "qualType" : "ImGuiPopupFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 125793, + "name" : "ImGuiPopupFlags_NoOpenOverItems", + "docComment" : "For BeginPopupContextWindow(): don't return true when hovering items, only when hovering empty space", + "qualType" : "ImGuiPopupFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 125953, + "name" : "ImGuiPopupFlags_AnyPopupId", + "docComment" : "For IsPopupOpen(): ignore the ImGuiID parameter and test for any popup.", + "qualType" : "ImGuiPopupFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 126084, + "name" : "ImGuiPopupFlags_AnyPopupLevel", + "docComment" : "For IsPopupOpen(): search/test at any level of the popup stack (default test in the current level)", + "qualType" : "ImGuiPopupFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : "256" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 126242, + "name" : "ImGuiPopupFlags_AnyPopup", + "qualType" : "ImGuiPopupFlags_", + "order" : 10, + "value" : "ImGuiPopupFlags_AnyPopupId | ImGuiPopupFlags_AnyPopupLevel", + "evaluatedValue" : "384" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 126385, + "name" : "ImGuiSelectableFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 126349, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 126349, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 126349, + "text" : " Flags for ImGui::Selectable()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 126413, + "name" : "ImGuiSelectableFlags_None", + "qualType" : "ImGuiSelectableFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 126462, + "name" : "ImGuiSelectableFlags_DontClosePopups", + "docComment" : "Clicking this don't close parent popup window", + "qualType" : "ImGuiSelectableFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 126567, + "name" : "ImGuiSelectableFlags_SpanAllColumns", + "docComment" : "Selectable frame can span all columns (text will still fit in current column)", + "qualType" : "ImGuiSelectableFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 126704, + "name" : "ImGuiSelectableFlags_AllowDoubleClick", + "docComment" : "Generate press events on double clicks too", + "qualType" : "ImGuiSelectableFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 126806, + "name" : "ImGuiSelectableFlags_Disabled", + "docComment" : "Cannot be selected, display grayed out text", + "qualType" : "ImGuiSelectableFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 126909, + "name" : "ImGuiSelectableFlags_AllowItemOverlap", + "docComment" : "(WIP) Hit testing to allow subsequent widgets to overlap this one", + "qualType" : "ImGuiSelectableFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 127072, + "name" : "ImGuiComboFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 127036, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 127036, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 127036, + "text" : " Flags for ImGui::BeginCombo()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 127095, + "name" : "ImGuiComboFlags_None", + "qualType" : "ImGuiComboFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 127144, + "name" : "ImGuiComboFlags_PopupAlignLeft", + "docComment" : "Align the popup toward the left by default", + "qualType" : "ImGuiComboFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 127246, + "name" : "ImGuiComboFlags_HeightSmall", + "docComment" : "Max ~4 items visible. Tip: If you want your combo popup to be a specific size you can use SetNextWindowSizeConstraints() prior to calling BeginCombo()", + "qualType" : "ImGuiComboFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 127456, + "name" : "ImGuiComboFlags_HeightRegular", + "docComment" : "Max ~8 items visible (default)", + "qualType" : "ImGuiComboFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 127546, + "name" : "ImGuiComboFlags_HeightLarge", + "docComment" : "Max ~20 items visible", + "qualType" : "ImGuiComboFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 127627, + "name" : "ImGuiComboFlags_HeightLargest", + "docComment" : "As many fitting items as possible", + "qualType" : "ImGuiComboFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 127720, + "name" : "ImGuiComboFlags_NoArrowButton", + "docComment" : "Display on the preview box without the square arrow button", + "qualType" : "ImGuiComboFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 127838, + "name" : "ImGuiComboFlags_NoPreview", + "docComment" : "Display only a square arrow button", + "qualType" : "ImGuiComboFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 127932, + "name" : "ImGuiComboFlags_HeightMask_", + "qualType" : "ImGuiComboFlags_", + "order" : 8, + "value" : "ImGuiComboFlags_HeightSmall | ImGuiComboFlags_HeightRegular | ImGuiComboFlags_HeightLarge | ImGuiComboFlags_HeightLargest", + "evaluatedValue" : "30" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 128139, + "name" : "ImGuiTabBarFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 128102, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 128102, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 128102, + "text" : " Flags for ImGui::BeginTabBar()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 128163, + "name" : "ImGuiTabBarFlags_None", + "qualType" : "ImGuiTabBarFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 128220, + "name" : "ImGuiTabBarFlags_Reorderable", + "docComment" : "Allow manually dragging tabs to re-order them + New tabs are appended at the end of list", + "qualType" : "ImGuiTabBarFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 128376, + "name" : "ImGuiTabBarFlags_AutoSelectNewTabs", + "docComment" : "Automatically select new tabs when they appear", + "qualType" : "ImGuiTabBarFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 128490, + "name" : "ImGuiTabBarFlags_TabListPopupButton", + "docComment" : "Disable buttons to open the tab list popup", + "qualType" : "ImGuiTabBarFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 128600, + "name" : "ImGuiTabBarFlags_NoCloseWithMiddleMouseButton", + "docComment" : "Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You can still repro this behavior on user's side with if (IsItemHovered() & & IsMouseClicked(2)) *p_open = false.", + "qualType" : "ImGuiTabBarFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 128880, + "name" : "ImGuiTabBarFlags_NoTabListScrollingButtons", + "docComment" : "Disable scrolling buttons (apply when fitting policy is ImGuiTabBarFlags_FittingPolicyScroll)", + "qualType" : "ImGuiTabBarFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 129041, + "name" : "ImGuiTabBarFlags_NoTooltip", + "docComment" : "Disable tooltips when hovering a tab", + "qualType" : "ImGuiTabBarFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 129145, + "name" : "ImGuiTabBarFlags_FittingPolicyResizeDown", + "docComment" : "Resize tabs when they don't fit", + "qualType" : "ImGuiTabBarFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 129244, + "name" : "ImGuiTabBarFlags_FittingPolicyScroll", + "docComment" : "Add scroll buttons when tabs don't fit", + "qualType" : "ImGuiTabBarFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 129350, + "name" : "ImGuiTabBarFlags_FittingPolicyMask_", + "qualType" : "ImGuiTabBarFlags_", + "order" : 9, + "value" : "ImGuiTabBarFlags_FittingPolicyResizeDown | ImGuiTabBarFlags_FittingPolicyScroll", + "evaluatedValue" : "192" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 129485, + "name" : "ImGuiTabBarFlags_FittingPolicyDefault_", + "qualType" : "ImGuiTabBarFlags_", + "order" : 10, + "value" : "ImGuiTabBarFlags_FittingPolicyResizeDown", + "evaluatedValue" : "64" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 129620, + "name" : "ImGuiTabItemFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 129582, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 129582, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 129582, + "text" : " Flags for ImGui::BeginTabItem()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 129645, + "name" : "ImGuiTabItemFlags_None", + "qualType" : "ImGuiTabItemFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 129702, + "name" : "ImGuiTabItemFlags_UnsavedDocument", + "docComment" : "Display a dot next to the title + tab is selected when clicking the X + closure is not assumed (will wait for user to stop submitting the tab). Otherwise closure is assumed when pressing the X, so if you keep submitting the tab may reappear at end of tab bar.", + "qualType" : "ImGuiTabItemFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 130029, + "name" : "ImGuiTabItemFlags_SetSelected", + "docComment" : "Trigger flag to programmatically make the tab selected when calling BeginTabItem()", + "qualType" : "ImGuiTabItemFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 130179, + "name" : "ImGuiTabItemFlags_NoCloseWithMiddleMouseButton", + "docComment" : "Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You can still repro this behavior on user's side with if (IsItemHovered() & & IsMouseClicked(2)) *p_open = false.", + "qualType" : "ImGuiTabItemFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 130459, + "name" : "ImGuiTabItemFlags_NoPushId", + "docComment" : "Don't call PushID(tab->ID)/PopID() on BeginTabItem()/EndTabItem()", + "qualType" : "ImGuiTabItemFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 130592, + "name" : "ImGuiTabItemFlags_NoTooltip", + "docComment" : "Disable tooltip for the given tab", + "qualType" : "ImGuiTabItemFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 130693, + "name" : "ImGuiTabItemFlags_NoReorder", + "docComment" : "Disable reordering this tab or having another tab cross over this tab", + "qualType" : "ImGuiTabItemFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 130830, + "name" : "ImGuiTabItemFlags_Leading", + "docComment" : "Enforce the tab position to the left of the tab bar (after the tab list popup button)", + "qualType" : "ImGuiTabItemFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 130983, + "name" : "ImGuiTabItemFlags_Trailing", + "docComment" : "Enforce the tab position to the right of the tab bar (before the scrolling buttons)", + "qualType" : "ImGuiTabItemFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : "128" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 133356, + "name" : "ImGuiTableFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 131136, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 131136, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 131136, + "text" : " Flags for ImGui::BeginTable()" + }, { + "@type" : "AstTextComment", + "offset" : 131169, + "text" : " [BETA API] API may evolve slightly! If you use this, please update to the next version when it comes out!" + }, { + "@type" : "AstTextComment", + "offset" : 131278, + "text" : " - Important! Sizing policies have complex and subtle side effects, more so than you would expect." + }, { + "@type" : "AstTextComment", + "offset" : 131379, + "text" : " Read comments/demos carefully + experiment with live demos to get acquainted with them." + }, { + "@type" : "AstTextComment", + "offset" : 131472, + "text" : " - The DEFAULT sizing policies are:" + }, { + "@type" : "AstTextComment", + "offset" : 131510, + "text" : " - Default to ImGuiTableFlags_SizingFixedFit if ScrollX is on, or if host window has ImGuiWindowFlags_AlwaysAutoResize." + }, { + "@type" : "AstTextComment", + "offset" : 131638, + "text" : " - Default to ImGuiTableFlags_SizingStretchSame if ScrollX is off." + }, { + "@type" : "AstTextComment", + "offset" : 131710, + "text" : " - When ScrollX is off:" + }, { + "@type" : "AstTextComment", + "offset" : 131736, + "text" : " - Table defaults to ImGuiTableFlags_SizingStretchSame -> all Columns defaults to ImGuiTableColumnFlags_WidthStretch with same weight." + }, { + "@type" : "AstTextComment", + "offset" : 131876, + "text" : " - Columns sizing policy allowed: Stretch (default), Fixed/Auto." + }, { + "@type" : "AstTextComment", + "offset" : 131946, + "text" : " - Fixed Columns will generally obtain their requested width (unless the table cannot fit them all)." + }, { + "@type" : "AstTextComment", + "offset" : 132052, + "text" : " - Stretch Columns will share the remaining width." + }, { + "@type" : "AstTextComment", + "offset" : 132108, + "text" : " - Mixed Fixed/Stretch columns is possible but has various side-effects on resizing behaviors." + }, { + "@type" : "AstTextComment", + "offset" : 132208, + "text" : " The typical use of mixing sizing policies is: any number of LEADING Fixed columns, followed by one or two TRAILING Stretch columns." + }, { + "@type" : "AstTextComment", + "offset" : 132348, + "text" : " (this is because the visible order of columns have subtle but necessary effects on how they react to manual resizing)." + }, { + "@type" : "AstTextComment", + "offset" : 132475, + "text" : " - When ScrollX is on:" + }, { + "@type" : "AstTextComment", + "offset" : 132500, + "text" : " - Table defaults to ImGuiTableFlags_SizingFixedFit -> all Columns defaults to ImGuiTableColumnFlags_WidthFixed" + }, { + "@type" : "AstTextComment", + "offset" : 132617, + "text" : " - Columns sizing policy allowed: Fixed/Auto mostly." + }, { + "@type" : "AstTextComment", + "offset" : 132675, + "text" : " - Fixed Columns can be enlarged as needed. Table will show an horizontal scrollbar if needed." + }, { + "@type" : "AstTextComment", + "offset" : 132775, + "text" : " - When using auto-resizing (non-resizable) fixed columns, querying the content width to use item right-alignment e.g. SetNextItemWidth(-FLT_MIN) doesn't make sense, would create a feedback loop." + }, { + "@type" : "AstTextComment", + "offset" : 132976, + "text" : " - Using Stretch columns OFTEN DOES NOT MAKE SENSE if ScrollX is on, UNLESS you have specified a value for 'inner_width' in BeginTable()." + }, { + "@type" : "AstTextComment", + "offset" : 133119, + "text" : " If you specify a value for 'inner_width' then effectively the scrolling space is known and Stretch or mixed Fixed/Stretch columns become meaningful again." + }, { + "@type" : "AstTextComment", + "offset" : 133282, + "text" : " - Read on documentation at the top of imgui_tables.cpp for details." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 133395, + "name" : "ImGuiTableFlags_None", + "docComment" : "Features", + "qualType" : "ImGuiTableFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 133447, + "name" : "ImGuiTableFlags_Resizable", + "docComment" : "Enable resizing columns.", + "qualType" : "ImGuiTableFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 133534, + "name" : "ImGuiTableFlags_Reorderable", + "docComment" : "Enable reordering columns in header row (need calling TableSetupColumn() + TableHeadersRow() to display headers)", + "qualType" : "ImGuiTableFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 133709, + "name" : "ImGuiTableFlags_Hideable", + "docComment" : "Enable hiding/disabling columns in context menu.", + "qualType" : "ImGuiTableFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 133820, + "name" : "ImGuiTableFlags_Sortable", + "docComment" : "Enable sorting. Call TableGetSortSpecs() to obtain sort specs. Also see ImGuiTableFlags_SortMulti and ImGuiTableFlags_SortTristate.", + "qualType" : "ImGuiTableFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 134014, + "name" : "ImGuiTableFlags_NoSavedSettings", + "docComment" : "Disable persisting columns order, width and sort settings in the .ini file.", + "qualType" : "ImGuiTableFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 134152, + "name" : "ImGuiTableFlags_ContextMenuInBody", + "docComment" : "Right-click on columns body/contents will display table context menu. By default it is available in TableHeadersRow().", + "qualType" : "ImGuiTableFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 134352, + "name" : "ImGuiTableFlags_RowBg", + "docComment" : "Set each RowBg color with ImGuiCol_TableRowBg or ImGuiCol_TableRowBgAlt (equivalent of calling TableSetBgColor with ImGuiTableBgFlags_RowBg0 on each row manually)", + "qualType" : "ImGuiTableFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 134577, + "name" : "ImGuiTableFlags_BordersInnerH", + "docComment" : "Draw horizontal borders between rows.", + "qualType" : "ImGuiTableFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 134677, + "name" : "ImGuiTableFlags_BordersOuterH", + "docComment" : "Draw horizontal borders at the top and bottom.", + "qualType" : "ImGuiTableFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : "256" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 134786, + "name" : "ImGuiTableFlags_BordersInnerV", + "docComment" : "Draw vertical borders between columns.", + "qualType" : "ImGuiTableFlags_", + "order" : 10, + "value" : "1 << 9", + "evaluatedValue" : "512" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 134887, + "name" : "ImGuiTableFlags_BordersOuterV", + "docComment" : "Draw vertical borders on the left and right sides.", + "qualType" : "ImGuiTableFlags_", + "order" : 11, + "value" : "1 << 10", + "evaluatedValue" : "1024" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 135000, + "name" : "ImGuiTableFlags_BordersH", + "docComment" : "Draw horizontal borders.", + "qualType" : "ImGuiTableFlags_", + "order" : 12, + "value" : "ImGuiTableFlags_BordersInnerH | ImGuiTableFlags_BordersOuterH", + "evaluatedValue" : "384" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 135140, + "name" : "ImGuiTableFlags_BordersV", + "docComment" : "Draw vertical borders.", + "qualType" : "ImGuiTableFlags_", + "order" : 13, + "value" : "ImGuiTableFlags_BordersInnerV | ImGuiTableFlags_BordersOuterV", + "evaluatedValue" : "1536" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 135278, + "name" : "ImGuiTableFlags_BordersInner", + "docComment" : "Draw inner borders.", + "qualType" : "ImGuiTableFlags_", + "order" : 14, + "value" : "ImGuiTableFlags_BordersInnerV | ImGuiTableFlags_BordersInnerH", + "evaluatedValue" : "640" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 135413, + "name" : "ImGuiTableFlags_BordersOuter", + "docComment" : "Draw outer borders.", + "qualType" : "ImGuiTableFlags_", + "order" : 15, + "value" : "ImGuiTableFlags_BordersOuterV | ImGuiTableFlags_BordersOuterH", + "evaluatedValue" : "1280" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 135548, + "name" : "ImGuiTableFlags_Borders", + "docComment" : "Draw all borders.", + "qualType" : "ImGuiTableFlags_", + "order" : 16, + "value" : "ImGuiTableFlags_BordersInner | ImGuiTableFlags_BordersOuter", + "evaluatedValue" : "1920" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 135681, + "name" : "ImGuiTableFlags_NoBordersInBody", + "docComment" : "[ALPHA] Disable vertical borders in columns Body (borders will always appears in Headers). -> May move to style", + "qualType" : "ImGuiTableFlags_", + "order" : 17, + "value" : "1 << 11", + "evaluatedValue" : "2048" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 135855, + "name" : "ImGuiTableFlags_NoBordersInBodyUntilResize", + "docComment" : "[ALPHA] Disable vertical borders in columns Body until hovered for resize (borders will always appears in Headers). -> May move to style", + "qualType" : "ImGuiTableFlags_", + "order" : 18, + "value" : "1 << 12", + "evaluatedValue" : "4096" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 136101, + "name" : "ImGuiTableFlags_SizingFixedFit", + "docComment" : "Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching contents width.", + "qualType" : "ImGuiTableFlags_", + "order" : 19, + "value" : "1 << 13", + "evaluatedValue" : "8192" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 136266, + "name" : "ImGuiTableFlags_SizingFixedSame", + "docComment" : "Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching the maximum contents width of all columns. Implicitly enable ImGuiTableFlags_NoKeepColumnsVisible.", + "qualType" : "ImGuiTableFlags_", + "order" : 20, + "value" : "2 << 13", + "evaluatedValue" : "16384" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 136514, + "name" : "ImGuiTableFlags_SizingStretchProp", + "docComment" : "Columns default to _WidthStretch with default weights proportional to each columns contents widths.", + "qualType" : "ImGuiTableFlags_", + "order" : 21, + "value" : "3 << 13", + "evaluatedValue" : "24576" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 136676, + "name" : "ImGuiTableFlags_SizingStretchSame", + "docComment" : "Columns default to _WidthStretch with default weights all equal, unless overridden by TableSetupColumn().", + "qualType" : "ImGuiTableFlags_", + "order" : 22, + "value" : "4 << 13", + "evaluatedValue" : "32768" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 136872, + "name" : "ImGuiTableFlags_NoHostExtendX", + "docComment" : "Make outer width auto-fit to columns, overriding outer_size.x value. Only available when ScrollX/ScrollY are disabled and Stretch columns are not used.", + "qualType" : "ImGuiTableFlags_", + "order" : 23, + "value" : "1 << 16", + "evaluatedValue" : "65536" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 137086, + "name" : "ImGuiTableFlags_NoHostExtendY", + "docComment" : "Make outer height stop exactly at outer_size.y (prevent auto-extending table past the limit). Only available when ScrollX/ScrollY are disabled. Data below the limit will be clipped and not visible.", + "qualType" : "ImGuiTableFlags_", + "order" : 24, + "value" : "1 << 17", + "evaluatedValue" : "131072" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 137346, + "name" : "ImGuiTableFlags_NoKeepColumnsVisible", + "docComment" : "Disable keeping column always minimally visible when ScrollX is off and table gets too small. Not recommended if columns are resizable.", + "qualType" : "ImGuiTableFlags_", + "order" : 25, + "value" : "1 << 18", + "evaluatedValue" : "262144" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 137544, + "name" : "ImGuiTableFlags_PreciseWidths", + "docComment" : "Disable distributing remainder width to stretched columns (width allocation on a 100-wide table with 3 columns: Without this flag: 33,33,34. With this flag: 33,33,33). With larger number of columns, resizing will appear to be less smooth.", + "qualType" : "ImGuiTableFlags_", + "order" : 26, + "value" : "1 << 19", + "evaluatedValue" : "524288" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 137861, + "name" : "ImGuiTableFlags_NoClip", + "docComment" : "Disable clipping rectangle for every individual columns (reduce draw command count, items will be able to overflow into other columns). Generally incompatible with TableSetupScrollFreeze().", + "qualType" : "ImGuiTableFlags_", + "order" : 27, + "value" : "1 << 20", + "evaluatedValue" : "1048576" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 138128, + "name" : "ImGuiTableFlags_PadOuterX", + "docComment" : "Default if BordersOuterV is on. Enable outer-most padding. Generally desirable if you have headers.", + "qualType" : "ImGuiTableFlags_", + "order" : 28, + "value" : "1 << 21", + "evaluatedValue" : "2097152" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 138290, + "name" : "ImGuiTableFlags_NoPadOuterX", + "docComment" : "Default if BordersOuterV is off. Disable outer-most padding.", + "qualType" : "ImGuiTableFlags_", + "order" : 29, + "value" : "1 << 22", + "evaluatedValue" : "4194304" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 138413, + "name" : "ImGuiTableFlags_NoPadInnerX", + "docComment" : "Disable inner padding between columns (double inner padding if BordersOuterV is on, single inner padding if BordersOuterV is off).", + "qualType" : "ImGuiTableFlags_", + "order" : 30, + "value" : "1 << 23", + "evaluatedValue" : "8388608" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 138623, + "name" : "ImGuiTableFlags_ScrollX", + "docComment" : "Enable horizontal scrolling. Require 'outer_size' parameter of BeginTable() to specify the container size. Changes default sizing policy. Because this create a child window, ScrollY is currently generally recommended when using ScrollX.", + "qualType" : "ImGuiTableFlags_", + "order" : 31, + "value" : "1 << 24", + "evaluatedValue" : "16777216" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 138922, + "name" : "ImGuiTableFlags_ScrollY", + "docComment" : "Enable vertical scrolling. Require 'outer_size' parameter of BeginTable() to specify the container size.", + "qualType" : "ImGuiTableFlags_", + "order" : 32, + "value" : "1 << 25", + "evaluatedValue" : "33554432" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 139104, + "name" : "ImGuiTableFlags_SortMulti", + "docComment" : "Hold shift when clicking headers to sort on multiple column. TableGetSortSpecs() may return specs where (SpecsCount > 1).", + "qualType" : "ImGuiTableFlags_", + "order" : 33, + "value" : "1 << 26", + "evaluatedValue" : "67108864" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 139288, + "name" : "ImGuiTableFlags_SortTristate", + "docComment" : "Allow no sorting, disable default sorting. TableGetSortSpecs() may return specs where (SpecsCount == 0).", + "qualType" : "ImGuiTableFlags_", + "order" : 34, + "value" : "1 << 27", + "evaluatedValue" : "134217728" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 139497, + "name" : "ImGuiTableFlags_SizingMask_", + "docComment" : "[Internal] Combinations and masks", + "qualType" : "ImGuiTableFlags_", + "order" : 35, + "value" : "ImGuiTableFlags_SizingFixedFit | ImGuiTableFlags_SizingFixedSame | ImGuiTableFlags_SizingStretchProp | ImGuiTableFlags_SizingStretchSame", + "evaluatedValue" : "57344" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 140165, + "name" : "ImGuiTableColumnFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 140123, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 140123, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 140123, + "text" : " Flags for ImGui::TableSetupColumn()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 140227, + "name" : "ImGuiTableColumnFlags_None", + "docComment" : "Input configuration flags", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 140280, + "name" : "ImGuiTableColumnFlags_Disabled", + "docComment" : "Overriding/master disable flag: hide column, won't show in context menu (unlike calling TableSetColumnEnabled() which manipulates the user accessible state)", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 140500, + "name" : "ImGuiTableColumnFlags_DefaultHide", + "docComment" : "Default as a hidden/disabled column.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 140600, + "name" : "ImGuiTableColumnFlags_DefaultSort", + "docComment" : "Default as a sorting column.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 140692, + "name" : "ImGuiTableColumnFlags_WidthStretch", + "docComment" : "Column will stretch. Preferable with horizontal scrolling disabled (default if table sizing policy is _SizingStretchSame or _SizingStretchProp).", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 140900, + "name" : "ImGuiTableColumnFlags_WidthFixed", + "docComment" : "Column will not stretch. Preferable with horizontal scrolling enabled (default if table sizing policy is _SizingFixedFit and table is resizable).", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 141109, + "name" : "ImGuiTableColumnFlags_NoResize", + "docComment" : "Disable manual resizing.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 141197, + "name" : "ImGuiTableColumnFlags_NoReorder", + "docComment" : "Disable manual reordering this column, this will also prevent other columns from crossing over this column.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 141368, + "name" : "ImGuiTableColumnFlags_NoHide", + "docComment" : "Disable ability to hide/disable this column.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 141476, + "name" : "ImGuiTableColumnFlags_NoClip", + "docComment" : "Disable clipping for this column (all NoClip columns will render in a same draw command).", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : "256" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 141629, + "name" : "ImGuiTableColumnFlags_NoSort", + "docComment" : "Disable ability to sort on this field (even if ImGuiTableFlags_Sortable is set on the table).", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 10, + "value" : "1 << 9", + "evaluatedValue" : "512" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 141786, + "name" : "ImGuiTableColumnFlags_NoSortAscending", + "docComment" : "Disable ability to sort in the ascending direction.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 11, + "value" : "1 << 10", + "evaluatedValue" : "1024" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 141901, + "name" : "ImGuiTableColumnFlags_NoSortDescending", + "docComment" : "Disable ability to sort in the descending direction.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 12, + "value" : "1 << 11", + "evaluatedValue" : "2048" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 142017, + "name" : "ImGuiTableColumnFlags_NoHeaderLabel", + "docComment" : "TableHeadersRow() will not submit label for this column. Convenient for some small columns. Name will still appear in context menu.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 13, + "value" : "1 << 12", + "evaluatedValue" : "4096" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 142212, + "name" : "ImGuiTableColumnFlags_NoHeaderWidth", + "docComment" : "Disable header text width contribution to automatic column width.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 14, + "value" : "1 << 13", + "evaluatedValue" : "8192" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 142341, + "name" : "ImGuiTableColumnFlags_PreferSortAscending", + "docComment" : "Make the initial sort direction Ascending when first sorting on this column (default).", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 15, + "value" : "1 << 14", + "evaluatedValue" : "16384" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 142491, + "name" : "ImGuiTableColumnFlags_PreferSortDescending", + "docComment" : "Make the initial sort direction Descending when first sorting on this column.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 16, + "value" : "1 << 15", + "evaluatedValue" : "32768" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 142632, + "name" : "ImGuiTableColumnFlags_IndentEnable", + "docComment" : "Use current Indent value when entering cell (default for column 0).", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 17, + "value" : "1 << 16", + "evaluatedValue" : "65536" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 142763, + "name" : "ImGuiTableColumnFlags_IndentDisable", + "docComment" : "Ignore current Indent value when entering cell (default for columns > 0). Indentation changes _within_ the cell will still be honored.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 18, + "value" : "1 << 17", + "evaluatedValue" : "131072" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 143026, + "name" : "ImGuiTableColumnFlags_IsEnabled", + "docComment" : "Status: is enabled == not hidden by user/api (referred to as \"Hide\" in _DefaultHide and _NoHide) flags.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 19, + "value" : "1 << 24", + "evaluatedValue" : "16777216" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 143193, + "name" : "ImGuiTableColumnFlags_IsVisible", + "docComment" : "Status: is visible == is enabled AND not clipped by scrolling.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 20, + "value" : "1 << 25", + "evaluatedValue" : "33554432" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 143319, + "name" : "ImGuiTableColumnFlags_IsSorted", + "docComment" : "Status: is currently part of the sort specs", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 21, + "value" : "1 << 26", + "evaluatedValue" : "67108864" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 143426, + "name" : "ImGuiTableColumnFlags_IsHovered", + "docComment" : "Status: is hovered by mouse", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 22, + "value" : "1 << 27", + "evaluatedValue" : "134217728" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 143559, + "name" : "ImGuiTableColumnFlags_WidthMask_", + "docComment" : "[Internal] Combinations and masks", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 23, + "value" : "ImGuiTableColumnFlags_WidthStretch | ImGuiTableColumnFlags_WidthFixed", + "evaluatedValue" : "24" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 143680, + "name" : "ImGuiTableColumnFlags_IndentMask_", + "docComment" : "[Internal] Combinations and masks", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 24, + "value" : "ImGuiTableColumnFlags_IndentEnable | ImGuiTableColumnFlags_IndentDisable", + "evaluatedValue" : "196608" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 143804, + "name" : "ImGuiTableColumnFlags_StatusMask_", + "docComment" : "[Internal] Combinations and masks", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 25, + "value" : "ImGuiTableColumnFlags_IsEnabled | ImGuiTableColumnFlags_IsVisible | ImGuiTableColumnFlags_IsSorted | ImGuiTableColumnFlags_IsHovered", + "evaluatedValue" : "251658240" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 143988, + "name" : "ImGuiTableColumnFlags_NoDirectResize_", + "docComment" : "[Internal] Disable user resizing this column directly (it may however we resized indirectly from its left edge)", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 26, + "value" : "1 << 30", + "evaluatedValue" : "1073741824" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 144488, + "name" : "ImGuiTableRowFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 144450, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 144450, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 144450, + "text" : " Flags for ImGui::TableNextRow()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 144514, + "name" : "ImGuiTableRowFlags_None", + "qualType" : "ImGuiTableRowFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 144571, + "name" : "ImGuiTableRowFlags_Headers", + "docComment" : "Identify header row (set default background color + width of its contents accounted different for auto column width)", + "qualType" : "ImGuiTableRowFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 145516, + "name" : "ImGuiTableBgTarget_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 144757, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 144757, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 144757, + "text" : " Enum for ImGui::TableSetBgColor()" + }, { + "@type" : "AstTextComment", + "offset" : 144794, + "text" : " Background colors are rendering in 3 layers:" + }, { + "@type" : "AstTextComment", + "offset" : 144842, + "text" : " - Layer 0: draw with RowBg0 color if set, otherwise draw with ColumnBg0 if set." + }, { + "@type" : "AstTextComment", + "offset" : 144926, + "text" : " - Layer 1: draw with RowBg1 color if set, otherwise draw with ColumnBg1 if set." + }, { + "@type" : "AstTextComment", + "offset" : 145010, + "text" : " - Layer 2: draw with CellBg color if set." + }, { + "@type" : "AstTextComment", + "offset" : 145056, + "text" : " The purpose of the two row/columns layers is to let you decide if a background color changes should override or blend with the existing color." + }, { + "@type" : "AstTextComment", + "offset" : 145202, + "text" : " When using ImGuiTableFlags_RowBg on the table, each row has the RowBg0 color automatically set for odd/even rows." + }, { + "@type" : "AstTextComment", + "offset" : 145319, + "text" : " If you set the color of RowBg0 target, your color will override the existing RowBg0 color." + }, { + "@type" : "AstTextComment", + "offset" : 145413, + "text" : " If you set the color of RowBg1 or ColumnBg1 target, your color will blend over the RowBg0 color." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 145542, + "name" : "ImGuiTableBgTarget_None", + "qualType" : "ImGuiTableBgTarget_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 145599, + "name" : "ImGuiTableBgTarget_RowBg0", + "docComment" : "Set row background color 0 (generally used for background, automatically set when ImGuiTableFlags_RowBg is used)", + "qualType" : "ImGuiTableBgTarget_", + "order" : 1, + "value" : "1", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 145779, + "name" : "ImGuiTableBgTarget_RowBg1", + "docComment" : "Set row background color 1 (generally used for selection marking)", + "qualType" : "ImGuiTableBgTarget_", + "order" : 2, + "value" : "2", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 145912, + "name" : "ImGuiTableBgTarget_CellBg", + "docComment" : "Set cell background color (top-most color)", + "qualType" : "ImGuiTableBgTarget_", + "order" : 3, + "value" : "3", + "evaluatedValue" : "3" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 146065, + "name" : "ImGuiFocusedFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 146024, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 146024, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 146024, + "text" : " Flags for ImGui::IsWindowFocused()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 146090, + "name" : "ImGuiFocusedFlags_None", + "qualType" : "ImGuiFocusedFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 146147, + "name" : "ImGuiFocusedFlags_ChildWindows", + "docComment" : "Return true if any children of the window is focused", + "qualType" : "ImGuiFocusedFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 146267, + "name" : "ImGuiFocusedFlags_RootWindow", + "docComment" : "Test from root window (top most parent of the current hierarchy)", + "qualType" : "ImGuiFocusedFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 146399, + "name" : "ImGuiFocusedFlags_AnyWindow", + "docComment" : "Return true if any window is focused. Important: If you are trying to tell how to dispatch your low-level inputs, do NOT use this. Use 'io.WantCaptureMouse' instead! Please read the FAQ!", + "qualType" : "ImGuiFocusedFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 146653, + "name" : "ImGuiFocusedFlags_NoPopupHierarchy", + "docComment" : "Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow)", + "qualType" : "ImGuiFocusedFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 146846, + "name" : "ImGuiFocusedFlags_DockHierarchy", + "docComment" : "Consider docking hierarchy (treat dockspace host as parent of docked window) (when used with _ChildWindows or _RootWindow)", + "qualType" : "ImGuiFocusedFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 147036, + "name" : "ImGuiFocusedFlags_RootAndChildWindows", + "qualType" : "ImGuiFocusedFlags_", + "order" : 6, + "value" : "ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows", + "evaluatedValue" : "3" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 147489, + "name" : "ImGuiHoveredFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 147154, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 147154, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 147154, + "text" : " Flags for ImGui::IsItemHovered(), ImGui::IsWindowHovered()" + }, { + "@type" : "AstTextComment", + "offset" : 147216, + "text" : " Note: if you are trying to check whether your mouse should be dispatched to Dear ImGui or to your app, you should use 'io.WantCaptureMouse' instead! Please read the FAQ!" + }, { + "@type" : "AstTextComment", + "offset" : 147389, + "text" : " Note: windows with the ImGuiWindowFlags_NoInputs flag are ignored by IsWindowHovered() calls." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 147514, + "name" : "ImGuiHoveredFlags_None", + "docComment" : "Return true if directly over the item/window, not obstructed by another window, not obstructed by an active popup or modal blocking inputs under them.", + "qualType" : "ImGuiHoveredFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 147732, + "name" : "ImGuiHoveredFlags_ChildWindows", + "docComment" : "IsWindowHovered() only: Return true if any children of the window is hovered", + "qualType" : "ImGuiHoveredFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 147876, + "name" : "ImGuiHoveredFlags_RootWindow", + "docComment" : "IsWindowHovered() only: Test from root window (top most parent of the current hierarchy)", + "qualType" : "ImGuiHoveredFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 148032, + "name" : "ImGuiHoveredFlags_AnyWindow", + "docComment" : "IsWindowHovered() only: Return true if any window is hovered", + "qualType" : "ImGuiHoveredFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 148160, + "name" : "ImGuiHoveredFlags_NoPopupHierarchy", + "docComment" : "IsWindowHovered() only: Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow)", + "qualType" : "ImGuiHoveredFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 148377, + "name" : "ImGuiHoveredFlags_DockHierarchy", + "docComment" : "IsWindowHovered() only: Consider docking hierarchy (treat dockspace host as parent of docked window) (when used with _ChildWindows or _RootWindow)", + "qualType" : "ImGuiHoveredFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 148591, + "name" : "ImGuiHoveredFlags_AllowWhenBlockedByPopup", + "docComment" : "Return true even if a popup window is normally blocking access to this item/window", + "qualType" : "ImGuiHoveredFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 148927, + "name" : "ImGuiHoveredFlags_AllowWhenBlockedByActiveItem", + "docComment" : "Return true even if an active item is blocking access to this item/window. Useful for Drag and Drop patterns.", + "qualType" : "ImGuiHoveredFlags_", + "order" : 7, + "value" : "1 << 7", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 149104, + "name" : "ImGuiHoveredFlags_AllowWhenOverlapped", + "docComment" : "IsItemHovered() only: Return true even if the position is obstructed or overlapped by another window", + "qualType" : "ImGuiHoveredFlags_", + "order" : 8, + "value" : "1 << 8", + "evaluatedValue" : "256" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 149272, + "name" : "ImGuiHoveredFlags_AllowWhenDisabled", + "docComment" : "IsItemHovered() only: Return true even if the item is disabled", + "qualType" : "ImGuiHoveredFlags_", + "order" : 9, + "value" : "1 << 9", + "evaluatedValue" : "512" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 149402, + "name" : "ImGuiHoveredFlags_RectOnly", + "qualType" : "ImGuiHoveredFlags_", + "order" : 10, + "value" : "ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped", + "evaluatedValue" : "416" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 149588, + "name" : "ImGuiHoveredFlags_RootAndChildWindows", + "qualType" : "ImGuiHoveredFlags_", + "order" : 11, + "value" : "ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows", + "evaluatedValue" : "3" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 149948, + "name" : "ImGuiDockNodeFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 149706, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 149706, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 149706, + "text" : " Flags for ImGui::DockSpace(), shared/inherited by child nodes." + }, { + "@type" : "AstTextComment", + "offset" : 149772, + "text" : " (Some flags can be applied to individual nodes directly)" + }, { + "@type" : "AstTextComment", + "offset" : 149832, + "text" : " FIXME-DOCK: Also see ImGuiDockNodeFlagsPrivate_ which may involve using the WIP and internal DockBuilder api." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 149974, + "name" : "ImGuiDockNodeFlags_None", + "qualType" : "ImGuiDockNodeFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 150031, + "name" : "ImGuiDockNodeFlags_KeepAliveOnly", + "docComment" : "Shared // Don't display the dockspace node but keep it alive. Windows docked into this dockspace node won't be undocked.", + "qualType" : "ImGuiDockNodeFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 150361, + "name" : "ImGuiDockNodeFlags_NoDockingInCentralNode", + "docComment" : "Shared // Disable docking inside the Central Node, which will be always kept empty.", + "qualType" : "ImGuiDockNodeFlags_", + "order" : 2, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 150518, + "name" : "ImGuiDockNodeFlags_PassthruCentralNode", + "docComment" : "Shared // Enable passthru dockspace: 1) DockSpace() will render a ImGuiCol_WindowBg background covering everything excepted the Central Node when empty. Meaning the host window should probably use SetNextWindowBgAlpha(0.0f) prior to Begin() when using this. 2) When Central Node is empty: let inputs pass-through + won't display a DockingEmptyBg background. See demo for details.", + "qualType" : "ImGuiDockNodeFlags_", + "order" : 3, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 150971, + "name" : "ImGuiDockNodeFlags_NoSplit", + "docComment" : "Shared/Local // Disable splitting the node into smaller nodes. Useful e.g. when embedding dockspaces into a main root one (the root one may have splitting disabled to reduce confusion). Note: when turned off, existing splits will be preserved.", + "qualType" : "ImGuiDockNodeFlags_", + "order" : 4, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 151282, + "name" : "ImGuiDockNodeFlags_NoResize", + "docComment" : "Shared/Local // Disable resizing node using the splitter/separators. Useful with programmatically setup dockspaces.", + "qualType" : "ImGuiDockNodeFlags_", + "order" : 5, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 151465, + "name" : "ImGuiDockNodeFlags_AutoHideTabBar", + "docComment" : "Shared/Local // Tab bar will automatically hide when there is a single window in the dock node.", + "qualType" : "ImGuiDockNodeFlags_", + "order" : 6, + "value" : "1 << 6", + "evaluatedValue" : "64" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 151707, + "name" : "ImGuiDragDropFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 151630, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 151630, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 151630, + "text" : " Flags for ImGui::BeginDragDropSource(), ImGui::AcceptDragDropPayload()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 151733, + "name" : "ImGuiDragDropFlags_None", + "qualType" : "ImGuiDragDropFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 151825, + "name" : "ImGuiDragDropFlags_SourceNoPreviewTooltip", + "docComment" : "By default, a successful call to BeginDragDropSource opens a tooltip so you can display a preview or description of the source contents. This flag disable this behavior.", + "qualType" : "ImGuiDragDropFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 152062, + "name" : "ImGuiDragDropFlags_SourceNoDisableHover", + "docComment" : "By default, when dragging we clear data so that IsItemHovered() will return false, to avoid subsequent user code submitting tooltips. This flag disable this behavior so you can still call IsItemHovered() on the source item.", + "qualType" : "ImGuiDragDropFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 152353, + "name" : "ImGuiDragDropFlags_SourceNoHoldToOpenOthers", + "docComment" : "Disable the behavior that allows to open tree nodes and collapsing header by holding over them while dragging a source item.", + "qualType" : "ImGuiDragDropFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 152545, + "name" : "ImGuiDragDropFlags_SourceAllowNullID", + "docComment" : "Allow items such as Text(), Image() that have no unique identifier to be used as drag source, by manufacturing a temporary identifier based on their window-relative position. This is extremely unusual within the dear imgui ecosystem and so we made it explicit.", + "qualType" : "ImGuiDragDropFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 152873, + "name" : "ImGuiDragDropFlags_SourceExtern", + "docComment" : "External source (from outside of dear imgui), won't attempt to read current item/window info. Will always return true. Only one Extern source can be active simultaneously.", + "qualType" : "ImGuiDragDropFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 153112, + "name" : "ImGuiDragDropFlags_SourceAutoExpirePayload", + "docComment" : "Automatically expire the payload if the source cease to be submitted (otherwise payloads are persisting while being dragged)", + "qualType" : "ImGuiDragDropFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 153341, + "name" : "ImGuiDragDropFlags_AcceptBeforeDelivery", + "docComment" : "AcceptDragDropPayload() will returns true even before the mouse button is released. You can then call IsDelivery() to test if the payload needs to be delivered.", + "qualType" : "ImGuiDragDropFlags_", + "order" : 7, + "value" : "1 << 10", + "evaluatedValue" : "1024" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 153569, + "name" : "ImGuiDragDropFlags_AcceptNoDrawDefaultRect", + "docComment" : "Do not draw the default highlight rectangle when hovering over target.", + "qualType" : "ImGuiDragDropFlags_", + "order" : 8, + "value" : "1 << 11", + "evaluatedValue" : "2048" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 153707, + "name" : "ImGuiDragDropFlags_AcceptNoPreviewTooltip", + "docComment" : "Request hiding the BeginDragDropSource tooltip from the BeginDragDropTarget site.", + "qualType" : "ImGuiDragDropFlags_", + "order" : 9, + "value" : "1 << 12", + "evaluatedValue" : "4096" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 153856, + "name" : "ImGuiDragDropFlags_AcceptPeekOnly", + "docComment" : "For peeking ahead and inspecting the payload before delivery.", + "qualType" : "ImGuiDragDropFlags_", + "order" : 10, + "value" : "ImGuiDragDropFlags_AcceptBeforeDelivery | ImGuiDragDropFlags_AcceptNoDrawDefaultRect", + "evaluatedValue" : "3072" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 154495, + "name" : "ImGuiDataType_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 154469, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 154469, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 154469, + "text" : " A primary data type" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 154516, + "name" : "ImGuiDataType_S8", + "docComment" : "signed char / char (with sensible compilers)", + "qualType" : "ImGuiDataType_", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 154592, + "name" : "ImGuiDataType_U8", + "docComment" : "unsigned char", + "qualType" : "ImGuiDataType_", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 154637, + "name" : "ImGuiDataType_S16", + "docComment" : "short", + "qualType" : "ImGuiDataType_", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 154674, + "name" : "ImGuiDataType_U16", + "docComment" : "unsigned short", + "qualType" : "ImGuiDataType_", + "order" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 154720, + "name" : "ImGuiDataType_S32", + "docComment" : "int", + "qualType" : "ImGuiDataType_", + "order" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 154755, + "name" : "ImGuiDataType_U32", + "docComment" : "unsigned int", + "qualType" : "ImGuiDataType_", + "order" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 154799, + "name" : "ImGuiDataType_S64", + "docComment" : "long long / __int64", + "qualType" : "ImGuiDataType_", + "order" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 154850, + "name" : "ImGuiDataType_U64", + "docComment" : "unsigned long long / unsigned __int64", + "qualType" : "ImGuiDataType_", + "order" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 154919, + "name" : "ImGuiDataType_Float", + "docComment" : "float", + "qualType" : "ImGuiDataType_", + "order" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 154956, + "name" : "ImGuiDataType_Double", + "docComment" : "double", + "qualType" : "ImGuiDataType_", + "order" : 9 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 154994, + "name" : "ImGuiDataType_COUNT", + "qualType" : "ImGuiDataType_", + "order" : 10 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 155047, + "name" : "ImGuiDir_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 155020, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 155020, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 155020, + "text" : " A cardinal direction" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155063, + "name" : "ImGuiDir_None", + "qualType" : "ImGuiDir_", + "order" : -1, + "value" : "-1", + "evaluatedValue" : "-1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155090, + "name" : "ImGuiDir_Left", + "qualType" : "ImGuiDir_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155116, + "name" : "ImGuiDir_Right", + "qualType" : "ImGuiDir_", + "order" : 1, + "value" : "1", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155142, + "name" : "ImGuiDir_Up", + "qualType" : "ImGuiDir_", + "order" : 2, + "value" : "2", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155168, + "name" : "ImGuiDir_Down", + "qualType" : "ImGuiDir_", + "order" : 3, + "value" : "3", + "evaluatedValue" : "3" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155194, + "name" : "ImGuiDir_COUNT", + "qualType" : "ImGuiDir_", + "order" : 4 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 155241, + "name" : "ImGuiSortDirection_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 155215, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 155215, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 155215, + "text" : " A sorting direction" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155267, + "name" : "ImGuiSortDirection_None", + "qualType" : "ImGuiSortDirection_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155308, + "name" : "ImGuiSortDirection_Ascending", + "docComment" : "Ascending = 0->9, A->Z etc.", + "qualType" : "ImGuiSortDirection_", + "order" : 1, + "value" : "1", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155383, + "name" : "ImGuiSortDirection_Descending", + "docComment" : "Descending = 9->0, Z->A etc.", + "qualType" : "ImGuiSortDirection_", + "order" : 2, + "value" : "2", + "evaluatedValue" : "2" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 155550, + "name" : "ImGuiKey_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 155461, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 155461, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 155461, + "text" : " User fill ImGuiIO.KeyMap[] array with indices into the ImGuiIO.KeysDown[512] array" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155566, + "name" : "ImGuiKey_Tab", + "qualType" : "ImGuiKey_", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155584, + "name" : "ImGuiKey_LeftArrow", + "qualType" : "ImGuiKey_", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155608, + "name" : "ImGuiKey_RightArrow", + "qualType" : "ImGuiKey_", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155633, + "name" : "ImGuiKey_UpArrow", + "qualType" : "ImGuiKey_", + "order" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155655, + "name" : "ImGuiKey_DownArrow", + "qualType" : "ImGuiKey_", + "order" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155679, + "name" : "ImGuiKey_PageUp", + "qualType" : "ImGuiKey_", + "order" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155700, + "name" : "ImGuiKey_PageDown", + "qualType" : "ImGuiKey_", + "order" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155723, + "name" : "ImGuiKey_Home", + "qualType" : "ImGuiKey_", + "order" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155742, + "name" : "ImGuiKey_End", + "qualType" : "ImGuiKey_", + "order" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155760, + "name" : "ImGuiKey_Insert", + "qualType" : "ImGuiKey_", + "order" : 9 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155781, + "name" : "ImGuiKey_Delete", + "qualType" : "ImGuiKey_", + "order" : 10 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155802, + "name" : "ImGuiKey_Backspace", + "qualType" : "ImGuiKey_", + "order" : 11 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155826, + "name" : "ImGuiKey_Space", + "qualType" : "ImGuiKey_", + "order" : 12 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155846, + "name" : "ImGuiKey_Enter", + "qualType" : "ImGuiKey_", + "order" : 13 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155866, + "name" : "ImGuiKey_Escape", + "qualType" : "ImGuiKey_", + "order" : 14 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155887, + "name" : "ImGuiKey_KeyPadEnter", + "qualType" : "ImGuiKey_", + "order" : 15 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155913, + "name" : "ImGuiKey_A", + "docComment" : "for text edit CTRL+A: select all", + "qualType" : "ImGuiKey_", + "order" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 155981, + "name" : "ImGuiKey_C", + "docComment" : "for text edit CTRL+C: copy", + "qualType" : "ImGuiKey_", + "order" : 17 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 156043, + "name" : "ImGuiKey_V", + "docComment" : "for text edit CTRL+V: paste", + "qualType" : "ImGuiKey_", + "order" : 18 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 156106, + "name" : "ImGuiKey_X", + "docComment" : "for text edit CTRL+X: cut", + "qualType" : "ImGuiKey_", + "order" : 19 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 156167, + "name" : "ImGuiKey_Y", + "docComment" : "for text edit CTRL+Y: redo", + "qualType" : "ImGuiKey_", + "order" : 20 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 156229, + "name" : "ImGuiKey_Z", + "docComment" : "for text edit CTRL+Z: undo", + "qualType" : "ImGuiKey_", + "order" : 21 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 156291, + "name" : "ImGuiKey_COUNT", + "qualType" : "ImGuiKey_", + "order" : 22 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 156438, + "name" : "ImGuiKeyModFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 156312, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 156312, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 156312, + "text" : " To test io.KeyMods (which is a combination of individual fields io.KeyCtrl, io.KeyShift, io.KeyAlt set by user/backend)" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 156462, + "name" : "ImGuiKeyModFlags_None", + "qualType" : "ImGuiKeyModFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 156499, + "name" : "ImGuiKeyModFlags_Ctrl", + "qualType" : "ImGuiKeyModFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 156541, + "name" : "ImGuiKeyModFlags_Shift", + "qualType" : "ImGuiKeyModFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 156583, + "name" : "ImGuiKeyModFlags_Alt", + "qualType" : "ImGuiKeyModFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 156625, + "name" : "ImGuiKeyModFlags_Super", + "qualType" : "ImGuiKeyModFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 157228, + "name" : "ImGuiNavInput_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 156668, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 156668, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 156668, + "text" : " Gamepad/Keyboard navigation" + }, { + "@type" : "AstTextComment", + "offset" : 156699, + "text" : " Keyboard: Set io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard to enable. NewFrame() will automatically fill io.NavInputs[] based on your io.KeysDown[] + io.KeyMap[] arrays." + }, { + "@type" : "AstTextComment", + "offset" : 156880, + "text" : " Gamepad: Set io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad to enable. Backend: set ImGuiBackendFlags_HasGamepad and fill the io.NavInputs[] fields before calling NewFrame(). Note that io.NavInputs[] is cleared by EndFrame()." + }, { + "@type" : "AstTextComment", + "offset" : 157115, + "text" : " Read instructions in imgui.cpp for more details. Download PNG/PSD at http://dearimgui.org/controls_sheets." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 157272, + "name" : "ImGuiNavInput_Activate", + "docComment" : "activate / open / toggle / tweak value // e.g. Cross (PS4), A (Xbox), A (Switch), Space (Keyboard)", + "qualType" : "ImGuiNavInput_", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 157414, + "name" : "ImGuiNavInput_Cancel", + "docComment" : "cancel / close / exit // e.g. Circle (PS4), B (Xbox), B (Switch), Escape (Keyboard)", + "qualType" : "ImGuiNavInput_", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 157557, + "name" : "ImGuiNavInput_Input", + "docComment" : "text input / on-screen keyboard // e.g. Triang.(PS4), Y (Xbox), X (Switch), Return (Keyboard)", + "qualType" : "ImGuiNavInput_", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 157700, + "name" : "ImGuiNavInput_Menu", + "docComment" : "tap: toggle menu / hold: focus, move, resize // e.g. Square (PS4), X (Xbox), Y (Switch), Alt (Keyboard)", + "qualType" : "ImGuiNavInput_", + "order" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 157840, + "name" : "ImGuiNavInput_DpadLeft", + "docComment" : "move / tweak / resize window (w/ PadMenu) // e.g. D-pad Left/Right/Up/Down (Gamepads), Arrow keys (Keyboard)", + "qualType" : "ImGuiNavInput_", + "order" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 157988, + "name" : "ImGuiNavInput_DpadRight", + "qualType" : "ImGuiNavInput_", + "order" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 158024, + "name" : "ImGuiNavInput_DpadUp", + "qualType" : "ImGuiNavInput_", + "order" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 158060, + "name" : "ImGuiNavInput_DpadDown", + "qualType" : "ImGuiNavInput_", + "order" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 158096, + "name" : "ImGuiNavInput_LStickLeft", + "docComment" : "scroll / move window (w/ PadMenu) // e.g. Left Analog Stick Left/Right/Up/Down", + "qualType" : "ImGuiNavInput_", + "order" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 158222, + "name" : "ImGuiNavInput_LStickRight", + "qualType" : "ImGuiNavInput_", + "order" : 9 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 158258, + "name" : "ImGuiNavInput_LStickUp", + "qualType" : "ImGuiNavInput_", + "order" : 10 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 158294, + "name" : "ImGuiNavInput_LStickDown", + "qualType" : "ImGuiNavInput_", + "order" : 11 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 158330, + "name" : "ImGuiNavInput_FocusPrev", + "docComment" : "next window (w/ PadMenu) // e.g. L1 or L2 (PS4), LB or LT (Xbox), L or ZL (Switch)", + "qualType" : "ImGuiNavInput_", + "order" : 12 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 158469, + "name" : "ImGuiNavInput_FocusNext", + "docComment" : "prev window (w/ PadMenu) // e.g. R1 or R2 (PS4), RB or RT (Xbox), R or ZL (Switch)", + "qualType" : "ImGuiNavInput_", + "order" : 13 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 158608, + "name" : "ImGuiNavInput_TweakSlow", + "docComment" : "slower tweaks // e.g. L1 or L2 (PS4), LB or LT (Xbox), L or ZL (Switch)", + "qualType" : "ImGuiNavInput_", + "order" : 14 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 158747, + "name" : "ImGuiNavInput_TweakFast", + "docComment" : "faster tweaks // e.g. R1 or R2 (PS4), RB or RT (Xbox), R or ZL (Switch)", + "qualType" : "ImGuiNavInput_", + "order" : 15 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 159200, + "name" : "ImGuiNavInput_KeyLeft_", + "docComment" : "move left // = Arrow keys", + "qualType" : "ImGuiNavInput_", + "order" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 159297, + "name" : "ImGuiNavInput_KeyRight_", + "docComment" : "move right", + "qualType" : "ImGuiNavInput_", + "order" : 17 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 159344, + "name" : "ImGuiNavInput_KeyUp_", + "docComment" : "move up", + "qualType" : "ImGuiNavInput_", + "order" : 18 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 159388, + "name" : "ImGuiNavInput_KeyDown_", + "docComment" : "move down", + "qualType" : "ImGuiNavInput_", + "order" : 19 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 159434, + "name" : "ImGuiNavInput_COUNT", + "qualType" : "ImGuiNavInput_", + "order" : 20 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 159459, + "name" : "ImGuiNavInput_InternalStart_", + "qualType" : "ImGuiNavInput_", + "order" : 21, + "value" : "ImGuiNavInput_KeyLeft_", + "evaluatedValue" : "16" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 159596, + "name" : "ImGuiConfigFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 159519, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 159519, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 159519, + "text" : " Configuration flags stored in io.ConfigFlags. Set by user/application." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 159620, + "name" : "ImGuiConfigFlags_None", + "qualType" : "ImGuiConfigFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 159669, + "name" : "ImGuiConfigFlags_NavEnableKeyboard", + "docComment" : "Master keyboard navigation enable flag. NewFrame() will automatically fill io.NavInputs[] based on io.KeysDown[].", + "qualType" : "ImGuiConfigFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 159842, + "name" : "ImGuiConfigFlags_NavEnableGamepad", + "docComment" : "Master gamepad navigation enable flag. This is mostly to instruct your imgui backend to fill io.NavInputs[]. Backend also needs to set ImGuiBackendFlags_HasGamepad.", + "qualType" : "ImGuiConfigFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 160066, + "name" : "ImGuiConfigFlags_NavEnableSetMousePos", + "docComment" : "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.", + "qualType" : "ImGuiConfigFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 160453, + "name" : "ImGuiConfigFlags_NavNoCaptureKeyboard", + "docComment" : "Instruct navigation to not set the io.WantCaptureKeyboard flag when io.NavActive is set.", + "qualType" : "ImGuiConfigFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 160601, + "name" : "ImGuiConfigFlags_NoMouse", + "docComment" : "Instruct imgui to clear mouse position/buttons in NewFrame(). This allows ignoring the mouse information set by the backend.", + "qualType" : "ImGuiConfigFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 160785, + "name" : "ImGuiConfigFlags_NoMouseCursorChange", + "docComment" : "Instruct backend to not alter mouse cursor shape and visibility. Use if the backend cursor changes are interfering with yours and you don't want to use SetMouseCursor() to change mouse cursor. You may want to honor requests from imgui by reading GetMouseCursor() yourself instead.", + "qualType" : "ImGuiConfigFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 161148, + "name" : "ImGuiConfigFlags_DockingEnable", + "docComment" : "Docking enable flags.", + "qualType" : "ImGuiConfigFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 161417, + "name" : "ImGuiConfigFlags_ViewportsEnable", + "docComment" : "Viewport enable flags (require both ImGuiBackendFlags_PlatformHasViewports + ImGuiBackendFlags_RendererHasViewports set by the respective backends)", + "qualType" : "ImGuiConfigFlags_", + "order" : 8, + "value" : "1 << 10", + "evaluatedValue" : "1024" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 161624, + "name" : "ImGuiConfigFlags_DpiEnableScaleViewports", + "docComment" : "[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.", + "qualType" : "ImGuiConfigFlags_", + "order" : 9, + "value" : "1 << 14", + "evaluatedValue" : "16384" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 161917, + "name" : "ImGuiConfigFlags_DpiEnableScaleFonts", + "docComment" : "[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.", + "qualType" : "ImGuiConfigFlags_", + "order" : 10, + "value" : "1 << 15", + "evaluatedValue" : "32768" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 162419, + "name" : "ImGuiConfigFlags_IsSRGB", + "docComment" : "Application is SRGB-aware.", + "qualType" : "ImGuiConfigFlags_", + "order" : 11, + "value" : "1 << 20", + "evaluatedValue" : "1048576" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 162505, + "name" : "ImGuiConfigFlags_IsTouchScreen", + "docComment" : "Application is using a touch screen instead of a mouse.", + "qualType" : "ImGuiConfigFlags_", + "order" : 12, + "value" : "1 << 21", + "evaluatedValue" : "2097152" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 162723, + "name" : "ImGuiBackendFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 162622, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 162622, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 162622, + "text" : " Backend capabilities flags stored in io.BackendFlags. Set by imgui_impl_xxx or custom backend." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 162748, + "name" : "ImGuiBackendFlags_None", + "qualType" : "ImGuiBackendFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 162797, + "name" : "ImGuiBackendFlags_HasGamepad", + "docComment" : "Backend Platform supports gamepad and currently has one connected.", + "qualType" : "ImGuiBackendFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 162923, + "name" : "ImGuiBackendFlags_HasMouseCursors", + "docComment" : "Backend Platform supports honoring GetMouseCursor() value to change the OS cursor shape.", + "qualType" : "ImGuiBackendFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 163071, + "name" : "ImGuiBackendFlags_HasSetMousePos", + "docComment" : "Backend Platform supports io.WantSetMousePos requests to reposition the OS mouse position (only used if ImGuiConfigFlags_NavEnableSetMousePos is set).", + "qualType" : "ImGuiBackendFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 163281, + "name" : "ImGuiBackendFlags_RendererHasVtxOffset", + "docComment" : "Backend Renderer supports ImDrawCmd::VtxOffset. This enables output of large meshes (64K+ vertices) while still using 16-bit indices.", + "qualType" : "ImGuiBackendFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 163499, + "name" : "ImGuiBackendFlags_PlatformHasViewports", + "docComment" : "Backend Platform supports multiple viewports.", + "qualType" : "ImGuiBackendFlags_", + "order" : 5, + "value" : "1 << 10", + "evaluatedValue" : "1024" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 163604, + "name" : "ImGuiBackendFlags_HasMouseHoveredViewport", + "docComment" : "Backend Platform supports setting io.MouseHoveredViewport to the viewport directly under the mouse _IGNORING_ viewports with the ImGuiViewportFlags_NoInputs flag and _REGARDLESS_ of whether another viewport is focused and may be capturing the mouse. This information is _NOT EASY_ to provide correctly with most high-level engines! Don't set this without studying _carefully_ how the backends handle ImGuiViewportFlags_NoInputs!", + "qualType" : "ImGuiBackendFlags_", + "order" : 6, + "value" : "1 << 11", + "evaluatedValue" : "2048" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 164092, + "name" : "ImGuiBackendFlags_RendererHasViewports", + "docComment" : "Backend Renderer supports multiple viewports.", + "qualType" : "ImGuiBackendFlags_", + "order" : 7, + "value" : "1 << 12", + "evaluatedValue" : "4096" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 164256, + "name" : "ImGuiCol_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 164199, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 164199, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 164199, + "text" : " Enumeration for PushStyleColor() / PopStyleColor()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 164272, + "name" : "ImGuiCol_Text", + "qualType" : "ImGuiCol_", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 164291, + "name" : "ImGuiCol_TextDisabled", + "qualType" : "ImGuiCol_", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 164318, + "name" : "ImGuiCol_WindowBg", + "docComment" : "Background of normal windows", + "qualType" : "ImGuiCol_", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 164386, + "name" : "ImGuiCol_ChildBg", + "docComment" : "Background of child windows", + "qualType" : "ImGuiCol_", + "order" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 164453, + "name" : "ImGuiCol_PopupBg", + "docComment" : "Background of popups, menus, tooltips windows", + "qualType" : "ImGuiCol_", + "order" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 164538, + "name" : "ImGuiCol_Border", + "qualType" : "ImGuiCol_", + "order" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 164559, + "name" : "ImGuiCol_BorderShadow", + "qualType" : "ImGuiCol_", + "order" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 164586, + "name" : "ImGuiCol_FrameBg", + "docComment" : "Background of checkbox, radio button, plot, slider, text input", + "qualType" : "ImGuiCol_", + "order" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 164688, + "name" : "ImGuiCol_FrameBgHovered", + "qualType" : "ImGuiCol_", + "order" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 164717, + "name" : "ImGuiCol_FrameBgActive", + "qualType" : "ImGuiCol_", + "order" : 9 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 164745, + "name" : "ImGuiCol_TitleBg", + "qualType" : "ImGuiCol_", + "order" : 10 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 164767, + "name" : "ImGuiCol_TitleBgActive", + "qualType" : "ImGuiCol_", + "order" : 11 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 164795, + "name" : "ImGuiCol_TitleBgCollapsed", + "qualType" : "ImGuiCol_", + "order" : 12 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 164826, + "name" : "ImGuiCol_MenuBarBg", + "qualType" : "ImGuiCol_", + "order" : 13 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 164850, + "name" : "ImGuiCol_ScrollbarBg", + "qualType" : "ImGuiCol_", + "order" : 14 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 164876, + "name" : "ImGuiCol_ScrollbarGrab", + "qualType" : "ImGuiCol_", + "order" : 15 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 164904, + "name" : "ImGuiCol_ScrollbarGrabHovered", + "qualType" : "ImGuiCol_", + "order" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 164939, + "name" : "ImGuiCol_ScrollbarGrabActive", + "qualType" : "ImGuiCol_", + "order" : 17 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 164973, + "name" : "ImGuiCol_CheckMark", + "qualType" : "ImGuiCol_", + "order" : 18 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 164997, + "name" : "ImGuiCol_SliderGrab", + "qualType" : "ImGuiCol_", + "order" : 19 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165022, + "name" : "ImGuiCol_SliderGrabActive", + "qualType" : "ImGuiCol_", + "order" : 20 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165053, + "name" : "ImGuiCol_Button", + "qualType" : "ImGuiCol_", + "order" : 21 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165074, + "name" : "ImGuiCol_ButtonHovered", + "qualType" : "ImGuiCol_", + "order" : 22 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165102, + "name" : "ImGuiCol_ButtonActive", + "qualType" : "ImGuiCol_", + "order" : 23 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165129, + "name" : "ImGuiCol_Header", + "docComment" : "Header* colors are used for CollapsingHeader, TreeNode, Selectable, MenuItem", + "qualType" : "ImGuiCol_", + "order" : 24 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165245, + "name" : "ImGuiCol_HeaderHovered", + "qualType" : "ImGuiCol_", + "order" : 25 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165273, + "name" : "ImGuiCol_HeaderActive", + "qualType" : "ImGuiCol_", + "order" : 26 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165300, + "name" : "ImGuiCol_Separator", + "qualType" : "ImGuiCol_", + "order" : 27 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165324, + "name" : "ImGuiCol_SeparatorHovered", + "qualType" : "ImGuiCol_", + "order" : 28 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165355, + "name" : "ImGuiCol_SeparatorActive", + "qualType" : "ImGuiCol_", + "order" : 29 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165385, + "name" : "ImGuiCol_ResizeGrip", + "qualType" : "ImGuiCol_", + "order" : 30 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165410, + "name" : "ImGuiCol_ResizeGripHovered", + "qualType" : "ImGuiCol_", + "order" : 31 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165442, + "name" : "ImGuiCol_ResizeGripActive", + "qualType" : "ImGuiCol_", + "order" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165473, + "name" : "ImGuiCol_Tab", + "qualType" : "ImGuiCol_", + "order" : 33 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165491, + "name" : "ImGuiCol_TabHovered", + "qualType" : "ImGuiCol_", + "order" : 34 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165516, + "name" : "ImGuiCol_TabActive", + "qualType" : "ImGuiCol_", + "order" : 35 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165540, + "name" : "ImGuiCol_TabUnfocused", + "qualType" : "ImGuiCol_", + "order" : 36 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165567, + "name" : "ImGuiCol_TabUnfocusedActive", + "qualType" : "ImGuiCol_", + "order" : 37 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165600, + "name" : "ImGuiCol_DockingPreview", + "docComment" : "Preview overlay color when about to docking something", + "qualType" : "ImGuiCol_", + "order" : 38 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165693, + "name" : "ImGuiCol_DockingEmptyBg", + "docComment" : "Background color for empty node (e.g. CentralNode with no window docked into it)", + "qualType" : "ImGuiCol_", + "order" : 39 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165813, + "name" : "ImGuiCol_PlotLines", + "qualType" : "ImGuiCol_", + "order" : 40 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165837, + "name" : "ImGuiCol_PlotLinesHovered", + "qualType" : "ImGuiCol_", + "order" : 41 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165868, + "name" : "ImGuiCol_PlotHistogram", + "qualType" : "ImGuiCol_", + "order" : 42 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165896, + "name" : "ImGuiCol_PlotHistogramHovered", + "qualType" : "ImGuiCol_", + "order" : 43 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165931, + "name" : "ImGuiCol_TableHeaderBg", + "docComment" : "Table header background", + "qualType" : "ImGuiCol_", + "order" : 44 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 165994, + "name" : "ImGuiCol_TableBorderStrong", + "docComment" : "Table outer and header borders (prefer using Alpha=1.0 here)", + "qualType" : "ImGuiCol_", + "order" : 45 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 166094, + "name" : "ImGuiCol_TableBorderLight", + "docComment" : "Table inner borders (prefer using Alpha=1.0 here)", + "qualType" : "ImGuiCol_", + "order" : 46 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 166183, + "name" : "ImGuiCol_TableRowBg", + "docComment" : "Table row background (even rows)", + "qualType" : "ImGuiCol_", + "order" : 47 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 166255, + "name" : "ImGuiCol_TableRowBgAlt", + "docComment" : "Table row background (odd rows)", + "qualType" : "ImGuiCol_", + "order" : 48 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 166326, + "name" : "ImGuiCol_TextSelectedBg", + "qualType" : "ImGuiCol_", + "order" : 49 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 166355, + "name" : "ImGuiCol_DragDropTarget", + "qualType" : "ImGuiCol_", + "order" : 50 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 166384, + "name" : "ImGuiCol_NavHighlight", + "docComment" : "Gamepad/keyboard: current highlighted item", + "qualType" : "ImGuiCol_", + "order" : 51 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 166466, + "name" : "ImGuiCol_NavWindowingHighlight", + "docComment" : "Highlight window when using CTRL+TAB", + "qualType" : "ImGuiCol_", + "order" : 52 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 166542, + "name" : "ImGuiCol_NavWindowingDimBg", + "docComment" : "Darken/colorize entire screen behind the CTRL+TAB window list, when active", + "qualType" : "ImGuiCol_", + "order" : 53 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 166656, + "name" : "ImGuiCol_ModalWindowDimBg", + "docComment" : "Darken/colorize entire screen behind a modal window, when one is active", + "qualType" : "ImGuiCol_", + "order" : 54 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 166767, + "name" : "ImGuiCol_COUNT", + "qualType" : "ImGuiCol_", + "order" : 55 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 167656, + "name" : "ImGuiStyleVar_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 166788, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 166788, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 166788, + "text" : " Enumeration for PushStyleVar() / PopStyleVar() to temporarily modify the ImGuiStyle structure." + }, { + "@type" : "AstTextComment", + "offset" : 166886, + "text" : " - The enum only refers to fields of ImGuiStyle which makes sense to be pushed/popped inside UI code." + }, { + "@type" : "AstTextComment", + "offset" : 166990, + "text" : " During initialization or between frames, feel free to just poke into ImGuiStyle directly." + }, { + "@type" : "AstTextComment", + "offset" : 167085, + "text" : " - Tip: Use your programming IDE navigation facilities on the names in the _second column_ below to find the actual members and their description." + }, { + "@type" : "AstTextComment", + "offset" : 167234, + "text" : " In Visual Studio IDE: CTRL+comma (\"Edit.NavigateTo\") can follow symbols in comments, whereas CTRL+F12 (\"Edit.GoToImplementation\") cannot." + }, { + "@type" : "AstTextComment", + "offset" : 167377, + "text" : " With Visual Assist installed: ALT+G (\"VAssistX.GoToImplementation\") can also follow symbols in comments." + }, { + "@type" : "AstTextComment", + "offset" : 167487, + "text" : " - When changing this enum, you need to update the associated internal table GStyleVarInfo[] accordingly. This is where we link enum values to members offset/type." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 167784, + "name" : "ImGuiStyleVar_Alpha", + "docComment" : "float Alpha", + "qualType" : "ImGuiStyleVar_", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 167842, + "name" : "ImGuiStyleVar_DisabledAlpha", + "docComment" : "float DisabledAlpha", + "qualType" : "ImGuiStyleVar_", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 167908, + "name" : "ImGuiStyleVar_WindowPadding", + "docComment" : "ImVec2 WindowPadding", + "qualType" : "ImGuiStyleVar_", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 167974, + "name" : "ImGuiStyleVar_WindowRounding", + "docComment" : "float WindowRounding", + "qualType" : "ImGuiStyleVar_", + "order" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 168041, + "name" : "ImGuiStyleVar_WindowBorderSize", + "docComment" : "float WindowBorderSize", + "qualType" : "ImGuiStyleVar_", + "order" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 168110, + "name" : "ImGuiStyleVar_WindowMinSize", + "docComment" : "ImVec2 WindowMinSize", + "qualType" : "ImGuiStyleVar_", + "order" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 168176, + "name" : "ImGuiStyleVar_WindowTitleAlign", + "docComment" : "ImVec2 WindowTitleAlign", + "qualType" : "ImGuiStyleVar_", + "order" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 168245, + "name" : "ImGuiStyleVar_ChildRounding", + "docComment" : "float ChildRounding", + "qualType" : "ImGuiStyleVar_", + "order" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 168311, + "name" : "ImGuiStyleVar_ChildBorderSize", + "docComment" : "float ChildBorderSize", + "qualType" : "ImGuiStyleVar_", + "order" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 168379, + "name" : "ImGuiStyleVar_PopupRounding", + "docComment" : "float PopupRounding", + "qualType" : "ImGuiStyleVar_", + "order" : 9 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 168445, + "name" : "ImGuiStyleVar_PopupBorderSize", + "docComment" : "float PopupBorderSize", + "qualType" : "ImGuiStyleVar_", + "order" : 10 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 168513, + "name" : "ImGuiStyleVar_FramePadding", + "docComment" : "ImVec2 FramePadding", + "qualType" : "ImGuiStyleVar_", + "order" : 11 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 168578, + "name" : "ImGuiStyleVar_FrameRounding", + "docComment" : "float FrameRounding", + "qualType" : "ImGuiStyleVar_", + "order" : 12 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 168644, + "name" : "ImGuiStyleVar_FrameBorderSize", + "docComment" : "float FrameBorderSize", + "qualType" : "ImGuiStyleVar_", + "order" : 13 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 168712, + "name" : "ImGuiStyleVar_ItemSpacing", + "docComment" : "ImVec2 ItemSpacing", + "qualType" : "ImGuiStyleVar_", + "order" : 14 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 168776, + "name" : "ImGuiStyleVar_ItemInnerSpacing", + "docComment" : "ImVec2 ItemInnerSpacing", + "qualType" : "ImGuiStyleVar_", + "order" : 15 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 168845, + "name" : "ImGuiStyleVar_IndentSpacing", + "docComment" : "float IndentSpacing", + "qualType" : "ImGuiStyleVar_", + "order" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 168911, + "name" : "ImGuiStyleVar_CellPadding", + "docComment" : "ImVec2 CellPadding", + "qualType" : "ImGuiStyleVar_", + "order" : 17 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 168975, + "name" : "ImGuiStyleVar_ScrollbarSize", + "docComment" : "float ScrollbarSize", + "qualType" : "ImGuiStyleVar_", + "order" : 18 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 169041, + "name" : "ImGuiStyleVar_ScrollbarRounding", + "docComment" : "float ScrollbarRounding", + "qualType" : "ImGuiStyleVar_", + "order" : 19 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 169111, + "name" : "ImGuiStyleVar_GrabMinSize", + "docComment" : "float GrabMinSize", + "qualType" : "ImGuiStyleVar_", + "order" : 20 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 169175, + "name" : "ImGuiStyleVar_GrabRounding", + "docComment" : "float GrabRounding", + "qualType" : "ImGuiStyleVar_", + "order" : 21 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 169240, + "name" : "ImGuiStyleVar_TabRounding", + "docComment" : "float TabRounding", + "qualType" : "ImGuiStyleVar_", + "order" : 22 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 169304, + "name" : "ImGuiStyleVar_ButtonTextAlign", + "docComment" : "ImVec2 ButtonTextAlign", + "qualType" : "ImGuiStyleVar_", + "order" : 23 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 169372, + "name" : "ImGuiStyleVar_SelectableTextAlign", + "docComment" : "ImVec2 SelectableTextAlign", + "qualType" : "ImGuiStyleVar_", + "order" : 24 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 169444, + "name" : "ImGuiStyleVar_COUNT", + "qualType" : "ImGuiStyleVar_", + "order" : 25 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 169535, + "name" : "ImGuiButtonFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 169470, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 169470, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 169470, + "text" : " Flags for InvisibleButton() [extended in imgui_internal.h]" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 169559, + "name" : "ImGuiButtonFlags_None", + "qualType" : "ImGuiButtonFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 169608, + "name" : "ImGuiButtonFlags_MouseButtonLeft", + "docComment" : "React on left mouse button (default)", + "qualType" : "ImGuiButtonFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 169704, + "name" : "ImGuiButtonFlags_MouseButtonRight", + "docComment" : "React on right mouse button", + "qualType" : "ImGuiButtonFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 169791, + "name" : "ImGuiButtonFlags_MouseButtonMiddle", + "docComment" : "React on center mouse button", + "qualType" : "ImGuiButtonFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 169898, + "name" : "ImGuiButtonFlags_MouseButtonMask_", + "docComment" : "[Internal]", + "qualType" : "ImGuiButtonFlags_", + "order" : 4, + "value" : "ImGuiButtonFlags_MouseButtonLeft | ImGuiButtonFlags_MouseButtonRight | ImGuiButtonFlags_MouseButtonMiddle", + "evaluatedValue" : "7" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 170051, + "name" : "ImGuiButtonFlags_MouseButtonDefault_", + "docComment" : "[Internal]", + "qualType" : "ImGuiButtonFlags_", + "order" : 5, + "value" : "ImGuiButtonFlags_MouseButtonLeft", + "evaluatedValue" : "1" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 170226, + "name" : "ImGuiColorEditFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 170132, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 170132, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 170132, + "text" : " Flags for ColorEdit3() / ColorEdit4() / ColorPicker3() / ColorPicker4() / ColorButton()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 170253, + "name" : "ImGuiColorEditFlags_None", + "qualType" : "ImGuiColorEditFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 170298, + "name" : "ImGuiColorEditFlags_NoAlpha", + "docComment" : "// ColorEdit, ColorPicker, ColorButton: ignore Alpha component (will only read 3 components from the input pointer).", + "qualType" : "ImGuiColorEditFlags_", + "order" : 1, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 170483, + "name" : "ImGuiColorEditFlags_NoPicker", + "docComment" : "// ColorEdit: disable picker when clicking on color square.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 2, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 170611, + "name" : "ImGuiColorEditFlags_NoOptions", + "docComment" : "// ColorEdit: disable toggling options menu when right-clicking on inputs/small preview.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 3, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 170768, + "name" : "ImGuiColorEditFlags_NoSmallPreview", + "docComment" : "// ColorEdit, ColorPicker: disable color square preview next to the inputs. (e.g. to show only the inputs)", + "qualType" : "ImGuiColorEditFlags_", + "order" : 4, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 170943, + "name" : "ImGuiColorEditFlags_NoInputs", + "docComment" : "// ColorEdit, ColorPicker: disable inputs sliders/text widgets (e.g. to show only the small preview color square).", + "qualType" : "ImGuiColorEditFlags_", + "order" : 5, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 171126, + "name" : "ImGuiColorEditFlags_NoTooltip", + "docComment" : "// ColorEdit, ColorPicker, ColorButton: disable tooltip when hovering the preview.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 6, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 171277, + "name" : "ImGuiColorEditFlags_NoLabel", + "docComment" : "// ColorEdit, ColorPicker: disable display of inline text label (the label is still forwarded to the tooltip and picker).", + "qualType" : "ImGuiColorEditFlags_", + "order" : 7, + "value" : "1 << 7", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 171467, + "name" : "ImGuiColorEditFlags_NoSidePreview", + "docComment" : "// ColorPicker: disable bigger color preview on right side of the picker, use small color square preview instead.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 8, + "value" : "1 << 8", + "evaluatedValue" : "256" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 171649, + "name" : "ImGuiColorEditFlags_NoDragDrop", + "docComment" : "// ColorEdit: disable drag and drop target. ColorButton: disable drag and drop source.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 9, + "value" : "1 << 9", + "evaluatedValue" : "512" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 171804, + "name" : "ImGuiColorEditFlags_NoBorder", + "docComment" : "// ColorButton: disable border (which is enforced by default)", + "qualType" : "ImGuiColorEditFlags_", + "order" : 10, + "value" : "1 << 10", + "evaluatedValue" : "1024" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 172003, + "name" : "ImGuiColorEditFlags_AlphaBar", + "docComment" : "// ColorEdit, ColorPicker: show vertical alpha bar/gradient in picker.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 11, + "value" : "1 << 16", + "evaluatedValue" : "65536" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 172142, + "name" : "ImGuiColorEditFlags_AlphaPreview", + "docComment" : "// ColorEdit, ColorPicker, ColorButton: display preview as a transparent color over a checkerboard, instead of opaque.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 12, + "value" : "1 << 17", + "evaluatedValue" : "131072" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 172329, + "name" : "ImGuiColorEditFlags_AlphaPreviewHalf", + "docComment" : "// ColorEdit, ColorPicker, ColorButton: display half opaque / half checkerboard, instead of opaque.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 13, + "value" : "1 << 18", + "evaluatedValue" : "262144" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 172497, + "name" : "ImGuiColorEditFlags_HDR", + "docComment" : "// (WIP) ColorEdit: Currently only disable 0.0f..1.0f limits in RGBA edition (note: you probably want to use ImGuiColorEditFlags_Float flag as well).", + "qualType" : "ImGuiColorEditFlags_", + "order" : 14, + "value" : "1 << 19", + "evaluatedValue" : "524288" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 172715, + "name" : "ImGuiColorEditFlags_DisplayRGB", + "docComment" : "[Display] // ColorEdit: override _display_ type among RGB/HSV/Hex. ColorPicker: select any combination using one or more of RGB/HSV/Hex.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 15, + "value" : "1 << 20", + "evaluatedValue" : "1048576" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 172910, + "name" : "ImGuiColorEditFlags_DisplayHSV", + "docComment" : "[Display] // \"", + "qualType" : "ImGuiColorEditFlags_", + "order" : 16, + "value" : "1 << 21", + "evaluatedValue" : "2097152" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 172983, + "name" : "ImGuiColorEditFlags_DisplayHex", + "docComment" : "[Display] // \"", + "qualType" : "ImGuiColorEditFlags_", + "order" : 17, + "value" : "1 << 22", + "evaluatedValue" : "4194304" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 173056, + "name" : "ImGuiColorEditFlags_Uint8", + "docComment" : "[DataType] // ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0..255.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 18, + "value" : "1 << 23", + "evaluatedValue" : "8388608" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 173202, + "name" : "ImGuiColorEditFlags_Float", + "docComment" : "[DataType] // ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0.0f..1.0f floats instead of 0..255 integers. No round-trip of value via integers.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 19, + "value" : "1 << 24", + "evaluatedValue" : "16777216" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 173423, + "name" : "ImGuiColorEditFlags_PickerHueBar", + "docComment" : "[Picker] // ColorPicker: bar for Hue, rectangle for Sat/Value.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 20, + "value" : "1 << 25", + "evaluatedValue" : "33554432" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 173545, + "name" : "ImGuiColorEditFlags_PickerHueWheel", + "docComment" : "[Picker] // ColorPicker: wheel for Hue, triangle for Sat/Value.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 21, + "value" : "1 << 26", + "evaluatedValue" : "67108864" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 173668, + "name" : "ImGuiColorEditFlags_InputRGB", + "docComment" : "[Input] // ColorEdit, ColorPicker: input and output data in RGB format.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 22, + "value" : "1 << 27", + "evaluatedValue" : "134217728" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 173800, + "name" : "ImGuiColorEditFlags_InputHSV", + "docComment" : "[Input] // ColorEdit, ColorPicker: input and output data in HSV format.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 23, + "value" : "1 << 28", + "evaluatedValue" : "268435456" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 174205, + "name" : "ImGuiColorEditFlags_DefaultOptions_", + "docComment" : "Defaults Options. You can set application defaults using SetColorEditOptions(). The intent is that you probably don't want to override them in most of your calls. Let the user choose via the option menu and/or call SetColorEditOptions() once during startup.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 24, + "value" : "ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_PickerHueBar", + "evaluatedValue" : "177209344" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 174398, + "name" : "ImGuiColorEditFlags_DisplayMask_", + "docComment" : "[Internal] Masks", + "qualType" : "ImGuiColorEditFlags_", + "order" : 25, + "value" : "ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_DisplayHSV | ImGuiColorEditFlags_DisplayHex", + "evaluatedValue" : "7340032" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 174538, + "name" : "ImGuiColorEditFlags_DataTypeMask_", + "docComment" : "[Internal] Masks", + "qualType" : "ImGuiColorEditFlags_", + "order" : 26, + "value" : "ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_Float", + "evaluatedValue" : "25165824" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 174635, + "name" : "ImGuiColorEditFlags_PickerMask_", + "docComment" : "[Internal] Masks", + "qualType" : "ImGuiColorEditFlags_", + "order" : 27, + "value" : "ImGuiColorEditFlags_PickerHueWheel | ImGuiColorEditFlags_PickerHueBar", + "evaluatedValue" : "100663296" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 174748, + "name" : "ImGuiColorEditFlags_InputMask_", + "docComment" : "[Internal] Masks", + "qualType" : "ImGuiColorEditFlags_", + "order" : 28, + "value" : "ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_InputHSV", + "evaluatedValue" : "402653184" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 174934, + "name" : "ImGuiColorEditFlags_RGB", + "docComment" : "[renamed in 1.69]", + "qualType" : "ImGuiColorEditFlags_", + "order" : 29, + "value" : "ImGuiColorEditFlags_DisplayRGB", + "evaluatedValue" : "1048576" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 174992, + "name" : "ImGuiColorEditFlags_HSV", + "docComment" : "[renamed in 1.69]", + "qualType" : "ImGuiColorEditFlags_", + "order" : 30, + "value" : "ImGuiColorEditFlags_DisplayHSV", + "evaluatedValue" : "2097152" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 175050, + "name" : "ImGuiColorEditFlags_HEX", + "docComment" : "[renamed in 1.69]", + "qualType" : "ImGuiColorEditFlags_", + "order" : 31, + "value" : "ImGuiColorEditFlags_DisplayHex", + "evaluatedValue" : "4194304" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 175353, + "name" : "ImGuiSliderFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 175142, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 175142, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 175142, + "text" : " Flags for DragFloat(), DragInt(), SliderFloat(), SliderInt() etc." + }, { + "@type" : "AstTextComment", + "offset" : 175211, + "text" : " We use the same sets of flags for DragXXX() and SliderXXX() functions as the features are the same and it makes it easier to swap them." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 175377, + "name" : "ImGuiSliderFlags_None", + "qualType" : "ImGuiSliderFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 175426, + "name" : "ImGuiSliderFlags_AlwaysClamp", + "docComment" : "Clamp value to min/max bounds when input manually with CTRL+Click. By default CTRL+Click allows going out of bounds.", + "qualType" : "ImGuiSliderFlags_", + "order" : 1, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 175606, + "name" : "ImGuiSliderFlags_Logarithmic", + "docComment" : "Make the widget logarithmic (linear otherwise). Consider using ImGuiSliderFlags_NoRoundToFormat with this if using a format-string with small amount of digits.", + "qualType" : "ImGuiSliderFlags_", + "order" : 2, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 175829, + "name" : "ImGuiSliderFlags_NoRoundToFormat", + "docComment" : "Disable rounding underlying value to match precision of the display format string (e.g. %.3f values are rounded to those 3 digits)", + "qualType" : "ImGuiSliderFlags_", + "order" : 3, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 176023, + "name" : "ImGuiSliderFlags_NoInput", + "docComment" : "Disable CTRL+Click or Enter key allowing to input text directly into the widget", + "qualType" : "ImGuiSliderFlags_", + "order" : 4, + "value" : "1 << 7", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 176166, + "name" : "ImGuiSliderFlags_InvalidMask_", + "docComment" : "[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.", + "qualType" : "ImGuiSliderFlags_", + "order" : 5, + "value" : "0x7000000F", + "evaluatedValue" : "1879048207" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 176491, + "name" : "ImGuiSliderFlags_ClampOnInput", + "docComment" : "[renamed in 1.79]", + "qualType" : "ImGuiSliderFlags_", + "order" : 6, + "value" : "ImGuiSliderFlags_AlwaysClamp", + "evaluatedValue" : "16" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 176735, + "name" : "ImGuiMouseButton_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 176586, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 176586, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 176586, + "text" : " Identify a mouse button." + }, { + "@type" : "AstTextComment", + "offset" : 176614, + "text" : " Those values are guaranteed to be stable and we frequently use 0/1 directly. Named enums provided for convenience." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 176759, + "name" : "ImGuiMouseButton_Left", + "qualType" : "ImGuiMouseButton_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 176790, + "name" : "ImGuiMouseButton_Right", + "qualType" : "ImGuiMouseButton_", + "order" : 1, + "value" : "1", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 176822, + "name" : "ImGuiMouseButton_Middle", + "qualType" : "ImGuiMouseButton_", + "order" : 2, + "value" : "2", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 176855, + "name" : "ImGuiMouseButton_COUNT", + "qualType" : "ImGuiMouseButton_", + "order" : 3, + "value" : "5", + "evaluatedValue" : "5" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 177075, + "name" : "ImGuiMouseCursor_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 176888, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 176888, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 176888, + "text" : " Enumeration for GetMouseCursor()" + }, { + "@type" : "AstTextComment", + "offset" : 176924, + "text" : " User code may request backend to display given cursor by calling SetMouseCursor(), which is why we have some cursors that are marked unused here" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 177099, + "name" : "ImGuiMouseCursor_None", + "qualType" : "ImGuiMouseCursor_", + "order" : -1, + "value" : "-1", + "evaluatedValue" : "-1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 177131, + "name" : "ImGuiMouseCursor_Arrow", + "qualType" : "ImGuiMouseCursor_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 177163, + "name" : "ImGuiMouseCursor_TextInput", + "docComment" : "When hovering over InputText, etc.", + "qualType" : "ImGuiMouseCursor_", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 177241, + "name" : "ImGuiMouseCursor_ResizeAll", + "docComment" : "(Unused by Dear ImGui functions)", + "qualType" : "ImGuiMouseCursor_", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 177317, + "name" : "ImGuiMouseCursor_ResizeNS", + "docComment" : "When hovering over an horizontal border", + "qualType" : "ImGuiMouseCursor_", + "order" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 177400, + "name" : "ImGuiMouseCursor_ResizeEW", + "docComment" : "When hovering over a vertical border or a column", + "qualType" : "ImGuiMouseCursor_", + "order" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 177492, + "name" : "ImGuiMouseCursor_ResizeNESW", + "docComment" : "When hovering over the bottom-left corner of a window", + "qualType" : "ImGuiMouseCursor_", + "order" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 177589, + "name" : "ImGuiMouseCursor_ResizeNWSE", + "docComment" : "When hovering over the bottom-right corner of a window", + "qualType" : "ImGuiMouseCursor_", + "order" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 177687, + "name" : "ImGuiMouseCursor_Hand", + "docComment" : "(Unused by Dear ImGui functions. Use for e.g. hyperlinks)", + "qualType" : "ImGuiMouseCursor_", + "order" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 177788, + "name" : "ImGuiMouseCursor_NotAllowed", + "docComment" : "When hovering something with disallowed interaction. Usually a crossed circle.", + "qualType" : "ImGuiMouseCursor_", + "order" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 177910, + "name" : "ImGuiMouseCursor_COUNT", + "qualType" : "ImGuiMouseCursor_", + "order" : 9 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 178218, + "name" : "ImGuiCond_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 177939, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 177939, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 177939, + "text" : " Enumeration for ImGui::SetWindow***(), SetNextWindow***(), SetNextItem***() functions" + }, { + "@type" : "AstTextComment", + "offset" : 178028, + "text" : " Represent a condition." + }, { + "@type" : "AstTextComment", + "offset" : 178054, + "text" : " Important: Treat as a regular enum! Do NOT combine multiple values using binary operators! All the functions above treat 0 as a shortcut to ImGuiCond_Always." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 178235, + "name" : "ImGuiCond_None", + "docComment" : "No condition (always set the variable), same as _Always", + "qualType" : "ImGuiCond_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 178334, + "name" : "ImGuiCond_Always", + "docComment" : "No condition (always set the variable)", + "qualType" : "ImGuiCond_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 178416, + "name" : "ImGuiCond_Once", + "docComment" : "Set the variable once per runtime session (only the first call will succeed)", + "qualType" : "ImGuiCond_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 178536, + "name" : "ImGuiCond_FirstUseEver", + "docComment" : "Set the variable if the object/window has no persistently saved data (no entry in .ini file)", + "qualType" : "ImGuiCond_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 178672, + "name" : "ImGuiCond_Appearing", + "docComment" : "Set the variable if the object/window is appearing after being hidden/inactive (or the first time)", + "qualType" : "ImGuiCond_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 179533, + "name" : "ImNewWrapper", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 179037, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 179037, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 179037, + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "offset" : 179117, + "text" : " IM_MALLOC(), IM_FREE(), IM_NEW(), IM_PLACEMENT_NEW(), IM_DELETE()" + }, { + "@type" : "AstTextComment", + "offset" : 179186, + "text" : " We call C++ constructor on own allocated memory via the placement \"new(ptr) Type()\" syntax." + }, { + "@type" : "AstTextComment", + "offset" : 179281, + "text" : " Defining a custom placement new() with a custom parameter allows us to bypass including " + }, { + "@type" : "AstTextComment", + "offset" : 179370, + "text" : " which on some platforms complains when user has disabled exceptions." + }, { + "@type" : "AstTextComment", + "offset" : 179447, + "text" : "-----------------------------------------------------------------------------" + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 188806, + "name" : "ImGuiStyle", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 188255, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 188255, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 188255, + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "offset" : 188335, + "text" : " [SECTION] ImGuiStyle" + }, { + "@type" : "AstTextComment", + "offset" : 188359, + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "offset" : 188439, + "text" : " You may modify the ImGui::GetStyle() main instance during initialization and before NewFrame()." + }, { + "@type" : "AstTextComment", + "offset" : 188538, + "text" : " During the frame, use ImGui::PushStyleVar(ImGuiStyleVar_XXXX)/PopStyleVar() to alter the main style values," + }, { + "@type" : "AstTextComment", + "offset" : 188649, + "text" : " and ImGui::PushStyleColor(ImGuiCol_XXX)/PopStyleColor() for colors." + }, { + "@type" : "AstTextComment", + "offset" : 188720, + "text" : "-----------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 188835, + "name" : "Alpha", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 188932, + "name" : "DisabledAlpha", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 189073, + "name" : "WindowPadding", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 189145, + "name" : "WindowRounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 189343, + "name" : "WindowBorderSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 189517, + "name" : "WindowMinSize", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 189693, + "name" : "WindowTitleAlign", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 189832, + "name" : "WindowMenuButtonPosition", + "qualType" : "ImGuiDir", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 189980, + "name" : "ChildRounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 190109, + "name" : "ChildBorderSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 190289, + "name" : "PopupRounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 190424, + "name" : "PopupBorderSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 190612, + "name" : "FramePadding", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 190717, + "name" : "FrameRounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 190860, + "name" : "FrameBorderSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 191033, + "name" : "ItemSpacing", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 191135, + "name" : "ItemInnerSpacing", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 191290, + "name" : "CellPadding", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 191365, + "name" : "TouchExtraPadding", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 191639, + "name" : "IndentSpacing", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 191785, + "name" : "ColumnsMinSpacing", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 191915, + "name" : "ScrollbarSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 192031, + "name" : "ScrollbarRounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 192116, + "name" : "GrabMinSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 192220, + "name" : "GrabRounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 192347, + "name" : "LogSliderDeadzone", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 192482, + "name" : "TabRounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 192601, + "name" : "TabBorderSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 192681, + "name" : "TabMinWidthForCloseButton", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 192906, + "name" : "ColorButtonPosition", + "qualType" : "ImGuiDir", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 193045, + "name" : "ButtonTextAlign", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 193187, + "name" : "SelectableTextAlign", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 193410, + "name" : "DisplayWindowPadding", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 193593, + "name" : "DisplaySafeAreaPadding", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 193827, + "name" : "MouseCursorScale", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 194021, + "name" : "AntiAliasedLines", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 194209, + "name" : "AntiAliasedLinesUseTex", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 194434, + "name" : "AntiAliasedFill", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 194671, + "name" : "CurveTessellationTol", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 194911, + "name" : "CircleTessellationMaxError", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 195159, + "name" : "Colors", + "qualType" : "ImVec4[55]", + "desugaredQualType" : "ImVec4[55]" + }, { + "@type" : "AstFunctionDecl", + "offset" : 195231, + "name" : "ScaleAllSizes", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 195251, + "name" : "scale_factor", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 195717, + "name" : "ImGuiIO", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 195272, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 195272, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 195272, + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "offset" : 195352, + "text" : " [SECTION] ImGuiIO" + }, { + "@type" : "AstTextComment", + "offset" : 195373, + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "offset" : 195453, + "text" : " Communicate most settings and inputs/outputs to Dear ImGui using this structure." + }, { + "@type" : "AstTextComment", + "offset" : 195537, + "text" : " Access via ImGui::GetIO(). Read 'Programmer guide' section in .cpp file for general usage." + }, { + "@type" : "AstTextComment", + "offset" : 195631, + "text" : "-----------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 195962, + "name" : "ConfigFlags", + "qualType" : "ImGuiConfigFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 196128, + "name" : "BackendFlags", + "qualType" : "ImGuiBackendFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 196327, + "name" : "DisplaySize", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 196466, + "name" : "DeltaTime", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 196580, + "name" : "IniSavingRate", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 196721, + "name" : "IniFilename", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "offset" : 197017, + "name" : "LogFilename", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "offset" : 197173, + "name" : "MouseDoubleClickTime", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 197281, + "name" : "MouseDoubleClickMaxDist", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 197421, + "name" : "MouseDragThreshold", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 197547, + "name" : "KeyMap", + "qualType" : "int[22]", + "desugaredQualType" : "int[22]" + }, { + "@type" : "AstFieldDecl", + "offset" : 197716, + "name" : "KeyRepeatDelay", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 197894, + "name" : "KeyRepeatRate", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 198030, + "name" : "UserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 198150, + "name" : "Fonts", + "qualType" : "ImFontAtlas *", + "desugaredQualType" : "ImFontAtlas *" + }, { + "@type" : "AstFieldDecl", + "offset" : 198299, + "name" : "FontGlobalScale", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 198393, + "name" : "FontAllowUserScaling", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 198526, + "name" : "FontDefault", + "qualType" : "ImFont *", + "desugaredQualType" : "ImFont *" + }, { + "@type" : "AstFieldDecl", + "offset" : 198658, + "name" : "DisplayFramebufferScale", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 198962, + "name" : "ConfigDockingNoSplit", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 199158, + "name" : "ConfigDockingWithShift", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 199321, + "name" : "ConfigDockingAlwaysTabBar", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 199545, + "name" : "ConfigDockingTransparentPayload", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 199901, + "name" : "ConfigViewportsNoAutoMerge", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 200190, + "name" : "ConfigViewportsNoTaskBarIcon", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 200422, + "name" : "ConfigViewportsNoDecoration", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 200750, + "name" : "ConfigViewportsNoDefaultParent", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 201213, + "name" : "MouseDrawCursor", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 201483, + "name" : "ConfigMacOSXBehaviors", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 201850, + "name" : "ConfigInputTextCursorBlink", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 202000, + "name" : "ConfigDragClickToInputText", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 202222, + "name" : "ConfigWindowsResizeFromEdges", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 202548, + "name" : "ConfigWindowsMoveFromTitleBarOnly", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 202737, + "name" : "ConfigMemoryCompactTimer", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 203322, + "name" : "BackendPlatformName", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "offset" : 203380, + "name" : "BackendRendererName", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "offset" : 203438, + "name" : "BackendPlatformUserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 203540, + "name" : "BackendRendererUserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 203642, + "name" : "BackendLanguageUserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 203954, + "name" : "GetClipboardTextFn", + "qualType" : "const char *(*)(void *)", + "desugaredQualType" : "const char *(*)(void *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 204010, + "name" : "SetClipboardTextFn", + "qualType" : "void (*)(void *, const char *)", + "desugaredQualType" : "void (*)(void *, const char *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 204082, + "name" : "ClipboardUserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 204311, + "name" : "MousePos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 204473, + "name" : "MouseDown", + "qualType" : "bool[5]", + "desugaredQualType" : "bool[5]" + }, { + "@type" : "AstFieldDecl", + "offset" : 204789, + "name" : "MouseWheel", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 204897, + "name" : "MouseWheelH", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 205063, + "name" : "MouseHoveredViewport", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "offset" : 205557, + "name" : "KeyCtrl", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 205643, + "name" : "KeyShift", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 205727, + "name" : "KeyAlt", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 205809, + "name" : "KeySuper", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 205905, + "name" : "KeysDown", + "qualType" : "bool[512]", + "desugaredQualType" : "bool[512]" + }, { + "@type" : "AstFieldDecl", + "offset" : 206113, + "name" : "NavInputs", + "qualType" : "float[20]", + "desugaredQualType" : "float[20]" + }, { + "@type" : "AstFunctionDecl", + "offset" : 206307, + "name" : "AddInputCharacter", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 206276, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 206276, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 206276, + "text" : " Functions" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 206338, + "name" : "c", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 206400, + "name" : "AddInputCharacterUTF16", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 206433, + "name" : "c", + "qualType" : "ImWchar16", + "desugaredQualType" : "unsigned short" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 206541, + "name" : "AddInputCharactersUTF8", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 206576, + "name" : "str", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 206656, + "name" : "AddFocusEvent", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 206675, + "name" : "focused", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 206798, + "name" : "ClearInputCharacters", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 206913, + "name" : "ClearInputKeys", + "resultType" : "void" + }, { + "@type" : "AstFieldDecl", + "offset" : 207434, + "name" : "WantCaptureMouse", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 207765, + "name" : "WantCaptureKeyboard", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 208066, + "name" : "WantTextInput", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 208297, + "name" : "WantSetMousePos", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 208504, + "name" : "WantSaveIniSettings", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 208788, + "name" : "NavActive", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 209005, + "name" : "NavVisible", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 209145, + "name" : "Framerate", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 209348, + "name" : "MetricsRenderVertices", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 209444, + "name" : "MetricsRenderIndices", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 209565, + "name" : "MetricsRenderWindows", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 209642, + "name" : "MetricsActiveWindows", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 209718, + "name" : "MetricsActiveAllocations", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 209901, + "name" : "MouseDelta", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 210364, + "name" : "WantCaptureMouseUnlessPopupClose", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 210579, + "name" : "KeyMods", + "qualType" : "ImGuiKeyModFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 210736, + "name" : "KeyModsPrev", + "qualType" : "ImGuiKeyModFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 210800, + "name" : "MousePosPrev", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 210976, + "name" : "MouseClickedPos", + "qualType" : "ImVec2[5]", + "desugaredQualType" : "ImVec2[5]" + }, { + "@type" : "AstFieldDecl", + "offset" : 211056, + "name" : "MouseClickedTime", + "qualType" : "double[5]", + "desugaredQualType" : "double[5]" + }, { + "@type" : "AstFieldDecl", + "offset" : 211160, + "name" : "MouseClicked", + "qualType" : "bool[5]", + "desugaredQualType" : "bool[5]" + }, { + "@type" : "AstFieldDecl", + "offset" : 211284, + "name" : "MouseDoubleClicked", + "qualType" : "bool[5]", + "desugaredQualType" : "bool[5]" + }, { + "@type" : "AstFieldDecl", + "offset" : 211409, + "name" : "MouseClickedCount", + "qualType" : "ImU16[5]", + "desugaredQualType" : "ImU16[5]" + }, { + "@type" : "AstFieldDecl", + "offset" : 211591, + "name" : "MouseClickedLastCount", + "qualType" : "ImU16[5]", + "desugaredQualType" : "ImU16[5]" + }, { + "@type" : "AstFieldDecl", + "offset" : 211745, + "name" : "MouseReleased", + "qualType" : "bool[5]", + "desugaredQualType" : "bool[5]" + }, { + "@type" : "AstFieldDecl", + "offset" : 211833, + "name" : "MouseDownOwned", + "qualType" : "bool[5]", + "desugaredQualType" : "bool[5]" + }, { + "@type" : "AstFieldDecl", + "offset" : 212063, + "name" : "MouseDownOwnedUnlessPopupClose", + "qualType" : "bool[5]", + "desugaredQualType" : "bool[5]" + }, { + "@type" : "AstFieldDecl", + "offset" : 212171, + "name" : "MouseDownDuration", + "qualType" : "float[5]", + "desugaredQualType" : "float[5]" + }, { + "@type" : "AstFieldDecl", + "offset" : 212285, + "name" : "MouseDownDurationPrev", + "qualType" : "float[5]", + "desugaredQualType" : "float[5]" + }, { + "@type" : "AstFieldDecl", + "offset" : 212381, + "name" : "MouseDragMaxDistanceAbs", + "qualType" : "ImVec2[5]", + "desugaredQualType" : "ImVec2[5]" + }, { + "@type" : "AstFieldDecl", + "offset" : 212529, + "name" : "MouseDragMaxDistanceSqr", + "qualType" : "float[5]", + "desugaredQualType" : "float[5]" + }, { + "@type" : "AstFieldDecl", + "offset" : 212660, + "name" : "KeysDownDuration", + "qualType" : "float[512]", + "desugaredQualType" : "float[512]" + }, { + "@type" : "AstFieldDecl", + "offset" : 212774, + "name" : "KeysDownDurationPrev", + "qualType" : "float[512]", + "desugaredQualType" : "float[512]" + }, { + "@type" : "AstFieldDecl", + "offset" : 212865, + "name" : "NavInputsDownDuration", + "qualType" : "float[20]", + "desugaredQualType" : "float[20]" + }, { + "@type" : "AstFieldDecl", + "offset" : 212925, + "name" : "NavInputsDownDurationPrev", + "qualType" : "float[20]", + "desugaredQualType" : "float[20]" + }, { + "@type" : "AstFieldDecl", + "offset" : 212989, + "name" : "PenPressure", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 213170, + "name" : "AppFocusLost", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 213200, + "name" : "InputQueueSurrogate", + "qualType" : "ImWchar16", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "offset" : 213284, + "name" : "InputQueueCharacters", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 214701, + "name" : "ImGuiInputTextCallbackData", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 213641, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 213641, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 213641, + "text" : " Shared state of InputText(), passed as an argument to your callback when a ImGuiInputTextFlags_Callback* flag is used." + }, { + "@type" : "AstTextComment", + "offset" : 213763, + "text" : " The callback function should return 0 by default." + }, { + "@type" : "AstTextComment", + "offset" : 213816, + "text" : " Callbacks (follow a flag name and see comments in ImGuiInputTextFlags_ declarations for more details)" + }, { + "@type" : "AstTextComment", + "offset" : 213921, + "text" : " - ImGuiInputTextFlags_CallbackEdit: Callback on buffer edit (note that InputText() already returns true on edit, the callback is useful mainly to manipulate the underlying buffer while focus is active)" + }, { + "@type" : "AstTextComment", + "offset" : 214133, + "text" : " - ImGuiInputTextFlags_CallbackAlways: Callback on each iteration" + }, { + "@type" : "AstTextComment", + "offset" : 214206, + "text" : " - ImGuiInputTextFlags_CallbackCompletion: Callback on pressing TAB" + }, { + "@type" : "AstTextComment", + "offset" : 214277, + "text" : " - ImGuiInputTextFlags_CallbackHistory: Callback on pressing Up/Down arrows" + }, { + "@type" : "AstTextComment", + "offset" : 214359, + "text" : " - ImGuiInputTextFlags_CallbackCharFilter: Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard." + }, { + "@type" : "AstTextComment", + "offset" : 214540, + "text" : " - ImGuiInputTextFlags_CallbackResize: Callback on buffer capacity changes request (beyond 'buf_size' parameter value), allowing the string to grow." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 214754, + "name" : "EventFlag", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 214847, + "name" : "Flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 214940, + "name" : "UserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 215549, + "name" : "EventChar", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "offset" : 215768, + "name" : "EventKey", + "qualType" : "ImGuiKey", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 215888, + "name" : "Buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "offset" : 216108, + "name" : "BufTextLen", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 216337, + "name" : "BufSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 216576, + "name" : "BufDirty", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 216703, + "name" : "CursorPos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 216830, + "name" : "SelectionStart", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 216995, + "name" : "SelectionEnd", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 217330, + "name" : "DeleteChars", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 217346, + "name" : "pos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217355, + "name" : "bytes_count", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 217393, + "name" : "InsertChars", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 217409, + "name" : "pos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217426, + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217444, + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 217486, + "name" : "SelectAll", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 217585, + "name" : "ClearSelection", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 217681, + "name" : "HasSelection", + "resultType" : "bool" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 218051, + "name" : "ImGuiSizeCallbackData", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 217754, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 217754, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 217754, + "text" : " Resizing callback data to apply custom constraint. As enabled by SetNextWindowSizeConstraints(). Callback is called during the next Begin()." + }, { + "@type" : "AstTextComment", + "offset" : 217898, + "text" : " NB: For basic min/max size constraint on each axis you don't need to use the callback! The SetNextWindowSizeConstraints() parameters are enough." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 218087, + "name" : "UserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 218182, + "name" : "Pos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 218258, + "name" : "CurrentSize", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 218323, + "name" : "DesiredSize", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 219008, + "name" : "ImGuiWindowClass", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 218449, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 218449, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 218449, + "text" : " [ALPHA] Rarely used / very advanced uses only. Use with SetNextWindowClass() and DockSpace() functions." + }, { + "@type" : "AstTextComment", + "offset" : 218556, + "text" : " Important: the content of this class is still highly WIP and likely to change and be refactored" + }, { + "@type" : "AstTextComment", + "offset" : 218655, + "text" : " before we stabilize Docking features. Please be mindful if using this." + }, { + "@type" : "AstTextComment", + "offset" : 218729, + "text" : " Provide hints:" + }, { + "@type" : "AstTextComment", + "offset" : 218747, + "text" : " - To the platform backend via altered viewport flags (enable/disable OS decoration, OS task bar icons, etc.)" + }, { + "@type" : "AstTextComment", + "offset" : 218859, + "text" : " - To the platform backend for OS level parent/child relationships of viewport." + }, { + "@type" : "AstTextComment", + "offset" : 218941, + "text" : " - To the docking system for various options and filtering." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 219051, + "name" : "ClassId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "offset" : 219212, + "name" : "ParentViewportId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "offset" : 219563, + "name" : "ViewportFlagsOverrideSet", + "qualType" : "ImGuiViewportFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 219789, + "name" : "ViewportFlagsOverrideClear", + "qualType" : "ImGuiViewportFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 220017, + "name" : "TabItemFlagsOverrideSet", + "qualType" : "ImGuiTabItemFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 220247, + "name" : "DockNodeFlagsOverrideSet", + "qualType" : "ImGuiDockNodeFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 220427, + "name" : "DockingAlwaysTabBar", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 220644, + "name" : "DockingAllowUnclassed", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 221036, + "name" : "ImGuiPayload", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 220939, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 220939, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 220939, + "text" : " Data payload for Drag and Drop operations: AcceptDragDropPayload(), GetDragDropPayload()" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 221086, + "name" : "Data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 221167, + "name" : "DataSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 221239, + "name" : "SourceId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "offset" : 221297, + "name" : "SourceParentId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "offset" : 221372, + "name" : "DataFrameCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 221430, + "name" : "DataType", + "qualType" : "char[33]", + "desugaredQualType" : "char[33]" + }, { + "@type" : "AstFieldDecl", + "offset" : 221535, + "name" : "Preview", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 221704, + "name" : "Delivery", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 221865, + "name" : "Clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 222035, + "name" : "IsDataType", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 222058, + "name" : "type", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 222143, + "name" : "IsPreview", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 222207, + "name" : "IsDelivery", + "resultType" : "bool" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 222346, + "name" : "ImGuiTableColumnSortSpecs", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 222269, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 222269, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 222269, + "text" : " Sorting specification for one column of a table (sizeof == 12 bytes)" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 222406, + "name" : "ColumnUserID", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "offset" : 222527, + "name" : "ColumnIndex", + "qualType" : "ImS16", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "offset" : 222602, + "name" : "SortOrder", + "qualType" : "ImS16", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "offset" : 222800, + "name" : "SortDirection", + "qualType" : "ImGuiSortDirection", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 223443, + "name" : "ImGuiTableSortSpecs", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 223044, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 223044, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 223044, + "text" : " Sorting specifications for a table (often handling sort specs for a single column, occasionally more)" + }, { + "@type" : "AstTextComment", + "offset" : 223149, + "text" : " Obtained by calling TableGetSortSpecs()." + }, { + "@type" : "AstTextComment", + "offset" : 223193, + "text" : " When 'SpecsDirty == true' you can sort your data. It will be true with sorting specs have changed since last call, or the first time." + }, { + "@type" : "AstTextComment", + "offset" : 223330, + "text" : " Make sure to set 'SpecsDirty = false' after sorting, else you may wastefully sort your data every frame!" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 223502, + "name" : "Specs", + "qualType" : "const ImGuiTableColumnSortSpecs *", + "desugaredQualType" : "const ImGuiTableColumnSortSpecs *" + }, { + "@type" : "AstFieldDecl", + "offset" : 223576, + "name" : "SpecsCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 223770, + "name" : "SpecsDirty", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 224890, + "name" : "ImGuiOnceUponAFrame", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 224609, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 224609, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 224609, + "text" : " Helper: Execute a block of code at maximum once a frame. Convenient if you want to quickly create an UI within deep-nested code that runs multiple times every frame." + }, { + "@type" : "AstTextComment", + "offset" : 224778, + "text" : " Usage: static ImGuiOnceUponAFrame oaf; if (oaf) ImGui::Text(\"This will be called only once per frame\");" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 224973, + "name" : "RefFrame", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 225226, + "name" : "ImGuiTextFilter", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 225147, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 225147, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 225147, + "text" : " Helper: Parse and apply text filters. In format \"aaaaa[,bbbb][,ccccc]\"" + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 225342, + "name" : "Draw", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 225359, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"Filter (inc,-exc)\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 225394, + "name" : "width", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 225468, + "name" : "PassFilter", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 225491, + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 225509, + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 225557, + "name" : "Build", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 225590, + "name" : "Clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 225661, + "name" : "IsActive", + "resultType" : "bool" + }, { + "@type" : "AstRecordDecl", + "offset" : 225737, + "name" : "ImGuiTextRange", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 225714, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 225714, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 225714, + "text" : " [Internal]" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 225782, + "name" : "b", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "offset" : 225809, + "name" : "e", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 225987, + "name" : "empty", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 226062, + "name" : "split", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 226073, + "name" : "separator", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstParmVarDecl", + "offset" : 226110, + "name" : "out", + "qualType" : "ImVector *", + "desugaredQualType" : "ImVector *" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 226157, + "name" : "InputBuf", + "qualType" : "char[256]", + "desugaredQualType" : "char[256]" + }, { + "@type" : "AstFieldDecl", + "offset" : 226200, + "name" : "Filters", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "offset" : 226237, + "name" : "CountGrep", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 226389, + "name" : "ImGuiTextBuffer", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 226254, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 226254, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 226254, + "text" : " Helper: Growable text buffer for logging/accumulating text" + }, { + "@type" : "AstTextComment", + "offset" : 226316, + "text" : " (this could be called 'ImGuiTextBuilder' / 'ImGuiStringBuilder')" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 226431, + "name" : "Buf", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFunctionDecl", + "offset" : 226531, + "name" : "operator[]", + "resultType" : "char", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 226546, + "name" : "i", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 226632, + "name" : "begin", + "resultType" : "const char *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 226730, + "name" : "end", + "resultType" : "const char *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 226899, + "name" : "size", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 226987, + "name" : "empty", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 227061, + "name" : "clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 227126, + "name" : "reserve", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 227138, + "name" : "capacity", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 227201, + "name" : "c_str", + "resultType" : "const char *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 227295, + "name" : "append", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 227314, + "name" : "str", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227331, + "name" : "str_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 227372, + "name" : "appendf", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 227392, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227402, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 227441, + "name" : "appendfv", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 227462, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227475, + "name" : "args", + "qualType" : "__va_list_tag *", + "desugaredQualType" : "__va_list_tag *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227481, + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 228334, + "name" : "ImGuiStorage", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 227502, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 227502, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 227502, + "text" : " Helper: Key->Value storage" + }, { + "@type" : "AstTextComment", + "offset" : 227532, + "text" : " Typically you don't have to worry about this since a storage is held within each Window." + }, { + "@type" : "AstTextComment", + "offset" : 227624, + "text" : " We use it to e.g. store collapse state for a tree (Int 0/1)" + }, { + "@type" : "AstTextComment", + "offset" : 227687, + "text" : " This is optimized for efficient lookup (dichotomy into a contiguous buffer) and rare insertion (typically tied to user interactions aka max once a frame)" + }, { + "@type" : "AstTextComment", + "offset" : 227844, + "text" : " You can use it as custom user storage for temporary values. Declare your own storage if, for example:" + }, { + "@type" : "AstTextComment", + "offset" : 227949, + "text" : " - You want to manipulate the open/close state of a particular sub-tree in your interface (tree node uses Int 0/1 to store their state)." + }, { + "@type" : "AstTextComment", + "offset" : 228088, + "text" : " - You want to store custom debug data easily without adding or editing structures in your code (probably not efficient, but convenient)" + }, { + "@type" : "AstTextComment", + "offset" : 228227, + "text" : " Types are NOT stored, so it is up to you to make sure your Key don't collide with different types." + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 228378, + "name" : "ImGuiStoragePair", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 228355, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 228355, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 228355, + "text" : " [Internal]" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 228417, + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 228786, + "name" : "Data", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFunctionDecl", + "offset" : 229090, + "name" : "Clear", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 228799, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 228799, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 228799, + "text" : " - Get***() functions find pair, never add/allocate. Pairs are sorted so a query is O(log N)" + }, { + "@type" : "AstTextComment", + "offset" : 228898, + "text" : " - Set***() functions find pair, insertion on demand if missing." + }, { + "@type" : "AstTextComment", + "offset" : 228969, + "text" : " - Sorted insertion is costly, paid once. A typical frame shouldn't need to insert any new pair." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 229140, + "name" : "GetInt", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 229155, + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 229164, + "name" : "default_val", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 229212, + "name" : "SetInt", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 229227, + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 229236, + "name" : "val", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 229266, + "name" : "GetBool", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 229282, + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 229292, + "name" : "default_val", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 229344, + "name" : "SetBool", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 229360, + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 229370, + "name" : "val", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 229400, + "name" : "GetFloat", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 229417, + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 229428, + "name" : "default_val", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 229479, + "name" : "SetFloat", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 229496, + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 229507, + "name" : "val", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 229537, + "name" : "GetVoidPtr", + "resultType" : "void *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 229556, + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 229615, + "name" : "SetVoidPtr", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 229634, + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 229645, + "name" : "val", + "qualType" : "void *", + "desugaredQualType" : "void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 230233, + "name" : "GetIntRef", + "resultType" : "int *", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 229658, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 229658, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 229658, + "text" : " - Get***Ref() functions finds pair, insert on demand if missing, return pointer. Useful if you intend to do Get+Set." + }, { + "@type" : "AstTextComment", + "offset" : 229782, + "text" : " - References are only valid until a new value is added to the storage. Calling a Set***() function or a Get***Ref() function invalidates the pointer." + }, { + "@type" : "AstTextComment", + "offset" : 229939, + "text" : " - A typical use case where this is convenient for quick hacking (e.g. add storage during a live Edit" + }, { + "@type" : "AstTextComment", + "offset" : 230040, + "text" : "&Continue" + }, { + "@type" : "AstTextComment", + "offset" : 230049, + "text" : " session if you can't modify existing struct)" + }, { + "@type" : "AstTextComment", + "offset" : 230101, + "text" : " float* pvar = ImGui::GetFloatRef(key); ImGui::SliderFloat(\"var\", pvar, 0, 100.0f); some_var += *pvar;" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 230251, + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 230260, + "name" : "default_val", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 230302, + "name" : "GetBoolRef", + "resultType" : "bool *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 230321, + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 230331, + "name" : "default_val", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 230377, + "name" : "GetFloatRef", + "resultType" : "float *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 230397, + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 230408, + "name" : "default_val", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 230453, + "name" : "GetVoidPtrRef", + "resultType" : "void **", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 230475, + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 230486, + "name" : "default_val", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 230633, + "name" : "SetAllInt", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 230514, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 230514, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 230514, + "text" : " Use on your own storage if you know only integer are being stored (open/close all tree nodes)" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 230647, + "name" : "val", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 230806, + "name" : "BuildSortByKey", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 230660, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 230660, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 230660, + "text" : " For quicker full rebuild of a storage (instead of an incremental one), you may add all your contents and then sort once." + } ] + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 232318, + "name" : "ImGuiListClipper", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 230830, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 230830, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 230830, + "text" : " Helper: Manually clip large list of items." + }, { + "@type" : "AstTextComment", + "offset" : 230876, + "text" : " If you have lots evenly spaced items and you have a random access to the list, you can perform coarse" + }, { + "@type" : "AstTextComment", + "offset" : 230981, + "text" : " clipping based on visibility to only submit items that are in view." + }, { + "@type" : "AstTextComment", + "offset" : 231052, + "text" : " The clipper calculates the range of visible items and advance the cursor to compensate for the non-visible items we have skipped." + }, { + "@type" : "AstTextComment", + "offset" : 231185, + "text" : " (Dear ImGui already clip items based on their bounds but: it needs to first layout the item to do so, and generally" + }, { + "@type" : "AstTextComment", + "offset" : 231304, + "text" : " fetching/submitting your own data incurs additional cost. Coarse clipping using ImGuiListClipper allows you to easily" + }, { + "@type" : "AstTextComment", + "offset" : 231426, + "text" : " scale using lists with tens of thousands of items without a problem)" + }, { + "@type" : "AstTextComment", + "offset" : 231499, + "text" : " Usage:" + }, { + "@type" : "AstTextComment", + "offset" : 231509, + "text" : " ImGuiListClipper clipper;" + }, { + "@type" : "AstTextComment", + "offset" : 231540, + "text" : " clipper.Begin(1000); // We have 1000 elements, evenly spaced." + }, { + "@type" : "AstTextComment", + "offset" : 231615, + "text" : " while (clipper.Step())" + }, { + "@type" : "AstTextComment", + "offset" : 231643, + "text" : " for (int i = clipper.DisplayStart; i " + }, { + "@type" : "AstTextComment", + "offset" : 231687, + "text" : "<" + }, { + "@type" : "AstTextComment", + "offset" : 231688, + "text" : " clipper.DisplayEnd; i++)" + }, { + "@type" : "AstTextComment", + "offset" : 231716, + "text" : " ImGui::Text(\"line number %d\", i);" + }, { + "@type" : "AstTextComment", + "offset" : 231763, + "text" : " Generally what happens is:" + }, { + "@type" : "AstTextComment", + "offset" : 231793, + "text" : " - Clipper lets you process the first element (DisplayStart = 0, DisplayEnd = 1) regardless of it being visible or not." + }, { + "@type" : "AstTextComment", + "offset" : 231915, + "text" : " - User code submit that one element." + }, { + "@type" : "AstTextComment", + "offset" : 231955, + "text" : " - Clipper can measure the height of the first element" + }, { + "@type" : "AstTextComment", + "offset" : 232012, + "text" : " - Clipper calculate the actual range of elements to display based on the current clipping rectangle, position the cursor before the first visible element." + }, { + "@type" : "AstTextComment", + "offset" : 232170, + "text" : " - User code submit visible elements." + }, { + "@type" : "AstTextComment", + "offset" : 232210, + "text" : " - The clipper also handles various subtleties related to keyboard/gamepad navigation, wrapping etc." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 232357, + "name" : "DisplayStart", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 232454, + "name" : "DisplayEnd", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 232533, + "name" : "ItemsCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 232603, + "name" : "ItemsHeight", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 232728, + "name" : "StartPosY", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 232866, + "name" : "TempData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 233342, + "name" : "Begin", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 233352, + "name" : "items_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 233371, + "name" : "items_height", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 233414, + "name" : "End", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 233524, + "name" : "Step", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 233821, + "name" : "ForceDisplayRangeByIndices", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 233667, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 233667, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 233667, + "text" : " Call ForceDisplayRangeByIndices() before first call to Step() if you need a range of items to be displayed regardless of visibility." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 233852, + "name" : "item_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 233866, + "name" : "item_max", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 235665, + "name" : "ImColor", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 235150, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 235150, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 235150, + "text" : " Helper: ImColor() implicitly converts colors to either ImU32 (packed 4x1 byte) or ImVec4 (4x1 float)" + }, { + "@type" : "AstTextComment", + "offset" : 235254, + "text" : " Prefer using IM_COL32() macros if you want a guaranteed compile-time ImU32 for usage with ImDrawList API." + }, { + "@type" : "AstTextComment", + "offset" : 235363, + "text" : " **Avoid storing ImColor! Store either u32 of ImVec4. This is not a full-featured color class. MAY OBSOLETE." + }, { + "@type" : "AstTextComment", + "offset" : 235474, + "text" : " **None of the ImGui API are using ImColor directly but you can use it as a convenience to pass colors in either ImU32 or ImVec4 formats. Explicitly cast to ImU32 or ImVec4 if needed." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 235699, + "name" : "Value", + "qualType" : "ImVec4", + "desugaredQualType" : "ImVec4" + }, { + "@type" : "AstFunctionDecl", + "offset" : 236857, + "name" : "SetHSV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 236777, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 236777, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 236777, + "text" : " FIXME-OBSOLETE: May need to obsolete/cleanup those helpers." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 236870, + "name" : "h", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 236879, + "name" : "s", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 236888, + "name" : "v", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 236897, + "name" : "a", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 237007, + "name" : "HSV", + "resultType" : "ImColor", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 237017, + "name" : "h", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 237026, + "name" : "s", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 237035, + "name" : "v", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 237044, + "name" : "a", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 239779, + "name" : "ImDrawCmd", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 239306, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 239306, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 239306, + "text" : " Typically, 1 command = 1 GPU draw call (unless command is a callback)" + }, { + "@type" : "AstTextComment", + "offset" : 239379, + "text" : " - VtxOffset/IdxOffset: When 'io.BackendFlags " + }, { + "@type" : "AstTextComment", + "offset" : 239425, + "text" : "&" + }, { + "@type" : "AstTextComment", + "offset" : 239426, + "text" : " ImGuiBackendFlags_RendererHasVtxOffset' is enabled," + }, { + "@type" : "AstTextComment", + "offset" : 239481, + "text" : " those fields allow us to render meshes larger than 64K vertices while keeping 16-bit indices." + }, { + "@type" : "AstTextComment", + "offset" : 239580, + "text" : " Pre-1.71 backends will typically ignore the VtxOffset/IdxOffset fields." + }, { + "@type" : "AstTextComment", + "offset" : 239657, + "text" : " - The ClipRect/TextureId/VtxOffset fields must be contiguous as we memcmp() them together (this is asserted for)." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 239811, + "name" : "ClipRect", + "qualType" : "ImVec4", + "desugaredQualType" : "ImVec4" + }, { + "@type" : "AstFieldDecl", + "offset" : 239983, + "name" : "TextureId", + "qualType" : "ImTextureID", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 240196, + "name" : "VtxOffset", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "offset" : 240412, + "name" : "IdxOffset", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "offset" : 240540, + "name" : "ElemCount", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "offset" : 240746, + "name" : "UserCallback", + "qualType" : "ImDrawCallback", + "desugaredQualType" : "void (*)(const ImDrawList *, const ImDrawCmd *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 240909, + "name" : "UserCallbackData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 241286, + "name" : "GetTexID", + "resultType" : "ImTextureID", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 241085, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 241085, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 241085, + "text" : " Since 1.83: returns ImTextureID associated with this draw call. Warning: DO NOT assume this is always same as 'TextureId' (we will change this function for an upcoming feature)" + } ] + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 241399, + "name" : "ImDrawVert", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 241424, + "name" : "pos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 241441, + "name" : "uv", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 241457, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 242278, + "name" : "ImDrawCmdHeader", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 242237, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 242237, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 242237, + "text" : " [Internal] For use by ImDrawList" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 242316, + "name" : "ClipRect", + "qualType" : "ImVec4", + "desugaredQualType" : "ImVec4" + }, { + "@type" : "AstFieldDecl", + "offset" : 242346, + "name" : "TextureId", + "qualType" : "ImTextureID", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 242377, + "name" : "VtxOffset", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 242443, + "name" : "ImDrawChannel", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 242394, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 242394, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 242394, + "text" : " [Internal] For use by ImDrawListSplitter" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 242491, + "name" : "_CmdBuffer", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "offset" : 242535, + "name" : "_IdxBuffer", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 242788, + "name" : "ImDrawListSplitter", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 242554, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 242554, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 242554, + "text" : " Split/Merge functions are used to split the draw list into different layers which can be drawn into out of order." + }, { + "@type" : "AstTextComment", + "offset" : 242671, + "text" : " This is used by the Columns/Tables API, so items of each column can be batched together in a same draw call." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 242841, + "name" : "_Current", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 242916, + "name" : "_Count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 242995, + "name" : "_Channels", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFunctionDecl", + "offset" : 243237, + "name" : "Clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 243375, + "name" : "ClearFreeMemory", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 243426, + "name" : "Split", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 243444, + "name" : "draw_list", + "qualType" : "ImDrawList *", + "desugaredQualType" : "ImDrawList *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 243459, + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 243499, + "name" : "Merge", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 243517, + "name" : "draw_list", + "qualType" : "ImDrawList *", + "desugaredQualType" : "ImDrawList *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 243561, + "name" : "SetCurrentChannel", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 243591, + "name" : "draw_list", + "qualType" : "ImDrawList *", + "desugaredQualType" : "ImDrawList *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 243606, + "name" : "channel_idx", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 243805, + "name" : "ImDrawFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 243626, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 243626, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 243626, + "text" : " Flags for ImDrawList functions" + }, { + "@type" : "AstTextComment", + "offset" : 243660, + "text" : " (Legacy: bit 0 must always correspond to ImDrawFlags_Closed to be backward compatible with old API using a bool. Bits 1..3 must be unused)" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 243824, + "name" : "ImDrawFlags_None", + "qualType" : "ImDrawFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 243873, + "name" : "ImDrawFlags_Closed", + "docComment" : "PathStroke(), AddPolyline(): specify that shape should be closed (Important: this is always == 1 for legacy reason)", + "qualType" : "ImDrawFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 244046, + "name" : "ImDrawFlags_RoundCornersTopLeft", + "docComment" : "AddRect(), AddRectFilled(), PathRect(): enable rounding top-left corner only (when rounding > 0.0f, we default to all corners). Was 0x01.", + "qualType" : "ImDrawFlags_", + "order" : 2, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 244241, + "name" : "ImDrawFlags_RoundCornersTopRight", + "docComment" : "AddRect(), AddRectFilled(), PathRect(): enable rounding top-right corner only (when rounding > 0.0f, we default to all corners). Was 0x02.", + "qualType" : "ImDrawFlags_", + "order" : 3, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 244437, + "name" : "ImDrawFlags_RoundCornersBottomLeft", + "docComment" : "AddRect(), AddRectFilled(), PathRect(): enable rounding bottom-left corner only (when rounding > 0.0f, we default to all corners). Was 0x04.", + "qualType" : "ImDrawFlags_", + "order" : 4, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 244635, + "name" : "ImDrawFlags_RoundCornersBottomRight", + "docComment" : "AddRect(), AddRectFilled(), PathRect(): enable rounding bottom-right corner only (when rounding > 0.0f, we default to all corners). Wax 0x08.", + "qualType" : "ImDrawFlags_", + "order" : 5, + "value" : "1 << 7", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 244834, + "name" : "ImDrawFlags_RoundCornersNone", + "docComment" : "AddRect(), AddRectFilled(), PathRect(): disable rounding on all corners (when rounding > 0.0f). This is NOT zero, NOT an implicit flag!", + "qualType" : "ImDrawFlags_", + "order" : 6, + "value" : "1 << 8", + "evaluatedValue" : "256" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 245027, + "name" : "ImDrawFlags_RoundCornersTop", + "qualType" : "ImDrawFlags_", + "order" : 7, + "value" : "ImDrawFlags_RoundCornersTopLeft | ImDrawFlags_RoundCornersTopRight", + "evaluatedValue" : "48" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 245141, + "name" : "ImDrawFlags_RoundCornersBottom", + "qualType" : "ImDrawFlags_", + "order" : 8, + "value" : "ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersBottomRight", + "evaluatedValue" : "192" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 245261, + "name" : "ImDrawFlags_RoundCornersLeft", + "qualType" : "ImDrawFlags_", + "order" : 9, + "value" : "ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersTopLeft", + "evaluatedValue" : "80" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 245377, + "name" : "ImDrawFlags_RoundCornersRight", + "qualType" : "ImDrawFlags_", + "order" : 10, + "value" : "ImDrawFlags_RoundCornersBottomRight | ImDrawFlags_RoundCornersTopRight", + "evaluatedValue" : "160" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 245495, + "name" : "ImDrawFlags_RoundCornersAll", + "qualType" : "ImDrawFlags_", + "order" : 11, + "value" : "ImDrawFlags_RoundCornersTopLeft | ImDrawFlags_RoundCornersTopRight | ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersBottomRight", + "evaluatedValue" : "240" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 245684, + "name" : "ImDrawFlags_RoundCornersDefault_", + "docComment" : "Default to ALL corners if none of the _RoundCornersXX flags are specified.", + "qualType" : "ImDrawFlags_", + "order" : 12, + "value" : "ImDrawFlags_RoundCornersAll", + "evaluatedValue" : "240" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 245837, + "name" : "ImDrawFlags_RoundCornersMask_", + "qualType" : "ImDrawFlags_", + "order" : 13, + "value" : "ImDrawFlags_RoundCornersAll | ImDrawFlags_RoundCornersNone", + "evaluatedValue" : "496" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 246187, + "name" : "ImDrawListFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 245944, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 245944, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 245944, + "text" : " Flags for ImDrawList instance. Those are set automatically by ImGui:: functions from ImGuiIO settings, and generally not manipulated directly." + }, { + "@type" : "AstTextComment", + "offset" : 246090, + "text" : " It is however possible to temporarily alter flags between calls to ImDrawList:: functions." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 246210, + "name" : "ImDrawListFlags_None", + "qualType" : "ImDrawListFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 246259, + "name" : "ImDrawListFlags_AntiAliasedLines", + "docComment" : "Enable anti-aliased lines/borders (*2 the number of triangles for 1.0f wide line or lines thin enough to be drawn using textures, otherwise *3 the number of triangles)", + "qualType" : "ImDrawListFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 246485, + "name" : "ImDrawListFlags_AntiAliasedLinesUseTex", + "docComment" : "Enable anti-aliased lines/borders using textures when possible. Require backend to render with bilinear filtering.", + "qualType" : "ImDrawListFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 246658, + "name" : "ImDrawListFlags_AntiAliasedFill", + "docComment" : "Enable anti-aliased edge around filled shapes (rounded rectangles, circles).", + "qualType" : "ImDrawListFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 246793, + "name" : "ImDrawListFlags_AllowVtxOffset", + "docComment" : "Can emit 'VtxOffset > 0' to allow large meshes. Set when 'ImGuiBackendFlags_RendererHasVtxOffset' is enabled.", + "qualType" : "ImDrawListFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 247965, + "name" : "ImDrawList", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 246963, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 246963, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 246963, + "text" : " Draw command list" + }, { + "@type" : "AstTextComment", + "offset" : 246984, + "text" : " This is the low-level list of polygons that ImGui:: functions are filling. At the end of the frame," + }, { + "@type" : "AstTextComment", + "offset" : 247087, + "text" : " all command lists are passed to your ImGuiIO::RenderDrawListFn function for rendering." + }, { + "@type" : "AstTextComment", + "offset" : 247177, + "text" : " Each dear imgui window contains its own ImDrawList. You can use ImGui::GetWindowDrawList() to" + }, { + "@type" : "AstTextComment", + "offset" : 247274, + "text" : " access the current window draw list and draw custom primitives." + }, { + "@type" : "AstTextComment", + "offset" : 247341, + "text" : " You can interleave normal ImGui:: calls and adding primitives to the current draw list." + }, { + "@type" : "AstTextComment", + "offset" : 247432, + "text" : " In single viewport mode, top-left is == GetMainViewport()->Pos (generally 0,0), bottom-right is == GetMainViewport()->Pos+Size (generally io.DisplaySize)." + }, { + "@type" : "AstTextComment", + "offset" : 247590, + "text" : " You are totally free to apply whatever transformation matrix to want to the data (depending on the use of the transformation you may want to apply it to ClipRect as well!)" + }, { + "@type" : "AstTextComment", + "offset" : 247765, + "text" : " Important: Primitives are always added to the list and not culled (culling is done at higher-level by ImGui:: functions), if you use this API a lot consider coarse culling your drawn objects." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 248045, + "name" : "CmdBuffer", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "offset" : 248184, + "name" : "IdxBuffer", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "offset" : 248300, + "name" : "VtxBuffer", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "offset" : 248366, + "name" : "Flags", + "qualType" : "ImDrawListFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 248542, + "name" : "_VtxCurrentIdx", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "offset" : 248705, + "name" : "_Data", + "qualType" : "const ImDrawListSharedData *", + "desugaredQualType" : "const ImDrawListSharedData *" + }, { + "@type" : "AstFieldDecl", + "offset" : 248867, + "name" : "_OwnerName", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "offset" : 248963, + "name" : "_VtxWritePtr", + "qualType" : "ImDrawVert *", + "desugaredQualType" : "ImDrawVert *" + }, { + "@type" : "AstFieldDecl", + "offset" : 249127, + "name" : "_IdxWritePtr", + "qualType" : "ImDrawIdx *", + "desugaredQualType" : "ImDrawIdx *" + }, { + "@type" : "AstFieldDecl", + "offset" : 249291, + "name" : "_ClipRectStack", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "offset" : 249353, + "name" : "_TextureIdStack", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "offset" : 249415, + "name" : "_Path", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "offset" : 249499, + "name" : "_CmdHeader", + "qualType" : "ImDrawCmdHeader", + "desugaredQualType" : "ImDrawCmdHeader" + }, { + "@type" : "AstFieldDecl", + "offset" : 249637, + "name" : "_Splitter", + "qualType" : "ImDrawListSplitter", + "desugaredQualType" : "ImDrawListSplitter" + }, { + "@type" : "AstFieldDecl", + "offset" : 249789, + "name" : "_FringeScale", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFunctionDecl", + "offset" : 250296, + "name" : "PushClipRect", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 250316, + "name" : "clip_rect_min", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstParmVarDecl", + "offset" : 250338, + "name" : "clip_rect_max", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstParmVarDecl", + "offset" : 250358, + "name" : "intersect_with_current_clip_rect", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 250634, + "name" : "PushClipRectFullScreen", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 250680, + "name" : "PopClipRect", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 250715, + "name" : "PushTextureID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 250741, + "name" : "texture_id", + "qualType" : "ImTextureID", + "desugaredQualType" : "void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 250774, + "name" : "PopTextureID", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 250810, + "name" : "GetClipRectMin", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "offset" : 250926, + "name" : "GetClipRectMax", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "offset" : 251588, + "name" : "AddLine", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 251029, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 251029, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 251029, + "text" : " Primitives" + }, { + "@type" : "AstTextComment", + "offset" : 251047, + "text" : " - For rectangular primitives, \"p_min\" and \"p_max\" represent the upper-left and lower-right corners." + }, { + "@type" : "AstTextComment", + "offset" : 251154, + "text" : " - For circle primitives, use \"num_segments == 0\" to automatically calculate tessellation (preferred)." + }, { + "@type" : "AstTextComment", + "offset" : 251263, + "text" : " In older versions (until Dear ImGui 1.77) the AddCircle functions defaulted to num_segments == 12." + }, { + "@type" : "AstTextComment", + "offset" : 251371, + "text" : " In future versions we will use textures to provide cheaper and higher-quality circles." + }, { + "@type" : "AstTextComment", + "offset" : 251467, + "text" : " Use AddNgon() and AddNgonFilled() functions if you need to guaranteed a specific number of sides." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 251610, + "name" : "p1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 251628, + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 251638, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 251649, + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 251688, + "name" : "AddRect", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 251710, + "name" : "p_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 251731, + "name" : "p_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 251744, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 251755, + "name" : "rounding", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 251784, + "name" : "flags", + "qualType" : "ImDrawFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 251801, + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 251898, + "name" : "AddRectFilled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 251926, + "name" : "p_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 251947, + "name" : "p_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 251960, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 251971, + "name" : "rounding", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252000, + "name" : "flags", + "qualType" : "ImDrawFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 252108, + "name" : "AddRectFilledMultiColor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 252146, + "name" : "p_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252167, + "name" : "p_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252180, + "name" : "col_upr_left", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252200, + "name" : "col_upr_right", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252221, + "name" : "col_bot_right", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252242, + "name" : "col_bot_left", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 252277, + "name" : "AddQuad", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 252299, + "name" : "p1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252317, + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252335, + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252353, + "name" : "p4", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252363, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252374, + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 252413, + "name" : "AddQuadFilled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 252441, + "name" : "p1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252459, + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252477, + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252495, + "name" : "p4", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252505, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 252531, + "name" : "AddTriangle", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 252557, + "name" : "p1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252575, + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252593, + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252603, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252614, + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 252653, + "name" : "AddTriangleFilled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 252685, + "name" : "p1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252703, + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252721, + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252731, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 252757, + "name" : "AddCircle", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 252781, + "name" : "center", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252795, + "name" : "radius", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252809, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252818, + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252842, + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 252881, + "name" : "AddCircleFilled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 252911, + "name" : "center", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252925, + "name" : "radius", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252939, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 252948, + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 252987, + "name" : "AddNgon", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 253009, + "name" : "center", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253023, + "name" : "radius", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253037, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253046, + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253066, + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 253105, + "name" : "AddNgonFilled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 253133, + "name" : "center", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253147, + "name" : "radius", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253161, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253170, + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 253205, + "name" : "AddText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 253227, + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253238, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253255, + "name" : "text_begin", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253279, + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 253317, + "name" : "AddText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 253339, + "name" : "font", + "qualType" : "const ImFont *", + "desugaredQualType" : "const ImFont *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253351, + "name" : "font_size", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253376, + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253387, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253404, + "name" : "text_begin", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253428, + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253451, + "name" : "wrap_width", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253484, + "name" : "cpu_fine_clip_rect", + "qualType" : "const ImVec4 *", + "desugaredQualType" : "const ImVec4 *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 253532, + "name" : "AddPolyline", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 253558, + "name" : "points", + "qualType" : "const ImVec2 *", + "desugaredQualType" : "const ImVec2 *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253570, + "name" : "num_points", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253588, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253605, + "name" : "flags", + "qualType" : "ImDrawFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253618, + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 253650, + "name" : "AddConvexPolyFilled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 253684, + "name" : "points", + "qualType" : "const ImVec2 *", + "desugaredQualType" : "const ImVec2 *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253696, + "name" : "num_points", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253714, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 253812, + "name" : "AddBezierCubic", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 253841, + "name" : "p1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253859, + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253877, + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253895, + "name" : "p4", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253905, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253916, + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 253931, + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 254005, + "name" : "AddBezierQuadratic", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 254038, + "name" : "p1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 254056, + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 254074, + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 254084, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 254095, + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 254110, + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 254560, + "name" : "AddImage", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 254189, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 254189, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 254189, + "text" : " Image primitives" + }, { + "@type" : "AstTextComment", + "offset" : 254213, + "text" : " - Read FAQ to understand what ImTextureID is." + }, { + "@type" : "AstTextComment", + "offset" : 254266, + "text" : " - \"p_min\" and \"p_max\" represent the upper-left and lower-right corners of the rectangle." + }, { + "@type" : "AstTextComment", + "offset" : 254362, + "text" : " - \"uv_min\" and \"uv_max\" represent the normalized texture coordinates to use for those corners. Using (0,0)->(1,1) texture coordinates will generally display the entire texture." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 254581, + "name" : "user_texture_id", + "qualType" : "ImTextureID", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 254612, + "name" : "p_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 254633, + "name" : "p_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 254654, + "name" : "uv_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 254691, + "name" : "uv_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(1, 1)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 254720, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int", + "defaultValue" : "IM_COL32_WHITE" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 254763, + "name" : "AddImageQuad", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 254788, + "name" : "user_texture_id", + "qualType" : "ImTextureID", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 254819, + "name" : "p1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 254837, + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 254855, + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 254873, + "name" : "p4", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 254891, + "name" : "uv1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 254925, + "name" : "uv2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(1, 0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 254959, + "name" : "uv3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(1, 1)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 254993, + "name" : "uv4", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 1)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 255019, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int", + "defaultValue" : "IM_COL32_WHITE" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 255062, + "name" : "AddImageRounded", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 255090, + "name" : "user_texture_id", + "qualType" : "ImTextureID", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 255121, + "name" : "p_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 255142, + "name" : "p_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 255163, + "name" : "uv_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 255185, + "name" : "uv_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 255199, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 255210, + "name" : "rounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 255232, + "name" : "flags", + "qualType" : "ImDrawFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 255352, + "name" : "PathClear", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 255251, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 255251, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 255251, + "text" : " Stateful path API, add points then finish with PathFillConvex() or PathStroke()" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 255452, + "name" : "PathLineTo", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 255477, + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 255558, + "name" : "PathLineToMergeDuplicate", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 255597, + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 255738, + "name" : "PathFillConvex", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 255759, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 255961, + "name" : "PathStroke", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 255978, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 255995, + "name" : "flags", + "qualType" : "ImDrawFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 256012, + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 256130, + "name" : "PathArcTo", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 256154, + "name" : "center", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 256168, + "name" : "radius", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 256182, + "name" : "a_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 256195, + "name" : "a_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 256206, + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 256245, + "name" : "PathArcToFast", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 256273, + "name" : "center", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 256287, + "name" : "radius", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 256299, + "name" : "a_min_of_12", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 256316, + "name" : "a_max_of_12", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 256413, + "name" : "PathBezierCubicCurveTo", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 256450, + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 256468, + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 256486, + "name" : "p4", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 256494, + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 256568, + "name" : "PathBezierQuadraticCurveTo", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 256609, + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 256627, + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 256635, + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 256727, + "name" : "PathRect", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 256750, + "name" : "rect_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 256774, + "name" : "rect_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 256790, + "name" : "rounding", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 256819, + "name" : "flags", + "qualType" : "ImDrawFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 256868, + "name" : "AddCallback", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 256838, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 256838, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 256838, + "text" : " Advanced" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 256895, + "name" : "callback", + "qualType" : "ImDrawCallback", + "desugaredQualType" : "void (*)(const ImDrawList *, const ImDrawCmd *)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 256911, + "name" : "callback_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 257072, + "name" : "AddDrawCmd", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 257348, + "name" : "CloneOutput", + "resultType" : "ImDrawList *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 258079, + "name" : "ChannelsSplit", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 257465, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 257465, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 257465, + "text" : " Advanced: Channels" + }, { + "@type" : "AstTextComment", + "offset" : 257491, + "text" : " - Use to split render into layers. By switching channels to can render out-of-order (e.g. submit FG primitives before BG primitives)" + }, { + "@type" : "AstTextComment", + "offset" : 257631, + "text" : " - Use to minimize draw calls (e.g. if going back-and-forth between multiple clipping rectangles, prefer to append into separate channels then merge at the end)" + }, { + "@type" : "AstTextComment", + "offset" : 257798, + "text" : " - FIXME-OBSOLETE: This API shouldn't have been in ImDrawList in the first place!" + }, { + "@type" : "AstTextComment", + "offset" : 257886, + "text" : " Prefer using your own persistent instance of ImDrawListSplitter as you can stack them." + }, { + "@type" : "AstTextComment", + "offset" : 257982, + "text" : " Using the ImDrawList::ChannelsXXXX you cannot stack a split over another." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 258097, + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 258161, + "name" : "ChannelsMerge", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 258236, + "name" : "ChannelsSetCurrent", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 258259, + "name" : "n", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 258488, + "name" : "PrimReserve", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 258313, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 258313, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 258313, + "text" : " Advanced: Primitives allocations" + }, { + "@type" : "AstTextComment", + "offset" : 258353, + "text" : " - We render triangles (three vertices)" + }, { + "@type" : "AstTextComment", + "offset" : 258399, + "text" : " - All primitives needs to be reserved via PrimReserve() beforehand." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 258504, + "name" : "idx_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 258519, + "name" : "vtx_count", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 258551, + "name" : "PrimUnreserve", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 258569, + "name" : "idx_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 258584, + "name" : "vtx_count", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 258616, + "name" : "PrimRect", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 258639, + "name" : "a", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 258656, + "name" : "b", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 258665, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 258750, + "name" : "PrimRectUV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 258775, + "name" : "a", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 258792, + "name" : "b", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 258809, + "name" : "uv_a", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 258829, + "name" : "uv_b", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 258841, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 258867, + "name" : "PrimQuadUV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 258892, + "name" : "a", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 258909, + "name" : "b", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 258926, + "name" : "c", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 258943, + "name" : "d", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 258960, + "name" : "uv_a", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 258980, + "name" : "uv_b", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 259000, + "name" : "uv_c", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 259020, + "name" : "uv_d", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 259032, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 259058, + "name" : "PrimWriteVtx", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 259085, + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 259104, + "name" : "uv", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 259114, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 259253, + "name" : "PrimWriteIdx", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 259276, + "name" : "idx", + "qualType" : "ImDrawIdx", + "desugaredQualType" : "unsigned short" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 259378, + "name" : "PrimVtx", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 259400, + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 259419, + "name" : "uv", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 259429, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 259611, + "name" : "AddBezierCurve", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 259640, + "name" : "p1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 259658, + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 259676, + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 259694, + "name" : "p4", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 259704, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 259715, + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 259730, + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 259834, + "name" : "PathBezierCurveTo", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 259866, + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 259884, + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 259902, + "name" : "p4", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 259910, + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 260036, + "name" : "_ResetForNewFrame", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 259996, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 259996, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 259996, + "text" : " [Internal helpers]" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 260077, + "name" : "_ClearFreeMemory", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 260117, + "name" : "_PopUnusedDrawCmd", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 260158, + "name" : "_TryMergeDrawCmds", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 260199, + "name" : "_OnChangedClipRect", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 260241, + "name" : "_OnChangedTextureID", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 260284, + "name" : "_OnChangedVtxOffset", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 260327, + "name" : "_CalcCircleAutoSegmentCount", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 260361, + "name" : "radius", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 260396, + "name" : "_PathArcToFastEx", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 260427, + "name" : "center", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 260441, + "name" : "radius", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 260453, + "name" : "a_min_sample", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 260471, + "name" : "a_max_sample", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 260489, + "name" : "a_step", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 260518, + "name" : "_PathArcToN", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 260544, + "name" : "center", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 260558, + "name" : "radius", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 260572, + "name" : "a_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 260585, + "name" : "a_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 260596, + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 260906, + "name" : "ImDrawData", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 260617, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 260617, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 260617, + "text" : " All draw data to render a Dear ImGui frame" + }, { + "@type" : "AstTextComment", + "offset" : 260663, + "text" : " (NB: the style and the naming convention here is a little inconsistent, we currently preserve them for backward compatibility purpose," + }, { + "@type" : "AstTextComment", + "offset" : 260801, + "text" : " as this is one of the oldest structure exposed by the library! Basically, ImDrawList == CmdList)" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 260939, + "name" : "Valid", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 261064, + "name" : "CmdListsCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 261143, + "name" : "TotalIdxCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 261246, + "name" : "TotalVtxCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 261349, + "name" : "CmdLists", + "qualType" : "ImDrawList **", + "desugaredQualType" : "ImDrawList **" + }, { + "@type" : "AstFieldDecl", + "offset" : 261500, + "name" : "DisplayPos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 261745, + "name" : "DisplaySize", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 261930, + "name" : "FramebufferScale", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 262130, + "name" : "OwnerViewport", + "qualType" : "ImGuiViewport *", + "desugaredQualType" : "ImGuiViewport *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 262309, + "name" : "Clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 262425, + "name" : "DeIndexAllBuffers", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 262672, + "name" : "ScaleClipRects", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 262701, + "name" : "fb_scale", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 263224, + "name" : "ImFontConfig", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 262943, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 262943, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 262943, + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "offset" : 263023, + "text" : " [SECTION] Font API (ImFontConfig, ImFontGlyph, ImFontAtlasFlags, ImFontAtlas, ImFontGlyphRangesBuilder, ImFont)" + }, { + "@type" : "AstTextComment", + "offset" : 263138, + "text" : "-----------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 263259, + "name" : "FontData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 263331, + "name" : "FontDataSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 263408, + "name" : "FontDataOwnedByAtlas", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 263554, + "name" : "FontNo", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 263647, + "name" : "SizePixels", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 263786, + "name" : "OversampleH", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 264080, + "name" : "OversampleV", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 264271, + "name" : "PixelSnapH", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 264490, + "name" : "GlyphExtraSpacing", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 264625, + "name" : "GlyphOffset", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 264724, + "name" : "GlyphRanges", + "qualType" : "const ImWchar *", + "desugaredQualType" : "const ImWchar *" + }, { + "@type" : "AstFieldDecl", + "offset" : 264959, + "name" : "GlyphMinAdvanceX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 265120, + "name" : "GlyphMaxAdvanceX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 265207, + "name" : "MergeMode", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 265467, + "name" : "FontBuilderFlags", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "offset" : 265627, + "name" : "RasterizerMultiply", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 265811, + "name" : "EllipsisChar", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "offset" : 266016, + "name" : "Name", + "qualType" : "char[40]", + "desugaredQualType" : "char[40]" + }, { + "@type" : "AstFieldDecl", + "offset" : 266097, + "name" : "DstFont", + "qualType" : "ImFont *", + "desugaredQualType" : "ImFont *" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 266331, + "name" : "ImFontGlyph", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 266143, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 266143, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 266143, + "text" : " Hold rendering data for one glyph." + }, { + "@type" : "AstTextComment", + "offset" : 266181, + "text" : " (Note: some language parsers may fail to convert the 31+1 bitfield members, in this case maybe drop store a single u32 or we can rework this)" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 266365, + "name" : "Colored", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "offset" : 266551, + "name" : "Visible", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "offset" : 266685, + "name" : "Codepoint", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "offset" : 266745, + "name" : "AdvanceX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 266879, + "name" : "X0", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 266883, + "name" : "Y0", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 266887, + "name" : "X1", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 266891, + "name" : "Y1", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 266936, + "name" : "U0", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 266940, + "name" : "V0", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 266944, + "name" : "U1", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 266948, + "name" : "V1", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 267198, + "name" : "ImFontGlyphRangesBuilder", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 266985, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 266985, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 266985, + "text" : " Helper to build glyph ranges from text/string data. Feed your application strings/characters to it then call BuildRanges()." + }, { + "@type" : "AstTextComment", + "offset" : 267112, + "text" : " This is essentially a tightly packed of vector of 64k booleans = 8KB storage." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 267245, + "name" : "UsedChars", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFunctionDecl", + "offset" : 267402, + "name" : "Clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 267610, + "name" : "GetBit", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 267624, + "name" : "n", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 267776, + "name" : "SetBit", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 267790, + "name" : "n", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 267942, + "name" : "AddChar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 267958, + "name" : "c", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 268039, + "name" : "AddText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 268059, + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 268077, + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 268180, + "name" : "AddRanges", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 268205, + "name" : "ranges", + "qualType" : "const ImWchar *", + "desugaredQualType" : "const ImWchar *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 268372, + "name" : "BuildRanges", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 268403, + "name" : "out_ranges", + "qualType" : "ImVector *", + "desugaredQualType" : "ImVector *" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 268512, + "name" : "ImFontAtlasCustomRect", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 268459, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 268459, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 268459, + "text" : " See ImFontAtlas::AddCustomRectXXX functions." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 268556, + "name" : "Width", + "qualType" : "unsigned short", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "offset" : 268563, + "name" : "Height", + "qualType" : "unsigned short", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "offset" : 268635, + "name" : "X", + "qualType" : "unsigned short", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "offset" : 268638, + "name" : "Y", + "qualType" : "unsigned short", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "offset" : 268711, + "name" : "GlyphID", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "offset" : 268806, + "name" : "GlyphAdvanceX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 268901, + "name" : "GlyphOffset", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 269002, + "name" : "Font", + "qualType" : "ImFont *", + "desugaredQualType" : "ImFont *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 269235, + "name" : "IsPacked", + "resultType" : "bool" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 269326, + "name" : "ImFontAtlasFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 269292, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 269292, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 269292, + "text" : " Flags for ImFontAtlas build" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 269350, + "name" : "ImFontAtlasFlags_None", + "qualType" : "ImFontAtlasFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 269395, + "name" : "ImFontAtlasFlags_NoPowerOfTwoHeight", + "docComment" : "Don't round the height to next power of two", + "qualType" : "ImFontAtlasFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 269494, + "name" : "ImFontAtlasFlags_NoMouseCursors", + "docComment" : "Don't build software mouse cursors into the atlas (save a little texture memory)", + "qualType" : "ImFontAtlasFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 269630, + "name" : "ImFontAtlasFlags_NoBakedLines", + "docComment" : "Don't build thick line textures into the atlas (save a little texture memory). The AntiAliasedLinesUseTex features uses them, otherwise they will be rendered using polygons (more expensive for CPU/GPU).", + "qualType" : "ImFontAtlasFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 271721, + "name" : "ImFontAtlas", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 269890, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 269890, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 269890, + "text" : " Load and rasterize multiple TTF/OTF fonts into a same texture. The font atlas will build a single texture holding:" + }, { + "@type" : "AstTextComment", + "offset" : 270008, + "text" : " - One or more fonts." + }, { + "@type" : "AstTextComment", + "offset" : 270033, + "text" : " - Custom graphics data needed to render the shapes needed by Dear ImGui." + }, { + "@type" : "AstTextComment", + "offset" : 270110, + "text" : " - Mouse cursor shapes for software cursor rendering (unless setting 'Flags |= ImFontAtlasFlags_NoMouseCursors' in the font atlas)." + }, { + "@type" : "AstTextComment", + "offset" : 270245, + "text" : " It is the user-code responsibility to setup/build the atlas, then upload the pixel data into a texture accessible by your graphics api." + }, { + "@type" : "AstTextComment", + "offset" : 270384, + "text" : " - Optionally, call any of the AddFont*** functions. If you don't call any, the default font embedded in the code will be loaded for you." + }, { + "@type" : "AstTextComment", + "offset" : 270525, + "text" : " - Call GetTexDataAsAlpha8() or GetTexDataAsRGBA32() to build and retrieve pixels data." + }, { + "@type" : "AstTextComment", + "offset" : 270616, + "text" : " - Upload the pixels data into a texture within your graphics system (see imgui_impl_xxxx.cpp examples)" + }, { + "@type" : "AstTextComment", + "offset" : 270723, + "text" : " - Call SetTexID(my_tex_id); and pass the pointer/identifier to your texture in a format natural to your graphics API." + }, { + "@type" : "AstTextComment", + "offset" : 270845, + "text" : " This value will be passed back to you during rendering to identify the texture. Read FAQ entry about ImTextureID for more details." + }, { + "@type" : "AstTextComment", + "offset" : 270982, + "text" : " Common pitfalls:" + }, { + "@type" : "AstTextComment", + "offset" : 271002, + "text" : " - If you pass a 'glyph_ranges' array to AddFont*** functions, you need to make sure that your array persist up until the" + }, { + "@type" : "AstTextComment", + "offset" : 271126, + "text" : " atlas is build (when calling GetTexData*** or Build()). We only copy the pointer, not the data." + }, { + "@type" : "AstTextComment", + "offset" : 271227, + "text" : " - Important: By default, AddFontFromMemoryTTF() takes ownership of the data. Even though we are not writing to it, we will free the pointer on destruction." + }, { + "@type" : "AstTextComment", + "offset" : 271386, + "text" : " You can set font_cfg->FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed," + }, { + "@type" : "AstTextComment", + "offset" : 271494, + "text" : " - Even though many functions are suffixed with \"TTF\", OTF data is supported just as well." + }, { + "@type" : "AstTextComment", + "offset" : 271587, + "text" : " - This is an old API and it is currently awkward for those and and various other reasons! We will address them in the future!" + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 271826, + "name" : "AddFont", + "resultType" : "ImFont *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 271854, + "name" : "font_cfg", + "qualType" : "const ImFontConfig *", + "desugaredQualType" : "const ImFontConfig *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 271897, + "name" : "AddFontDefault", + "resultType" : "ImFont *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 271932, + "name" : "font_cfg", + "qualType" : "const ImFontConfig *", + "desugaredQualType" : "const ImFontConfig *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 271982, + "name" : "AddFontFromFileTTF", + "resultType" : "ImFont *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 272013, + "name" : "filename", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 272029, + "name" : "size_pixels", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 272062, + "name" : "font_cfg", + "qualType" : "const ImFontConfig *", + "desugaredQualType" : "const ImFontConfig *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 272094, + "name" : "glyph_ranges", + "qualType" : "const ImWchar *", + "desugaredQualType" : "const ImWchar *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 272148, + "name" : "AddFontFromMemoryTTF", + "resultType" : "ImFont *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 272175, + "name" : "font_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 272190, + "name" : "font_size", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 272207, + "name" : "size_pixels", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 272240, + "name" : "font_cfg", + "qualType" : "const ImFontConfig *", + "desugaredQualType" : "const ImFontConfig *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 272272, + "name" : "glyph_ranges", + "qualType" : "const ImWchar *", + "desugaredQualType" : "const ImWchar *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 272527, + "name" : "AddFontFromMemoryCompressedTTF", + "resultType" : "ImFont *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 272570, + "name" : "compressed_font_data", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 272596, + "name" : "compressed_font_size", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 272624, + "name" : "size_pixels", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 272657, + "name" : "font_cfg", + "qualType" : "const ImFontConfig *", + "desugaredQualType" : "const ImFontConfig *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 272689, + "name" : "glyph_ranges", + "qualType" : "const ImWchar *", + "desugaredQualType" : "const ImWchar *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 272834, + "name" : "AddFontFromMemoryCompressedBase85TTF", + "resultType" : "ImFont *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 272883, + "name" : "compressed_font_data_base85", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 272918, + "name" : "size_pixels", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 272951, + "name" : "font_cfg", + "qualType" : "const ImFontConfig *", + "desugaredQualType" : "const ImFontConfig *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 272983, + "name" : "glyph_ranges", + "qualType" : "const ImWchar *", + "desugaredQualType" : "const ImWchar *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 273171, + "name" : "ClearInputData", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 273379, + "name" : "ClearTexData", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 273543, + "name" : "ClearFonts", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 273663, + "name" : "Clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 274309, + "name" : "Build", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 273729, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 273729, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 273729, + "text" : " Build atlas, retrieve pixel data." + }, { + "@type" : "AstTextComment", + "offset" : 273770, + "text" : " User is in charge of copying the pixels into graphics memory (e.g. create a texture with your engine). Then store your texture handle with SetTexID()." + }, { + "@type" : "AstTextComment", + "offset" : 273928, + "text" : " The pitch is always = Width * BytesPerPixels (1 or 4)" + }, { + "@type" : "AstTextComment", + "offset" : 273989, + "text" : " Building in RGBA32 format is provided for convenience and compatibility, but note that unless you manually manipulate or copy color data into" + }, { + "@type" : "AstTextComment", + "offset" : 274138, + "text" : " the texture (e.g. when using the AddCustomRect*** api), then the RGB pixels emitted will always be white (~75% of memory/bandwidth waste." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 274460, + "name" : "GetTexDataAsAlpha8", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 274495, + "name" : "out_pixels", + "qualType" : "unsigned char **", + "desugaredQualType" : "unsigned char **" + }, { + "@type" : "AstParmVarDecl", + "offset" : 274512, + "name" : "out_width", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 274528, + "name" : "out_height", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 274545, + "name" : "out_bytes_per_pixel", + "qualType" : "int *", + "desugaredQualType" : "int *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 274627, + "name" : "GetTexDataAsRGBA32", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 274662, + "name" : "out_pixels", + "qualType" : "unsigned char **", + "desugaredQualType" : "unsigned char **" + }, { + "@type" : "AstParmVarDecl", + "offset" : 274679, + "name" : "out_width", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 274695, + "name" : "out_height", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 274712, + "name" : "out_bytes_per_pixel", + "qualType" : "int *", + "desugaredQualType" : "int *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 274795, + "name" : "IsBuilt", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 275043, + "name" : "SetTexID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 275064, + "name" : "id", + "qualType" : "ImTextureID", + "desugaredQualType" : "void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 275636, + "name" : "GetGlyphRangesDefault", + "resultType" : "const ImWchar *", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 275215, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 275215, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 275215, + "text" : " Helpers to retrieve list of common Unicode ranges (2 value per range, values are inclusive, zero-terminated list)" + }, { + "@type" : "AstTextComment", + "offset" : 275336, + "text" : " NB: Make sure that your string are UTF-8 and NOT in your local code page. In C++11, you can create UTF-8 string literal using the u8\"Hello world\" syntax. See FAQ for details." + }, { + "@type" : "AstTextComment", + "offset" : 275518, + "text" : " NB: Consider using ImFontGlyphRangesBuilder to build glyph ranges from textual data." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 275739, + "name" : "GetGlyphRangesKorean", + "resultType" : "const ImWchar *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 275842, + "name" : "GetGlyphRangesJapanese", + "resultType" : "const ImWchar *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 275988, + "name" : "GetGlyphRangesChineseFull", + "resultType" : "const ImWchar *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 276162, + "name" : "GetGlyphRangesChineseSimplifiedCommon", + "resultType" : "const ImWchar *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 276354, + "name" : "GetGlyphRangesCyrillic", + "resultType" : "const ImWchar *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 276469, + "name" : "GetGlyphRangesThai", + "resultType" : "const ImWchar *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 276570, + "name" : "GetGlyphRangesVietnamese", + "resultType" : "const ImWchar *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 277523, + "name" : "AddCustomRectRegular", + "resultType" : "int", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 276796, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 276796, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 276796, + "text" : " You can request arbitrary rectangles to be packed into the atlas, for your own purposes." + }, { + "@type" : "AstTextComment", + "offset" : 276892, + "text" : " - After calling Build(), you can query the rectangle position and render your pixels." + }, { + "@type" : "AstTextComment", + "offset" : 276985, + "text" : " - If you render colored output, set 'atlas->TexPixelsUseColors = true' as this may help some backends decide of prefered texture format." + }, { + "@type" : "AstTextComment", + "offset" : 277129, + "text" : " - You can also request your rectangles to be mapped as font glyph (given a font + Unicode point)," + }, { + "@type" : "AstTextComment", + "offset" : 277234, + "text" : " so you can render e.g. custom colorful icons and use them as regular glyphs." + }, { + "@type" : "AstTextComment", + "offset" : 277320, + "text" : " - Read docs/FONTS.md for more details about using colorful icons." + }, { + "@type" : "AstTextComment", + "offset" : 277393, + "text" : " - Note: this API may be redesigned later in order to support multi-monitor varying DPI settings." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 277548, + "name" : "width", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 277559, + "name" : "height", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 277600, + "name" : "AddCustomRectFontGlyph", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 277631, + "name" : "font", + "qualType" : "ImFont *", + "desugaredQualType" : "ImFont *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 277645, + "name" : "id", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstParmVarDecl", + "offset" : 277653, + "name" : "width", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 277664, + "name" : "height", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 277678, + "name" : "advance_x", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 277703, + "name" : "offset", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 277759, + "name" : "GetCustomRectByIndex", + "resultType" : "ImFontAtlasCustomRect *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 277784, + "name" : "index", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 277897, + "name" : "CalcCustomRectUV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 277853, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 277853, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 277853, + "text" : " [Internal]" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 277943, + "name" : "rect", + "qualType" : "const ImFontAtlasCustomRect *", + "desugaredQualType" : "const ImFontAtlasCustomRect *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 277957, + "name" : "out_uv_min", + "qualType" : "ImVec2 *", + "desugaredQualType" : "ImVec2 *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 277977, + "name" : "out_uv_max", + "qualType" : "ImVec2 *", + "desugaredQualType" : "ImVec2 *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 278028, + "name" : "GetMouseCursorTexData", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 278067, + "name" : "cursor", + "qualType" : "ImGuiMouseCursor", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 278083, + "name" : "out_offset", + "qualType" : "ImVec2 *", + "desugaredQualType" : "ImVec2 *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 278103, + "name" : "out_size", + "qualType" : "ImVec2 *", + "desugaredQualType" : "ImVec2 *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 278120, + "name" : "out_uv_border", + "qualType" : "ImVec2 *", + "desugaredQualType" : "ImVec2 *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 278145, + "name" : "out_uv_fill", + "qualType" : "ImVec2 *", + "desugaredQualType" : "ImVec2 *" + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 278311, + "name" : "Flags", + "qualType" : "ImFontAtlasFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 278402, + "name" : "TexID", + "qualType" : "ImTextureID", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 278615, + "name" : "TexDesiredWidth", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 278868, + "name" : "TexGlyphPadding", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 279070, + "name" : "Locked", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 279323, + "name" : "TexReady", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 279433, + "name" : "TexPixelsUseColors", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 279617, + "name" : "TexPixelsAlpha8", + "qualType" : "unsigned char *", + "desugaredQualType" : "unsigned char *" + }, { + "@type" : "AstFieldDecl", + "offset" : 279763, + "name" : "TexPixelsRGBA32", + "qualType" : "unsigned int *", + "desugaredQualType" : "unsigned int *" + }, { + "@type" : "AstFieldDecl", + "offset" : 279913, + "name" : "TexWidth", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 280009, + "name" : "TexHeight", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 280106, + "name" : "TexUvScale", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 280195, + "name" : "TexUvWhitePixel", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 280287, + "name" : "Fonts", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "offset" : 280508, + "name" : "CustomRects", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "offset" : 280618, + "name" : "ConfigData", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "offset" : 280692, + "name" : "TexUvLines", + "qualType" : "ImVec4[64]", + "desugaredQualType" : "ImVec4[64]" + }, { + "@type" : "AstFieldDecl", + "offset" : 280842, + "name" : "FontBuilderIO", + "qualType" : "const ImFontBuilderIO *", + "desugaredQualType" : "const ImFontBuilderIO *" + }, { + "@type" : "AstFieldDecl", + "offset" : 281025, + "name" : "FontBuilderFlags", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "offset" : 281259, + "name" : "PackIdMouseCursors", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 281376, + "name" : "PackIdLines", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 281838, + "name" : "ImFont", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 281671, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 281671, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 281671, + "text" : " Font runtime data and rendering" + }, { + "@type" : "AstTextComment", + "offset" : 281706, + "text" : " ImFontAtlas automatically loads a default embedded font for you when you call GetTexDataAsAlpha8() or GetTexDataAsRGBA32()." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 281931, + "name" : "IndexAdvanceX", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "offset" : 282178, + "name" : "FallbackAdvanceX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 282275, + "name" : "FontSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 282502, + "name" : "IndexLookup", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "offset" : 282631, + "name" : "Glyphs", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "offset" : 282728, + "name" : "FallbackGlyph", + "qualType" : "const ImFontGlyph *", + "desugaredQualType" : "const ImFontGlyph *" + }, { + "@type" : "AstFieldDecl", + "offset" : 282864, + "name" : "ContainerAtlas", + "qualType" : "ImFontAtlas *", + "desugaredQualType" : "ImFontAtlas *" + }, { + "@type" : "AstFieldDecl", + "offset" : 282978, + "name" : "ConfigData", + "qualType" : "const ImFontConfig *", + "desugaredQualType" : "const ImFontConfig *" + }, { + "@type" : "AstFieldDecl", + "offset" : 283105, + "name" : "ConfigDataCount", + "qualType" : "short", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "offset" : 283311, + "name" : "FallbackChar", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "offset" : 283435, + "name" : "EllipsisChar", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "offset" : 283559, + "name" : "DotChar", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "offset" : 283724, + "name" : "DirtyLookupTables", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 283795, + "name" : "Scale", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 283984, + "name" : "Ascent", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 283992, + "name" : "Descent", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 284131, + "name" : "MetricsTotalSurface", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 284357, + "name" : "Used4kPagesMap", + "qualType" : "ImU8[2]", + "desugaredQualType" : "ImU8[2]" + }, { + "@type" : "AstFunctionDecl", + "offset" : 284716, + "name" : "FindGlyph", + "resultType" : "const ImFontGlyph *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 284734, + "name" : "c", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 284776, + "name" : "FindGlyphNoFallback", + "resultType" : "const ImFontGlyph *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 284804, + "name" : "c", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 284846, + "name" : "GetCharAdvance", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 284869, + "name" : "c", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 284999, + "name" : "IsLoaded", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 285102, + "name" : "GetDebugName", + "resultType" : "const char *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 285453, + "name" : "CalcTextSizeA", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 285201, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 285201, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 285201, + "text" : " 'max_width' stops rendering after a certain width (could be turned into a 2d size). FLT_MAX to disable." + }, { + "@type" : "AstTextComment", + "offset" : 285312, + "text" : " 'wrap_width' enable automatic word-wrapping across multiple lines to fit into given width. 0.0f to disable." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 285473, + "name" : "size", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 285485, + "name" : "max_width", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 285502, + "name" : "wrap_width", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 285526, + "name" : "text_begin", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 285550, + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 285580, + "name" : "remaining", + "qualType" : "const char **", + "desugaredQualType" : "const char **", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 285645, + "name" : "CalcWordWrapPositionA", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 285673, + "name" : "scale", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 285692, + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 285710, + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 285726, + "name" : "wrap_width", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 285777, + "name" : "RenderChar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 285800, + "name" : "draw_list", + "qualType" : "ImDrawList *", + "desugaredQualType" : "ImDrawList *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 285817, + "name" : "size", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 285830, + "name" : "pos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstParmVarDecl", + "offset" : 285841, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 285854, + "name" : "c", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 285896, + "name" : "RenderText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 285919, + "name" : "draw_list", + "qualType" : "ImDrawList *", + "desugaredQualType" : "ImDrawList *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 285936, + "name" : "size", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 285949, + "name" : "pos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstParmVarDecl", + "offset" : 285960, + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 285979, + "name" : "clip_rect", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 286002, + "name" : "text_begin", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 286026, + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 286042, + "name" : "wrap_width", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 286066, + "name" : "cpu_fine_clip", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 286158, + "name" : "BuildLookupTable", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 286103, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 286103, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 286103, + "text" : " [Internal] Don't use!" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 286210, + "name" : "ClearOutputData", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 286261, + "name" : "GrowIndex", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 286275, + "name" : "new_size", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 286318, + "name" : "AddGlyph", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 286347, + "name" : "src_cfg", + "qualType" : "const ImFontConfig *", + "desugaredQualType" : "const ImFontConfig *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 286364, + "name" : "c", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstParmVarDecl", + "offset" : 286373, + "name" : "x0", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 286383, + "name" : "y0", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 286393, + "name" : "x1", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 286403, + "name" : "y1", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 286413, + "name" : "u0", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 286423, + "name" : "v0", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 286433, + "name" : "u1", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 286443, + "name" : "v1", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 286453, + "name" : "advance_x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 286497, + "name" : "AddRemapChar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 286518, + "name" : "dst", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstParmVarDecl", + "offset" : 286531, + "name" : "src", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstParmVarDecl", + "offset" : 286541, + "name" : "overwrite_dst", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 286718, + "name" : "SetGlyphVisible", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 286742, + "name" : "c", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstParmVarDecl", + "offset" : 286750, + "name" : "visible", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 286792, + "name" : "IsGlyphRangeUnused", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 286824, + "name" : "c_begin", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 286846, + "name" : "c_last", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 287134, + "name" : "ImGuiViewportFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 287045, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 287045, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 287045, + "text" : " Flags stored in ImGuiViewport::Flags, giving indications to the platform backends." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 287160, + "name" : "ImGuiViewportFlags_None", + "qualType" : "ImGuiViewportFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 287213, + "name" : "ImGuiViewportFlags_IsPlatformWindow", + "docComment" : "Represent a Platform Window", + "qualType" : "ImGuiViewportFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 287304, + "name" : "ImGuiViewportFlags_IsPlatformMonitor", + "docComment" : "Represent a Platform Monitor (unused yet)", + "qualType" : "ImGuiViewportFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 287409, + "name" : "ImGuiViewportFlags_OwnedByApp", + "docComment" : "Platform Window: is created/managed by the application (rather than a dear imgui backend)", + "qualType" : "ImGuiViewportFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 287562, + "name" : "ImGuiViewportFlags_NoDecoration", + "docComment" : "Platform Window: Disable platform decorations: title bar, borders, etc. (generally set all windows, but if ImGuiConfigFlags_ViewportsDecoration is set we only set this on popups/tooltips)", + "qualType" : "ImGuiViewportFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 287813, + "name" : "ImGuiViewportFlags_NoTaskBarIcon", + "docComment" : "Platform Window: Disable platform task bar icon (generally set on popups/tooltips, or all windows if ImGuiConfigFlags_ViewportsNoTaskBarIcon is set)", + "qualType" : "ImGuiViewportFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 288025, + "name" : "ImGuiViewportFlags_NoFocusOnAppearing", + "docComment" : "Platform Window: Don't take focus when created.", + "qualType" : "ImGuiViewportFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 288136, + "name" : "ImGuiViewportFlags_NoFocusOnClick", + "docComment" : "Platform Window: Don't take focus when clicked on.", + "qualType" : "ImGuiViewportFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 288250, + "name" : "ImGuiViewportFlags_NoInputs", + "docComment" : "Platform Window: Make mouse pass through so we can drag this window while peaking behind it.", + "qualType" : "ImGuiViewportFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 288406, + "name" : "ImGuiViewportFlags_NoRendererClear", + "docComment" : "Platform Window: Renderer doesn't need to clear the framebuffer ahead (because we will fill it entirely).", + "qualType" : "ImGuiViewportFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : "256" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 288575, + "name" : "ImGuiViewportFlags_TopMost", + "docComment" : "Platform Window: Display on top (for tooltips only).", + "qualType" : "ImGuiViewportFlags_", + "order" : 10, + "value" : "1 << 9", + "evaluatedValue" : "512" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 288691, + "name" : "ImGuiViewportFlags_Minimized", + "docComment" : "Platform Window: Window is minimized, can skip render. When minimized we tend to avoid using the viewport pos/size for clipping window or testing if they are contained in the viewport.", + "qualType" : "ImGuiViewportFlags_", + "order" : 11, + "value" : "1 << 10", + "evaluatedValue" : "1024" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 288939, + "name" : "ImGuiViewportFlags_NoAutoMerge", + "docComment" : "Platform Window: Avoid merging this window into another host window. This can only be set via ImGuiWindowClass viewport flags override (because we need to now ahead if we are going to create a viewport in the first place!).", + "qualType" : "ImGuiViewportFlags_", + "order" : 12, + "value" : "1 << 11", + "evaluatedValue" : "2048" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 289226, + "name" : "ImGuiViewportFlags_CanHostOtherWindows", + "docComment" : "Main viewport: can host multiple imgui windows (secondary viewports are associated to a single window).", + "qualType" : "ImGuiViewportFlags_", + "order" : 13, + "value" : "1 << 12", + "evaluatedValue" : "4096" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 290048, + "name" : "ImGuiViewport", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 289395, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 289395, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 289395, + "text" : " - Currently represents the Platform Window created by the application which is hosting our Dear ImGui windows." + }, { + "@type" : "AstTextComment", + "offset" : 289509, + "text" : " - With multi-viewport enabled, we extend this concept to have multiple active viewports." + }, { + "@type" : "AstTextComment", + "offset" : 289601, + "text" : " - In the future we will extend this concept further to also represent Platform Monitor and support a \"no main platform window\" operation mode." + }, { + "@type" : "AstTextComment", + "offset" : 289747, + "text" : " - About Main Area vs Work Area:" + }, { + "@type" : "AstTextComment", + "offset" : 289782, + "text" : " - Main Area = entire viewport." + }, { + "@type" : "AstTextComment", + "offset" : 289818, + "text" : " - Work Area = entire viewport minus sections used by main menu bars (for platform windows), or by task bar (for platform monitor)." + }, { + "@type" : "AstTextComment", + "offset" : 289954, + "text" : " - Windows are generally trying to stay within the Work Area of their host viewport." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 290088, + "name" : "ID", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "offset" : 290174, + "name" : "Flags", + "qualType" : "ImGuiViewportFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 290249, + "name" : "Pos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 290407, + "name" : "Size", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 290491, + "name" : "WorkPos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 290628, + "name" : "WorkSize", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 290761, + "name" : "DpiScale", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 290844, + "name" : "ParentViewportId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "offset" : 291013, + "name" : "DrawData", + "qualType" : "ImDrawData *", + "desugaredQualType" : "ImDrawData *" + }, { + "@type" : "AstFieldDecl", + "offset" : 291609, + "name" : "RendererUserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 291805, + "name" : "PlatformUserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 292007, + "name" : "PlatformHandle", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 292187, + "name" : "PlatformHandleRaw", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 292406, + "name" : "PlatformRequestMove", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 292595, + "name" : "PlatformRequestResize", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 292780, + "name" : "PlatformRequestClose", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 293113, + "name" : "GetCenter", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 293080, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 293080, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 293080, + "text" : " Helpers" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 293226, + "name" : "GetWorkCenter", + "resultType" : "ImVec2" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 297774, + "name" : "ImGuiPlatformIO", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 297721, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 297721, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 297721, + "text" : " (Optional) Access via ImGui::GetPlatformIO()" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 299311, + "name" : "Platform_CreateWindow", + "qualType" : "void (*)(ImGuiViewport *)", + "desugaredQualType" : "void (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 299456, + "name" : "Platform_DestroyWindow", + "qualType" : "void (*)(ImGuiViewport *)", + "desugaredQualType" : "void (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 299549, + "name" : "Platform_ShowWindow", + "qualType" : "void (*)(ImGuiViewport *)", + "desugaredQualType" : "void (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 299760, + "name" : "Platform_SetWindowPos", + "qualType" : "void (*)(ImGuiViewport *, ImVec2)", + "desugaredQualType" : "void (*)(ImGuiViewport *, ImVec2)" + }, { + "@type" : "AstFieldDecl", + "offset" : 299927, + "name" : "Platform_GetWindowPos", + "qualType" : "ImVec2 (*)(ImGuiViewport *)", + "desugaredQualType" : "ImVec2 (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 300020, + "name" : "Platform_SetWindowSize", + "qualType" : "void (*)(ImGuiViewport *, ImVec2)", + "desugaredQualType" : "void (*)(ImGuiViewport *, ImVec2)" + }, { + "@type" : "AstFieldDecl", + "offset" : 300202, + "name" : "Platform_GetWindowSize", + "qualType" : "ImVec2 (*)(ImGuiViewport *)", + "desugaredQualType" : "ImVec2 (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 300332, + "name" : "Platform_SetWindowFocus", + "qualType" : "void (*)(ImGuiViewport *)", + "desugaredQualType" : "void (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 300466, + "name" : "Platform_GetWindowFocus", + "qualType" : "bool (*)(ImGuiViewport *)", + "desugaredQualType" : "bool (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 300559, + "name" : "Platform_GetWindowMinimized", + "qualType" : "bool (*)(ImGuiViewport *)", + "desugaredQualType" : "bool (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 300788, + "name" : "Platform_SetWindowTitle", + "qualType" : "void (*)(ImGuiViewport *, const char *)", + "desugaredQualType" : "void (*)(ImGuiViewport *, const char *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 300931, + "name" : "Platform_SetWindowAlpha", + "qualType" : "void (*)(ImGuiViewport *, float)", + "desugaredQualType" : "void (*)(ImGuiViewport *, float)" + }, { + "@type" : "AstFieldDecl", + "offset" : 301090, + "name" : "Platform_UpdateWindow", + "qualType" : "void (*)(ImGuiViewport *)", + "desugaredQualType" : "void (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 301318, + "name" : "Platform_RenderWindow", + "qualType" : "void (*)(ImGuiViewport *, void *)", + "desugaredQualType" : "void (*)(ImGuiViewport *, void *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 301601, + "name" : "Platform_SwapBuffers", + "qualType" : "void (*)(ImGuiViewport *, void *)", + "desugaredQualType" : "void (*)(ImGuiViewport *, void *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 301838, + "name" : "Platform_GetWindowDpiScale", + "qualType" : "float (*)(ImGuiViewport *)", + "desugaredQualType" : "float (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 302025, + "name" : "Platform_OnChangedViewport", + "qualType" : "void (*)(ImGuiViewport *)", + "desugaredQualType" : "void (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 302294, + "name" : "Platform_SetImeInputPos", + "qualType" : "void (*)(ImGuiViewport *, ImVec2)", + "desugaredQualType" : "void (*)(ImGuiViewport *, ImVec2)" + }, { + "@type" : "AstFieldDecl", + "offset" : 302619, + "name" : "Platform_CreateVkSurface", + "qualType" : "int (*)(ImGuiViewport *, ImU64, const void *, ImU64 *)", + "desugaredQualType" : "int (*)(ImGuiViewport *, ImU64, const void *, ImU64 *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 302929, + "name" : "Renderer_CreateWindow", + "qualType" : "void (*)(ImGuiViewport *)", + "desugaredQualType" : "void (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 303097, + "name" : "Renderer_DestroyWindow", + "qualType" : "void (*)(ImGuiViewport *)", + "desugaredQualType" : "void (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 303268, + "name" : "Renderer_SetWindowSize", + "qualType" : "void (*)(ImGuiViewport *, ImVec2)", + "desugaredQualType" : "void (*)(ImGuiViewport *, ImVec2)" + }, { + "@type" : "AstFieldDecl", + "offset" : 303437, + "name" : "Renderer_RenderWindow", + "qualType" : "void (*)(ImGuiViewport *, void *)", + "desugaredQualType" : "void (*)(ImGuiViewport *, void *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 303685, + "name" : "Renderer_SwapBuffers", + "qualType" : "void (*)(ImGuiViewport *, void *)", + "desugaredQualType" : "void (*)(ImGuiViewport *, void *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 304179, + "name" : "Monitors", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "offset" : 304632, + "name" : "Viewports", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 305101, + "name" : "ImGuiPlatformMonitor", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 304824, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 304824, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 304824, + "text" : " (Optional) This is required when enabling multi-viewport. Represent the bounds of each connected monitor/display and their DPI." + }, { + "@type" : "AstTextComment", + "offset" : 304955, + "text" : " We use this information for multiple DPI support + clamping the position of popups and tooltips so they don't straddle multiple monitors." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 305136, + "name" : "MainPos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 305145, + "name" : "MainSize", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 305264, + "name" : "WorkPos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 305273, + "name" : "WorkSize", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "offset" : 305493, + "name" : "DpiScale", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstNamespaceDecl", + "offset" : 306128, + "name" : "ImGui", + "decls" : [ { + "@type" : "AstFunctionDecl", + "offset" : 306206, + "name" : "CalcListClipping", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 306142, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 306142, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 306142, + "text" : " OBSOLETED in 1.86 (from November 2021)" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 306227, + "name" : "items_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 306246, + "name" : "items_height", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 306265, + "name" : "out_items_display_start", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 306295, + "name" : "out_items_display_end", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 306485, + "name" : "GetWindowContentRegionWidth", + "resultType" : "float", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 306423, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 306423, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 306423, + "text" : " OBSOLETED in 1.85 (from August 2021)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 306659, + "name" : "ListBoxHeader", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 306595, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 306595, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 306595, + "text" : " OBSOLETED in 1.81 (from February 2021)" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 306685, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 306696, + "name" : "items_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 306713, + "name" : "height_in_items", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 306825, + "name" : "ListBoxHeader", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 306851, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 306872, + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 306955, + "name" : "ListBoxFooter", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 307057, + "name" : "OpenPopupContextItem", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 306995, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 306995, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 306995, + "text" : " OBSOLETED in 1.79 (from August 2020)" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 307090, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 307122, + "name" : "mb", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 307553, + "name" : "DragScalar", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 307299, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 307299, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 307299, + "text" : " OBSOLETED in 1.78 (from June 2020)" + }, { + "@type" : "AstTextComment", + "offset" : 307341, + "text" : " Old drag/sliders functions that took a 'float power = 1.0' argument instead of flags." + }, { + "@type" : "AstTextComment", + "offset" : 307434, + "text" : " For shared code, you can version check at compile-time with `#if IMGUI_VERSION_NUM >= 17704`." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 307576, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 307597, + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 307614, + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 307628, + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 307649, + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 307668, + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 307687, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 307701, + "name" : "power", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 307733, + "name" : "DragScalarN", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 307757, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 307778, + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 307795, + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 307807, + "name" : "components", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 307825, + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 307846, + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 307865, + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 307884, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 307898, + "name" : "power", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 307930, + "name" : "DragFloat", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 307952, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 307966, + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 307975, + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 307990, + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308003, + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308022, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308036, + "name" : "power", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 308164, + "name" : "DragFloat2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 308187, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308200, + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308212, + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308227, + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308240, + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308259, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308273, + "name" : "power", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 308402, + "name" : "DragFloat3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 308425, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308438, + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308450, + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308465, + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308478, + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308497, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308511, + "name" : "power", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 308640, + "name" : "DragFloat4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 308663, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308676, + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308688, + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308703, + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308716, + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308735, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308749, + "name" : "power", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 308878, + "name" : "SliderScalar", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 308903, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308924, + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308941, + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308961, + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308980, + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 308999, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309013, + "name" : "power", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 309045, + "name" : "SliderScalarN", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 309071, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309092, + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309109, + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309121, + "name" : "components", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309145, + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309164, + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309183, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309197, + "name" : "power", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 309229, + "name" : "SliderFloat", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 309253, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309267, + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309276, + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309289, + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309308, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309322, + "name" : "power", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 309456, + "name" : "SliderFloat2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 309481, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309494, + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309506, + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309519, + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309538, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309552, + "name" : "power", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 309687, + "name" : "SliderFloat3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 309712, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309725, + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309737, + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309750, + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309769, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309783, + "name" : "power", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 309918, + "name" : "SliderFloat4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 309943, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309956, + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309968, + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 309981, + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 310000, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 310014, + "name" : "power", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 310191, + "name" : "BeginPopupContextWindow", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 310131, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 310131, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 310131, + "text" : " OBSOLETED in 1.77 (from June 2020)" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 310227, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 310252, + "name" : "mb", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 310261, + "name" : "over_items", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 310441, + "name" : "TreeAdvanceToLabelPos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 310380, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 310380, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 310380, + "text" : " OBSOLETED in 1.72 (from April 2019)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 310609, + "name" : "SetNextTreeNodeOpen", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 310549, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 310549, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 310549, + "text" : " OBSOLETED in 1.71 (from June 2019)" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 310634, + "name" : "open", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "offset" : 310650, + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 310758, + "name" : "GetContentRegionAvailWidth", + "resultType" : "float", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 310699, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 310699, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 310699, + "text" : " OBSOLETED in 1.70 (from May 2019)" + } ] + } ] + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 312817, + "name" : "ImDrawCornerFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 312842, + "name" : "ImDrawCornerFlags_None", + "docComment" : "Was == 0 prior to 1.82, this is now == ImDrawFlags_RoundCornersNone which is != 0 and not implicit", + "qualType" : "ImDrawCornerFlags_", + "order" : 0, + "value" : "ImDrawFlags_RoundCornersNone", + "evaluatedValue" : "256" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 313016, + "name" : "ImDrawCornerFlags_TopLeft", + "docComment" : "Was == 0x01 (1 < < 0) prior to 1.82. Order matches ImDrawFlags_NoRoundCorner* flag (we exploit this internally).", + "qualType" : "ImDrawCornerFlags_", + "order" : 1, + "value" : "ImDrawFlags_RoundCornersTopLeft", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 313203, + "name" : "ImDrawCornerFlags_TopRight", + "docComment" : "Was == 0x02 (1 < < 1) prior to 1.82.", + "qualType" : "ImDrawCornerFlags_", + "order" : 2, + "value" : "ImDrawFlags_RoundCornersTopRight", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 313314, + "name" : "ImDrawCornerFlags_BotLeft", + "docComment" : "Was == 0x04 (1 < < 2) prior to 1.82.", + "qualType" : "ImDrawCornerFlags_", + "order" : 3, + "value" : "ImDrawFlags_RoundCornersBottomLeft", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 313425, + "name" : "ImDrawCornerFlags_BotRight", + "docComment" : "Was == 0x08 (1 < < 3) prior to 1.82.", + "qualType" : "ImDrawCornerFlags_", + "order" : 4, + "value" : "ImDrawFlags_RoundCornersBottomRight", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 313536, + "name" : "ImDrawCornerFlags_All", + "docComment" : "Was == 0x0F prior to 1.82", + "qualType" : "ImDrawCornerFlags_", + "order" : 5, + "value" : "ImDrawFlags_RoundCornersAll", + "evaluatedValue" : "240" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 313637, + "name" : "ImDrawCornerFlags_Top", + "qualType" : "ImDrawCornerFlags_", + "order" : 6, + "value" : "ImDrawCornerFlags_TopLeft | ImDrawCornerFlags_TopRight", + "evaluatedValue" : "48" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 313727, + "name" : "ImDrawCornerFlags_Bot", + "qualType" : "ImDrawCornerFlags_", + "order" : 7, + "value" : "ImDrawCornerFlags_BotLeft | ImDrawCornerFlags_BotRight", + "evaluatedValue" : "192" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 313817, + "name" : "ImDrawCornerFlags_Left", + "qualType" : "ImDrawCornerFlags_", + "order" : 8, + "value" : "ImDrawCornerFlags_TopLeft | ImDrawCornerFlags_BotLeft", + "evaluatedValue" : "80" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 313906, + "name" : "ImDrawCornerFlags_Right", + "qualType" : "ImDrawCornerFlags_", + "order" : 9, + "value" : "ImDrawCornerFlags_TopRight | ImDrawCornerFlags_BotRight", + "evaluatedValue" : "160" + } ] + } ] +} \ No newline at end of file diff --git a/buildSrc/src/main/resources/generator/api/ast/ast-imgui_internal.json b/buildSrc/src/main/resources/generator/api/ast/ast-imgui_internal.json new file mode 100644 index 0000000..91c699e --- /dev/null +++ b/buildSrc/src/main/resources/generator/api/ast/ast-imgui_internal.json @@ -0,0 +1,11882 @@ +{ + "info" : { + "source" : "include/imgui/imgui_internal.h", + "hash" : "f0006176c2dc0c87d9800593d551e67d", + "url" : "https://github.com/ocornut/imgui", + "revision" : "15b4a064f9244c430e65214f7249b615fb394321" + }, + "decls" : [ { + "@type" : "AstRecordDecl", + "offset" : 5027, + "name" : "ImBitVector", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 4827, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 4827, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 4827, + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "offset" : 4907, + "text" : " [SECTION] Forward declarations" + }, { + "@type" : "AstTextComment", + "offset" : 4941, + "text" : "-----------------------------------------------------------------------------" + } ] + } ] + } ] + }, { + "@type" : "AstNamespaceDecl", + "offset" : 10825, + "name" : "ImStb", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 10628, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 10628, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 10628, + "text" : "-------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "offset" : 10704, + "text" : " [SECTION] STB libraries includes" + }, { + "@type" : "AstTextComment", + "offset" : 10740, + "text" : "-------------------------------------------------------------------------" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 16901, + "name" : "ImHash", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 16920, + "name" : "data", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 16930, + "name" : "size", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 16942, + "name" : "seed", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 17159, + "name" : "ImQsort", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 17173, + "name" : "base", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 17186, + "name" : "count", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "offset" : 17200, + "name" : "size_of_element", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "offset" : 17234, + "name" : "compare_func", + "qualType" : "int (*)(const void *, const void *)", + "desugaredQualType" : "int (*)(const void *, const void *)" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 17504, + "name" : "ImIsPowerOfTwo", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 17453, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 17453, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 17453, + "text" : " Helpers: Bit manipulation" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 17523, + "name" : "v", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 17601, + "name" : "ImIsPowerOfTwo", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 17622, + "name" : "v", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 17698, + "name" : "ImUpperPowerOfTwo", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 17720, + "name" : "v", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 17876, + "name" : "ImStricmp", + "resultType" : "int", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 17823, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 17823, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 17823, + "text" : " Helpers: String, Formatting" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 17898, + "name" : "str1", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 17916, + "name" : "str2", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 17947, + "name" : "ImStrnicmp", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 17970, + "name" : "str1", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 17988, + "name" : "str2", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 18001, + "name" : "count", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 18033, + "name" : "ImStrncpy", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 18049, + "name" : "dst", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 18066, + "name" : "src", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 18078, + "name" : "count", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 18110, + "name" : "ImStrdup", + "resultType" : "int *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 18131, + "name" : "str", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 18161, + "name" : "ImStrdupcpy", + "resultType" : "int *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 18179, + "name" : "dst", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 18192, + "name" : "p_dst_size", + "qualType" : "size_t *", + "desugaredQualType" : "size_t *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 18216, + "name" : "str", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 18246, + "name" : "ImStrchrRange", + "resultType" : "const int *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 18272, + "name" : "str_begin", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 18295, + "name" : "str_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 18309, + "name" : "c", + "qualType" : "char", + "desugaredQualType" : "char" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 18337, + "name" : "ImStrlenW", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 18362, + "name" : "str", + "qualType" : "const int *", + "desugaredQualType" : "const int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 18392, + "name" : "ImStreolRange", + "resultType" : "const int *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 18418, + "name" : "str", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 18435, + "name" : "str_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 18621, + "name" : "ImStristr", + "resultType" : "const int *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 18643, + "name" : "haystack", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 18665, + "name" : "haystack_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 18691, + "name" : "needle", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 18711, + "name" : "needle_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 18748, + "name" : "ImStrTrimBlanks", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 18770, + "name" : "str", + "qualType" : "char *", + "desugaredQualType" : "char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 18800, + "name" : "ImStrSkipBlank", + "resultType" : "const int *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 18827, + "name" : "str", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 19075, + "name" : "ImParseFormatFindStart", + "resultType" : "const int *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 19110, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 19143, + "name" : "ImParseFormatFindEnd", + "resultType" : "const int *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 19176, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 19209, + "name" : "ImParseFormatTrimDecorations", + "resultType" : "const int *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 19250, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 19264, + "name" : "buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 19276, + "name" : "buf_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 19311, + "name" : "ImParseFormatPrecision", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 19346, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 19358, + "name" : "default_value", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 19398, + "name" : "ImCharIsBlankA", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 19418, + "name" : "c", + "qualType" : "char", + "desugaredQualType" : "char" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 19488, + "name" : "ImCharIsBlankW", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 19516, + "name" : "c", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 19633, + "name" : "ImTextCharToUtf8", + "resultType" : "const int *", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 19572, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 19572, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 19572, + "text" : " Helpers: UTF-8 " + }, { + "@type" : "AstTextComment", + "offset" : 19588, + "text" : "<" + }, { + "@type" : "AstTextComment", + "offset" : 19589, + "text" : "> wchar conversions" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 19655, + "name" : "out_buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 19680, + "name" : "c", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 19779, + "name" : "ImTextStrToUtf8", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 19801, + "name" : "out_buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 19814, + "name" : "out_buf_size", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 19843, + "name" : "in_text", + "qualType" : "const int *", + "desugaredQualType" : "const int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 19867, + "name" : "in_text_end", + "qualType" : "const int *", + "desugaredQualType" : "const int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 19942, + "name" : "ImTextCharFromUtf8", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 19975, + "name" : "out_char", + "qualType" : "unsigned int *", + "desugaredQualType" : "unsigned int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 19997, + "name" : "in_text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 20018, + "name" : "in_text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 20319, + "name" : "ImTextCountCharsFromUtf8", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 20356, + "name" : "in_text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 20377, + "name" : "in_text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 20503, + "name" : "ImTextCountUtf8BytesFromChar", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 20544, + "name" : "in_text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 20565, + "name" : "in_text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 20686, + "name" : "ImTextCountUtf8BytesFromStr", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 20729, + "name" : "in_text", + "qualType" : "const int *", + "desugaredQualType" : "const int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 20753, + "name" : "in_text_end", + "qualType" : "const int *", + "desugaredQualType" : "const int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 24127, + "name" : "ImFileClose", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 24152, + "name" : "file", + "qualType" : "ImFileHandle", + "desugaredQualType" : "FILE *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 24568, + "name" : "ImFileLoadToMemory", + "resultType" : "int *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 24599, + "name" : "filename", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 24621, + "name" : "mode", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 24635, + "name" : "out_file_size", + "qualType" : "size_t *", + "desugaredQualType" : "size_t *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 24661, + "name" : "padding_bytes", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 25360, + "name" : "ImPow", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 25372, + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 25381, + "name" : "y", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 25532, + "name" : "ImPow", + "resultType" : "double", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 25545, + "name" : "x", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "offset" : 25555, + "name" : "y", + "qualType" : "double", + "desugaredQualType" : "double" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 25602, + "name" : "ImLog", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 25614, + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 25774, + "name" : "ImLog", + "resultType" : "double", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 25787, + "name" : "x", + "qualType" : "double", + "desugaredQualType" : "double" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 25841, + "name" : "ImAbs", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 25851, + "name" : "x", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 25916, + "name" : "ImAbs", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 25928, + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 25985, + "name" : "ImAbs", + "resultType" : "double", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 25998, + "name" : "x", + "qualType" : "double", + "desugaredQualType" : "double" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 26053, + "name" : "ImSign", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 26066, + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 26223, + "name" : "ImSign", + "resultType" : "double", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 26237, + "name" : "x", + "qualType" : "double", + "desugaredQualType" : "double" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 26348, + "name" : "ImRsqrt", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 26362, + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 26540, + "name" : "ImRsqrt", + "resultType" : "double", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 26555, + "name" : "x", + "qualType" : "double", + "desugaredQualType" : "double" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 27794, + "name" : "ImMin", + "resultType" : "int", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 27751, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 27751, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 27751, + "text" : " - Misc maths helpers" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 27814, + "name" : "lhs", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 27833, + "name" : "rhs", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 27955, + "name" : "ImMax", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 27975, + "name" : "lhs", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 27994, + "name" : "rhs", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 28118, + "name" : "ImClamp", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 28140, + "name" : "v", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 28157, + "name" : "mn", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 28168, + "name" : "mx", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 28315, + "name" : "ImLerp", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 28336, + "name" : "a", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 28353, + "name" : "b", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 28362, + "name" : "t", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 28460, + "name" : "ImLerp", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 28481, + "name" : "a", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 28498, + "name" : "b", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 28515, + "name" : "t", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 28609, + "name" : "ImLerp", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 28630, + "name" : "a", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 28647, + "name" : "b", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 28656, + "name" : "t", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 28800, + "name" : "ImSaturate", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 28817, + "name" : "f", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 28934, + "name" : "ImLengthSqr", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 28960, + "name" : "lhs", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 29060, + "name" : "ImLengthSqr", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 29086, + "name" : "lhs", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 29222, + "name" : "ImInvLength", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 29248, + "name" : "lhs", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 29259, + "name" : "fail_value", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 29403, + "name" : "ImFloor", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 29417, + "name" : "f", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 29511, + "name" : "ImFloorSigned", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 29531, + "name" : "f", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 29693, + "name" : "ImFloor", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 29715, + "name" : "v", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 29830, + "name" : "ImModPositive", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 29848, + "name" : "a", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 29855, + "name" : "b", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 29934, + "name" : "ImDot", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 29954, + "name" : "a", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 29971, + "name" : "b", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 30048, + "name" : "ImRotate", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 30071, + "name" : "v", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 30080, + "name" : "cos_a", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 30093, + "name" : "sin_a", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 30201, + "name" : "ImLinearSweep", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 30221, + "name" : "current", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 30236, + "name" : "target", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 30250, + "name" : "speed", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 30423, + "name" : "ImMul", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 30443, + "name" : "lhs", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 30462, + "name" : "rhs", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 30552, + "name" : "ImIsFloatAboveGuaranteedIntegerPrecision", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 30599, + "name" : "f", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 31499, + "name" : "ImTriangleContainsPoint", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 31537, + "name" : "a", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 31554, + "name" : "b", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 31571, + "name" : "c", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 31588, + "name" : "p", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 31726, + "name" : "ImTriangleBarycentricCoords", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 31768, + "name" : "a", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 31785, + "name" : "b", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 31802, + "name" : "c", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 31819, + "name" : "p", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 31829, + "name" : "out_u", + "qualType" : "float &", + "desugaredQualType" : "float &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 31843, + "name" : "out_v", + "qualType" : "float &", + "desugaredQualType" : "float &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 31857, + "name" : "out_w", + "qualType" : "float &", + "desugaredQualType" : "float &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 31886, + "name" : "ImTriangleArea", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 31915, + "name" : "a", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 31932, + "name" : "b", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 31949, + "name" : "c", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 32301, + "name" : "ImVec1", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 32114, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 32114, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 32114, + "text" : " Helper: ImVec1 (1D vector)" + }, { + "@type" : "AstTextComment", + "offset" : 32144, + "text" : " (this odd construct is used to facilitate the transition between 1D and 2D, and the maintenance of some branches/patches)" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 32322, + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 32485, + "name" : "ImVec2ih", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 32399, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 32399, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 32399, + "text" : " Helper: ImVec2ih (2D vector, half-size integer, for long-term packed storage)" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 32508, + "name" : "x", + "qualType" : "short", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "offset" : 32511, + "name" : "y", + "qualType" : "short", + "desugaredQualType" : "short" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 36391, + "name" : "ImBitArrayTestBit", + "resultType" : "int", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 36355, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 36355, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 36355, + "text" : " Helper: ImBitArray" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 36422, + "name" : "arr", + "qualType" : "const int *", + "desugaredQualType" : "const int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 36431, + "name" : "n", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 50233, + "name" : "ImDrawDataBuilder", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 50281, + "name" : "Layers", + "qualType" : "int[2]", + "desugaredQualType" : "int[2]" + }, { + "@type" : "AstFunctionDecl", + "offset" : 50351, + "name" : "Clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 50459, + "name" : "ClearFreeMemory", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 50565, + "name" : "GetDrawListCount", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 50716, + "name" : "FlattenIntoSingleLayer", + "resultType" : "IMGUI_API" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 51164, + "name" : "ImGuiItemFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 50969, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 50969, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 50969, + "text" : " Transient per-window flags, reset at the beginning of the frame. For child window, inherited from parent on first Begin()." + }, { + "@type" : "AstTextComment", + "offset" : 51095, + "text" : " This is going to be exposed in imgui.h when stabilized enough." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 51186, + "name" : "ImGuiItemFlags_None", + "qualType" : "ImGuiItemFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 51235, + "name" : "ImGuiItemFlags_NoTabStop", + "docComment" : "false // Disable keyboard tabbing (FIXME: should merge with _NoNav)", + "qualType" : "ImGuiItemFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 51365, + "name" : "ImGuiItemFlags_ButtonRepeat", + "docComment" : "false // Button() will return true multiple times based on io.KeyRepeatDelay and io.KeyRepeatRate settings.", + "qualType" : "ImGuiItemFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 51535, + "name" : "ImGuiItemFlags_Disabled", + "docComment" : "false // Disable interactions but doesn't affect visuals. See BeginDisabled()/EndDisabled(). See github.com/ocornut/imgui/issues/211", + "qualType" : "ImGuiItemFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 51730, + "name" : "ImGuiItemFlags_NoNav", + "docComment" : "false // Disable keyboard/gamepad directional navigation (FIXME: should merge with _NoTabStop)", + "qualType" : "ImGuiItemFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 51887, + "name" : "ImGuiItemFlags_NoNavDefaultFocus", + "docComment" : "false // Disable item being a candidate for default focus (e.g. used by title bar items)", + "qualType" : "ImGuiItemFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 52038, + "name" : "ImGuiItemFlags_SelectableDontClosePopup", + "docComment" : "false // Disable MenuItem/Selectable() automatically closing their popup window", + "qualType" : "ImGuiItemFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 52180, + "name" : "ImGuiItemFlags_MixedValue", + "docComment" : "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)", + "qualType" : "ImGuiItemFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 52427, + "name" : "ImGuiItemFlags_ReadOnly", + "docComment" : "false // [ALPHA] Allow hovering interactions but underlying value is not changed.", + "qualType" : "ImGuiItemFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 52571, + "name" : "ImGuiItemFlags_Inputable", + "docComment" : "false // [WIP] Auto-activate input mode when tab focused. Currently only used and supported by a few items before it becomes a generic feature.", + "qualType" : "ImGuiItemFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : "256" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 52811, + "name" : "ImGuiItemStatusFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 52779, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 52779, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 52779, + "text" : " Storage for LastItem data" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 52839, + "name" : "ImGuiItemStatusFlags_None", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 52888, + "name" : "ImGuiItemStatusFlags_HoveredRect", + "docComment" : "Mouse position is within item rectangle (does NOT mean that the window is in correct z-order and can be hovered!, this is only one part of the most-common IsItemHovered test)", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 53122, + "name" : "ImGuiItemStatusFlags_HasDisplayRect", + "docComment" : "g.LastItemData.DisplayRect is valid", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 53217, + "name" : "ImGuiItemStatusFlags_Edited", + "docComment" : "Value exposed by item was edited in the current frame (should match the bool return value of most widgets)", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 53383, + "name" : "ImGuiItemStatusFlags_ToggledSelection", + "docComment" : "Set when Selectable(), TreeNode() reports toggling a selection. We can't report \"Selected\", only state changes, in order to easily handle clipping with less issues.", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 53607, + "name" : "ImGuiItemStatusFlags_ToggledOpen", + "docComment" : "Set when TreeNode() reports toggling their open state.", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 53721, + "name" : "ImGuiItemStatusFlags_HasDeactivated", + "docComment" : "Set if the widget/group is able to provide data for the ImGuiItemStatusFlags_Deactivated flag.", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 53875, + "name" : "ImGuiItemStatusFlags_Deactivated", + "docComment" : "Only valid if ImGuiItemStatusFlags_HasDeactivated is set.", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 53992, + "name" : "ImGuiItemStatusFlags_HoveredWindow", + "docComment" : "Override the HoveredWindow test to allow cross-window hover testing.", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 54120, + "name" : "ImGuiItemStatusFlags_FocusedByTabbing", + "docComment" : "Set when the Focusable item just got focused by Tabbing (FIXME: to be removed soon)", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : "256" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 54603, + "name" : "ImGuiInputTextFlagsPrivate_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 54569, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 54569, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 54569, + "text" : " Extend ImGuiInputTextFlags_" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 54655, + "name" : "ImGuiInputTextFlags_Multiline", + "docComment" : "For internal use by InputTextMultiline()", + "qualType" : "ImGuiInputTextFlagsPrivate_", + "order" : 0, + "value" : "1 << 26", + "evaluatedValue" : "67108864" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 54755, + "name" : "ImGuiInputTextFlags_NoMarkEdited", + "docComment" : "For internal use by functions using InputText() before reformatting data", + "qualType" : "ImGuiInputTextFlagsPrivate_", + "order" : 1, + "value" : "1 << 27", + "evaluatedValue" : "134217728" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 54887, + "name" : "ImGuiInputTextFlags_MergedItem", + "docComment" : "For internal use by TempInputText(), will skip calling ItemAdd(). Require bounding-box to strictly match.", + "qualType" : "ImGuiInputTextFlagsPrivate_", + "order" : 2, + "value" : "1 << 28", + "evaluatedValue" : "268435456" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 55085, + "name" : "ImGuiButtonFlagsPrivate_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 55054, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 55054, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 55054, + "text" : " Extend ImGuiButtonFlags_" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 55116, + "name" : "ImGuiButtonFlags_PressedOnClick", + "docComment" : "return true on click (mouse down event)", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 0, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 55215, + "name" : "ImGuiButtonFlags_PressedOnClickRelease", + "docComment" : "[Default] return true on click + release on same item < -- this is what the majority of Button are using", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 1, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 55378, + "name" : "ImGuiButtonFlags_PressedOnClickReleaseAnywhere", + "docComment" : "return true on click + release even if the release event is not done while hovering the item", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 2, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 55535, + "name" : "ImGuiButtonFlags_PressedOnRelease", + "docComment" : "return true on release (default requires click+release)", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 3, + "value" : "1 << 7", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 55650, + "name" : "ImGuiButtonFlags_PressedOnDoubleClick", + "docComment" : "return true on double-click (default requires click+release)", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 4, + "value" : "1 << 8", + "evaluatedValue" : "256" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 55770, + "name" : "ImGuiButtonFlags_PressedOnDragDropHold", + "docComment" : "return true when held into while we are drag and dropping another item (used by e.g. tree nodes, collapsing headers)", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 5, + "value" : "1 << 9", + "evaluatedValue" : "512" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 55946, + "name" : "ImGuiButtonFlags_Repeat", + "docComment" : "hold to repeat", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 6, + "value" : "1 << 10", + "evaluatedValue" : "1024" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 56020, + "name" : "ImGuiButtonFlags_FlattenChildren", + "docComment" : "allow interactions even if a child window is overlapping", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 7, + "value" : "1 << 11", + "evaluatedValue" : "2048" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 56136, + "name" : "ImGuiButtonFlags_AllowItemOverlap", + "docComment" : "require previous frame HoveredId to either match id or be null before being usable, use along with SetItemAllowOverlap()", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 8, + "value" : "1 << 12", + "evaluatedValue" : "4096" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 56316, + "name" : "ImGuiButtonFlags_DontClosePopups", + "docComment" : "disable automatically closing parent popup on press // [UNUSED]", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 9, + "value" : "1 << 13", + "evaluatedValue" : "8192" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 56569, + "name" : "ImGuiButtonFlags_AlignTextBaseLine", + "docComment" : "vertically align button to match text baseline - ButtonEx() only // FIXME: Should be removed and handled by SmallButton(), not possible currently because of DC.CursorPosPrevLine", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 10, + "value" : "1 << 15", + "evaluatedValue" : "32768" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 56806, + "name" : "ImGuiButtonFlags_NoKeyModifiers", + "docComment" : "disable mouse interaction if a key modifier is held", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 11, + "value" : "1 << 16", + "evaluatedValue" : "65536" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 56917, + "name" : "ImGuiButtonFlags_NoHoldingActiveId", + "docComment" : "don't set ActiveId while holding the mouse (ImGuiButtonFlags_PressedOnClick only)", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 12, + "value" : "1 << 17", + "evaluatedValue" : "131072" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 57058, + "name" : "ImGuiButtonFlags_NoNavFocus", + "docComment" : "don't override navigation focus when activated", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 13, + "value" : "1 << 18", + "evaluatedValue" : "262144" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 57164, + "name" : "ImGuiButtonFlags_NoHoveredOnFocus", + "docComment" : "don't report as hovered when nav focus is on this item", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 14, + "value" : "1 << 19", + "evaluatedValue" : "524288" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 57278, + "name" : "ImGuiButtonFlags_PressedOnMask_", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 15, + "value" : "ImGuiButtonFlags_PressedOnClick | ImGuiButtonFlags_PressedOnClickRelease | ImGuiButtonFlags_PressedOnClickReleaseAnywhere | ImGuiButtonFlags_PressedOnRelease | ImGuiButtonFlags_PressedOnDoubleClick | ImGuiButtonFlags_PressedOnDragDropHold", + "evaluatedValue" : "1008" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 57564, + "name" : "ImGuiButtonFlags_PressedOnDefault_", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 16, + "value" : "ImGuiButtonFlags_PressedOnClickRelease", + "evaluatedValue" : "32" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 57681, + "name" : "ImGuiComboFlagsPrivate_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 57651, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 57651, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 57651, + "text" : " Extend ImGuiComboFlags_" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 57711, + "name" : "ImGuiComboFlags_CustomPreview", + "docComment" : "enable BeginComboPreview()", + "qualType" : "ImGuiComboFlagsPrivate_", + "order" : 0, + "value" : "1 << 20", + "evaluatedValue" : "1048576" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 57830, + "name" : "ImGuiSliderFlagsPrivate_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 57799, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 57799, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 57799, + "text" : " Extend ImGuiSliderFlags_" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 57861, + "name" : "ImGuiSliderFlags_Vertical", + "docComment" : "Should this slider be orientated vertically?", + "qualType" : "ImGuiSliderFlagsPrivate_", + "order" : 0, + "value" : "1 << 20", + "evaluatedValue" : "1048576" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 57965, + "name" : "ImGuiSliderFlags_ReadOnly", + "qualType" : "ImGuiSliderFlagsPrivate_", + "order" : 1, + "value" : "1 << 21", + "evaluatedValue" : "2097152" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 58056, + "name" : "ImGuiSelectableFlagsPrivate_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 58021, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 58021, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 58021, + "text" : " Extend ImGuiSelectableFlags_" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 58162, + "name" : "ImGuiSelectableFlags_NoHoldingActiveID", + "docComment" : "NB: need to be in sync with last value of ImGuiSelectableFlags_", + "qualType" : "ImGuiSelectableFlagsPrivate_", + "order" : 0, + "value" : "1 << 20", + "evaluatedValue" : "1048576" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 58221, + "name" : "ImGuiSelectableFlags_SelectOnNav", + "docComment" : "(WIP) Auto-select when moved into. This is not exposed in public API as to handle multi-select and modifiers we will need user to explicitly control focus scope. May be replaced with a BeginSelection() API.", + "qualType" : "ImGuiSelectableFlagsPrivate_", + "order" : 1, + "value" : "1 << 21", + "evaluatedValue" : "2097152" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 58491, + "name" : "ImGuiSelectableFlags_SelectOnClick", + "docComment" : "Override button behavior to react on Click (default is Click+Release)", + "qualType" : "ImGuiSelectableFlagsPrivate_", + "order" : 2, + "value" : "1 << 22", + "evaluatedValue" : "4194304" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 58624, + "name" : "ImGuiSelectableFlags_SelectOnRelease", + "docComment" : "Override button behavior to react on Release (default is Click+Release)", + "qualType" : "ImGuiSelectableFlagsPrivate_", + "order" : 3, + "value" : "1 << 23", + "evaluatedValue" : "8388608" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 58759, + "name" : "ImGuiSelectableFlags_SpanAvailWidth", + "docComment" : "Span all avail width even if we declared less for layout purpose. FIXME: We may be able to remove this (added in 6251d379, 2bcafc86 for menus)", + "qualType" : "ImGuiSelectableFlagsPrivate_", + "order" : 4, + "value" : "1 << 24", + "evaluatedValue" : "16777216" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 58965, + "name" : "ImGuiSelectableFlags_DrawHoveredWhenHeld", + "docComment" : "Always show active when held, even is not hovered. This concept could probably be renamed/formalized somehow.", + "qualType" : "ImGuiSelectableFlagsPrivate_", + "order" : 5, + "value" : "1 << 25", + "evaluatedValue" : "33554432" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 59138, + "name" : "ImGuiSelectableFlags_SetNavIdOnHover", + "docComment" : "Set Nav/Focus ID on mouse hover (used by MenuItem)", + "qualType" : "ImGuiSelectableFlagsPrivate_", + "order" : 6, + "value" : "1 << 26", + "evaluatedValue" : "67108864" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 59252, + "name" : "ImGuiSelectableFlags_NoPadWithHalfSpacing", + "docComment" : "Disable padding each side with ItemSpacing * 0.5f", + "qualType" : "ImGuiSelectableFlagsPrivate_", + "order" : 7, + "value" : "1 << 27", + "evaluatedValue" : "134217728" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 59400, + "name" : "ImGuiTreeNodeFlagsPrivate_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 59367, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 59367, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 59367, + "text" : " Extend ImGuiTreeNodeFlags_" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 59433, + "name" : "ImGuiTreeNodeFlags_ClipLabelForTrailingButton", + "qualType" : "ImGuiTreeNodeFlagsPrivate_", + "order" : 0, + "value" : "1 << 20", + "evaluatedValue" : "1048576" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 59498, + "name" : "ImGuiSeparatorFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 59525, + "name" : "ImGuiSeparatorFlags_None", + "qualType" : "ImGuiSeparatorFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 59574, + "name" : "ImGuiSeparatorFlags_Horizontal", + "docComment" : "Axis default to current layout type, so generally Horizontal unless e.g. in a menu bar", + "qualType" : "ImGuiSeparatorFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 59720, + "name" : "ImGuiSeparatorFlags_Vertical", + "qualType" : "ImGuiSeparatorFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 59774, + "name" : "ImGuiSeparatorFlags_SpanAllColumns", + "qualType" : "ImGuiSeparatorFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 59832, + "name" : "ImGuiTextFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 59854, + "name" : "ImGuiTextFlags_None", + "qualType" : "ImGuiTextFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 59883, + "name" : "ImGuiTextFlags_NoWidthForLargeClippedText", + "qualType" : "ImGuiTextFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 59943, + "name" : "ImGuiTooltipFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 59968, + "name" : "ImGuiTooltipFlags_None", + "qualType" : "ImGuiTooltipFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 60000, + "name" : "ImGuiTooltipFlags_OverridePreviousTooltip", + "docComment" : "Override will clear/ignore previously submitted tooltip (defaults to append)", + "qualType" : "ImGuiTooltipFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 60310, + "name" : "ImGuiLayoutType_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 60142, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 60142, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 60142, + "text" : " FIXME: this is in development, not exposed/functional as a generic feature yet." + }, { + "@type" : "AstTextComment", + "offset" : 60225, + "text" : " Horizontal/Vertical enums are fixed to 0/1 so they may be used to index ImVec2" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 60333, + "name" : "ImGuiLayoutType_Horizontal", + "qualType" : "ImGuiLayoutType_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 60369, + "name" : "ImGuiLayoutType_Vertical", + "qualType" : "ImGuiLayoutType_", + "order" : 1, + "value" : "1", + "evaluatedValue" : "1" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 60407, + "name" : "ImGuiLogType", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 60426, + "name" : "ImGuiLogType_None", + "qualType" : "ImGuiLogType", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 60453, + "name" : "ImGuiLogType_TTY", + "qualType" : "ImGuiLogType", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 60475, + "name" : "ImGuiLogType_File", + "qualType" : "ImGuiLogType", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 60498, + "name" : "ImGuiLogType_Buffer", + "qualType" : "ImGuiLogType", + "order" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 60523, + "name" : "ImGuiLogType_Clipboard", + "qualType" : "ImGuiLogType", + "order" : 4 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 60621, + "name" : "ImGuiAxis", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 60552, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 60552, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 60552, + "text" : " X/Y enums are fixed to 0/1 so they may be used to index ImVec2" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 60637, + "name" : "ImGuiAxis_None", + "qualType" : "ImGuiAxis", + "order" : -1, + "value" : "-1", + "evaluatedValue" : "-1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 60662, + "name" : "ImGuiAxis_X", + "qualType" : "ImGuiAxis", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 60683, + "name" : "ImGuiAxis_Y", + "qualType" : "ImGuiAxis", + "order" : 1, + "value" : "1", + "evaluatedValue" : "1" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 60708, + "name" : "ImGuiPlotType", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 60728, + "name" : "ImGuiPlotType_Lines", + "qualType" : "ImGuiPlotType", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 60753, + "name" : "ImGuiPlotType_Histogram", + "qualType" : "ImGuiPlotType", + "order" : 1 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 60786, + "name" : "ImGuiInputSource", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 60809, + "name" : "ImGuiInputSource_None", + "qualType" : "ImGuiInputSource", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 60840, + "name" : "ImGuiInputSource_Mouse", + "qualType" : "ImGuiInputSource", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 60868, + "name" : "ImGuiInputSource_Keyboard", + "qualType" : "ImGuiInputSource", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 60899, + "name" : "ImGuiInputSource_Gamepad", + "qualType" : "ImGuiInputSource", + "order" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 60929, + "name" : "ImGuiInputSource_Nav", + "docComment" : "Stored in g.ActiveIdSource only", + "qualType" : "ImGuiInputSource", + "order" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 61004, + "name" : "ImGuiInputSource_Clipboard", + "docComment" : "Currently only used by InputText()", + "qualType" : "ImGuiInputSource", + "order" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 61082, + "name" : "ImGuiInputSource_COUNT", + "qualType" : "ImGuiInputSource", + "order" : 6 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 61169, + "name" : "ImGuiInputReadMode", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 61111, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 61111, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 61111, + "text" : " FIXME-NAV: Clarify/expose various repeat delay/rate" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 61194, + "name" : "ImGuiInputReadMode_Down", + "qualType" : "ImGuiInputReadMode", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 61223, + "name" : "ImGuiInputReadMode_Pressed", + "qualType" : "ImGuiInputReadMode", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 61255, + "name" : "ImGuiInputReadMode_Released", + "qualType" : "ImGuiInputReadMode", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 61288, + "name" : "ImGuiInputReadMode_Repeat", + "qualType" : "ImGuiInputReadMode", + "order" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 61319, + "name" : "ImGuiInputReadMode_RepeatSlow", + "qualType" : "ImGuiInputReadMode", + "order" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 61354, + "name" : "ImGuiInputReadMode_RepeatFast", + "qualType" : "ImGuiInputReadMode", + "order" : 5 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 61393, + "name" : "ImGuiPopupPositionPolicy", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 61424, + "name" : "ImGuiPopupPositionPolicy_Default", + "qualType" : "ImGuiPopupPositionPolicy", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 61462, + "name" : "ImGuiPopupPositionPolicy_ComboBox", + "qualType" : "ImGuiPopupPositionPolicy", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 61501, + "name" : "ImGuiPopupPositionPolicy_Tooltip", + "qualType" : "ImGuiPopupPositionPolicy", + "order" : 2 + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 61545, + "name" : "ImGuiDataTypeTempStorage", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 61588, + "name" : "Data", + "qualType" : "int[8]", + "desugaredQualType" : "int[8]" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 61747, + "name" : "ImGuiDataTypeInfo", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 61656, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 61656, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 61656, + "text" : " Type information associated to one ImGuiDataType. Retrieve with DataTypeGetInfo()." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 61783, + "name" : "Size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstFieldDecl", + "offset" : 61832, + "name" : "Name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "offset" : 61918, + "name" : "PrintFmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "offset" : 61988, + "name" : "ScanFmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 62075, + "name" : "ImGuiDataTypePrivate_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 62047, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 62047, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 62047, + "text" : " Extend ImGuiDataType_" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 62103, + "name" : "ImGuiDataType_String", + "qualType" : "ImGuiDataTypePrivate_", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 62155, + "name" : "ImGuiDataType_Pointer", + "qualType" : "ImGuiDataTypePrivate_", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 62182, + "name" : "ImGuiDataType_ID", + "qualType" : "ImGuiDataTypePrivate_", + "order" : 2 + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 62282, + "name" : "ImGuiColorMod", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 62205, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 62205, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 62205, + "text" : " Stacked color modifier, backup of modified data so we can restore it" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 62314, + "name" : "Col", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 62335, + "name" : "BackupValue", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 62470, + "name" : "ImGuiStyleMod", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 62354, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 62354, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 62354, + "text" : " Stacked style modifier, backup of modified data so we can restore it. Data type inferred from the variable." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 62506, + "name" : "VarIdx", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 68062, + "name" : "ImGuiPopupData", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 68022, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 68022, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 68022, + "text" : " Storage for current popup stack" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 68103, + "name" : "PopupId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 68165, + "name" : "Window", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "offset" : 68287, + "name" : "SourceWindow", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "offset" : 68400, + "name" : "OpenFrameCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 68462, + "name" : "OpenParentId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 68634, + "name" : "OpenPopupPos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 68767, + "name" : "OpenMousePos", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 68949, + "name" : "ImGuiNextWindowDataFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 68981, + "name" : "ImGuiNextWindowDataFlags_None", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 69034, + "name" : "ImGuiNextWindowDataFlags_HasPos", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 69092, + "name" : "ImGuiNextWindowDataFlags_HasSize", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 69150, + "name" : "ImGuiNextWindowDataFlags_HasContentSize", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 69208, + "name" : "ImGuiNextWindowDataFlags_HasCollapsed", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 69266, + "name" : "ImGuiNextWindowDataFlags_HasSizeConstraint", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 69324, + "name" : "ImGuiNextWindowDataFlags_HasFocus", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 69382, + "name" : "ImGuiNextWindowDataFlags_HasBgAlpha", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 69440, + "name" : "ImGuiNextWindowDataFlags_HasScroll", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 69498, + "name" : "ImGuiNextWindowDataFlags_HasViewport", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : "256" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 69556, + "name" : "ImGuiNextWindowDataFlags_HasDock", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 10, + "value" : "1 << 9", + "evaluatedValue" : "512" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 69614, + "name" : "ImGuiNextWindowDataFlags_HasWindowClass", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 11, + "value" : "1 << 10", + "evaluatedValue" : "1024" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 69719, + "name" : "ImGuiNextWindowData", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 69674, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 69674, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 69674, + "text" : " Storage for SetNexWindow** functions" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 69773, + "name" : "Flags", + "qualType" : "ImGuiNextWindowDataFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 69812, + "name" : "PosCond", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 69853, + "name" : "SizeCond", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 69895, + "name" : "CollapsedCond", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 69942, + "name" : "DockCond", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 69984, + "name" : "PosVal", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 70024, + "name" : "PosPivotVal", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 70069, + "name" : "SizeVal", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 70110, + "name" : "ContentSizeVal", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 70158, + "name" : "ScrollVal", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 70201, + "name" : "PosUndock", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 70244, + "name" : "CollapsedVal", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 70290, + "name" : "SizeConstraintRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "offset" : 70342, + "name" : "SizeCallback", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 70388, + "name" : "SizeCallbackUserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 70442, + "name" : "BgAlphaVal", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 70527, + "name" : "ViewportId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 70571, + "name" : "DockId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 70611, + "name" : "WindowClass", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 70656, + "name" : "MenuBarOffsetMinVal", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 70901, + "name" : "ClearFlags", + "resultType" : "void" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 70969, + "name" : "ImGuiNextItemDataFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 70999, + "name" : "ImGuiNextItemDataFlags_None", + "qualType" : "ImGuiNextItemDataFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 71040, + "name" : "ImGuiNextItemDataFlags_HasWidth", + "qualType" : "ImGuiNextItemDataFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 71086, + "name" : "ImGuiNextItemDataFlags_HasOpen", + "qualType" : "ImGuiNextItemDataFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 71138, + "name" : "ImGuiNextItemData", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 71190, + "name" : "Flags", + "qualType" : "ImGuiNextItemDataFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 71229, + "name" : "Width", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 71306, + "name" : "FocusScopeId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 71576, + "name" : "OpenCond", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 71618, + "name" : "OpenVal", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 71747, + "name" : "ClearFlags", + "resultType" : "void" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 71900, + "name" : "ImGuiLastItemData", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 71849, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 71849, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 71849, + "text" : " Status storage for the last submitted item" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 71948, + "name" : "ID", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 71980, + "name" : "InFlags", + "qualType" : "ImGuiItemFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 72051, + "name" : "StatusFlags", + "qualType" : "ImGuiItemStatusFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 72128, + "name" : "Rect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "offset" : 72194, + "name" : "NavRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "offset" : 72290, + "name" : "DisplayRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 72962, + "name" : "ImGuiWindowStackData", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 72905, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 72905, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 72905, + "text" : " Data saved for each window pushed into the stack" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 73013, + "name" : "Window", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "offset" : 73049, + "name" : "ParentLastItemDataBackup", + "qualType" : "ImGuiLastItemData", + "desugaredQualType" : "ImGuiLastItemData" + }, { + "@type" : "AstFieldDecl", + "offset" : 73103, + "name" : "StackSizesOnBegin", + "qualType" : "ImGuiStackSizes", + "desugaredQualType" : "ImGuiStackSizes" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 73184, + "name" : "ImGuiShrinkWidthItem", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 73223, + "name" : "Index", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 73246, + "name" : "Width", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 73264, + "name" : "ImGuiPtrOrIndex", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 73298, + "name" : "Ptr", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 73442, + "name" : "Index", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 73815, + "name" : "ImGuiListClipperRange", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 73620, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 73620, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 73620, + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "offset" : 73700, + "text" : " [SECTION] Clipper support" + }, { + "@type" : "AstTextComment", + "offset" : 73729, + "text" : "-----------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 73851, + "name" : "Min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 73868, + "name" : "Max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 73885, + "name" : "PosToIndexConvert", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 73993, + "name" : "PosToIndexOffsetMin", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 74071, + "name" : "PosToIndexOffsetMax", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 74174, + "name" : "FromIndices", + "resultType" : "ImGuiListClipperRange", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 74190, + "name" : "min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 74199, + "name" : "max", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 74337, + "name" : "FromPositions", + "resultType" : "ImGuiListClipperRange", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 74357, + "name" : "y1", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 74367, + "name" : "y2", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 74375, + "name" : "off_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 74388, + "name" : "off_max", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 74573, + "name" : "ImGuiListClipperData", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 74501, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 74501, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 74501, + "text" : " Temporary clipper data, buffers shared/reused between instances" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 74632, + "name" : "ListClipper", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstFieldDecl", + "offset" : 74681, + "name" : "LossynessOffset", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 74734, + "name" : "StepNo", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 74778, + "name" : "ItemsFrozen", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 74827, + "name" : "Ranges", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 74944, + "name" : "Reset", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 74968, + "name" : "clipper", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 75250, + "name" : "ImGuiActivateFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 75054, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 75054, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 75054, + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "offset" : 75134, + "text" : " [SECTION] Navigation support" + }, { + "@type" : "AstTextComment", + "offset" : 75166, + "text" : "-----------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 75276, + "name" : "ImGuiActivateFlags_None", + "qualType" : "ImGuiActivateFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 75325, + "name" : "ImGuiActivateFlags_PreferInput", + "docComment" : "Favor activation that requires keyboard text input (e.g. for Slider/Drag). Default if keyboard is available.", + "qualType" : "ImGuiActivateFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 75497, + "name" : "ImGuiActivateFlags_PreferTweak", + "docComment" : "Favor activation for tweaking with arrows or gamepad (e.g. for Slider/Drag). Default if keyboard is not available.", + "qualType" : "ImGuiActivateFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 75675, + "name" : "ImGuiActivateFlags_TryToPreserveState", + "docComment" : "Request widget to preserve state if it can (e.g. InputText will try to preserve cursor/selection)", + "qualType" : "ImGuiActivateFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 75890, + "name" : "ImGuiScrollFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 75838, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 75838, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 75838, + "text" : " Early work-in-progress API for ScrollToItem()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 75914, + "name" : "ImGuiScrollFlags_None", + "qualType" : "ImGuiScrollFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 75963, + "name" : "ImGuiScrollFlags_KeepVisibleEdgeX", + "docComment" : "If item is not visible: scroll as little as possible on X axis to bring item back into view [default for X axis]", + "qualType" : "ImGuiScrollFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 76139, + "name" : "ImGuiScrollFlags_KeepVisibleEdgeY", + "docComment" : "If item is not visible: scroll as little as possible on Y axis to bring item back into view [default for Y axis for windows that are already visible]", + "qualType" : "ImGuiScrollFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 76352, + "name" : "ImGuiScrollFlags_KeepVisibleCenterX", + "docComment" : "If item is not visible: scroll to make the item centered on X axis [rarely used]", + "qualType" : "ImGuiScrollFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 76496, + "name" : "ImGuiScrollFlags_KeepVisibleCenterY", + "docComment" : "If item is not visible: scroll to make the item centered on Y axis", + "qualType" : "ImGuiScrollFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 76626, + "name" : "ImGuiScrollFlags_AlwaysCenterX", + "docComment" : "Always center the result item on X axis [rarely used]", + "qualType" : "ImGuiScrollFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 76743, + "name" : "ImGuiScrollFlags_AlwaysCenterY", + "docComment" : "Always center the result item on Y axis [default for Y axis for appearing window)", + "qualType" : "ImGuiScrollFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 76888, + "name" : "ImGuiScrollFlags_NoScrollParent", + "docComment" : "Disable forwarding scrolling to parent window if required to keep item/rect visible (only scroll window the function was applied to).", + "qualType" : "ImGuiScrollFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 77085, + "name" : "ImGuiScrollFlags_MaskX_", + "qualType" : "ImGuiScrollFlags_", + "order" : 8, + "value" : "ImGuiScrollFlags_KeepVisibleEdgeX | ImGuiScrollFlags_KeepVisibleCenterX | ImGuiScrollFlags_AlwaysCenterX", + "evaluatedValue" : "21" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 77237, + "name" : "ImGuiScrollFlags_MaskY_", + "qualType" : "ImGuiScrollFlags_", + "order" : 9, + "value" : "ImGuiScrollFlags_KeepVisibleEdgeY | ImGuiScrollFlags_KeepVisibleCenterY | ImGuiScrollFlags_AlwaysCenterY", + "evaluatedValue" : "42" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 77393, + "name" : "ImGuiNavHighlightFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 77423, + "name" : "ImGuiNavHighlightFlags_None", + "qualType" : "ImGuiNavHighlightFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 77472, + "name" : "ImGuiNavHighlightFlags_TypeDefault", + "qualType" : "ImGuiNavHighlightFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 77526, + "name" : "ImGuiNavHighlightFlags_TypeThin", + "qualType" : "ImGuiNavHighlightFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 77580, + "name" : "ImGuiNavHighlightFlags_AlwaysDraw", + "docComment" : "Draw rectangular highlight if (g.NavId == id) _even_ when using the mouse.", + "qualType" : "ImGuiNavHighlightFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 77718, + "name" : "ImGuiNavHighlightFlags_NoRounding", + "qualType" : "ImGuiNavHighlightFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 77776, + "name" : "ImGuiNavDirSourceFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 77806, + "name" : "ImGuiNavDirSourceFlags_None", + "qualType" : "ImGuiNavDirSourceFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 77855, + "name" : "ImGuiNavDirSourceFlags_RawKeyboard", + "docComment" : "Raw keyboard (not pulled from nav), faciliate use of some functions before we can unify nav and keys", + "qualType" : "ImGuiNavDirSourceFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 78015, + "name" : "ImGuiNavDirSourceFlags_Keyboard", + "qualType" : "ImGuiNavDirSourceFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 78069, + "name" : "ImGuiNavDirSourceFlags_PadDPad", + "qualType" : "ImGuiNavDirSourceFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 78123, + "name" : "ImGuiNavDirSourceFlags_PadLStick", + "qualType" : "ImGuiNavDirSourceFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 78181, + "name" : "ImGuiNavMoveFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 78206, + "name" : "ImGuiNavMoveFlags_None", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 78255, + "name" : "ImGuiNavMoveFlags_LoopX", + "docComment" : "On failed request, restart from opposite side", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 78360, + "name" : "ImGuiNavMoveFlags_LoopY", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 78414, + "name" : "ImGuiNavMoveFlags_WrapX", + "docComment" : "On failed request, request from opposite side one line down (when NavDir==right) or one line up (when NavDir==left)", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 78589, + "name" : "ImGuiNavMoveFlags_WrapY", + "docComment" : "This is not super useful but provided for completeness", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 78703, + "name" : "ImGuiNavMoveFlags_AllowCurrentNavId", + "docComment" : "Allow scoring and considering the current NavId as a move target candidate. This is used when the move source is offset (e.g. pressing PageDown actually needs to send a Up move request, if we are pressing PageDown from the bottom-most item we need to stay in place)", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 79028, + "name" : "ImGuiNavMoveFlags_AlsoScoreVisibleSet", + "docComment" : "Store alternate result in NavMoveResultLocalVisible that only comprise elements that are already fully visible (used by PageUp/PageDown)", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 79224, + "name" : "ImGuiNavMoveFlags_ScrollToEdgeY", + "docComment" : "Force scrolling to min/max (used by Home/End) // FIXME-NAV: Aim to remove or reword, probably unnecessary", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 79389, + "name" : "ImGuiNavMoveFlags_Forwarded", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 79443, + "name" : "ImGuiNavMoveFlags_DebugNoResult", + "docComment" : "Dummy scoring for debug purpose, don't apply result", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : "256" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 79554, + "name" : "ImGuiNavMoveFlags_FocusApi", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 10, + "value" : "1 << 9", + "evaluatedValue" : "512" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 79608, + "name" : "ImGuiNavMoveFlags_Tabbing", + "docComment" : "== Focus + Activate if item is Inputable + DontChangeNavHighlight", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 11, + "value" : "1 << 10", + "evaluatedValue" : "1024" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 79733, + "name" : "ImGuiNavMoveFlags_Activate", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 12, + "value" : "1 << 11", + "evaluatedValue" : "2048" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 79788, + "name" : "ImGuiNavMoveFlags_DontSetNavHighlight", + "docComment" : "Do not alter the visible state of keyboard vs mouse nav highlight", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 13, + "value" : "1 << 12", + "evaluatedValue" : "4096" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 79918, + "name" : "ImGuiNavLayer", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 79938, + "name" : "ImGuiNavLayer_Main", + "docComment" : "Main scrolling layer", + "qualType" : "ImGuiNavLayer", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 79994, + "name" : "ImGuiNavLayer_Menu", + "docComment" : "Menu layer (access with Alt/ImGuiNavInput_Menu)", + "qualType" : "ImGuiNavLayer", + "order" : 1, + "value" : "1", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 80077, + "name" : "ImGuiNavLayer_COUNT", + "qualType" : "ImGuiNavLayer", + "order" : 2 + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 80108, + "name" : "ImGuiNavItemData", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 80151, + "name" : "Window", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "offset" : 80290, + "name" : "ID", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 80372, + "name" : "FocusScopeId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 80461, + "name" : "RectRel", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "offset" : 80573, + "name" : "InFlags", + "qualType" : "ImGuiItemFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 80658, + "name" : "DistBox", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 80762, + "name" : "DistCenter", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 80869, + "name" : "DistAxial", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFunctionDecl", + "offset" : 80998, + "name" : "Clear", + "resultType" : "void" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 81387, + "name" : "ImGuiOldColumnFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 81308, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 81308, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 81308, + "text" : " Flags for internal's BeginColumns(). Prefix using BeginTable() nowadays!" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 81414, + "name" : "ImGuiOldColumnFlags_None", + "qualType" : "ImGuiOldColumnFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 81467, + "name" : "ImGuiOldColumnFlags_NoBorder", + "docComment" : "Disable column dividers", + "qualType" : "ImGuiOldColumnFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 81554, + "name" : "ImGuiOldColumnFlags_NoResize", + "docComment" : "Disable resizing columns when clicking on the dividers", + "qualType" : "ImGuiOldColumnFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 81672, + "name" : "ImGuiOldColumnFlags_NoPreserveWidths", + "docComment" : "Disable column width preservation when adjusting columns", + "qualType" : "ImGuiOldColumnFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 81792, + "name" : "ImGuiOldColumnFlags_NoForceWithinWindow", + "docComment" : "Disable forcing columns to fit within window", + "qualType" : "ImGuiOldColumnFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 81900, + "name" : "ImGuiOldColumnFlags_GrowParentContentsSize", + "docComment" : "(WIP) Restore pre-1.51 behavior of extending the parent window contents size but _without affecting the columns width at all_. Will eventually remove.", + "qualType" : "ImGuiOldColumnFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 82198, + "name" : "ImGuiColumnsFlags_None", + "qualType" : "ImGuiOldColumnFlags_", + "order" : 6, + "value" : "ImGuiOldColumnFlags_None", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 82272, + "name" : "ImGuiColumnsFlags_NoBorder", + "qualType" : "ImGuiOldColumnFlags_", + "order" : 7, + "value" : "ImGuiOldColumnFlags_NoBorder", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 82352, + "name" : "ImGuiColumnsFlags_NoResize", + "qualType" : "ImGuiOldColumnFlags_", + "order" : 8, + "value" : "ImGuiOldColumnFlags_NoResize", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 82432, + "name" : "ImGuiColumnsFlags_NoPreserveWidths", + "qualType" : "ImGuiOldColumnFlags_", + "order" : 9, + "value" : "ImGuiOldColumnFlags_NoPreserveWidths", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 82520, + "name" : "ImGuiColumnsFlags_NoForceWithinWindow", + "qualType" : "ImGuiOldColumnFlags_", + "order" : 10, + "value" : "ImGuiOldColumnFlags_NoForceWithinWindow", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 82611, + "name" : "ImGuiColumnsFlags_GrowParentContentsSize", + "qualType" : "ImGuiOldColumnFlags_", + "order" : 11, + "value" : "ImGuiOldColumnFlags_GrowParentContentsSize", + "evaluatedValue" : "16" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 82718, + "name" : "ImGuiOldColumnData", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 82763, + "name" : "OffsetNorm", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 82876, + "name" : "OffsetNormBeforeResize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 82924, + "name" : "Flags", + "qualType" : "ImGuiOldColumnFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 82983, + "name" : "ClipRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 83066, + "name" : "ImGuiOldColumns", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 83108, + "name" : "ID", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 83136, + "name" : "Flags", + "qualType" : "ImGuiOldColumnFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 83167, + "name" : "IsFirstFrame", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 83205, + "name" : "IsBeingResized", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 83245, + "name" : "Current", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 83278, + "name" : "Count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 83309, + "name" : "OffMinX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 83318, + "name" : "OffMaxX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 83392, + "name" : "LineMinY", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 83402, + "name" : "LineMaxY", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 83436, + "name" : "HostCursorPosY", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 83537, + "name" : "HostCursorMaxPosX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 83641, + "name" : "HostInitialClipRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "offset" : 83741, + "name" : "HostBackupClipRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "offset" : 83865, + "name" : "HostBackupParentWorkRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "offset" : 83974, + "name" : "Columns", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 84007, + "name" : "Splitter", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 84641, + "name" : "ImGuiDockNodeFlagsPrivate_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 84608, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 84608, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 84608, + "text" : " Extend ImGuiDockNodeFlags_" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 84692, + "name" : "ImGuiDockNodeFlags_DockSpace", + "docComment" : "Local, Saved // A dockspace is a node that occupy space within an existing user window. Otherwise the node is floating and create its own window.", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 0, + "value" : "1 << 10", + "evaluatedValue" : "1024" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 84902, + "name" : "ImGuiDockNodeFlags_CentralNode", + "docComment" : "Local, Saved // The central node has 2 main properties: stay visible when empty, only use \"remaining\" spaces from its neighbor.", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 1, + "value" : "1 << 11", + "evaluatedValue" : "2048" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 85094, + "name" : "ImGuiDockNodeFlags_NoTabBar", + "docComment" : "Local, Saved // Tab bar is completely unavailable. No triangle in the corner to enable it back.", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 2, + "value" : "1 << 12", + "evaluatedValue" : "4096" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 85254, + "name" : "ImGuiDockNodeFlags_HiddenTabBar", + "docComment" : "Local, Saved // Tab bar is hidden, with a triangle in the corner to show it again (NB: actual tab-bar instance may be destroyed as this is only used for single-window tab bar)", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 3, + "value" : "1 << 13", + "evaluatedValue" : "8192" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 85494, + "name" : "ImGuiDockNodeFlags_NoWindowMenuButton", + "docComment" : "Local, Saved // Disable window/docking menu (that one that appears instead of the collapse button)", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 4, + "value" : "1 << 14", + "evaluatedValue" : "16384" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 85657, + "name" : "ImGuiDockNodeFlags_NoCloseButton", + "docComment" : "Local, Saved //", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 5, + "value" : "1 << 15", + "evaluatedValue" : "32768" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 85737, + "name" : "ImGuiDockNodeFlags_NoDocking", + "docComment" : "Local, Saved // Disable any form of docking in this dockspace or individual node. (On a whole dockspace, this pretty much defeat the purpose of using a dockspace at all). Note: when turned on, existing docked nodes will be preserved.", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 6, + "value" : "1 << 16", + "evaluatedValue" : "65536" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 86035, + "name" : "ImGuiDockNodeFlags_NoDockingSplitMe", + "docComment" : "[EXPERIMENTAL] Prevent another window/node from splitting this node.", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 7, + "value" : "1 << 17", + "evaluatedValue" : "131072" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 86167, + "name" : "ImGuiDockNodeFlags_NoDockingSplitOther", + "docComment" : "[EXPERIMENTAL] Prevent this node from splitting another window/node.", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 8, + "value" : "1 << 18", + "evaluatedValue" : "262144" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 86299, + "name" : "ImGuiDockNodeFlags_NoDockingOverMe", + "docComment" : "[EXPERIMENTAL] Prevent another window/node to be docked over this node.", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 9, + "value" : "1 << 19", + "evaluatedValue" : "524288" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 86434, + "name" : "ImGuiDockNodeFlags_NoDockingOverOther", + "docComment" : "[EXPERIMENTAL] Prevent this node to be docked over another window or non-empty node.", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 10, + "value" : "1 << 20", + "evaluatedValue" : "1048576" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 86582, + "name" : "ImGuiDockNodeFlags_NoDockingOverEmpty", + "docComment" : "[EXPERIMENTAL] Prevent this node to be docked over an empty node (e.g. DockSpace with no other windows)", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 11, + "value" : "1 << 21", + "evaluatedValue" : "2097152" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 86749, + "name" : "ImGuiDockNodeFlags_NoResizeX", + "docComment" : "[EXPERIMENTAL]", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 12, + "value" : "1 << 22", + "evaluatedValue" : "4194304" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 86827, + "name" : "ImGuiDockNodeFlags_NoResizeY", + "docComment" : "[EXPERIMENTAL]", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 13, + "value" : "1 << 23", + "evaluatedValue" : "8388608" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 86905, + "name" : "ImGuiDockNodeFlags_SharedFlagsInheritMask_", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 14, + "value" : "~0", + "evaluatedValue" : "-1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 86959, + "name" : "ImGuiDockNodeFlags_NoResizeFlagsMask_", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 15 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 87100, + "name" : "ImGuiDockNodeFlags_LocalFlagsMask_", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 87488, + "name" : "ImGuiDockNodeFlags_LocalFlagsTransferMask_", + "docComment" : "When splitting those flags are moved to the inheriting child, never duplicated", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 17, + "value" : "ImGuiDockNodeFlags_LocalFlagsMask_ & ~ImGuiDockNodeFlags_DockSpace", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 87689, + "name" : "ImGuiDockNodeFlags_SavedFlagsMask_", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 18, + "value" : "ImGuiDockNodeFlags_NoResizeFlagsMask_ | ImGuiDockNodeFlags_DockSpace | ImGuiDockNodeFlags_CentralNode | ImGuiDockNodeFlags_NoTabBar | ImGuiDockNodeFlags_HiddenTabBar | ImGuiDockNodeFlags_NoWindowMenuButton | ImGuiDockNodeFlags_NoCloseButton | ImGuiDockNodeFlags_NoDocking", + "evaluatedValue" : "130048" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 88079, + "name" : "ImGuiDataAuthority_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 88013, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 88013, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 88013, + "text" : " Store the source authority (dock node vs window) of a field" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 88105, + "name" : "ImGuiDataAuthority_Auto", + "qualType" : "ImGuiDataAuthority_", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 88134, + "name" : "ImGuiDataAuthority_DockNode", + "qualType" : "ImGuiDataAuthority_", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 88167, + "name" : "ImGuiDataAuthority_Window", + "qualType" : "ImGuiDataAuthority_", + "order" : 2 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 88202, + "name" : "ImGuiDockNodeState", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 88227, + "name" : "ImGuiDockNodeState_Unknown", + "qualType" : "ImGuiDockNodeState", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 88259, + "name" : "ImGuiDockNodeState_HostWindowHiddenBecauseSingleWindow", + "qualType" : "ImGuiDockNodeState", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 88319, + "name" : "ImGuiDockNodeState_HostWindowHiddenBecauseWindowsAreResizing", + "qualType" : "ImGuiDockNodeState", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 88385, + "name" : "ImGuiDockNodeState_HostWindowVisible", + "qualType" : "ImGuiDockNodeState", + "order" : 3 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 94247, + "name" : "ImGuiWindowDockStyleCol", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 93826, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 93826, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 93826, + "text" : " List of colors that are stored at the time of Begin() into Docked Windows." + }, { + "@type" : "AstTextComment", + "offset" : 93904, + "text" : " We currently store the packed colors in a simple array window->DockStyle.Colors[]." + }, { + "@type" : "AstTextComment", + "offset" : 93990, + "text" : " A better solution may involve appending into a log of colors in ImGuiContext + store offsets into those arrays in ImGuiWindow," + }, { + "@type" : "AstTextComment", + "offset" : 94120, + "text" : " but it would be more complex as we'd need to double-buffer both as e.g. drop target may refer to window from last frame." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 94277, + "name" : "ImGuiWindowDockStyleCol_Text", + "qualType" : "ImGuiWindowDockStyleCol", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 94311, + "name" : "ImGuiWindowDockStyleCol_Tab", + "qualType" : "ImGuiWindowDockStyleCol", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 94344, + "name" : "ImGuiWindowDockStyleCol_TabHovered", + "qualType" : "ImGuiWindowDockStyleCol", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 94384, + "name" : "ImGuiWindowDockStyleCol_TabActive", + "qualType" : "ImGuiWindowDockStyleCol", + "order" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 94423, + "name" : "ImGuiWindowDockStyleCol_TabUnfocused", + "qualType" : "ImGuiWindowDockStyleCol", + "order" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 94465, + "name" : "ImGuiWindowDockStyleCol_TabUnfocusedActive", + "qualType" : "ImGuiWindowDockStyleCol", + "order" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 94513, + "name" : "ImGuiWindowDockStyleCol_COUNT", + "qualType" : "ImGuiWindowDockStyleCol", + "order" : 6 + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 94554, + "name" : "ImGuiWindowDockStyle", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 94587, + "name" : "Colors", + "qualType" : "int[6]", + "desugaredQualType" : "int[6]" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 94637, + "name" : "ImGuiDockContext", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 94692, + "name" : "Nodes", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 94786, + "name" : "Requests", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 94832, + "name" : "NodesSettings", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 94883, + "name" : "WantFullRebuild", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 95355, + "name" : "ImGuiViewportP", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 95202, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 95202, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 95202, + "text" : " ImGuiViewport Private/Internals fields (cardinal sin: we are using inheritance!)" + }, { + "@type" : "AstTextComment", + "offset" : 95286, + "text" : " Every instance of ImGuiViewport is in fact a ImGuiViewportP." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 95419, + "name" : "Idx", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 95448, + "name" : "LastFrameActive", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 95557, + "name" : "LastFrontMostStampCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 95772, + "name" : "LastNameHash", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 95810, + "name" : "LastPos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 95843, + "name" : "Alpha", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 95977, + "name" : "LastAlpha", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 96012, + "name" : "PlatformMonitor", + "qualType" : "short", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "offset" : 96053, + "name" : "PlatformWindowCreated", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 96100, + "name" : "Window", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "offset" : 96250, + "name" : "DrawListsLastFrame", + "qualType" : "int[2]", + "desugaredQualType" : "int[2]" + }, { + "@type" : "AstFieldDecl", + "offset" : 96378, + "name" : "DrawLists", + "qualType" : "int *[2]", + "desugaredQualType" : "int *[2]" + }, { + "@type" : "AstFieldDecl", + "offset" : 96594, + "name" : "DrawDataP", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 96629, + "name" : "DrawDataBuilder", + "qualType" : "ImDrawDataBuilder", + "desugaredQualType" : "ImDrawDataBuilder" + }, { + "@type" : "AstFieldDecl", + "offset" : 96670, + "name" : "LastPlatformPos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 96711, + "name" : "LastPlatformSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 96753, + "name" : "LastRendererSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 96795, + "name" : "WorkOffsetMin", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 97051, + "name" : "WorkOffsetMax", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 97214, + "name" : "BuildWorkOffsetMin", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 97336, + "name" : "BuildWorkOffsetMax", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 97957, + "name" : "ClearRequestFlags", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 98240, + "name" : "CalcWorkRectPos", + "resultType" : "int", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 98072, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 98072, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 98072, + "text" : " Calculate work rect pos/size given a set of offset (we have 1 pair of offset for rect locked from last frame data, and 1 pair for currently building rect)" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 98270, + "name" : "off_min", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 98381, + "name" : "CalcWorkRectSize", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 98412, + "name" : "off_min", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 98435, + "name" : "off_max", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 98574, + "name" : "UpdateWorkRect", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 98877, + "name" : "GetMainRect", + "resultType" : "ImRect", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 98738, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 98738, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 98738, + "text" : " Helpers to retrieve ImRect (we don't need to store BuildWorkRect as every access tend to change it, hence the code asymmetry)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 98982, + "name" : "GetWorkRect", + "resultType" : "ImRect" + }, { + "@type" : "AstFunctionDecl", + "offset" : 99111, + "name" : "GetBuildWorkRect", + "resultType" : "ImRect" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 99795, + "name" : "ImGuiWindowSettings", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 99523, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 99523, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 99523, + "text" : " Windows data saved in imgui.ini file" + }, { + "@type" : "AstTextComment", + "offset" : 99563, + "text" : " Because we never destroy or rename ImGuiWindowSettings, we can store the names in a separate buffer easily." + }, { + "@type" : "AstTextComment", + "offset" : 99674, + "text" : " (this is designed to be stored in a ImChunkStream buffer, with the variable-length Name following our structure)" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 99833, + "name" : "ID", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 99853, + "name" : "Pos", + "qualType" : "ImVec2ih", + "desugaredQualType" : "ImVec2ih" + }, { + "@type" : "AstFieldDecl", + "offset" : 99992, + "name" : "Size", + "qualType" : "ImVec2ih", + "desugaredQualType" : "ImVec2ih" + }, { + "@type" : "AstFieldDecl", + "offset" : 100014, + "name" : "ViewportPos", + "qualType" : "ImVec2ih", + "desugaredQualType" : "ImVec2ih" + }, { + "@type" : "AstFieldDecl", + "offset" : 100043, + "name" : "ViewportId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 100071, + "name" : "DockId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 100219, + "name" : "ClassId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 100286, + "name" : "DockOrder", + "qualType" : "short", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "offset" : 100545, + "name" : "Collapsed", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 100572, + "name" : "WantApply", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 100787, + "name" : "GetName", + "resultType" : "char *" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 100850, + "name" : "ImGuiSettingsHandler", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 100889, + "name" : "TypeName", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "offset" : 100994, + "name" : "TypeHash", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 101054, + "name" : "ClearAllFn", + "qualType" : "void (*)(ImGuiContext *, ImGuiSettingsHandler *)", + "desugaredQualType" : "void (*)(ImGuiContext *, ImGuiSettingsHandler *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 101193, + "name" : "ReadInitFn", + "qualType" : "void (*)(ImGuiContext *, ImGuiSettingsHandler *)", + "desugaredQualType" : "void (*)(ImGuiContext *, ImGuiSettingsHandler *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 101360, + "name" : "ReadOpenFn", + "qualType" : "void *(*)(ImGuiContext *, ImGuiSettingsHandler *, const char *)", + "desugaredQualType" : "void *(*)(ImGuiContext *, ImGuiSettingsHandler *, const char *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 101545, + "name" : "ReadLineFn", + "qualType" : "void (*)(ImGuiContext *, ImGuiSettingsHandler *, void *, const char *)", + "desugaredQualType" : "void (*)(ImGuiContext *, ImGuiSettingsHandler *, void *, const char *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 101716, + "name" : "ApplyAllFn", + "qualType" : "void (*)(ImGuiContext *, ImGuiSettingsHandler *)", + "desugaredQualType" : "void (*)(ImGuiContext *, ImGuiSettingsHandler *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 101882, + "name" : "WriteAllFn", + "qualType" : "void (*)(ImGuiContext *, ImGuiSettingsHandler *, int *)", + "desugaredQualType" : "void (*)(ImGuiContext *, ImGuiSettingsHandler *, int *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 102038, + "name" : "UserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 102318, + "name" : "ImGuiMetricsConfig", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 102118, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 102118, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 102118, + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "offset" : 102198, + "text" : " [SECTION] Metrics, Debug Tools" + }, { + "@type" : "AstTextComment", + "offset" : 102232, + "text" : "-----------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 102355, + "name" : "ShowStackTool", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 102386, + "name" : "ShowWindowsRects", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 102420, + "name" : "ShowWindowsBeginOrder", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 102459, + "name" : "ShowTablesRects", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 102492, + "name" : "ShowDrawCmdMesh", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 102525, + "name" : "ShowDrawCmdBoundingBoxes", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 102567, + "name" : "ShowDockingNodes", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 102601, + "name" : "ShowWindowsRectsType", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 102639, + "name" : "ShowTablesRectsType", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 103022, + "name" : "ImGuiStackLevelInfo", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 103072, + "name" : "ID", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 103104, + "name" : "QueryFrameCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 103187, + "name" : "QuerySuccess", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 103285, + "name" : "Desc", + "qualType" : "char[58]", + "desugaredQualType" : "char[58]" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 103520, + "name" : "ImGuiStackTool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 103483, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 103483, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 103483, + "text" : " State for Stack tool queries" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 103565, + "name" : "LastActiveFrame", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 103610, + "name" : "StackLevel", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 103734, + "name" : "QueryId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 103823, + "name" : "Results", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 104187, + "name" : "ImGuiContextHookType", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 104210, + "name" : "ImGuiContextHookType_NewFramePre", + "qualType" : "ImGuiContextHookType", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 104244, + "name" : "ImGuiContextHookType_NewFramePost", + "qualType" : "ImGuiContextHookType", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 104279, + "name" : "ImGuiContextHookType_EndFramePre", + "qualType" : "ImGuiContextHookType", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 104313, + "name" : "ImGuiContextHookType_EndFramePost", + "qualType" : "ImGuiContextHookType", + "order" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 104348, + "name" : "ImGuiContextHookType_RenderPre", + "qualType" : "ImGuiContextHookType", + "order" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 104380, + "name" : "ImGuiContextHookType_RenderPost", + "qualType" : "ImGuiContextHookType", + "order" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 104413, + "name" : "ImGuiContextHookType_Shutdown", + "qualType" : "ImGuiContextHookType", + "order" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 104444, + "name" : "ImGuiContextHookType_PendingRemoval_", + "qualType" : "ImGuiContextHookType", + "order" : 7 + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 104492, + "name" : "ImGuiContextHook", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 104543, + "name" : "HookId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 104631, + "name" : "Type", + "qualType" : "ImGuiContextHookType", + "desugaredQualType" : "ImGuiContextHookType" + }, { + "@type" : "AstFieldDecl", + "offset" : 104669, + "name" : "Owner", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 104708, + "name" : "Callback", + "qualType" : "ImGuiContextHookCallback", + "desugaredQualType" : "void (*)(ImGuiContext *, ImGuiContextHook *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 104750, + "name" : "UserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 105048, + "name" : "ImGuiContext", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 104835, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 104835, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 104835, + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "offset" : 104915, + "text" : " [SECTION] ImGuiContext (main imgui context)" + }, { + "@type" : "AstTextComment", + "offset" : 104962, + "text" : "-----------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 105091, + "name" : "Initialized", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 105132, + "name" : "FontAtlasOwnedByContext", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 105277, + "name" : "IO", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 105309, + "name" : "PlatformIO", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 105349, + "name" : "Style", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 105384, + "name" : "ConfigFlagsCurrFrame", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 105496, + "name" : "ConfigFlagsLastFrame", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 105546, + "name" : "Font", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstFieldDecl", + "offset" : 105674, + "name" : "FontSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 105858, + "name" : "FontBaseSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 106008, + "name" : "DrawListSharedData", + "qualType" : "ImDrawListSharedData", + "desugaredQualType" : "ImDrawListSharedData" + }, { + "@type" : "AstFieldDecl", + "offset" : 106056, + "name" : "Time", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstFieldDecl", + "offset" : 106090, + "name" : "FrameCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 106130, + "name" : "FrameCountEnded", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 106175, + "name" : "FrameCountPlatformEnded", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 106228, + "name" : "FrameCountRendered", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 106276, + "name" : "WithinFrameScope", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 106384, + "name" : "WithinFrameScopeWithImplicitWindow", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 106539, + "name" : "WithinEndChild", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 106628, + "name" : "GcCompactAll", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 106711, + "name" : "TestEngineHookItems", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 106896, + "name" : "TestEngine", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 107007, + "name" : "Windows", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 107122, + "name" : "WindowsFocusOrder", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 107241, + "name" : "WindowsTempSortBuffer", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 107409, + "name" : "CurrentWindowStack", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 107457, + "name" : "WindowsById", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 107561, + "name" : "WindowsActiveCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 107672, + "name" : "WindowsHoverPadding", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 107881, + "name" : "CurrentWindow", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "offset" : 107972, + "name" : "HoveredWindow", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "offset" : 108104, + "name" : "HoveredWindowUnderMovingWindow", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "offset" : 108242, + "name" : "HoveredDockNode", + "qualType" : "ImGuiDockNode *", + "desugaredQualType" : "ImGuiDockNode *" + }, { + "@type" : "AstFieldDecl", + "offset" : 108336, + "name" : "MovingWindow", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "offset" : 108543, + "name" : "WheelingWindow", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "offset" : 108821, + "name" : "WheelingWindowRefMousePos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 108876, + "name" : "WheelingWindowTimer", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 108977, + "name" : "DebugHookIdInfo", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 109186, + "name" : "HoveredId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 109293, + "name" : "HoveredIdPreviousFrame", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 109345, + "name" : "HoveredIdAllowOverlap", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 109396, + "name" : "HoveredIdUsingMouseWheel", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 109540, + "name" : "HoveredIdPreviousFrameUsingMouseWheel", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 109607, + "name" : "HoveredIdDisabled", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 109810, + "name" : "HoveredIdTimer", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 109910, + "name" : "HoveredIdNotActiveTimer", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 110045, + "name" : "ActiveId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 110126, + "name" : "ActiveIdIsAlive", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 110298, + "name" : "ActiveIdTimer", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 110341, + "name" : "ActiveIdIsJustActivated", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 110452, + "name" : "ActiveIdAllowOverlap", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 110626, + "name" : "ActiveIdNoClearOnFocusLoss", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 110758, + "name" : "ActiveIdHasBeenPressedBefore", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 110989, + "name" : "ActiveIdHasBeenEditedBefore", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 111139, + "name" : "ActiveIdHasBeenEditedThisFrame", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 111199, + "name" : "ActiveIdUsingMouseWheel", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 111351, + "name" : "ActiveIdUsingNavDirMask", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 111525, + "name" : "ActiveIdUsingNavInputMask", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 111642, + "name" : "ActiveIdUsingKeyInputMask", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 111907, + "name" : "ActiveIdClickOffset", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 112066, + "name" : "ActiveIdWindow", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "offset" : 112110, + "name" : "ActiveIdSource", + "qualType" : "ImGuiInputSource", + "desugaredQualType" : "ImGuiInputSource" + }, { + "@type" : "AstFieldDecl", + "offset" : 112225, + "name" : "ActiveIdMouseButton", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 112274, + "name" : "ActiveIdPreviousFrame", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 112325, + "name" : "ActiveIdPreviousFrameIsAlive", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 112383, + "name" : "ActiveIdPreviousFrameHasBeenEditedBefore", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 112453, + "name" : "ActiveIdPreviousFrameWindow", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "offset" : 112510, + "name" : "LastActiveId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 112633, + "name" : "LastActiveIdTimer", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 112826, + "name" : "CurrentItemFlags", + "qualType" : "ImGuiItemFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 112923, + "name" : "NextItemData", + "qualType" : "ImGuiNextItemData", + "desugaredQualType" : "ImGuiNextItemData" + }, { + "@type" : "AstFieldDecl", + "offset" : 113026, + "name" : "LastItemData", + "qualType" : "ImGuiLastItemData", + "desugaredQualType" : "ImGuiLastItemData" + }, { + "@type" : "AstFieldDecl", + "offset" : 113144, + "name" : "NextWindowData", + "qualType" : "ImGuiNextWindowData", + "desugaredQualType" : "ImGuiNextWindowData" + }, { + "@type" : "AstFieldDecl", + "offset" : 113271, + "name" : "ColorStack", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 113404, + "name" : "StyleVarStack", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 113533, + "name" : "FontStack", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 113654, + "name" : "FocusScopeStack", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 113812, + "name" : "ItemFlagsStack", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 113941, + "name" : "GroupStack", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 114069, + "name" : "OpenPopupStack", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 114171, + "name" : "BeginPopupStack", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 114296, + "name" : "BeginMenuCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 114360, + "name" : "Viewports", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 114553, + "name" : "CurrentDpiScale", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 114649, + "name" : "CurrentViewport", + "qualType" : "ImGuiViewportP *", + "desugaredQualType" : "ImGuiViewportP *" + }, { + "@type" : "AstFieldDecl", + "offset" : 114810, + "name" : "MouseViewport", + "qualType" : "ImGuiViewportP *", + "desugaredQualType" : "ImGuiViewportP *" + }, { + "@type" : "AstFieldDecl", + "offset" : 114853, + "name" : "MouseLastHoveredViewport", + "qualType" : "ImGuiViewportP *", + "desugaredQualType" : "ImGuiViewportP *" + }, { + "@type" : "AstFieldDecl", + "offset" : 115049, + "name" : "PlatformLastFocusedViewportId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 115108, + "name" : "FallbackMonitor", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 115256, + "name" : "ViewportFrontMostStampCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 115452, + "name" : "NavWindow", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "offset" : 115580, + "name" : "NavId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 115675, + "name" : "NavFocusScopeId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 115866, + "name" : "NavActivateId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 116049, + "name" : "NavActivateDownId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 116170, + "name" : "NavActivatePressedId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 116294, + "name" : "NavActivateInputId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 116488, + "name" : "NavActivateFlags", + "qualType" : "ImGuiActivateFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 116534, + "name" : "NavJustMovedToId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 116667, + "name" : "NavJustMovedToFocusScopeId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 116812, + "name" : "NavJustMovedToKeyMods", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 116863, + "name" : "NavNextActivateId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 116978, + "name" : "NavNextActivateFlags", + "qualType" : "ImGuiActivateFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 117028, + "name" : "NavInputSource", + "qualType" : "ImGuiInputSource", + "desugaredQualType" : "ImGuiInputSource" + }, { + "@type" : "AstFieldDecl", + "offset" : 117174, + "name" : "NavLayer", + "qualType" : "ImGuiNavLayer", + "desugaredQualType" : "ImGuiNavLayer" + }, { + "@type" : "AstFieldDecl", + "offset" : 117369, + "name" : "NavIdIsAlive", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 117495, + "name" : "NavMousePosDirty", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 117702, + "name" : "NavDisableHighlight", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 117940, + "name" : "NavDisableMouseHover", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 118152, + "name" : "NavAnyRequest", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 118297, + "name" : "NavInitRequest", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 118419, + "name" : "NavInitRequestFromMove", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 118471, + "name" : "NavInitResultId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 118636, + "name" : "NavInitResultRectRel", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "offset" : 118761, + "name" : "NavMoveSubmitted", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 118891, + "name" : "NavMoveScoringItems", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 119011, + "name" : "NavMoveForwardToNextFrame", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 119066, + "name" : "NavMoveFlags", + "qualType" : "ImGuiNavMoveFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 119108, + "name" : "NavMoveScrollFlags", + "qualType" : "ImGuiScrollFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 119156, + "name" : "NavMoveKeyMods", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 119200, + "name" : "NavMoveDir", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 119318, + "name" : "NavMoveDirForDebug", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 119366, + "name" : "NavMoveClipDir", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 119503, + "name" : "NavScoringRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "offset" : 119691, + "name" : "NavScoringNoClipRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "offset" : 119873, + "name" : "NavScoringDebugCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 119962, + "name" : "NavTabbingDir", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 120081, + "name" : "NavTabbingCounter", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 120183, + "name" : "NavMoveResultLocal", + "qualType" : "ImGuiNavItemData", + "desugaredQualType" : "ImGuiNavItemData" + }, { + "@type" : "AstFieldDecl", + "offset" : 120295, + "name" : "NavMoveResultLocalVisible", + "qualType" : "ImGuiNavItemData", + "desugaredQualType" : "ImGuiNavItemData" + }, { + "@type" : "AstFieldDecl", + "offset" : 120487, + "name" : "NavMoveResultOther", + "qualType" : "ImGuiNavItemData", + "desugaredQualType" : "ImGuiNavItemData" + }, { + "@type" : "AstFieldDecl", + "offset" : 120669, + "name" : "NavTabbingResultFirst", + "qualType" : "ImGuiNavItemData", + "desugaredQualType" : "ImGuiNavItemData" + }, { + "@type" : "AstFieldDecl", + "offset" : 120917, + "name" : "NavWindowingTarget", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "offset" : 121097, + "name" : "NavWindowingTargetAnim", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "offset" : 121298, + "name" : "NavWindowingListWindow", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "offset" : 121420, + "name" : "NavWindowingTimer", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 121467, + "name" : "NavWindowingHighlightAlpha", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 121523, + "name" : "NavWindowingToggleLayer", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 121591, + "name" : "DimBgRatio", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 121750, + "name" : "MouseCursor", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 121813, + "name" : "DragDropActive", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 121857, + "name" : "DragDropWithinSource", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 121999, + "name" : "DragDropWithinTarget", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 122141, + "name" : "DragDropSourceFlags", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 122190, + "name" : "DragDropSourceFrameCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 122244, + "name" : "DragDropMouseButton", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 122293, + "name" : "DragDropPayload", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 122338, + "name" : "DragDropTargetRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "offset" : 122491, + "name" : "DragDropTargetId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 122537, + "name" : "DragDropAcceptFlags", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 122586, + "name" : "DragDropAcceptIdCurrRectSurface", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 122742, + "name" : "DragDropAcceptIdCurr", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 122867, + "name" : "DragDropAcceptIdPrev", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 123040, + "name" : "DragDropAcceptFrameCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 123166, + "name" : "DragDropHoldJustPressedId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 123303, + "name" : "DragDropPayloadBufHeap", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 123448, + "name" : "DragDropPayloadBufLocal", + "qualType" : "unsigned char[16]", + "desugaredQualType" : "unsigned char[16]" + }, { + "@type" : "AstFieldDecl", + "offset" : 123571, + "name" : "ClipperTempDataStacked", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 123631, + "name" : "ClipperTempData", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 123698, + "name" : "CurrentTable", + "qualType" : "ImGuiTable *", + "desugaredQualType" : "ImGuiTable *" + }, { + "@type" : "AstFieldDecl", + "offset" : 123748, + "name" : "TablesTempDataStacked", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 123936, + "name" : "TablesTempData", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 124050, + "name" : "ImPool", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 124171, + "name" : "TablesLastTimeActive", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 124297, + "name" : "DrawChannelsTempMergeBuffer", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 124379, + "name" : "CurrentTabBar", + "qualType" : "ImGuiTabBar *", + "desugaredQualType" : "ImGuiTabBar *" + }, { + "@type" : "AstFieldDecl", + "offset" : 124430, + "name" : "TabBars", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 124475, + "name" : "CurrentTabBarStack", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 124531, + "name" : "ShrinkWidthBuffer", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 124599, + "name" : "MouseLastValidPos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 124646, + "name" : "InputTextState", + "qualType" : "ImGuiInputTextState", + "desugaredQualType" : "ImGuiInputTextState" + }, { + "@type" : "AstFieldDecl", + "offset" : 124690, + "name" : "InputTextPasswordFont", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 124741, + "name" : "TempInputId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 124866, + "name" : "ColorEditOptions", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 124975, + "name" : "ColorEditLastHue", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 125138, + "name" : "ColorEditLastSat", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 125315, + "name" : "ColorEditLastColor", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 125413, + "name" : "ColorPickerRef", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 125545, + "name" : "ComboPreviewData", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 125591, + "name" : "SliderCurrentAccum", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 125715, + "name" : "SliderCurrentAccumDirty", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 125861, + "name" : "DragCurrentAccumDirty", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 125912, + "name" : "DragCurrentAccum", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 126084, + "name" : "DragSpeedDefaultRatio", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 126208, + "name" : "ScrollbarClickDeltaToGrabCenter", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 126363, + "name" : "DisabledAlphaBackup", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 126473, + "name" : "DisabledStackSize", + "qualType" : "short", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "offset" : 126520, + "name" : "TooltipOverrideCount", + "qualType" : "short", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "offset" : 126570, + "name" : "TooltipSlowDelay", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 126744, + "name" : "ClipboardHandlerData", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 126853, + "name" : "MenusIdSubmittedThisFrame", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 126997, + "name" : "PlatformImePos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 127132, + "name" : "PlatformImeLastPos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 127180, + "name" : "PlatformImePosViewport", + "qualType" : "ImGuiViewportP *", + "desugaredQualType" : "ImGuiViewportP *" + }, { + "@type" : "AstFieldDecl", + "offset" : 127232, + "name" : "PlatformLocaleDecimalPoint", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "offset" : 127447, + "name" : "DockContext", + "qualType" : "ImGuiDockContext", + "desugaredQualType" : "ImGuiDockContext" + }, { + "@type" : "AstFieldDecl", + "offset" : 127505, + "name" : "SettingsLoaded", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 127549, + "name" : "SettingsDirtyTimer", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 127668, + "name" : "SettingsIniData", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 127771, + "name" : "SettingsHandlers", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 127833, + "name" : "ImChunkStream", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 127970, + "name" : "SettingsTables", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 128070, + "name" : "Hooks", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 128177, + "name" : "HookIdNext", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 128278, + "name" : "LogEnabled", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 128365, + "name" : "LogType", + "qualType" : "ImGuiLogType", + "desugaredQualType" : "ImGuiLogType" + }, { + "@type" : "AstFieldDecl", + "offset" : 128447, + "name" : "LogFile", + "qualType" : "ImFileHandle", + "desugaredQualType" : "FILE *" + }, { + "@type" : "AstFieldDecl", + "offset" : 128545, + "name" : "LogBuffer", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 128734, + "name" : "LogNextPrefix", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "offset" : 128777, + "name" : "LogNextSuffix", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "offset" : 128820, + "name" : "LogLinePosY", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 128861, + "name" : "LogLineFirstItem", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 128907, + "name" : "LogDepthRef", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 128948, + "name" : "LogDepthToExpand", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 128994, + "name" : "LogDepthToExpandDefault", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 129170, + "name" : "DebugItemPickerActive", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 129297, + "name" : "DebugItemPickerBreakId", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 129417, + "name" : "DebugMetricsConfig", + "qualType" : "ImGuiMetricsConfig", + "desugaredQualType" : "ImGuiMetricsConfig" + }, { + "@type" : "AstFieldDecl", + "offset" : 129465, + "name" : "DebugStackTool", + "qualType" : "ImGuiStackTool", + "desugaredQualType" : "ImGuiStackTool" + }, { + "@type" : "AstFieldDecl", + "offset" : 129522, + "name" : "FramerateSecPerFrame", + "qualType" : "float[120]", + "desugaredQualType" : "float[120]" + }, { + "@type" : "AstFieldDecl", + "offset" : 129655, + "name" : "FramerateSecPerFrameIdx", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 129708, + "name" : "FramerateSecPerFrameCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 129763, + "name" : "FramerateSecPerFrameAccum", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 129818, + "name" : "WantCaptureMouseNextFrame", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 129970, + "name" : "WantCaptureKeyboardNextFrame", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 130028, + "name" : "WantTextInputNextFrame", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 130080, + "name" : "TempBuffer", + "qualType" : "char[3073]", + "desugaredQualType" : "char[3073]" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 156761, + "name" : "ImGuiTabBarFlagsPrivate_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 156730, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 156730, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 156730, + "text" : " Extend ImGuiTabBarFlags_" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 156792, + "name" : "ImGuiTabBarFlags_DockNode", + "docComment" : "Part of a dock node [we don't use this in the master branch but it facilitate branch syncing to keep this around]", + "qualType" : "ImGuiTabBarFlagsPrivate_", + "order" : 0, + "value" : "1 << 20", + "evaluatedValue" : "1048576" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 156969, + "name" : "ImGuiTabBarFlags_IsFocused", + "qualType" : "ImGuiTabBarFlagsPrivate_", + "order" : 1, + "value" : "1 << 21", + "evaluatedValue" : "2097152" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 157028, + "name" : "ImGuiTabBarFlags_SaveSettings", + "docComment" : "FIXME: Settings are handled by the docking system, this only request the tab bar to mark settings dirty when reordering tabs", + "qualType" : "ImGuiTabBarFlagsPrivate_", + "order" : 2, + "value" : "1 << 22", + "evaluatedValue" : "4194304" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 157250, + "name" : "ImGuiTabItemFlagsPrivate_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 157218, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 157218, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 157218, + "text" : " Extend ImGuiTabItemFlags_" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 157282, + "name" : "ImGuiTabItemFlags_SectionMask_", + "qualType" : "ImGuiTabItemFlagsPrivate_", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 157388, + "name" : "ImGuiTabItemFlags_NoCloseButton", + "docComment" : "Track whether p_open was set or not (we'll need this info on the next frame to recompute ContentWidth during layout)", + "qualType" : "ImGuiTabItemFlagsPrivate_", + "order" : 1, + "value" : "1 << 20", + "evaluatedValue" : "1048576" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 157568, + "name" : "ImGuiTabItemFlags_Button", + "docComment" : "Used by TabItemButton, change the tab item behavior to mimic a button", + "qualType" : "ImGuiTabItemFlagsPrivate_", + "order" : 2, + "value" : "1 << 21", + "evaluatedValue" : "2097152" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 157701, + "name" : "ImGuiTabItemFlags_Unsorted", + "docComment" : "[Docking] Trailing tabs with the _Unsorted flag will be sorted based on the DockOrder of their Window.", + "qualType" : "ImGuiTabItemFlagsPrivate_", + "order" : 3, + "value" : "1 << 22", + "evaluatedValue" : "4194304" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 157867, + "name" : "ImGuiTabItemFlags_Preview", + "docComment" : "[Docking] Display tab shape for docking preview (height is adjusted slightly to compensate for the yet missing tab bar)", + "qualType" : "ImGuiTabItemFlagsPrivate_", + "order" : 4, + "value" : "1 << 23", + "evaluatedValue" : "8388608" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 158112, + "name" : "ImGuiTabItem", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 158052, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 158052, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 158052, + "text" : " Storage for one active tab item (sizeof() 48 bytes)" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 158151, + "name" : "ID", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 158179, + "name" : "Flags", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 158210, + "name" : "Window", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "offset" : 158330, + "name" : "LastFrameVisible", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 158372, + "name" : "LastFrameSelected", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 158514, + "name" : "Offset", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 158603, + "name" : "Width", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 158680, + "name" : "ContentWidth", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 158781, + "name" : "NameOffset", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 158903, + "name" : "BeginOrder", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 159042, + "name" : "IndexDuringLayout", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 159131, + "name" : "WantClose", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 162982, + "name" : "ImGuiTableColumn", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 162616, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 162616, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 162616, + "text" : " [Internal] sizeof() ~ 104" + }, { + "@type" : "AstTextComment", + "offset" : 162645, + "text" : " We use the terminology \"Enabled\" to refer to a column that is not Hidden by user/api." + }, { + "@type" : "AstTextComment", + "offset" : 162734, + "text" : " We use the terminology \"Clipped\" to refer to a column that is out of sight because of scrolling/clipping." + }, { + "@type" : "AstTextComment", + "offset" : 162843, + "text" : " This is in contrast with some user-facing api such as IsItemVisible() / IsRectVisible() which use \"Visible\" to mean \"not clipped\"." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 163029, + "name" : "Flags", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 163186, + "name" : "WidthGiven", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 163441, + "name" : "MinX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 163523, + "name" : "MaxX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 163557, + "name" : "WidthRequest", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 163762, + "name" : "WidthAuto", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 163841, + "name" : "StretchWeight", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 163984, + "name" : "InitStretchWeightOrWidth", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 164136, + "name" : "ClipRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "offset" : 164233, + "name" : "UserID", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 164341, + "name" : "WorkMinX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 164509, + "name" : "WorkMaxX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 164631, + "name" : "ItemWidth", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 164751, + "name" : "ContentMaxXFrozen", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 164917, + "name" : "ContentMaxXUnfrozen", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 164966, + "name" : "ContentMaxXHeadersUsed", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 165211, + "name" : "ContentMaxXHeadersIdeal", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 165264, + "name" : "NameOffset", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 165361, + "name" : "DisplayOrder", + "qualType" : "ImGuiTableColumnIdx", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 165502, + "name" : "IndexWithinEnabledSet", + "qualType" : "ImGuiTableColumnIdx", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 165623, + "name" : "PrevEnabledColumn", + "qualType" : "ImGuiTableColumnIdx", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 165776, + "name" : "NextEnabledColumn", + "qualType" : "ImGuiTableColumnIdx", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 165928, + "name" : "SortOrder", + "qualType" : "ImGuiTableColumnIdx", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 166109, + "name" : "DrawChannelCurrent", + "qualType" : "ImGuiTableDrawChannelIdx", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 166209, + "name" : "DrawChannelFrozen", + "qualType" : "ImGuiTableDrawChannelIdx", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 166318, + "name" : "DrawChannelUnfrozen", + "qualType" : "ImGuiTableDrawChannelIdx", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 166412, + "name" : "IsEnabled", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 166538, + "name" : "IsUserEnabled", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 166704, + "name" : "IsUserEnabledNextFrame", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 166756, + "name" : "IsVisibleX", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 166908, + "name" : "IsVisibleY", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 166948, + "name" : "IsRequestOutput", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 167122, + "name" : "IsSkipItems", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 167278, + "name" : "IsPreserveWidthAuto", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 167327, + "name" : "NavLayerCurrent", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 167414, + "name" : "AutoFitQueue", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 167537, + "name" : "CannotSkipItemsQueue", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 167668, + "name" : "SortDirection", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 167793, + "name" : "SortDirectionsAvailCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 167901, + "name" : "SortDirectionsAvailMask", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 168011, + "name" : "SortDirectionsAvailList", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 168567, + "name" : "ImGuiTableCellData", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 168507, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 168507, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 168507, + "text" : " Transient cell data stored per row." + }, { + "@type" : "AstTextComment", + "offset" : 168546, + "text" : " sizeof() ~ 6" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 168620, + "name" : "BgColor", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 168680, + "name" : "Column", + "qualType" : "ImGuiTableColumnIdx", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 182004, + "name" : "ImGuiTableColumnSettings", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 181982, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 181982, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 181982, + "text" : " sizeof() ~ 12" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 182059, + "name" : "WidthOrWeight", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 182102, + "name" : "UserID", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 182138, + "name" : "Index", + "qualType" : "ImGuiTableColumnIdx", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 182173, + "name" : "DisplayOrder", + "qualType" : "ImGuiTableColumnIdx", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 182215, + "name" : "SortOrder", + "qualType" : "ImGuiTableColumnIdx", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 182254, + "name" : "SortDirection", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 182301, + "name" : "IsEnabled", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 182369, + "name" : "IsStretch", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 182758, + "name" : "ImGuiTableSettings", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 182638, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 182638, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 182638, + "text" : " This is designed to be stored in a single ImChunkStream (1 header followed by N ImGuiTableColumnSettings, etc.)" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 182811, + "name" : "ID", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 182912, + "name" : "SaveFlags", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 183090, + "name" : "RefScale", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 183216, + "name" : "ColumnsCount", + "qualType" : "ImGuiTableColumnIdx", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 183262, + "name" : "ColumnsCountMax", + "qualType" : "ImGuiTableColumnIdx", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 183460, + "name" : "WantApply", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 183689, + "name" : "GetColumnSettings", + "resultType" : "ImGuiTableColumnSettings *" + } ] + }, { + "@type" : "AstNamespaceDecl", + "offset" : 184017, + "name" : "ImGui", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 183769, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 183769, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 183769, + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "offset" : 183849, + "text" : " [SECTION] ImGui internal API" + }, { + "@type" : "AstTextComment", + "offset" : 183881, + "text" : " No guarantee of forward compatibility here!" + }, { + "@type" : "AstTextComment", + "offset" : 183928, + "text" : "-----------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 184454, + "name" : "GetCurrentWindowRead", + "resultType" : "ImGuiWindow *", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 184031, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 184031, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 184031, + "text" : " Windows" + }, { + "@type" : "AstTextComment", + "offset" : 184046, + "text" : " We should always have a CurrentWindow in the stack (there is an implicit \"Debug\" window)" + }, { + "@type" : "AstTextComment", + "offset" : 184142, + "text" : " If this ever crash because g.CurrentWindow is NULL it means that either" + }, { + "@type" : "AstTextComment", + "offset" : 184221, + "text" : " - ImGui::NewFrame() has never been called, which is illegal." + }, { + "@type" : "AstTextComment", + "offset" : 184289, + "text" : " - You are calling ImGui functions after ImGui::EndFrame()/ImGui::Render() and before the next ImGui::NewFrame(), which is also illegal." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 184565, + "name" : "GetCurrentWindow", + "resultType" : "ImGuiWindow *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 187055, + "name" : "SetCurrentFont", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 187011, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 187011, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 187011, + "text" : " Fonts, drawing" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 187078, + "name" : "font", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 187113, + "name" : "GetDefaultFont", + "resultType" : "int *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 187455, + "name" : "Shutdown", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 187478, + "name" : "context", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 187661, + "name" : "UpdateHoveredWindowAndCaptureFlags", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 187623, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 187623, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 187623, + "text" : " NewFrame" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 187927, + "name" : "UpdateMouseMovingWindowNewFrame", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 187990, + "name" : "UpdateMouseMovingWindowEndFrame", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 188180, + "name" : "RemoveContextHook", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 188212, + "name" : "context", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 188229, + "name" : "hook_to_remove", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 188274, + "name" : "CallContextHooks", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 188305, + "name" : "context", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 188335, + "name" : "type", + "qualType" : "ImGuiContextHookType", + "desugaredQualType" : "ImGuiContextHookType" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 188388, + "name" : "TranslateWindowsInViewport", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 188349, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 188349, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 188349, + "text" : " Viewports" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 188431, + "name" : "viewport", + "qualType" : "ImGuiViewportP *", + "desugaredQualType" : "ImGuiViewportP *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 188455, + "name" : "old_pos", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 188478, + "name" : "new_pos", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 188516, + "name" : "ScaleWindowsInViewport", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 188555, + "name" : "viewport", + "qualType" : "ImGuiViewportP *", + "desugaredQualType" : "ImGuiViewportP *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 188571, + "name" : "scale", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 188607, + "name" : "DestroyPlatformWindow", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 188645, + "name" : "viewport", + "qualType" : "ImGuiViewportP *", + "desugaredQualType" : "ImGuiViewportP *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 188899, + "name" : "MarkIniSettingsDirty", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 188853, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 188853, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 188853, + "text" : " Settings" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 189038, + "name" : "ClearIniSettings", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 189413, + "name" : "SetNextWindowScroll", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 189374, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 189374, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 189374, + "text" : " Scrolling" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 189447, + "name" : "scroll", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 189959, + "name" : "ScrollToItem", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 189867, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 189867, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 189867, + "text" : " Early work-in-progress API (ScrollToItem() will become public)" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 189989, + "name" : "flags", + "qualType" : "ImGuiScrollFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 191147, + "name" : "SetFocusID", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 191166, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 191183, + "name" : "window", + "qualType" : "struct ImGuiWindow *", + "desugaredQualType" : "struct ImGuiWindow *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 191220, + "name" : "ClearActiveID", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 191309, + "name" : "SetHoveredID", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 191330, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 191363, + "name" : "KeepAliveID", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 191383, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 191416, + "name" : "MarkItemEdited", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 191439, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 191574, + "name" : "PushOverrideID", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 191597, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 191877, + "name" : "ItemSize", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 191818, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 191818, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 191818, + "text" : " Basic Helpers for widget code" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 191900, + "name" : "size", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 191912, + "name" : "text_baseline_y", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 191966, + "name" : "ItemSize", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 191989, + "name" : "bb", + "qualType" : "const ImRect &", + "desugaredQualType" : "const ImRect &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 191999, + "name" : "text_baseline_y", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 192053, + "name" : "ItemAdd", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 192075, + "name" : "bb", + "qualType" : "const ImRect &", + "desugaredQualType" : "const ImRect &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 192087, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 192105, + "name" : "nav_bb", + "qualType" : "const ImRect *", + "desugaredQualType" : "const ImRect *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 192135, + "name" : "extra_flags", + "qualType" : "ImGuiItemFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 192181, + "name" : "ItemHoverable", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 192209, + "name" : "bb", + "qualType" : "const ImRect &", + "desugaredQualType" : "const ImRect &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 192221, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 192254, + "name" : "IsClippedEx", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 192280, + "name" : "bb", + "qualType" : "const ImRect &", + "desugaredQualType" : "const ImRect &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 192292, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 192325, + "name" : "SetLastItemData", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 192349, + "name" : "item_id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 192373, + "name" : "in_flags", + "qualType" : "ImGuiItemFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 192404, + "name" : "status_flags", + "qualType" : "ImGuiItemStatusFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 192432, + "name" : "item_rect", + "qualType" : "const ImRect &", + "desugaredQualType" : "const ImRect &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 192561, + "name" : "CalcWrapWidthForPos", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 192595, + "name" : "pos", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 192606, + "name" : "wrap_pos_x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 192647, + "name" : "PushMultiItemsWidths", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 192672, + "name" : "components", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 192690, + "name" : "width_full", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 192731, + "name" : "IsItemToggledSelection", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 193020, + "name" : "ShrinkWidths", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 193055, + "name" : "items", + "qualType" : "ImGuiShrinkWidthItem *", + "desugaredQualType" : "ImGuiShrinkWidthItem *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 193066, + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 193079, + "name" : "width_excess", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 193147, + "name" : "PushItemFlag", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 193101, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 193101, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 193101, + "text" : " Parameter stacks" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 193175, + "name" : "option", + "qualType" : "ImGuiItemFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 193188, + "name" : "enabled", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 193226, + "name" : "PopItemFlag", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 194771, + "name" : "LogToBuffer", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 194787, + "name" : "auto_open_depth", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 194905, + "name" : "LogRenderedText", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 194935, + "name" : "ref_pos", + "qualType" : "const int *", + "desugaredQualType" : "const int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 194956, + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 194974, + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 195020, + "name" : "LogSetNextTextDecoration", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 195057, + "name" : "prefix", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 195077, + "name" : "suffix", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 195147, + "name" : "BeginChildEx", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 195093, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 195093, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 195093, + "text" : " Popups, Modals, Tooltips" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 195172, + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 195186, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 195204, + "name" : "size_arg", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 195219, + "name" : "border", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "offset" : 195244, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 195280, + "name" : "OpenPopupEx", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 195300, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 195320, + "name" : "popup_flags", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "=" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 195385, + "name" : "ClosePopupToLevel", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 195407, + "name" : "remaining", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 195423, + "name" : "restore_focus_to_window_under_popup", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 195607, + "name" : "ClosePopupsExceptModals", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 195662, + "name" : "IsPopupOpen", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 195682, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 195702, + "name" : "popup_flags", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 195744, + "name" : "BeginPopupEx", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 195765, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 195786, + "name" : "extra_flags", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 195828, + "name" : "BeginTooltipEx", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 195861, + "name" : "tooltip_flags", + "qualType" : "ImGuiTooltipFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 195893, + "name" : "extra_window_flags", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 196421, + "name" : "BeginViewportSideBar", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 196386, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 196386, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 196386, + "text" : " Menus" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 196454, + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 196475, + "name" : "viewport", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 196494, + "name" : "dir", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 196505, + "name" : "size", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 196528, + "name" : "window_flags", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 196571, + "name" : "BeginMenuEx", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 196595, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 196614, + "name" : "icon", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 196625, + "name" : "enabled", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 196670, + "name" : "MenuItemEx", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 196693, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 196712, + "name" : "icon", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 196730, + "name" : "shortcut", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 196752, + "name" : "selected", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + }, { + "@type" : "AstParmVarDecl", + "offset" : 196775, + "name" : "enabled", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 196835, + "name" : "BeginComboPopup", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 196799, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 196799, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 196799, + "text" : " Combos" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 196859, + "name" : "popup_id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 196883, + "name" : "bb", + "qualType" : "const struct ImRect &", + "desugaredQualType" : "const struct ImRect &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 196903, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 196939, + "name" : "BeginComboPreview", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 196988, + "name" : "EndComboPreview", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 197154, + "name" : "NavInitRequestApplyResult", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 197211, + "name" : "NavMoveRequestButNoResultYet", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 197271, + "name" : "NavMoveRequestSubmit", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 197301, + "name" : "move_dir", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 197320, + "name" : "clip_dir", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 197348, + "name" : "move_flags", + "qualType" : "ImGuiNavMoveFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 197377, + "name" : "scroll_flags", + "qualType" : "ImGuiScrollFlags", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 197420, + "name" : "NavMoveRequestForward", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 197451, + "name" : "move_dir", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 197470, + "name" : "clip_dir", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 197498, + "name" : "move_flags", + "qualType" : "ImGuiNavMoveFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 197527, + "name" : "scroll_flags", + "qualType" : "ImGuiScrollFlags", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 197570, + "name" : "NavMoveRequestResolveWithLastItem", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 197622, + "name" : "result", + "qualType" : "ImGuiNavItemData *", + "desugaredQualType" : "ImGuiNavItemData *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 197659, + "name" : "NavMoveRequestCancel", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 197711, + "name" : "NavMoveRequestApplyResult", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 197874, + "name" : "GetNavInputAmount", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 197906, + "name" : "n", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 197928, + "name" : "mode", + "qualType" : "ImGuiInputReadMode", + "desugaredQualType" : "ImGuiInputReadMode" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 198125, + "name" : "CalcTypematicRepeatAmount", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 198157, + "name" : "t0", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 198167, + "name" : "t1", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 198177, + "name" : "repeat_delay", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 198197, + "name" : "repeat_rate", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 198239, + "name" : "ActivateItem", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 198260, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 198461, + "name" : "SetNavID", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 198478, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 198496, + "name" : "nav_layer", + "qualType" : "ImGuiNavLayer", + "desugaredQualType" : "ImGuiNavLayer" + }, { + "@type" : "AstParmVarDecl", + "offset" : 198515, + "name" : "focus_scope_id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 198545, + "name" : "rect_rel", + "qualType" : "const struct ImRect &", + "desugaredQualType" : "const struct ImRect &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 198827, + "name" : "PushFocusScope", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 198563, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 198563, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 198563, + "text" : " Focus Scope (WIP)" + }, { + "@type" : "AstTextComment", + "offset" : 198588, + "text" : " This is generally used to identify a selection set (multiple of which may be in the same window), as selection" + }, { + "@type" : "AstTextComment", + "offset" : 198706, + "text" : " patterns generally need to react (e.g. clear selection) when landing on an item of the set." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 198850, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 198883, + "name" : "PopFocusScope", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 198928, + "name" : "GetFocusedFocusScope", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 199112, + "name" : "GetFocusScope", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 199432, + "name" : "SetItemUsingMouseWheel", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 199298, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 199298, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 199298, + "text" : " Inputs" + }, { + "@type" : "AstTextComment", + "offset" : 199312, + "text" : " FIXME: Eventually we should aim to move e.g. IsActiveIdUsingKey() into IsKeyXXX functions." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 199486, + "name" : "SetActiveIdUsingNavAndKeys", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 199544, + "name" : "IsActiveIdUsingNavDir", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 199575, + "name" : "dir", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 199717, + "name" : "IsActiveIdUsingNavInput", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 199755, + "name" : "input", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 199894, + "name" : "IsActiveIdUsingKey", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 199922, + "name" : "key", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 200097, + "name" : "IsMouseDragPastThreshold", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 200139, + "name" : "button", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 200153, + "name" : "lock_threshold", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 200206, + "name" : "IsKeyPressedMap", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 200231, + "name" : "key", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 200241, + "name" : "repeat", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 200432, + "name" : "IsNavInputDown", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 200461, + "name" : "n", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 200584, + "name" : "IsNavInputTest", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 200613, + "name" : "n", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 200635, + "name" : "rm", + "qualType" : "ImGuiInputReadMode", + "desugaredQualType" : "ImGuiInputReadMode" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 200865, + "name" : "DockContextInitialize", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 200752, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 200752, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 200752, + "text" : " Docking" + }, { + "@type" : "AstTextComment", + "offset" : 200767, + "text" : " (some functions are only declared in imgui.cpp, see Docking section)" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 200901, + "name" : "ctx", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 200935, + "name" : "DockContextShutdown", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 200969, + "name" : "ctx", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 201003, + "name" : "DockContextClearNodes", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 201039, + "name" : "ctx", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 201052, + "name" : "root_id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 201066, + "name" : "clear_settings_refs", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 201147, + "name" : "DockContextRebuildNodes", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 201185, + "name" : "ctx", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 201219, + "name" : "DockContextNewFrameUpdateUndocking", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 201268, + "name" : "ctx", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 201302, + "name" : "DockContextNewFrameUpdateDocking", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 201349, + "name" : "ctx", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 201383, + "name" : "DockContextEndFrame", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 201417, + "name" : "ctx", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 201520, + "name" : "DockContextQueueDock", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 201555, + "name" : "ctx", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 201573, + "name" : "target", + "qualType" : "struct ImGuiWindow *", + "desugaredQualType" : "struct ImGuiWindow *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 201596, + "name" : "target_node", + "qualType" : "ImGuiDockNode *", + "desugaredQualType" : "ImGuiDockNode *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 201622, + "name" : "payload", + "qualType" : "struct ImGuiWindow *", + "desugaredQualType" : "struct ImGuiWindow *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 201640, + "name" : "split_dir", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 201657, + "name" : "split_ratio", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 201675, + "name" : "split_outer", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 201717, + "name" : "DockContextQueueUndockWindow", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 201760, + "name" : "ctx", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 201778, + "name" : "window", + "qualType" : "struct ImGuiWindow *", + "desugaredQualType" : "struct ImGuiWindow *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 201815, + "name" : "DockContextQueueUndockNode", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 201856, + "name" : "ctx", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 201876, + "name" : "node", + "qualType" : "ImGuiDockNode *", + "desugaredQualType" : "ImGuiDockNode *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 202099, + "name" : "DockNodeBeginAmendTabBar", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 202139, + "name" : "node", + "qualType" : "ImGuiDockNode *", + "desugaredQualType" : "ImGuiDockNode *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 202174, + "name" : "DockNodeEndAmendTabBar", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 202228, + "name" : "DockNodeGetRootNode", + "resultType" : "ImGuiDockNode *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 202263, + "name" : "node", + "qualType" : "ImGuiDockNode *", + "desugaredQualType" : "ImGuiDockNode *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 202380, + "name" : "DockNodeIsInHierarchyOf", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 202419, + "name" : "node", + "qualType" : "ImGuiDockNode *", + "desugaredQualType" : "ImGuiDockNode *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 202440, + "name" : "parent", + "qualType" : "ImGuiDockNode *", + "desugaredQualType" : "ImGuiDockNode *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 202569, + "name" : "DockNodeGetDepth", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 202607, + "name" : "node", + "qualType" : "const ImGuiDockNode *", + "desugaredQualType" : "const ImGuiDockNode *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 202750, + "name" : "DockNodeGetWindowMenuButtonId", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 202801, + "name" : "node", + "qualType" : "const ImGuiDockNode *", + "desugaredQualType" : "const ImGuiDockNode *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 202883, + "name" : "GetWindowDockNode", + "resultType" : "ImGuiDockNode *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 204447, + "name" : "DockBuilderDockWindow", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 203420, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 203420, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 203420, + "text" : " Docking - Builder function needs to be generally called before the node is used/submitted." + }, { + "@type" : "AstTextComment", + "offset" : 203518, + "text" : " - The DockBuilderXXX functions are designed to _eventually_ become a public API, but it is too early to expose it and guarantee stability." + }, { + "@type" : "AstTextComment", + "offset" : 203664, + "text" : " - Do not hold on ImGuiDockNode* pointers! They may be invalidated by any split/merge/remove operation and every frame." + }, { + "@type" : "AstTextComment", + "offset" : 203790, + "text" : " - To create a DockSpace() node, make sure to set the ImGuiDockNodeFlags_DockSpace flag when calling DockBuilderAddNode()." + }, { + "@type" : "AstTextComment", + "offset" : 203919, + "text" : " You can create dockspace nodes (attached to a window) _or_ floating nodes (carry its own window) with this API." + }, { + "@type" : "AstTextComment", + "offset" : 204040, + "text" : " - DockBuilderSplitNode() create 2 child nodes within 1 node. The initial node becomes a parent node." + }, { + "@type" : "AstTextComment", + "offset" : 204148, + "text" : " - If you intend to split the node immediately after creation using DockBuilderSplitNode(), make sure" + }, { + "@type" : "AstTextComment", + "offset" : 204256, + "text" : " to call DockBuilderSetNodeSize() beforehand. If you don't, the resulting split sizes may not be reliable." + }, { + "@type" : "AstTextComment", + "offset" : 204371, + "text" : " - Call DockBuilderFinish() after you are done." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 204481, + "name" : "window_name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 204502, + "name" : "node_id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 204605, + "name" : "DockBuilderGetCentralNode", + "resultType" : "struct ImGuiDockNode *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 204639, + "name" : "node_id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 204914, + "name" : "DockBuilderRemoveNode", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 204944, + "name" : "node_id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 205051, + "name" : "DockBuilderRemoveNodeDockedWindows", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 205094, + "name" : "node_id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 205108, + "name" : "clear_settings_refs", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 205165, + "name" : "DockBuilderRemoveNodeChildNodes", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 205205, + "name" : "node_id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 205365, + "name" : "DockBuilderSetNodePos", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 205395, + "name" : "node_id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 205411, + "name" : "pos", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 205445, + "name" : "DockBuilderSetNodeSize", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 205476, + "name" : "node_id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 205492, + "name" : "size", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 205750, + "name" : "DockBuilderCopyDockSpace", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 205783, + "name" : "src_dockspace_id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 205809, + "name" : "dst_dockspace_id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 205850, + "name" : "in_window_remap_pairs", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 205902, + "name" : "DockBuilderCopyNode", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 205930, + "name" : "src_node_id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 205951, + "name" : "dst_node_id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 205983, + "name" : "out_node_remap_pairs", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 206034, + "name" : "DockBuilderCopyWindowSettings", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 206076, + "name" : "src_name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 206098, + "name" : "dst_name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 206137, + "name" : "DockBuilderFinish", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 206163, + "name" : "node_id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 206223, + "name" : "BeginDragDropTargetCustom", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 206180, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 206180, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 206180, + "text" : " Drag and Drop" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 206263, + "name" : "bb", + "qualType" : "const struct ImRect &", + "desugaredQualType" : "const struct ImRect &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 206275, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 206308, + "name" : "ClearDragDrop", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 206353, + "name" : "IsDragDropPayloadBeingAccepted", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 206633, + "name" : "BeginColumns", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 206658, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 206670, + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 206697, + "name" : "flags", + "qualType" : "ImGuiOldColumnFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 206845, + "name" : "EndColumns", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 206966, + "name" : "PushColumnClipRect", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 206989, + "name" : "column_index", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 207032, + "name" : "PushColumnsBackground", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 207085, + "name" : "PopColumnsBackground", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 207295, + "name" : "GetColumnOffsetFromNorm", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 207342, + "name" : "columns", + "qualType" : "const struct ImGuiOldColumns *", + "desugaredQualType" : "const struct ImGuiOldColumns *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 207357, + "name" : "offset_norm", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 207399, + "name" : "GetColumnNormFromOffset", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 207446, + "name" : "columns", + "qualType" : "const struct ImGuiOldColumns *", + "desugaredQualType" : "const struct ImGuiOldColumns *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 207461, + "name" : "offset", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 207540, + "name" : "TableOpenContextMenu", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 207477, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 207477, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 207477, + "text" : " Tables: Candidates for public API" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 207565, + "name" : "column_n", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 207609, + "name" : "TableSetColumnWidth", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 207633, + "name" : "column_n", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 207649, + "name" : "width", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 207685, + "name" : "TableSetColumnSortDirection", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 207717, + "name" : "column_n", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 207746, + "name" : "sort_direction", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 207767, + "name" : "append_to_sort_specs", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 207818, + "name" : "TableGetHoveredColumn", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 208094, + "name" : "TableGetHeaderRowHeight", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 208149, + "name" : "TablePushBackgroundChannel", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 208207, + "name" : "TablePopBackgroundChannel", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 208290, + "name" : "GetCurrentTable", + "resultType" : "ImGuiTable *", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 208243, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 208243, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 208243, + "text" : " Tables: Internals" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 208445, + "name" : "BeginTableEx", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 208470, + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 208484, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 208492, + "name" : "columns_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 208523, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "offset" : 208548, + "name" : "outer_size", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 208581, + "name" : "inner_width", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 210059, + "name" : "TableGetColumnName", + "resultType" : "const IMGUI_API *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 210096, + "name" : "table", + "qualType" : "const struct ImGuiTable *", + "desugaredQualType" : "const struct ImGuiTable *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 210107, + "name" : "column_n", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 210258, + "name" : "TableGetMaxColumnWidth", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 210299, + "name" : "table", + "qualType" : "const struct ImGuiTable *", + "desugaredQualType" : "const struct ImGuiTable *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 210310, + "name" : "column_n", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 210655, + "name" : "TableGcCompactTransientBuffers", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 210706, + "name" : "table", + "qualType" : "ImGuiTableTempData *", + "desugaredQualType" : "ImGuiTableTempData *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 210742, + "name" : "TableGcCompactSettings", + "resultType" : "IMGUI_API" + }, { + "@type" : "AstFunctionDecl", + "offset" : 211130, + "name" : "TableSettingsInstallHandler", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 211172, + "name" : "context", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 211386, + "name" : "BeginTabBarEx", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 211348, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 211348, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 211348, + "text" : " Tab Bars" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 211413, + "name" : "tab_bar", + "qualType" : "ImGuiTabBar *", + "desugaredQualType" : "ImGuiTabBar *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 211436, + "name" : "bb", + "qualType" : "const struct ImRect &", + "desugaredQualType" : "const struct ImRect &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 211457, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 211479, + "name" : "dock_node", + "qualType" : "struct ImGuiDockNode *", + "desugaredQualType" : "struct ImGuiDockNode *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 211704, + "name" : "TabBarAddTab", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 211730, + "name" : "tab_bar", + "qualType" : "ImGuiTabBar *", + "desugaredQualType" : "ImGuiTabBar *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 211757, + "name" : "tab_flags", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 211781, + "name" : "window", + "qualType" : "struct ImGuiWindow *", + "desugaredQualType" : "struct ImGuiWindow *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 211818, + "name" : "TabBarRemoveTab", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 211847, + "name" : "tab_bar", + "qualType" : "ImGuiTabBar *", + "desugaredQualType" : "ImGuiTabBar *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 211864, + "name" : "tab_id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 211901, + "name" : "TabBarCloseTab", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 211929, + "name" : "tab_bar", + "qualType" : "ImGuiTabBar *", + "desugaredQualType" : "ImGuiTabBar *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 211952, + "name" : "tab", + "qualType" : "struct ImGuiTabItem *", + "desugaredQualType" : "struct ImGuiTabItem *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 211986, + "name" : "TabBarQueueReorder", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 212018, + "name" : "tab_bar", + "qualType" : "ImGuiTabBar *", + "desugaredQualType" : "ImGuiTabBar *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 212047, + "name" : "tab", + "qualType" : "const struct ImGuiTabItem *", + "desugaredQualType" : "const struct ImGuiTabItem *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 212056, + "name" : "offset", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 212093, + "name" : "TabBarQueueReorderFromMousePos", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 212137, + "name" : "tab_bar", + "qualType" : "ImGuiTabBar *", + "desugaredQualType" : "ImGuiTabBar *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 212166, + "name" : "tab", + "qualType" : "const struct ImGuiTabItem *", + "desugaredQualType" : "const struct ImGuiTabItem *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 212178, + "name" : "mouse_pos", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 212218, + "name" : "TabBarProcessReorder", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 212252, + "name" : "tab_bar", + "qualType" : "ImGuiTabBar *", + "desugaredQualType" : "ImGuiTabBar *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 212290, + "name" : "TabItemEx", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 212313, + "name" : "tab_bar", + "qualType" : "ImGuiTabBar *", + "desugaredQualType" : "ImGuiTabBar *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 212334, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 212347, + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 212373, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 212393, + "name" : "docked_window", + "qualType" : "struct ImGuiWindow *", + "desugaredQualType" : "struct ImGuiWindow *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 212524, + "name" : "TabItemBackground", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 212554, + "name" : "draw_list", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 212579, + "name" : "bb", + "qualType" : "const struct ImRect &", + "desugaredQualType" : "const struct ImRect &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 212601, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 212614, + "name" : "col", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 212648, + "name" : "TabItemLabelAndCloseButton", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 212687, + "name" : "draw_list", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 212712, + "name" : "bb", + "qualType" : "const struct ImRect &", + "desugaredQualType" : "const struct ImRect &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 212734, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 212748, + "name" : "frame_padding", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 212775, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 212790, + "name" : "tab_id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 212806, + "name" : "close_button_id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 212828, + "name" : "is_contents_visible", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "offset" : 212855, + "name" : "out_just_closed", + "qualType" : "bool *", + "desugaredQualType" : "bool *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 212878, + "name" : "out_text_clipped", + "qualType" : "bool *", + "desugaredQualType" : "bool *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 213247, + "name" : "RenderText", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 212904, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 212904, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 212904, + "text" : " Render helpers" + }, { + "@type" : "AstTextComment", + "offset" : 212926, + "text" : " AVOID USING OUTSIDE OF IMGUI.CPP! NOT FOR PUBLIC CONSUMPTION. THOSE FUNCTIONS ARE A MESS. THEIR SIGNATURE AND BEHAVIOR WILL CHANGE, THEY NEED TO BE REFACTORED INTO SOMETHING DECENT." + }, { + "@type" : "AstTextComment", + "offset" : 213115, + "text" : " NB: All position are in absolute pixels coordinates (we are never using window coordinates internally)" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 213265, + "name" : "pos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 213282, + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 213300, + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 213322, + "name" : "hide_text_after_hash", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 213380, + "name" : "RenderTextWrapped", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 213405, + "name" : "pos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 213422, + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 213440, + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 213456, + "name" : "wrap_width", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 213497, + "name" : "RenderTextClipped", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 213529, + "name" : "pos_min", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 213552, + "name" : "pos_max", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 213573, + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 213591, + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 213615, + "name" : "text_size_if_known", + "qualType" : "const int *", + "desugaredQualType" : "const int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 213649, + "name" : "align", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 213685, + "name" : "clip_rect", + "qualType" : "const struct ImRect *", + "desugaredQualType" : "const struct ImRect *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 213732, + "name" : "RenderTextClippedEx", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 213764, + "name" : "draw_list", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 213789, + "name" : "pos_min", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 213812, + "name" : "pos_max", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 213833, + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 213851, + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 213875, + "name" : "text_size_if_known", + "qualType" : "const int *", + "desugaredQualType" : "const int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 213909, + "name" : "align", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 213945, + "name" : "clip_rect", + "qualType" : "const struct ImRect *", + "desugaredQualType" : "const struct ImRect *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 213992, + "name" : "RenderTextEllipsis", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 214023, + "name" : "draw_list", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214048, + "name" : "pos_min", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214071, + "name" : "pos_max", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214086, + "name" : "clip_max_x", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214104, + "name" : "ellipsis_max_x", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214132, + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214150, + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214174, + "name" : "text_size_if_known", + "qualType" : "const int *", + "desugaredQualType" : "const int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 214223, + "name" : "RenderFrame", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 214242, + "name" : "p_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214256, + "name" : "p_max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214269, + "name" : "fill_col", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214284, + "name" : "border", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214305, + "name" : "rounding", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 214351, + "name" : "RenderFrameBorder", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 214376, + "name" : "p_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214390, + "name" : "p_max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214403, + "name" : "rounding", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 214449, + "name" : "RenderColorRectWithAlphaCheckerboard", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 214498, + "name" : "draw_list", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214516, + "name" : "p_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214530, + "name" : "p_max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214543, + "name" : "fill_col", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214559, + "name" : "grid_step", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214577, + "name" : "grid_off", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214593, + "name" : "rounding", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214622, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 214662, + "name" : "RenderNavHighlight", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 214695, + "name" : "bb", + "qualType" : "const struct ImRect &", + "desugaredQualType" : "const struct ImRect &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214707, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214734, + "name" : "flags", + "qualType" : "ImGuiNavHighlightFlags", + "desugaredQualType" : "int", + "defaultValue" : "ImGuiNavHighlightFlags_TypeDefault" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 214831, + "name" : "FindRenderedTextEnd", + "resultType" : "const IMGUI_API *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 214863, + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 214881, + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 215058, + "name" : "RenderArrow", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 214966, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 214966, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 214966, + "text" : " Render helpers (those functions don't access any ImGui state!)" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 215082, + "name" : "draw_list", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215100, + "name" : "pos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215111, + "name" : "col", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215125, + "name" : "dir", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215136, + "name" : "scale", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 215179, + "name" : "RenderBullet", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 215204, + "name" : "draw_list", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215222, + "name" : "pos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215233, + "name" : "col", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 215267, + "name" : "RenderCheckMark", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 215295, + "name" : "draw_list", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215313, + "name" : "pos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215324, + "name" : "col", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215335, + "name" : "sz", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 215368, + "name" : "RenderMouseCursor", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 215398, + "name" : "draw_list", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215416, + "name" : "pos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215427, + "name" : "scale", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215451, + "name" : "mouse_cursor", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215471, + "name" : "col_fill", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215487, + "name" : "col_border", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215505, + "name" : "col_shadow", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 215546, + "name" : "RenderArrowPointingAt", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 215580, + "name" : "draw_list", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215598, + "name" : "pos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215610, + "name" : "half_sz", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215628, + "name" : "direction", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215645, + "name" : "col", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 215679, + "name" : "RenderArrowDockMenu", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 215711, + "name" : "draw_list", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215729, + "name" : "p_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215742, + "name" : "sz", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215752, + "name" : "col", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 215786, + "name" : "RenderRectFilledRangeH", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 215821, + "name" : "draw_list", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215846, + "name" : "rect", + "qualType" : "const struct ImRect &", + "desugaredQualType" : "const struct ImRect &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215858, + "name" : "col", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215869, + "name" : "x_start_norm", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215889, + "name" : "x_end_norm", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 215907, + "name" : "rounding", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 215946, + "name" : "RenderRectFilledWithHole", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 215983, + "name" : "draw_list", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 216001, + "name" : "outer", + "qualType" : "struct ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstParmVarDecl", + "offset" : 216015, + "name" : "inner", + "qualType" : "struct ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstParmVarDecl", + "offset" : 216028, + "name" : "col", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 216039, + "name" : "rounding", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 216356, + "name" : "RenderArrow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 216218, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 216218, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 216218, + "text" : " [1.71: 2019/06/07: Updating prototypes of some of the internal functions. Leaving those for reference for a short while]" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 216375, + "name" : "pos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 216389, + "name" : "dir", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 216400, + "name" : "scale", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 216550, + "name" : "RenderBullet", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 216570, + "name" : "pos", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 216768, + "name" : "TextEx", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 216731, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 216731, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 216731, + "text" : " Widgets" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 216787, + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 216805, + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 216837, + "name" : "flags", + "qualType" : "ImGuiTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 216877, + "name" : "ButtonEx", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 216898, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 216919, + "name" : "size_arg", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 216961, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 217001, + "name" : "CloseButton", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 217021, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217039, + "name" : "pos", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 217073, + "name" : "CollapseButton", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 217096, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217114, + "name" : "pos", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217134, + "name" : "dock_node", + "qualType" : "struct ImGuiDockNode *", + "desugaredQualType" : "struct ImGuiDockNode *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 217174, + "name" : "ArrowButtonEx", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 217200, + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217217, + "name" : "dir", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217229, + "name" : "size_arg", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217256, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 217296, + "name" : "Scrollbar", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 217316, + "name" : "axis", + "qualType" : "ImGuiAxis", + "desugaredQualType" : "ImGuiAxis" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 217351, + "name" : "ScrollbarEx", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 217377, + "name" : "bb", + "qualType" : "const struct ImRect &", + "desugaredQualType" : "const struct ImRect &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217389, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217403, + "name" : "axis", + "qualType" : "ImGuiAxis", + "desugaredQualType" : "ImGuiAxis" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217416, + "name" : "p_scroll_v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217434, + "name" : "avail_v", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217449, + "name" : "contents_v", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217473, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 217509, + "name" : "ImageButtonEx", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 217531, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217547, + "name" : "texture_id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217573, + "name" : "size", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217593, + "name" : "uv0", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217612, + "name" : "uv1", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217631, + "name" : "padding", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217654, + "name" : "bg_col", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 217676, + "name" : "tint_col", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 218077, + "name" : "SeparatorEx", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 218109, + "name" : "flags", + "qualType" : "ImGuiSeparatorFlags", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 218145, + "name" : "CheckboxFlags", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 218171, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218185, + "name" : "flags", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218198, + "name" : "flags_value", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 218240, + "name" : "CheckboxFlags", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 218266, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218280, + "name" : "flags", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218293, + "name" : "flags_value", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 218371, + "name" : "ButtonBehavior", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 218314, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 218314, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 218314, + "text" : " Widgets low-level behaviors" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 218400, + "name" : "bb", + "qualType" : "const struct ImRect &", + "desugaredQualType" : "const struct ImRect &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218412, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218422, + "name" : "out_hovered", + "qualType" : "bool *", + "desugaredQualType" : "bool *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218441, + "name" : "out_held", + "qualType" : "bool *", + "desugaredQualType" : "bool *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218468, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 218508, + "name" : "DragBehavior", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 218529, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218547, + "name" : "data_type", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218564, + "name" : "p_v", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218575, + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218596, + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218615, + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218634, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218659, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 218695, + "name" : "SliderBehavior", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 218724, + "name" : "bb", + "qualType" : "const struct ImRect &", + "desugaredQualType" : "const struct ImRect &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218736, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218754, + "name" : "data_type", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218771, + "name" : "p_v", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218788, + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218807, + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218826, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218851, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218866, + "name" : "out_grab_bb", + "qualType" : "struct ImRect *", + "desugaredQualType" : "struct ImRect *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 218908, + "name" : "SplitterBehavior", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 218939, + "name" : "bb", + "qualType" : "const struct ImRect &", + "desugaredQualType" : "const struct ImRect &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218951, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218965, + "name" : "axis", + "qualType" : "ImGuiAxis", + "desugaredQualType" : "ImGuiAxis" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218978, + "name" : "size1", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 218992, + "name" : "size2", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 219005, + "name" : "min_size1", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 219022, + "name" : "min_size2", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 219039, + "name" : "hover_extend", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 219066, + "name" : "hover_visibility_delay", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 219103, + "name" : "bg_col", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 219144, + "name" : "TreeNodeBehavior", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 219169, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 219192, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 219211, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 219230, + "name" : "label_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 219277, + "name" : "TreeNodeBehaviorIsOpen", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 219308, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 219331, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 219472, + "name" : "TreePushOverrideID", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 219499, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 220234, + "name" : "ScaleValueFromRatioT", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 220269, + "name" : "data_type", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 220286, + "name" : "t", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 220291, + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 220300, + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 220312, + "name" : "is_logarithmic", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "offset" : 220334, + "name" : "logarithmic_zero_epsilon", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 220366, + "name" : "zero_deadzone_size", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 220911, + "name" : "RoundScalarWithFormatT", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 220946, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 220968, + "name" : "data_type", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 220981, + "name" : "v", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 221261, + "name" : "DataTypeFormatString", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 221288, + "name" : "buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 221297, + "name" : "buf_size", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 221321, + "name" : "data_type", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 221344, + "name" : "p_data", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 221364, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 221401, + "name" : "DataTypeApplyOp", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 221431, + "name" : "data_type", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 221446, + "name" : "op", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 221456, + "name" : "output", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 221476, + "name" : "arg_1", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 221495, + "name" : "arg_2", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 221531, + "name" : "DataTypeApplyOpFromText", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 221567, + "name" : "buf", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 221584, + "name" : "initial_value_buf", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 221617, + "name" : "data_type", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 221634, + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 221654, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 221691, + "name" : "DataTypeCompare", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 221721, + "name" : "data_type", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 221744, + "name" : "arg_1", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 221763, + "name" : "arg_2", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 221799, + "name" : "DataTypeClamp", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 221827, + "name" : "data_type", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 221844, + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 221864, + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 221883, + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 221937, + "name" : "InputTextEx", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 221898, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 221898, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 221898, + "text" : " InputText" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 221961, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 221980, + "name" : "hint", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 221992, + "name" : "buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 222001, + "name" : "buf_size", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 222025, + "name" : "size_arg", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 222055, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 222085, + "name" : "callback", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 222108, + "name" : "user_data", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 222155, + "name" : "TempInputText", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 222183, + "name" : "bb", + "qualType" : "const struct ImRect &", + "desugaredQualType" : "const struct ImRect &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 222195, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 222211, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 222224, + "name" : "buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 222233, + "name" : "buf_size", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 222263, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 222299, + "name" : "TempInputScalar", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 222329, + "name" : "bb", + "qualType" : "const struct ImRect &", + "desugaredQualType" : "const struct ImRect &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 222341, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 222357, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 222378, + "name" : "data_type", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 222395, + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 222415, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 222435, + "name" : "p_clamp_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 222467, + "name" : "p_clamp_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 222516, + "name" : "TempInputIsActive", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 222542, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 222665, + "name" : "GetInputTextState", + "resultType" : "ImGuiInputTextState *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 222691, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 222867, + "name" : "ColorTooltip", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 222832, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 222832, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 222832, + "text" : " Color" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 222892, + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 222911, + "name" : "col", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 222936, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 222972, + "name" : "ColorEditOptionsPopup", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 223007, + "name" : "col", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223032, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 223068, + "name" : "ColorPickerOptionsPopup", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 223105, + "name" : "ref_col", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223134, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 223183, + "name" : "PlotEx", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 223149, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 223149, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 223149, + "text" : " Plot" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 223204, + "name" : "plot_type", + "qualType" : "ImGuiPlotType", + "desugaredQualType" : "ImGuiPlotType" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223227, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223242, + "name" : "values_getter", + "qualType" : "float (*)(void *, int)", + "desugaredQualType" : "float (*)(void *, int)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223285, + "name" : "data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223295, + "name" : "values_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223313, + "name" : "values_offset", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223340, + "name" : "overlay_text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223360, + "name" : "scale_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223377, + "name" : "scale_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223395, + "name" : "frame_size", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 223498, + "name" : "ShadeVertsLinearColorGradientKeepAlpha", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 223415, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 223415, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 223415, + "text" : " Shade functions (write over already created vertices)" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 223549, + "name" : "draw_list", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223564, + "name" : "vert_start_idx", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223584, + "name" : "vert_end_idx", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223605, + "name" : "gradient_p0", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223625, + "name" : "gradient_p1", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223644, + "name" : "col0", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223656, + "name" : "col1", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 223691, + "name" : "ShadeVertsLinearUV", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 223722, + "name" : "draw_list", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223737, + "name" : "vert_start_idx", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223757, + "name" : "vert_end_idx", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223785, + "name" : "a", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223802, + "name" : "b", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223819, + "name" : "uv_a", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223839, + "name" : "uv_b", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 223850, + "name" : "clamp", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 223913, + "name" : "GcCompactTransientMiscBuffers", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 223865, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 223865, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 223865, + "text" : " Garbage collection" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 224156, + "name" : "ErrorCheckEndFrameRecover", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 224115, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 224115, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 224115, + "text" : " Debug Tools" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 224204, + "name" : "log_callback", + "qualType" : "ImGuiErrorLogCallback", + "desugaredQualType" : "void (*)(void *, const char *, ...)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 224224, + "name" : "user_data", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 224271, + "name" : "ErrorCheckEndWindowRecover", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 224320, + "name" : "log_callback", + "qualType" : "ImGuiErrorLogCallback", + "desugaredQualType" : "void (*)(void *, const char *, ...)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 224340, + "name" : "user_data", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 224387, + "name" : "DebugDrawItemRect", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 224411, + "name" : "col", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "IM_COL32(255,0,0,255)" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 224636, + "name" : "DebugStartItemPicker", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 224784, + "name" : "ShowFontAtlas", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 224811, + "name" : "atlas", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 224847, + "name" : "DebugHookIdInfo", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 224871, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 224889, + "name" : "data_type", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 224912, + "name" : "data_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 224933, + "name" : "data_id_end", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 225276, + "name" : "DebugNodeDrawCmdShowMeshAndBoundingBox", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 225327, + "name" : "out_draw_list", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 225360, + "name" : "draw_list", + "qualType" : "const int *", + "desugaredQualType" : "const int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 225388, + "name" : "draw_cmd", + "qualType" : "const int *", + "desugaredQualType" : "const int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 225403, + "name" : "show_mesh", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "offset" : 225419, + "name" : "show_aabb", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 225459, + "name" : "DebugNodeFont", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 225481, + "name" : "font", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 225516, + "name" : "DebugNodeStorage", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 225547, + "name" : "storage", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 225568, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 225604, + "name" : "DebugNodeTabBar", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 225633, + "name" : "tab_bar", + "qualType" : "ImGuiTabBar *", + "desugaredQualType" : "ImGuiTabBar *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 225654, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 226004, + "name" : "DebugNodeWindowsList", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 226049, + "name" : "windows", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 226070, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 226251, + "name" : "DebugNodeViewport", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 226285, + "name" : "viewport", + "qualType" : "ImGuiViewportP *", + "desugaredQualType" : "ImGuiViewportP *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 226324, + "name" : "DebugRenderViewportThumbnail", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 226365, + "name" : "draw_list", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 226392, + "name" : "viewport", + "qualType" : "ImGuiViewportP *", + "desugaredQualType" : "ImGuiViewportP *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 226416, + "name" : "bb", + "qualType" : "const struct ImRect &", + "desugaredQualType" : "const struct ImRect &" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 226737, + "name" : "ImFontBuilderIO", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 226646, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 226646, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 226646, + "text" : " This structure is likely to evolve as we add support for incremental atlas updates" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 226769, + "name" : "FontBuilder_Build", + "qualType" : "bool (*)(int *)", + "desugaredQualType" : "bool (*)(int *)" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 226932, + "name" : "ImFontAtlasBuildInit", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 226966, + "name" : "atlas", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 226994, + "name" : "ImFontAtlasBuildSetupFont", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 227033, + "name" : "atlas", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227048, + "name" : "font", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227068, + "name" : "font_config", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227087, + "name" : "ascent", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227101, + "name" : "descent", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 227131, + "name" : "ImFontAtlasBuildPackCustomRects", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 227176, + "name" : "atlas", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227189, + "name" : "stbrp_context_opaque", + "qualType" : "void *", + "desugaredQualType" : "void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 227232, + "name" : "ImFontAtlasBuildFinish", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 227268, + "name" : "atlas", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 227296, + "name" : "ImFontAtlasBuildRender8bppRectFromString", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 227350, + "name" : "atlas", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227361, + "name" : "x", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227368, + "name" : "y", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227375, + "name" : "w", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227382, + "name" : "h", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227397, + "name" : "in_str", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227410, + "name" : "in_marker_char", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227440, + "name" : "in_marker_pixel_value", + "qualType" : "unsigned char", + "desugaredQualType" : "unsigned char" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 227484, + "name" : "ImFontAtlasBuildRender32bppRectFromString", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 227539, + "name" : "atlas", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227550, + "name" : "x", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227557, + "name" : "y", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227564, + "name" : "w", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227571, + "name" : "h", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227586, + "name" : "in_str", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227599, + "name" : "in_marker_char", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227628, + "name" : "in_marker_pixel_value", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 227672, + "name" : "ImFontAtlasBuildMultiplyCalcLookupTable", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 227726, + "name" : "out_table", + "qualType" : "unsigned char *", + "desugaredQualType" : "unsigned char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227748, + "name" : "in_multiply_factor", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 227789, + "name" : "ImFontAtlasBuildMultiplyRectAlpha8", + "resultType" : "IMGUI_API", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 227844, + "name" : "table", + "qualType" : "const unsigned char *", + "desugaredQualType" : "const unsigned char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227871, + "name" : "pixels", + "qualType" : "unsigned char *", + "desugaredQualType" : "unsigned char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227883, + "name" : "x", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227890, + "name" : "y", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227897, + "name" : "w", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227904, + "name" : "h", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 227911, + "name" : "stride", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + } ] +} \ 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 new file mode 100644 index 0000000..da980d1 --- /dev/null +++ b/buildSrc/src/main/resources/generator/api/ast/ast-imgui_node_editor.json @@ -0,0 +1,3024 @@ +{ + "info" : { + "source" : "include/imgui-node-editor/imgui_node_editor.h", + "hash" : "0f066843f1362eeb6d7ee7b7f4fad24f", + "url" : "https://github.com/thedmd/imgui-node-editor", + "revision" : "d79ebdeb2375fa6c1f88a40e52e7d08c8d472b62" + }, + "decls" : [ { + "@type" : "AstNamespaceDecl", + "offset" : 534, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 534, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 536, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 550, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 550, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 550, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 552, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 554, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 555, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 556, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 556, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 560, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 562, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 562, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 566, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 568, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 568, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 568, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 568, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 568, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 568, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 570, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 572, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 572, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 572, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 574, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 574, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 578, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 578, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 578, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 579, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 581, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 583, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 584, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 586, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 587, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 589, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 595, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 595, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 597, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 599, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 601, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 601, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 603, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 603, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 605, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 605, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 605, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 605, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 605, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 605, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 605, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 607, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 608, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 609, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 609, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 609, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 611, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 611, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 611, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 611, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 613, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 613, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 613, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 615, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 615, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 616, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 617, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 620, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 620, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 624, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 624, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 625, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 625, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 626, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 627, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 628, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 628, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 630, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 631, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 632, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 633, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 634, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 635, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 637, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 637, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 638, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 639, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 640, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 640, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 641, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 642, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 645, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 646, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 648, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 648, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 649, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 650, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 653, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 653, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 654, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 656, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 657, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 659, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 660, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 660, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 660, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 664, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 666, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 669, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 669, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 674, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 675, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 675, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 677, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 677, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 679, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 679, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 682, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 684, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 684, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 687, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 687, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 691, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 691, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 693, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 695, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 695, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 695, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 696, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 699, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 699, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 699, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 701, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 704, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 710, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 711, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 711, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 714, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 716, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 721, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 723, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 726, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 730, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 731, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 734, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 736, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 736, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 737, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 737, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 741, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 742, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 745, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 746, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 747, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 752, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 756, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 756, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 756, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 758, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 761, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 764, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 771, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 772, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 775, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 778, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 781, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 781, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 784, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 787, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 790, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 794, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 795, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 799, + "name" : "ax", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 710, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 710, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 710, + "text" : "------------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstNamespaceDecl", + "offset" : 814, + "name" : "NodeEditor", + "decls" : [ { + "@type" : "AstRecordDecl", + "offset" : 917, + "name" : "NodeId", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 831, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 831, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 831, + "text" : "------------------------------------------------------------------------------" + } ] + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 1048, + "name" : "SaveReasonFlags", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 958, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 958, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 958, + "text" : "------------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1080, + "name" : "None", + "qualType" : "ax::NodeEditor::SaveReasonFlags", + "order" : 0, + "value" : "0x00000000", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1109, + "name" : "Navigation", + "qualType" : "ax::NodeEditor::SaveReasonFlags", + "order" : 1, + "value" : "0x00000001", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1138, + "name" : "Position", + "qualType" : "ax::NodeEditor::SaveReasonFlags", + "order" : 2, + "value" : "0x00000002", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1167, + "name" : "Size", + "qualType" : "ax::NodeEditor::SaveReasonFlags", + "order" : 3, + "value" : "0x00000004", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1196, + "name" : "Selection", + "qualType" : "ax::NodeEditor::SaveReasonFlags", + "order" : 4, + "value" : "0x00000008", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1225, + "name" : "User", + "qualType" : "ax::NodeEditor::SaveReasonFlags", + "order" : 5, + "value" : "0x00000010", + "evaluatedValue" : "16" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 1276, + "name" : "operator|", + "resultType" : "SaveReasonFlags", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 1303, + "name" : "lhs", + "qualType" : "SaveReasonFlags", + "desugaredQualType" : "ax::NodeEditor::SaveReasonFlags" + }, { + "@type" : "AstParmVarDecl", + "offset" : 1324, + "name" : "rhs", + "qualType" : "SaveReasonFlags", + "desugaredQualType" : "ax::NodeEditor::SaveReasonFlags" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 1450, + "name" : "operator&", + "resultType" : "SaveReasonFlags", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 1477, + "name" : "lhs", + "qualType" : "SaveReasonFlags", + "desugaredQualType" : "ax::NodeEditor::SaveReasonFlags" + }, { + "@type" : "AstParmVarDecl", + "offset" : 1498, + "name" : "rhs", + "qualType" : "SaveReasonFlags", + "desugaredQualType" : "ax::NodeEditor::SaveReasonFlags" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 2086, + "name" : "Config", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 2123, + "name" : "SettingsFile", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "offset" : 2165, + "name" : "BeginSaveSession", + "qualType" : "ConfigSession", + "desugaredQualType" : "void (*)(void *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 2211, + "name" : "EndSaveSession", + "qualType" : "ConfigSession", + "desugaredQualType" : "void (*)(void *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 2255, + "name" : "SaveSettings", + "qualType" : "ConfigSaveSettings", + "desugaredQualType" : "bool (*)(const char *, size_t, SaveReasonFlags, void *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 2297, + "name" : "LoadSettings", + "qualType" : "ConfigLoadSettings", + "desugaredQualType" : "size_t (*)(char *, void *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 2339, + "name" : "SaveNodeSettings", + "qualType" : "ConfigSaveNodeSettings", + "desugaredQualType" : "bool (*)(NodeId, const char *, size_t, SaveReasonFlags, void *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 2385, + "name" : "LoadNodeSettings", + "qualType" : "ConfigLoadNodeSettings", + "desugaredQualType" : "size_t (*)(NodeId, char *, void *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 2431, + "name" : "UserPointer", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 2472, + "name" : "DragButtonIndex", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 2600, + "name" : "SelectButtonIndex", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 2730, + "name" : "NavigateButtonIndex", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 2862, + "name" : "ContextMenuButtonIndex", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 3501, + "name" : "PinKind", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 3411, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 3411, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 3411, + "text" : "------------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3515, + "name" : "Input", + "qualType" : "ax::NodeEditor::PinKind", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3526, + "name" : "Output", + "qualType" : "ax::NodeEditor::PinKind", + "order" : 1 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 3548, + "name" : "FlowDirection", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 3568, + "name" : "Forward", + "qualType" : "ax::NodeEditor::FlowDirection", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3581, + "name" : "Backward", + "qualType" : "ax::NodeEditor::FlowDirection", + "order" : 1 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 3681, + "name" : "StyleColor", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 3597, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 3597, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 3597, + "text" : "------------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3698, + "name" : "StyleColor_Bg", + "qualType" : "ax::NodeEditor::StyleColor", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3717, + "name" : "StyleColor_Grid", + "qualType" : "ax::NodeEditor::StyleColor", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3738, + "name" : "StyleColor_NodeBg", + "qualType" : "ax::NodeEditor::StyleColor", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3761, + "name" : "StyleColor_NodeBorder", + "qualType" : "ax::NodeEditor::StyleColor", + "order" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3788, + "name" : "StyleColor_HovNodeBorder", + "qualType" : "ax::NodeEditor::StyleColor", + "order" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3818, + "name" : "StyleColor_SelNodeBorder", + "qualType" : "ax::NodeEditor::StyleColor", + "order" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3848, + "name" : "StyleColor_NodeSelRect", + "qualType" : "ax::NodeEditor::StyleColor", + "order" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3876, + "name" : "StyleColor_NodeSelRectBorder", + "qualType" : "ax::NodeEditor::StyleColor", + "order" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3910, + "name" : "StyleColor_HovLinkBorder", + "qualType" : "ax::NodeEditor::StyleColor", + "order" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3940, + "name" : "StyleColor_SelLinkBorder", + "qualType" : "ax::NodeEditor::StyleColor", + "order" : 9 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3970, + "name" : "StyleColor_LinkSelRect", + "qualType" : "ax::NodeEditor::StyleColor", + "order" : 10 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3998, + "name" : "StyleColor_LinkSelRectBorder", + "qualType" : "ax::NodeEditor::StyleColor", + "order" : 11 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4032, + "name" : "StyleColor_PinRect", + "qualType" : "ax::NodeEditor::StyleColor", + "order" : 12 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4056, + "name" : "StyleColor_PinRectBorder", + "qualType" : "ax::NodeEditor::StyleColor", + "order" : 13 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4086, + "name" : "StyleColor_Flow", + "qualType" : "ax::NodeEditor::StyleColor", + "order" : 14 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4107, + "name" : "StyleColor_FlowMarker", + "qualType" : "ax::NodeEditor::StyleColor", + "order" : 15 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4134, + "name" : "StyleColor_GroupBg", + "qualType" : "ax::NodeEditor::StyleColor", + "order" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4158, + "name" : "StyleColor_GroupBorder", + "qualType" : "ax::NodeEditor::StyleColor", + "order" : 17 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4187, + "name" : "StyleColor_Count", + "qualType" : "ax::NodeEditor::StyleColor", + "order" : 18 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 4213, + "name" : "StyleVar", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 4228, + "name" : "StyleVar_NodePadding", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4254, + "name" : "StyleVar_NodeRounding", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4281, + "name" : "StyleVar_NodeBorderWidth", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4311, + "name" : "StyleVar_HoveredNodeBorderWidth", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4348, + "name" : "StyleVar_SelectedNodeBorderWidth", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4386, + "name" : "StyleVar_PinRounding", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4412, + "name" : "StyleVar_PinBorderWidth", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4441, + "name" : "StyleVar_LinkStrength", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4468, + "name" : "StyleVar_SourceDirection", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4498, + "name" : "StyleVar_TargetDirection", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 9 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4528, + "name" : "StyleVar_ScrollDuration", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 10 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4557, + "name" : "StyleVar_FlowMarkerDistance", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 11 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4590, + "name" : "StyleVar_FlowSpeed", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 12 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4614, + "name" : "StyleVar_FlowDuration", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 13 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4641, + "name" : "StyleVar_PivotAlignment", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 14 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4670, + "name" : "StyleVar_PivotSize", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 15 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4694, + "name" : "StyleVar_PivotScale", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4719, + "name" : "StyleVar_PinCorners", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 17 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4744, + "name" : "StyleVar_PinRadius", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 18 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4768, + "name" : "StyleVar_PinArrowSize", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 19 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4795, + "name" : "StyleVar_PinArrowWidth", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 20 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4823, + "name" : "StyleVar_GroupRounding", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 21 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4851, + "name" : "StyleVar_GroupBorderWidth", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 22 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4883, + "name" : "StyleVar_Count", + "qualType" : "ax::NodeEditor::StyleVar", + "order" : 23 + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 4909, + "name" : "Style", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 4929, + "name" : "NodePadding", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 4954, + "name" : "NodeRounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 4980, + "name" : "NodeBorderWidth", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5009, + "name" : "HoveredNodeBorderWidth", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5045, + "name" : "SelectedNodeBorderWidth", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5082, + "name" : "PinRounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5107, + "name" : "PinBorderWidth", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5135, + "name" : "LinkStrength", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5161, + "name" : "SourceDirection", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 5190, + "name" : "TargetDirection", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 5219, + "name" : "ScrollDuration", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5247, + "name" : "FlowMarkerDistance", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5279, + "name" : "FlowSpeed", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5302, + "name" : "FlowDuration", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5328, + "name" : "PivotAlignment", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 5356, + "name" : "PivotSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 5379, + "name" : "PivotScale", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 5403, + "name" : "PinCorners", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5427, + "name" : "PinRadius", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5450, + "name" : "PinArrowSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5476, + "name" : "PinArrowWidth", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5503, + "name" : "GroupRounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5530, + "name" : "GroupBorderWidth", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5560, + "name" : "Colors", + "qualType" : "int[18]", + "desugaredQualType" : "int[18]" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 8220, + "name" : "EditorContext", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 8134, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 8134, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 8134, + "text" : "------------------------------------------------------------------------------" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8323, + "name" : "SetCurrentEditor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 8239, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 8239, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 8239, + "text" : "------------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 8355, + "name" : "ctx", + "qualType" : "EditorContext *", + "desugaredQualType" : "EditorContext *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8376, + "name" : "GetCurrentEditor", + "resultType" : "EditorContext *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 8411, + "name" : "CreateEditor", + "resultType" : "EditorContext *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8438, + "name" : "config", + "qualType" : "const Config *", + "desugaredQualType" : "const Config *", + "defaultValue" : "nullptr" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8462, + "name" : "DestroyEditor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8491, + "name" : "ctx", + "qualType" : "EditorContext *", + "desugaredQualType" : "EditorContext *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8505, + "name" : "GetStyle", + "resultType" : "Style &" + }, { + "@type" : "AstFunctionDecl", + "offset" : 8529, + "name" : "GetStyleColorName", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8558, + "name" : "colorIndex", + "qualType" : "StyleColor", + "desugaredQualType" : "ax::NodeEditor::StyleColor" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8577, + "name" : "PushStyleColor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8603, + "name" : "colorIndex", + "qualType" : "StyleColor", + "desugaredQualType" : "ax::NodeEditor::StyleColor" + }, { + "@type" : "AstParmVarDecl", + "offset" : 8629, + "name" : "color", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8642, + "name" : "PopStyleColor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8660, + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8678, + "name" : "PushStyleVar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8700, + "name" : "varIndex", + "qualType" : "StyleVar", + "desugaredQualType" : "ax::NodeEditor::StyleVar" + }, { + "@type" : "AstParmVarDecl", + "offset" : 8716, + "name" : "value", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8729, + "name" : "PushStyleVar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8751, + "name" : "varIndex", + "qualType" : "StyleVar", + "desugaredQualType" : "ax::NodeEditor::StyleVar" + }, { + "@type" : "AstParmVarDecl", + "offset" : 8775, + "name" : "value", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8788, + "name" : "PushStyleVar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8810, + "name" : "varIndex", + "qualType" : "StyleVar", + "desugaredQualType" : "ax::NodeEditor::StyleVar" + }, { + "@type" : "AstParmVarDecl", + "offset" : 8834, + "name" : "value", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8847, + "name" : "PopStyleVar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8863, + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8881, + "name" : "Begin", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8899, + "name" : "id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 8917, + "name" : "size", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "ImVec2(0, 0)" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8944, + "name" : "End", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 8957, + "name" : "BeginNode", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8974, + "name" : "id", + "qualType" : "NodeId", + "desugaredQualType" : "ax::NodeEditor::NodeId" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8984, + "name" : "BeginPin", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8999, + "name" : "id", + "qualType" : "PinId", + "desugaredQualType" : "ax::NodeEditor::PinId" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9011, + "name" : "kind", + "qualType" : "PinKind", + "desugaredQualType" : "ax::NodeEditor::PinKind" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9023, + "name" : "PinRect", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9045, + "name" : "a", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9062, + "name" : "b", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9071, + "name" : "PinPivotRect", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9098, + "name" : "a", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9115, + "name" : "b", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9124, + "name" : "PinPivotSize", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9151, + "name" : "size", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9163, + "name" : "PinPivotScale", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9191, + "name" : "scale", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9204, + "name" : "PinPivotAlignment", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9236, + "name" : "alignment", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9253, + "name" : "EndPin", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 9268, + "name" : "Group", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9288, + "name" : "size", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9300, + "name" : "EndNode", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 9317, + "name" : "BeginGroupHint", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9339, + "name" : "nodeId", + "qualType" : "NodeId", + "desugaredQualType" : "ax::NodeEditor::NodeId" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9355, + "name" : "GetGroupMin", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 9377, + "name" : "GetGroupMax", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 9404, + "name" : "GetHintForegroundDrawList", + "resultType" : "int *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 9445, + "name" : "GetHintBackgroundDrawList", + "resultType" : "int *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 9479, + "name" : "EndGroupHint", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 9562, + "name" : "GetNodeBackgroundDrawList", + "resultType" : "int *", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 9498, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 9498, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 9498, + "text" : " TODO: Add a way to manage node background channels" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 9595, + "name" : "nodeId", + "qualType" : "NodeId", + "desugaredQualType" : "ax::NodeEditor::NodeId" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9610, + "name" : "Link", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9622, + "name" : "id", + "qualType" : "LinkId", + "desugaredQualType" : "ax::NodeEditor::LinkId" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9632, + "name" : "startPinId", + "qualType" : "PinId", + "desugaredQualType" : "ax::NodeEditor::PinId" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9650, + "name" : "endPinId", + "qualType" : "PinId", + "desugaredQualType" : "ax::NodeEditor::PinId" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9674, + "name" : "color", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "ImVec4(1, 1, 1, 1)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9708, + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9733, + "name" : "Flow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9745, + "name" : "linkId", + "qualType" : "LinkId", + "desugaredQualType" : "ax::NodeEditor::LinkId" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9767, + "name" : "direction", + "qualType" : "FlowDirection", + "desugaredQualType" : "ax::NodeEditor::FlowDirection", + "defaultValue" : "FlowDirection::Forward" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9810, + "name" : "BeginCreate", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9836, + "name" : "color", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "ImVec4(1, 1, 1, 1)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9870, + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9894, + "name" : "QueryNewLink", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9914, + "name" : "startId", + "qualType" : "PinId *", + "desugaredQualType" : "PinId *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9930, + "name" : "endId", + "qualType" : "PinId *", + "desugaredQualType" : "PinId *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9943, + "name" : "QueryNewLink", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9963, + "name" : "startId", + "qualType" : "PinId *", + "desugaredQualType" : "PinId *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9979, + "name" : "endId", + "qualType" : "PinId *", + "desugaredQualType" : "PinId *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 10000, + "name" : "color", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 10013, + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 10037, + "name" : "QueryNewNode", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 10057, + "name" : "pinId", + "qualType" : "PinId *", + "desugaredQualType" : "PinId *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 10070, + "name" : "QueryNewNode", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 10090, + "name" : "pinId", + "qualType" : "PinId *", + "desugaredQualType" : "PinId *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 10111, + "name" : "color", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 10124, + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 10148, + "name" : "AcceptNewItem", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 10170, + "name" : "AcceptNewItem", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 10198, + "name" : "color", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 10211, + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 10235, + "name" : "RejectNewItem", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 10257, + "name" : "RejectNewItem", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 10285, + "name" : "color", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 10298, + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 10322, + "name" : "EndCreate", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 10341, + "name" : "BeginDelete", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 10361, + "name" : "QueryDeletedLink", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 10386, + "name" : "linkId", + "qualType" : "LinkId *", + "desugaredQualType" : "LinkId *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 10401, + "name" : "startId", + "qualType" : "PinId *", + "desugaredQualType" : "PinId *", + "defaultValue" : "nullptr" + }, { + "@type" : "AstParmVarDecl", + "offset" : 10427, + "name" : "endId", + "qualType" : "PinId *", + "desugaredQualType" : "PinId *", + "defaultValue" : "nullptr" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 10450, + "name" : "QueryDeletedNode", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 10475, + "name" : "nodeId", + "qualType" : "NodeId *", + "desugaredQualType" : "NodeId *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 10489, + "name" : "AcceptDeletedItem", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 10512, + "name" : "deleteDependencies", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 10545, + "name" : "RejectDeletedItem", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 10571, + "name" : "EndDelete", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 10590, + "name" : "SetNodePosition", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 10613, + "name" : "nodeId", + "qualType" : "NodeId", + "desugaredQualType" : "ax::NodeEditor::NodeId" + }, { + "@type" : "AstParmVarDecl", + "offset" : 10635, + "name" : "editorPosition", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 10657, + "name" : "SetGroupSize", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 10677, + "name" : "nodeId", + "qualType" : "NodeId", + "desugaredQualType" : "ax::NodeEditor::NodeId" + }, { + "@type" : "AstParmVarDecl", + "offset" : 10699, + "name" : "size", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 10713, + "name" : "GetNodePosition", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 10736, + "name" : "nodeId", + "qualType" : "NodeId", + "desugaredQualType" : "ax::NodeEditor::NodeId" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 10752, + "name" : "GetNodeSize", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 10771, + "name" : "nodeId", + "qualType" : "NodeId", + "desugaredQualType" : "ax::NodeEditor::NodeId" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 10785, + "name" : "CenterNodeOnScreen", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 10811, + "name" : "nodeId", + "qualType" : "NodeId", + "desugaredQualType" : "ax::NodeEditor::NodeId" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 10825, + "name" : "SetNodeZPosition", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 10849, + "name" : "nodeId", + "qualType" : "NodeId", + "desugaredQualType" : "ax::NodeEditor::NodeId" + }, { + "@type" : "AstParmVarDecl", + "offset" : 10863, + "name" : "z", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 10960, + "name" : "GetNodeZPosition", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 10984, + "name" : "nodeId", + "qualType" : "NodeId", + "desugaredQualType" : "ax::NodeEditor::NodeId" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 11044, + "name" : "RestoreNodeState", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 11068, + "name" : "nodeId", + "qualType" : "NodeId", + "desugaredQualType" : "ax::NodeEditor::NodeId" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 11083, + "name" : "Suspend", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 11099, + "name" : "Resume", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 11114, + "name" : "IsSuspended", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 11135, + "name" : "IsActive", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 11153, + "name" : "HasSelectionChanged", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 11181, + "name" : "GetSelectedObjectCount", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 11212, + "name" : "GetSelectedNodes", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 11237, + "name" : "nodes", + "qualType" : "NodeId *", + "desugaredQualType" : "NodeId *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 11248, + "name" : "size", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 11260, + "name" : "GetSelectedLinks", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 11285, + "name" : "links", + "qualType" : "LinkId *", + "desugaredQualType" : "LinkId *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 11296, + "name" : "size", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 11308, + "name" : "IsNodeSelected", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 11330, + "name" : "nodeId", + "qualType" : "NodeId", + "desugaredQualType" : "ax::NodeEditor::NodeId" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 11344, + "name" : "IsLinkSelected", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 11366, + "name" : "linkId", + "qualType" : "LinkId", + "desugaredQualType" : "ax::NodeEditor::LinkId" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 11380, + "name" : "ClearSelection", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 11403, + "name" : "SelectNode", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 11421, + "name" : "nodeId", + "qualType" : "NodeId", + "desugaredQualType" : "ax::NodeEditor::NodeId" + }, { + "@type" : "AstParmVarDecl", + "offset" : 11434, + "name" : "append", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 11456, + "name" : "SelectLink", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 11474, + "name" : "linkId", + "qualType" : "LinkId", + "desugaredQualType" : "ax::NodeEditor::LinkId" + }, { + "@type" : "AstParmVarDecl", + "offset" : 11487, + "name" : "append", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 11509, + "name" : "DeselectNode", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 11529, + "name" : "nodeId", + "qualType" : "NodeId", + "desugaredQualType" : "ax::NodeEditor::NodeId" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 11543, + "name" : "DeselectLink", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 11563, + "name" : "linkId", + "qualType" : "LinkId", + "desugaredQualType" : "ax::NodeEditor::LinkId" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 11578, + "name" : "DeleteNode", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 11596, + "name" : "nodeId", + "qualType" : "NodeId", + "desugaredQualType" : "ax::NodeEditor::NodeId" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 11610, + "name" : "DeleteLink", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 11628, + "name" : "linkId", + "qualType" : "LinkId", + "desugaredQualType" : "ax::NodeEditor::LinkId" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 11643, + "name" : "HasAnyLinks", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 11662, + "name" : "nodeId", + "qualType" : "NodeId", + "desugaredQualType" : "ax::NodeEditor::NodeId" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 11723, + "name" : "HasAnyLinks", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 11741, + "name" : "pinId", + "qualType" : "PinId", + "desugaredQualType" : "ax::NodeEditor::PinId" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 11798, + "name" : "BreakLinks", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 11816, + "name" : "nodeId", + "qualType" : "NodeId", + "desugaredQualType" : "ax::NodeEditor::NodeId" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 11871, + "name" : "BreakLinks", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 11888, + "name" : "pinId", + "qualType" : "PinId", + "desugaredQualType" : "ax::NodeEditor::PinId" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 11943, + "name" : "NavigateToContent", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 11967, + "name" : "duration", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 11988, + "name" : "NavigateToSelection", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 12013, + "name" : "zoomIn", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + }, { + "@type" : "AstParmVarDecl", + "offset" : 12035, + "name" : "duration", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 12057, + "name" : "ShowNodeContextMenu", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 12085, + "name" : "nodeId", + "qualType" : "NodeId *", + "desugaredQualType" : "NodeId *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 12099, + "name" : "ShowPinContextMenu", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 12125, + "name" : "pinId", + "qualType" : "PinId *", + "desugaredQualType" : "PinId *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 12138, + "name" : "ShowLinkContextMenu", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 12166, + "name" : "linkId", + "qualType" : "LinkId *", + "desugaredQualType" : "LinkId *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 12180, + "name" : "ShowBackgroundContextMenu", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 12215, + "name" : "EnableShortcuts", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 12236, + "name" : "enable", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 12250, + "name" : "AreShortcutsEnabled", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 12279, + "name" : "BeginShortcut", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 12301, + "name" : "AcceptCut", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 12319, + "name" : "AcceptCopy", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 12338, + "name" : "AcceptPaste", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 12358, + "name" : "AcceptDuplicate", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 12382, + "name" : "AcceptCreateNode", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 12407, + "name" : "GetActionContextSize", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 12436, + "name" : "GetActionContextNodes", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 12466, + "name" : "nodes", + "qualType" : "NodeId *", + "desugaredQualType" : "NodeId *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 12477, + "name" : "size", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 12489, + "name" : "GetActionContextLinks", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 12519, + "name" : "links", + "qualType" : "LinkId *", + "desugaredQualType" : "LinkId *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 12530, + "name" : "size", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 12542, + "name" : "EndShortcut", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 12564, + "name" : "GetCurrentZoom", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "offset" : 12590, + "name" : "GetHoveredNode", + "resultType" : "NodeId" + }, { + "@type" : "AstFunctionDecl", + "offset" : 12614, + "name" : "GetHoveredPin", + "resultType" : "PinId" + }, { + "@type" : "AstFunctionDecl", + "offset" : 12638, + "name" : "GetHoveredLink", + "resultType" : "LinkId" + }, { + "@type" : "AstFunctionDecl", + "offset" : 12663, + "name" : "GetDoubleClickedNode", + "resultType" : "NodeId" + }, { + "@type" : "AstFunctionDecl", + "offset" : 12693, + "name" : "GetDoubleClickedPin", + "resultType" : "PinId" + }, { + "@type" : "AstFunctionDecl", + "offset" : 12723, + "name" : "GetDoubleClickedLink", + "resultType" : "LinkId" + }, { + "@type" : "AstFunctionDecl", + "offset" : 12752, + "name" : "IsBackgroundClicked", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 12780, + "name" : "IsBackgroundDoubleClicked", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "offset" : 12815, + "name" : "GetLinkPins", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 12834, + "name" : "linkId", + "qualType" : "LinkId", + "desugaredQualType" : "ax::NodeEditor::LinkId" + }, { + "@type" : "AstParmVarDecl", + "offset" : 12849, + "name" : "startPinId", + "qualType" : "PinId *", + "desugaredQualType" : "PinId *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 12868, + "name" : "endPinId", + "qualType" : "PinId *", + "desugaredQualType" : "PinId *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 12939, + "name" : "PinHadAnyLinks", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 12960, + "name" : "pinId", + "qualType" : "PinId", + "desugaredQualType" : "ax::NodeEditor::PinId" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 12976, + "name" : "GetScreenSize", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 13000, + "name" : "ScreenToCanvas", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 13029, + "name" : "pos", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 13042, + "name" : "CanvasToScreen", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 13071, + "name" : "pos", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 13082, + "name" : "GetNodeCount", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 13189, + "name" : "GetOrderedNodeIds", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 13215, + "name" : "nodes", + "qualType" : "NodeId *", + "desugaredQualType" : "NodeId *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 13226, + "name" : "size", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstNamespaceDecl", + "offset" : 13458, + "name" : "Details", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 13369, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 13369, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 13369, + "text" : "------------------------------------------------------------------------------" + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 14997, + "name" : "NodeId" + }, { + "@type" : "AstRecordDecl", + "offset" : 15101, + "name" : "LinkId" + }, { + "@type" : "AstRecordDecl", + "offset" : 15205, + "name" : "PinId" + } ] + } ] + }, { + "@type" : "AstNamespaceDecl", + "offset" : 801, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 809, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 821, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 851, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 851, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 857, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 863, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 873, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 891, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 913, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 915, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 922, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 1056, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 1083, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 1093, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 1106, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 1248, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 1409, + "name" : "std" + }, { + "@type" : "AstRecordDecl", + "offset" : 2143, + "name" : "__darwin_pthread_handler_rec", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 2182, + "name" : "__routine", + "qualType" : "void (*)(void *)", + "desugaredQualType" : "void (*)(void *)" + }, { + "@type" : "AstFieldDecl", + "offset" : 2228, + "name" : "__arg", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "offset" : 2295, + "name" : "__next", + "qualType" : "struct __darwin_pthread_handler_rec *", + "desugaredQualType" : "struct __darwin_pthread_handler_rec *" + } ] + }, { + "@type" : "AstNamespaceDecl", + "offset" : 2209, + "name" : "std" + }, { + "@type" : "AstRecordDecl", + "offset" : 2314, + "name" : "_opaque_pthread_attr_t", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 2345, + "name" : "__sig", + "qualType" : "long", + "desugaredQualType" : "long" + }, { + "@type" : "AstFieldDecl", + "offset" : 2358, + "name" : "__opaque", + "qualType" : "char[56]", + "desugaredQualType" : "char[56]" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 2402, + "name" : "_opaque_pthread_cond_t", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 2433, + "name" : "__sig", + "qualType" : "long", + "desugaredQualType" : "long" + }, { + "@type" : "AstFieldDecl", + "offset" : 2446, + "name" : "__opaque", + "qualType" : "char[40]", + "desugaredQualType" : "char[40]" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 2490, + "name" : "_opaque_pthread_condattr_t", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 2525, + "name" : "__sig", + "qualType" : "long", + "desugaredQualType" : "long" + }, { + "@type" : "AstFieldDecl", + "offset" : 2538, + "name" : "__opaque", + "qualType" : "char[8]", + "desugaredQualType" : "char[8]" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 2586, + "name" : "_opaque_pthread_mutex_t", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 2618, + "name" : "__sig", + "qualType" : "long", + "desugaredQualType" : "long" + }, { + "@type" : "AstFieldDecl", + "offset" : 2631, + "name" : "__opaque", + "qualType" : "char[56]", + "desugaredQualType" : "char[56]" + } ] + }, { + "@type" : "AstNamespaceDecl", + "offset" : 2665, + "name" : "std" + }, { + "@type" : "AstRecordDecl", + "offset" : 2676, + "name" : "_opaque_pthread_mutexattr_t", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 2712, + "name" : "__sig", + "qualType" : "long", + "desugaredQualType" : "long" + }, { + "@type" : "AstFieldDecl", + "offset" : 2725, + "name" : "__opaque", + "qualType" : "char[8]", + "desugaredQualType" : "char[8]" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 2774, + "name" : "_opaque_pthread_once_t", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 2805, + "name" : "__sig", + "qualType" : "long", + "desugaredQualType" : "long" + }, { + "@type" : "AstFieldDecl", + "offset" : 2818, + "name" : "__opaque", + "qualType" : "char[8]", + "desugaredQualType" : "char[8]" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 2862, + "name" : "_opaque_pthread_rwlock_t", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 2895, + "name" : "__sig", + "qualType" : "long", + "desugaredQualType" : "long" + }, { + "@type" : "AstFieldDecl", + "offset" : 2908, + "name" : "__opaque", + "qualType" : "char[192]", + "desugaredQualType" : "char[192]" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 2954, + "name" : "_opaque_pthread_rwlockattr_t", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 2991, + "name" : "__sig", + "qualType" : "long", + "desugaredQualType" : "long" + }, { + "@type" : "AstFieldDecl", + "offset" : 3004, + "name" : "__opaque", + "qualType" : "char[16]", + "desugaredQualType" : "char[16]" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 3054, + "name" : "_opaque_pthread_t", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 3080, + "name" : "__sig", + "qualType" : "long", + "desugaredQualType" : "long" + }, { + "@type" : "AstFieldDecl", + "offset" : 3126, + "name" : "__cleanup_stack", + "qualType" : "struct __darwin_pthread_handler_rec *", + "desugaredQualType" : "struct __darwin_pthread_handler_rec *" + }, { + "@type" : "AstFieldDecl", + "offset" : 3149, + "name" : "__opaque", + "qualType" : "char[8176]", + "desugaredQualType" : "char[8176]" + } ] + }, { + "@type" : "AstNamespaceDecl", + "offset" : 3610, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 3819, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 4265, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 9934, + "name" : "std" + }, { + "@type" : "AstNamespaceDecl", + "offset" : 38828, + "name" : "std" + } ] +} \ No newline at end of file diff --git a/buildSrc/src/main/resources/generator/api/ast/ast-imnodes.json b/buildSrc/src/main/resources/generator/api/ast/ast-imnodes.json new file mode 100644 index 0000000..ca6d0c9 --- /dev/null +++ b/buildSrc/src/main/resources/generator/api/ast/ast-imnodes.json @@ -0,0 +1,1987 @@ +{ + "info" : { + "source" : "include/imnodes/imnodes.h", + "hash" : "652280ae054728987fb8b2201f9a88fa", + "url" : "https://github.com/Nelarius/imnodes", + "revision" : "e563371cee49eb42da08cca1e0209d30d452c665" + }, + "decls" : [ { + "@type" : "AstEnumDecl", + "offset" : 586, + "name" : "ImNodesCol_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 604, + "name" : "ImNodesCol_NodeBackground", + "qualType" : "ImNodesCol_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 639, + "name" : "ImNodesCol_NodeBackgroundHovered", + "qualType" : "ImNodesCol_", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 677, + "name" : "ImNodesCol_NodeBackgroundSelected", + "qualType" : "ImNodesCol_", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 716, + "name" : "ImNodesCol_NodeOutline", + "qualType" : "ImNodesCol_", + "order" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 744, + "name" : "ImNodesCol_TitleBar", + "qualType" : "ImNodesCol_", + "order" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 769, + "name" : "ImNodesCol_TitleBarHovered", + "qualType" : "ImNodesCol_", + "order" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 801, + "name" : "ImNodesCol_TitleBarSelected", + "qualType" : "ImNodesCol_", + "order" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 834, + "name" : "ImNodesCol_Link", + "qualType" : "ImNodesCol_", + "order" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 855, + "name" : "ImNodesCol_LinkHovered", + "qualType" : "ImNodesCol_", + "order" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 883, + "name" : "ImNodesCol_LinkSelected", + "qualType" : "ImNodesCol_", + "order" : 9 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 912, + "name" : "ImNodesCol_Pin", + "qualType" : "ImNodesCol_", + "order" : 10 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 932, + "name" : "ImNodesCol_PinHovered", + "qualType" : "ImNodesCol_", + "order" : 11 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 959, + "name" : "ImNodesCol_BoxSelector", + "qualType" : "ImNodesCol_", + "order" : 12 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 987, + "name" : "ImNodesCol_BoxSelectorOutline", + "qualType" : "ImNodesCol_", + "order" : 13 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1022, + "name" : "ImNodesCol_GridBackground", + "qualType" : "ImNodesCol_", + "order" : 14 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1053, + "name" : "ImNodesCol_GridLine", + "qualType" : "ImNodesCol_", + "order" : 15 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1078, + "name" : "ImNodesCol_MiniMapBackground", + "qualType" : "ImNodesCol_", + "order" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1112, + "name" : "ImNodesCol_MiniMapBackgroundHovered", + "qualType" : "ImNodesCol_", + "order" : 17 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1153, + "name" : "ImNodesCol_MiniMapOutline", + "qualType" : "ImNodesCol_", + "order" : 18 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1184, + "name" : "ImNodesCol_MiniMapOutlineHovered", + "qualType" : "ImNodesCol_", + "order" : 19 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1222, + "name" : "ImNodesCol_MiniMapNodeBackground", + "qualType" : "ImNodesCol_", + "order" : 20 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1260, + "name" : "ImNodesCol_MiniMapNodeBackgroundHovered", + "qualType" : "ImNodesCol_", + "order" : 21 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1305, + "name" : "ImNodesCol_MiniMapNodeBackgroundSelected", + "qualType" : "ImNodesCol_", + "order" : 22 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1351, + "name" : "ImNodesCol_MiniMapNodeOutline", + "qualType" : "ImNodesCol_", + "order" : 23 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1386, + "name" : "ImNodesCol_MiniMapLink", + "qualType" : "ImNodesCol_", + "order" : 24 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1414, + "name" : "ImNodesCol_MiniMapLinkSelected", + "qualType" : "ImNodesCol_", + "order" : 25 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1450, + "name" : "ImNodesCol_MiniMapCanvas", + "qualType" : "ImNodesCol_", + "order" : 26 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1480, + "name" : "ImNodesCol_MiniMapCanvasOutline", + "qualType" : "ImNodesCol_", + "order" : 27 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1517, + "name" : "ImNodesCol_COUNT", + "qualType" : "ImNodesCol_", + "order" : 28 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 1543, + "name" : "ImNodesStyleVar_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 1566, + "name" : "ImNodesStyleVar_GridSpacing", + "qualType" : "ImNodesStyleVar_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1603, + "name" : "ImNodesStyleVar_NodeCornerRounding", + "qualType" : "ImNodesStyleVar_", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1643, + "name" : "ImNodesStyleVar_NodePadding", + "qualType" : "ImNodesStyleVar_", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1676, + "name" : "ImNodesStyleVar_NodeBorderThickness", + "qualType" : "ImNodesStyleVar_", + "order" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1717, + "name" : "ImNodesStyleVar_LinkThickness", + "qualType" : "ImNodesStyleVar_", + "order" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1752, + "name" : "ImNodesStyleVar_LinkLineSegmentsPerLength", + "qualType" : "ImNodesStyleVar_", + "order" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1799, + "name" : "ImNodesStyleVar_LinkHoverDistance", + "qualType" : "ImNodesStyleVar_", + "order" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1838, + "name" : "ImNodesStyleVar_PinCircleRadius", + "qualType" : "ImNodesStyleVar_", + "order" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1875, + "name" : "ImNodesStyleVar_PinQuadSideLength", + "qualType" : "ImNodesStyleVar_", + "order" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1914, + "name" : "ImNodesStyleVar_PinTriangleSideLength", + "qualType" : "ImNodesStyleVar_", + "order" : 9 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1957, + "name" : "ImNodesStyleVar_PinLineThickness", + "qualType" : "ImNodesStyleVar_", + "order" : 10 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 1995, + "name" : "ImNodesStyleVar_PinHoverRadius", + "qualType" : "ImNodesStyleVar_", + "order" : 11 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 2031, + "name" : "ImNodesStyleVar_PinOffset", + "qualType" : "ImNodesStyleVar_", + "order" : 12 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 2062, + "name" : "ImNodesStyleVar_MiniMapPadding", + "qualType" : "ImNodesStyleVar_", + "order" : 13 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 2098, + "name" : "ImNodesStyleVar_MiniMapOffset", + "qualType" : "ImNodesStyleVar_", + "order" : 14 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 2133, + "name" : "ImNodesStyleVar_COUNT", + "qualType" : "ImNodesStyleVar_", + "order" : 15 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 2164, + "name" : "ImNodesStyleFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 2189, + "name" : "ImNodesStyleFlags_None", + "qualType" : "ImNodesStyleFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 2221, + "name" : "ImNodesStyleFlags_NodeOutline", + "qualType" : "ImNodesStyleFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 2265, + "name" : "ImNodesStyleFlags_GridLines", + "qualType" : "ImNodesStyleFlags_", + "order" : 2, + "value" : "1 << 2", + "evaluatedValue" : "4" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 2311, + "name" : "ImNodesPinShape_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 2334, + "name" : "ImNodesPinShape_Circle", + "qualType" : "ImNodesPinShape_", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 2362, + "name" : "ImNodesPinShape_CircleFilled", + "qualType" : "ImNodesPinShape_", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 2396, + "name" : "ImNodesPinShape_Triangle", + "qualType" : "ImNodesPinShape_", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 2426, + "name" : "ImNodesPinShape_TriangleFilled", + "qualType" : "ImNodesPinShape_", + "order" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 2462, + "name" : "ImNodesPinShape_Quad", + "qualType" : "ImNodesPinShape_", + "order" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 2488, + "name" : "ImNodesPinShape_QuadFilled", + "qualType" : "ImNodesPinShape_", + "order" : 5 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 2581, + "name" : "ImNodesAttributeFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 2521, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 2521, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 2521, + "text" : " This enum controls the way the attribute pins behave." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 2610, + "name" : "ImNodesAttributeFlags_None", + "qualType" : "ImNodesAttributeFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 2906, + "name" : "ImNodesAttributeFlags_EnableLinkDetachWithDragClick", + "docComment" : "Allow detaching a link by left-clicking and dragging the link at a pin it is connected to. NOTE: the user has to actually delete the link for this to work. A deleted link can be detected by calling IsLinkDestroyed() after EndNodeEditor().", + "qualType" : "ImNodesAttributeFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3410, + "name" : "ImNodesAttributeFlags_EnableLinkCreationOnSnap", + "docComment" : "Visual snapping of an in progress link will trigger IsLink Created/Destroyed events. Allows for previewing the creation of a link while dragging it across attributes. See here for demo: https://github.com/Nelarius/imnodes/issues/41#issuecomment-647132113 NOTE: the user has to actually delete the link for this to work. A deleted link can be detected by calling IsLinkDestroyed() after EndNodeEditor().", + "qualType" : "ImNodesAttributeFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 3477, + "name" : "ImNodesIO", + "decls" : [ { + "@type" : "AstRecordDecl", + "offset" : 3500, + "name" : "EmulateThreeButtonMouse", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 3943, + "name" : "Modifier", + "qualType" : "const bool *", + "desugaredQualType" : "const bool *" + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 3959, + "name" : "EmulateThreeButtonMouse", + "qualType" : "struct EmulateThreeButtonMouse", + "desugaredQualType" : "ImNodesIO::EmulateThreeButtonMouse" + }, { + "@type" : "AstRecordDecl", + "offset" : 3996, + "name" : "LinkDetachWithModifierClick", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 4700, + "name" : "Modifier", + "qualType" : "const bool *", + "desugaredQualType" : "const bool *" + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 4716, + "name" : "LinkDetachWithModifierClick", + "qualType" : "struct LinkDetachWithModifierClick", + "desugaredQualType" : "ImNodesIO::LinkDetachWithModifierClick" + }, { + "@type" : "AstFieldDecl", + "offset" : 4894, + "name" : "AltMouseButton", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 5010, + "name" : "AutoPanningSpeed", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 5057, + "name" : "ImNodesStyle", + "decls" : [ { + "@type" : "AstFieldDecl", + "offset" : 5082, + "name" : "GridSpacing", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5107, + "name" : "NodeCornerRounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5138, + "name" : "NodePadding", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 5162, + "name" : "NodeBorderThickness", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5194, + "name" : "LinkThickness", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5219, + "name" : "LinkLineSegmentsPerLength", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5256, + "name" : "LinkHoverDistance", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5598, + "name" : "PinCircleRadius", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5742, + "name" : "PinQuadSideLength", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 5916, + "name" : "PinTriangleSideLength", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 6021, + "name" : "PinLineThickness", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 6159, + "name" : "PinHoverRadius", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 6274, + "name" : "PinOffset", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 6370, + "name" : "MiniMapPadding", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 6442, + "name" : "MiniMapOffset", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 6574, + "name" : "Flags", + "qualType" : "ImNodesStyleFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 6719, + "name" : "Colors", + "qualType" : "unsigned int[28]", + "desugaredQualType" : "unsigned int[28]" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 6775, + "name" : "ImNodesMiniMapLocation_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "offset" : 6805, + "name" : "ImNodesMiniMapLocation_BottomLeft", + "qualType" : "ImNodesMiniMapLocation_", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 6844, + "name" : "ImNodesMiniMapLocation_BottomRight", + "qualType" : "ImNodesMiniMapLocation_", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 6884, + "name" : "ImNodesMiniMapLocation_TopLeft", + "qualType" : "ImNodesMiniMapLocation_", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 6920, + "name" : "ImNodesMiniMapLocation_TopRight", + "qualType" : "ImNodesMiniMapLocation_", + "order" : 3 + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 7318, + "name" : "ImNodesEditorContext", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 7020, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 7020, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 7020, + "text" : " An editor context corresponds to a set of nodes in a single workspace (created with a single" + }, { + "@type" : "AstTextComment", + "offset" : 7116, + "text" : " Begin/EndNodeEditor pair)" + } ] + }, { + "@type" : "AstParagraphComment", + "offset" : 7148, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 7148, + "text" : " By default, the library creates an editor context behind the scenes, so using any of the imnodes" + }, { + "@type" : "AstTextComment", + "offset" : 7248, + "text" : " functions doesn't require you to explicitly create a context." + } ] + } ] + } ] + }, { + "@type" : "AstNamespaceDecl", + "offset" : 7669, + "name" : "ImNodes", + "decls" : [ { + "@type" : "AstFunctionDecl", + "offset" : 7880, + "name" : "SetImGuiContext", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 7691, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 7691, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 7691, + "text" : " Call this function if you are compiling imnodes in to a dll, separate from ImGui. Calling this" + }, { + "@type" : "AstTextComment", + "offset" : 7789, + "text" : " function sets the GImGui global variable, which is not shared across dll boundaries." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 7910, + "name" : "ctx", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 7933, + "name" : "CreateContext", + "resultType" : "ImNodesContext *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 7966, + "name" : "DestroyContext", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 7997, + "name" : "ctx", + "qualType" : "ImNodesContext *", + "desugaredQualType" : "ImNodesContext *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8060, + "name" : "GetCurrentContext", + "resultType" : "ImNodesContext *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 8097, + "name" : "SetCurrentContext", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8131, + "name" : "ctx", + "qualType" : "ImNodesContext *", + "desugaredQualType" : "ImNodesContext *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8160, + "name" : "EditorContextCreate", + "resultType" : "ImNodesEditorContext *" + }, { + "@type" : "AstFunctionDecl", + "offset" : 8205, + "name" : "EditorContextFree", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 8269, + "name" : "EditorContextSet", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 8332, + "name" : "EditorContextGetPanning", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "offset" : 8381, + "name" : "EditorContextResetPanning", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8421, + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8449, + "name" : "EditorContextMoveToNode", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 8483, + "name" : "node_id", + "qualType" : "const int", + "desugaredQualType" : "const int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8505, + "name" : "GetIO", + "resultType" : "ImNodesIO &" + }, { + "@type" : "AstFunctionDecl", + "offset" : 8612, + "name" : "GetStyle", + "resultType" : "ImNodesStyle &", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 8517, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 8517, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 8517, + "text" : " Returns the global style struct. See the struct declaration for default values." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8695, + "name" : "StyleColorsDark", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 8626, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 8626, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 8626, + "text" : " Style presets matching the dear imgui styles of the same name." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8736, + "name" : "StyleColorsClassic", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 8763, + "name" : "StyleColorsLight", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 8949, + "name" : "BeginNodeEditor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 8786, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 8786, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 8786, + "text" : " The top-level function call. Call this before calling BeginNode/EndNode. Calling this function" + }, { + "@type" : "AstTextComment", + "offset" : 8884, + "text" : " will result the node editor grid workspace being rendered." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 8973, + "name" : "EndNodeEditor", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 9113, + "name" : "MiniMap", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 8993, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 8993, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 8993, + "text" : " Add a navigable minimap to the editor; call before EndNodeEditor after all" + }, { + "@type" : "AstTextComment", + "offset" : 9071, + "text" : " nodes and links have been specified" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 9175, + "name" : "minimap_size_fraction", + "qualType" : "const float", + "desugaredQualType" : "const float", + "defaultValue" : "0.2f" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9258, + "name" : "location", + "qualType" : "const ImNodesMiniMapLocation", + "desugaredQualType" : "const int", + "defaultValue" : "ImNodesMiniMapLocation_TopLeft" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9354, + "name" : "node_hovering_callback", + "qualType" : "const ImNodesMiniMapNodeHoveringCallback", + "desugaredQualType" : "void (*const)(int, void *)", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9438, + "name" : "node_hovering_callback_data", + "qualType" : "const ImNodesMiniMapNodeHoveringCallbackUserData", + "desugaredQualType" : "void *const", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9563, + "name" : "PushColorStyle", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 9478, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 9478, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 9478, + "text" : " Use PushColorStyle and PopColorStyle to modify ImNodesStyle::Colors mid-frame." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 9589, + "name" : "item", + "qualType" : "ImNodesCol", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9608, + "name" : "color", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9621, + "name" : "PopColorStyle", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 9643, + "name" : "PushStyleVar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9672, + "name" : "style_item", + "qualType" : "ImNodesStyleVar", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9690, + "name" : "value", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9703, + "name" : "PushStyleVar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9732, + "name" : "style_item", + "qualType" : "ImNodesStyleVar", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 9758, + "name" : "value", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9771, + "name" : "PopStyleVar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9787, + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9904, + "name" : "BeginNode", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 9802, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 9802, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 9802, + "text" : " id can be any positive or negative integer, but INT_MIN is currently reserved for internal use." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 9918, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 9928, + "name" : "EndNode", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 9947, + "name" : "GetNodeDimensions", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 9969, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 10214, + "name" : "BeginNodeTitleBar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 9977, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 9977, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 9977, + "text" : " Place your node title bar content (such as the node title, using ImGui::Text) between the" + }, { + "@type" : "AstTextComment", + "offset" : 10070, + "text" : " following function calls. These functions have to be called before adding any attributes, or the" + }, { + "@type" : "AstTextComment", + "offset" : 10170, + "text" : " layout of the node will be incorrect." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 10240, + "name" : "EndNodeTitleBar", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 10762, + "name" : "BeginInputAttribute", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 10689, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 10689, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 10689, + "text" : " Create an input attribute block. The pin is rendered on left side." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 10786, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 10806, + "name" : "shape", + "qualType" : "ImNodesPinShape", + "desugaredQualType" : "int", + "defaultValue" : "ImNodesPinShape_CircleFilled" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 10850, + "name" : "EndInputAttribute", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 10952, + "name" : "BeginOutputAttribute", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 10873, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 10873, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 10873, + "text" : " Create an output attribute block. The pin is rendered on the right side." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 10977, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 10997, + "name" : "shape", + "qualType" : "ImNodesPinShape", + "desugaredQualType" : "int", + "defaultValue" : "ImNodesPinShape_CircleFilled" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 11041, + "name" : "EndOutputAttribute", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 11291, + "name" : "BeginStaticAttribute", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 11065, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 11065, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 11065, + "text" : " Create a static attribute block. A static attribute has no pin, and therefore can't be linked to" + }, { + "@type" : "AstTextComment", + "offset" : 11165, + "text" : " anything. However, you can still use IsAttributeActive() and IsAnyAttributeActive() to check for" + }, { + "@type" : "AstTextComment", + "offset" : 11265, + "text" : " attribute activity." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 11316, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 11326, + "name" : "EndStaticAttribute", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 11438, + "name" : "PushAttributeFlag", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 11351, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 11351, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 11351, + "text" : " Push a single AttributeFlags value. By default, only AttributeFlags_None is set." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 11478, + "name" : "flag", + "qualType" : "ImNodesAttributeFlags", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 11490, + "name" : "PopAttributeFlag", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 11747, + "name" : "Link", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 11513, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 11513, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 11513, + "text" : " Render a link between attributes." + }, { + "@type" : "AstTextComment", + "offset" : 11550, + "text" : " The attributes ids used here must match the ids used in Begin(Input|Output)Attribute function" + }, { + "@type" : "AstTextComment", + "offset" : 11647, + "text" : " calls. The order of start_attr and end_attr doesn't make a difference for rendering the link." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 11756, + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 11764, + "name" : "start_attribute_id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 11788, + "name" : "end_attribute_id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 11881, + "name" : "SetNodeDraggable", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 11810, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 11810, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 11810, + "text" : " Enable or disable the ability to click and drag a specific node." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 11902, + "name" : "node_id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 11922, + "name" : "draggable", + "qualType" : "const bool", + "desugaredQualType" : "const bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 12502, + "name" : "SetNodeScreenSpacePos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 12400, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 12400, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 12400, + "text" : " Use the following functions to get and set the node's coordinates in these coordinate systems." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 12528, + "name" : "node_id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 12551, + "name" : "screen_space_pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 12575, + "name" : "SetNodeEditorSpacePos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 12601, + "name" : "node_id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 12624, + "name" : "editor_space_pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 12648, + "name" : "SetNodeGridSpacePos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 12672, + "name" : "node_id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 12695, + "name" : "grid_pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 12714, + "name" : "GetNodeScreenSpacePos", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 12746, + "name" : "node_id", + "qualType" : "const int", + "desugaredQualType" : "const int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 12763, + "name" : "GetNodeEditorSpacePos", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 12795, + "name" : "node_id", + "qualType" : "const int", + "desugaredQualType" : "const int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 12812, + "name" : "GetNodeGridSpacePos", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 12842, + "name" : "node_id", + "qualType" : "const int", + "desugaredQualType" : "const int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 12988, + "name" : "IsEditorHovered", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 12855, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 12855, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 12855, + "text" : " Returns true if the current node editor canvas is being hovered over by the mouse, and is not" + }, { + "@type" : "AstTextComment", + "offset" : 12952, + "text" : " blocked by any other windows." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 13253, + "name" : "IsNodeHovered", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 13009, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 13009, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 13009, + "text" : " The following functions return true if a UI element is being hovered over by the mouse cursor." + }, { + "@type" : "AstTextComment", + "offset" : 13107, + "text" : " Assigns the id of the UI element being hovered over to the function argument. Use these functions" + }, { + "@type" : "AstTextComment", + "offset" : 13208, + "text" : " after EndNodeEditor() has been called." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 13272, + "name" : "node_id", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 13287, + "name" : "IsLinkHovered", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 13306, + "name" : "link_id", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 13321, + "name" : "IsPinHovered", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 13339, + "name" : "attribute_id", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 13502, + "name" : "NumSelectedNodes", + "resultType" : "int", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 13357, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 13357, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 13357, + "text" : " Use The following two functions to query the number of selected nodes or links in the current" + }, { + "@type" : "AstTextComment", + "offset" : 13454, + "text" : " editor. Use after calling EndNodeEditor()." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 13526, + "name" : "NumSelectedLinks", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "offset" : 13753, + "name" : "GetSelectedNodes", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 13548, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 13548, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 13548, + "text" : " Get the selected node/link ids. The pointer argument should point to an integer array with at" + }, { + "@type" : "AstTextComment", + "offset" : 13645, + "text" : " least as many elements as the respective NumSelectedNodes/NumSelectedLinks function call" + }, { + "@type" : "AstTextComment", + "offset" : 13737, + "text" : " returned." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 13775, + "name" : "node_ids", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 13791, + "name" : "GetSelectedLinks", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 13813, + "name" : "link_ids", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 13927, + "name" : "ClearNodeSelection", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 13826, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 13826, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 13826, + "text" : " Clears the list of selected nodes/links. Useful if you want to delete a selected node or link." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 13954, + "name" : "ClearLinkSelection", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "offset" : 14464, + "name" : "SelectNode", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 13978, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 13978, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 13978, + "text" : " Use the following functions to add or remove individual nodes or links from the current editors" + }, { + "@type" : "AstTextComment", + "offset" : 14077, + "text" : " selection. Note that all functions require the id to be an existing valid id for this editor." + }, { + "@type" : "AstTextComment", + "offset" : 14174, + "text" : " Select-functions has the precondition that the object is currently considered unselected." + }, { + "@type" : "AstTextComment", + "offset" : 14267, + "text" : " Clear-functions has the precondition that the object is currently considered selected." + }, { + "@type" : "AstTextComment", + "offset" : 14357, + "text" : " Preconditions listed above can be checked via IsNodeSelected/IsLinkSelected if not already" + }, { + "@type" : "AstTextComment", + "offset" : 14451, + "text" : " known." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 14479, + "name" : "node_id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 14494, + "name" : "ClearNodeSelection", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 14517, + "name" : "node_id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 14532, + "name" : "IsNodeSelected", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 14551, + "name" : "node_id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 14566, + "name" : "SelectLink", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 14581, + "name" : "link_id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 14596, + "name" : "ClearLinkSelection", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 14619, + "name" : "link_id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 14634, + "name" : "IsLinkSelected", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 14653, + "name" : "link_id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 14828, + "name" : "IsAttributeActive", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 14666, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 14666, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 14666, + "text" : " Was the previous attribute active? This will continuously return true while the left mouse button" + }, { + "@type" : "AstTextComment", + "offset" : 14767, + "text" : " is being pressed over the UI content of the attribute." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 14952, + "name" : "IsAnyAttributeActive", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 14851, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 14851, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 14851, + "text" : " Was any attribute active? If so, sets the active attribute id to the output function argument." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 14978, + "name" : "attribute_id", + "qualType" : "int *", + "desugaredQualType" : "int *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 15191, + "name" : "IsLinkStarted", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 15134, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 15134, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 15134, + "text" : " Did the user start dragging a new link from a pin?" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 15210, + "name" : "started_at_attribute_id", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 15649, + "name" : "IsLinkDropped", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 15238, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 15238, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 15238, + "text" : " Did the user drop the dragged link before attaching it to a pin?" + }, { + "@type" : "AstTextComment", + "offset" : 15306, + "text" : " There are two different kinds of situations to consider when handling this event:" + }, { + "@type" : "AstTextComment", + "offset" : 15391, + "text" : " 1) a link which is created at a pin and then dropped" + }, { + "@type" : "AstTextComment", + "offset" : 15447, + "text" : " 2) an existing link which is detached from a pin and then dropped" + }, { + "@type" : "AstTextComment", + "offset" : 15516, + "text" : " Use the including_detached_links flag to control whether this function triggers when the user" + }, { + "@type" : "AstTextComment", + "offset" : 15613, + "text" : " detaches a link and drops it." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 15668, + "name" : "started_at_attribute_id", + "qualType" : "int *", + "desugaredQualType" : "int *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 15705, + "name" : "including_detached_links", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 15788, + "name" : "IsLinkCreated", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 15741, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 15741, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 15741, + "text" : " Did the user finish creating a new link?" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 15813, + "name" : "started_at_attribute_id", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 15848, + "name" : "ended_at_attribute_id", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 15881, + "name" : "created_from_snap", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 15913, + "name" : "IsLinkCreated", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 15938, + "name" : "started_at_node_id", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 15968, + "name" : "started_at_attribute_id", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 16003, + "name" : "ended_at_node_id", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 16031, + "name" : "ended_at_attribute_id", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 16064, + "name" : "created_from_snap", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 16224, + "name" : "IsLinkDestroyed", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 16094, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 16094, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 16094, + "text" : " Was an existing link detached from a pin by the user? The detached link's id is assigned to the" + }, { + "@type" : "AstTextComment", + "offset" : 16193, + "text" : " output argument link_id." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 16245, + "name" : "link_id", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 16432, + "name" : "SaveCurrentEditorStateToIniString", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 16258, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 16258, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 16258, + "text" : " Use the following functions to write the editor context's state to a string, or directly to a" + }, { + "@type" : "AstTextComment", + "offset" : 16355, + "text" : " file. The editor context is serialized in the INI file format." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 16474, + "name" : "data_size", + "qualType" : "size_t *", + "desugaredQualType" : "size_t *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 16505, + "name" : "SaveEditorStateToIniString", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 16565, + "name" : "editor", + "qualType" : "const ImNodesEditorContext *", + "desugaredQualType" : "const ImNodesEditorContext *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 16605, + "name" : "data_size", + "qualType" : "size_t *", + "desugaredQualType" : "size_t *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 16630, + "name" : "LoadCurrentEditorStateFromIniString", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 16678, + "name" : "data", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 16691, + "name" : "data_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 16708, + "name" : "LoadEditorStateFromIniString", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 16759, + "name" : "editor", + "qualType" : "ImNodesEditorContext *", + "desugaredQualType" : "ImNodesEditorContext *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 16779, + "name" : "data", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 16792, + "name" : "data_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 16810, + "name" : "SaveCurrentEditorStateToIniFile", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 16854, + "name" : "file_name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 16871, + "name" : "SaveEditorStateToIniFile", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 16924, + "name" : "editor", + "qualType" : "const ImNodesEditorContext *", + "desugaredQualType" : "const ImNodesEditorContext *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 16944, + "name" : "file_name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 16962, + "name" : "LoadCurrentEditorStateFromIniFile", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 17008, + "name" : "file_name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 17025, + "name" : "LoadEditorStateFromIniFile", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 17074, + "name" : "editor", + "qualType" : "ImNodesEditorContext *", + "desugaredQualType" : "ImNodesEditorContext *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 17094, + "name" : "file_name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + } ] + } ] +} \ No newline at end of file diff --git a/buildSrc/src/main/resources/generator/api/ast/ast-implot.json b/buildSrc/src/main/resources/generator/api/ast/ast-implot.json new file mode 100644 index 0000000..a38e3ca --- /dev/null +++ b/buildSrc/src/main/resources/generator/api/ast/ast-implot.json @@ -0,0 +1,5542 @@ +{ + "info" : { + "source" : "include/implot/implot.h", + "hash" : "e2a43b9dc38ce3ba83d62eba17a8f6d4", + "url" : "https://github.com/epezent/implot.git", + "revision" : "dea3387cdcc1d6a7ee3607f8a37a9dce8a85224f" + }, + "decls" : [ { + "@type" : "AstRecordDecl", + "offset" : 2226, + "name" : "ImPlotContext", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 2197, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 2197, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 2197, + "text" : " Forward declarations" + } ] + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 3007, + "name" : "ImPlotFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 2966, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 2966, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 2966, + "text" : " Options for plots (see BeginPlot)." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3026, + "name" : "ImPlotFlags_None", + "docComment" : "default", + "qualType" : "ImPlotFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3078, + "name" : "ImPlotFlags_NoTitle", + "docComment" : "the plot title will not be displayed (titles are also hidden if preceeded by double hashes, e.g. \"##MyPlot\")", + "qualType" : "ImPlotFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3231, + "name" : "ImPlotFlags_NoLegend", + "docComment" : "the legend will not be displayed", + "qualType" : "ImPlotFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3308, + "name" : "ImPlotFlags_NoMenus", + "docComment" : "the user will not be able to open context menus with right-click", + "qualType" : "ImPlotFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3417, + "name" : "ImPlotFlags_NoBoxSelect", + "docComment" : "the user will not be able to box-select with right-click drag", + "qualType" : "ImPlotFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3523, + "name" : "ImPlotFlags_NoMousePos", + "docComment" : "the mouse position, in plot coordinates, will not be displayed inside of the plot", + "qualType" : "ImPlotFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3649, + "name" : "ImPlotFlags_NoHighlight", + "docComment" : "plot items will not be highlighted when their legend entry is hovered", + "qualType" : "ImPlotFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3763, + "name" : "ImPlotFlags_NoChild", + "docComment" : "a child window region will not be used to capture mouse scroll (can boost performance for single ImGui window applications)", + "qualType" : "ImPlotFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 3931, + "name" : "ImPlotFlags_Equal", + "docComment" : "primary x and y axes will be constrained to have the same units/pixel (does not apply to auxiliary y-axes)", + "qualType" : "ImPlotFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4082, + "name" : "ImPlotFlags_YAxis2", + "docComment" : "enable a 2nd y-axis on the right side", + "qualType" : "ImPlotFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : "256" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4164, + "name" : "ImPlotFlags_YAxis3", + "docComment" : "enable a 3rd y-axis on the right side", + "qualType" : "ImPlotFlags_", + "order" : 10, + "value" : "1 << 9", + "evaluatedValue" : "512" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4246, + "name" : "ImPlotFlags_Query", + "docComment" : "the user will be able to draw query rects with middle-mouse or CTRL + right-click drag", + "qualType" : "ImPlotFlags_", + "order" : 11, + "value" : "1 << 10", + "evaluatedValue" : "1024" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4377, + "name" : "ImPlotFlags_Crosshairs", + "docComment" : "the default mouse cursor will be replaced with a crosshair when hovered", + "qualType" : "ImPlotFlags_", + "order" : 12, + "value" : "1 << 11", + "evaluatedValue" : "2048" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4493, + "name" : "ImPlotFlags_AntiAliased", + "docComment" : "plot lines will be software anti-aliased (not recommended for high density plots, prefer MSAA)", + "qualType" : "ImPlotFlags_", + "order" : 13, + "value" : "1 << 12", + "evaluatedValue" : "4096" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4632, + "name" : "ImPlotFlags_CanvasOnly", + "qualType" : "ImPlotFlags_", + "order" : 14, + "value" : "ImPlotFlags_NoTitle | ImPlotFlags_NoLegend | ImPlotFlags_NoMenus | ImPlotFlags_NoBoxSelect | ImPlotFlags_NoMousePos", + "evaluatedValue" : "31" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 4827, + "name" : "ImPlotAxisFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 4782, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 4782, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 4782, + "text" : " Options for plot axes (see BeginPlot)." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4850, + "name" : "ImPlotAxisFlags_None", + "docComment" : "default", + "qualType" : "ImPlotAxisFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 4906, + "name" : "ImPlotAxisFlags_NoLabel", + "docComment" : "the axis label will not be displayed (axis labels also hidden if the supplied string name is NULL)", + "qualType" : "ImPlotAxisFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 5053, + "name" : "ImPlotAxisFlags_NoGridLines", + "docComment" : "no grid lines will be displayed", + "qualType" : "ImPlotAxisFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 5133, + "name" : "ImPlotAxisFlags_NoTickMarks", + "docComment" : "no tick marks will be displayed", + "qualType" : "ImPlotAxisFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 5213, + "name" : "ImPlotAxisFlags_NoTickLabels", + "docComment" : "no text labels will be displayed", + "qualType" : "ImPlotAxisFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 5294, + "name" : "ImPlotAxisFlags_Foreground", + "docComment" : "grid lines will be displayed in the foreground (i.e. on top of data) in stead of the background", + "qualType" : "ImPlotAxisFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 5438, + "name" : "ImPlotAxisFlags_LogScale", + "docComment" : "a logartithmic (base 10) axis scale will be used (mutually exclusive with ImPlotAxisFlags_Time)", + "qualType" : "ImPlotAxisFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 5582, + "name" : "ImPlotAxisFlags_Time", + "docComment" : "axis will display date/time formatted labels (mutually exclusive with ImPlotAxisFlags_LogScale)", + "qualType" : "ImPlotAxisFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 5726, + "name" : "ImPlotAxisFlags_Invert", + "docComment" : "the axis will be inverted", + "qualType" : "ImPlotAxisFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 5800, + "name" : "ImPlotAxisFlags_NoInitialFit", + "docComment" : "axis will not be initially fit to data extents on the first rendered frame (also the case if SetNextPlotLimits explicitly called)", + "qualType" : "ImPlotAxisFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : "256" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 5978, + "name" : "ImPlotAxisFlags_AutoFit", + "docComment" : "axis will be auto-fitting to data extents", + "qualType" : "ImPlotAxisFlags_", + "order" : 10, + "value" : "1 << 9", + "evaluatedValue" : "512" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 6068, + "name" : "ImPlotAxisFlags_RangeFit", + "docComment" : "axis will only fit points if the point is in the visible range of the **orthoganol** axis", + "qualType" : "ImPlotAxisFlags_", + "order" : 11, + "value" : "1 << 10", + "evaluatedValue" : "1024" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 6206, + "name" : "ImPlotAxisFlags_LockMin", + "docComment" : "the axis minimum value will be locked when panning/zooming", + "qualType" : "ImPlotAxisFlags_", + "order" : 12, + "value" : "1 << 11", + "evaluatedValue" : "2048" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 6313, + "name" : "ImPlotAxisFlags_LockMax", + "docComment" : "the axis maximum value will be locked when panning/zooming", + "qualType" : "ImPlotAxisFlags_", + "order" : 13, + "value" : "1 << 12", + "evaluatedValue" : "4096" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 6420, + "name" : "ImPlotAxisFlags_Lock", + "qualType" : "ImPlotAxisFlags_", + "order" : 14, + "value" : "ImPlotAxisFlags_LockMin | ImPlotAxisFlags_LockMax", + "evaluatedValue" : "6144" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 6507, + "name" : "ImPlotAxisFlags_NoDecorations", + "qualType" : "ImPlotAxisFlags_", + "order" : 15, + "value" : "ImPlotAxisFlags_NoLabel | ImPlotAxisFlags_NoGridLines | ImPlotAxisFlags_NoTickMarks | ImPlotAxisFlags_NoTickLabels", + "evaluatedValue" : "15" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 6707, + "name" : "ImPlotSubplotFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 6660, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 6660, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 6660, + "text" : " Options for subplots (see BeginSubplot)." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 6733, + "name" : "ImPlotSubplotFlags_None", + "docComment" : "default", + "qualType" : "ImPlotSubplotFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 6790, + "name" : "ImPlotSubplotFlags_NoTitle", + "docComment" : "the subplot title will not be displayed (titles are also hidden if preceeded by double hashes, e.g. \"##MySubplot\")", + "qualType" : "ImPlotSubplotFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 6954, + "name" : "ImPlotSubplotFlags_NoLegend", + "docComment" : "the legend will not be displayed (only applicable if ImPlotSubplotFlags_ShareItems is enabled)", + "qualType" : "ImPlotSubplotFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 7098, + "name" : "ImPlotSubplotFlags_NoMenus", + "docComment" : "the user will not be able to open context menus with right-click", + "qualType" : "ImPlotSubplotFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 7212, + "name" : "ImPlotSubplotFlags_NoResize", + "docComment" : "resize splitters between subplot cells will be not be provided", + "qualType" : "ImPlotSubplotFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 7324, + "name" : "ImPlotSubplotFlags_NoAlign", + "docComment" : "subplot edges will not be aligned vertically or horizontally", + "qualType" : "ImPlotSubplotFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : "16" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 7434, + "name" : "ImPlotSubplotFlags_ShareItems", + "docComment" : "items across all subplots will be shared and rendered into a single legend entry", + "qualType" : "ImPlotSubplotFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : "32" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 7564, + "name" : "ImPlotSubplotFlags_LinkRows", + "docComment" : "link the y-axis limits of all plots in each row (does not apply auxiliary y-axes)", + "qualType" : "ImPlotSubplotFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : "64" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 7695, + "name" : "ImPlotSubplotFlags_LinkCols", + "docComment" : "link the x-axis limits of all plots in each column", + "qualType" : "ImPlotSubplotFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : "128" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 7795, + "name" : "ImPlotSubplotFlags_LinkAllX", + "docComment" : "link the x-axis limits in every plot in the subplot", + "qualType" : "ImPlotSubplotFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : "256" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 7896, + "name" : "ImPlotSubplotFlags_LinkAllY", + "docComment" : "link the y-axis limits in every plot in the subplot (does not apply to auxiliary y-axes)", + "qualType" : "ImPlotSubplotFlags_", + "order" : 10, + "value" : "1 << 9", + "evaluatedValue" : "512" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8034, + "name" : "ImPlotSubplotFlags_ColMajor", + "docComment" : "subplots are added in column major order instead of the default row major order", + "qualType" : "ImPlotSubplotFlags_", + "order" : 11, + "value" : "1 << 10", + "evaluatedValue" : "1024" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 8192, + "name" : "ImPlotCol_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 8165, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 8165, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 8165, + "text" : " Plot styling colors." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8236, + "name" : "ImPlotCol_Line", + "docComment" : "plot line/outline color (defaults to next unused color in current colormap)", + "qualType" : "ImPlotCol_", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8344, + "name" : "ImPlotCol_Fill", + "docComment" : "plot fill color for bars (defaults to the current line color)", + "qualType" : "ImPlotCol_", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8438, + "name" : "ImPlotCol_MarkerOutline", + "docComment" : "marker outline color (defaults to the current line color)", + "qualType" : "ImPlotCol_", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8528, + "name" : "ImPlotCol_MarkerFill", + "docComment" : "marker fill color (defaults to the current line color)", + "qualType" : "ImPlotCol_", + "order" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8615, + "name" : "ImPlotCol_ErrorBar", + "docComment" : "error bar color (defaults to ImGuiCol_Text)", + "qualType" : "ImPlotCol_", + "order" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8718, + "name" : "ImPlotCol_FrameBg", + "docComment" : "plot frame background color (defaults to ImGuiCol_FrameBg)", + "qualType" : "ImPlotCol_", + "order" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8809, + "name" : "ImPlotCol_PlotBg", + "docComment" : "plot area background color (defaults to ImGuiCol_WindowBg)", + "qualType" : "ImPlotCol_", + "order" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8900, + "name" : "ImPlotCol_PlotBorder", + "docComment" : "plot area border color (defaults to ImGuiCol_Border)", + "qualType" : "ImPlotCol_", + "order" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 8985, + "name" : "ImPlotCol_LegendBg", + "docComment" : "legend background color (defaults to ImGuiCol_PopupBg)", + "qualType" : "ImPlotCol_", + "order" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 9072, + "name" : "ImPlotCol_LegendBorder", + "docComment" : "legend border color (defaults to ImPlotCol_PlotBorder)", + "qualType" : "ImPlotCol_", + "order" : 9 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 9159, + "name" : "ImPlotCol_LegendText", + "docComment" : "legend text color (defaults to ImPlotCol_InlayText)", + "qualType" : "ImPlotCol_", + "order" : 10 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 9243, + "name" : "ImPlotCol_TitleText", + "docComment" : "plot title text color (defaults to ImGuiCol_Text)", + "qualType" : "ImPlotCol_", + "order" : 11 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 9325, + "name" : "ImPlotCol_InlayText", + "docComment" : "color of text appearing inside of plots (defaults to ImGuiCol_Text)", + "qualType" : "ImPlotCol_", + "order" : 12 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 9425, + "name" : "ImPlotCol_XAxis", + "docComment" : "x-axis label and tick lables color (defaults to ImGuiCol_Text)", + "qualType" : "ImPlotCol_", + "order" : 13 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 9520, + "name" : "ImPlotCol_XAxisGrid", + "docComment" : "x-axis grid color (defaults to 25% ImPlotCol_XAxis)", + "qualType" : "ImPlotCol_", + "order" : 14 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 9604, + "name" : "ImPlotCol_YAxis", + "docComment" : "y-axis label and tick labels color (defaults to ImGuiCol_Text)", + "qualType" : "ImPlotCol_", + "order" : 15 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 9699, + "name" : "ImPlotCol_YAxisGrid", + "docComment" : "y-axis grid color (defaults to 25% ImPlotCol_YAxis)", + "qualType" : "ImPlotCol_", + "order" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 9783, + "name" : "ImPlotCol_YAxis2", + "docComment" : "2nd y-axis label and tick labels color (defaults to ImGuiCol_Text)", + "qualType" : "ImPlotCol_", + "order" : 17 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 9882, + "name" : "ImPlotCol_YAxisGrid2", + "docComment" : "2nd y-axis grid/label color (defaults to 25% ImPlotCol_YAxis2)", + "qualType" : "ImPlotCol_", + "order" : 18 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 9977, + "name" : "ImPlotCol_YAxis3", + "docComment" : "3rd y-axis label and tick labels color (defaults to ImGuiCol_Text)", + "qualType" : "ImPlotCol_", + "order" : 19 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 10076, + "name" : "ImPlotCol_YAxisGrid3", + "docComment" : "3rd y-axis grid/label color (defaults to 25% ImPlotCol_YAxis3)", + "qualType" : "ImPlotCol_", + "order" : 20 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 10171, + "name" : "ImPlotCol_Selection", + "docComment" : "box-selection color (defaults to yellow)", + "qualType" : "ImPlotCol_", + "order" : 21 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 10244, + "name" : "ImPlotCol_Query", + "docComment" : "box-query color (defaults to green)", + "qualType" : "ImPlotCol_", + "order" : 22 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 10312, + "name" : "ImPlotCol_Crosshairs", + "docComment" : "crosshairs color (defaults to ImPlotCol_PlotBorder)", + "qualType" : "ImPlotCol_", + "order" : 23 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 10396, + "name" : "ImPlotCol_COUNT", + "qualType" : "ImPlotCol_", + "order" : 24 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 10448, + "name" : "ImPlotStyleVar_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 10418, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 10418, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 10418, + "text" : " Plot styling variables." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 10500, + "name" : "ImPlotStyleVar_LineWeight", + "docComment" : "float, plot item line weight in pixels", + "qualType" : "ImPlotStyleVar_", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 10582, + "name" : "ImPlotStyleVar_Marker", + "docComment" : "int, marker specification", + "qualType" : "ImPlotStyleVar_", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 10653, + "name" : "ImPlotStyleVar_MarkerSize", + "docComment" : "float, marker size in pixels (roughly the marker's \"radius\")", + "qualType" : "ImPlotStyleVar_", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 10757, + "name" : "ImPlotStyleVar_MarkerWeight", + "docComment" : "float, plot outline weight of markers in pixels", + "qualType" : "ImPlotStyleVar_", + "order" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 10848, + "name" : "ImPlotStyleVar_FillAlpha", + "docComment" : "float, alpha modifier applied to all plot item fills", + "qualType" : "ImPlotStyleVar_", + "order" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 10944, + "name" : "ImPlotStyleVar_ErrorBarSize", + "docComment" : "float, error bar whisker width in pixels", + "qualType" : "ImPlotStyleVar_", + "order" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 11028, + "name" : "ImPlotStyleVar_ErrorBarWeight", + "docComment" : "float, error bar whisker weight in pixels", + "qualType" : "ImPlotStyleVar_", + "order" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 11113, + "name" : "ImPlotStyleVar_DigitalBitHeight", + "docComment" : "float, digital channels bit height (at 1) in pixels", + "qualType" : "ImPlotStyleVar_", + "order" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 11208, + "name" : "ImPlotStyleVar_DigitalBitGap", + "docComment" : "float, digital channels bit padding gap in pixels", + "qualType" : "ImPlotStyleVar_", + "order" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 11331, + "name" : "ImPlotStyleVar_PlotBorderSize", + "docComment" : "float, thickness of border around plot area", + "qualType" : "ImPlotStyleVar_", + "order" : 9 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 11418, + "name" : "ImPlotStyleVar_MinorAlpha", + "docComment" : "float, alpha multiplier applied to minor axis grid lines", + "qualType" : "ImPlotStyleVar_", + "order" : 10 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 11518, + "name" : "ImPlotStyleVar_MajorTickLen", + "docComment" : "ImVec2, major tick lengths for X and Y axes", + "qualType" : "ImPlotStyleVar_", + "order" : 11 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 11604, + "name" : "ImPlotStyleVar_MinorTickLen", + "docComment" : "ImVec2, minor tick lengths for X and Y axes", + "qualType" : "ImPlotStyleVar_", + "order" : 12 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 11690, + "name" : "ImPlotStyleVar_MajorTickSize", + "docComment" : "ImVec2, line thickness of major ticks", + "qualType" : "ImPlotStyleVar_", + "order" : 13 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 11770, + "name" : "ImPlotStyleVar_MinorTickSize", + "docComment" : "ImVec2, line thickness of minor ticks", + "qualType" : "ImPlotStyleVar_", + "order" : 14 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 11850, + "name" : "ImPlotStyleVar_MajorGridSize", + "docComment" : "ImVec2, line thickness of major grid lines", + "qualType" : "ImPlotStyleVar_", + "order" : 15 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 11935, + "name" : "ImPlotStyleVar_MinorGridSize", + "docComment" : "ImVec2, line thickness of minor grid lines", + "qualType" : "ImPlotStyleVar_", + "order" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 12020, + "name" : "ImPlotStyleVar_PlotPadding", + "docComment" : "ImVec2, padding between widget frame and plot area, labels, or outside legends (i.e. main padding)", + "qualType" : "ImPlotStyleVar_", + "order" : 17 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 12161, + "name" : "ImPlotStyleVar_LabelPadding", + "docComment" : "ImVec2, padding between axes labels, tick labels, and plot edge", + "qualType" : "ImPlotStyleVar_", + "order" : 18 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 12267, + "name" : "ImPlotStyleVar_LegendPadding", + "docComment" : "ImVec2, legend padding from plot edges", + "qualType" : "ImPlotStyleVar_", + "order" : 19 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 12348, + "name" : "ImPlotStyleVar_LegendInnerPadding", + "docComment" : "ImVec2, legend inner padding from legend edges", + "qualType" : "ImPlotStyleVar_", + "order" : 20 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 12437, + "name" : "ImPlotStyleVar_LegendSpacing", + "docComment" : "ImVec2, spacing between legend entries", + "qualType" : "ImPlotStyleVar_", + "order" : 21 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 12518, + "name" : "ImPlotStyleVar_MousePosPadding", + "docComment" : "ImVec2, padding between plot edge and interior info text", + "qualType" : "ImPlotStyleVar_", + "order" : 22 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 12617, + "name" : "ImPlotStyleVar_AnnotationPadding", + "docComment" : "ImVec2, text padding around annotation labels", + "qualType" : "ImPlotStyleVar_", + "order" : 23 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 12705, + "name" : "ImPlotStyleVar_FitPadding", + "docComment" : "ImVec2, additional fit padding as a percentage of the fit extents (e.g. ImVec2(0.1f,0.1f) adds 10% to the fit extents of X and Y)", + "qualType" : "ImPlotStyleVar_", + "order" : 24 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 12877, + "name" : "ImPlotStyleVar_PlotDefaultSize", + "docComment" : "ImVec2, default size used when ImVec2(0,0) is passed to BeginPlot", + "qualType" : "ImPlotStyleVar_", + "order" : 25 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 12985, + "name" : "ImPlotStyleVar_PlotMinSize", + "docComment" : "ImVec2, minimum size plot frame can be when shrunk", + "qualType" : "ImPlotStyleVar_", + "order" : 26 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 13078, + "name" : "ImPlotStyleVar_COUNT", + "qualType" : "ImPlotStyleVar_", + "order" : 27 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 13134, + "name" : "ImPlotMarker_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 13105, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 13105, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 13105, + "text" : " Marker specifications." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 13154, + "name" : "ImPlotMarker_None", + "docComment" : "no marker", + "qualType" : "ImPlotMarker_", + "order" : -1, + "value" : "-1", + "evaluatedValue" : "-1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 13195, + "name" : "ImPlotMarker_Circle", + "docComment" : "a circle marker", + "qualType" : "ImPlotMarker_", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 13242, + "name" : "ImPlotMarker_Square", + "docComment" : "a square maker", + "qualType" : "ImPlotMarker_", + "order" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 13288, + "name" : "ImPlotMarker_Diamond", + "docComment" : "a diamond marker", + "qualType" : "ImPlotMarker_", + "order" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 13336, + "name" : "ImPlotMarker_Up", + "docComment" : "an upward-pointing triangle marker", + "qualType" : "ImPlotMarker_", + "order" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 13402, + "name" : "ImPlotMarker_Down", + "docComment" : "an downward-pointing triangle marker", + "qualType" : "ImPlotMarker_", + "order" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 13470, + "name" : "ImPlotMarker_Left", + "docComment" : "an leftward-pointing triangle marker", + "qualType" : "ImPlotMarker_", + "order" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 13538, + "name" : "ImPlotMarker_Right", + "docComment" : "an rightward-pointing triangle marker", + "qualType" : "ImPlotMarker_", + "order" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 13607, + "name" : "ImPlotMarker_Cross", + "docComment" : "a cross marker (not fillable)", + "qualType" : "ImPlotMarker_", + "order" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 13668, + "name" : "ImPlotMarker_Plus", + "docComment" : "a plus marker (not fillable)", + "qualType" : "ImPlotMarker_", + "order" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 13728, + "name" : "ImPlotMarker_Asterisk", + "docComment" : "a asterisk marker (not fillable)", + "qualType" : "ImPlotMarker_", + "order" : 9 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 13792, + "name" : "ImPlotMarker_COUNT", + "qualType" : "ImPlotMarker_", + "order" : 10 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 13842, + "name" : "ImPlotColormap_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 13817, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 13817, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 13817, + "text" : " Built-in colormaps" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 13864, + "name" : "ImPlotColormap_Deep", + "docComment" : "a.k.a. seaborn deep (qual=true, n=10) (default)", + "qualType" : "ImPlotColormap_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 13963, + "name" : "ImPlotColormap_Dark", + "docComment" : "a.k.a. matplotlib \"Set1\" (qual=true, n=9 )", + "qualType" : "ImPlotColormap_", + "order" : 1, + "value" : "1", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 14052, + "name" : "ImPlotColormap_Pastel", + "docComment" : "a.k.a. matplotlib \"Pastel1\" (qual=true, n=9 )", + "qualType" : "ImPlotColormap_", + "order" : 2, + "value" : "2", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 14141, + "name" : "ImPlotColormap_Paired", + "docComment" : "a.k.a. matplotlib \"Paired\" (qual=true, n=12)", + "qualType" : "ImPlotColormap_", + "order" : 3, + "value" : "3", + "evaluatedValue" : "3" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 14230, + "name" : "ImPlotColormap_Viridis", + "docComment" : "a.k.a. matplotlib \"viridis\" (qual=false, n=11)", + "qualType" : "ImPlotColormap_", + "order" : 4, + "value" : "4", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 14319, + "name" : "ImPlotColormap_Plasma", + "docComment" : "a.k.a. matplotlib \"plasma\" (qual=false, n=11)", + "qualType" : "ImPlotColormap_", + "order" : 5, + "value" : "5", + "evaluatedValue" : "5" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 14408, + "name" : "ImPlotColormap_Hot", + "docComment" : "a.k.a. matplotlib/MATLAB \"hot\" (qual=false, n=11)", + "qualType" : "ImPlotColormap_", + "order" : 6, + "value" : "6", + "evaluatedValue" : "6" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 14497, + "name" : "ImPlotColormap_Cool", + "docComment" : "a.k.a. matplotlib/MATLAB \"cool\" (qual=false, n=11)", + "qualType" : "ImPlotColormap_", + "order" : 7, + "value" : "7", + "evaluatedValue" : "7" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 14586, + "name" : "ImPlotColormap_Pink", + "docComment" : "a.k.a. matplotlib/MATLAB \"pink\" (qual=false, n=11)", + "qualType" : "ImPlotColormap_", + "order" : 8, + "value" : "8", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 14675, + "name" : "ImPlotColormap_Jet", + "docComment" : "a.k.a. MATLAB \"jet\" (qual=false, n=11)", + "qualType" : "ImPlotColormap_", + "order" : 9, + "value" : "9", + "evaluatedValue" : "9" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 14764, + "name" : "ImPlotColormap_Twilight", + "docComment" : "a.k.a. matplotlib \"twilight\" (qual=false, n=11)", + "qualType" : "ImPlotColormap_", + "order" : 10, + "value" : "10", + "evaluatedValue" : "10" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 14853, + "name" : "ImPlotColormap_RdBu", + "docComment" : "red/blue, Color Brewer (qual=false, n=11)", + "qualType" : "ImPlotColormap_", + "order" : 11, + "value" : "11", + "evaluatedValue" : "11" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 14942, + "name" : "ImPlotColormap_BrBG", + "docComment" : "brown/blue-green, Color Brewer (qual=false, n=11)", + "qualType" : "ImPlotColormap_", + "order" : 12, + "value" : "12", + "evaluatedValue" : "12" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 15031, + "name" : "ImPlotColormap_PiYG", + "docComment" : "pink/yellow-green, Color Brewer (qual=false, n=11)", + "qualType" : "ImPlotColormap_", + "order" : 13, + "value" : "13", + "evaluatedValue" : "13" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 15120, + "name" : "ImPlotColormap_Spectral", + "docComment" : "color spectrum, Color Brewer (qual=false, n=11)", + "qualType" : "ImPlotColormap_", + "order" : 14, + "value" : "14", + "evaluatedValue" : "14" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 15209, + "name" : "ImPlotColormap_Greys", + "docComment" : "white/black (qual=false, n=2 )", + "qualType" : "ImPlotColormap_", + "order" : 15, + "value" : "15", + "evaluatedValue" : "15" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 15368, + "name" : "ImPlotLocation_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 15300, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 15300, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 15300, + "text" : " Used to position items on a plot (e.g. legends, labels, etc.)" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 15390, + "name" : "ImPlotLocation_Center", + "docComment" : "center-center", + "qualType" : "ImPlotLocation_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 15482, + "name" : "ImPlotLocation_North", + "docComment" : "top-center", + "qualType" : "ImPlotLocation_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 15571, + "name" : "ImPlotLocation_South", + "docComment" : "bottom-center", + "qualType" : "ImPlotLocation_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : "2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 15663, + "name" : "ImPlotLocation_West", + "docComment" : "center-left", + "qualType" : "ImPlotLocation_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : "4" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 15753, + "name" : "ImPlotLocation_East", + "docComment" : "center-right", + "qualType" : "ImPlotLocation_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : "8" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 15844, + "name" : "ImPlotLocation_NorthWest", + "docComment" : "top-left", + "qualType" : "ImPlotLocation_", + "order" : 5, + "value" : "ImPlotLocation_North | ImPlotLocation_West", + "evaluatedValue" : "5" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 15931, + "name" : "ImPlotLocation_NorthEast", + "docComment" : "top-right", + "qualType" : "ImPlotLocation_", + "order" : 6, + "value" : "ImPlotLocation_North | ImPlotLocation_East", + "evaluatedValue" : "9" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 16019, + "name" : "ImPlotLocation_SouthWest", + "docComment" : "bottom-left", + "qualType" : "ImPlotLocation_", + "order" : 7, + "value" : "ImPlotLocation_South | ImPlotLocation_West", + "evaluatedValue" : "6" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 16109, + "name" : "ImPlotLocation_SouthEast", + "docComment" : "bottom-right", + "qualType" : "ImPlotLocation_", + "order" : 8, + "value" : "ImPlotLocation_South | ImPlotLocation_East", + "evaluatedValue" : "10" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 16268, + "name" : "ImPlotOrientation_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 16202, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 16202, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 16202, + "text" : " Used to orient items on a plot (e.g. legends, labels, etc.)" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 16293, + "name" : "ImPlotOrientation_Horizontal", + "docComment" : "left/right", + "qualType" : "ImPlotOrientation_", + "order" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 16341, + "name" : "ImPlotOrientation_Vertical", + "docComment" : "up/down", + "qualType" : "ImPlotOrientation_", + "order" : 1 + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 16422, + "name" : "ImPlotYAxis_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 16388, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 16388, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 16388, + "text" : " Enums for different y-axes." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 16441, + "name" : "ImPlotYAxis_1", + "docComment" : "left (default)", + "qualType" : "ImPlotYAxis_", + "order" : 0, + "value" : "0", + "evaluatedValue" : "0" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 16482, + "name" : "ImPlotYAxis_2", + "docComment" : "first on right side", + "qualType" : "ImPlotYAxis_", + "order" : 1, + "value" : "1", + "evaluatedValue" : "1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 16528, + "name" : "ImPlotYAxis_3", + "docComment" : "second on right side", + "qualType" : "ImPlotYAxis_", + "order" : 2, + "value" : "2", + "evaluatedValue" : "2" + } ] + }, { + "@type" : "AstEnumDecl", + "offset" : 16672, + "name" : "ImPlotBin_", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 16577, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 16577, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 16577, + "text" : " Enums for different automatic histogram binning methods (k = bin count or w = bin width)" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 16689, + "name" : "ImPlotBin_Sqrt", + "docComment" : "k = sqrt(n)", + "qualType" : "ImPlotBin_", + "order" : -1, + "value" : "-1", + "evaluatedValue" : "-1" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 16732, + "name" : "ImPlotBin_Sturges", + "docComment" : "k = 1 + log2(n)", + "qualType" : "ImPlotBin_", + "order" : -2, + "value" : "-2", + "evaluatedValue" : "-2" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 16779, + "name" : "ImPlotBin_Rice", + "docComment" : "k = 2 * cbrt(n)", + "qualType" : "ImPlotBin_", + "order" : -1, + "value" : "-3", + "evaluatedValue" : "-3" + }, { + "@type" : "AstEnumConstantDecl", + "offset" : 16826, + "name" : "ImPlotBin_Scott", + "docComment" : "w = 3.49 * sigma / cbrt(n)", + "qualType" : "ImPlotBin_", + "order" : -4, + "value" : "-4", + "evaluatedValue" : "-4" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 16970, + "name" : "ImPlotPoint", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 16886, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 16886, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 16886, + "text" : " Double precision version of ImVec2 used by ImPlot. Extensible by end users." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 16995, + "name" : "x", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstFieldDecl", + "offset" : 16998, + "name" : "y", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstFunctionDecl", + "offset" : 17198, + "name" : "operator[]", + "resultType" : "double", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 17217, + "name" : "idx", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 17262, + "name" : "operator[]", + "resultType" : "double &", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 17281, + "name" : "idx", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 17642, + "name" : "ImPlotRange", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 17571, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 17571, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 17571, + "text" : " A range defined by a min/max value. Used for plot axes ranges." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 17667, + "name" : "Min", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstFieldDecl", + "offset" : 17672, + "name" : "Max", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstFunctionDecl", + "offset" : 17820, + "name" : "Contains", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 17836, + "name" : "value", + "qualType" : "double", + "desugaredQualType" : "double" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 17906, + "name" : "Size", + "resultType" : "double" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 18018, + "name" : "ImPlotLimits", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 17966, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 17966, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 17966, + "text" : " Combination of two ranges for X and Y axes." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 18049, + "name" : "X", + "qualType" : "ImPlotRange", + "desugaredQualType" : "ImPlotRange" + }, { + "@type" : "AstFieldDecl", + "offset" : 18052, + "name" : "Y", + "qualType" : "ImPlotRange", + "desugaredQualType" : "ImPlotRange" + }, { + "@type" : "AstFunctionDecl", + "offset" : 18280, + "name" : "Contains", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 18308, + "name" : "p", + "qualType" : "const ImPlotPoint &", + "desugaredQualType" : "const ImPlotPoint &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 18385, + "name" : "Contains", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 18401, + "name" : "x", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "offset" : 18411, + "name" : "y", + "qualType" : "double", + "desugaredQualType" : "double" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 18509, + "name" : "Min", + "resultType" : "ImPlotPoint" + }, { + "@type" : "AstFunctionDecl", + "offset" : 18621, + "name" : "Max", + "resultType" : "ImPlotPoint" + } ] + }, { + "@type" : "AstRecordDecl", + "offset" : 18752, + "name" : "ImPlotStyle", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 18723, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 18723, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 18723, + "text" : " Plot style structure" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "offset" : 18808, + "name" : "LineWeight", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 18885, + "name" : "Marker", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 18967, + "name" : "MarkerSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 19071, + "name" : "MarkerWeight", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 19157, + "name" : "FillAlpha", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 19244, + "name" : "ErrorBarSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 19328, + "name" : "ErrorBarWeight", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 19413, + "name" : "DigitalBitHeight", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 19515, + "name" : "DigitalBitGap", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 19638, + "name" : "PlotBorderSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 19730, + "name" : "MinorAlpha", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "offset" : 19830, + "name" : "MajorTickLen", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 19916, + "name" : "MinorTickLen", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 20002, + "name" : "MajorTickSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 20082, + "name" : "MinorTickSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 20162, + "name" : "MajorGridSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 20247, + "name" : "MinorGridSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 20332, + "name" : "PlotPadding", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 20473, + "name" : "LabelPadding", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 20579, + "name" : "LegendPadding", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 20660, + "name" : "LegendInnerPadding", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 20749, + "name" : "LegendSpacing", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 20830, + "name" : "MousePosPadding", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 20939, + "name" : "AnnotationPadding", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 21027, + "name" : "FitPadding", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 21199, + "name" : "PlotDefaultSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 21307, + "name" : "PlotMinSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 21420, + "name" : "Colors", + "qualType" : "int[24]", + "desugaredQualType" : "int[24]" + }, { + "@type" : "AstFieldDecl", + "offset" : 21541, + "name" : "Colormap", + "qualType" : "ImPlotColormap", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "offset" : 21698, + "name" : "AntiAliasedLines", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 21826, + "name" : "UseLocalTime", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 21960, + "name" : "UseISO8601", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "offset" : 22115, + "name" : "Use24HourClock", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstNamespaceDecl", + "offset" : 22427, + "name" : "ImPlot", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 22235, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 22235, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 22235, + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "offset" : 22315, + "text" : " ImPlot End-User API" + }, { + "@type" : "AstTextComment", + "offset" : 22338, + "text" : "-----------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 22713, + "name" : "CreateContext", + "resultType" : "ImPlotContext *", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 22618, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 22618, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 22618, + "text" : " Creates a new ImPlot context. Call this after ImGui::CreateContext." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 22849, + "name" : "DestroyContext", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 22732, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 22732, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 22732, + "text" : " Destroys an ImPlot context. Call this before ImGui::DestroyContext. NULL = destroy current context." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 22879, + "name" : "ctx", + "qualType" : "ImPlotContext *", + "desugaredQualType" : "ImPlotContext *", + "defaultValue" : "=" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 22989, + "name" : "GetCurrentContext", + "resultType" : "ImPlotContext *", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 22894, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 22894, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 22894, + "text" : " Returns the current ImPlot context. NULL if no context has ben set." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 23062, + "name" : "SetCurrentContext", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 23012, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 23012, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 23012, + "text" : " Sets the current ImPlot context." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 23095, + "name" : "ctx", + "qualType" : "ImPlotContext *", + "desugaredQualType" : "ImPlotContext *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 23417, + "name" : "SetImGuiContext", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 23104, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 23104, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 23104, + "text" : " Sets the current **ImGui** context. This is ONLY necessary if you are compiling" + }, { + "@type" : "AstTextComment", + "offset" : 23187, + "text" : " ImPlot as a DLL (not recommended) separate from your ImGui compilation. It" + }, { + "@type" : "AstTextComment", + "offset" : 23265, + "text" : " sets the global variable GImGui, which is not shared across DLL boundaries." + }, { + "@type" : "AstTextComment", + "offset" : 23344, + "text" : " See GImGui documentation in imgui.cpp for more details." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 23447, + "name" : "ctx", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 24550, + "name" : "BeginPlot", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 23635, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 23635, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 23635, + "text" : " Starts a 2D plotting context. If this function returns true, EndPlot() MUST" + }, { + "@type" : "AstTextComment", + "offset" : 23714, + "text" : " be called! You are encouraged to use the following convention:" + } ] + }, { + "@type" : "AstParagraphComment", + "offset" : 23783, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 23783, + "text" : " if (BeginPlot(...)) {" + }, { + "@type" : "AstTextComment", + "offset" : 23808, + "text" : " ImPlot::PlotLine(...);" + }, { + "@type" : "AstTextComment", + "offset" : 23838, + "text" : " ..." + }, { + "@type" : "AstTextComment", + "offset" : 23849, + "text" : " EndPlot();" + }, { + "@type" : "AstTextComment", + "offset" : 23867, + "text" : " }" + } ] + }, { + "@type" : "AstParagraphComment", + "offset" : 23875, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 23875, + "text" : " Important notes:" + } ] + }, { + "@type" : "AstParagraphComment", + "offset" : 23898, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 23898, + "text" : " - #title_id must be unique to the current ImGui ID scope. If you need to avoid ID" + }, { + "@type" : "AstTextComment", + "offset" : 23983, + "text" : " collisions or don't want to display a title in the plot, use double hashes" + }, { + "@type" : "AstTextComment", + "offset" : 24063, + "text" : " (e.g. \"MyPlot##HiddenIdText\" or \"##NoTitle\")." + }, { + "@type" : "AstTextComment", + "offset" : 24114, + "text" : " - If #x_label and/or #y_label are provided, axes labels will be displayed." + }, { + "@type" : "AstTextComment", + "offset" : 24192, + "text" : " - #size is the **frame** size of the plot widget, not the plot area. The default" + }, { + "@type" : "AstTextComment", + "offset" : 24276, + "text" : " size of plots (i.e. when ImVec2(0,0)) can be modified in your ImPlotStyle" + }, { + "@type" : "AstTextComment", + "offset" : 24355, + "text" : " (default is 400x300 px)." + }, { + "@type" : "AstTextComment", + "offset" : 24385, + "text" : " - Auxiliary y-axes must be enabled with ImPlotFlags_YAxis2/3 to be displayed." + }, { + "@type" : "AstTextComment", + "offset" : 24466, + "text" : " - See ImPlotFlags and ImPlotAxisFlags for more available options." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 24572, + "name" : "title_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 24620, + "name" : "x_label", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "offset" : 24679, + "name" : "y_label", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "offset" : 24740, + "name" : "size", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "ImVec2(-1,0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 24805, + "name" : "flags", + "qualType" : "ImPlotFlags", + "desugaredQualType" : "int", + "defaultValue" : "ImPlotFlags_None" + }, { + "@type" : "AstParmVarDecl", + "offset" : 24880, + "name" : "x_flags", + "qualType" : "ImPlotAxisFlags", + "desugaredQualType" : "int", + "defaultValue" : "ImPlotAxisFlags_None" + }, { + "@type" : "AstParmVarDecl", + "offset" : 24955, + "name" : "y_flags", + "qualType" : "ImPlotAxisFlags", + "desugaredQualType" : "int", + "defaultValue" : "ImPlotAxisFlags_None" + }, { + "@type" : "AstParmVarDecl", + "offset" : 25030, + "name" : "y2_flags", + "qualType" : "ImPlotAxisFlags", + "desugaredQualType" : "int", + "defaultValue" : "ImPlotAxisFlags_NoGridLines" + }, { + "@type" : "AstParmVarDecl", + "offset" : 25112, + "name" : "y3_flags", + "qualType" : "ImPlotAxisFlags", + "desugaredQualType" : "int", + "defaultValue" : "ImPlotAxisFlags_NoGridLines" + }, { + "@type" : "AstParmVarDecl", + "offset" : 25190, + "name" : "y2_label", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "offset" : 25249, + "name" : "y3_label", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "=" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 25437, + "name" : "EndPlot", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 25274, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 25274, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 25274, + "text" : " Only call EndPlot() if BeginPlot() returns true! Typically called at the end" + }, { + "@type" : "AstTextComment", + "offset" : 25354, + "text" : " of an if statement conditioned on BeginPlot(). See example above." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 27472, + "name" : "BeginSubplots", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 25633, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 25633, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 25633, + "text" : " Starts a subdivided plotting context. If the function returns true," + }, { + "@type" : "AstTextComment", + "offset" : 25704, + "text" : " EndSubplots() MUST be called! Call BeginPlot/EndPlot AT MOST [rows*cols]" + }, { + "@type" : "AstTextComment", + "offset" : 25780, + "text" : " times in between the begining and end of the subplot context. Plots are" + }, { + "@type" : "AstTextComment", + "offset" : 25856, + "text" : " added in row major order." + } ] + }, { + "@type" : "AstParagraphComment", + "offset" : 25888, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 25888, + "text" : " Example:" + } ] + }, { + "@type" : "AstParagraphComment", + "offset" : 25903, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 25903, + "text" : " if (BeginSubplots(\"My Subplot\",2,3,ImVec2(800,400)) {" + }, { + "@type" : "AstTextComment", + "offset" : 25960, + "text" : " for (int i = 0; i " + }, { + "@type" : "AstTextComment", + "offset" : 25983, + "text" : "<" + }, { + "@type" : "AstTextComment", + "offset" : 25984, + "text" : " 6; ++i) {" + }, { + "@type" : "AstTextComment", + "offset" : 25997, + "text" : " if (BeginPlot(...)) {" + }, { + "@type" : "AstTextComment", + "offset" : 26030, + "text" : " ImPlot::PlotLine(...);" + }, { + "@type" : "AstTextComment", + "offset" : 26068, + "text" : " ..." + }, { + "@type" : "AstTextComment", + "offset" : 26087, + "text" : " EndPlot();" + }, { + "@type" : "AstTextComment", + "offset" : 26113, + "text" : " }" + }, { + "@type" : "AstTextComment", + "offset" : 26126, + "text" : " }" + }, { + "@type" : "AstTextComment", + "offset" : 26135, + "text" : " EndSubplots();" + }, { + "@type" : "AstTextComment", + "offset" : 26157, + "text" : " }" + } ] + }, { + "@type" : "AstParagraphComment", + "offset" : 26165, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 26165, + "text" : " Produces:" + } ] + }, { + "@type" : "AstParagraphComment", + "offset" : 26181, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 26181, + "text" : " [0][1][2]" + }, { + "@type" : "AstTextComment", + "offset" : 26194, + "text" : " [3][4][5]" + } ] + }, { + "@type" : "AstParagraphComment", + "offset" : 26210, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 26210, + "text" : " Important notes:" + } ] + }, { + "@type" : "AstParagraphComment", + "offset" : 26233, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 26233, + "text" : " - #title_id must be unique to the current ImGui ID scope. If you need to avoid ID" + }, { + "@type" : "AstTextComment", + "offset" : 26318, + "text" : " collisions or don't want to display a title in the plot, use double hashes" + }, { + "@type" : "AstTextComment", + "offset" : 26398, + "text" : " (e.g. \"MyPlot##HiddenIdText\" or \"##NoTitle\")." + }, { + "@type" : "AstTextComment", + "offset" : 26449, + "text" : " - #rows and #cols must be greater than 0." + }, { + "@type" : "AstTextComment", + "offset" : 26494, + "text" : " - #size is the size of the entire grid of subplots, not the individual plots" + }, { + "@type" : "AstTextComment", + "offset" : 26574, + "text" : " - #row_ratios and #col_ratios must have AT LEAST #rows and #cols elements," + }, { + "@type" : "AstTextComment", + "offset" : 26652, + "text" : " respectively. These are the sizes of the rows and columns expressed in ratios." + }, { + "@type" : "AstTextComment", + "offset" : 26736, + "text" : " If the user adjusts the dimensions, the arrays are updated with new ratios." + } ] + }, { + "@type" : "AstParagraphComment", + "offset" : 26820, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 26820, + "text" : " Important notes regarding BeginPlot from inside of BeginSubplots:" + } ] + }, { + "@type" : "AstParagraphComment", + "offset" : 26892, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 26892, + "text" : " - The #title_id parameter of _BeginPlot_ (see above) does NOT have to be" + }, { + "@type" : "AstTextComment", + "offset" : 26968, + "text" : " unique when called inside of a subplot context. Subplot IDs are hashed" + }, { + "@type" : "AstTextComment", + "offset" : 27044, + "text" : " for your convenience so you don't have call PushID or generate unique title" + }, { + "@type" : "AstTextComment", + "offset" : 27125, + "text" : " strings. Simply pass an empty string to BeginPlot unless you want to title" + }, { + "@type" : "AstTextComment", + "offset" : 27205, + "text" : " each subplot." + }, { + "@type" : "AstTextComment", + "offset" : 27224, + "text" : " - The #size parameter of _BeginPlot_ (see above) is ignored when inside of a" + }, { + "@type" : "AstTextComment", + "offset" : 27304, + "text" : " subplot context. The actual size of the subplot will be based on the" + }, { + "@type" : "AstTextComment", + "offset" : 27378, + "text" : " #size value you pass to _BeginSubplots_ and #row/#col_ratios if provided." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 27498, + "name" : "title_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 27541, + "name" : "rows", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 27580, + "name" : "cols", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 27629, + "name" : "size", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 27683, + "name" : "flags", + "qualType" : "ImPlotSubplotFlags", + "desugaredQualType" : "int", + "defaultValue" : "ImPlotSubplotFlags_None" + }, { + "@type" : "AstParmVarDecl", + "offset" : 27752, + "name" : "row_ratios", + "qualType" : "float *", + "desugaredQualType" : "float *", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "offset" : 27814, + "name" : "col_ratios", + "qualType" : "float *", + "desugaredQualType" : "float *", + "defaultValue" : "=" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 28018, + "name" : "EndSubplots", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 27844, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 27844, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 27844, + "text" : " Only call EndSubplots() if BeginSubplots() returns true! Typically called at the end" + }, { + "@type" : "AstTextComment", + "offset" : 27932, + "text" : " of an if statement conditioned on BeginSublots(). See example above." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 30414, + "name" : "PlotLineG", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 30436, + "name" : "label_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 30460, + "name" : "getter", + "qualType" : "ImPlotPoint (*)(void *, int)", + "desugaredQualType" : "ImPlotPoint (*)(void *, int)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 30496, + "name" : "data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 30506, + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 30945, + "name" : "PlotScatterG", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 30970, + "name" : "label_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 30994, + "name" : "getter", + "qualType" : "ImPlotPoint (*)(void *, int)", + "desugaredQualType" : "ImPlotPoint (*)(void *, int)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 31030, + "name" : "data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 31040, + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 31540, + "name" : "PlotStairsG", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 31564, + "name" : "label_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 31588, + "name" : "getter", + "qualType" : "ImPlotPoint (*)(void *, int)", + "desugaredQualType" : "ImPlotPoint (*)(void *, int)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 31624, + "name" : "data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 31634, + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 32327, + "name" : "PlotShadedG", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 32351, + "name" : "label_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32375, + "name" : "getter1", + "qualType" : "ImPlotPoint (*)(void *, int)", + "desugaredQualType" : "ImPlotPoint (*)(void *, int)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32412, + "name" : "data1", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32433, + "name" : "getter2", + "qualType" : "ImPlotPoint (*)(void *, int)", + "desugaredQualType" : "ImPlotPoint (*)(void *, int)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32470, + "name" : "data2", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32481, + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 32919, + "name" : "PlotBarsG", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 32941, + "name" : "label_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 32965, + "name" : "getter", + "qualType" : "ImPlotPoint (*)(void *, int)", + "desugaredQualType" : "ImPlotPoint (*)(void *, int)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 33001, + "name" : "data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 33011, + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 33025, + "name" : "width", + "qualType" : "double", + "desugaredQualType" : "double" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 33470, + "name" : "PlotBarsHG", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 33493, + "name" : "label_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 33517, + "name" : "getter", + "qualType" : "ImPlotPoint (*)(void *, int)", + "desugaredQualType" : "ImPlotPoint (*)(void *, int)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 33553, + "name" : "data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 33563, + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 33577, + "name" : "height", + "qualType" : "double", + "desugaredQualType" : "double" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 37979, + "name" : "PlotDigitalG", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 38004, + "name" : "label_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 38028, + "name" : "getter", + "qualType" : "ImPlotPoint (*)(void *, int)", + "desugaredQualType" : "ImPlotPoint (*)(void *, int)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 38064, + "name" : "data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 38074, + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 38235, + "name" : "PlotImage", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 38085, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 38085, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 38085, + "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" : "AstParmVarDecl", + "offset" : 38257, + "name" : "label_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 38279, + "name" : "user_texture_id", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 38315, + "name" : "bounds_min", + "qualType" : "const ImPlotPoint &", + "desugaredQualType" : "const ImPlotPoint &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 38346, + "name" : "bounds_max", + "qualType" : "const ImPlotPoint &", + "desugaredQualType" : "const ImPlotPoint &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 38372, + "name" : "uv0", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "ImVec2(0,0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 38403, + "name" : "uv1", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "ImVec2(1,1)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 38434, + "name" : "tint_col", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "ImVec4(1,1,1,1)" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 38634, + "name" : "PlotText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 38464, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 38464, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 38464, + "text" : " Plots a centered text label at point x,y with an optional pixel offset. Text color can be changed with ImPlot::PushStyleColor(ImPlotCol_InlayText, ...)." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 38655, + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 38668, + "name" : "x", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "offset" : 38678, + "name" : "y", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "offset" : 38686, + "name" : "vertical", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + }, { + "@type" : "AstParmVarDecl", + "offset" : 38716, + "name" : "pix_offset", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "ImVec2(0,0)" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 38833, + "name" : "PlotDummy", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 38744, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 38744, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 38744, + "text" : " Plots a dummy item (i.e. adds a legend entry colored by ImPlotCol_Line)" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 38855, + "name" : "label_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 39258, + "name" : "SetNextPlotLimits", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 39105, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 39105, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 39105, + "text" : " Set the axes range limits of the next plot. Call right before BeginPlot(). If ImGuiCond_Always is used, the axes limits will be locked." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 39283, + "name" : "xmin", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "offset" : 39296, + "name" : "xmax", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "offset" : 39309, + "name" : "ymin", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "offset" : 39322, + "name" : "ymax", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "offset" : 39338, + "name" : "cond", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "=" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 39521, + "name" : "SetNextPlotLimitsX", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 39364, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 39364, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 39364, + "text" : " Set the X axis range limits of the next plot. Call right before BeginPlot(). If ImGuiCond_Always is used, the X axis limits will be locked." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 39547, + "name" : "xmin", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "offset" : 39560, + "name" : "xmax", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "offset" : 39576, + "name" : "cond", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "=" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 39759, + "name" : "SetNextPlotLimitsY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 39602, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 39602, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 39602, + "text" : " Set the Y axis range limits of the next plot. Call right before BeginPlot(). If ImGuiCond_Always is used, the Y axis limits will be locked." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 39785, + "name" : "ymin", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "offset" : 39798, + "name" : "ymax", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "offset" : 39814, + "name" : "cond", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "offset" : 39849, + "name" : "y_axis", + "qualType" : "ImPlotYAxis", + "desugaredQualType" : "int", + "defaultValue" : "ImPlotYAxis_1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 40039, + "name" : "LinkNextPlotLimits", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 39876, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 39876, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 39876, + "text" : " Links the next plot limits to external values. Set to NULL for no linkage. The pointer data must remain valid until the matching call to EndPlot." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 40066, + "name" : "xmin", + "qualType" : "double *", + "desugaredQualType" : "double *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 40080, + "name" : "xmax", + "qualType" : "double *", + "desugaredQualType" : "double *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 40094, + "name" : "ymin", + "qualType" : "double *", + "desugaredQualType" : "double *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 40108, + "name" : "ymax", + "qualType" : "double *", + "desugaredQualType" : "double *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 40122, + "name" : "ymin2", + "qualType" : "double *", + "desugaredQualType" : "double *", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "offset" : 40144, + "name" : "ymax2", + "qualType" : "double *", + "desugaredQualType" : "double *", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "offset" : 40166, + "name" : "ymin3", + "qualType" : "double *", + "desugaredQualType" : "double *", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "offset" : 40188, + "name" : "ymax3", + "qualType" : "double *", + "desugaredQualType" : "double *", + "defaultValue" : "=" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 40318, + "name" : "FitNextPlotAxes", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 40205, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 40205, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 40205, + "text" : " Fits the next plot axes to all plotted data if they are unlocked (equivalent to double-clicks)." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 40339, + "name" : "x", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + }, { + "@type" : "AstParmVarDecl", + "offset" : 40354, + "name" : "y", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + }, { + "@type" : "AstParmVarDecl", + "offset" : 40369, + "name" : "y2", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + }, { + "@type" : "AstParmVarDecl", + "offset" : 40385, + "name" : "y3", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 40534, + "name" : "SetNextPlotTicksX", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 40400, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 40400, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 40400, + "text" : " Set the X axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 40566, + "name" : "values", + "qualType" : "const double *", + "desugaredQualType" : "const double *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 40578, + "name" : "n_ticks", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 40605, + "name" : "labels", + "qualType" : "const char *const *", + "desugaredQualType" : "const char *const *", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "offset" : 40627, + "name" : "keep_default", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 40666, + "name" : "SetNextPlotTicksX", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 40691, + "name" : "x_min", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "offset" : 40705, + "name" : "x_max", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "offset" : 40716, + "name" : "n_ticks", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 40743, + "name" : "labels", + "qualType" : "const char *const *", + "desugaredQualType" : "const char *const *", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "offset" : 40765, + "name" : "keep_default", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 40924, + "name" : "SetNextPlotTicksY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 40790, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 40790, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 40790, + "text" : " Set the Y axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 40956, + "name" : "values", + "qualType" : "const double *", + "desugaredQualType" : "const double *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 40968, + "name" : "n_ticks", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 40995, + "name" : "labels", + "qualType" : "const char *const *", + "desugaredQualType" : "const char *const *", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "offset" : 41017, + "name" : "keep_default", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + }, { + "@type" : "AstParmVarDecl", + "offset" : 41051, + "name" : "y_axis", + "qualType" : "ImPlotYAxis", + "desugaredQualType" : "int", + "defaultValue" : "ImPlotYAxis_1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 41092, + "name" : "SetNextPlotTicksY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 41117, + "name" : "y_min", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "offset" : 41131, + "name" : "y_max", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "offset" : 41142, + "name" : "n_ticks", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 41169, + "name" : "labels", + "qualType" : "const char *const *", + "desugaredQualType" : "const char *const *", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "offset" : 41191, + "name" : "keep_default", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + }, { + "@type" : "AstParmVarDecl", + "offset" : 41225, + "name" : "y_axis", + "qualType" : "ImPlotYAxis", + "desugaredQualType" : "int", + "defaultValue" : "ImPlotYAxis_1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 41441, + "name" : "SetNextPlotFormatX", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 41253, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 41253, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 41253, + "text" : " Set the format for numeric X axis labels (default=\"%g\"). Formated values will be doubles (i.e. don't supply %d, %i, etc.). Not applicable if ImPlotAxisFlags_Time enabled." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 41472, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 41620, + "name" : "SetNextPlotFormatY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 41480, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 41480, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 41480, + "text" : " Set the format for numeric Y axis labels (default=\"%g\"). Formated values will be doubles (i.e. don't supply %d, %i, etc.)." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 41651, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 41668, + "name" : "y_axis", + "qualType" : "ImPlotYAxis", + "desugaredQualType" : "int", + "defaultValue" : "ImPlotYAxis_1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 41947, + "name" : "SetPlotYAxis", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 41760, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 41760, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 41760, + "text" : " Select which Y axis will be used for subsequent plot elements. The default is ImPlotYAxis_1, or the first (left) Y axis. Enable 2nd and 3rd axes with ImPlotFlags_YAxisX." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 41972, + "name" : "y_axis", + "qualType" : "ImPlotYAxis", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 42149, + "name" : "HideNextItem", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 41983, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 41983, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 41983, + "text" : " Hides or shows the next plot item (i.e. as if it were toggled from the legend). Use ImGuiCond_Always if you need to forcefully set this every frame." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 42167, + "name" : "hidden", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + }, { + "@type" : "AstParmVarDecl", + "offset" : 42192, + "name" : "cond", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "=" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 42397, + "name" : "PixelsToPlot", + "resultType" : "ImPlotPoint", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 42219, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 42219, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 42219, + "text" : " Convert pixels to a position in the current plot's coordinate system. A negative y_axis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially)." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 42424, + "name" : "pix", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 42441, + "name" : "y_axis", + "qualType" : "ImPlotYAxis", + "desugaredQualType" : "int", + "defaultValue" : "IMPLOT_AUTO" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 42487, + "name" : "PixelsToPlot", + "resultType" : "ImPlotPoint", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 42506, + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 42515, + "name" : "y", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 42530, + "name" : "y_axis", + "qualType" : "ImPlotYAxis", + "desugaredQualType" : "int", + "defaultValue" : "IMPLOT_AUTO" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 42728, + "name" : "PlotToPixels", + "resultType" : "int", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 42555, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 42555, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 42555, + "text" : " Convert a position in the current plot's coordinate system to pixels. A negative y_axis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially)." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 42760, + "name" : "plt", + "qualType" : "const ImPlotPoint &", + "desugaredQualType" : "const ImPlotPoint &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 42777, + "name" : "y_axis", + "qualType" : "ImPlotYAxis", + "desugaredQualType" : "int", + "defaultValue" : "IMPLOT_AUTO" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 42818, + "name" : "PlotToPixels", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 42838, + "name" : "x", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "offset" : 42848, + "name" : "y", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "offset" : 42863, + "name" : "y_axis", + "qualType" : "ImPlotYAxis", + "desugaredQualType" : "int", + "defaultValue" : "IMPLOT_AUTO" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 42959, + "name" : "GetPlotPos", + "resultType" : "int", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 42888, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 42888, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 42888, + "text" : " Get the current Plot position (top-left) in pixels." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 43030, + "name" : "GetPlotSize", + "resultType" : "int", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 42975, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 42975, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 42975, + "text" : " Get the curent Plot size in pixels." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 43126, + "name" : "IsPlotHovered", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 43047, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 43047, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 43047, + "text" : " Returns true if the plot area in the current plot is hovered." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 43230, + "name" : "IsPlotXAxisHovered", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 43145, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 43145, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 43145, + "text" : " Returns true if the XAxis plot area in the current plot is hovered." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 43342, + "name" : "IsPlotYAxisHovered", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 43254, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 43254, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 43254, + "text" : " Returns true if the YAxis[n] plot area in the current plot is hovered." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 43373, + "name" : "y_axis", + "qualType" : "ImPlotYAxis", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 43563, + "name" : "GetPlotMousePos", + "resultType" : "ImPlotPoint", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 43388, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 43388, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 43388, + "text" : " Returns the mouse position in x,y coordinates of the current plot. A negative y_axis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially)." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 43591, + "name" : "y_axis", + "qualType" : "ImPlotYAxis", + "desugaredQualType" : "int", + "defaultValue" : "IMPLOT_AUTO" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 43762, + "name" : "GetPlotLimits", + "resultType" : "ImPlotLimits", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 43616, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 43616, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 43616, + "text" : " Returns the current plot axis range. A negative y_axis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially)." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 43788, + "name" : "y_axis", + "qualType" : "ImPlotYAxis", + "desugaredQualType" : "int", + "defaultValue" : "IMPLOT_AUTO" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 43887, + "name" : "IsPlotSelected", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 43814, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 43814, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 43814, + "text" : " Returns true if the current plot is being box selected." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 43979, + "name" : "GetPlotSelection", + "resultType" : "ImPlotLimits", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 43907, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 43907, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 43907, + "text" : " Returns the current plot box selection bounds." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 44008, + "name" : "y_axis", + "qualType" : "ImPlotYAxis", + "desugaredQualType" : "int", + "defaultValue" : "IMPLOT_AUTO" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 44171, + "name" : "IsPlotQueried", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 44034, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 44034, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 44034, + "text" : " Returns true if the current plot is being queried or has an active query. Query must be enabled with ImPlotFlags_Query." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 44300, + "name" : "GetPlotQuery", + "resultType" : "ImPlotLimits", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 44190, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 44190, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 44190, + "text" : " Returns the current plot query bounds. Query must be enabled with ImPlotFlags_Query." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 44325, + "name" : "y_axis", + "qualType" : "ImPlotYAxis", + "desugaredQualType" : "int", + "defaultValue" : "IMPLOT_AUTO" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 44448, + "name" : "SetPlotQuery", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 44350, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 44350, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 44350, + "text" : " Set the current plot query bounds. Query must be enabled with ImPlotFlags_Query." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 44481, + "name" : "query", + "qualType" : "const ImPlotLimits &", + "desugaredQualType" : "const ImPlotLimits &" + }, { + "@type" : "AstParmVarDecl", + "offset" : 44500, + "name" : "y_axis", + "qualType" : "ImPlotYAxis", + "desugaredQualType" : "int", + "defaultValue" : "IMPLOT_AUTO" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 44603, + "name" : "IsSubplotsHovered", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 44526, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 44526, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 44526, + "text" : " Returns true if the bounding frame of a subplot is hovered/" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 45167, + "name" : "BeginAlignedPlots", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 44993, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 44993, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 44993, + "text" : " Align axis padding over multiple plots in a single row or column. If this function returns true, EndAlignedPlots() must be called. #group_id must be unique." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 45197, + "name" : "group_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 45225, + "name" : "orientation", + "qualType" : "ImPlotOrientation", + "desugaredQualType" : "int", + "defaultValue" : "ImPlotOrientation_Vertical" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 45352, + "name" : "EndAlignedPlots", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 45270, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 45270, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 45270, + "text" : " Only call EndAlignedPlots() if BeginAlignedPlots() returns true!" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 47027, + "name" : "DragLineX", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 46925, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 46925, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 46925, + "text" : " Shows a draggable vertical guide line at an x-value. #col defaults to ImGuiCol_Text." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 47049, + "name" : "id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 47061, + "name" : "x_value", + "qualType" : "double *", + "desugaredQualType" : "double *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 47075, + "name" : "show_label", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + }, { + "@type" : "AstParmVarDecl", + "offset" : 47108, + "name" : "col", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "IMPLOT_AUTO_COL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 47137, + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 47258, + "name" : "DragLineY", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 47155, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 47155, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 47155, + "text" : " Shows a draggable horizontal guide line at a y-value. #col defaults to ImGuiCol_Text." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 47280, + "name" : "id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 47292, + "name" : "y_value", + "qualType" : "double *", + "desugaredQualType" : "double *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 47306, + "name" : "show_label", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + }, { + "@type" : "AstParmVarDecl", + "offset" : 47339, + "name" : "col", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "IMPLOT_AUTO_COL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 47368, + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 47467, + "name" : "DragPoint", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 47386, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 47386, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 47386, + "text" : " Shows a draggable point at x,y. #col defaults to ImGuiCol_Text." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 47489, + "name" : "id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 47501, + "name" : "x", + "qualType" : "double *", + "desugaredQualType" : "double *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 47512, + "name" : "y", + "qualType" : "double *", + "desugaredQualType" : "double *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 47520, + "name" : "show_label", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + }, { + "@type" : "AstParmVarDecl", + "offset" : 47553, + "name" : "col", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "IMPLOT_AUTO_COL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 47582, + "name" : "radius", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "4" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 47930, + "name" : "SetLegendLocation", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 47851, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 47851, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 47851, + "text" : " Set the location of the current plot's (or subplot's) legend." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 47963, + "name" : "location", + "qualType" : "ImPlotLocation", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 47991, + "name" : "orientation", + "qualType" : "ImPlotOrientation", + "desugaredQualType" : "int", + "defaultValue" : "ImPlotOrientation_Vertical" + }, { + "@type" : "AstParmVarDecl", + "offset" : 48038, + "name" : "outside", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 48158, + "name" : "SetMousePosLocation", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 48058, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 48058, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 48058, + "text" : " Set the location of the current plot's mouse position text (default = South|East)." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 48193, + "name" : "location", + "qualType" : "ImPlotLocation", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 48276, + "name" : "IsLegendEntryHovered", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 48206, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 48206, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 48206, + "text" : " Returns true if a plot item legend entry is hovered." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 48309, + "name" : "label_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 48374, + "name" : "BeginLegendPopup", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 48323, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 48323, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 48323, + "text" : " Begin a popup for a legend entry." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 48403, + "name" : "label_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 48430, + "name" : "mouse_button", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 48500, + "name" : "EndLegendPopup", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 48451, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 48451, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 48451, + "text" : " End a popup for a legend entry." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 48896, + "name" : "BeginDragDropTarget", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 48771, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 48771, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 48771, + "text" : " Turns the current plot's plotting area into a drag and drop target. Don't forget to call EndDragDropTarget!" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 49039, + "name" : "BeginDragDropTargetX", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 48921, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 48921, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 48921, + "text" : " Turns the current plot's X-axis into a drag and drop target. Don't forget to call EndDragDropTarget!" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 49183, + "name" : "BeginDragDropTargetY", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 49065, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 49065, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 49065, + "text" : " Turns the current plot's Y-Axis into a drag and drop target. Don't forget to call EndDragDropTarget!" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 49216, + "name" : "axis", + "qualType" : "ImPlotYAxis", + "desugaredQualType" : "int", + "defaultValue" : "ImPlotYAxis_1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 49359, + "name" : "BeginDragDropTargetLegend", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 49241, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 49241, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 49241, + "text" : " Turns the current plot's legend into a drag and drop target. Don't forget to call EndDragDropTarget!" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 49491, + "name" : "EndDragDropTarget", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 49390, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 49390, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 49390, + "text" : " Ends a drag and drop target (currently just an alias for ImGui::EndDragDropTarget)." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 49873, + "name" : "BeginDragDropSource", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 49748, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 49748, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 49748, + "text" : " Turns the current plot's plotting area into a drag and drop source. Don't forget to call EndDragDropSource!" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 49910, + "name" : "key_mods", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "offset" : 49963, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 50095, + "name" : "BeginDragDropSourceX", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 49977, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 49977, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 49977, + "text" : " Turns the current plot's X-axis into a drag and drop source. Don't forget to call EndDragDropSource!" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 50133, + "name" : "key_mods", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "offset" : 50186, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 50318, + "name" : "BeginDragDropSourceY", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 50200, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 50200, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 50200, + "text" : " Turns the current plot's Y-axis into a drag and drop source. Don't forget to call EndDragDropSource!" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 50351, + "name" : "axis", + "qualType" : "ImPlotYAxis", + "desugaredQualType" : "int", + "defaultValue" : "ImPlotYAxis_1" + }, { + "@type" : "AstParmVarDecl", + "offset" : 50390, + "name" : "key_mods", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "offset" : 50443, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 50584, + "name" : "BeginDragDropSourceItem", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 50457, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 50457, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 50457, + "text" : " Turns an item in the current plot's legend into drag and drop source. Don't forget to call EndDragDropSource!" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 50620, + "name" : "label_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 50649, + "name" : "flags", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 50764, + "name" : "EndDragDropSource", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 50663, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 50663, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 50663, + "text" : " Ends a drag and drop source (currently just an alias for ImGui::EndDragDropSource)." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 53071, + "name" : "GetStyle", + "resultType" : "ImPlotStyle &", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 52955, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 52955, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 52955, + "text" : " Provides access to plot style structure for permanant modifications to colors, sizes, etc." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 53156, + "name" : "StyleColorsAuto", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 53086, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 53086, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 53086, + "text" : " Style plot colors for current ImGui style (default)." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 53185, + "name" : "dst", + "qualType" : "ImPlotStyle *", + "desugaredQualType" : "ImPlotStyle *", + "defaultValue" : "=" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 53256, + "name" : "StyleColorsClassic", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 53200, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 53200, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 53200, + "text" : " Style plot colors for ImGui \"Classic\"." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 53288, + "name" : "dst", + "qualType" : "ImPlotStyle *", + "desugaredQualType" : "ImPlotStyle *", + "defaultValue" : "=" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 53356, + "name" : "StyleColorsDark", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 53303, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 53303, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 53303, + "text" : " Style plot colors for ImGui \"Dark\"." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 53385, + "name" : "dst", + "qualType" : "ImPlotStyle *", + "desugaredQualType" : "ImPlotStyle *", + "defaultValue" : "=" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 53454, + "name" : "StyleColorsLight", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 53400, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 53400, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 53400, + "text" : " Style plot colors for ImGui \"Light\"." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 53484, + "name" : "dst", + "qualType" : "ImPlotStyle *", + "desugaredQualType" : "ImPlotStyle *", + "defaultValue" : "=" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 53815, + "name" : "PushStyleColor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 53728, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 53728, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 53728, + "text" : " Temporarily modify a style color. Don't forget to call PopStyleColor!" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 53840, + "name" : "idx", + "qualType" : "ImPlotCol", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 53851, + "name" : "col", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 53873, + "name" : "PushStyleColor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 53898, + "name" : "idx", + "qualType" : "ImPlotCol", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 53917, + "name" : "col", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 54036, + "name" : "PopStyleColor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 53925, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 53925, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 53925, + "text" : " Undo temporary style color modification(s). Undo multiple pushes at once by increasing count." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 54054, + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 54171, + "name" : "PushStyleVar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 54069, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 54069, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 54069, + "text" : " Temporarily modify a style variable of float type. Don't forget to call PopStyleVar!" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 54199, + "name" : "idx", + "qualType" : "ImPlotStyleVar", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 54210, + "name" : "val", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 54318, + "name" : "PushStyleVar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 54218, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 54218, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 54218, + "text" : " Temporarily modify a style variable of int type. Don't forget to call PopStyleVar!" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 54346, + "name" : "idx", + "qualType" : "ImPlotStyleVar", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 54355, + "name" : "val", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 54466, + "name" : "PushStyleVar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 54363, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 54363, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 54363, + "text" : " Temporarily modify a style variable of ImVec2 type. Don't forget to call PopStyleVar!" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 54494, + "name" : "idx", + "qualType" : "ImPlotStyleVar", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 54513, + "name" : "val", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 54635, + "name" : "PopStyleVar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 54521, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 54521, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 54521, + "text" : " Undo temporary style variable modification(s). Undo multiple pushes at once by increasing count." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 54651, + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 55046, + "name" : "SetNextLineStyle", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 54975, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 54975, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 54975, + "text" : " Set the line color and weight for the next item only." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 55077, + "name" : "col", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "IMPLOT_AUTO_COL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55106, + "name" : "weight", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "IMPLOT_AUTO" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 55191, + "name" : "SetNextFillStyle", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 55131, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 55131, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 55131, + "text" : " Set the fill color for the next item only." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 55222, + "name" : "col", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "IMPLOT_AUTO_COL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55251, + "name" : "alpha_mod", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "IMPLOT_AUTO" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 55341, + "name" : "SetNextMarkerStyle", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 55279, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 55279, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 55279, + "text" : " Set the marker style for the next item only." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 55373, + "name" : "marker", + "qualType" : "ImPlotMarker", + "desugaredQualType" : "int", + "defaultValue" : "IMPLOT_AUTO" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55401, + "name" : "size", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "IMPLOT_AUTO" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55435, + "name" : "fill", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "IMPLOT_AUTO_COL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55465, + "name" : "weight", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "IMPLOT_AUTO" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55501, + "name" : "outline", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "IMPLOT_AUTO_COL" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 55596, + "name" : "SetNextErrorBarStyle", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 55531, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 55531, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 55531, + "text" : " Set the error bar style for the next item only." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 55631, + "name" : "col", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "IMPLOT_AUTO_COL" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55660, + "name" : "size", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "IMPLOT_AUTO" + }, { + "@type" : "AstParmVarDecl", + "offset" : 55686, + "name" : "weight", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "IMPLOT_AUTO" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 55793, + "name" : "GetLastItemColor", + "resultType" : "int", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 55712, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 55712, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 55712, + "text" : " Gets the last item primary color (i.e. its legend icon color)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 55898, + "name" : "GetStyleColorName", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 55816, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 55816, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 55816, + "text" : " Returns the null terminated string name for an ImPlotCol." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 55926, + "name" : "idx", + "qualType" : "ImPlotCol", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 56019, + "name" : "GetMarkerName", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 55934, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 55934, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 55934, + "text" : " Returns the null terminated string name for an ImPlotMarker." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 56046, + "name" : "idx", + "qualType" : "ImPlotMarker", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 57479, + "name" : "AddColormap", + "resultType" : "ImPlotColormap", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 56863, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 56863, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 56863, + "text" : " Add a new colormap. The color data will be copied. The colormap can be used by pushing either the returned index or the" + }, { + "@type" : "AstTextComment", + "offset" : 56986, + "text" : " string name with PushColormap. The colormap name must be unique and the size must be greater than 1. You will receive" + }, { + "@type" : "AstTextComment", + "offset" : 57107, + "text" : " an assert otherwise! By default colormaps are considered to be qualitative (i.e. discrete). If you want to create a" + }, { + "@type" : "AstTextComment", + "offset" : 57226, + "text" : " continuous colormap, set #qual=false. This will treat the colors you provide as keys, and ImPlot will build a linearly" + }, { + "@type" : "AstTextComment", + "offset" : 57348, + "text" : " interpolated lookup table. The memory footprint of this table will be exactly ((size-1)*255+1)*4 bytes." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 57503, + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57523, + "name" : "cols", + "qualType" : "const int *", + "desugaredQualType" : "const int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57533, + "name" : "size", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57544, + "name" : "qual", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 57582, + "name" : "AddColormap", + "resultType" : "ImPlotColormap", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 57606, + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57626, + "name" : "cols", + "qualType" : "const int *", + "desugaredQualType" : "const int *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57636, + "name" : "size", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 57647, + "name" : "qual", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 57760, + "name" : "GetColormapCount", + "resultType" : "int", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 57662, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 57662, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 57662, + "text" : " Returns the number of available colormaps (i.e. the built-in + user-added count)." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 57909, + "name" : "GetColormapName", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 57782, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 57782, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 57782, + "text" : " Returns a null terminated string name for a colormap given an index. Returns NULL if index is invalid." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 57940, + "name" : "cmap", + "qualType" : "ImPlotColormap", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 58073, + "name" : "GetColormapIndex", + "resultType" : "ImPlotColormap", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 57949, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 57949, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 57949, + "text" : " Returns an index number for a colormap given a valid string name. Returns -1 if name is invalid." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 58102, + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 58293, + "name" : "PushColormap", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 58112, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 58112, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 58112, + "text" : " Temporarily switch to one of the built-in (i.e. ImPlotColormap_XXX) or user-added colormaps (i.e. a return value of AddColormap). Don't forget to call PopColormap!" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 58321, + "name" : "cmap", + "qualType" : "ImPlotColormap", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 58512, + "name" : "PushColormap", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 58330, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 58330, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 58330, + "text" : " Push a colormap by string name. Use built-in names such as \"Default\", \"Deep\", \"Jet\", etc. or a string you provided to AddColormap. Don't forget to call PopColormap!" + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 58537, + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 58654, + "name" : "PopColormap", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 58546, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 58546, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 58546, + "text" : " Undo temporary colormap modification(s). Undo multiple pushes at once by increasing count." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 58670, + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 58914, + "name" : "NextColormapColor", + "resultType" : "int", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 58685, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 58685, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 58685, + "text" : " Returns the next color from the current colormap and advances the colormap for the current plot." + }, { + "@type" : "AstTextComment", + "offset" : 58785, + "text" : " Can also be used with no return value to skip colors if desired. You need to call this between Begin/EndPlot!" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 59154, + "name" : "GetColormapSize", + "resultType" : "int", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 59106, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 59106, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 59106, + "text" : " Returns the size of a colormap." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 59185, + "name" : "cmap", + "qualType" : "ImPlotColormap", + "desugaredQualType" : "int", + "defaultValue" : "IMPLOT_AUTO" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 59307, + "name" : "GetColormapColor", + "resultType" : "int", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 59208, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 59208, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 59208, + "text" : " Returns a color from a colormap given an index >= 0 (modulo will be performed)." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 59328, + "name" : "idx", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59348, + "name" : "cmap", + "qualType" : "ImPlotColormap", + "desugaredQualType" : "int", + "defaultValue" : "IMPLOT_AUTO" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 59456, + "name" : "SampleColormap", + "resultType" : "int", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 59371, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 59371, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 59371, + "text" : " Sample a color from the current colormap given t between 0 and 1." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 59477, + "name" : "t", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59495, + "name" : "cmap", + "qualType" : "ImPlotColormap", + "desugaredQualType" : "int", + "defaultValue" : "IMPLOT_AUTO" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 59673, + "name" : "ColormapScale", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 59519, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 59519, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 59519, + "text" : " Shows a vertical color scale with linear spaced ticks using the specified color map. Use double hashes to hide label (e.g. \"##NoLabel\")." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 59699, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59713, + "name" : "scale_min", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59731, + "name" : "scale_max", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59756, + "name" : "size", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "ImVec2(0,0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59791, + "name" : "cmap", + "qualType" : "ImPlotColormap", + "desugaredQualType" : "int", + "defaultValue" : "IMPLOT_AUTO" + }, { + "@type" : "AstParmVarDecl", + "offset" : 59823, + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%g\"" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 59970, + "name" : "ColormapSlider", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 59838, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 59838, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 59838, + "text" : " Shows a horizontal slider with a colormap gradient background. Optionally returns the color sampled at t in [0 1]." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 59997, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60011, + "name" : "t", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60022, + "name" : "out", + "qualType" : "int *", + "desugaredQualType" : "int *", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60046, + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"\"" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60074, + "name" : "cmap", + "qualType" : "ImPlotColormap", + "desugaredQualType" : "int", + "defaultValue" : "IMPLOT_AUTO" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 60167, + "name" : "ColormapButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 60097, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 60097, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 60097, + "text" : " Shows a button with a colormap gradient brackground." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 60194, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60215, + "name" : "size", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "ImVec2(0,0)" + }, { + "@type" : "AstParmVarDecl", + "offset" : 60250, + "name" : "cmap", + "qualType" : "ImPlotColormap", + "desugaredQualType" : "int", + "defaultValue" : "IMPLOT_AUTO" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 61037, + "name" : "BustColorCache", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 60274, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 60274, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 60274, + "text" : " When items in a plot sample their color from a colormap, the color is cached and does not change" + }, { + "@type" : "AstTextComment", + "offset" : 60374, + "text" : " unless explicitly overriden. Therefore, if you change the colormap after the item has already been plotted," + }, { + "@type" : "AstTextComment", + "offset" : 60485, + "text" : " item colors will NOT update. If you need item colors to resample the new colormap, then use this" + }, { + "@type" : "AstTextComment", + "offset" : 60585, + "text" : " function to bust the cached colors. If #plot_title_id is NULL, then every item in EVERY existing plot" + }, { + "@type" : "AstTextComment", + "offset" : 60690, + "text" : " will be cache busted. Otherwise only the plot specified by #plot_title_id will be busted. For the" + }, { + "@type" : "AstTextComment", + "offset" : 60791, + "text" : " latter, this function must be called in the same ImGui ID scope that the plot is in. You should rarely if ever" + }, { + "@type" : "AstTextComment", + "offset" : 60905, + "text" : " need this function, but it is available for applications that require runtime colormap swaps (e.g. Heatmaps demo)." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 61064, + "name" : "plot_title_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "=" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 61362, + "name" : "ItemIcon", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 61268, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 61268, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 61268, + "text" : " Render icons similar to those that appear in legends (nifty for data lists)." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 61385, + "name" : "col", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 61407, + "name" : "ItemIcon", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 61422, + "name" : "col", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 61444, + "name" : "ColormapIcon", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "offset" : 61472, + "name" : "cmap", + "qualType" : "ImPlotColormap", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 61604, + "name" : "GetPlotDrawList", + "resultType" : "int *", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 61482, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 61482, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 61482, + "text" : " Get the plot draw list for custom rendering to the current plot area. Call between Begin/EndPlot." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 61779, + "name" : "PushPlotClipRect", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 61625, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 61625, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 61625, + "text" : " Push clip rect for rendering to current plot area. The rect can be expanded or contracted by #expand pixels. Call between Begin/EndPlot." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 61802, + "name" : "expand", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 61880, + "name" : "PopPlotClipRect", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 61815, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 61815, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 61815, + "text" : " Pop plot clip rect. Call between Begin/EndPlot." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 61962, + "name" : "ShowStyleSelector", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 61902, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 61902, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 61902, + "text" : " Shows ImPlot style selector dropdown menu." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 61992, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 62065, + "name" : "ShowColormapSelector", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 62002, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 62002, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 62002, + "text" : " Shows ImPlot colormap selector dropdown menu." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 62098, + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 62173, + "name" : "ShowStyleEditor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 62108, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 62108, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 62108, + "text" : " Shows ImPlot style editor block (not a window)." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 62202, + "name" : "ref", + "qualType" : "ImPlotStyle *", + "desugaredQualType" : "ImPlotStyle *", + "defaultValue" : "=" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 62290, + "name" : "ShowUserGuide", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 62217, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 62217, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 62217, + "text" : " Add basic help/info block for end users (not a window)." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 62373, + "name" : "ShowMetricsWindow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 62309, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 62309, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 62309, + "text" : " Shows ImPlot metrics/debug information window." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 62397, + "name" : "p_popen", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "=" + } ] + }, { + "@type" : "AstFunctionDecl", + "offset" : 62672, + "name" : "ShowDemoWindow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "offset" : 62625, + "decls" : [ { + "@type" : "AstParagraphComment", + "offset" : 62625, + "decls" : [ { + "@type" : "AstTextComment", + "offset" : 62625, + "text" : " Shows the ImPlot demo window." + } ] + } ] + }, { + "@type" : "AstParmVarDecl", + "offset" : 62693, + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "=" + } ] + } ] + } ] +} \ No newline at end of file diff --git a/example/src/main/java/ExampleImGuiColorTextEdit.java b/example/src/main/java/ExampleImGuiColorTextEdit.java index 68b500d..729341d 100644 --- a/example/src/main/java/ExampleImGuiColorTextEdit.java +++ b/example/src/main/java/ExampleImGuiColorTextEdit.java @@ -1,5 +1,6 @@ import imgui.ImGui; import imgui.extension.texteditor.TextEditor; +import imgui.extension.texteditor.TextEditorCoordinates; import imgui.extension.texteditor.TextEditorLanguageDefinition; import imgui.flag.ImGuiWindowFlags; import imgui.type.ImBoolean; @@ -11,7 +12,7 @@ public class ExampleImGuiColorTextEdit { private static final TextEditor EDITOR = new TextEditor(); static { - TextEditorLanguageDefinition lang = TextEditorLanguageDefinition.c(); + TextEditorLanguageDefinition lang = TextEditorLanguageDefinition.C(); String[] ppnames = { "NULL", "PM_REMOVE", @@ -122,13 +123,12 @@ public class ExampleImGuiColorTextEdit { ImGui.endMenuBar(); } - int cposX = EDITOR.getCursorPositionLine(); - int cposY = EDITOR.getCursorPositionColumn(); + TextEditorCoordinates cpos = EDITOR.getCursorPosition(); String overwrite = EDITOR.isOverwrite() ? "Ovr" : "Ins"; String canUndo = EDITOR.canUndo() ? "*" : " "; - ImGui.text(cposX + "/" + cposY + " " + EDITOR.getTotalLines() + " lines | " + overwrite + " | " + canUndo); + ImGui.text(cpos.mLine + "/" + cpos.mColumn + " " + EDITOR.getTotalLines() + " lines | " + overwrite + " | " + canUndo); EDITOR.render("TextEditor"); diff --git a/example/src/main/java/ExampleImGuiFileDialog.java b/example/src/main/java/ExampleImGuiFileDialog.java index d789e03..16b5076 100644 --- a/example/src/main/java/ExampleImGuiFileDialog.java +++ b/example/src/main/java/ExampleImGuiFileDialog.java @@ -16,7 +16,7 @@ public class ExampleImGuiFileDialog { private static long userData = 0; private static ImGuiFileDialogPaneFun callback = new ImGuiFileDialogPaneFun() { @Override - public void paneFun(String filter, long userDatas, boolean canContinue) { + public void accept(String filter, long userDatas, boolean canContinue) { ImGui.text("Filter: " + filter); } }; @@ -51,7 +51,7 @@ public class ExampleImGuiFileDialog { } if (ImGui.button("Browse Folder")) { - ImGuiFileDialog.openDialog("browse-folder-key", "Choose Folder", null, ".", "", 1, 7, ImGuiFileDialogFlags.None); + ImGuiFileDialog.openDialog("browse-folder-key", "Choose Folder", null, ".", "", callback, 1, 7L, ImGuiFileDialogFlags.None); } if (ImGuiFileDialog.display("browse-folder-key", ImGuiFileDialogFlags.None, 200, 400, 800, 600)) { diff --git a/example/src/main/java/ExampleImGuiNodeEditor.java b/example/src/main/java/ExampleImGuiNodeEditor.java index 0567a8d..f6485d0 100644 --- a/example/src/main/java/ExampleImGuiNodeEditor.java +++ b/example/src/main/java/ExampleImGuiNodeEditor.java @@ -1,3 +1,4 @@ +import imgui.ImVec2; import imgui.extension.nodeditor.NodeEditor; import imgui.extension.nodeditor.NodeEditorConfig; import imgui.extension.nodeditor.NodeEditorContext; @@ -17,7 +18,7 @@ public class ExampleImGuiNodeEditor { static { NodeEditorConfig config = new NodeEditorConfig(); config.setSettingsFile(null); - CONTEXT = new NodeEditorContext(config); + CONTEXT = NodeEditor.createEditor(config); } public static void show(final ImBoolean showImNodeEditorWindow, final Graph graph) { @@ -108,9 +109,8 @@ public class ExampleImGuiNodeEditor { if (ImGui.beginPopup("node_editor_context")) { if (ImGui.button("Create New Node")) { final Graph.GraphNode node = graph.createGraphNode(); - final float canvasX = NodeEditor.toCanvasX(ImGui.getMousePosX()); - final float canvasY = NodeEditor.toCanvasY(ImGui.getMousePosY()); - NodeEditor.setNodePosition(node.nodeId, canvasX, canvasY); + final ImVec2 canvas = NodeEditor.screenToCanvas(ImGui.getMousePos()); + NodeEditor.setNodePosition(node.nodeId, canvas); ImGui.closeCurrentPopup(); } ImGui.endPopup(); diff --git a/example/src/main/java/ExampleImGuizmo.java b/example/src/main/java/ExampleImGuizmo.java index 4a72d6c..8d0d027 100644 --- a/example/src/main/java/ExampleImGuizmo.java +++ b/example/src/main/java/ExampleImGuizmo.java @@ -1,4 +1,5 @@ import imgui.ImGui; +import imgui.ImVec2; import imgui.extension.imguizmo.ImGuizmo; import imgui.extension.imguizmo.flag.Mode; import imgui.extension.imguizmo.flag.Operation; @@ -59,8 +60,6 @@ public class ExampleImGuizmo { 0.f, 0.f, 0.f, 1.f }; - private static final float[] VIEW_MANIPULATE_SIZE = new float[]{128f, 128f}; - private static final float[] EMPTY = new float[]{0}; private static final float[] INPUT_CAMERA_VIEW = { @@ -166,7 +165,7 @@ public class ExampleImGuizmo { ImGui.inputFloat3("Sc", INPUT_MATRIX_SCALE, "%.3f", ImGuiInputTextFlags.ReadOnly); if (ImGuizmo.isUsing()) { - ImGuizmo.recomposeMatrixFromComponents(OBJECT_MATRICES[0], INPUT_MATRIX_TRANSLATION, INPUT_MATRIX_ROTATION, INPUT_MATRIX_SCALE); + ImGuizmo.recomposeMatrixFromComponents(INPUT_MATRIX_TRANSLATION, INPUT_MATRIX_ROTATION, INPUT_MATRIX_SCALE, OBJECT_MATRICES[0]); } if (currentGizmoOperation != Operation.SCALE) { @@ -217,7 +216,7 @@ public class ExampleImGuizmo { float[] cameraProjection = perspective(27, aspect, 0.1f, 100f); ImGuizmo.setOrthographic(false); - ImGuizmo.setEnabled(true); + ImGuizmo.enable(true); ImGuizmo.setDrawList(); float windowWidth = ImGui.getWindowWidth(); @@ -225,26 +224,26 @@ public class ExampleImGuizmo { ImGuizmo.setRect(ImGui.getWindowPosX(), ImGui.getWindowPosY(), windowWidth, windowHeight); ImGuizmo.drawGrid(INPUT_CAMERA_VIEW, cameraProjection, IDENTITY_MATRIX, 100); - ImGuizmo.setId(0); + ImGuizmo.setID(0); ImGuizmo.drawCubes(INPUT_CAMERA_VIEW, cameraProjection, OBJECT_MATRICES[0]); if (USE_SNAP.get() && BOUNDING_SIZE.get() && boundSizingSnap) { - ImGuizmo.manipulate(INPUT_CAMERA_VIEW, cameraProjection, OBJECT_MATRICES[0], currentGizmoOperation, currentMode, INPUT_SNAP_VALUE, INPUT_BOUNDS, INPUT_BOUNDS_SNAP); + ImGuizmo.manipulate(INPUT_CAMERA_VIEW, cameraProjection, currentGizmoOperation, currentMode, OBJECT_MATRICES[0], null, INPUT_SNAP_VALUE, INPUT_BOUNDS, INPUT_BOUNDS_SNAP); } else if (USE_SNAP.get() && BOUNDING_SIZE.get()) { - ImGuizmo.manipulate(INPUT_CAMERA_VIEW, cameraProjection, OBJECT_MATRICES[0], currentGizmoOperation, currentMode, INPUT_SNAP_VALUE, INPUT_BOUNDS); + ImGuizmo.manipulate(INPUT_CAMERA_VIEW, cameraProjection, currentGizmoOperation, currentMode, OBJECT_MATRICES[0], null, INPUT_SNAP_VALUE, INPUT_BOUNDS); } else if (BOUNDING_SIZE.get() && boundSizingSnap) { - ImGuizmo.manipulate(INPUT_CAMERA_VIEW, cameraProjection, OBJECT_MATRICES[0], currentGizmoOperation, currentMode, EMPTY, INPUT_BOUNDS, INPUT_BOUNDS_SNAP); + ImGuizmo.manipulate(INPUT_CAMERA_VIEW, cameraProjection, currentGizmoOperation, currentMode, OBJECT_MATRICES[0], null, EMPTY, INPUT_BOUNDS, INPUT_BOUNDS_SNAP); } else if (BOUNDING_SIZE.get()) { - ImGuizmo.manipulate(INPUT_CAMERA_VIEW, cameraProjection, OBJECT_MATRICES[0], currentGizmoOperation, currentMode, EMPTY, INPUT_BOUNDS); + ImGuizmo.manipulate(INPUT_CAMERA_VIEW, cameraProjection, currentGizmoOperation, currentMode, OBJECT_MATRICES[0], null, EMPTY, INPUT_BOUNDS); } else if (USE_SNAP.get()) { - ImGuizmo.manipulate(INPUT_CAMERA_VIEW, cameraProjection, OBJECT_MATRICES[0], currentGizmoOperation, currentMode, INPUT_SNAP_VALUE); + ImGuizmo.manipulate(INPUT_CAMERA_VIEW, cameraProjection, currentGizmoOperation, currentMode, OBJECT_MATRICES[0], null, INPUT_SNAP_VALUE); } else { - ImGuizmo.manipulate(INPUT_CAMERA_VIEW, cameraProjection, OBJECT_MATRICES[0], currentGizmoOperation, currentMode); + ImGuizmo.manipulate(INPUT_CAMERA_VIEW, cameraProjection, currentGizmoOperation, currentMode, OBJECT_MATRICES[0]); } float viewManipulateRight = ImGui.getWindowPosX() + windowWidth; float viewManipulateTop = ImGui.getWindowPosY(); - ImGuizmo.viewManipulate(INPUT_CAMERA_VIEW, CAM_DISTANCE, new float[]{viewManipulateRight - 128, viewManipulateTop}, VIEW_MANIPULATE_SIZE, 0x10101010); + ImGuizmo.viewManipulate(INPUT_CAMERA_VIEW, CAM_DISTANCE, viewManipulateRight - 128, viewManipulateTop, 128, 128, 0x10101010); ImGui.endChild(); ImGui.end(); diff --git a/example/src/main/java/ExampleImNodes.java b/example/src/main/java/ExampleImNodes.java index 1f03add..b62dad6 100644 --- a/example/src/main/java/ExampleImNodes.java +++ b/example/src/main/java/ExampleImNodes.java @@ -1,5 +1,6 @@ import imgui.extension.imnodes.ImNodes; import imgui.extension.imnodes.ImNodesContext; +import imgui.extension.imnodes.ImNodesEditorContext; import imgui.extension.imnodes.flag.ImNodesPinShape; import imgui.extension.imnodes.flag.ImNodesMiniMapLocation; import imgui.flag.ImGuiCond; @@ -12,14 +13,16 @@ import java.awt.Desktop; import java.net.URI; public class ExampleImNodes { - private static final ImNodesContext CONTEXT = new ImNodesContext(); private static final String URL = "https://github.com/Nelarius/imnodes/tree/857cc86"; private static final ImInt LINK_A = new ImInt(); private static final ImInt LINK_B = new ImInt(); + private static ImNodesEditorContext editorContext = null; + static { ImNodes.createContext(); + editorContext = ImNodes.editorContextCreate(); } public static void show(final ImBoolean showImNodesWindow, final Graph graph) { @@ -39,7 +42,7 @@ public class ExampleImNodes { } } - ImNodes.editorContextSet(CONTEXT); + ImNodes.editorContextSet(editorContext); ImNodes.beginNodeEditor(); for (Graph.GraphNode node : graph.nodes.values()) { diff --git a/example/src/main/java/ExampleImPlot.java b/example/src/main/java/ExampleImPlot.java index 2ccab1c..48f57a8 100644 --- a/example/src/main/java/ExampleImPlot.java +++ b/example/src/main/java/ExampleImPlot.java @@ -1,4 +1,5 @@ import imgui.extension.implot.ImPlot; +import imgui.extension.implot.ImPlotPoint; import imgui.flag.ImGuiCond; import imgui.internal.ImGui; import imgui.type.ImBoolean; @@ -10,10 +11,10 @@ public class ExampleImPlot { private static final String URL = "https://github.com/epezent/implot/tree/555ff68"; private static final ImBoolean showDemo = new ImBoolean(false); - private static final Integer[] xs = {0, 1, 2, 3, 4, 5}; - private static final Integer[] ys = {0, 1, 2, 3, 4, 5}; - private static final Integer[] ys1 = {0, 0, 1, 2, 3, 4}; - private static final Integer[] ys2 = {1, 2, 3, 4, 5, 6}; + private static final int[] xs = {0, 1, 2, 3, 4, 5}; + private static final int[] ys = {0, 1, 2, 3, 4, 5}; + private static final int[] ys1 = {0, 0, 1, 2, 3, 4}; + private static final int[] ys2 = {1, 2, 3, 4, 5, 6}; static { ImPlot.createContext(); @@ -38,20 +39,30 @@ public class ExampleImPlot { ImGui.checkbox("Show ImPlot Built-In Demo", showDemo); - if (ImPlot.beginPlot("Example Plot")) { - ImPlot.plotShaded("Shaded", xs, ys1, ys2); - ImPlot.plotLine("Line", xs, ys); - ImPlot.plotBars("Bars", xs, ys); - ImPlot.endPlot(); - } - - if (ImPlot.beginPlot("Example Scatterplot")) { - ImPlot.plotScatter("Scatter", xs, ys); - ImPlot.endPlot(); - } - if (showDemo.get()) { ImPlot.showDemoWindow(showDemo); + } else { + if (ImPlot.beginPlot("Example Plot")) { + ImPlot.plotShaded("Shaded", xs, ys1, ys2); + ImPlot.plotLine("Line", xs, ys); + ImPlot.plotBars("Bars", xs, ys); + ImPlot.endPlot(); + } + + if (ImPlot.beginPlot("Example Scatterplot")) { + ImPlot.plotScatter("Scatter", xs, ys); + ImPlot.endPlot(); + } + + if (ImPlot.beginPlot("Example Piechart")) { + ImPlot.plotPieChart(new String[]{"1", "2", "3", "4", "5", "6"}, xs, .5, .5, .4); + ImPlot.endPlot(); + } + + if (ImPlot.beginPlot("Example Heatmap")) { + ImPlot.plotHeatmap("Heatmap", new int[]{1, 3, 6, 2, 8, 5, 4, 3}, 2, 4, 0, 0, "%d", new ImPlotPoint(0, 0), new ImPlotPoint(10, 10)); + ImPlot.endPlot(); + } } } diff --git a/example/src/main/java/ExampleKnobs.java b/example/src/main/java/ExampleKnobs.java index f09f373..538ad48 100644 --- a/example/src/main/java/ExampleKnobs.java +++ b/example/src/main/java/ExampleKnobs.java @@ -23,19 +23,13 @@ public class ExampleKnobs { if (ImGui.begin("Knobs Demo Window", showKnobsWindow, ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoCollapse)) { ImGui.textWrapped("This is a demo for dear ImGui Knobs"); if (ImGui.beginChild("Float Knobs")) { - ImGuiKnobs.knobFloat("Example Tick Knob", EXAMPLE_TICK_KNOB_VAL, 0.0f, 10.0f, 0.2f, "%.1f", ImGuiKnobVariant.TICK, 50.0f, ImGuiKnobFlags.NONE, 1); - - ImGuiKnobs.knobFloat("Example Dot Knob", EXAMPLE_DOT_KNOB_VAL, 0.0f, 10.0f, 0.2f, "%.1f", ImGuiKnobVariant.DOT, 50.0f, ImGuiKnobFlags.NONE, 1); - - ImGuiKnobs.knobFloat("Example Space Knob", EXAMPLE_SPACE_KNOB_VAL, 0.0f, 10.0f, 0.2f, "%.1f", ImGuiKnobVariant.SPACE, 50.0f, ImGuiKnobFlags.NONE, 1); - - ImGuiKnobs.knobFloat("Example Wiper Knob", EXAMPLE_WIPER_KNOB_VAL, 0.0f, 10.0f, 0.2f, "%.1f", ImGuiKnobVariant.WIPER, 50.0f, ImGuiKnobFlags.NONE, 1); - - ImGuiKnobs.knobFloat("Example Wiper Dot Knob", EXAMPLE_WIPER_DOT_KNOB_VAL, 0.0f, 10.0f, 0.2f, "%.1f", ImGuiKnobVariant.WIPER_DOT, 50.0f, ImGuiKnobFlags.NONE, 1); - - ImGuiKnobs.knobFloat("Example Wiper Only Knob", EXAMPLE_WIPER_ONLY_KNOB_VAL, 0.0f, 10.0f, 0.2f, "%.1f", ImGuiKnobVariant.WIPER_ONLY, 50.0f, ImGuiKnobFlags.NONE, 1); - - ImGuiKnobs.knobFloat("Example Stepped Knob", EXAMPLE_STEPPED_KNOB_VAL, 0.0f, 10.0f, 0.2f, "%.1f", ImGuiKnobVariant.STEPPED, 50.0f, ImGuiKnobFlags.NONE, 1); + ImGuiKnobs.knob("Example Tick Knob", EXAMPLE_TICK_KNOB_VAL, 0.0f, 10.0f, 0.2f, "%.1f", ImGuiKnobVariant.Tick, 50.0f, ImGuiKnobFlags.None, 1); + ImGuiKnobs.knob("Example Dot Knob", EXAMPLE_DOT_KNOB_VAL, 0.0f, 10.0f, 0.2f, "%.1f", ImGuiKnobVariant.Dot, 50.0f, ImGuiKnobFlags.None, 1); + ImGuiKnobs.knob("Example Space Knob", EXAMPLE_SPACE_KNOB_VAL, 0.0f, 10.0f, 0.2f, "%.1f", ImGuiKnobVariant.Space, 50.0f, ImGuiKnobFlags.None, 1); + ImGuiKnobs.knob("Example Wiper Knob", EXAMPLE_WIPER_KNOB_VAL, 0.0f, 10.0f, 0.2f, "%.1f", ImGuiKnobVariant.Wiper, 50.0f, ImGuiKnobFlags.None, 1); + ImGuiKnobs.knob("Example Wiper Dot Knob", EXAMPLE_WIPER_DOT_KNOB_VAL, 0.0f, 10.0f, 0.2f, "%.1f", ImGuiKnobVariant.WiperDot, 50.0f, ImGuiKnobFlags.None, 1); + ImGuiKnobs.knob("Example Wiper Only Knob", EXAMPLE_WIPER_ONLY_KNOB_VAL, 0.0f, 10.0f, 0.2f, "%.1f", ImGuiKnobVariant.WiperOnly, 50.0f, ImGuiKnobFlags.None, 1); + ImGuiKnobs.knob("Example Stepped Knob", EXAMPLE_STEPPED_KNOB_VAL, 0.0f, 10.0f, 0.2f, "%.1f", ImGuiKnobVariant.Stepped, 50.0f, ImGuiKnobFlags.None, 1); ImGui.endChild(); } diff --git a/imgui-binding/build.gradle b/imgui-binding/build.gradle index b0eea10..f7b484d 100644 --- a/imgui-binding/build.gradle +++ b/imgui-binding/build.gradle @@ -1,9 +1,9 @@ import org.apache.tools.ant.filters.ReplaceTokens import tool.generator.GenerateLibs +import tool.generator.api.task.GenerateApi plugins { id 'java' - id 'checkstyle' id 'maven-publish' id 'signing' } @@ -23,6 +23,20 @@ test { useJUnitPlatform() } +compileJava { + // By default we do not generate API, since we believe this should be done on purpose. + if (System.getProperty('build.debug.generate.api.enable')) { + dependsOn 'generateApi' + } +} + +sourceSets { + main.java.srcDirs = ['src/generated/java'] + raw.java.srcDirs = ['src/main/java'] +} + +tasks.register('generateApi', GenerateApi) + tasks.register('generateLibs', GenerateLibs) { it.dependsOn assemble } diff --git a/imgui-binding/scripts/struct_to_java.groovy b/imgui-binding/scripts/struct_to_java.groovy deleted file mode 100644 index 625d587..0000000 --- a/imgui-binding/scripts/struct_to_java.groovy +++ /dev/null @@ -1,81 +0,0 @@ -def inputTxt = new File(args[0]).text -def outputFile = new File(args[1]) -def jStructName = args[2] as String - -outputFile.text = '' - -inputTxt = inputTxt - .replace('ImGuiID', 'int') - .replace('bool', 'boolean') - .replace('char*', 'String') - .replace('const char*', 'String') - -def regex = ~'(\\w+)\\s+(\\w+)(?:.*?//(.+))?' - -inputTxt.eachLine { line -> - def trimmedLine = line.trim() - - if (!trimmedLine.contains(';') || trimmedLine.startsWith('#')) - return - - def m = regex.matcher(trimmedLine) - - def fieldType - def fieldName - def fieldComment - - m.find() - - fieldType = m.group(1) - fieldName = m.group(2) - fieldComment = m.group(3)?.trim() - - def javadoc = null - - if (fieldComment) { - javadoc = """ /** - | * $fieldComment - | */""".stripMargin() - } - - def classTxt - - if (fieldType == 'ImVec2') { - classTxt = """ - |${javadoc ? javadoc : ''} - | public native void get${fieldName.capitalize()}(ImVec2 dstImVec2); /* - | Jni::ImVec2Cpy(env, &$jStructName->$fieldName, dstImVec2); - | */ - | - |${javadoc ? javadoc : ''} - | public native float get${fieldName.capitalize()}X(); /* - | return $jStructName->${fieldName}.x; - | */ - | - |${javadoc ? javadoc : ''} - | public native float get${fieldName.capitalize()}Y(); /* - | return $jStructName->${fieldName}.y; - | */ - | - |${javadoc ? javadoc : ''} - | public native void set${fieldName.capitalize()}(float x, float y); /* - | $jStructName->${fieldName}.x = x; - | $jStructName->${fieldName}.y = y; - | */ - """.stripMargin() - } else { - classTxt = """ - |${javadoc ? javadoc : ''} - | public native $fieldType get${fieldName.capitalize()}(); /* - | return $jStructName->$fieldName; - | */ - | - |${javadoc ? javadoc : ''} - | public native void set${fieldName.capitalize()}($fieldType ${fieldName.uncapitalize()}); /* - | $jStructName->$fieldName = ${fieldName.uncapitalize()}; - | */ - """.stripMargin() - } - - outputFile << classTxt -} diff --git a/imgui-binding/src/generated/java/imgui/ImColor.java b/imgui-binding/src/generated/java/imgui/ImColor.java new file mode 100644 index 0000000..8eb3ce1 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImColor.java @@ -0,0 +1,209 @@ +package imgui; + +import java.awt.Color; + +/** + * Helper class to get ABGR packed color used by Dear ImGui. + */ +public final class ImColor { + private ImColor() { + } + + public static int rgba(final int r, final int g, final int b, final int a) { + return intToColor(r, g, b, a); + } + + public static int rgb(final int r, final int g, final int b) { + return intToColor(r, g, b); + } + + public static int rgba(final float r, final float g, final float b, final float a) { + return floatToColor(r, g, b, a); + } + + public static int rgb(final float r, final float g, final float b) { + return floatToColor(r, g, b); + } + + /** + * @param hex e.g. "#FFFFFFFF" + */ + public static int rgba(final String hex) { + return rgbaToColor(hex); + } + + /** + * @param hex e.g. "#FFFFFF" + */ + public static int rgb(final String hex) { + return rgbToColor(hex); + } + + public static int rgba(final ImVec4 color) { + return rgba(color.x, color.y, color.z, color.w); + } + + public static int rgb(final ImVec4 color) { + return rgb(color.x, color.y, color.z); + } + + public static int rgba(final Color color) { + return rgba(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()); + } + + public static int rgb(final Color color) { + return rgb(color.getRed(), color.getGreen(), color.getBlue()); + } + + public static int hsla(final float h, final float s, final float l, final float a) { + return hslToColor(h, s, l, a); + } + + public static int hsl(final float h, final float s, final float l) { + return hslToColor(h, s, l); + } + + public static int hsla(final int h, final int s, final int l, final int a) { + return hslToColor(h, s, l, a); + } + + public static int hsl(final int h, final int s, final int l) { + return hslToColor(h, s, l); + } + + /** + * @deprecated use {@link #rgb(int, int, int)} + */ + @Deprecated + public static int intToColor(final int r, final int g, final int b, final int a) { + return a << 24 | b << 16 | g << 8 | r; + } + + /** + * @deprecated use {@link #rgba(int, int, int, int)} + */ + @Deprecated + public static int intToColor(final int r, final int g, final int b) { + return intToColor(r, g, b, 255); + } + + /** + * @deprecated use {@link #rgb(float, float, float)} + */ + @Deprecated + public static int floatToColor(final float r, final float g, final float b, final float a) { + return intToColor((int) (r * 255), (int) (g * 255), (int) (b * 255), (int) (a * 255)); + } + + /** + * @deprecated use {@link #rgba(float, float, float, float)} + */ + @Deprecated + public static int floatToColor(final float r, final float g, final float b) { + return floatToColor(r, g, b, 1f); + } + + /** + * @param hex e.g. "#FFFFFF" + * @deprecated use {@link #rgb(String)} + */ + @Deprecated + public static int rgbToColor(final String hex) { + return intToColor( + Integer.parseInt(hex.substring(1, 3), 16), + Integer.parseInt(hex.substring(3, 5), 16), + Integer.parseInt(hex.substring(5, 7), 16) + ); + } + + /** + * @param hex e.g. "#FFFFFFFF" + * @deprecated use {@link #rgba(String)} + */ + @Deprecated + public static int rgbaToColor(final String hex) { + return intToColor( + Integer.parseInt(hex.substring(1, 3), 16), + Integer.parseInt(hex.substring(3, 5), 16), + Integer.parseInt(hex.substring(5, 7), 16), + Integer.parseInt(hex.substring(7, 9), 16) + ); + } + + /** + * @deprecated use {@link #hsl(int, int, int)} + */ + @Deprecated + public static int hslToColor(final int h, final int s, final int l) { + return hslToColor(h, s, l, 1); + } + + /** + * @deprecated use {@link #hsla(int, int, int, int)} + */ + @Deprecated + public static int hslToColor(final int h, final int s, final int l, final float a) { + return hslToColor(h / 360f, s / 100f, l / 100f, a); + } + + /** + * @deprecated use {@link #hsl(float, float, float)} + */ + @Deprecated + public static int hslToColor(final float h, final float s, final float l) { + return hslToColor(h, s, l, 1); + } + + /** + * @deprecated use {@link #hsla(float, float, float, float)} + */ + @Deprecated + public static int hslToColor(final float h, final float s, final float l, final float a) { + final float q; + final float p; + final float r; + final float g; + final float b; + + // Achromatic + if (s == 0) { + r = l; + g = l; + b = l; + } else { + q = l < 0.5 ? (l * (1 + s)) : (l + s - l * s); + p = 2 * l - q; + r = hue2rgb(p, q, h + 1.0f / 3); + g = hue2rgb(p, q, h); + b = hue2rgb(p, q, h - 1.0f / 3); + } + + return floatToColor(r, g, b, a); + } + + private static float hue2rgb(final float p, final float q, final float hue) { + float h = hue; + + if (h < 0) { + h += 1; + } + + if (h > 1) { + h -= 1; + } + + if (6 * h < 1) { + return p + ((q - p) * 6 * h); + } + + if (2 * h < 1) { + return q; + } + + if (3 * h < 2) { + return p + ((q - p) * 6 * ((2.0f / 3.0f) - h)); + } + + return p; + } +} diff --git a/imgui-binding/src/generated/java/imgui/ImDrawData.java b/imgui-binding/src/generated/java/imgui/ImDrawData.java new file mode 100644 index 0000000..abae8ac --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImDrawData.java @@ -0,0 +1,370 @@ +package imgui; + +import imgui.binding.ImGuiStruct; + +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +/** + * All draw data to render Dear ImGui frame + * (NB: the style and the naming convention here is a little inconsistent, we currently preserve them for backward compatibility purpose, + * as this is one of the oldest structure exposed by the library! Basically, ImDrawList == CmdList) + *

+ * BINDING NOTICE: Since it's impossible to do a 1:1 mapping with JNI, current class provides "getCmdList*()" methods. + * Those are used to get the data needed to do a rendering. + */ +public final class ImDrawData extends ImGuiStruct { + private static final int RESIZE_FACTOR = 5_000; + private static ByteBuffer dataBuffer = ByteBuffer.allocateDirect(25_000).order(ByteOrder.nativeOrder()); + + public ImDrawData(final long ptr) { + super(ptr); + } + + /*JNI + #include "_common.h" + #define THIS ((ImDrawData*)STRUCT_PTR) + */ + + ///////// Start of Render Methods | Binding + + /** + * Draw commands. Typically 1 command = 1 GPU draw call, unless the command is a callback. + */ + public native int getCmdListCmdBufferSize(int cmdListIdx); /* + return THIS->CmdLists[cmdListIdx]->CmdBuffer.Size; + */ + + /** + * Number of indices (multiple of 3) to be rendered as triangles. + * Vertices are stored in the callee ImDrawList's vtx_buffer[] array, indices in idx_buffer[]. + */ + public native int getCmdListCmdBufferElemCount(int cmdListIdx, int cmdBufferIdx); /* + return THIS->CmdLists[cmdListIdx]->CmdBuffer[cmdBufferIdx].ElemCount; + */ + + /** + * Clipping rectangle (x1, y1, x2, y2). Subtract ImDrawData.DisplayPos to get clipping rectangle in "viewport" coordinates + */ + public ImVec4 getCmdListCmdBufferClipRect(final int cmdListIdx, final int cmdBufferIdx) { + final ImVec4 dst = new ImVec4(); + getCmdListCmdBufferClipRect(dst, cmdListIdx, cmdBufferIdx); + return dst; + } + + /** + * Clipping rectangle (x1, y1, x2, y2). Subtract ImDrawData.DisplayPos to get clipping rectangle in "viewport" coordinates + */ + public native void getCmdListCmdBufferClipRect(ImVec4 dst, int cmdListIdx, int cmdBufferIdx); /* + Jni::ImVec4Cpy(env, &THIS->CmdLists[cmdListIdx]->CmdBuffer[cmdBufferIdx].ClipRect, dst); + */ + + /** + * User-provided texture ID. Set by user in ImfontAtlas::SetTexID() for fonts or passed to Image*() functions. + * Ignore if never using images or multiple fonts atlas. + */ + public native int getCmdListCmdBufferTextureId(int cmdListIdx, int cmdBufferIdx); /* + return (intptr_t)THIS->CmdLists[cmdListIdx]->CmdBuffer[cmdBufferIdx].GetTexID(); + */ + + /** + * Start offset in vertex buffer. Pre-1.71 or without ImGuiBackendFlags_RendererHasVtxOffset: always 0. + * With ImGuiBackendFlags_RendererHasVtxOffset: may be {@code >}0 to support meshes larger than 64K vertices with 16-bit indices. + */ + public native int getCmdListCmdBufferVtxOffset(int cmdListIdx, int cmdBufferIdx); /* + return THIS->CmdLists[cmdListIdx]->CmdBuffer[cmdBufferIdx].VtxOffset; + */ + + /** + * Start offset in index buffer. Always equal to sum of ElemCount drawn so far. + */ + public native int getCmdListCmdBufferIdxOffset(int cmdListIdx, int cmdBufferIdx); /* + return THIS->CmdLists[cmdListIdx]->CmdBuffer[cmdBufferIdx].IdxOffset; + */ + + /** + * Index buffer. Each command consume ImDrawCmd::ElemCount of those + */ + public native int getCmdListIdxBufferSize(int cmdListIdx); /* + return THIS->CmdLists[cmdListIdx]->IdxBuffer.Size; + */ + + public ByteBuffer getCmdListIdxBufferData(final int cmdListIdx) { + final int idxBufferCapacity = getCmdListIdxBufferSize(cmdListIdx) * sizeOfImDrawIdx(); + if (dataBuffer.capacity() < idxBufferCapacity) { + dataBuffer.clear(); + dataBuffer = ByteBuffer.allocateDirect(idxBufferCapacity + RESIZE_FACTOR).order(ByteOrder.nativeOrder()); + } + + nGetCmdListIdxBufferData(cmdListIdx, dataBuffer, idxBufferCapacity); + + dataBuffer.position(0); + dataBuffer.limit(idxBufferCapacity); + + return dataBuffer; + } + + private native void nGetCmdListIdxBufferData(int cmdListIdx, ByteBuffer idxBuffer, int idxBufferCapacity); /* + memcpy(idxBuffer, THIS->CmdLists[cmdListIdx]->IdxBuffer.Data, idxBufferCapacity); + */ + + /** + * Vertex buffer. + */ + public native int getCmdListVtxBufferSize(int cmdListIdx); /* + return THIS->CmdLists[cmdListIdx]->VtxBuffer.Size; + */ + + public ByteBuffer getCmdListVtxBufferData(final int cmdListIdx) { + final int vtxBufferCapacity = getCmdListVtxBufferSize(cmdListIdx) * sizeOfImDrawVert(); + if (dataBuffer.capacity() < vtxBufferCapacity) { + dataBuffer.clear(); + dataBuffer = ByteBuffer.allocateDirect(vtxBufferCapacity + RESIZE_FACTOR).order(ByteOrder.nativeOrder()); + } + + nGetCmdListVtxBufferData(cmdListIdx, dataBuffer, vtxBufferCapacity); + + dataBuffer.position(0); + dataBuffer.limit(vtxBufferCapacity); + + return dataBuffer; + } + + private native void nGetCmdListVtxBufferData(int cmdListIdx, ByteBuffer vtxBuffer, int vtxBufferCapacity); /* + memcpy(vtxBuffer, THIS->CmdLists[cmdListIdx]->VtxBuffer.Data, vtxBufferCapacity); + */ + + public static native int sizeOfImDrawVert(); /* + return (int)sizeof(ImDrawVert); + */ + + public static native int sizeOfImDrawIdx(); /* + return (int)sizeof(ImDrawIdx); + */ + + ///////// End of Render Methods + + /** + * Only valid after Render() is called and before the next NewFrame() is called. + */ + public boolean getValid() { + return nGetValid(); + } + + private native boolean nGetValid(); /* + return THIS->Valid; + */ + + /** + * Number of ImDrawList* to render + */ + public int getCmdListsCount() { + return nGetCmdListsCount(); + } + + private native int nGetCmdListsCount(); /* + return THIS->CmdListsCount; + */ + + /** + * For convenience, sum of all ImDrawList's IdxBuffer.Size + */ + public int getTotalIdxCount() { + return nGetTotalIdxCount(); + } + + private native int nGetTotalIdxCount(); /* + return THIS->TotalIdxCount; + */ + + /** + * For convenience, sum of all ImDrawList's VtxBuffer.Size + */ + public int getTotalVtxCount() { + return nGetTotalVtxCount(); + } + + private native int nGetTotalVtxCount(); /* + return THIS->TotalVtxCount; + */ + + /** + * Upper-left position of the viewport to render (== upper-left of the orthogonal projection matrix to use) + */ + public ImVec2 getDisplayPos() { + final ImVec2 dst = new ImVec2(); + nGetDisplayPos(dst); + return dst; + } + + /** + * Upper-left position of the viewport to render (== upper-left of the orthogonal projection matrix to use) + */ + public float getDisplayPosX() { + return nGetDisplayPosX(); + } + + /** + * Upper-left position of the viewport to render (== upper-left of the orthogonal projection matrix to use) + */ + public float getDisplayPosY() { + return nGetDisplayPosY(); + } + + /** + * Upper-left position of the viewport to render (== upper-left of the orthogonal projection matrix to use) + */ + public void getDisplayPos(final ImVec2 dst) { + nGetDisplayPos(dst); + } + + private native void nGetDisplayPos(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->DisplayPos, dst); + */ + + private native float nGetDisplayPosX(); /* + return THIS->DisplayPos.x; + */ + + private native float nGetDisplayPosY(); /* + return THIS->DisplayPos.y; + */ + + /** + * Size of the viewport to render (== io.DisplaySize for the main viewport) + * (DisplayPos + DisplaySize == lower-right of the orthogonal projection matrix to use) + */ + public ImVec2 getDisplaySize() { + final ImVec2 dst = new ImVec2(); + nGetDisplaySize(dst); + return dst; + } + + /** + * Size of the viewport to render (== io.DisplaySize for the main viewport) + * (DisplayPos + DisplaySize == lower-right of the orthogonal projection matrix to use) + */ + public float getDisplaySizeX() { + return nGetDisplaySizeX(); + } + + /** + * Size of the viewport to render (== io.DisplaySize for the main viewport) + * (DisplayPos + DisplaySize == lower-right of the orthogonal projection matrix to use) + */ + public float getDisplaySizeY() { + return nGetDisplaySizeY(); + } + + /** + * Size of the viewport to render (== io.DisplaySize for the main viewport) + * (DisplayPos + DisplaySize == lower-right of the orthogonal projection matrix to use) + */ + public void getDisplaySize(final ImVec2 dst) { + nGetDisplaySize(dst); + } + + private native void nGetDisplaySize(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->DisplaySize, dst); + */ + + private native float nGetDisplaySizeX(); /* + return THIS->DisplaySize.x; + */ + + private native float nGetDisplaySizeY(); /* + return THIS->DisplaySize.y; + */ + + /** + * Amount of pixels for each unit of DisplaySize. Based on io.DisplayFramebufferScale. Generally (1,1) on normal display, (2,2) on OSX with Retina display. + */ + public ImVec2 getFramebufferScale() { + final ImVec2 dst = new ImVec2(); + nGetFramebufferScale(dst); + return dst; + } + + /** + * Amount of pixels for each unit of DisplaySize. Based on io.DisplayFramebufferScale. Generally (1,1) on normal display, (2,2) on OSX with Retina display. + */ + public float getFramebufferScaleX() { + return nGetFramebufferScaleX(); + } + + /** + * Amount of pixels for each unit of DisplaySize. Based on io.DisplayFramebufferScale. Generally (1,1) on normal display, (2,2) on OSX with Retina display. + */ + public float getFramebufferScaleY() { + return nGetFramebufferScaleY(); + } + + /** + * Amount of pixels for each unit of DisplaySize. Based on io.DisplayFramebufferScale. Generally (1,1) on normal display, (2,2) on OSX with Retina display. + */ + public void getFramebufferScale(final ImVec2 dst) { + nGetFramebufferScale(dst); + } + + private native void nGetFramebufferScale(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->FramebufferScale, dst); + */ + + private native float nGetFramebufferScaleX(); /* + return THIS->FramebufferScale.x; + */ + + private native float nGetFramebufferScaleY(); /* + return THIS->FramebufferScale.y; + */ + + /** + * Viewport carrying the ImDrawData instance, might be of use to the renderer (generally not). + */ + public ImGuiViewport getOwnerViewport() { + return new ImGuiViewport(nGetOwnerViewport()); + } + + private native long nGetOwnerViewport(); /* + return (intptr_t)THIS->OwnerViewport; + */ + + // Functions + + /** + * Helper to convert all buffers from indexed to non-indexed, in case you cannot render indexed. Note: this is slow and most likely a waste of resources. + * Always prefer indexed rendering! + */ + public void deIndexAllBuffers() { + nDeIndexAllBuffers(); + } + + private native void nDeIndexAllBuffers(); /* + THIS->DeIndexAllBuffers(); + */ + + /** + * Helper to scale the ClipRect field of each ImDrawCmd. Use if your final output buffer is at a different scale than Dear ImGui expects, + * or if there is a difference between your window resolution and framebuffer resolution. + */ + public void scaleClipRects(final ImVec2 fbScale) { + nScaleClipRects(fbScale.x, fbScale.y); + } + + /** + * Helper to scale the ClipRect field of each ImDrawCmd. Use if your final output buffer is at a different scale than Dear ImGui expects, + * or if there is a difference between your window resolution and framebuffer resolution. + */ + public void scaleClipRects(final float fbScaleX, final float fbScaleY) { + nScaleClipRects(fbScaleX, fbScaleY); + } + + private native void nScaleClipRects(float fbScaleX, float fbScaleY); /*MANUAL + ImVec2 fbScale = ImVec2(fbScaleX, fbScaleY); + THIS->ScaleClipRects(fbScale); + */ + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/ImDrawList.java b/imgui-binding/src/generated/java/imgui/ImDrawList.java new file mode 100644 index 0000000..36f320c --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImDrawList.java @@ -0,0 +1,1487 @@ +package imgui; + +import imgui.binding.ImGuiStruct; + +/** + * Draw command list + * This is the low-level list of polygons that ImGui:: functions are filling. At the end of the frame, + * all command lists are passed to your ImGuiIO::RenderDrawListFn function for rendering. + * Each dear imgui window contains its own ImDrawList. You can use ImGui::GetWindowDrawList() to + * access the current window draw list and draw custom primitives. + * You can interleave normal ImGui:: calls and adding primitives to the current draw list. + * All positions are generally in pixel coordinates (top-left at (0,0), bottom-right at io.DisplaySize), + * but you are totally free to apply whatever transformation matrix to want to the data (if you apply such transformation you'll want to apply it to ClipRect as well) + * Important: Primitives are always added to the list and not culled (culling is done at higher-level by ImGui:: functions), if you use this API a lot consider coarse culling your drawn objects. + */ +public final class ImDrawList extends ImGuiStruct { + public ImDrawList(final long ptr) { + super(ptr); + } + + /*JNI + #include "_common.h" + #define THIS ((ImDrawList*)STRUCT_PTR) + */ + + /** + * Flags, you may poke into these to adjust anti-aliasing settings per-primitive. + */ + public int getFlags() { + return nGetFlags(); + } + + /** + * Flags, you may poke into these to adjust anti-aliasing settings per-primitive. + */ + public void setFlags(final int value) { + nSetFlags(value); + } + + /** + * Flags, you may poke into these to adjust anti-aliasing settings per-primitive. + */ + public void addFlags(final int flags) { + setFlags(getFlags() | flags); + } + + /** + * Flags, you may poke into these to adjust anti-aliasing settings per-primitive. + */ + public void removeFlags(final int flags) { + setFlags(getFlags() & ~(flags)); + } + + /** + * Flags, you may poke into these to adjust anti-aliasing settings per-primitive. + */ + public boolean hasFlags(final int flags) { + return (getFlags() & flags) != 0; + } + + private native int nGetFlags(); /* + return THIS->Flags; + */ + + private native void nSetFlags(int value); /* + THIS->Flags = value; + */ + + /** + * Render-level scissoring. + * This is passed down to your render function but not used for CPU-side coarse clipping. + * Prefer using higher-level ImGui::PushClipRect() to affect logic (hit-testing and widget culling) + */ + public void pushClipRect(final ImVec2 clipRectMin, final ImVec2 clipRectMax) { + nPushClipRect(clipRectMin.x, clipRectMin.y, clipRectMax.x, clipRectMax.y); + } + + /** + * Render-level scissoring. + * This is passed down to your render function but not used for CPU-side coarse clipping. + * Prefer using higher-level ImGui::PushClipRect() to affect logic (hit-testing and widget culling) + */ + public void pushClipRect(final float clipRectMinX, final float clipRectMinY, final float clipRectMaxX, final float clipRectMaxY) { + nPushClipRect(clipRectMinX, clipRectMinY, clipRectMaxX, clipRectMaxY); + } + + /** + * Render-level scissoring. + * This is passed down to your render function but not used for CPU-side coarse clipping. + * Prefer using higher-level ImGui::PushClipRect() to affect logic (hit-testing and widget culling) + */ + public void pushClipRect(final ImVec2 clipRectMin, final ImVec2 clipRectMax, final boolean intersectWithCurrentClipRect) { + nPushClipRect(clipRectMin.x, clipRectMin.y, clipRectMax.x, clipRectMax.y, intersectWithCurrentClipRect); + } + + /** + * Render-level scissoring. + * This is passed down to your render function but not used for CPU-side coarse clipping. + * Prefer using higher-level ImGui::PushClipRect() to affect logic (hit-testing and widget culling) + */ + public void pushClipRect(final float clipRectMinX, final float clipRectMinY, final float clipRectMaxX, final float clipRectMaxY, final boolean intersectWithCurrentClipRect) { + nPushClipRect(clipRectMinX, clipRectMinY, clipRectMaxX, clipRectMaxY, intersectWithCurrentClipRect); + } + + private native void nPushClipRect(float clipRectMinX, float clipRectMinY, float clipRectMaxX, float clipRectMaxY); /*MANUAL + ImVec2 clipRectMin = ImVec2(clipRectMinX, clipRectMinY); + ImVec2 clipRectMax = ImVec2(clipRectMaxX, clipRectMaxY); + THIS->PushClipRect(clipRectMin, clipRectMax); + */ + + private native void nPushClipRect(float clipRectMinX, float clipRectMinY, float clipRectMaxX, float clipRectMaxY, boolean intersectWithCurrentClipRect); /*MANUAL + ImVec2 clipRectMin = ImVec2(clipRectMinX, clipRectMinY); + ImVec2 clipRectMax = ImVec2(clipRectMaxX, clipRectMaxY); + THIS->PushClipRect(clipRectMin, clipRectMax, intersectWithCurrentClipRect); + */ + + public void pushClipRectFullScreen() { + nPushClipRectFullScreen(); + } + + private native void nPushClipRectFullScreen(); /* + THIS->PushClipRectFullScreen(); + */ + + public void popClipRect() { + nPopClipRect(); + } + + private native void nPopClipRect(); /* + THIS->PopClipRect(); + */ + + public void pushTextureID(final int textureId) { + nPushTextureID(textureId); + } + + private native void nPushTextureID(int textureId); /* + THIS->PushTextureID((ImTextureID)(intptr_t)textureId); + */ + + public void popTextureID() { + nPopTextureID(); + } + + private native void nPopTextureID(); /* + THIS->PopTextureID(); + */ + + public ImVec2 getClipRectMin() { + final ImVec2 dst = new ImVec2(); + nGetClipRectMin(dst); + return dst; + } + + public float getClipRectMinX() { + return nGetClipRectMinX(); + } + + public float getClipRectMinY() { + return nGetClipRectMinY(); + } + + public void getClipRectMin(final ImVec2 dst) { + nGetClipRectMin(dst); + } + + private native void nGetClipRectMin(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->GetClipRectMin(), dst); + */ + + private native float nGetClipRectMinX(); /* + return THIS->GetClipRectMin().x; + */ + + private native float nGetClipRectMinY(); /* + return THIS->GetClipRectMin().y; + */ + + public ImVec2 getClipRectMax() { + final ImVec2 dst = new ImVec2(); + nGetClipRectMax(dst); + return dst; + } + + public float getClipRectMaxX() { + return nGetClipRectMaxX(); + } + + public float getClipRectMaxY() { + return nGetClipRectMaxY(); + } + + public void getClipRectMax(final ImVec2 dst) { + nGetClipRectMax(dst); + } + + private native void nGetClipRectMax(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->GetClipRectMax(), dst); + */ + + private native float nGetClipRectMaxX(); /* + return THIS->GetClipRectMax().x; + */ + + private native float nGetClipRectMaxY(); /* + return THIS->GetClipRectMax().y; + */ + + // Primitives + // - For rectangular primitives, "pMin" and "pMax" represent the upper-left and lower-right corners. + // - For circle primitives, use "num_segments == 0" to automatically calculate tessellation (preferred). + // In older versions (until Dear ImGui 1.77) the AddCircle functions defaulted to num_segments == 12. + // In future versions we will use textures to provide cheaper and higher-quality circles. + // Use AddNgon() and AddNgonFilled() functions if you need to guaranteed a specific number of sides. + + public void addLine(final ImVec2 p1, final ImVec2 p2, final int col) { + nAddLine(p1.x, p1.y, p2.x, p2.y, col); + } + + public void addLine(final float p1X, final float p1Y, final float p2X, final float p2Y, final int col) { + nAddLine(p1X, p1Y, p2X, p2Y, col); + } + + public void addLine(final ImVec2 p1, final ImVec2 p2, final int col, final float thickness) { + nAddLine(p1.x, p1.y, p2.x, p2.y, col, thickness); + } + + public void addLine(final float p1X, final float p1Y, final float p2X, final float p2Y, final int col, final float thickness) { + nAddLine(p1X, p1Y, p2X, p2Y, col, thickness); + } + + private native void nAddLine(float p1X, float p1Y, float p2X, float p2Y, int col); /*MANUAL + ImVec2 p1 = ImVec2(p1X, p1Y); + ImVec2 p2 = ImVec2(p2X, p2Y); + THIS->AddLine(p1, p2, col); + */ + + private native void nAddLine(float p1X, float p1Y, float p2X, float p2Y, int col, float thickness); /*MANUAL + ImVec2 p1 = ImVec2(p1X, p1Y); + ImVec2 p2 = ImVec2(p2X, p2Y); + THIS->AddLine(p1, p2, col, thickness); + */ + + public void addRect(final ImVec2 pMin, final ImVec2 pMax, final int col) { + nAddRect(pMin.x, pMin.y, pMax.x, pMax.y, col); + } + + public void addRect(final float pMinX, final float pMinY, final float pMaxX, final float pMaxY, final int col) { + nAddRect(pMinX, pMinY, pMaxX, pMaxY, col); + } + + public void addRect(final ImVec2 pMin, final ImVec2 pMax, final int col, final float rounding) { + nAddRect(pMin.x, pMin.y, pMax.x, pMax.y, col, rounding); + } + + public void addRect(final float pMinX, final float pMinY, final float pMaxX, final float pMaxY, final int col, final float rounding) { + nAddRect(pMinX, pMinY, pMaxX, pMaxY, col, rounding); + } + + public void addRect(final ImVec2 pMin, final ImVec2 pMax, final int col, final float rounding, final int flags) { + nAddRect(pMin.x, pMin.y, pMax.x, pMax.y, col, rounding, flags); + } + + public void addRect(final float pMinX, final float pMinY, final float pMaxX, final float pMaxY, final int col, final float rounding, final int flags) { + nAddRect(pMinX, pMinY, pMaxX, pMaxY, col, rounding, flags); + } + + public void addRect(final ImVec2 pMin, final ImVec2 pMax, final int col, final float rounding, final int flags, final float thickness) { + nAddRect(pMin.x, pMin.y, pMax.x, pMax.y, col, rounding, flags, thickness); + } + + public void addRect(final float pMinX, final float pMinY, final float pMaxX, final float pMaxY, final int col, final float rounding, final int flags, final float thickness) { + nAddRect(pMinX, pMinY, pMaxX, pMaxY, col, rounding, flags, thickness); + } + + public void addRect(final ImVec2 pMin, final ImVec2 pMax, final int col, final int flags, final float thickness) { + nAddRect(pMin.x, pMin.y, pMax.x, pMax.y, col, flags, thickness); + } + + public void addRect(final float pMinX, final float pMinY, final float pMaxX, final float pMaxY, final int col, final int flags, final float thickness) { + nAddRect(pMinX, pMinY, pMaxX, pMaxY, col, flags, thickness); + } + + public void addRect(final ImVec2 pMin, final ImVec2 pMax, final int col, final float rounding, final float thickness) { + nAddRect(pMin.x, pMin.y, pMax.x, pMax.y, col, rounding, thickness); + } + + public void addRect(final float pMinX, final float pMinY, final float pMaxX, final float pMaxY, final int col, final float rounding, final float thickness) { + nAddRect(pMinX, pMinY, pMaxX, pMaxY, col, rounding, thickness); + } + + private native void nAddRect(float pMinX, float pMinY, float pMaxX, float pMaxY, int col); /*MANUAL + ImVec2 pMin = ImVec2(pMinX, pMinY); + ImVec2 pMax = ImVec2(pMaxX, pMaxY); + THIS->AddRect(pMin, pMax, col); + */ + + private native void nAddRect(float pMinX, float pMinY, float pMaxX, float pMaxY, int col, float rounding); /*MANUAL + ImVec2 pMin = ImVec2(pMinX, pMinY); + ImVec2 pMax = ImVec2(pMaxX, pMaxY); + THIS->AddRect(pMin, pMax, col, rounding); + */ + + private native void nAddRect(float pMinX, float pMinY, float pMaxX, float pMaxY, int col, float rounding, int flags); /*MANUAL + ImVec2 pMin = ImVec2(pMinX, pMinY); + ImVec2 pMax = ImVec2(pMaxX, pMaxY); + THIS->AddRect(pMin, pMax, col, rounding, flags); + */ + + private native void nAddRect(float pMinX, float pMinY, float pMaxX, float pMaxY, int col, float rounding, int flags, float thickness); /*MANUAL + ImVec2 pMin = ImVec2(pMinX, pMinY); + ImVec2 pMax = ImVec2(pMaxX, pMaxY); + THIS->AddRect(pMin, pMax, col, rounding, flags, thickness); + */ + + private native void nAddRect(float pMinX, float pMinY, float pMaxX, float pMaxY, int col, int flags, float thickness); /*MANUAL + ImVec2 pMin = ImVec2(pMinX, pMinY); + ImVec2 pMax = ImVec2(pMaxX, pMaxY); + THIS->AddRect(pMin, pMax, col, 0.0f, flags, thickness); + */ + + private native void nAddRect(float pMinX, float pMinY, float pMaxX, float pMaxY, int col, float rounding, float thickness); /*MANUAL + ImVec2 pMin = ImVec2(pMinX, pMinY); + ImVec2 pMax = ImVec2(pMaxX, pMaxY); + THIS->AddRect(pMin, pMax, col, rounding, 0, thickness); + */ + + public void addRectFilled(final ImVec2 pMin, final ImVec2 pMax, final int col) { + nAddRectFilled(pMin.x, pMin.y, pMax.x, pMax.y, col); + } + + public void addRectFilled(final float pMinX, final float pMinY, final float pMaxX, final float pMaxY, final int col) { + nAddRectFilled(pMinX, pMinY, pMaxX, pMaxY, col); + } + + public void addRectFilled(final ImVec2 pMin, final ImVec2 pMax, final int col, final float rounding) { + nAddRectFilled(pMin.x, pMin.y, pMax.x, pMax.y, col, rounding); + } + + public void addRectFilled(final float pMinX, final float pMinY, final float pMaxX, final float pMaxY, final int col, final float rounding) { + nAddRectFilled(pMinX, pMinY, pMaxX, pMaxY, col, rounding); + } + + public void addRectFilled(final ImVec2 pMin, final ImVec2 pMax, final int col, final float rounding, final int flags) { + nAddRectFilled(pMin.x, pMin.y, pMax.x, pMax.y, col, rounding, flags); + } + + public void addRectFilled(final float pMinX, final float pMinY, final float pMaxX, final float pMaxY, final int col, final float rounding, final int flags) { + nAddRectFilled(pMinX, pMinY, pMaxX, pMaxY, col, rounding, flags); + } + + public void addRectFilled(final ImVec2 pMin, final ImVec2 pMax, final int col, final int flags) { + nAddRectFilled(pMin.x, pMin.y, pMax.x, pMax.y, col, flags); + } + + public void addRectFilled(final float pMinX, final float pMinY, final float pMaxX, final float pMaxY, final int col, final int flags) { + nAddRectFilled(pMinX, pMinY, pMaxX, pMaxY, col, flags); + } + + private native void nAddRectFilled(float pMinX, float pMinY, float pMaxX, float pMaxY, int col); /*MANUAL + ImVec2 pMin = ImVec2(pMinX, pMinY); + ImVec2 pMax = ImVec2(pMaxX, pMaxY); + THIS->AddRectFilled(pMin, pMax, col); + */ + + private native void nAddRectFilled(float pMinX, float pMinY, float pMaxX, float pMaxY, int col, float rounding); /*MANUAL + ImVec2 pMin = ImVec2(pMinX, pMinY); + ImVec2 pMax = ImVec2(pMaxX, pMaxY); + THIS->AddRectFilled(pMin, pMax, col, rounding); + */ + + private native void nAddRectFilled(float pMinX, float pMinY, float pMaxX, float pMaxY, int col, float rounding, int flags); /*MANUAL + ImVec2 pMin = ImVec2(pMinX, pMinY); + ImVec2 pMax = ImVec2(pMaxX, pMaxY); + THIS->AddRectFilled(pMin, pMax, col, rounding, flags); + */ + + private native void nAddRectFilled(float pMinX, float pMinY, float pMaxX, float pMaxY, int col, int flags); /*MANUAL + ImVec2 pMin = ImVec2(pMinX, pMinY); + ImVec2 pMax = ImVec2(pMaxX, pMaxY); + THIS->AddRectFilled(pMin, pMax, col, 0.0f, flags); + */ + + public void addRectFilledMultiColor(final ImVec2 pMin, final ImVec2 pMax, final int colUprLeft, final int colUprRight, final int colBotRight, final int colBotLeft) { + nAddRectFilledMultiColor(pMin.x, pMin.y, pMax.x, pMax.y, colUprLeft, colUprRight, colBotRight, colBotLeft); + } + + public void addRectFilledMultiColor(final float pMinX, final float pMinY, final float pMaxX, final float pMaxY, final int colUprLeft, final int colUprRight, final int colBotRight, final int colBotLeft) { + nAddRectFilledMultiColor(pMinX, pMinY, pMaxX, pMaxY, colUprLeft, colUprRight, colBotRight, colBotLeft); + } + + private native void nAddRectFilledMultiColor(float pMinX, float pMinY, float pMaxX, float pMaxY, int colUprLeft, int colUprRight, int colBotRight, int colBotLeft); /*MANUAL + ImVec2 pMin = ImVec2(pMinX, pMinY); + ImVec2 pMax = ImVec2(pMaxX, pMaxY); + THIS->AddRectFilledMultiColor(pMin, pMax, colUprLeft, colUprRight, colBotRight, colBotLeft); + */ + + public void addQuad(final ImVec2 p1, final ImVec2 p2, final ImVec2 p3, final ImVec2 p4, final int col) { + nAddQuad(p1.x, p1.y, p2.x, p2.y, p3.x, p3.y, p4.x, p4.y, col); + } + + public void addQuad(final float p1X, final float p1Y, final float p2X, final float p2Y, final float p3X, final float p3Y, final float p4X, final float p4Y, final int col) { + nAddQuad(p1X, p1Y, p2X, p2Y, p3X, p3Y, p4X, p4Y, col); + } + + public void addQuad(final ImVec2 p1, final ImVec2 p2, final ImVec2 p3, final ImVec2 p4, final int col, final float thickness) { + nAddQuad(p1.x, p1.y, p2.x, p2.y, p3.x, p3.y, p4.x, p4.y, col, thickness); + } + + public void addQuad(final float p1X, final float p1Y, final float p2X, final float p2Y, final float p3X, final float p3Y, final float p4X, final float p4Y, final int col, final float thickness) { + nAddQuad(p1X, p1Y, p2X, p2Y, p3X, p3Y, p4X, p4Y, col, thickness); + } + + private native void nAddQuad(float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, int col); /*MANUAL + ImVec2 p1 = ImVec2(p1X, p1Y); + ImVec2 p2 = ImVec2(p2X, p2Y); + ImVec2 p3 = ImVec2(p3X, p3Y); + ImVec2 p4 = ImVec2(p4X, p4Y); + THIS->AddQuad(p1, p2, p3, p4, col); + */ + + private native void nAddQuad(float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, int col, float thickness); /*MANUAL + ImVec2 p1 = ImVec2(p1X, p1Y); + ImVec2 p2 = ImVec2(p2X, p2Y); + ImVec2 p3 = ImVec2(p3X, p3Y); + ImVec2 p4 = ImVec2(p4X, p4Y); + THIS->AddQuad(p1, p2, p3, p4, col, thickness); + */ + + public void addQuadFilled(final ImVec2 p1, final ImVec2 p2, final ImVec2 p3, final ImVec2 p4, final int col) { + nAddQuadFilled(p1.x, p1.y, p2.x, p2.y, p3.x, p3.y, p4.x, p4.y, col); + } + + public void addQuadFilled(final float p1X, final float p1Y, final float p2X, final float p2Y, final float p3X, final float p3Y, final float p4X, final float p4Y, final int col) { + nAddQuadFilled(p1X, p1Y, p2X, p2Y, p3X, p3Y, p4X, p4Y, col); + } + + private native void nAddQuadFilled(float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, int col); /*MANUAL + ImVec2 p1 = ImVec2(p1X, p1Y); + ImVec2 p2 = ImVec2(p2X, p2Y); + ImVec2 p3 = ImVec2(p3X, p3Y); + ImVec2 p4 = ImVec2(p4X, p4Y); + THIS->AddQuadFilled(p1, p2, p3, p4, col); + */ + + public void addTriangle(final ImVec2 p1, final ImVec2 p2, final ImVec2 p3, final int col) { + nAddTriangle(p1.x, p1.y, p2.x, p2.y, p3.x, p3.y, col); + } + + public void addTriangle(final float p1X, final float p1Y, final float p2X, final float p2Y, final float p3X, final float p3Y, final int col) { + nAddTriangle(p1X, p1Y, p2X, p2Y, p3X, p3Y, col); + } + + public void addTriangle(final ImVec2 p1, final ImVec2 p2, final ImVec2 p3, final int col, final float thickness) { + nAddTriangle(p1.x, p1.y, p2.x, p2.y, p3.x, p3.y, col, thickness); + } + + public void addTriangle(final float p1X, final float p1Y, final float p2X, final float p2Y, final float p3X, final float p3Y, final int col, final float thickness) { + nAddTriangle(p1X, p1Y, p2X, p2Y, p3X, p3Y, col, thickness); + } + + private native void nAddTriangle(float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, int col); /*MANUAL + ImVec2 p1 = ImVec2(p1X, p1Y); + ImVec2 p2 = ImVec2(p2X, p2Y); + ImVec2 p3 = ImVec2(p3X, p3Y); + THIS->AddTriangle(p1, p2, p3, col); + */ + + private native void nAddTriangle(float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, int col, float thickness); /*MANUAL + ImVec2 p1 = ImVec2(p1X, p1Y); + ImVec2 p2 = ImVec2(p2X, p2Y); + ImVec2 p3 = ImVec2(p3X, p3Y); + THIS->AddTriangle(p1, p2, p3, col, thickness); + */ + + public void addTriangleFilled(final ImVec2 p1, final ImVec2 p2, final ImVec2 p3, final int col) { + nAddTriangleFilled(p1.x, p1.y, p2.x, p2.y, p3.x, p3.y, col); + } + + public void addTriangleFilled(final float p1X, final float p1Y, final float p2X, final float p2Y, final float p3X, final float p3Y, final int col) { + nAddTriangleFilled(p1X, p1Y, p2X, p2Y, p3X, p3Y, col); + } + + private native void nAddTriangleFilled(float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, int col); /*MANUAL + ImVec2 p1 = ImVec2(p1X, p1Y); + ImVec2 p2 = ImVec2(p2X, p2Y); + ImVec2 p3 = ImVec2(p3X, p3Y); + THIS->AddTriangleFilled(p1, p2, p3, col); + */ + + public void addCircle(final ImVec2 center, final float radius, final int col) { + nAddCircle(center.x, center.y, radius, col); + } + + public void addCircle(final float centerX, final float centerY, final float radius, final int col) { + nAddCircle(centerX, centerY, radius, col); + } + + public void addCircle(final ImVec2 center, final float radius, final int col, final int numSegments) { + nAddCircle(center.x, center.y, radius, col, numSegments); + } + + public void addCircle(final float centerX, final float centerY, final float radius, final int col, final int numSegments) { + nAddCircle(centerX, centerY, radius, col, numSegments); + } + + public void addCircle(final ImVec2 center, final float radius, final int col, final int numSegments, final float thickness) { + nAddCircle(center.x, center.y, radius, col, numSegments, thickness); + } + + public void addCircle(final float centerX, final float centerY, final float radius, final int col, final int numSegments, final float thickness) { + nAddCircle(centerX, centerY, radius, col, numSegments, thickness); + } + + public void addCircle(final ImVec2 center, final float radius, final int col, final float thickness) { + nAddCircle(center.x, center.y, radius, col, thickness); + } + + public void addCircle(final float centerX, final float centerY, final float radius, final int col, final float thickness) { + nAddCircle(centerX, centerY, radius, col, thickness); + } + + private native void nAddCircle(float centerX, float centerY, float radius, int col); /*MANUAL + ImVec2 center = ImVec2(centerX, centerY); + THIS->AddCircle(center, radius, col); + */ + + private native void nAddCircle(float centerX, float centerY, float radius, int col, int numSegments); /*MANUAL + ImVec2 center = ImVec2(centerX, centerY); + THIS->AddCircle(center, radius, col, numSegments); + */ + + private native void nAddCircle(float centerX, float centerY, float radius, int col, int numSegments, float thickness); /*MANUAL + ImVec2 center = ImVec2(centerX, centerY); + THIS->AddCircle(center, radius, col, numSegments, thickness); + */ + + private native void nAddCircle(float centerX, float centerY, float radius, int col, float thickness); /*MANUAL + ImVec2 center = ImVec2(centerX, centerY); + THIS->AddCircle(center, radius, col, 0, thickness); + */ + + public void addCircleFilled(final ImVec2 center, final float radius, final int col) { + nAddCircleFilled(center.x, center.y, radius, col); + } + + public void addCircleFilled(final float centerX, final float centerY, final float radius, final int col) { + nAddCircleFilled(centerX, centerY, radius, col); + } + + public void addCircleFilled(final ImVec2 center, final float radius, final int col, final int numSegments) { + nAddCircleFilled(center.x, center.y, radius, col, numSegments); + } + + public void addCircleFilled(final float centerX, final float centerY, final float radius, final int col, final int numSegments) { + nAddCircleFilled(centerX, centerY, radius, col, numSegments); + } + + private native void nAddCircleFilled(float centerX, float centerY, float radius, int col); /*MANUAL + ImVec2 center = ImVec2(centerX, centerY); + THIS->AddCircleFilled(center, radius, col); + */ + + private native void nAddCircleFilled(float centerX, float centerY, float radius, int col, int numSegments); /*MANUAL + ImVec2 center = ImVec2(centerX, centerY); + THIS->AddCircleFilled(center, radius, col, numSegments); + */ + + public void addNgon(final ImVec2 center, final float radius, final int col, final int num_segments) { + nAddNgon(center.x, center.y, radius, col, num_segments); + } + + public void addNgon(final float centerX, final float centerY, final float radius, final int col, final int num_segments) { + nAddNgon(centerX, centerY, radius, col, num_segments); + } + + public void addNgon(final ImVec2 center, final float radius, final int col, final int num_segments, final float thickness) { + nAddNgon(center.x, center.y, radius, col, num_segments, thickness); + } + + public void addNgon(final float centerX, final float centerY, final float radius, final int col, final int num_segments, final float thickness) { + nAddNgon(centerX, centerY, radius, col, num_segments, thickness); + } + + private native void nAddNgon(float centerX, float centerY, float radius, int col, int num_segments); /*MANUAL + ImVec2 center = ImVec2(centerX, centerY); + THIS->AddNgon(center, radius, col, num_segments); + */ + + private native void nAddNgon(float centerX, float centerY, float radius, int col, int num_segments, float thickness); /*MANUAL + ImVec2 center = ImVec2(centerX, centerY); + THIS->AddNgon(center, radius, col, num_segments, thickness); + */ + + public void addNgonFilled(final ImVec2 center, final float radius, final int col, final int num_segments) { + nAddNgonFilled(center.x, center.y, radius, col, num_segments); + } + + public void addNgonFilled(final float centerX, final float centerY, final float radius, final int col, final int num_segments) { + nAddNgonFilled(centerX, centerY, radius, col, num_segments); + } + + private native void nAddNgonFilled(float centerX, float centerY, float radius, int col, int num_segments); /*MANUAL + ImVec2 center = ImVec2(centerX, centerY); + THIS->AddNgonFilled(center, radius, col, num_segments); + */ + + public void addText(final ImVec2 pos, final int col, final String textBegin) { + nAddText(pos.x, pos.y, col, textBegin); + } + + public void addText(final float posX, final float posY, final int col, final String textBegin) { + nAddText(posX, posY, col, textBegin); + } + + public void addText(final ImVec2 pos, final int col, final String textBegin, final String textEnd) { + nAddText(pos.x, pos.y, col, textBegin, textEnd); + } + + public void addText(final float posX, final float posY, final int col, final String textBegin, final String textEnd) { + nAddText(posX, posY, col, textBegin, textEnd); + } + + private native void nAddText(float posX, float posY, int col, String textBegin); /*MANUAL + auto textBegin = obj_textBegin == NULL ? NULL : (char*)env->GetStringUTFChars(obj_textBegin, JNI_FALSE); + ImVec2 pos = ImVec2(posX, posY); + THIS->AddText(pos, col, textBegin); + if (textBegin != NULL) env->ReleaseStringUTFChars(obj_textBegin, textBegin); + */ + + private native void nAddText(float posX, float posY, int col, String textBegin, String textEnd); /*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); + THIS->AddText(pos, col, textBegin, textEnd); + if (textBegin != NULL) env->ReleaseStringUTFChars(obj_textBegin, textBegin); + if (textEnd != NULL) env->ReleaseStringUTFChars(obj_textEnd, textEnd); + */ + + public void addText(final ImFont font, final int fontSize, final ImVec2 pos, final int col, final String textBegin) { + nAddText(font.ptr, fontSize, pos.x, pos.y, col, textBegin); + } + + public void addText(final ImFont font, final int fontSize, final float posX, final float posY, final int col, final String textBegin) { + nAddText(font.ptr, fontSize, posX, posY, col, textBegin); + } + + public void addText(final ImFont font, final int fontSize, final ImVec2 pos, final int col, final String textBegin, final String textEnd) { + nAddText(font.ptr, fontSize, pos.x, pos.y, col, textBegin, textEnd); + } + + public void addText(final ImFont font, final int fontSize, final float posX, final float posY, final int col, final String textBegin, final String textEnd) { + nAddText(font.ptr, fontSize, posX, posY, col, textBegin, textEnd); + } + + public void addText(final ImFont font, final int fontSize, final ImVec2 pos, final int col, final String textBegin, final String textEnd, final float wrapWidth) { + nAddText(font.ptr, fontSize, pos.x, pos.y, col, textBegin, textEnd, wrapWidth); + } + + public void addText(final ImFont font, final int fontSize, final float posX, final float posY, final int col, final String textBegin, final String textEnd, final float wrapWidth) { + nAddText(font.ptr, fontSize, posX, posY, col, textBegin, textEnd, wrapWidth); + } + + public void addText(final ImFont font, final int fontSize, final ImVec2 pos, final int col, final String textBegin, final String textEnd, final float wrapWidth, final ImVec4 cpuFineClipRect) { + nAddText(font.ptr, fontSize, pos.x, pos.y, col, textBegin, textEnd, wrapWidth, cpuFineClipRect.x, cpuFineClipRect.y, cpuFineClipRect.z, cpuFineClipRect.w); + } + + public void addText(final ImFont font, final int fontSize, final float posX, final float posY, final int col, final String textBegin, final String textEnd, final float wrapWidth, final float cpuFineClipRectX, final float cpuFineClipRectY, final float cpuFineClipRectZ, final float cpuFineClipRectW) { + nAddText(font.ptr, fontSize, posX, posY, col, textBegin, textEnd, wrapWidth, cpuFineClipRectX, cpuFineClipRectY, cpuFineClipRectZ, cpuFineClipRectW); + } + + public void addText(final ImFont font, final int fontSize, final ImVec2 pos, final int col, final String textBegin, final float wrapWidth, final ImVec4 cpuFineClipRect) { + nAddText(font.ptr, fontSize, pos.x, pos.y, col, textBegin, wrapWidth, cpuFineClipRect.x, cpuFineClipRect.y, cpuFineClipRect.z, cpuFineClipRect.w); + } + + public void addText(final ImFont font, final int fontSize, final float posX, final float posY, final int col, final String textBegin, final float wrapWidth, final float cpuFineClipRectX, final float cpuFineClipRectY, final float cpuFineClipRectZ, final float cpuFineClipRectW) { + nAddText(font.ptr, fontSize, posX, posY, col, textBegin, wrapWidth, cpuFineClipRectX, cpuFineClipRectY, cpuFineClipRectZ, cpuFineClipRectW); + } + + public void addText(final ImFont font, final int fontSize, final ImVec2 pos, final int col, final String textBegin, final ImVec4 cpuFineClipRect) { + nAddText(font.ptr, fontSize, pos.x, pos.y, col, textBegin, cpuFineClipRect.x, cpuFineClipRect.y, cpuFineClipRect.z, cpuFineClipRect.w); + } + + public void addText(final ImFont font, final int fontSize, final float posX, final float posY, final int col, final String textBegin, final float cpuFineClipRectX, final float cpuFineClipRectY, final float cpuFineClipRectZ, final float cpuFineClipRectW) { + nAddText(font.ptr, fontSize, posX, posY, col, textBegin, cpuFineClipRectX, cpuFineClipRectY, cpuFineClipRectZ, cpuFineClipRectW); + } + + public void addText(final ImFont font, final int fontSize, final ImVec2 pos, final int col, final String textBegin, final String textEnd, final ImVec4 cpuFineClipRect) { + nAddText(font.ptr, fontSize, pos.x, pos.y, col, textBegin, textEnd, cpuFineClipRect.x, cpuFineClipRect.y, cpuFineClipRect.z, cpuFineClipRect.w); + } + + public void addText(final ImFont font, final int fontSize, final float posX, final float posY, final int col, final String textBegin, final String textEnd, final float cpuFineClipRectX, final float cpuFineClipRectY, final float cpuFineClipRectZ, final float cpuFineClipRectW) { + nAddText(font.ptr, fontSize, posX, posY, col, textBegin, textEnd, cpuFineClipRectX, cpuFineClipRectY, cpuFineClipRectZ, cpuFineClipRectW); + } + + private native void nAddText(long font, int fontSize, float posX, float posY, int col, String textBegin); /*MANUAL + auto textBegin = obj_textBegin == NULL ? NULL : (char*)env->GetStringUTFChars(obj_textBegin, JNI_FALSE); + ImVec2 pos = ImVec2(posX, posY); + THIS->AddText(reinterpret_cast(font), fontSize, pos, col, textBegin); + if (textBegin != NULL) env->ReleaseStringUTFChars(obj_textBegin, textBegin); + */ + + private native void nAddText(long font, int fontSize, float posX, float posY, int col, String textBegin, String textEnd); /*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); + THIS->AddText(reinterpret_cast(font), fontSize, pos, col, textBegin, textEnd); + if (textBegin != NULL) env->ReleaseStringUTFChars(obj_textBegin, textBegin); + if (textEnd != NULL) env->ReleaseStringUTFChars(obj_textEnd, textEnd); + */ + + private native void nAddText(long font, int fontSize, float posX, float posY, int col, String textBegin, String textEnd, float wrapWidth); /*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); + THIS->AddText(reinterpret_cast(font), fontSize, pos, col, textBegin, textEnd, wrapWidth); + if (textBegin != NULL) env->ReleaseStringUTFChars(obj_textBegin, textBegin); + if (textEnd != NULL) env->ReleaseStringUTFChars(obj_textEnd, textEnd); + */ + + private native void nAddText(long font, int fontSize, float posX, float posY, int col, String textBegin, String textEnd, float wrapWidth, float cpuFineClipRectX, float cpuFineClipRectY, float cpuFineClipRectZ, float cpuFineClipRectW); /*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 cpuFineClipRect = ImVec4(cpuFineClipRectX, cpuFineClipRectY, cpuFineClipRectZ, cpuFineClipRectW); + THIS->AddText(reinterpret_cast(font), fontSize, pos, col, textBegin, textEnd, wrapWidth, &cpuFineClipRect); + if (textBegin != NULL) env->ReleaseStringUTFChars(obj_textBegin, textBegin); + if (textEnd != NULL) env->ReleaseStringUTFChars(obj_textEnd, textEnd); + */ + + private native void nAddText(long font, int fontSize, float posX, float posY, int col, String textBegin, float wrapWidth, float cpuFineClipRectX, float cpuFineClipRectY, float cpuFineClipRectZ, float cpuFineClipRectW); /*MANUAL + auto textBegin = obj_textBegin == NULL ? NULL : (char*)env->GetStringUTFChars(obj_textBegin, JNI_FALSE); + ImVec2 pos = ImVec2(posX, posY); + ImVec4 cpuFineClipRect = ImVec4(cpuFineClipRectX, cpuFineClipRectY, cpuFineClipRectZ, cpuFineClipRectW); + THIS->AddText(reinterpret_cast(font), fontSize, pos, col, textBegin, NULL, wrapWidth, &cpuFineClipRect); + if (textBegin != NULL) env->ReleaseStringUTFChars(obj_textBegin, textBegin); + */ + + private native void nAddText(long font, int fontSize, float posX, float posY, int col, String textBegin, float cpuFineClipRectX, float cpuFineClipRectY, float cpuFineClipRectZ, float cpuFineClipRectW); /*MANUAL + auto textBegin = obj_textBegin == NULL ? NULL : (char*)env->GetStringUTFChars(obj_textBegin, JNI_FALSE); + ImVec2 pos = ImVec2(posX, posY); + ImVec4 cpuFineClipRect = ImVec4(cpuFineClipRectX, cpuFineClipRectY, cpuFineClipRectZ, cpuFineClipRectW); + THIS->AddText(reinterpret_cast(font), fontSize, pos, col, textBegin, NULL, 0.0f, &cpuFineClipRect); + if (textBegin != NULL) env->ReleaseStringUTFChars(obj_textBegin, textBegin); + */ + + private native void nAddText(long font, int fontSize, float posX, float posY, int col, String textBegin, String textEnd, float cpuFineClipRectX, float cpuFineClipRectY, float cpuFineClipRectZ, float cpuFineClipRectW); /*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 cpuFineClipRect = ImVec4(cpuFineClipRectX, cpuFineClipRectY, cpuFineClipRectZ, cpuFineClipRectW); + THIS->AddText(reinterpret_cast(font), fontSize, pos, col, textBegin, textEnd, 0.0f, &cpuFineClipRect); + if (textBegin != NULL) env->ReleaseStringUTFChars(obj_textBegin, textBegin); + if (textEnd != NULL) env->ReleaseStringUTFChars(obj_textEnd, textEnd); + */ + + public void addPolyline(final ImVec2[] points, final int numPoint, final int col, final int imDrawFlags, final float thickness) { + nAddPolyline(points, numPoint, col, imDrawFlags, thickness); + } + + private native void nAddPolyline(ImVec2[] obj_points, int numPoint, int col, int imDrawFlags, float thickness); /*MANUAL + int pointsLength = env->GetArrayLength(obj_points); + ImVec2 points[pointsLength]; + for (int i = 0; i < pointsLength; i++) { + jobject src = env->GetObjectArrayElement(obj_points, i); + ImVec2 dst; + Jni::ImVec2Cpy(env, src, &dst); + points[i] = dst; + }; + THIS->AddPolyline(points, numPoint, col, imDrawFlags, thickness); + */ + + /** + * Note: Anti-aliased filling requires points to be in clockwise order. + */ + public void addConvexPolyFilled(final ImVec2[] points, final int numPoints, final int col) { + nAddConvexPolyFilled(points, numPoints, col); + } + + private native void nAddConvexPolyFilled(ImVec2[] obj_points, int numPoints, int col); /*MANUAL + int pointsLength = env->GetArrayLength(obj_points); + ImVec2 points[pointsLength]; + for (int i = 0; i < pointsLength; i++) { + jobject src = env->GetObjectArrayElement(obj_points, i); + ImVec2 dst; + Jni::ImVec2Cpy(env, src, &dst); + points[i] = dst; + }; + THIS->AddConvexPolyFilled(points, numPoints, col); + */ + + /** + * Cubic Bezier (4 control points) + */ + public void addBezierCubic(final ImVec2 p1, final ImVec2 p2, final ImVec2 p3, final ImVec2 p4, final int col, final float thickness) { + nAddBezierCubic(p1.x, p1.y, p2.x, p2.y, p3.x, p3.y, p4.x, p4.y, col, thickness); + } + + /** + * Cubic Bezier (4 control points) + */ + public void addBezierCubic(final float p1X, final float p1Y, final float p2X, final float p2Y, final float p3X, final float p3Y, final float p4X, final float p4Y, final int col, final float thickness) { + nAddBezierCubic(p1X, p1Y, p2X, p2Y, p3X, p3Y, p4X, p4Y, col, thickness); + } + + /** + * Cubic Bezier (4 control points) + */ + public void addBezierCubic(final ImVec2 p1, final ImVec2 p2, final ImVec2 p3, final ImVec2 p4, final int col, final float thickness, final int numSegments) { + nAddBezierCubic(p1.x, p1.y, p2.x, p2.y, p3.x, p3.y, p4.x, p4.y, col, thickness, numSegments); + } + + /** + * Cubic Bezier (4 control points) + */ + public void addBezierCubic(final float p1X, final float p1Y, final float p2X, final float p2Y, final float p3X, final float p3Y, final float p4X, final float p4Y, final int col, final float thickness, final int numSegments) { + nAddBezierCubic(p1X, p1Y, p2X, p2Y, p3X, p3Y, p4X, p4Y, col, thickness, numSegments); + } + + private native void nAddBezierCubic(float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, int col, float thickness); /*MANUAL + ImVec2 p1 = ImVec2(p1X, p1Y); + ImVec2 p2 = ImVec2(p2X, p2Y); + ImVec2 p3 = ImVec2(p3X, p3Y); + ImVec2 p4 = ImVec2(p4X, p4Y); + THIS->AddBezierCubic(p1, p2, p3, p4, col, thickness); + */ + + private native void nAddBezierCubic(float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, int col, float thickness, int numSegments); /*MANUAL + ImVec2 p1 = ImVec2(p1X, p1Y); + ImVec2 p2 = ImVec2(p2X, p2Y); + ImVec2 p3 = ImVec2(p3X, p3Y); + ImVec2 p4 = ImVec2(p4X, p4Y); + THIS->AddBezierCubic(p1, p2, p3, p4, col, thickness, numSegments); + */ + + /** + * Quadratic Bezier (3 control points) + */ + public void addBezierQuadratic(final ImVec2 p1, final ImVec2 p2, final ImVec2 p3, final int col, final float thickness) { + nAddBezierQuadratic(p1.x, p1.y, p2.x, p2.y, p3.x, p3.y, col, thickness); + } + + /** + * Quadratic Bezier (3 control points) + */ + public void addBezierQuadratic(final float p1X, final float p1Y, final float p2X, final float p2Y, final float p3X, final float p3Y, final int col, final float thickness) { + nAddBezierQuadratic(p1X, p1Y, p2X, p2Y, p3X, p3Y, col, thickness); + } + + /** + * Quadratic Bezier (3 control points) + */ + public void addBezierQuadratic(final ImVec2 p1, final ImVec2 p2, final ImVec2 p3, final int col, final float thickness, final int numSegments) { + nAddBezierQuadratic(p1.x, p1.y, p2.x, p2.y, p3.x, p3.y, col, thickness, numSegments); + } + + /** + * Quadratic Bezier (3 control points) + */ + public void addBezierQuadratic(final float p1X, final float p1Y, final float p2X, final float p2Y, final float p3X, final float p3Y, final int col, final float thickness, final int numSegments) { + nAddBezierQuadratic(p1X, p1Y, p2X, p2Y, p3X, p3Y, col, thickness, numSegments); + } + + private native void nAddBezierQuadratic(float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, int col, float thickness); /*MANUAL + ImVec2 p1 = ImVec2(p1X, p1Y); + ImVec2 p2 = ImVec2(p2X, p2Y); + ImVec2 p3 = ImVec2(p3X, p3Y); + THIS->AddBezierQuadratic(p1, p2, p3, col, thickness); + */ + + private native void nAddBezierQuadratic(float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, int col, float thickness, int numSegments); /*MANUAL + ImVec2 p1 = ImVec2(p1X, p1Y); + ImVec2 p2 = ImVec2(p2X, p2Y); + ImVec2 p3 = ImVec2(p3X, p3Y); + THIS->AddBezierQuadratic(p1, p2, p3, col, thickness, numSegments); + */ + + // Image primitives + // - Read FAQ to understand what ImTextureID is. + // - "pMin" and "pMax" represent the upper-left and lower-right corners of the rectangle. + // - "uvMin" and "uvMax" represent the normalized texture coordinates to use for those corners. Using (0,0)->(1,1) texture coordinates will generally display the entire texture. + + public void addImage(final int textureID, final ImVec2 pMin, final ImVec2 pMax) { + nAddImage(textureID, pMin.x, pMin.y, pMax.x, pMax.y); + } + + public void addImage(final int textureID, final float pMinX, final float pMinY, final float pMaxX, final float pMaxY) { + nAddImage(textureID, pMinX, pMinY, pMaxX, pMaxY); + } + + public void addImage(final int textureID, final ImVec2 pMin, final ImVec2 pMax, final ImVec2 uvMin) { + nAddImage(textureID, pMin.x, pMin.y, pMax.x, pMax.y, uvMin.x, uvMin.y); + } + + public void addImage(final int textureID, final float pMinX, final float pMinY, final float pMaxX, final float pMaxY, final float uvMinX, final float uvMinY) { + nAddImage(textureID, pMinX, pMinY, pMaxX, pMaxY, uvMinX, uvMinY); + } + + public void addImage(final int textureID, final ImVec2 pMin, final ImVec2 pMax, final ImVec2 uvMin, final ImVec2 uvMax) { + nAddImage(textureID, pMin.x, pMin.y, pMax.x, pMax.y, uvMin.x, uvMin.y, uvMax.x, uvMax.y); + } + + public void addImage(final int textureID, final float pMinX, final float pMinY, final float pMaxX, final float pMaxY, final float uvMinX, final float uvMinY, final float uvMaxX, final float uvMaxY) { + nAddImage(textureID, pMinX, pMinY, pMaxX, pMaxY, uvMinX, uvMinY, uvMaxX, uvMaxY); + } + + public void addImage(final int textureID, final ImVec2 pMin, final ImVec2 pMax, final ImVec2 uvMin, final ImVec2 uvMax, final int col) { + nAddImage(textureID, pMin.x, pMin.y, pMax.x, pMax.y, uvMin.x, uvMin.y, uvMax.x, uvMax.y, col); + } + + public void addImage(final int textureID, final float pMinX, final float pMinY, final float pMaxX, final float pMaxY, final float uvMinX, final float uvMinY, final float uvMaxX, final float uvMaxY, final int col) { + nAddImage(textureID, pMinX, pMinY, pMaxX, pMaxY, uvMinX, uvMinY, uvMaxX, uvMaxY, col); + } + + private native void nAddImage(int textureID, float pMinX, float pMinY, float pMaxX, float pMaxY); /*MANUAL + ImVec2 pMin = ImVec2(pMinX, pMinY); + ImVec2 pMax = ImVec2(pMaxX, pMaxY); + THIS->AddImage((ImTextureID)(intptr_t)textureID, pMin, pMax); + */ + + private native void nAddImage(int textureID, float pMinX, float pMinY, float pMaxX, float pMaxY, float uvMinX, float uvMinY); /*MANUAL + ImVec2 pMin = ImVec2(pMinX, pMinY); + ImVec2 pMax = ImVec2(pMaxX, pMaxY); + ImVec2 uvMin = ImVec2(uvMinX, uvMinY); + THIS->AddImage((ImTextureID)(intptr_t)textureID, pMin, pMax, uvMin); + */ + + private native void nAddImage(int textureID, float pMinX, float pMinY, float pMaxX, float pMaxY, float uvMinX, float uvMinY, float uvMaxX, float uvMaxY); /*MANUAL + ImVec2 pMin = ImVec2(pMinX, pMinY); + ImVec2 pMax = ImVec2(pMaxX, pMaxY); + ImVec2 uvMin = ImVec2(uvMinX, uvMinY); + ImVec2 uvMax = ImVec2(uvMaxX, uvMaxY); + THIS->AddImage((ImTextureID)(intptr_t)textureID, pMin, pMax, uvMin, uvMax); + */ + + private native void nAddImage(int textureID, float pMinX, float pMinY, float pMaxX, float pMaxY, float uvMinX, float uvMinY, float uvMaxX, float uvMaxY, int col); /*MANUAL + ImVec2 pMin = ImVec2(pMinX, pMinY); + ImVec2 pMax = ImVec2(pMaxX, pMaxY); + ImVec2 uvMin = ImVec2(uvMinX, uvMinY); + ImVec2 uvMax = ImVec2(uvMaxX, uvMaxY); + THIS->AddImage((ImTextureID)(intptr_t)textureID, pMin, pMax, uvMin, uvMax, col); + */ + + public void addImageQuad(final int textureID, final ImVec2 p1, final ImVec2 p2, final ImVec2 p3, final ImVec2 p4) { + nAddImageQuad(textureID, p1.x, p1.y, p2.x, p2.y, p3.x, p3.y, p4.x, p4.y); + } + + public void addImageQuad(final int textureID, final float p1X, final float p1Y, final float p2X, final float p2Y, final float p3X, final float p3Y, final float p4X, final float p4Y) { + nAddImageQuad(textureID, p1X, p1Y, p2X, p2Y, p3X, p3Y, p4X, p4Y); + } + + public void addImageQuad(final int textureID, final ImVec2 p1, final ImVec2 p2, final ImVec2 p3, final ImVec2 p4, final ImVec2 uv1) { + nAddImageQuad(textureID, p1.x, p1.y, p2.x, p2.y, p3.x, p3.y, p4.x, p4.y, uv1.x, uv1.y); + } + + public void addImageQuad(final int textureID, final float p1X, final float p1Y, final float p2X, final float p2Y, final float p3X, final float p3Y, final float p4X, final float p4Y, final float uv1X, final float uv1Y) { + nAddImageQuad(textureID, p1X, p1Y, p2X, p2Y, p3X, p3Y, p4X, p4Y, uv1X, uv1Y); + } + + public void addImageQuad(final int textureID, final ImVec2 p1, final ImVec2 p2, final ImVec2 p3, final ImVec2 p4, final ImVec2 uv1, final ImVec2 uv2) { + nAddImageQuad(textureID, p1.x, p1.y, p2.x, p2.y, p3.x, p3.y, p4.x, p4.y, uv1.x, uv1.y, uv2.x, uv2.y); + } + + public void addImageQuad(final int textureID, final float p1X, final float p1Y, final float p2X, final float p2Y, final float p3X, final float p3Y, final float p4X, final float p4Y, final float uv1X, final float uv1Y, final float uv2X, final float uv2Y) { + nAddImageQuad(textureID, p1X, p1Y, p2X, p2Y, p3X, p3Y, p4X, p4Y, uv1X, uv1Y, uv2X, uv2Y); + } + + public void addImageQuad(final int textureID, final ImVec2 p1, final ImVec2 p2, final ImVec2 p3, final ImVec2 p4, final ImVec2 uv1, final ImVec2 uv2, final ImVec2 uv3) { + nAddImageQuad(textureID, p1.x, p1.y, p2.x, p2.y, p3.x, p3.y, p4.x, p4.y, uv1.x, uv1.y, uv2.x, uv2.y, uv3.x, uv3.y); + } + + public void addImageQuad(final int textureID, final float p1X, final float p1Y, final float p2X, final float p2Y, final float p3X, final float p3Y, final float p4X, final float p4Y, final float uv1X, final float uv1Y, final float uv2X, final float uv2Y, final float uv3X, final float uv3Y) { + nAddImageQuad(textureID, p1X, p1Y, p2X, p2Y, p3X, p3Y, p4X, p4Y, uv1X, uv1Y, uv2X, uv2Y, uv3X, uv3Y); + } + + public void addImageQuad(final int textureID, final ImVec2 p1, final ImVec2 p2, final ImVec2 p3, final ImVec2 p4, final ImVec2 uv1, final ImVec2 uv2, final ImVec2 uv3, final ImVec2 uv4) { + nAddImageQuad(textureID, p1.x, p1.y, p2.x, p2.y, p3.x, p3.y, p4.x, p4.y, uv1.x, uv1.y, uv2.x, uv2.y, uv3.x, uv3.y, uv4.x, uv4.y); + } + + public void addImageQuad(final int textureID, final float p1X, final float p1Y, final float p2X, final float p2Y, final float p3X, final float p3Y, final float p4X, final float p4Y, final float uv1X, final float uv1Y, final float uv2X, final float uv2Y, final float uv3X, final float uv3Y, final float uv4X, final float uv4Y) { + nAddImageQuad(textureID, p1X, p1Y, p2X, p2Y, p3X, p3Y, p4X, p4Y, uv1X, uv1Y, uv2X, uv2Y, uv3X, uv3Y, uv4X, uv4Y); + } + + public void addImageQuad(final int textureID, final ImVec2 p1, final ImVec2 p2, final ImVec2 p3, final ImVec2 p4, final ImVec2 uv1, final ImVec2 uv2, final ImVec2 uv3, final ImVec2 uv4, final int col) { + nAddImageQuad(textureID, p1.x, p1.y, p2.x, p2.y, p3.x, p3.y, p4.x, p4.y, uv1.x, uv1.y, uv2.x, uv2.y, uv3.x, uv3.y, uv4.x, uv4.y, col); + } + + public void addImageQuad(final int textureID, final float p1X, final float p1Y, final float p2X, final float p2Y, final float p3X, final float p3Y, final float p4X, final float p4Y, final float uv1X, final float uv1Y, final float uv2X, final float uv2Y, final float uv3X, final float uv3Y, final float uv4X, final float uv4Y, final int col) { + nAddImageQuad(textureID, p1X, p1Y, p2X, p2Y, p3X, p3Y, p4X, p4Y, uv1X, uv1Y, uv2X, uv2Y, uv3X, uv3Y, uv4X, uv4Y, col); + } + + private native void nAddImageQuad(int textureID, float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y); /*MANUAL + ImVec2 p1 = ImVec2(p1X, p1Y); + ImVec2 p2 = ImVec2(p2X, p2Y); + ImVec2 p3 = ImVec2(p3X, p3Y); + ImVec2 p4 = ImVec2(p4X, p4Y); + THIS->AddImageQuad((ImTextureID)(intptr_t)textureID, p1, p2, p3, p4); + */ + + private native void nAddImageQuad(int textureID, float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, float uv1X, float uv1Y); /*MANUAL + ImVec2 p1 = ImVec2(p1X, p1Y); + ImVec2 p2 = ImVec2(p2X, p2Y); + ImVec2 p3 = ImVec2(p3X, p3Y); + ImVec2 p4 = ImVec2(p4X, p4Y); + ImVec2 uv1 = ImVec2(uv1X, uv1Y); + THIS->AddImageQuad((ImTextureID)(intptr_t)textureID, p1, p2, p3, p4, uv1); + */ + + private native void nAddImageQuad(int textureID, float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, float uv1X, float uv1Y, float uv2X, float uv2Y); /*MANUAL + ImVec2 p1 = ImVec2(p1X, p1Y); + ImVec2 p2 = ImVec2(p2X, p2Y); + ImVec2 p3 = ImVec2(p3X, p3Y); + ImVec2 p4 = ImVec2(p4X, p4Y); + ImVec2 uv1 = ImVec2(uv1X, uv1Y); + ImVec2 uv2 = ImVec2(uv2X, uv2Y); + THIS->AddImageQuad((ImTextureID)(intptr_t)textureID, p1, p2, p3, p4, uv1, uv2); + */ + + private native void nAddImageQuad(int textureID, float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, float uv1X, float uv1Y, float uv2X, float uv2Y, float uv3X, float uv3Y); /*MANUAL + ImVec2 p1 = ImVec2(p1X, p1Y); + ImVec2 p2 = ImVec2(p2X, p2Y); + ImVec2 p3 = ImVec2(p3X, p3Y); + ImVec2 p4 = ImVec2(p4X, p4Y); + ImVec2 uv1 = ImVec2(uv1X, uv1Y); + ImVec2 uv2 = ImVec2(uv2X, uv2Y); + ImVec2 uv3 = ImVec2(uv3X, uv3Y); + THIS->AddImageQuad((ImTextureID)(intptr_t)textureID, p1, p2, p3, p4, uv1, uv2, uv3); + */ + + private native void nAddImageQuad(int textureID, float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, float uv1X, float uv1Y, float uv2X, float uv2Y, float uv3X, float uv3Y, float uv4X, float uv4Y); /*MANUAL + ImVec2 p1 = ImVec2(p1X, p1Y); + ImVec2 p2 = ImVec2(p2X, p2Y); + ImVec2 p3 = ImVec2(p3X, p3Y); + ImVec2 p4 = ImVec2(p4X, p4Y); + ImVec2 uv1 = ImVec2(uv1X, uv1Y); + ImVec2 uv2 = ImVec2(uv2X, uv2Y); + ImVec2 uv3 = ImVec2(uv3X, uv3Y); + ImVec2 uv4 = ImVec2(uv4X, uv4Y); + THIS->AddImageQuad((ImTextureID)(intptr_t)textureID, p1, p2, p3, p4, uv1, uv2, uv3, uv4); + */ + + private native void nAddImageQuad(int textureID, float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, float uv1X, float uv1Y, float uv2X, float uv2Y, float uv3X, float uv3Y, float uv4X, float uv4Y, int col); /*MANUAL + ImVec2 p1 = ImVec2(p1X, p1Y); + ImVec2 p2 = ImVec2(p2X, p2Y); + ImVec2 p3 = ImVec2(p3X, p3Y); + ImVec2 p4 = ImVec2(p4X, p4Y); + ImVec2 uv1 = ImVec2(uv1X, uv1Y); + ImVec2 uv2 = ImVec2(uv2X, uv2Y); + ImVec2 uv3 = ImVec2(uv3X, uv3Y); + ImVec2 uv4 = ImVec2(uv4X, uv4Y); + THIS->AddImageQuad((ImTextureID)(intptr_t)textureID, p1, p2, p3, p4, uv1, uv2, uv3, uv4, col); + */ + + public void addImageRounded(final int textureID, final ImVec2 pMin, final ImVec2 pMax, final ImVec2 uvMin, final ImVec2 uvMax, final int col, final float rounding) { + nAddImageRounded(textureID, pMin.x, pMin.y, pMax.x, pMax.y, uvMin.x, uvMin.y, uvMax.x, uvMax.y, col, rounding); + } + + public void addImageRounded(final int textureID, final float pMinX, final float pMinY, final float pMaxX, final float pMaxY, final float uvMinX, final float uvMinY, final float uvMaxX, final float uvMaxY, final int col, final float rounding) { + nAddImageRounded(textureID, pMinX, pMinY, pMaxX, pMaxY, uvMinX, uvMinY, uvMaxX, uvMaxY, col, rounding); + } + + public void addImageRounded(final int textureID, final ImVec2 pMin, final ImVec2 pMax, final ImVec2 uvMin, final ImVec2 uvMax, final int col, final float rounding, final int imDrawFlags) { + nAddImageRounded(textureID, pMin.x, pMin.y, pMax.x, pMax.y, uvMin.x, uvMin.y, uvMax.x, uvMax.y, col, rounding, imDrawFlags); + } + + public void addImageRounded(final int textureID, final float pMinX, final float pMinY, final float pMaxX, final float pMaxY, final float uvMinX, final float uvMinY, final float uvMaxX, final float uvMaxY, final int col, final float rounding, final int imDrawFlags) { + nAddImageRounded(textureID, pMinX, pMinY, pMaxX, pMaxY, uvMinX, uvMinY, uvMaxX, uvMaxY, col, rounding, imDrawFlags); + } + + private native void nAddImageRounded(int textureID, float pMinX, float pMinY, float pMaxX, float pMaxY, float uvMinX, float uvMinY, float uvMaxX, float uvMaxY, int col, float rounding); /*MANUAL + ImVec2 pMin = ImVec2(pMinX, pMinY); + ImVec2 pMax = ImVec2(pMaxX, pMaxY); + ImVec2 uvMin = ImVec2(uvMinX, uvMinY); + ImVec2 uvMax = ImVec2(uvMaxX, uvMaxY); + THIS->AddImageRounded((ImTextureID)(intptr_t)textureID, pMin, pMax, uvMin, uvMax, col, rounding); + */ + + private native void nAddImageRounded(int textureID, float pMinX, float pMinY, float pMaxX, float pMaxY, float uvMinX, float uvMinY, float uvMaxX, float uvMaxY, int col, float rounding, int imDrawFlags); /*MANUAL + ImVec2 pMin = ImVec2(pMinX, pMinY); + ImVec2 pMax = ImVec2(pMaxX, pMaxY); + ImVec2 uvMin = ImVec2(uvMinX, uvMinY); + ImVec2 uvMax = ImVec2(uvMaxX, uvMaxY); + THIS->AddImageRounded((ImTextureID)(intptr_t)textureID, pMin, pMax, uvMin, uvMax, col, rounding, imDrawFlags); + */ + + // Stateful path API, add points then finish with PathFillConvex() or PathStroke() + + public void pathClear() { + nPathClear(); + } + + private native void nPathClear(); /* + THIS->PathClear(); + */ + + public void pathLineTo(final ImVec2 pos) { + nPathLineTo(pos.x, pos.y); + } + + public void pathLineTo(final float posX, final float posY) { + nPathLineTo(posX, posY); + } + + private native void nPathLineTo(float posX, float posY); /*MANUAL + ImVec2 pos = ImVec2(posX, posY); + THIS->PathLineTo(pos); + */ + + public void pathLineToMergeDuplicate(final ImVec2 pos) { + nPathLineToMergeDuplicate(pos.x, pos.y); + } + + public void pathLineToMergeDuplicate(final float posX, final float posY) { + nPathLineToMergeDuplicate(posX, posY); + } + + private native void nPathLineToMergeDuplicate(float posX, float posY); /*MANUAL + ImVec2 pos = ImVec2(posX, posY); + THIS->PathLineToMergeDuplicate(pos); + */ + + /** + * Note: Anti-aliased filling requires points to be in clockwise order. + */ + public void pathFillConvex(final int col) { + nPathFillConvex(col); + } + + private native void nPathFillConvex(int col); /* + THIS->PathFillConvex(col); + */ + + public void pathStroke(final int col) { + nPathStroke(col); + } + + public void pathStroke(final int col, final int imDrawFlags) { + nPathStroke(col, imDrawFlags); + } + + public void pathStroke(final int col, final int imDrawFlags, final float thickness) { + nPathStroke(col, imDrawFlags, thickness); + } + + public void pathStroke(final int col, final float thickness) { + nPathStroke(col, thickness); + } + + private native void nPathStroke(int col); /* + THIS->PathStroke(col); + */ + + private native void nPathStroke(int col, int imDrawFlags); /* + THIS->PathStroke(col, imDrawFlags); + */ + + private native void nPathStroke(int col, int imDrawFlags, float thickness); /* + THIS->PathStroke(col, imDrawFlags, thickness); + */ + + private native void nPathStroke(int col, float thickness); /* + THIS->PathStroke(col, 0, thickness); + */ + + public void pathArcTo(final ImVec2 center, final float radius, final float aMin, final float aMax) { + nPathArcTo(center.x, center.y, radius, aMin, aMax); + } + + public void pathArcTo(final float centerX, final float centerY, final float radius, final float aMin, final float aMax) { + nPathArcTo(centerX, centerY, radius, aMin, aMax); + } + + public void pathArcTo(final ImVec2 center, final float radius, final float aMin, final float aMax, final int numSegments) { + nPathArcTo(center.x, center.y, radius, aMin, aMax, numSegments); + } + + public void pathArcTo(final float centerX, final float centerY, final float radius, final float aMin, final float aMax, final int numSegments) { + nPathArcTo(centerX, centerY, radius, aMin, aMax, numSegments); + } + + private native void nPathArcTo(float centerX, float centerY, float radius, float aMin, float aMax); /*MANUAL + ImVec2 center = ImVec2(centerX, centerY); + THIS->PathArcTo(center, radius, aMin, aMax); + */ + + private native void nPathArcTo(float centerX, float centerY, float radius, float aMin, float aMax, int numSegments); /*MANUAL + ImVec2 center = ImVec2(centerX, centerY); + THIS->PathArcTo(center, radius, aMin, aMax, numSegments); + */ + + /** + * Use precomputed angles for a 12 steps circle + */ + public void pathArcToFast(final ImVec2 center, final float radius, final int aMinOf12, final int aMaxOf12) { + nPathArcToFast(center.x, center.y, radius, aMinOf12, aMaxOf12); + } + + /** + * Use precomputed angles for a 12 steps circle + */ + public void pathArcToFast(final float centerX, final float centerY, final float radius, final int aMinOf12, final int aMaxOf12) { + nPathArcToFast(centerX, centerY, radius, aMinOf12, aMaxOf12); + } + + private native void nPathArcToFast(float centerX, float centerY, float radius, int aMinOf12, int aMaxOf12); /*MANUAL + ImVec2 center = ImVec2(centerX, centerY); + THIS->PathArcToFast(center, radius, aMinOf12, aMaxOf12); + */ + + /** + * Cubic Bezier (4 control points) + */ + public void pathBezierCubicCurveTo(final ImVec2 p2, final ImVec2 p3, final ImVec2 p4) { + nPathBezierCubicCurveTo(p2.x, p2.y, p3.x, p3.y, p4.x, p4.y); + } + + /** + * Cubic Bezier (4 control points) + */ + public void pathBezierCubicCurveTo(final float p2X, final float p2Y, final float p3X, final float p3Y, final float p4X, final float p4Y) { + nPathBezierCubicCurveTo(p2X, p2Y, p3X, p3Y, p4X, p4Y); + } + + /** + * Cubic Bezier (4 control points) + */ + public void pathBezierCubicCurveTo(final ImVec2 p2, final ImVec2 p3, final ImVec2 p4, final int numSegments) { + nPathBezierCubicCurveTo(p2.x, p2.y, p3.x, p3.y, p4.x, p4.y, numSegments); + } + + /** + * Cubic Bezier (4 control points) + */ + public void pathBezierCubicCurveTo(final float p2X, final float p2Y, final float p3X, final float p3Y, final float p4X, final float p4Y, final int numSegments) { + nPathBezierCubicCurveTo(p2X, p2Y, p3X, p3Y, p4X, p4Y, numSegments); + } + + private native void nPathBezierCubicCurveTo(float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y); /*MANUAL + ImVec2 p2 = ImVec2(p2X, p2Y); + ImVec2 p3 = ImVec2(p3X, p3Y); + ImVec2 p4 = ImVec2(p4X, p4Y); + THIS->PathBezierCubicCurveTo(p2, p3, p4); + */ + + private native void nPathBezierCubicCurveTo(float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, int numSegments); /*MANUAL + ImVec2 p2 = ImVec2(p2X, p2Y); + ImVec2 p3 = ImVec2(p3X, p3Y); + ImVec2 p4 = ImVec2(p4X, p4Y); + THIS->PathBezierCubicCurveTo(p2, p3, p4, numSegments); + */ + + /** + * Quadratic Bezier (3 control points) + */ + public void pathBezierQuadraticCurveTo(final ImVec2 p2, final ImVec2 p3) { + nPathBezierQuadraticCurveTo(p2.x, p2.y, p3.x, p3.y); + } + + /** + * Quadratic Bezier (3 control points) + */ + public void pathBezierQuadraticCurveTo(final float p2X, final float p2Y, final float p3X, final float p3Y) { + nPathBezierQuadraticCurveTo(p2X, p2Y, p3X, p3Y); + } + + /** + * Quadratic Bezier (3 control points) + */ + public void pathBezierQuadraticCurveTo(final ImVec2 p2, final ImVec2 p3, final int numSegments) { + nPathBezierQuadraticCurveTo(p2.x, p2.y, p3.x, p3.y, numSegments); + } + + /** + * Quadratic Bezier (3 control points) + */ + public void pathBezierQuadraticCurveTo(final float p2X, final float p2Y, final float p3X, final float p3Y, final int numSegments) { + nPathBezierQuadraticCurveTo(p2X, p2Y, p3X, p3Y, numSegments); + } + + private native void nPathBezierQuadraticCurveTo(float p2X, float p2Y, float p3X, float p3Y); /*MANUAL + ImVec2 p2 = ImVec2(p2X, p2Y); + ImVec2 p3 = ImVec2(p3X, p3Y); + THIS->PathBezierQuadraticCurveTo(p2, p3); + */ + + private native void nPathBezierQuadraticCurveTo(float p2X, float p2Y, float p3X, float p3Y, int numSegments); /*MANUAL + ImVec2 p2 = ImVec2(p2X, p2Y); + ImVec2 p3 = ImVec2(p3X, p3Y); + THIS->PathBezierQuadraticCurveTo(p2, p3, numSegments); + */ + + public void pathRect(final ImVec2 rectMin, final ImVec2 rectMax) { + nPathRect(rectMin.x, rectMin.y, rectMax.x, rectMax.y); + } + + public void pathRect(final float rectMinX, final float rectMinY, final float rectMaxX, final float rectMaxY) { + nPathRect(rectMinX, rectMinY, rectMaxX, rectMaxY); + } + + public void pathRect(final ImVec2 rectMin, final ImVec2 rectMax, final float rounding) { + nPathRect(rectMin.x, rectMin.y, rectMax.x, rectMax.y, rounding); + } + + public void pathRect(final float rectMinX, final float rectMinY, final float rectMaxX, final float rectMaxY, final float rounding) { + nPathRect(rectMinX, rectMinY, rectMaxX, rectMaxY, rounding); + } + + public void pathRect(final ImVec2 rectMin, final ImVec2 rectMax, final float rounding, final int imDrawFlags) { + nPathRect(rectMin.x, rectMin.y, rectMax.x, rectMax.y, rounding, imDrawFlags); + } + + public void pathRect(final float rectMinX, final float rectMinY, final float rectMaxX, final float rectMaxY, final float rounding, final int imDrawFlags) { + nPathRect(rectMinX, rectMinY, rectMaxX, rectMaxY, rounding, imDrawFlags); + } + + public void pathRect(final ImVec2 rectMin, final ImVec2 rectMax, final int imDrawFlags) { + nPathRect(rectMin.x, rectMin.y, rectMax.x, rectMax.y, imDrawFlags); + } + + public void pathRect(final float rectMinX, final float rectMinY, final float rectMaxX, final float rectMaxY, final int imDrawFlags) { + nPathRect(rectMinX, rectMinY, rectMaxX, rectMaxY, imDrawFlags); + } + + private native void nPathRect(float rectMinX, float rectMinY, float rectMaxX, float rectMaxY); /*MANUAL + ImVec2 rectMin = ImVec2(rectMinX, rectMinY); + ImVec2 rectMax = ImVec2(rectMaxX, rectMaxY); + THIS->PathRect(rectMin, rectMax); + */ + + private native void nPathRect(float rectMinX, float rectMinY, float rectMaxX, float rectMaxY, float rounding); /*MANUAL + ImVec2 rectMin = ImVec2(rectMinX, rectMinY); + ImVec2 rectMax = ImVec2(rectMaxX, rectMaxY); + THIS->PathRect(rectMin, rectMax, rounding); + */ + + private native void nPathRect(float rectMinX, float rectMinY, float rectMaxX, float rectMaxY, float rounding, int imDrawFlags); /*MANUAL + ImVec2 rectMin = ImVec2(rectMinX, rectMinY); + ImVec2 rectMax = ImVec2(rectMaxX, rectMaxY); + THIS->PathRect(rectMin, rectMax, rounding, imDrawFlags); + */ + + private native void nPathRect(float rectMinX, float rectMinY, float rectMaxX, float rectMaxY, int imDrawFlags); /*MANUAL + ImVec2 rectMin = ImVec2(rectMinX, rectMinY); + ImVec2 rectMax = ImVec2(rectMaxX, rectMaxY); + THIS->PathRect(rectMin, rectMax, 0.0f, imDrawFlags); + */ + + // Advanced: Channels + // - Use to split render into layers. By switching channels to can render out-of-order (e.g. submit FG primitives before BG primitives) + // - Use to minimize draw calls (e.g. if going back-and-forth between multiple clipping rectangles, prefer to append into separate channels then merge at the end) + // Prefer using your own persistent instance of ImDrawListSplitter as you can stack them. + // Using the ImDrawList::ChannelsXXXX you cannot stack a split over another. + + public void channelsSplit(final int count) { + nChannelsSplit(count); + } + + private native void nChannelsSplit(int count); /* + THIS->ChannelsSplit(count); + */ + + public void channelsMerge() { + nChannelsMerge(); + } + + private native void nChannelsMerge(); /* + THIS->ChannelsMerge(); + */ + + public void channelsSetCurrent(final int n) { + nChannelsSetCurrent(n); + } + + private native void nChannelsSetCurrent(int n); /* + THIS->ChannelsSetCurrent(n); + */ + + // Advanced: Primitives allocations + // - We render triangles (three vertices) + // - All primitives needs to be reserved via PrimReserve() beforehand. + + public void primReserve(final int idxCount, final int vtxCount) { + nPrimReserve(idxCount, vtxCount); + } + + private native void nPrimReserve(int idxCount, int vtxCount); /* + THIS->PrimReserve(idxCount, vtxCount); + */ + + public void primUnreserve(final int idxCount, final int vtxCount) { + nPrimUnreserve(idxCount, vtxCount); + } + + private native void nPrimUnreserve(int idxCount, int vtxCount); /* + THIS->PrimUnreserve(idxCount, vtxCount); + */ + + public void primRect(final ImVec2 a, final ImVec2 b, final int col) { + nPrimRect(a.x, a.y, b.x, b.y, col); + } + + public void primRect(final float aX, final float aY, final float bX, final float bY, final int col) { + nPrimRect(aX, aY, bX, bY, col); + } + + private native void nPrimRect(float aX, float aY, float bX, float bY, int col); /*MANUAL + ImVec2 a = ImVec2(aX, aY); + ImVec2 b = ImVec2(bX, bY); + THIS->PrimRect(a, b, col); + */ + + public void primRectUV(final ImVec2 a, final ImVec2 b, final ImVec2 uvA, final ImVec2 uvB, final int col) { + nPrimRectUV(a.x, a.y, b.x, b.y, uvA.x, uvA.y, uvB.x, uvB.y, col); + } + + public void primRectUV(final float aX, final float aY, final float bX, final float bY, final float uvAX, final float uvAY, final float uvBX, final float uvBY, final int col) { + nPrimRectUV(aX, aY, bX, bY, uvAX, uvAY, uvBX, uvBY, col); + } + + private native void nPrimRectUV(float aX, float aY, float bX, float bY, float uvAX, float uvAY, float uvBX, float uvBY, int col); /*MANUAL + ImVec2 a = ImVec2(aX, aY); + ImVec2 b = ImVec2(bX, bY); + ImVec2 uvA = ImVec2(uvAX, uvAY); + ImVec2 uvB = ImVec2(uvBX, uvBY); + THIS->PrimRectUV(a, b, uvA, uvB, col); + */ + + public void primQuadUV(final ImVec2 a, final ImVec2 b, final ImVec2 c, final ImVec2 d, final ImVec2 uvA, final ImVec2 uvB, final ImVec2 uvC, final ImVec2 uvD, final int col) { + nPrimQuadUV(a.x, a.y, b.x, b.y, c.x, c.y, d.x, d.y, uvA.x, uvA.y, uvB.x, uvB.y, uvC.x, uvC.y, uvD.x, uvD.y, col); + } + + public void primQuadUV(final float aX, final float aY, final float bX, final float bY, final float cX, final float cY, final float dX, final float dY, final float uvAX, final float uvAY, final float uvBX, final float uvBY, final float uvCX, final float uvCY, final float uvDX, final float uvDY, final int col) { + nPrimQuadUV(aX, aY, bX, bY, cX, cY, dX, dY, uvAX, uvAY, uvBX, uvBY, uvCX, uvCY, uvDX, uvDY, col); + } + + private native void nPrimQuadUV(float aX, float aY, float bX, float bY, float cX, float cY, float dX, float dY, float uvAX, float uvAY, float uvBX, float uvBY, float uvCX, float uvCY, float uvDX, float uvDY, int col); /*MANUAL + ImVec2 a = ImVec2(aX, aY); + ImVec2 b = ImVec2(bX, bY); + ImVec2 c = ImVec2(cX, cY); + ImVec2 d = ImVec2(dX, dY); + ImVec2 uvA = ImVec2(uvAX, uvAY); + ImVec2 uvB = ImVec2(uvBX, uvBY); + ImVec2 uvC = ImVec2(uvCX, uvCY); + ImVec2 uvD = ImVec2(uvDX, uvDY); + THIS->PrimQuadUV(a, b, c, d, uvA, uvB, uvC, uvD, col); + */ + + public void primWriteVtx(final ImVec2 pos, final ImVec2 uv, final int col) { + nPrimWriteVtx(pos.x, pos.y, uv.x, uv.y, col); + } + + public void primWriteVtx(final float posX, final float posY, final float uvX, final float uvY, final int col) { + nPrimWriteVtx(posX, posY, uvX, uvY, col); + } + + private native void nPrimWriteVtx(float posX, float posY, float uvX, float uvY, int col); /*MANUAL + ImVec2 pos = ImVec2(posX, posY); + ImVec2 uv = ImVec2(uvX, uvY); + THIS->PrimWriteVtx(pos, uv, col); + */ + + public void primWriteIdx(final int idx) { + nPrimWriteIdx(idx); + } + + private native void nPrimWriteIdx(int idx); /* + THIS->PrimWriteIdx((ImDrawIdx)idx); + */ + + public void primVtx(final ImVec2 pos, final ImVec2 uv, final int col) { + nPrimVtx(pos.x, pos.y, uv.x, uv.y, col); + } + + public void primVtx(final float posX, final float posY, final float uvX, final float uvY, final int col) { + nPrimVtx(posX, posY, uvX, uvY, col); + } + + private native void nPrimVtx(float posX, float posY, float uvX, float uvY, int col); /*MANUAL + ImVec2 pos = ImVec2(posX, posY); + ImVec2 uv = ImVec2(uvX, uvY); + THIS->PrimVtx(pos, uv, col); + */ + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/ImFont.java b/imgui-binding/src/generated/java/imgui/ImFont.java new file mode 100644 index 0000000..27cfb25 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImFont.java @@ -0,0 +1,529 @@ +package imgui; + +import imgui.binding.ImGuiStructDestroyable; + +/** + * Font runtime data and rendering + * ImFontAtlas automatically loads a default embedded font for you when you call GetTexDataAsAlpha8() or GetTexDataAsRGBA32(). + */ +public final class ImFont extends ImGuiStructDestroyable { + public ImFont() { + } + + public ImFont(final long ptr) { + super(ptr); + } + + @Override + protected long create() { + return nCreate(); + } + + /*JNI + #include "_common.h" + #define THIS ((ImFont*)STRUCT_PTR) + */ + + private native long nCreate(); /* + return (intptr_t)(new ImFont()); + */ + + // TODO IndexAdvanceX + + /** + * = FallbackGlyph.AdvanceX + */ + public float getFallbackAdvanceX() { + return nGetFallbackAdvanceX(); + } + + /** + * = FallbackGlyph.AdvanceX + */ + public void setFallbackAdvanceX(final float value) { + nSetFallbackAdvanceX(value); + } + + private native float nGetFallbackAdvanceX(); /* + return THIS->FallbackAdvanceX; + */ + + 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 (intptr_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; + */ + + /** + * Character used for ellipsis rendering. + */ + public short getEllipsisChar() { + return nGetEllipsisChar(); + } + + /** + * Character used for ellipsis rendering. + */ + public void setEllipsisChar(final short value) { + nSetEllipsisChar(value); + } + + private native short nGetEllipsisChar(); /* + return THIS->EllipsisChar; + */ + + private native void nSetEllipsisChar(short value); /* + THIS->EllipsisChar = value; + */ + + /** + * Character used for ellipsis rendering (if a single '...' character isn't found) + */ + public short getDotChar() { + return nGetDotChar(); + } + + /** + * Character used for ellipsis rendering (if a single '...' character isn't found) + */ + public void setDotChar(final short value) { + nSetDotChar(value); + } + + private native short nGetDotChar(); /* + return THIS->DotChar; + */ + + private native void nSetDotChar(short value); /* + THIS->DotChar = value; + */ + + public boolean getDirtyLookupTables() { + return nGetDirtyLookupTables(); + } + + public void setDirtyLookupTables(final boolean value) { + nSetDirtyLookupTables(value); + } + + private native boolean nGetDirtyLookupTables(); /* + return THIS->DirtyLookupTables; + */ + + private native void nSetDirtyLookupTables(boolean value); /* + THIS->DirtyLookupTables = value; + */ + + /** + * Base font scale, multiplied by the per-window font scale which you can adjust with SetWindowFontScale() + */ + public float getScale() { + return nGetScale(); + } + + /** + * Base font scale, multiplied by the per-window font scale which you can adjust with SetWindowFontScale() + */ + public void setScale(final float value) { + nSetScale(value); + } + + private native float nGetScale(); /* + return THIS->Scale; + */ + + private native void nSetScale(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 (intptr_t)THIS->FindGlyph((ImWchar)c); + */ + + public ImFontGlyph findGlyphNoFallback(final int c) { + return new ImFontGlyph(nFindGlyphNoFallback(c)); + } + + private native long nFindGlyphNoFallback(int c); /* + return (intptr_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(); + } + + private native boolean nIsLoaded(); /* + return THIS->IsLoaded(); + */ + + public String getDebugName() { + return nGetDebugName(); + } + + private native String nGetDebugName(); /* + return env->NewStringUTF(THIS->GetDebugName()); + */ + + /** + * 'max_width' stops rendering after a certain width (could be turned into a 2d size). FLT_MAX to disable. + * 'wrap_width' enable automatic word-wrapping across multiple lines to fit into given width. 0.0f to disable. + */ + public ImVec2 calcTextSizeA(final float size, final float maxWidth, final float wrapWidth, final String textBegin) { + final ImVec2 dst = new ImVec2(); + nCalcTextSizeA(dst, size, maxWidth, wrapWidth, textBegin); + return dst; + } + + /** + * 'max_width' stops rendering after a certain width (could be turned into a 2d size). FLT_MAX to disable. + * 'wrap_width' enable automatic word-wrapping across multiple lines to fit into given width. 0.0f to disable. + */ + public float calcTextSizeAX(final float size, final float maxWidth, final float wrapWidth, final String textBegin) { + return nCalcTextSizeAX(size, maxWidth, wrapWidth, textBegin); + } + + /** + * 'max_width' stops rendering after a certain width (could be turned into a 2d size). FLT_MAX to disable. + * 'wrap_width' enable automatic word-wrapping across multiple lines to fit into given width. 0.0f to disable. + */ + public float calcTextSizeAY(final float size, final float maxWidth, final float wrapWidth, final String textBegin) { + return nCalcTextSizeAY(size, maxWidth, wrapWidth, textBegin); + } + + /** + * 'max_width' stops rendering after a certain width (could be turned into a 2d size). FLT_MAX to disable. + * 'wrap_width' enable automatic word-wrapping across multiple lines to fit into given width. 0.0f to disable. + */ + public void calcTextSizeA(final ImVec2 dst, final float size, final float maxWidth, final float wrapWidth, final String textBegin) { + nCalcTextSizeA(dst, size, maxWidth, wrapWidth, textBegin); + } + + /** + * 'max_width' stops rendering after a certain width (could be turned into a 2d size). FLT_MAX to disable. + * 'wrap_width' enable automatic word-wrapping across multiple lines to fit into given width. 0.0f to disable. + */ + public ImVec2 calcTextSizeA(final float size, final float maxWidth, final float wrapWidth, final String textBegin, final String textEnd) { + final ImVec2 dst = new ImVec2(); + nCalcTextSizeA(dst, size, maxWidth, wrapWidth, textBegin, textEnd); + return dst; + } + + /** + * 'max_width' stops rendering after a certain width (could be turned into a 2d size). FLT_MAX to disable. + * 'wrap_width' enable automatic word-wrapping across multiple lines to fit into given width. 0.0f to disable. + */ + public float calcTextSizeAX(final float size, final float maxWidth, final float wrapWidth, final String textBegin, final String textEnd) { + return nCalcTextSizeAX(size, maxWidth, wrapWidth, textBegin, textEnd); + } + + /** + * 'max_width' stops rendering after a certain width (could be turned into a 2d size). FLT_MAX to disable. + * 'wrap_width' enable automatic word-wrapping across multiple lines to fit into given width. 0.0f to disable. + */ + public float calcTextSizeAY(final float size, final float maxWidth, final float wrapWidth, final String textBegin, final String textEnd) { + return nCalcTextSizeAY(size, maxWidth, wrapWidth, textBegin, textEnd); + } + + /** + * 'max_width' stops rendering after a certain width (could be turned into a 2d size). FLT_MAX to disable. + * 'wrap_width' enable automatic word-wrapping across multiple lines to fit into given width. 0.0f to disable. + */ + public void calcTextSizeA(final ImVec2 dst, final float size, final float maxWidth, final float wrapWidth, final String textBegin, final String textEnd) { + nCalcTextSizeA(dst, size, maxWidth, wrapWidth, textBegin, textEnd); + } + + private native void nCalcTextSizeA(ImVec2 dst, float size, float maxWidth, float wrapWidth, String textBegin); /*MANUAL + auto textBegin = obj_textBegin == NULL ? NULL : (char*)env->GetStringUTFChars(obj_textBegin, JNI_FALSE); + Jni::ImVec2Cpy(env, THIS->CalcTextSizeA(size, maxWidth, wrapWidth, textBegin), dst); + if (textBegin != NULL) env->ReleaseStringUTFChars(obj_textBegin, textBegin); + */ + + private native float nCalcTextSizeAX(float size, float maxWidth, float wrapWidth, String obj_textBegin); /*MANUAL + auto textBegin = obj_textBegin == NULL ? NULL : (char*)env->GetStringUTFChars(obj_textBegin, JNI_FALSE); + auto _result = THIS->CalcTextSizeA(size, maxWidth, wrapWidth, textBegin).x; + if (textBegin != NULL) env->ReleaseStringUTFChars(obj_textBegin, textBegin); + return _result; + */ + + private native float nCalcTextSizeAY(float size, float maxWidth, float wrapWidth, String obj_textBegin); /*MANUAL + auto textBegin = obj_textBegin == NULL ? NULL : (char*)env->GetStringUTFChars(obj_textBegin, JNI_FALSE); + auto _result = THIS->CalcTextSizeA(size, maxWidth, wrapWidth, textBegin).y; + if (textBegin != NULL) env->ReleaseStringUTFChars(obj_textBegin, textBegin); + return _result; + */ + + private native void nCalcTextSizeA(ImVec2 dst, float size, float maxWidth, float wrapWidth, String textBegin, String textEnd); /*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); + Jni::ImVec2Cpy(env, THIS->CalcTextSizeA(size, maxWidth, wrapWidth, textBegin, textEnd), dst); + if (textBegin != NULL) env->ReleaseStringUTFChars(obj_textBegin, textBegin); + if (textEnd != NULL) env->ReleaseStringUTFChars(obj_textEnd, textEnd); + */ + + private native float nCalcTextSizeAX(float size, float maxWidth, float wrapWidth, String obj_textBegin, String obj_textEnd); /*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); + auto _result = THIS->CalcTextSizeA(size, maxWidth, wrapWidth, textBegin, textEnd).x; + if (textBegin != NULL) env->ReleaseStringUTFChars(obj_textBegin, textBegin); + if (textEnd != NULL) env->ReleaseStringUTFChars(obj_textEnd, textEnd); + return _result; + */ + + private native float nCalcTextSizeAY(float size, float maxWidth, float wrapWidth, String obj_textBegin, String obj_textEnd); /*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); + auto _result = THIS->CalcTextSizeA(size, maxWidth, wrapWidth, textBegin, textEnd).y; + if (textBegin != NULL) env->ReleaseStringUTFChars(obj_textBegin, textBegin); + if (textEnd != NULL) env->ReleaseStringUTFChars(obj_textEnd, textEnd); + return _result; + */ + + public String calcWordWrapPositionA(final float scale, final String text, final String textEnd, final float wrapWidth) { + return nCalcWordWrapPositionA(scale, text, textEnd, wrapWidth); + } + + private native String nCalcWordWrapPositionA(float scale, String obj_text, String obj_textEnd, float wrapWidth); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + auto textEnd = obj_textEnd == NULL ? NULL : (char*)env->GetStringUTFChars(obj_textEnd, JNI_FALSE); + auto _result = env->NewStringUTF(THIS->CalcWordWrapPositionA(scale, text, textEnd, wrapWidth)); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + if (textEnd != NULL) env->ReleaseStringUTFChars(obj_textEnd, textEnd); + return _result; + */ + + public void renderChar(final ImDrawList drawList, final float size, final ImVec2 pos, final int col, final int c) { + nRenderChar(drawList.ptr, size, pos.x, pos.y, col, c); + } + + public void renderChar(final ImDrawList drawList, final float size, final float posX, final float posY, final int col, final int c) { + nRenderChar(drawList.ptr, size, posX, posY, col, c); + } + + private native void nRenderChar(long drawList, float size, float posX, float posY, int col, int c); /*MANUAL + ImVec2 pos = ImVec2(posX, posY); + THIS->RenderChar(reinterpret_cast(drawList), size, pos, col, (ImWchar)c); + */ + + 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); + } + + 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); + } + + 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); + } + + 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); + } + + 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); + } + + 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); + } + + 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); + } + + 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 + 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); + 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, float wrapWidth); /*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); + 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, float wrapWidth, boolean cpuFineClip); /*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); + 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 + 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); + if (textBegin != NULL) env->ReleaseStringUTFChars(obj_textBegin, textBegin); + if (textEnd != NULL) env->ReleaseStringUTFChars(obj_textEnd, textEnd); + */ + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/ImFontAtlas.java b/imgui-binding/src/generated/java/imgui/ImFontAtlas.java new file mode 100644 index 0000000..48c10eb --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImFontAtlas.java @@ -0,0 +1,812 @@ +package imgui; + +import imgui.binding.ImGuiStructDestroyable; +import imgui.type.ImInt; + +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +/** + * Load and rasterize multiple TTF/OTF fonts into a same texture. The font atlas will build a single texture holding: + * - One or more fonts. + * - Custom graphics data needed to render the shapes needed by Dear ImGui. + * - Mouse cursor shapes for software cursor rendering (unless setting 'Flags |= ImFontAtlasFlags_NoMouseCursors' in the font atlas). + * It is the user-code responsibility to setup/build the atlas, then upload the pixel data into a texture accessible by your graphics api. + * - Optionally, call any of the AddFont*** functions. If you don't call any, the default font embedded in the code will be loaded for you. + * - Call GetTexDataAsAlpha8() or GetTexDataAsRGBA32() to build and retrieve pixels data. + * - Upload the pixels data into a texture within your graphics system (see imgui_impl_xxxx.cpp examples) + * - Call SetTexID(my_tex_id); and pass the pointer/identifier to your texture in a format natural to your graphics API. + * This value will be passed back to you during rendering to identify the texture. Read FAQ entry about ImTextureID for more details. + * Common pitfalls: + * - If you pass a 'glyph_ranges' array to AddFont*** functions, you need to make sure that your array persist up until the + * atlas is build (when calling GetTexData*** or Build()). We only copy the pointer, not the data. + * - Important: By default, AddFontFromMemoryTTF() takes ownership of the data. Even though we are not writing to it, we will free the pointer on destruction. + * You can set font_cfg.FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed, + * - Even though many functions are suffixed with "TTF", OTF data is supported just as well. + * - This is an old API and it is currently awkward for those and and various other reasons! We will address them in the future! + */ +public final class ImFontAtlas extends ImGuiStructDestroyable { + private ByteBuffer alpha8pixels = null; + private ByteBuffer rgba32pixels = null; + + public ImFontAtlas() { + } + + public ImFontAtlas(final long ptr) { + super(ptr); + } + + @Override + protected long create() { + return nCreate(); + } + + /*JNI + #include "_common.h" + #define THIS ((ImFontAtlas*)STRUCT_PTR) + + jmethodID jImFontAtlasCreateAlpha8PixelsMID; + jmethodID jImFontAtlasCreateRgba32PixelsMID; + */ + + static native void nInit(); /* + jclass jImFontAtlasClass = env->FindClass("imgui/ImFontAtlas"); + jImFontAtlasCreateAlpha8PixelsMID = env->GetMethodID(jImFontAtlasClass, "createAlpha8Pixels", "(I)Ljava/nio/ByteBuffer;"); + jImFontAtlasCreateRgba32PixelsMID = env->GetMethodID(jImFontAtlasClass, "createRgba32Pixels", "(I)Ljava/nio/ByteBuffer;"); + */ + + private native long nCreate(); /* + return (intptr_t)(new ImFontConfig()); + */ + + public ImFont addFont(final ImFontConfig imFontConfig) { + return new ImFont(nAddFont(imFontConfig.ptr)); + } + + private native long nAddFont(long imFontConfig); /* + return (intptr_t)THIS->AddFont(reinterpret_cast(imFontConfig)); + */ + + public ImFont addFontDefault() { + return new ImFont(nAddFontDefault()); + } + + public ImFont addFontDefault(final ImFontConfig imFontConfig) { + return new ImFont(nAddFontDefault(imFontConfig.ptr)); + } + + private native long nAddFontDefault(); /* + return (intptr_t)THIS->AddFontDefault(); + */ + + private native long nAddFontDefault(long imFontConfig); /* + return (intptr_t)THIS->AddFontDefault(reinterpret_cast(imFontConfig)); + */ + + public ImFont addFontFromFileTTF(final String filename, final float sizePixels) { + return new ImFont(nAddFontFromFileTTF(filename, sizePixels)); + } + + public ImFont addFontFromFileTTF(final String filename, final float sizePixels, final ImFontConfig fontConfig) { + return new ImFont(nAddFontFromFileTTF(filename, sizePixels, fontConfig.ptr)); + } + + public ImFont addFontFromFileTTF(final String filename, final float sizePixels, final ImFontConfig fontConfig, final short[] glyphRanges) { + return new ImFont(nAddFontFromFileTTF(filename, sizePixels, fontConfig.ptr, glyphRanges)); + } + + public ImFont addFontFromFileTTF(final String filename, final float sizePixels, final short[] glyphRanges) { + return new ImFont(nAddFontFromFileTTF(filename, sizePixels, glyphRanges)); + } + + private native long nAddFontFromFileTTF(String obj_filename, float sizePixels); /*MANUAL + auto filename = obj_filename == NULL ? NULL : (char*)env->GetStringUTFChars(obj_filename, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromFileTTF(filename, sizePixels); + if (filename != NULL) env->ReleaseStringUTFChars(obj_filename, filename); + return _result; + */ + + private native long nAddFontFromFileTTF(String obj_filename, float sizePixels, long fontConfig); /*MANUAL + auto filename = obj_filename == NULL ? NULL : (char*)env->GetStringUTFChars(obj_filename, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromFileTTF(filename, sizePixels, reinterpret_cast(fontConfig)); + if (filename != NULL) env->ReleaseStringUTFChars(obj_filename, filename); + return _result; + */ + + private native long nAddFontFromFileTTF(String obj_filename, float sizePixels, long fontConfig, short[] obj_glyphRanges); /*MANUAL + auto filename = obj_filename == NULL ? NULL : (char*)env->GetStringUTFChars(obj_filename, JNI_FALSE); + auto glyphRanges = obj_glyphRanges == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_glyphRanges, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromFileTTF(filename, sizePixels, reinterpret_cast(fontConfig), (ImWchar*)&glyphRanges[0]); + if (filename != NULL) env->ReleaseStringUTFChars(obj_filename, filename); + if (glyphRanges != NULL) env->ReleasePrimitiveArrayCritical(obj_glyphRanges, glyphRanges, JNI_FALSE); + return _result; + */ + + private native long nAddFontFromFileTTF(String obj_filename, float sizePixels, short[] obj_glyphRanges); /*MANUAL + auto filename = obj_filename == NULL ? NULL : (char*)env->GetStringUTFChars(obj_filename, JNI_FALSE); + auto glyphRanges = obj_glyphRanges == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_glyphRanges, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromFileTTF(filename, sizePixels, NULL, (ImWchar*)&glyphRanges[0]); + if (filename != NULL) env->ReleaseStringUTFChars(obj_filename, filename); + if (glyphRanges != NULL) env->ReleasePrimitiveArrayCritical(obj_glyphRanges, glyphRanges, JNI_FALSE); + return _result; + */ + + /** + * Note: Transfer ownership of 'ttf_data' to ImFontAtlas! Will be deleted after destruction of the atlas. + * Set font_cfg.FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed. + */ + public ImFont addFontFromMemoryTTF(final byte[] fontData, final float sizePixels) { + return new ImFont(nAddFontFromMemoryTTF(fontData, sizePixels)); + } + + /** + * Note: Transfer ownership of 'ttf_data' to ImFontAtlas! Will be deleted after destruction of the atlas. + * Set font_cfg.FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed. + */ + public ImFont addFontFromMemoryTTF(final byte[] fontData, final float sizePixels, final ImFontConfig fontConfig) { + return new ImFont(nAddFontFromMemoryTTF(fontData, sizePixels, fontConfig.ptr)); + } + + /** + * Note: Transfer ownership of 'ttf_data' to ImFontAtlas! Will be deleted after destruction of the atlas. + * Set font_cfg.FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed. + */ + public ImFont addFontFromMemoryTTF(final byte[] fontData, final float sizePixels, final ImFontConfig fontConfig, final short[] glyphRanges) { + return new ImFont(nAddFontFromMemoryTTF(fontData, sizePixels, fontConfig.ptr, glyphRanges)); + } + + /** + * Note: Transfer ownership of 'ttf_data' to ImFontAtlas! Will be deleted after destruction of the atlas. + * Set font_cfg.FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed. + */ + public ImFont addFontFromMemoryTTF(final byte[] fontData, final float sizePixels, final short[] glyphRanges) { + return new ImFont(nAddFontFromMemoryTTF(fontData, sizePixels, glyphRanges)); + } + + private native long nAddFontFromMemoryTTF(byte[] obj_fontData, float sizePixels); /*MANUAL + auto fontData = obj_fontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_fontData, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromMemoryTTF(&fontData[0], (int)env->GetArrayLength(obj_fontData), sizePixels); + if (fontData != NULL) env->ReleasePrimitiveArrayCritical(obj_fontData, fontData, JNI_FALSE); + return _result; + */ + + private native long nAddFontFromMemoryTTF(byte[] obj_fontData, float sizePixels, long fontConfig); /*MANUAL + auto fontData = obj_fontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_fontData, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromMemoryTTF(&fontData[0], (int)env->GetArrayLength(obj_fontData), sizePixels, reinterpret_cast(fontConfig)); + if (fontData != NULL) env->ReleasePrimitiveArrayCritical(obj_fontData, fontData, JNI_FALSE); + return _result; + */ + + private native long nAddFontFromMemoryTTF(byte[] obj_fontData, float sizePixels, long fontConfig, short[] obj_glyphRanges); /*MANUAL + auto fontData = obj_fontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_fontData, JNI_FALSE); + auto glyphRanges = obj_glyphRanges == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_glyphRanges, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromMemoryTTF(&fontData[0], (int)env->GetArrayLength(obj_fontData), sizePixels, reinterpret_cast(fontConfig), (ImWchar*)&glyphRanges[0]); + if (fontData != NULL) env->ReleasePrimitiveArrayCritical(obj_fontData, fontData, JNI_FALSE); + if (glyphRanges != NULL) env->ReleasePrimitiveArrayCritical(obj_glyphRanges, glyphRanges, JNI_FALSE); + return _result; + */ + + private native long nAddFontFromMemoryTTF(byte[] obj_fontData, float sizePixels, short[] obj_glyphRanges); /*MANUAL + auto fontData = obj_fontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_fontData, JNI_FALSE); + auto glyphRanges = obj_glyphRanges == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_glyphRanges, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromMemoryTTF(&fontData[0], (int)env->GetArrayLength(obj_fontData), sizePixels, NULL, (ImWchar*)&glyphRanges[0]); + if (fontData != NULL) env->ReleasePrimitiveArrayCritical(obj_fontData, fontData, JNI_FALSE); + if (glyphRanges != NULL) env->ReleasePrimitiveArrayCritical(obj_glyphRanges, glyphRanges, JNI_FALSE); + return _result; + */ + + /** + * Note: Transfer ownership of 'ttf_data' to ImFontAtlas! Will be deleted after destruction of the atlas. + * Set font_cfg.FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed. + */ + public ImFont addFontFromMemoryTTF(final byte[] fontData, final int fontSize, final float sizePixels) { + return new ImFont(nAddFontFromMemoryTTF(fontData, fontSize, sizePixels)); + } + + /** + * Note: Transfer ownership of 'ttf_data' to ImFontAtlas! Will be deleted after destruction of the atlas. + * Set font_cfg.FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed. + */ + public ImFont addFontFromMemoryTTF(final byte[] fontData, final int fontSize, final float sizePixels, final ImFontConfig fontConfig) { + return new ImFont(nAddFontFromMemoryTTF(fontData, fontSize, sizePixels, fontConfig.ptr)); + } + + /** + * Note: Transfer ownership of 'ttf_data' to ImFontAtlas! Will be deleted after destruction of the atlas. + * Set font_cfg.FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed. + */ + public ImFont addFontFromMemoryTTF(final byte[] fontData, final int fontSize, final float sizePixels, final ImFontConfig fontConfig, final short[] glyphRanges) { + return new ImFont(nAddFontFromMemoryTTF(fontData, fontSize, sizePixels, fontConfig.ptr, glyphRanges)); + } + + /** + * Note: Transfer ownership of 'ttf_data' to ImFontAtlas! Will be deleted after destruction of the atlas. + * Set font_cfg.FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed. + */ + public ImFont addFontFromMemoryTTF(final byte[] fontData, final int fontSize, final float sizePixels, final short[] glyphRanges) { + return new ImFont(nAddFontFromMemoryTTF(fontData, fontSize, sizePixels, glyphRanges)); + } + + private native long nAddFontFromMemoryTTF(byte[] obj_fontData, int fontSize, float sizePixels); /*MANUAL + auto fontData = obj_fontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_fontData, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromMemoryTTF(&fontData[0], fontSize, sizePixels); + if (fontData != NULL) env->ReleasePrimitiveArrayCritical(obj_fontData, fontData, JNI_FALSE); + return _result; + */ + + private native long nAddFontFromMemoryTTF(byte[] obj_fontData, int fontSize, float sizePixels, long fontConfig); /*MANUAL + auto fontData = obj_fontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_fontData, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromMemoryTTF(&fontData[0], fontSize, sizePixels, reinterpret_cast(fontConfig)); + if (fontData != NULL) env->ReleasePrimitiveArrayCritical(obj_fontData, fontData, JNI_FALSE); + return _result; + */ + + private native long nAddFontFromMemoryTTF(byte[] obj_fontData, int fontSize, float sizePixels, long fontConfig, short[] obj_glyphRanges); /*MANUAL + auto fontData = obj_fontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_fontData, JNI_FALSE); + auto glyphRanges = obj_glyphRanges == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_glyphRanges, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromMemoryTTF(&fontData[0], fontSize, sizePixels, reinterpret_cast(fontConfig), (ImWchar*)&glyphRanges[0]); + if (fontData != NULL) env->ReleasePrimitiveArrayCritical(obj_fontData, fontData, JNI_FALSE); + if (glyphRanges != NULL) env->ReleasePrimitiveArrayCritical(obj_glyphRanges, glyphRanges, JNI_FALSE); + return _result; + */ + + private native long nAddFontFromMemoryTTF(byte[] obj_fontData, int fontSize, float sizePixels, short[] obj_glyphRanges); /*MANUAL + auto fontData = obj_fontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_fontData, JNI_FALSE); + auto glyphRanges = obj_glyphRanges == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_glyphRanges, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromMemoryTTF(&fontData[0], fontSize, sizePixels, NULL, (ImWchar*)&glyphRanges[0]); + if (fontData != NULL) env->ReleasePrimitiveArrayCritical(obj_fontData, fontData, JNI_FALSE); + if (glyphRanges != NULL) env->ReleasePrimitiveArrayCritical(obj_glyphRanges, glyphRanges, JNI_FALSE); + return _result; + */ + + /** + * 'compressed_font_data' still owned by caller. Compress with binary_to_compressed_c.cpp. + */ + public ImFont addFontFromMemoryCompressedTTF(final byte[] compressedFontData, final float sizePixels) { + return new ImFont(nAddFontFromMemoryCompressedTTF(compressedFontData, sizePixels)); + } + + /** + * 'compressed_font_data' still owned by caller. Compress with binary_to_compressed_c.cpp. + */ + public ImFont addFontFromMemoryCompressedTTF(final byte[] compressedFontData, final float sizePixels, final ImFontConfig imFontConfig) { + return new ImFont(nAddFontFromMemoryCompressedTTF(compressedFontData, sizePixels, imFontConfig.ptr)); + } + + /** + * 'compressed_font_data' still owned by caller. Compress with binary_to_compressed_c.cpp. + */ + public ImFont addFontFromMemoryCompressedTTF(final byte[] compressedFontData, final float sizePixels, final ImFontConfig imFontConfig, final short[] glyphRanges) { + return new ImFont(nAddFontFromMemoryCompressedTTF(compressedFontData, sizePixels, imFontConfig.ptr, glyphRanges)); + } + + /** + * 'compressed_font_data' still owned by caller. Compress with binary_to_compressed_c.cpp. + */ + public ImFont addFontFromMemoryCompressedTTF(final byte[] compressedFontData, final float sizePixels, final short[] glyphRanges) { + return new ImFont(nAddFontFromMemoryCompressedTTF(compressedFontData, sizePixels, glyphRanges)); + } + + private native long nAddFontFromMemoryCompressedTTF(byte[] obj_compressedFontData, float sizePixels); /*MANUAL + auto compressedFontData = obj_compressedFontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_compressedFontData, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromMemoryCompressedTTF(&compressedFontData[0], (int)env->GetArrayLength(obj_compressedFontData), sizePixels); + if (compressedFontData != NULL) env->ReleasePrimitiveArrayCritical(obj_compressedFontData, compressedFontData, JNI_FALSE); + return _result; + */ + + private native long nAddFontFromMemoryCompressedTTF(byte[] obj_compressedFontData, float sizePixels, long imFontConfig); /*MANUAL + auto compressedFontData = obj_compressedFontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_compressedFontData, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromMemoryCompressedTTF(&compressedFontData[0], (int)env->GetArrayLength(obj_compressedFontData), sizePixels, reinterpret_cast(imFontConfig)); + if (compressedFontData != NULL) env->ReleasePrimitiveArrayCritical(obj_compressedFontData, compressedFontData, JNI_FALSE); + return _result; + */ + + private native long nAddFontFromMemoryCompressedTTF(byte[] obj_compressedFontData, float sizePixels, long imFontConfig, short[] obj_glyphRanges); /*MANUAL + auto compressedFontData = obj_compressedFontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_compressedFontData, JNI_FALSE); + auto glyphRanges = obj_glyphRanges == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_glyphRanges, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromMemoryCompressedTTF(&compressedFontData[0], (int)env->GetArrayLength(obj_compressedFontData), sizePixels, reinterpret_cast(imFontConfig), (ImWchar*)&glyphRanges[0]); + if (compressedFontData != NULL) env->ReleasePrimitiveArrayCritical(obj_compressedFontData, compressedFontData, JNI_FALSE); + if (glyphRanges != NULL) env->ReleasePrimitiveArrayCritical(obj_glyphRanges, glyphRanges, JNI_FALSE); + return _result; + */ + + private native long nAddFontFromMemoryCompressedTTF(byte[] obj_compressedFontData, float sizePixels, short[] obj_glyphRanges); /*MANUAL + auto compressedFontData = obj_compressedFontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_compressedFontData, JNI_FALSE); + auto glyphRanges = obj_glyphRanges == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_glyphRanges, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromMemoryCompressedTTF(&compressedFontData[0], (int)env->GetArrayLength(obj_compressedFontData), sizePixels, NULL, (ImWchar*)&glyphRanges[0]); + if (compressedFontData != NULL) env->ReleasePrimitiveArrayCritical(obj_compressedFontData, compressedFontData, JNI_FALSE); + if (glyphRanges != NULL) env->ReleasePrimitiveArrayCritical(obj_glyphRanges, glyphRanges, JNI_FALSE); + return _result; + */ + + /** + * 'compressed_font_data' still owned by caller. Compress with binary_to_compressed_c.cpp. + */ + public ImFont addFontFromMemoryCompressedTTF(final byte[] compressedFontData, final int compressedFontSize, final float sizePixels) { + return new ImFont(nAddFontFromMemoryCompressedTTF(compressedFontData, compressedFontSize, sizePixels)); + } + + /** + * 'compressed_font_data' still owned by caller. Compress with binary_to_compressed_c.cpp. + */ + public ImFont addFontFromMemoryCompressedTTF(final byte[] compressedFontData, final int compressedFontSize, final float sizePixels, final ImFontConfig imFontConfig) { + return new ImFont(nAddFontFromMemoryCompressedTTF(compressedFontData, compressedFontSize, sizePixels, imFontConfig.ptr)); + } + + /** + * 'compressed_font_data' still owned by caller. Compress with binary_to_compressed_c.cpp. + */ + public ImFont addFontFromMemoryCompressedTTF(final byte[] compressedFontData, final int compressedFontSize, final float sizePixels, final ImFontConfig imFontConfig, final short[] glyphRanges) { + return new ImFont(nAddFontFromMemoryCompressedTTF(compressedFontData, compressedFontSize, sizePixels, imFontConfig.ptr, glyphRanges)); + } + + /** + * 'compressed_font_data' still owned by caller. Compress with binary_to_compressed_c.cpp. + */ + public ImFont addFontFromMemoryCompressedTTF(final byte[] compressedFontData, final int compressedFontSize, final float sizePixels, final short[] glyphRanges) { + return new ImFont(nAddFontFromMemoryCompressedTTF(compressedFontData, compressedFontSize, sizePixels, glyphRanges)); + } + + private native long nAddFontFromMemoryCompressedTTF(byte[] obj_compressedFontData, int compressedFontSize, float sizePixels); /*MANUAL + auto compressedFontData = obj_compressedFontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_compressedFontData, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromMemoryCompressedTTF(&compressedFontData[0], compressedFontSize, sizePixels); + if (compressedFontData != NULL) env->ReleasePrimitiveArrayCritical(obj_compressedFontData, compressedFontData, JNI_FALSE); + return _result; + */ + + private native long nAddFontFromMemoryCompressedTTF(byte[] obj_compressedFontData, int compressedFontSize, float sizePixels, long imFontConfig); /*MANUAL + auto compressedFontData = obj_compressedFontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_compressedFontData, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromMemoryCompressedTTF(&compressedFontData[0], compressedFontSize, sizePixels, reinterpret_cast(imFontConfig)); + if (compressedFontData != NULL) env->ReleasePrimitiveArrayCritical(obj_compressedFontData, compressedFontData, JNI_FALSE); + return _result; + */ + + private native long nAddFontFromMemoryCompressedTTF(byte[] obj_compressedFontData, int compressedFontSize, float sizePixels, long imFontConfig, short[] obj_glyphRanges); /*MANUAL + auto compressedFontData = obj_compressedFontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_compressedFontData, JNI_FALSE); + auto glyphRanges = obj_glyphRanges == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_glyphRanges, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromMemoryCompressedTTF(&compressedFontData[0], compressedFontSize, sizePixels, reinterpret_cast(imFontConfig), (ImWchar*)&glyphRanges[0]); + if (compressedFontData != NULL) env->ReleasePrimitiveArrayCritical(obj_compressedFontData, compressedFontData, JNI_FALSE); + if (glyphRanges != NULL) env->ReleasePrimitiveArrayCritical(obj_glyphRanges, glyphRanges, JNI_FALSE); + return _result; + */ + + private native long nAddFontFromMemoryCompressedTTF(byte[] obj_compressedFontData, int compressedFontSize, float sizePixels, short[] obj_glyphRanges); /*MANUAL + auto compressedFontData = obj_compressedFontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_compressedFontData, JNI_FALSE); + auto glyphRanges = obj_glyphRanges == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_glyphRanges, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromMemoryCompressedTTF(&compressedFontData[0], compressedFontSize, sizePixels, NULL, (ImWchar*)&glyphRanges[0]); + if (compressedFontData != NULL) env->ReleasePrimitiveArrayCritical(obj_compressedFontData, compressedFontData, JNI_FALSE); + if (glyphRanges != NULL) env->ReleasePrimitiveArrayCritical(obj_glyphRanges, glyphRanges, JNI_FALSE); + return _result; + */ + + /** + * 'compressed_font_data_base85' still owned by caller. Compress with binary_to_compressed_c.cpp with -base85 parameter. + */ + public ImFont addFontFromMemoryCompressedBase85TTF(final String compressedFontDataBase85, final float sizePixels, final ImFontConfig fontConfig) { + return new ImFont(nAddFontFromMemoryCompressedBase85TTF(compressedFontDataBase85, sizePixels, fontConfig.ptr)); + } + + /** + * 'compressed_font_data_base85' still owned by caller. Compress with binary_to_compressed_c.cpp with -base85 parameter. + */ + public ImFont addFontFromMemoryCompressedBase85TTF(final String compressedFontDataBase85, final float sizePixels, final ImFontConfig fontConfig, final short[] glyphRanges) { + return new ImFont(nAddFontFromMemoryCompressedBase85TTF(compressedFontDataBase85, sizePixels, fontConfig.ptr, glyphRanges)); + } + + private native long nAddFontFromMemoryCompressedBase85TTF(String obj_compressedFontDataBase85, float sizePixels, long fontConfig); /*MANUAL + auto compressedFontDataBase85 = obj_compressedFontDataBase85 == NULL ? NULL : (char*)env->GetStringUTFChars(obj_compressedFontDataBase85, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromMemoryCompressedBase85TTF(compressedFontDataBase85, sizePixels, reinterpret_cast(fontConfig)); + if (compressedFontDataBase85 != NULL) env->ReleaseStringUTFChars(obj_compressedFontDataBase85, compressedFontDataBase85); + return _result; + */ + + private native long nAddFontFromMemoryCompressedBase85TTF(String obj_compressedFontDataBase85, float sizePixels, long fontConfig, short[] obj_glyphRanges); /*MANUAL + auto compressedFontDataBase85 = obj_compressedFontDataBase85 == NULL ? NULL : (char*)env->GetStringUTFChars(obj_compressedFontDataBase85, JNI_FALSE); + auto glyphRanges = obj_glyphRanges == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_glyphRanges, JNI_FALSE); + auto _result = (intptr_t)THIS->AddFontFromMemoryCompressedBase85TTF(compressedFontDataBase85, sizePixels, reinterpret_cast(fontConfig), (ImWchar*)&glyphRanges[0]); + if (compressedFontDataBase85 != NULL) env->ReleaseStringUTFChars(obj_compressedFontDataBase85, compressedFontDataBase85); + if (glyphRanges != NULL) env->ReleasePrimitiveArrayCritical(obj_glyphRanges, glyphRanges, JNI_FALSE); + return _result; + */ + + /** + * Clear input data (all ImFontConfig structures including sizes, TTF data, glyph ranges, etc.) = all the data used to build the texture and fonts. + */ + public void clearInputData() { + nClearInputData(); + } + + private native void nClearInputData(); /* + THIS->ClearInputData(); + */ + + /** + * Clear output texture data (CPU side). Saves RAM once the texture has been copied to graphics memory. + */ + public void clearTexData() { + nClearTexData(); + } + + private native void nClearTexData(); /* + THIS->ClearTexData(); + */ + + /** + * Clear output font data (glyphs storage, UV coordinates). + */ + public void clearFonts() { + nClearFonts(); + } + + private native void nClearFonts(); /* + THIS->ClearFonts(); + */ + + /** + * Clear all input and output. + */ + public void clear() { + nClear(); + } + + private native void nClear(); /* + THIS->Clear(); + */ + + // Build atlas, retrieve pixel data. + // User is in charge of copying the pixels into graphics memory (e.g. create a texture with your engine). Then store your texture handle with SetTexID(). + // The pitch is always = Width * BytesPerPixels (1 or 4) + // Building in RGBA32 format is provided for convenience and compatibility, but note that unless you manually manipulate or copy color data into + // the texture (e.g. when using the AddCustomRect*** api), then the RGB pixels emitted will always be white (~75% of memory/bandwidth waste. + + /** + * Build pixels data. This is called automatically for you by the GetTexData*** functions. + */ + public boolean build() { + return nBuild(); + } + + private native boolean nBuild(); /* + return THIS->Build(); + */ + + /** + * 1 byte-per-pixel + */ + public ByteBuffer getTexDataAsAlpha8(final ImInt outWidth, final ImInt outHeight) { + return getTexDataAsAlpha8(outWidth, outHeight, new ImInt()); + } + + /** + * 1 byte-per-pixel + */ + public ByteBuffer getTexDataAsAlpha8(final ImInt outWidth, final ImInt outHeight, final ImInt outBytesPerPixel) { + getTexDataAsAlpha8(outWidth.getData(), outHeight.getData(), outBytesPerPixel.getData()); + return alpha8pixels; + } + + private ByteBuffer createAlpha8Pixels(final int size) { + if (alpha8pixels == null || alpha8pixels.limit() != size) { + alpha8pixels = ByteBuffer.allocateDirect(size).order(ByteOrder.nativeOrder()); + } else { + alpha8pixels.clear(); + } + return alpha8pixels; + } + + private native void getTexDataAsAlpha8(int[] outWidth, int[] outHeight, int[] outBytesPerPixel); /* + unsigned char* pixels; + THIS->GetTexDataAsAlpha8(&pixels, &outWidth[0], &outHeight[0], &outBytesPerPixel[0]); + int size = outWidth[0] * outHeight[0] * outBytesPerPixel[0]; + jobject jBuffer = env->CallObjectMethod(object, jImFontAtlasCreateAlpha8PixelsMID, size); + char* buffer = (char*)env->GetDirectBufferAddress(jBuffer); + memcpy(buffer, pixels, size); + */ + + /** + * 4 bytes-per-pixel + */ + public ByteBuffer getTexDataAsRGBA32(final ImInt outWidth, final ImInt outHeight) { + return getTexDataAsRGBA32(outWidth, outHeight, new ImInt()); + } + + /** + * 4 bytes-per-pixel + */ + public ByteBuffer getTexDataAsRGBA32(final ImInt outWidth, final ImInt outHeight, final ImInt outBytesPerPixel) { + nGetTexDataAsRGBA32(outWidth.getData(), outHeight.getData(), outBytesPerPixel.getData()); + return rgba32pixels; + } + + private ByteBuffer createRgba32Pixels(final int size) { + if (rgba32pixels == null || rgba32pixels.limit() != size) { + rgba32pixels = ByteBuffer.allocateDirect(size).order(ByteOrder.nativeOrder()); + } else { + rgba32pixels.clear(); + } + return rgba32pixels; + } + + private native void nGetTexDataAsRGBA32(int[] outWidth, int[] outHeight, int[] outBytesPerPixel); /* + unsigned char* pixels; + THIS->GetTexDataAsRGBA32(&pixels, &outWidth[0], &outHeight[0], &outBytesPerPixel[0]); + int size = outWidth[0] * outHeight[0] * outBytesPerPixel[0]; + jobject jBuffer = env->CallObjectMethod(object, jImFontAtlasCreateRgba32PixelsMID, size); + char* buffer = (char*)env->GetDirectBufferAddress(jBuffer); + memcpy(buffer, pixels, size); + */ + + public boolean isBuilt() { + return nIsBuilt(); + } + + private native boolean nIsBuilt(); /* + return THIS->IsBuilt(); + */ + + /** + * User data to refer to the texture once it has been uploaded to user's graphic systems. + * It is passed back to you during rendering via the ImDrawCmd structure. + */ + public void setTexID(final int textureID) { + nSetTexID(textureID); + } + + private native void nSetTexID(int textureID); /* + THIS->SetTexID((ImTextureID)(intptr_t)textureID); + */ + + //------------------------------------------- + // Glyph Ranges + //------------------------------------------- + + // Helpers to retrieve list of common Unicode ranges (2 value per range, values are inclusive, zero-terminated list) + // NB: Make sure that your string are UTF-8 and NOT in your local code page. In C++11, you can create UTF-8 string literal using the u8"Hello world" syntax. See FAQ for details. + // NB: Consider using ImFontGlyphRangesBuilder to build glyph ranges from textual data. + + /*JNI + #define RETURN_GLYPH_2_SHORT(glyphs) \ + const ImWchar* ranges = glyphs; \ + int size = 0; \ + for (; ranges[0]; ranges += 2) \ + size += 2; \ + jshortArray jShorts = env->NewShortArray(size); \ + env->SetShortArrayRegion(jShorts, 0, size, (jshort*)glyphs); \ + return jShorts; + */ + + /** + * Basic Latin, Extended Latin + */ + public native short[] getGlyphRangesDefault(); /* + RETURN_GLYPH_2_SHORT(THIS->GetGlyphRangesDefault()); + */ + + /** + * Default + Korean characters + */ + public native short[] getGlyphRangesKorean(); /* + RETURN_GLYPH_2_SHORT(THIS->GetGlyphRangesKorean()); + */ + + /** + * Default + Hiragana, Katakana, Half-Width, Selection of 2999 Ideographs + */ + public native short[] getGlyphRangesJapanese(); /* + RETURN_GLYPH_2_SHORT(THIS->GetGlyphRangesJapanese()); + */ + + /** + * Default + Half-Width + Japanese Hiragana/Katakana + full set of about 21000 CJK Unified Ideographs + */ + public native short[] getGlyphRangesChineseFull(); /* + RETURN_GLYPH_2_SHORT(THIS->GetGlyphRangesChineseFull()); + */ + + /** + * Default + Half-Width + Japanese Hiragana/Katakana + set of 2500 CJK Unified Ideographs for common simplified Chinese + */ + public native short[] getGlyphRangesChineseSimplifiedCommon(); /* + RETURN_GLYPH_2_SHORT(THIS->GetGlyphRangesChineseSimplifiedCommon()); + */ + + /** + * Default + about 400 Cyrillic characters + */ + public native short[] getGlyphRangesCyrillic(); /* + RETURN_GLYPH_2_SHORT(THIS->GetGlyphRangesCyrillic()); + */ + + /** + * Default + Thai characters + */ + public native short[] getGlyphRangesThai(); /* + RETURN_GLYPH_2_SHORT(THIS->GetGlyphRangesThai()); + */ + + /** + * Default + Vietnamese characters + */ + public native short[] getGlyphRangesVietnamese(); /* + RETURN_GLYPH_2_SHORT(THIS->GetGlyphRangesVietnamese()); + */ + + /*JNI + #undef RETURN_GLYPH_2_SHORT + */ + + //------------------------------------------- + // [BETA] Custom Rectangles/Glyphs API + //------------------------------------------- + + // You can request arbitrary rectangles to be packed into the atlas, for your own purposes. + // After calling Build(), you can query the rectangle position and render your pixels. + // You can also request your rectangles to be mapped as font glyph (given a font + Unicode point), + // so you can render e.g. custom colorful icons and use them as regular glyphs. + // Read docs/FONTS.md for more details about using colorful icons. + // Note: this API may be redesigned later in order to support multi-monitor varying DPI settings. + + public int addCustomRectRegular(final int width, final int height) { + return nAddCustomRectRegular(width, height); + } + + private native int nAddCustomRectRegular(int width, int height); /* + return THIS->AddCustomRectRegular(width, height); + */ + + /** + * Id needs to be {@code <} 0x110000 to register a rectangle to map into a specific font. + */ + public int addCustomRectFontGlyph(final ImFont imFont, final short id, final int width, final int height, final float advanceX) { + return nAddCustomRectFontGlyph(imFont.ptr, id, width, height, advanceX); + } + + /** + * Id needs to be {@code <} 0x110000 to register a rectangle to map into a specific font. + */ + public int addCustomRectFontGlyph(final ImFont imFont, final short id, final int width, final int height, final float advanceX, final ImVec2 offset) { + return nAddCustomRectFontGlyph(imFont.ptr, id, width, height, advanceX, offset.x, offset.y); + } + + /** + * Id needs to be {@code <} 0x110000 to register a rectangle to map into a specific font. + */ + public int addCustomRectFontGlyph(final ImFont imFont, final short id, final int width, final int height, final float advanceX, final float offsetX, final float offsetY) { + return nAddCustomRectFontGlyph(imFont.ptr, id, width, height, advanceX, offsetX, offsetY); + } + + private native int nAddCustomRectFontGlyph(long imFont, short id, int width, int height, float advanceX); /* + return THIS->AddCustomRectFontGlyph(reinterpret_cast(imFont), (ImWchar)id, width, height, advanceX); + */ + + private native int nAddCustomRectFontGlyph(long imFont, short id, int width, int height, float advanceX, float offsetX, float offsetY); /*MANUAL + ImVec2 offset = ImVec2(offsetX, offsetY); + auto _result = THIS->AddCustomRectFontGlyph(reinterpret_cast(imFont), (ImWchar)id, width, height, advanceX, offset); + return _result; + */ + + // TODO GetCustomRectByIndex + + //------------------------------------------- + // Members + //------------------------------------------- + + /** + * Build flags (see {@link imgui.flag.ImFontAtlasFlags}) + */ + public int getFlags() { + return nGetFlags(); + } + + /** + * Build flags (see {@link imgui.flag.ImFontAtlasFlags}) + */ + public void setFlags(final int value) { + nSetFlags(value); + } + + /** + * Build flags (see {@link imgui.flag.ImFontAtlasFlags}) + */ + public void addFlags(final int flags) { + setFlags(getFlags() | flags); + } + + /** + * Build flags (see {@link imgui.flag.ImFontAtlasFlags}) + */ + public void removeFlags(final int flags) { + setFlags(getFlags() & ~(flags)); + } + + /** + * Build flags (see {@link imgui.flag.ImFontAtlasFlags}) + */ + public boolean hasFlags(final int flags) { + return (getFlags() & flags) != 0; + } + + private native int nGetFlags(); /* + return THIS->Flags; + */ + + private native void nSetFlags(int value); /* + THIS->Flags = value; + */ + + // 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. + */ + public int getTexDesiredWidth() { + return nGetTexDesiredWidth(); + } + + /** + * 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. + */ + public void setTexDesiredWidth(final int value) { + nSetTexDesiredWidth(value); + } + + private native int nGetTexDesiredWidth(); /* + return THIS->TexDesiredWidth; + */ + + private native void nSetTexDesiredWidth(int value); /* + THIS->TexDesiredWidth = value; + */ + + /** + * Padding between glyphs within texture in pixels. Defaults to 1. + * If your rendering method doesn't rely on bilinear filtering you may set this to 0. + */ + public int getTexGlyphPadding() { + return nGetTexGlyphPadding(); + } + + /** + * Padding between glyphs within texture in pixels. Defaults to 1. + * If your rendering method doesn't rely on bilinear filtering you may set this to 0. + */ + public void setTexGlyphPadding(final int value) { + nSetTexGlyphPadding(value); + } + + private native int nGetTexGlyphPadding(); /* + return THIS->TexGlyphPadding; + */ + + private native void nSetTexGlyphPadding(int value); /* + THIS->TexGlyphPadding = value; + */ + + /** + * Marked as Locked by ImGui::NewFrame() so attempt to modify the atlas will assert. + */ + public boolean getLocked() { + return nGetLocked(); + } + + /** + * Marked as Locked by ImGui::NewFrame() so attempt to modify the atlas will assert. + */ + public void setLocked(final boolean value) { + nSetLocked(value); + } + + private native boolean nGetLocked(); /* + return THIS->Locked; + */ + + private native void nSetLocked(boolean value); /* + THIS->Locked = value; + */ + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/ImFontConfig.java b/imgui-binding/src/generated/java/imgui/ImFontConfig.java new file mode 100644 index 0000000..e8a447c --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImFontConfig.java @@ -0,0 +1,501 @@ +package imgui; + +import imgui.binding.ImGuiStructDestroyable; + +public final class ImFontConfig extends ImGuiStructDestroyable { + public ImFontConfig() { + super(); + } + + ImFontConfig(final long ptr) { + super(ptr); + } + + @Override + protected long create() { + return nCreate(); + } + + /*JNI + #include "_common.h" + #define THIS ((ImFontConfig*)STRUCT_PTR) + */ + + private native long nCreate(); /* + ImFontConfig* cfg = new ImFontConfig(); + cfg->FontDataOwnedByAtlas = false; + return (intptr_t)cfg; + */ + + // TODO: FontData + + /** + * TTF/OTF data size + */ + public int getFontDataSize() { + return nGetFontDataSize(); + } + + /** + * TTF/OTF data size + */ + public void setFontDataSize(final int value) { + nSetFontDataSize(value); + } + + private native int nGetFontDataSize(); /* + return THIS->FontDataSize; + */ + + private native void nSetFontDataSize(int value); /* + THIS->FontDataSize = value; + */ + + /** + * TTF/OTF data ownership taken by the container ImFontAtlas (will delete memory itself). + */ + public boolean getFontDataOwnedByAtlas() { + return nGetFontDataOwnedByAtlas(); + } + + /** + * TTF/OTF data ownership taken by the container ImFontAtlas (will delete memory itself). + */ + public void setFontDataOwnedByAtlas(final boolean value) { + nSetFontDataOwnedByAtlas(value); + } + + private native boolean nGetFontDataOwnedByAtlas(); /* + return THIS->FontDataOwnedByAtlas; + */ + + private native void nSetFontDataOwnedByAtlas(boolean value); /* + THIS->FontDataOwnedByAtlas = value; + */ + + /** + * Index of font within TTF/OTF file + */ + public int getFontNo() { + return nGetFontNo(); + } + + /** + * Index of font within TTF/OTF file + */ + public void setFontNo(final int value) { + nSetFontNo(value); + } + + private native int nGetFontNo(); /* + return THIS->FontNo; + */ + + private native void nSetFontNo(int value); /* + THIS->FontNo = value; + */ + + /** + * Size in pixels for rasterizer (more or less maps to the resulting font height). + */ + public float getSizePixels() { + return nGetSizePixels(); + } + + /** + * Size in pixels for rasterizer (more or less maps to the resulting font height). + */ + public void setSizePixels(final float value) { + nSetSizePixels(value); + } + + private native float nGetSizePixels(); /* + return THIS->SizePixels; + */ + + private native void nSetSizePixels(float value); /* + THIS->SizePixels = value; + */ + + /** + * Rasterize at higher quality for sub-pixel positioning. + * Note the difference between 2 and 3 is minimal so you can reduce this to 2 to save memory. + * Read https://github.com/nothings/stb/blob/master/tests/oversample/README.md for details. + */ + public int getOversampleH() { + return nGetOversampleH(); + } + + /** + * Rasterize at higher quality for sub-pixel positioning. + * Note the difference between 2 and 3 is minimal so you can reduce this to 2 to save memory. + * Read https://github.com/nothings/stb/blob/master/tests/oversample/README.md for details. + */ + public void setOversampleH(final int value) { + nSetOversampleH(value); + } + + private native int nGetOversampleH(); /* + return THIS->OversampleH; + */ + + private native void nSetOversampleH(int value); /* + THIS->OversampleH = value; + */ + + /** + * Rasterize at higher quality for sub-pixel positioning. + * This is not really useful as we don't use sub-pixel positions on the Y axis. + */ + public int getOversampleV() { + return nGetOversampleV(); + } + + /** + * Rasterize at higher quality for sub-pixel positioning. + * This is not really useful as we don't use sub-pixel positions on the Y axis. + */ + public void setOversampleV(final int value) { + nSetOversampleV(value); + } + + private native int nGetOversampleV(); /* + return THIS->OversampleV; + */ + + private native void nSetOversampleV(int value); /* + THIS->OversampleV = value; + */ + + /** + * Align every glyph to pixel boundary. Useful e.g. if you are merging a non-pixel aligned font with the default font. + * If enabled, you can set OversampleH/V to 1. + */ + public boolean getPixelSnapH() { + return nGetPixelSnapH(); + } + + /** + * Align every glyph to pixel boundary. Useful e.g. if you are merging a non-pixel aligned font with the default font. + * If enabled, you can set OversampleH/V to 1. + */ + public void setPixelSnapH(final boolean value) { + nSetPixelSnapH(value); + } + + private native boolean nGetPixelSnapH(); /* + return THIS->PixelSnapH; + */ + + private native void nSetPixelSnapH(boolean value); /* + THIS->PixelSnapH = value; + */ + + /** + * Extra spacing (in pixels) between glyphs. Only X axis is supported for now. + */ + 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); + } + + /** + * Extra spacing (in pixels) between glyphs. Only X axis is supported for now. + */ + public void setGlyphExtraSpacing(final float valueX, final float valueY) { + nSetGlyphExtraSpacing(valueX, valueY); + } + + private native void nGetGlyphExtraSpacing(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->GlyphExtraSpacing, dst); + */ + + 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; + */ + + /** + * Offset all glyphs from this font input. + */ + public ImVec2 getGlyphOffset() { + final ImVec2 dst = new ImVec2(); + nGetGlyphOffset(dst); + return dst; + } + + /** + * Offset all glyphs from this font input. + */ + public float getGlyphOffsetX() { + return nGetGlyphOffsetX(); + } + + /** + * Offset all glyphs from this font input. + */ + public float getGlyphOffsetY() { + return nGetGlyphOffsetY(); + } + + /** + * Offset all glyphs from this font input. + */ + public void getGlyphOffset(final ImVec2 dst) { + nGetGlyphOffset(dst); + } + + /** + * Offset all glyphs from this font input. + */ + public void setGlyphOffset(final ImVec2 value) { + nSetGlyphOffset(value.x, value.y); + } + + /** + * Offset all glyphs from this font input. + */ + public void setGlyphOffset(final float valueX, final float valueY) { + nSetGlyphOffset(valueX, valueY); + } + + private native void nGetGlyphOffset(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->GlyphOffset, dst); + */ + + private native float nGetGlyphOffsetX(); /* + return THIS->GlyphOffset.x; + */ + + private native float nGetGlyphOffsetY(); /* + return THIS->GlyphOffset.y; + */ + + private native void nSetGlyphOffset(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->GlyphOffset = value; + */ + + // TODO: GlyphRanges + + /** + * Minimum AdvanceX for glyphs, set Min to align font icons, set both Min/Max to enforce mono-space font + */ + public float getGlyphMinAdvanceX() { + return nGetGlyphMinAdvanceX(); + } + + /** + * Minimum AdvanceX for glyphs, set Min to align font icons, set both Min/Max to enforce mono-space font + */ + public void setGlyphMinAdvanceX(final float value) { + nSetGlyphMinAdvanceX(value); + } + + private native float nGetGlyphMinAdvanceX(); /* + return THIS->GlyphMinAdvanceX; + */ + + private native void nSetGlyphMinAdvanceX(float value); /* + THIS->GlyphMinAdvanceX = value; + */ + + /** + * Maximum AdvanceX for glyphs + */ + public float getGlyphMaxAdvanceX() { + return nGetGlyphMaxAdvanceX(); + } + + /** + * Maximum AdvanceX for glyphs + */ + public void setGlyphMaxAdvanceX(final float value) { + nSetGlyphMaxAdvanceX(value); + } + + private native float nGetGlyphMaxAdvanceX(); /* + return THIS->GlyphMaxAdvanceX; + */ + + private native void nSetGlyphMaxAdvanceX(float value); /* + THIS->GlyphMaxAdvanceX = value; + */ + + /** + * Merge into previous ImFont, so you can combine multiple inputs font into one ImFont (e.g. ASCII font + icons + Japanese glyphs). + * You may want to use GlyphOffset.y when merge font of different heights. + */ + public boolean getMergeMode() { + return nGetMergeMode(); + } + + /** + * Merge into previous ImFont, so you can combine multiple inputs font into one ImFont (e.g. ASCII font + icons + Japanese glyphs). + * You may want to use GlyphOffset.y when merge font of different heights. + */ + public void setMergeMode(final boolean value) { + nSetMergeMode(value); + } + + private native boolean nGetMergeMode(); /* + return THIS->MergeMode; + */ + + private native void nSetMergeMode(boolean value); /* + THIS->MergeMode = value; + */ + + /** + * Settings for custom font builder. THIS IS BUILDER IMPLEMENTATION DEPENDENT. Leave as zero if unsure. + */ + public int getFontBuilderFlags() { + return nGetFontBuilderFlags(); + } + + /** + * Settings for custom font builder. THIS IS BUILDER IMPLEMENTATION DEPENDENT. Leave as zero if unsure. + */ + public void setFontBuilderFlags(final int value) { + nSetFontBuilderFlags(value); + } + + /** + * Settings for custom font builder. THIS IS BUILDER IMPLEMENTATION DEPENDENT. Leave as zero if unsure. + */ + public void addFontBuilderFlags(final int flags) { + setFontBuilderFlags(getFontBuilderFlags() | flags); + } + + /** + * Settings for custom font builder. THIS IS BUILDER IMPLEMENTATION DEPENDENT. Leave as zero if unsure. + */ + public void removeFontBuilderFlags(final int flags) { + setFontBuilderFlags(getFontBuilderFlags() & ~(flags)); + } + + /** + * Settings for custom font builder. THIS IS BUILDER IMPLEMENTATION DEPENDENT. Leave as zero if unsure. + */ + public boolean hasFontBuilderFlags(final int flags) { + return (getFontBuilderFlags() & flags) != 0; + } + + private native int nGetFontBuilderFlags(); /* + return THIS->FontBuilderFlags; + */ + + private native void nSetFontBuilderFlags(int value); /* + THIS->FontBuilderFlags = value; + */ + + /** + * Brighten ({@code >}1.0f) or darken ({@code <}1.0f) font output. Brightening small fonts may be a good workaround to make them more readable. + */ + public float getRasterizerMultiply() { + return nGetRasterizerMultiply(); + } + + /** + * Brighten ({@code >}1.0f) or darken ({@code <}1.0f) font output. Brightening small fonts may be a good workaround to make them more readable. + */ + public void setRasterizerMultiply(final float value) { + nSetRasterizerMultiply(value); + } + + private native float nGetRasterizerMultiply(); /* + return THIS->RasterizerMultiply; + */ + + private native void nSetRasterizerMultiply(float value); /* + THIS->RasterizerMultiply = value; + */ + + /** + * Explicitly specify unicode codepoint of ellipsis character. When fonts are being merged first specified ellipsis will be used. + */ + public short getEllipsisChar() { + return nGetEllipsisChar(); + } + + /** + * Explicitly specify unicode codepoint of ellipsis character. When fonts are being merged first specified ellipsis will be used. + */ + public void setEllipsisChar(final short value) { + nSetEllipsisChar(value); + } + + private native short nGetEllipsisChar(); /* + return THIS->EllipsisChar; + */ + + private native void nSetEllipsisChar(short value); /* + THIS->EllipsisChar = value; + */ + + // [Internal] + + /** + * Name (strictly to ease debugging) + */ + public native void setName(String name); /* + strcpy(THIS->Name, name); + */ + + public ImFont getDstFont() { + return new ImFont(nGetDstFont()); + } + + public void setDstFont(final ImFont value) { + nSetDstFont(value.ptr); + } + + private native long nGetDstFont(); /* + return (intptr_t)THIS->DstFont; + */ + + private native void nSetDstFont(long value); /* + THIS->DstFont = reinterpret_cast(value); + */ + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/ImFontGlyph.java b/imgui-binding/src/generated/java/imgui/ImFontGlyph.java new file mode 100644 index 0000000..08438c8 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImFontGlyph.java @@ -0,0 +1,298 @@ +package imgui; + +import imgui.binding.ImGuiStructDestroyable; + +/** + * Hold rendering data for one glyph. + * (Note: some language parsers may fail to convert the 31+1 bitfield members, in this case maybe drop store a single u32 or we can rework this) + */ +public final class ImFontGlyph extends ImGuiStructDestroyable { + public ImFontGlyph() { + } + + public ImFontGlyph(final long ptr) { + super(ptr); + } + + @Override + protected long create() { + return nCreate(); + } + + /*JNI + #include "_common.h" + #define THIS ((ImFontGlyph*)STRUCT_PTR) + */ + + private native long nCreate(); /* + return (intptr_t)(new ImFontGlyph()); + */ + + /** + * Flag to indicate glyph is colored and should generally ignore tinting (make it usable with no shift on little-endian as this is used in loops). + */ + public int getColored() { + return nGetColored(); + } + + /** + * Flag to indicate glyph is colored and should generally ignore tinting (make it usable with no shift on little-endian as this is used in loops). + */ + public void setColored(final int value) { + nSetColored(value); + } + + private native int nGetColored(); /* + return THIS->Colored; + */ + + private native void nSetColored(int value); /* + THIS->Colored = value; + */ + + /** + * Flag to indicate glyph has no visible pixels (e.g. space). Allow early out when rendering. + */ + public int getVisible() { + return nGetVisible(); + } + + /** + * Flag to indicate glyph has no visible pixels (e.g. space). Allow early out when rendering. + */ + public void setVisible(final int value) { + nSetVisible(value); + } + + private native int nGetVisible(); /* + return THIS->Visible; + */ + + private native void nSetVisible(int value); /* + THIS->Visible = value; + */ + + /** + * 0x0000..0xFFFF + */ + public int getCodepoint() { + return nGetCodepoint(); + } + + /** + * 0x0000..0xFFFF + */ + public void setCodepoint(final int value) { + nSetCodepoint(value); + } + + private native int nGetCodepoint(); /* + return THIS->Codepoint; + */ + + private native void nSetCodepoint(int value); /* + THIS->Codepoint = value; + */ + + /** + * Distance to next character (= data from font + ImFontConfig::GlyphExtraSpacing.x baked in) + */ + public float getAdvanceX() { + return nGetAdvanceX(); + } + + /** + * Distance to next character (= data from font + ImFontConfig::GlyphExtraSpacing.x baked in) + */ + public void setAdvanceX(final float value) { + nSetAdvanceX(value); + } + + private native float nGetAdvanceX(); /* + return THIS->AdvanceX; + */ + + private native void nSetAdvanceX(float value); /* + THIS->AdvanceX = value; + */ + + /** + * Glyph corners + */ + public float getX0() { + return nGetX0(); + } + + /** + * Glyph corners + */ + public void setX0(final float value) { + nSetX0(value); + } + + private native float nGetX0(); /* + return THIS->X0; + */ + + private native void nSetX0(float value); /* + THIS->X0 = value; + */ + + /** + * Glyph corners + */ + public float getY0() { + return nGetY0(); + } + + /** + * Glyph corners + */ + public void setY0(final float value) { + nSetY0(value); + } + + private native float nGetY0(); /* + return THIS->Y0; + */ + + private native void nSetY0(float value); /* + THIS->Y0 = value; + */ + + /** + * Glyph corners + */ + public float getX1() { + return nGetX1(); + } + + /** + * Glyph corners + */ + public void setX1(final float value) { + nSetX1(value); + } + + private native float nGetX1(); /* + return THIS->X1; + */ + + private native void nSetX1(float value); /* + THIS->X1 = value; + */ + + /** + * Glyph corners + */ + public float getY1() { + return nGetY1(); + } + + /** + * Glyph corners + */ + public void setY1(final float value) { + nSetY1(value); + } + + private native float nGetY1(); /* + return THIS->Y1; + */ + + private native void nSetY1(float value); /* + THIS->Y1 = value; + */ + + /** + * Texture coordinates + */ + public float getU0() { + return nGetU0(); + } + + /** + * Texture coordinates + */ + public void setU0(final float value) { + nSetU0(value); + } + + private native float nGetU0(); /* + return THIS->U0; + */ + + private native void nSetU0(float value); /* + THIS->U0 = value; + */ + + /** + * Texture coordinates + */ + public float getV0() { + return nGetV0(); + } + + /** + * Texture coordinates + */ + public void setV0(final float value) { + nSetV0(value); + } + + private native float nGetV0(); /* + return THIS->V0; + */ + + private native void nSetV0(float value); /* + THIS->V0 = value; + */ + + /** + * Texture coordinates + */ + public float getU1() { + return nGetU1(); + } + + /** + * Texture coordinates + */ + public void setU1(final float value) { + nSetU1(value); + } + + private native float nGetU1(); /* + return THIS->U1; + */ + + private native void nSetU1(float value); /* + THIS->U1 = value; + */ + + /** + * Texture coordinates + */ + public float getV1() { + return nGetV1(); + } + + /** + * Texture coordinates + */ + public void setV1(final float value) { + nSetV1(value); + } + + private native float nGetV1(); /* + return THIS->V1; + */ + + private native void nSetV1(float value); /* + THIS->V1 = value; + */ + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/ImFontGlyphRangesBuilder.java b/imgui-binding/src/generated/java/imgui/ImFontGlyphRangesBuilder.java new file mode 100644 index 0000000..b9f85ba --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImFontGlyphRangesBuilder.java @@ -0,0 +1,95 @@ +package imgui; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * Helper to build glyph ranges from text/string data. Feed your application strings/characters to it then call buildRanges(). + *

+ * You can use the ImFontGlyphRangesBuilder helper to create glyph ranges based on text input. For example: for a game where your script is known, + * if you can feed your entire script to it and only build the characters the game needs. + *

+ * Direct reimplementation of native ImFontGlyphRangesBuilder in java + */ +public final class ImFontGlyphRangesBuilder { + private static final int UNICODE_CODEPOINT_MAX = 0xFFFF; + + // have to use type long because values are unsigned integers + private final long[] usedChars = new long[(UNICODE_CODEPOINT_MAX + 1) / 8]; + + public ImFontGlyphRangesBuilder() { + clear(); + } + + /** + * Adds single character to resulting ranges + */ + public void addChar(final char c) { + setBit(c); + } + + /** + * Adds all characters from the given string to resulting ranges + */ + public void addText(final String text) { + for (int i = 0; i < text.length(); i++) { + addChar(text.charAt(i)); + } + } + + /** + * Copies all given ranges to resulting ranges + */ + public void addRanges(final short[] ranges) { + for (int i = 0; i < ranges.length; i += 2) { + if (ranges[i] == 0) { + break; + } + + for (int k = ranges[i]; k <= ranges[i + 1]; k++) { + addChar((char) k); + } + } + } + + /** + * Builds the final result (ordered ranges with all the unique characters submitted) + * Result of this function can be directly passed to ImFontAtlas + */ + public short[] buildRanges() { + final List out = new ArrayList<>(); + for (int n = 0; n <= UNICODE_CODEPOINT_MAX; n++) { + if (getBit(n)) { + out.add((short) n); + while (n < UNICODE_CODEPOINT_MAX && getBit(n + 1)) { + n++; + } + out.add((short) n); + } + } + + final short[] result = new short[out.size() + 1]; + for (int i = 0; i < out.size(); i++) { + result[i] = out.get(i); + } + result[result.length - 1] = 0; + return result; + } + + public void clear() { + Arrays.fill(usedChars, 0L); + } + + public void setBit(final int n) { + final int off = n >> 5; + final long mask = 1L << (n & 31L); + usedChars[off] |= mask; + } + + public boolean getBit(final int n) { + final int off = n >> 5; + final long mask = 1L << (n & 31L); + return (usedChars[off] & mask) > 0; + } +} diff --git a/imgui-binding/src/generated/java/imgui/ImGui.java b/imgui-binding/src/generated/java/imgui/ImGui.java new file mode 100644 index 0000000..72dfc7f --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImGui.java @@ -0,0 +1,12660 @@ +package imgui; + +import imgui.assertion.ImAssertCallback; +import imgui.callback.ImGuiInputTextCallback; +import imgui.flag.ImGuiDragDropFlags; +import imgui.flag.ImGuiInputTextFlags; +import imgui.internal.ImGuiContext; +import imgui.type.ImBoolean; +import imgui.type.ImDouble; +import imgui.type.ImFloat; +import imgui.type.ImInt; +import imgui.type.ImString; + +import java.io.IOException; +import java.io.InputStream; +import java.io.UncheckedIOException; +import java.lang.ref.WeakReference; +import java.nio.file.AccessDeniedException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.util.Optional; +import java.util.Properties; + +@SuppressWarnings({"unused", "UnusedReturnValue"}) +public class ImGui { + private static final String LIB_PATH_PROP = "imgui.library.path"; + private static final String LIB_NAME_PROP = "imgui.library.name"; + private static final String LIB_NAME_DEFAULT = "imgui-java64"; + private static final String LIB_TMP_DIR_PREFIX = "imgui-java-natives"; + + static { + final String libPath = System.getProperty(LIB_PATH_PROP); + final String libName = System.getProperty(LIB_NAME_PROP, LIB_NAME_DEFAULT); + final String fullLibName = resolveFullLibName(); + + if (libPath != null) { + System.load(Paths.get(libPath).resolve(fullLibName).toAbsolutePath().toString()); + } else { + try { + System.loadLibrary(libName); + } catch (Exception | Error e) { + final String extractedLibAbsPath = tryLoadFromClasspath(fullLibName); + if (extractedLibAbsPath != null) { + System.load(extractedLibAbsPath); + } else { + throw e; + } + } + } + + nInitJni(); + ImFontAtlas.nInit(); + ImGuiPlatformIO.init(); + nInitInputTextData(); + + setAssertCallback(new ImAssertCallback() { + @Override + public void imAssertCallback(String assertion, int line, String file) { + System.err.println("Dear ImGui Assertion Failed: " + assertion); + System.err.println("Assertion Located At: " + file + ":" + line); + Thread.dumpStack(); + } + }); + } + + private static String resolveFullLibName() { + final boolean isWin = System.getProperty("os.name").toLowerCase().contains("win"); + final boolean isMac = System.getProperty("os.name").toLowerCase().contains("mac"); + final String libPrefix; + final String libSuffix; + + if (isWin) { + libPrefix = ""; + libSuffix = ".dll"; + } else if (isMac) { + libPrefix = "lib"; + libSuffix = ".dylib"; + } else { + libPrefix = "lib"; + libSuffix = ".so"; + } + + return System.getProperty(LIB_NAME_PROP, libPrefix + LIB_NAME_DEFAULT + libSuffix); + } + + // This method tries to unpack the library binary from classpath into the temp dir. + private static String tryLoadFromClasspath(final String fullLibName) { + try (InputStream is = ImGui.class.getClassLoader().getResourceAsStream("io/imgui/java/native-bin/" + fullLibName)) { + if (is == null) { + return null; + } + + final String version = getVersionString().orElse("undefined"); + final Path tmpDir = Paths.get(System.getProperty("java.io.tmpdir")).resolve(LIB_TMP_DIR_PREFIX).resolve(version); + if (!Files.exists(tmpDir)) { + Files.createDirectories(tmpDir); + } + + final Path libBin = tmpDir.resolve(fullLibName); + try { + Files.copy(is, libBin, StandardCopyOption.REPLACE_EXISTING); + } catch (AccessDeniedException e) { + if (!Files.exists(libBin)) { + throw e; + } + } + + return libBin.toAbsolutePath().toString(); + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } + + private static Optional getVersionString() { + final Properties properties = new Properties(); + try (InputStream is = ImGui.class.getResourceAsStream("/imgui/imgui-java.properties")) { + if (is != null) { + properties.load(is); + return Optional.of(properties.get("imgui.java.version").toString()); + } + } catch (IOException e) { + throw new UncheckedIOException(e); + } + return Optional.empty(); + } + + /** + * For internal usage. + * Method is used to initiate static instantiation (loading of the native libraries etc.). + * Otherwise, native libraries will be loaded on demand and natively mapped objects won't work. + */ + public static void init() { + } + + /*JNI + #include "_common.h" + */ + + private static native void nInitJni(); /* + Jni::InitJvm(env); + Jni::InitCommon(env); + Jni::InitAssertion(env); + Jni::InitCallbacks(env); + Jni::InitBindingStruct(env); + */ + + /** + * Set a custom assertion callback for ImGui assertions. + * Take note: Any custom assertion callback SHOULD NOT throw any exception. + * After any callback the application will be terminated, any attempt to bypass this behavior + * will result in a EXCEPTION_ACCESS_VIOLATION from within the native layer. + * + * @param callback The custom ImGui assertion callback + */ + public static native void setAssertCallback(ImAssertCallback callback); /* + Jni::SetAssertionCallback(callback); + */ + + // Context creation and access + // Each context create its own ImFontAtlas by default. + // You may instance one yourself and pass it to CreateContext() to share a font atlas between imgui contexts. + // None of those functions is reliant on the current context. + + public static ImGuiContext createContext() { + return new ImGuiContext(nCreateContext()); + } + + public static ImGuiContext createContext(final ImFontAtlas sharedFontAtlas) { + return new ImGuiContext(nCreateContext(sharedFontAtlas.ptr)); + } + + private static native long nCreateContext(); /* + return (intptr_t)ImGui::CreateContext(); + */ + + private static native long nCreateContext(long sharedFontAtlas); /* + return (intptr_t)ImGui::CreateContext(reinterpret_cast(sharedFontAtlas)); + */ + + public static void destroyContext() { + nDestroyContext(); + } + + public static void destroyContext(final ImGuiContext ctx) { + nDestroyContext(ctx.ptr); + } + + private static native void nDestroyContext(); /* + ImGui::DestroyContext(); + */ + + private static native void nDestroyContext(long ctx); /* + ImGui::DestroyContext(reinterpret_cast(ctx)); + */ + + public static ImGuiContext getCurrentContext() { + return new ImGuiContext(nGetCurrentContext()); + } + + private static native long nGetCurrentContext(); /* + return (intptr_t)ImGui::GetCurrentContext(); + */ + + public static void setCurrentContext(final ImGuiContext ctx) { + nSetCurrentContext(ctx.ptr); + } + + private static native void nSetCurrentContext(long ctx); /* + ImGui::SetCurrentContext(reinterpret_cast(ctx)); + */ + + // Main + + private static final ImGuiIO _GETIO_1 = new ImGuiIO(0); + + /** + * Access the IO structure (mouse/keyboard/gamepad inputs, time, various configuration options/flags). + */ + public static ImGuiIO getIO() { + _GETIO_1.ptr = nGetIO(); + return _GETIO_1; + } + + private static native long nGetIO(); /* + return (intptr_t)&ImGui::GetIO(); + */ + + private static final ImGuiStyle _GETSTYLE_1 = new ImGuiStyle(0); + + /** + * Access the Style structure (colors, sizes). Always use PushStyleCol(), PushStyleVar() to modify style mid-frame! + */ + public static ImGuiStyle getStyle() { + _GETSTYLE_1.ptr = nGetStyle(); + return _GETSTYLE_1; + } + + private static native long nGetStyle(); /* + return (intptr_t)&ImGui::GetStyle(); + */ + + /** + * Start a new Dear ImGui frame, you can submit any command from this point until Render()/EndFrame(). + */ + public static void newFrame() { + nNewFrame(); + } + + private static native void nNewFrame(); /* + ImGui::NewFrame(); + */ + + /** + * Ends the Dear ImGui frame. automatically called by Render(). If you don't need to render data (skipping rendering) you may call EndFrame() without + * Render()... but you'll have wasted CPU already! If you don't need to render, better to not create any windows and not call NewFrame() at all! + */ + public static void endFrame() { + nEndFrame(); + } + + private static native void nEndFrame(); /* + ImGui::EndFrame(); + */ + + /** + * Ends the Dear ImGui frame, finalize the draw data. You can then get call GetDrawData(). + */ + public static void render() { + nRender(); + } + + private static native void nRender(); /* + ImGui::Render(); + */ + + private static final ImDrawData _GETDRAWDATA_1 = new ImDrawData(0); + + /** + * Valid after Render() and until the next call to NewFrame(). this is what you have to render. + */ + public static ImDrawData getDrawData() { + _GETDRAWDATA_1.ptr = nGetDrawData(); + return _GETDRAWDATA_1; + } + + private static native long nGetDrawData(); /* + return (intptr_t)ImGui::GetDrawData(); + */ + + // Demo, Debug, Information + + /** + * Create Demo window. Demonstrate most ImGui features. Call this to learn about the library! + */ + public static void showDemoWindow() { + nShowDemoWindow(); + } + + /** + * Create Demo window. Demonstrate most ImGui features. Call this to learn about the library! + */ + public static void showDemoWindow(final ImBoolean pOpen) { + nShowDemoWindow(pOpen != null ? pOpen.getData() : null); + } + + private static native void nShowDemoWindow(); /* + ImGui::ShowDemoWindow(); + */ + + private static native void nShowDemoWindow(boolean[] pOpen); /*MANUAL + auto pOpen = obj_pOpen == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_pOpen, JNI_FALSE); + ImGui::ShowDemoWindow((pOpen != NULL ? &pOpen[0] : NULL)); + if (pOpen != NULL) env->ReleasePrimitiveArrayCritical(obj_pOpen, pOpen, JNI_FALSE); + */ + + /** + * Create Metrics/Debugger window. display Dear ImGui internals: windows, draw commands, various internal state, etc. + */ + public static void showMetricsWindow() { + nShowMetricsWindow(); + } + + /** + * Create Metrics/Debugger window. display Dear ImGui internals: windows, draw commands, various internal state, etc. + */ + public static void showMetricsWindow(final ImBoolean pOpen) { + nShowMetricsWindow(pOpen != null ? pOpen.getData() : null); + } + + private static native void nShowMetricsWindow(); /* + ImGui::ShowMetricsWindow(); + */ + + private static native void nShowMetricsWindow(boolean[] pOpen); /*MANUAL + auto pOpen = obj_pOpen == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_pOpen, JNI_FALSE); + ImGui::ShowMetricsWindow((pOpen != NULL ? &pOpen[0] : NULL)); + if (pOpen != NULL) env->ReleasePrimitiveArrayCritical(obj_pOpen, pOpen, JNI_FALSE); + */ + + /** + * Create Stack Tool window. hover items with mouse to query information about the source of their unique ID. + */ + public static void showStackToolWindow() { + nShowStackToolWindow(); + } + + /** + * Create Stack Tool window. hover items with mouse to query information about the source of their unique ID. + */ + public static void showStackToolWindow(final ImBoolean pOpen) { + nShowStackToolWindow(pOpen != null ? pOpen.getData() : null); + } + + private static native void nShowStackToolWindow(); /* + ImGui::ShowStackToolWindow(); + */ + + private static native void nShowStackToolWindow(boolean[] pOpen); /*MANUAL + auto pOpen = obj_pOpen == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_pOpen, JNI_FALSE); + ImGui::ShowStackToolWindow((pOpen != NULL ? &pOpen[0] : NULL)); + if (pOpen != NULL) env->ReleasePrimitiveArrayCritical(obj_pOpen, pOpen, JNI_FALSE); + */ + + /** + * Create About window. display Dear ImGui version, credits and build/system information. + */ + public static void showAboutWindow() { + nShowAboutWindow(); + } + + /** + * Create About window. display Dear ImGui version, credits and build/system information. + */ + public static void showAboutWindow(final ImBoolean pOpen) { + nShowAboutWindow(pOpen != null ? pOpen.getData() : null); + } + + private static native void nShowAboutWindow(); /* + ImGui::ShowAboutWindow(); + */ + + private static native void nShowAboutWindow(boolean[] pOpen); /*MANUAL + auto pOpen = obj_pOpen == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_pOpen, JNI_FALSE); + ImGui::ShowAboutWindow((pOpen != NULL ? &pOpen[0] : NULL)); + if (pOpen != NULL) env->ReleasePrimitiveArrayCritical(obj_pOpen, pOpen, JNI_FALSE); + */ + + /** + * Add style editor block (not a window). + * You can pass in a reference ImGuiStyle structure to compare to, revert to and save to (else it uses the default style) + */ + public static void showStyleEditor() { + nShowStyleEditor(); + } + + /** + * Add style editor block (not a window). + * You can pass in a reference ImGuiStyle structure to compare to, revert to and save to (else it uses the default style) + */ + public static void showStyleEditor(final ImGuiStyle ref) { + nShowStyleEditor(ref.ptr); + } + + private static native void nShowStyleEditor(); /* + ImGui::ShowStyleEditor(); + */ + + private static native void nShowStyleEditor(long ref); /* + ImGui::ShowStyleEditor(reinterpret_cast(ref)); + */ + + /** + * Add style selector block (not a window), essentially a combo listing the default styles. + */ + public static boolean showStyleSelector(final String label) { + return nShowStyleSelector(label); + } + + private static native boolean nShowStyleSelector(String obj_label); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::ShowStyleSelector(label); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + /** + * Add font selector block (not a window), essentially a combo listing the loaded fonts. + */ + public static void showFontSelector(final String label) { + nShowFontSelector(label); + } + + private static native void nShowFontSelector(String label); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + ImGui::ShowFontSelector(label); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + */ + + /** + * Add basic help/info block (not a window): how to manipulate ImGui as a end-user (mouse/keyboard controls). + */ + public static void showUserGuide() { + nShowUserGuide(); + } + + private static native void nShowUserGuide(); /* + ImGui::ShowUserGuide(); + */ + + /** + * Get the compiled version string e.g. "1.80 WIP" (essentially the value for IMGUI_VERSION from the compiled version of imgui.cpp) + */ + public static String getVersion() { + return nGetVersion(); + } + + private static native String nGetVersion(); /* + return env->NewStringUTF(ImGui::GetVersion()); + */ + + // Styles + + /** + * New, recommended style (default) + */ + public static void styleColorsDark() { + nStyleColorsDark(); + } + + /** + * New, recommended style (default) + */ + public static void styleColorsDark(final ImGuiStyle style) { + nStyleColorsDark(style.ptr); + } + + private static native void nStyleColorsDark(); /* + ImGui::StyleColorsDark(); + */ + + private static native void nStyleColorsDark(long style); /* + ImGui::StyleColorsDark(reinterpret_cast(style)); + */ + + /** + * Best used with borders and a custom, thicker font + */ + public static void styleColorsLight() { + nStyleColorsLight(); + } + + /** + * Best used with borders and a custom, thicker font + */ + public static void styleColorsLight(final ImGuiStyle style) { + nStyleColorsLight(style.ptr); + } + + private static native void nStyleColorsLight(); /* + ImGui::StyleColorsLight(); + */ + + private static native void nStyleColorsLight(long style); /* + ImGui::StyleColorsLight(reinterpret_cast(style)); + */ + + /** + * Classic imgui style + */ + public static void styleColorsClassic() { + nStyleColorsClassic(); + } + + /** + * Classic imgui style + */ + public static void styleColorsClassic(final ImGuiStyle style) { + nStyleColorsClassic(style.ptr); + } + + private static native void nStyleColorsClassic(); /* + ImGui::StyleColorsClassic(); + */ + + private static native void nStyleColorsClassic(long style); /* + ImGui::StyleColorsClassic(reinterpret_cast(style)); + */ + + // Windows + // - Begin() = push window to the stack and start appending to it. End() = pop window from the stack. + // - You may append multiple times to the same window during the same frame. + // - Passing 'bool* pOpen != NULL' shows a window-closing widget in the upper-right corner of the window, + // which clicking will set the boolean to false when clicked. + // - You may append multiple times to the same window during the same frame by calling Begin()/End() pairs multiple times. + // Some information such as 'flags' or 'p_open' will only be considered by the first call to Begin(). + // - Begin() return false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting + // anything to the window. Always call a matching End() for each Begin() call, regardless of its return value! + // [Important: due to legacy reason, this is inconsistent with most other functions such as BeginMenu/EndMenu, + // BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding BeginXXX function + // returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.] + // - Note that the bottom of window stack always contains a window called "Debug". + + public static boolean begin(final String title) { + return nBegin(title); + } + + public static boolean begin(final String title, final ImBoolean pOpen) { + return nBegin(title, pOpen != null ? pOpen.getData() : null); + } + + public static boolean begin(final String title, final ImBoolean pOpen, final int imGuiWindowFlags) { + return nBegin(title, pOpen != null ? pOpen.getData() : null, imGuiWindowFlags); + } + + public static boolean begin(final String title, final int imGuiWindowFlags) { + return nBegin(title, imGuiWindowFlags); + } + + private static native boolean nBegin(String obj_title); /*MANUAL + auto title = obj_title == NULL ? NULL : (char*)env->GetStringUTFChars(obj_title, JNI_FALSE); + auto _result = ImGui::Begin(title); + if (title != NULL) env->ReleaseStringUTFChars(obj_title, title); + return _result; + */ + + private static native boolean nBegin(String obj_title, boolean[] obj_pOpen); /*MANUAL + auto title = obj_title == NULL ? NULL : (char*)env->GetStringUTFChars(obj_title, JNI_FALSE); + auto pOpen = obj_pOpen == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_pOpen, JNI_FALSE); + auto _result = ImGui::Begin(title, (pOpen != NULL ? &pOpen[0] : NULL)); + if (title != NULL) env->ReleaseStringUTFChars(obj_title, title); + if (pOpen != NULL) env->ReleasePrimitiveArrayCritical(obj_pOpen, pOpen, JNI_FALSE); + return _result; + */ + + private static native boolean nBegin(String obj_title, boolean[] obj_pOpen, int imGuiWindowFlags); /*MANUAL + auto title = obj_title == NULL ? NULL : (char*)env->GetStringUTFChars(obj_title, JNI_FALSE); + auto pOpen = obj_pOpen == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_pOpen, JNI_FALSE); + auto _result = ImGui::Begin(title, (pOpen != NULL ? &pOpen[0] : NULL), imGuiWindowFlags); + if (title != NULL) env->ReleaseStringUTFChars(obj_title, title); + if (pOpen != NULL) env->ReleasePrimitiveArrayCritical(obj_pOpen, pOpen, JNI_FALSE); + return _result; + */ + + private static native boolean nBegin(String obj_title, int imGuiWindowFlags); /*MANUAL + auto title = obj_title == NULL ? NULL : (char*)env->GetStringUTFChars(obj_title, JNI_FALSE); + auto _result = ImGui::Begin(title, NULL, imGuiWindowFlags); + if (title != NULL) env->ReleaseStringUTFChars(obj_title, title); + return _result; + */ + + public static void end() { + nEnd(); + } + + private static native void nEnd(); /* + ImGui::End(); + */ + + // Child Windows + // - Use child windows to begin into a self-contained independent scrolling/clipping regions within a host window. Child windows can embed their own child. + // - For each independent axis of 'size': ==0.0f: use remaining host window size / >0.0f: fixed size / <0.0f: use remaining window size minus abs(size) / Each axis can use a different mode, e.g. ImVec2(0,400). + // - BeginChild() returns false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting anything to the window. + // Always call a matching EndChild() for each BeginChild() call, regardless of its return value. + // [Important: due to legacy reason, this is inconsistent with most other functions such as BeginMenu/EndMenu, + // BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding BeginXXX function + // returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.] + + public static boolean beginChild(final String strId) { + return nBeginChild(strId); + } + + public static boolean beginChild(final String strId, final ImVec2 size) { + return nBeginChild(strId, size.x, size.y); + } + + public static boolean beginChild(final String strId, final float sizeX, final float sizeY) { + return nBeginChild(strId, sizeX, sizeY); + } + + public static boolean beginChild(final String strId, final ImVec2 size, final boolean border) { + return nBeginChild(strId, size.x, size.y, border); + } + + public static boolean beginChild(final String strId, final float sizeX, final float sizeY, final boolean border) { + return nBeginChild(strId, sizeX, sizeY, border); + } + + public static boolean beginChild(final String strId, final ImVec2 size, final boolean border, final int imGuiWindowFlags) { + return nBeginChild(strId, size.x, size.y, border, imGuiWindowFlags); + } + + public static boolean beginChild(final String strId, final float sizeX, final float sizeY, final boolean border, final int imGuiWindowFlags) { + return nBeginChild(strId, sizeX, sizeY, border, imGuiWindowFlags); + } + + public static boolean beginChild(final String strId, final boolean border, final int imGuiWindowFlags) { + return nBeginChild(strId, border, imGuiWindowFlags); + } + + public static boolean beginChild(final String strId, final int imGuiWindowFlags) { + return nBeginChild(strId, imGuiWindowFlags); + } + + public static boolean beginChild(final String strId, final ImVec2 size, final int imGuiWindowFlags) { + return nBeginChild(strId, size.x, size.y, imGuiWindowFlags); + } + + public static boolean beginChild(final String strId, final float sizeX, final float sizeY, final int imGuiWindowFlags) { + return nBeginChild(strId, sizeX, sizeY, imGuiWindowFlags); + } + + private static native boolean nBeginChild(String obj_strId); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + auto _result = ImGui::BeginChild(strId); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + private static native boolean nBeginChild(String obj_strId, float sizeX, float sizeY); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::BeginChild(strId, size); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + private static native boolean nBeginChild(String obj_strId, float sizeX, float sizeY, boolean border); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::BeginChild(strId, size, border); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + private static native boolean nBeginChild(String obj_strId, float sizeX, float sizeY, boolean border, int imGuiWindowFlags); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::BeginChild(strId, size, border, imGuiWindowFlags); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + private static native boolean nBeginChild(String obj_strId, boolean border, int imGuiWindowFlags); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + auto _result = ImGui::BeginChild(strId, ImVec2(0,0), border, imGuiWindowFlags); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + private static native boolean nBeginChild(String obj_strId, int imGuiWindowFlags); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + auto _result = ImGui::BeginChild(strId, ImVec2(0,0), false, imGuiWindowFlags); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + private static native boolean nBeginChild(String obj_strId, float sizeX, float sizeY, int imGuiWindowFlags); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::BeginChild(strId, size, false, imGuiWindowFlags); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + public static boolean beginChild(final int imGuiID) { + return nBeginChild(imGuiID); + } + + public static boolean beginChild(final int imGuiID, final ImVec2 size) { + return nBeginChild(imGuiID, size.x, size.y); + } + + public static boolean beginChild(final int imGuiID, final float sizeX, final float sizeY) { + return nBeginChild(imGuiID, sizeX, sizeY); + } + + public static boolean beginChild(final int imGuiID, final ImVec2 size, final boolean border) { + return nBeginChild(imGuiID, size.x, size.y, border); + } + + public static boolean beginChild(final int imGuiID, final float sizeX, final float sizeY, final boolean border) { + return nBeginChild(imGuiID, sizeX, sizeY, border); + } + + public static boolean beginChild(final int imGuiID, final ImVec2 size, final boolean border, final int imGuiWindowFlags) { + return nBeginChild(imGuiID, size.x, size.y, border, imGuiWindowFlags); + } + + public static boolean beginChild(final int imGuiID, final float sizeX, final float sizeY, final boolean border, final int imGuiWindowFlags) { + return nBeginChild(imGuiID, sizeX, sizeY, border, imGuiWindowFlags); + } + + public static boolean beginChild(final int imGuiID, final boolean border, final int imGuiWindowFlags) { + return nBeginChild(imGuiID, border, imGuiWindowFlags); + } + + public static boolean beginChild(final int imGuiID, final int imGuiWindowFlags) { + return nBeginChild(imGuiID, imGuiWindowFlags); + } + + public static boolean beginChild(final int imGuiID, final ImVec2 size, final int imGuiWindowFlags) { + return nBeginChild(imGuiID, size.x, size.y, imGuiWindowFlags); + } + + public static boolean beginChild(final int imGuiID, final float sizeX, final float sizeY, final int imGuiWindowFlags) { + return nBeginChild(imGuiID, sizeX, sizeY, imGuiWindowFlags); + } + + private static native boolean nBeginChild(int imGuiID); /* + return ImGui::BeginChild(imGuiID); + */ + + private static native boolean nBeginChild(int imGuiID, float sizeX, float sizeY); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::BeginChild(imGuiID, size); + return _result; + */ + + private static native boolean nBeginChild(int imGuiID, float sizeX, float sizeY, boolean border); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::BeginChild(imGuiID, size, border); + return _result; + */ + + private static native boolean nBeginChild(int imGuiID, float sizeX, float sizeY, boolean border, int imGuiWindowFlags); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::BeginChild(imGuiID, size, border, imGuiWindowFlags); + return _result; + */ + + private static native boolean nBeginChild(int imGuiID, boolean border, int imGuiWindowFlags); /* + return ImGui::BeginChild(imGuiID, ImVec2(0,0), border, imGuiWindowFlags); + */ + + private static native boolean nBeginChild(int imGuiID, int imGuiWindowFlags); /* + return ImGui::BeginChild(imGuiID, ImVec2(0,0), false, imGuiWindowFlags); + */ + + private static native boolean nBeginChild(int imGuiID, float sizeX, float sizeY, int imGuiWindowFlags); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::BeginChild(imGuiID, size, false, imGuiWindowFlags); + return _result; + */ + + public static void endChild() { + nEndChild(); + } + + private static native void nEndChild(); /* + ImGui::EndChild(); + */ + + // Windows Utilities + // - "current window" = the window we are appending into while inside a Begin()/End() block. "next window" = next window we will Begin() into. + + public static boolean isWindowAppearing() { + return nIsWindowAppearing(); + } + + private static native boolean nIsWindowAppearing(); /* + return ImGui::IsWindowAppearing(); + */ + + public static boolean isWindowCollapsed() { + return nIsWindowCollapsed(); + } + + private static native boolean nIsWindowCollapsed(); /* + return ImGui::IsWindowCollapsed(); + */ + + /** + * Is current window focused? or its root/child, depending on flags. see flags for options. + */ + public static boolean isWindowFocused() { + return nIsWindowFocused(); + } + + /** + * Is current window focused? or its root/child, depending on flags. see flags for options. + */ + public static boolean isWindowFocused(final int imGuiFocusedFlags) { + return nIsWindowFocused(imGuiFocusedFlags); + } + + private static native boolean nIsWindowFocused(); /* + return ImGui::IsWindowFocused(); + */ + + private static native boolean nIsWindowFocused(int imGuiFocusedFlags); /* + return ImGui::IsWindowFocused(imGuiFocusedFlags); + */ + + /** + * Is current window hovered (and typically: not blocked by a popup/modal)? see flags for options. + * NB: If you are trying to check whether your mouse should be dispatched to imgui or to your app, + * you should use the 'io.WantCaptureMouse' boolean for that! Please read the FAQ! + */ + public static boolean isWindowHovered() { + return nIsWindowHovered(); + } + + /** + * Is current window hovered (and typically: not blocked by a popup/modal)? see flags for options. + * NB: If you are trying to check whether your mouse should be dispatched to imgui or to your app, + * you should use the 'io.WantCaptureMouse' boolean for that! Please read the FAQ! + */ + public static boolean isWindowHovered(final int imGuiHoveredFlags) { + return nIsWindowHovered(imGuiHoveredFlags); + } + + private static native boolean nIsWindowHovered(); /* + return ImGui::IsWindowHovered(); + */ + + private static native boolean nIsWindowHovered(int imGuiHoveredFlags); /* + return ImGui::IsWindowHovered(imGuiHoveredFlags); + */ + + /** + * Get draw list associated to the current window, to append your own drawing primitives + */ + public static ImDrawList getWindowDrawList() { + return new ImDrawList(nGetWindowDrawList()); + } + + private static native long nGetWindowDrawList(); /* + return (intptr_t)ImGui::GetWindowDrawList(); + */ + + /** + * Get DPI scale currently associated to the current window's viewport. + */ + public static float getWindowDpiScale() { + return nGetWindowDpiScale(); + } + + private static native float nGetWindowDpiScale(); /* + return ImGui::GetWindowDpiScale(); + */ + + /** + * Get current window position in screen space (useful if you want to do your own drawing via the DrawList API) + */ + public static ImVec2 getWindowPos() { + final ImVec2 dst = new ImVec2(); + nGetWindowPos(dst); + return dst; + } + + /** + * Get current window position in screen space (useful if you want to do your own drawing via the DrawList API) + */ + public static float getWindowPosX() { + return nGetWindowPosX(); + } + + /** + * Get current window position in screen space (useful if you want to do your own drawing via the DrawList API) + */ + public static float getWindowPosY() { + return nGetWindowPosY(); + } + + /** + * Get current window position in screen space (useful if you want to do your own drawing via the DrawList API) + */ + public static void getWindowPos(final ImVec2 dst) { + nGetWindowPos(dst); + } + + private static native void nGetWindowPos(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ImGui::GetWindowPos(), dst); + */ + + private static native float nGetWindowPosX(); /* + return ImGui::GetWindowPos().x; + */ + + private static native float nGetWindowPosY(); /* + return ImGui::GetWindowPos().y; + */ + + /** + * Get current window size + */ + public static ImVec2 getWindowSize() { + final ImVec2 dst = new ImVec2(); + nGetWindowSize(dst); + return dst; + } + + /** + * Get current window size + */ + public static float getWindowSizeX() { + return nGetWindowSizeX(); + } + + /** + * Get current window size + */ + public static float getWindowSizeY() { + return nGetWindowSizeY(); + } + + /** + * Get current window size + */ + public static void getWindowSize(final ImVec2 dst) { + nGetWindowSize(dst); + } + + private static native void nGetWindowSize(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ImGui::GetWindowSize(), dst); + */ + + private static native float nGetWindowSizeX(); /* + return ImGui::GetWindowSize().x; + */ + + private static native float nGetWindowSizeY(); /* + return ImGui::GetWindowSize().y; + */ + + /** + * Get current window width (shortcut for GetWindowSize().x) + */ + public static float getWindowWidth() { + return nGetWindowWidth(); + } + + private static native float nGetWindowWidth(); /* + return ImGui::GetWindowWidth(); + */ + + /** + * Get current window height (shortcut for GetWindowSize().y) + */ + public static float getWindowHeight() { + return nGetWindowHeight(); + } + + private static native float nGetWindowHeight(); /* + return ImGui::GetWindowHeight(); + */ + + /** + * Get viewport currently associated to the current window. + */ + public static ImGuiViewport getWindowViewport() { + return new ImGuiViewport(nGetWindowViewport()); + } + + private static native long nGetWindowViewport(); /* + return (intptr_t)ImGui::GetWindowViewport(); + */ + + // Prefer using SetNextXXX functions (before Begin) rather that SetXXX functions (after Begin). + + /** + * Set next window position. call before Begin(). use pivot=(0.5f,0.5f) to center on given point, etc. + */ + public static void setNextWindowPos(final ImVec2 pos) { + nSetNextWindowPos(pos.x, pos.y); + } + + /** + * Set next window position. call before Begin(). use pivot=(0.5f,0.5f) to center on given point, etc. + */ + public static void setNextWindowPos(final float posX, final float posY) { + nSetNextWindowPos(posX, posY); + } + + /** + * Set next window position. call before Begin(). use pivot=(0.5f,0.5f) to center on given point, etc. + */ + public static void setNextWindowPos(final ImVec2 pos, final int cond) { + nSetNextWindowPos(pos.x, pos.y, cond); + } + + /** + * Set next window position. call before Begin(). use pivot=(0.5f,0.5f) to center on given point, etc. + */ + public static void setNextWindowPos(final float posX, final float posY, final int cond) { + nSetNextWindowPos(posX, posY, cond); + } + + /** + * Set next window position. call before Begin(). use pivot=(0.5f,0.5f) to center on given point, etc. + */ + public static void setNextWindowPos(final ImVec2 pos, final int cond, final ImVec2 pivot) { + nSetNextWindowPos(pos.x, pos.y, cond, pivot.x, pivot.y); + } + + /** + * Set next window position. call before Begin(). use pivot=(0.5f,0.5f) to center on given point, etc. + */ + public static void setNextWindowPos(final float posX, final float posY, final int cond, final float pivotX, final float pivotY) { + nSetNextWindowPos(posX, posY, cond, pivotX, pivotY); + } + + /** + * Set next window position. call before Begin(). use pivot=(0.5f,0.5f) to center on given point, etc. + */ + public static void setNextWindowPos(final ImVec2 pos, final ImVec2 pivot) { + nSetNextWindowPos(pos.x, pos.y, pivot.x, pivot.y); + } + + /** + * Set next window position. call before Begin(). use pivot=(0.5f,0.5f) to center on given point, etc. + */ + public static void setNextWindowPos(final float posX, final float posY, final float pivotX, final float pivotY) { + nSetNextWindowPos(posX, posY, pivotX, pivotY); + } + + private static native void nSetNextWindowPos(float posX, float posY); /*MANUAL + ImVec2 pos = ImVec2(posX, posY); + ImGui::SetNextWindowPos(pos); + */ + + private static native void nSetNextWindowPos(float posX, float posY, int cond); /*MANUAL + ImVec2 pos = ImVec2(posX, posY); + ImGui::SetNextWindowPos(pos, cond); + */ + + private static native void nSetNextWindowPos(float posX, float posY, int cond, float pivotX, float pivotY); /*MANUAL + ImVec2 pos = ImVec2(posX, posY); + ImVec2 pivot = ImVec2(pivotX, pivotY); + ImGui::SetNextWindowPos(pos, cond, pivot); + */ + + private static native void nSetNextWindowPos(float posX, float posY, float pivotX, float pivotY); /*MANUAL + ImVec2 pos = ImVec2(posX, posY); + ImVec2 pivot = ImVec2(pivotX, pivotY); + ImGui::SetNextWindowPos(pos, ImGuiCond_None, pivot); + */ + + /** + * Set next window size. set axis to 0.0f to force an auto-fit on this axis. call before Begin() + */ + public static void setNextWindowSize(final ImVec2 size) { + nSetNextWindowSize(size.x, size.y); + } + + /** + * Set next window size. set axis to 0.0f to force an auto-fit on this axis. call before Begin() + */ + public static void setNextWindowSize(final float sizeX, final float sizeY) { + nSetNextWindowSize(sizeX, sizeY); + } + + /** + * Set next window size. set axis to 0.0f to force an auto-fit on this axis. call before Begin() + */ + public static void setNextWindowSize(final ImVec2 size, final int cond) { + nSetNextWindowSize(size.x, size.y, cond); + } + + /** + * Set next window size. set axis to 0.0f to force an auto-fit on this axis. call before Begin() + */ + public static void setNextWindowSize(final float sizeX, final float sizeY, final int cond) { + nSetNextWindowSize(sizeX, sizeY, cond); + } + + private static native void nSetNextWindowSize(float sizeX, float sizeY); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + ImGui::SetNextWindowSize(size); + */ + + private static native void nSetNextWindowSize(float sizeX, float sizeY, int cond); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + ImGui::SetNextWindowSize(size, cond); + */ + + /** + * Set next window size limits. use -1,-1 on either X/Y axis to preserve the current size. Sizes will be rounded down. + */ + public static void setNextWindowSizeConstraints(final ImVec2 sizeMin, final ImVec2 sizeMax) { + nSetNextWindowSizeConstraints(sizeMin.x, sizeMin.y, sizeMax.x, sizeMax.y); + } + + /** + * Set next window size limits. use -1,-1 on either X/Y axis to preserve the current size. Sizes will be rounded down. + */ + public static void setNextWindowSizeConstraints(final float sizeMinX, final float sizeMinY, final float sizeMaxX, final float sizeMaxY) { + nSetNextWindowSizeConstraints(sizeMinX, sizeMinY, sizeMaxX, sizeMaxY); + } + + private static native void nSetNextWindowSizeConstraints(float sizeMinX, float sizeMinY, float sizeMaxX, float sizeMaxY); /*MANUAL + ImVec2 sizeMin = ImVec2(sizeMinX, sizeMinY); + ImVec2 sizeMax = ImVec2(sizeMaxX, sizeMaxY); + ImGui::SetNextWindowSizeConstraints(sizeMin, sizeMax); + */ + + /** + * Set next window content size (~ scrollable client area, which enforce the range of scrollbars). + * Not including window decorations (title bar, menu bar, etc.) nor WindowPadding. set an axis to 0.0f to leave it automatic. call before Begin() + */ + public static void setNextWindowContentSize(final ImVec2 size) { + nSetNextWindowContentSize(size.x, size.y); + } + + /** + * Set next window content size (~ scrollable client area, which enforce the range of scrollbars). + * Not including window decorations (title bar, menu bar, etc.) nor WindowPadding. set an axis to 0.0f to leave it automatic. call before Begin() + */ + public static void setNextWindowContentSize(final float sizeX, final float sizeY) { + nSetNextWindowContentSize(sizeX, sizeY); + } + + private static native void nSetNextWindowContentSize(float sizeX, float sizeY); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + ImGui::SetNextWindowContentSize(size); + */ + + /** + * Set next window collapsed state. call before Begin() + */ + public static void setNextWindowCollapsed(final boolean collapsed) { + nSetNextWindowCollapsed(collapsed); + } + + /** + * Set next window collapsed state. call before Begin() + */ + public static void setNextWindowCollapsed(final boolean collapsed, final int cond) { + nSetNextWindowCollapsed(collapsed, cond); + } + + private static native void nSetNextWindowCollapsed(boolean collapsed); /* + ImGui::SetNextWindowCollapsed(collapsed); + */ + + private static native void nSetNextWindowCollapsed(boolean collapsed, int cond); /* + ImGui::SetNextWindowCollapsed(collapsed, cond); + */ + + /** + * Set next window to be focused / top-most. call before Begin() + */ + public static void setNextWindowFocus() { + nSetNextWindowFocus(); + } + + private static native void nSetNextWindowFocus(); /* + ImGui::SetNextWindowFocus(); + */ + + /** + * Set next window background color alpha. helper to easily override the Alpha component of ImGuiCol_WindowBg/ChildBg/PopupBg. + * You may also use ImGuiWindowFlags_NoBackground. + */ + public static void setNextWindowBgAlpha(final float alpha) { + nSetNextWindowBgAlpha(alpha); + } + + private static native void nSetNextWindowBgAlpha(float alpha); /* + ImGui::SetNextWindowBgAlpha(alpha); + */ + + /** + * Set next window viewport. + */ + public static void setNextWindowViewport(final int viewportId) { + nSetNextWindowViewport(viewportId); + } + + private static native void nSetNextWindowViewport(int viewportId); /* + ImGui::SetNextWindowViewport(viewportId); + */ + + /** + * (not recommended) set current window position - call within Begin()/End(). + * Prefer using SetNextWindowPos(), as this may incur tearing and side-effects. + */ + public static void setWindowPos(final ImVec2 pos) { + nSetWindowPos(pos.x, pos.y); + } + + /** + * (not recommended) set current window position - call within Begin()/End(). + * Prefer using SetNextWindowPos(), as this may incur tearing and side-effects. + */ + public static void setWindowPos(final float posX, final float posY) { + nSetWindowPos(posX, posY); + } + + /** + * (not recommended) set current window position - call within Begin()/End(). + * Prefer using SetNextWindowPos(), as this may incur tearing and side-effects. + */ + public static void setWindowPos(final ImVec2 pos, final int cond) { + nSetWindowPos(pos.x, pos.y, cond); + } + + /** + * (not recommended) set current window position - call within Begin()/End(). + * Prefer using SetNextWindowPos(), as this may incur tearing and side-effects. + */ + public static void setWindowPos(final float posX, final float posY, final int cond) { + nSetWindowPos(posX, posY, cond); + } + + private static native void nSetWindowPos(float posX, float posY); /*MANUAL + ImVec2 pos = ImVec2(posX, posY); + ImGui::SetWindowPos(pos); + */ + + private static native void nSetWindowPos(float posX, float posY, int cond); /*MANUAL + ImVec2 pos = ImVec2(posX, posY); + ImGui::SetWindowPos(pos, cond); + */ + + /** + * (not recommended) set current window size - call within Begin()/End(). set to ImVec2(0,0) to force an auto-fit. + * Prefer using SetNextWindowSize(), as this may incur tearing and minor side-effects. + */ + public static void setWindowSize(final ImVec2 size) { + nSetWindowSize(size.x, size.y); + } + + /** + * (not recommended) set current window size - call within Begin()/End(). set to ImVec2(0,0) to force an auto-fit. + * Prefer using SetNextWindowSize(), as this may incur tearing and minor side-effects. + */ + public static void setWindowSize(final float sizeX, final float sizeY) { + nSetWindowSize(sizeX, sizeY); + } + + /** + * (not recommended) set current window size - call within Begin()/End(). set to ImVec2(0,0) to force an auto-fit. + * Prefer using SetNextWindowSize(), as this may incur tearing and minor side-effects. + */ + public static void setWindowSize(final ImVec2 size, final int cond) { + nSetWindowSize(size.x, size.y, cond); + } + + /** + * (not recommended) set current window size - call within Begin()/End(). set to ImVec2(0,0) to force an auto-fit. + * Prefer using SetNextWindowSize(), as this may incur tearing and minor side-effects. + */ + public static void setWindowSize(final float sizeX, final float sizeY, final int cond) { + nSetWindowSize(sizeX, sizeY, cond); + } + + private static native void nSetWindowSize(float sizeX, float sizeY); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + ImGui::SetWindowSize(size); + */ + + private static native void nSetWindowSize(float sizeX, float sizeY, int cond); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + ImGui::SetWindowSize(size, cond); + */ + + /** + * (not recommended) set current window collapsed state. prefer using SetNextWindowCollapsed(). + */ + public static void setWindowCollapsed(final boolean collapsed) { + nSetWindowCollapsed(collapsed); + } + + /** + * (not recommended) set current window collapsed state. prefer using SetNextWindowCollapsed(). + */ + public static void setWindowCollapsed(final boolean collapsed, final int cond) { + nSetWindowCollapsed(collapsed, cond); + } + + private static native void nSetWindowCollapsed(boolean collapsed); /* + ImGui::SetWindowCollapsed(collapsed); + */ + + private static native void nSetWindowCollapsed(boolean collapsed, int cond); /* + ImGui::SetWindowCollapsed(collapsed, cond); + */ + + /** + * (not recommended) set current window to be focused / top-most. prefer using SetNextWindowFocus(). + */ + public static void setWindowFocus() { + nSetWindowFocus(); + } + + private static native void nSetWindowFocus(); /* + ImGui::SetWindowFocus(); + */ + + /** + * Set font scale. Adjust IO.FontGlobalScale if you want to scale all windows. + * This is an old API! For correct scaling, prefer to reload font + rebuild ImFontAtlas + call style.ScaleAllSizes(). + */ + public static void setWindowFontScale(final float scale) { + nSetWindowFontScale(scale); + } + + private static native void nSetWindowFontScale(float scale); /* + ImGui::SetWindowFontScale(scale); + */ + + /** + * Set named window position. + */ + public static void setWindowPos(final String name, final ImVec2 pos) { + nSetWindowPos(name, pos.x, pos.y); + } + + /** + * Set named window position. + */ + public static void setWindowPos(final String name, final float posX, final float posY) { + nSetWindowPos(name, posX, posY); + } + + /** + * Set named window position. + */ + public static void setWindowPos(final String name, final ImVec2 pos, final int cond) { + nSetWindowPos(name, pos.x, pos.y, cond); + } + + /** + * Set named window position. + */ + public static void setWindowPos(final String name, final float posX, final float posY, final int cond) { + nSetWindowPos(name, posX, posY, cond); + } + + private static native void nSetWindowPos(String name, float posX, float posY); /*MANUAL + auto name = obj_name == NULL ? NULL : (char*)env->GetStringUTFChars(obj_name, JNI_FALSE); + ImVec2 pos = ImVec2(posX, posY); + ImGui::SetWindowPos(name, pos); + if (name != NULL) env->ReleaseStringUTFChars(obj_name, name); + */ + + private static native void nSetWindowPos(String name, float posX, float posY, int cond); /*MANUAL + auto name = obj_name == NULL ? NULL : (char*)env->GetStringUTFChars(obj_name, JNI_FALSE); + ImVec2 pos = ImVec2(posX, posY); + ImGui::SetWindowPos(name, pos, cond); + if (name != NULL) env->ReleaseStringUTFChars(obj_name, name); + */ + + /** + * Set named window size. set axis to 0.0f to force an auto-fit on this axis. + */ + public static void setWindowSize(final String name, final ImVec2 size) { + nSetWindowSize(name, size.x, size.y); + } + + /** + * Set named window size. set axis to 0.0f to force an auto-fit on this axis. + */ + public static void setWindowSize(final String name, final float sizeX, final float sizeY) { + nSetWindowSize(name, sizeX, sizeY); + } + + /** + * Set named window size. set axis to 0.0f to force an auto-fit on this axis. + */ + public static void setWindowSize(final String name, final ImVec2 size, final int cond) { + nSetWindowSize(name, size.x, size.y, cond); + } + + /** + * Set named window size. set axis to 0.0f to force an auto-fit on this axis. + */ + public static void setWindowSize(final String name, final float sizeX, final float sizeY, final int cond) { + nSetWindowSize(name, sizeX, sizeY, cond); + } + + private static native void nSetWindowSize(String name, float sizeX, float sizeY); /*MANUAL + auto name = obj_name == NULL ? NULL : (char*)env->GetStringUTFChars(obj_name, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + ImGui::SetWindowSize(name, size); + if (name != NULL) env->ReleaseStringUTFChars(obj_name, name); + */ + + private static native void nSetWindowSize(String name, float sizeX, float sizeY, int cond); /*MANUAL + auto name = obj_name == NULL ? NULL : (char*)env->GetStringUTFChars(obj_name, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + ImGui::SetWindowSize(name, size, cond); + if (name != NULL) env->ReleaseStringUTFChars(obj_name, name); + */ + + /** + * Set named window collapsed state + */ + public static void setWindowCollapsed(final String name, final boolean collapsed) { + nSetWindowCollapsed(name, collapsed); + } + + /** + * Set named window collapsed state + */ + public static void setWindowCollapsed(final String name, final boolean collapsed, final int cond) { + nSetWindowCollapsed(name, collapsed, cond); + } + + private static native void nSetWindowCollapsed(String name, boolean collapsed); /*MANUAL + auto name = obj_name == NULL ? NULL : (char*)env->GetStringUTFChars(obj_name, JNI_FALSE); + ImGui::SetWindowCollapsed((const char *)name, (bool)collapsed); + if (name != NULL) env->ReleaseStringUTFChars(obj_name, name); + */ + + private static native void nSetWindowCollapsed(String name, boolean collapsed, int cond); /*MANUAL + auto name = obj_name == NULL ? NULL : (char*)env->GetStringUTFChars(obj_name, JNI_FALSE); + ImGui::SetWindowCollapsed((const char *)name, (bool)collapsed, cond); + if (name != NULL) env->ReleaseStringUTFChars(obj_name, name); + */ + + /** + * Set named window to be focused / top-most. Use NULL to remove focus. + */ + public static void setWindowFocus(final String name) { + nSetWindowFocus(name); + } + + private static native void nSetWindowFocus(String name); /*MANUAL + auto name = obj_name == NULL ? NULL : (char*)env->GetStringUTFChars(obj_name, JNI_FALSE); + ImGui::SetWindowFocus(name); + if (name != NULL) env->ReleaseStringUTFChars(obj_name, name); + */ + + // Content region + // - Retrieve available space from a given point. GetContentRegionAvail() is frequently useful. + // - Those functions are bound to be redesigned (they are confusing, incomplete and the Min/Max return values are in local window coordinates which increases confusion) + + /** + * == GetContentRegionMax() - GetCursorPos() + */ + public static ImVec2 getContentRegionAvail() { + final ImVec2 dst = new ImVec2(); + nGetContentRegionAvail(dst); + return dst; + } + + /** + * == GetContentRegionMax() - GetCursorPos() + */ + public static float getContentRegionAvailX() { + return nGetContentRegionAvailX(); + } + + /** + * == GetContentRegionMax() - GetCursorPos() + */ + public static float getContentRegionAvailY() { + return nGetContentRegionAvailY(); + } + + /** + * == GetContentRegionMax() - GetCursorPos() + */ + public static void getContentRegionAvail(final ImVec2 dst) { + nGetContentRegionAvail(dst); + } + + private static native void nGetContentRegionAvail(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ImGui::GetContentRegionAvail(), dst); + */ + + private static native float nGetContentRegionAvailX(); /* + return ImGui::GetContentRegionAvail().x; + */ + + private static native float nGetContentRegionAvailY(); /* + return ImGui::GetContentRegionAvail().y; + */ + + /** + * Current content boundaries (typically window boundaries including scrolling, or current column boundaries), in windows coordinates + */ + public static ImVec2 getContentRegionMax() { + final ImVec2 dst = new ImVec2(); + nGetContentRegionMax(dst); + return dst; + } + + /** + * Current content boundaries (typically window boundaries including scrolling, or current column boundaries), in windows coordinates + */ + public static float getContentRegionMaxX() { + return nGetContentRegionMaxX(); + } + + /** + * Current content boundaries (typically window boundaries including scrolling, or current column boundaries), in windows coordinates + */ + public static float getContentRegionMaxY() { + return nGetContentRegionMaxY(); + } + + /** + * Current content boundaries (typically window boundaries including scrolling, or current column boundaries), in windows coordinates + */ + public static void getContentRegionMax(final ImVec2 dst) { + nGetContentRegionMax(dst); + } + + private static native void nGetContentRegionMax(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ImGui::GetContentRegionMax(), dst); + */ + + private static native float nGetContentRegionMaxX(); /* + return ImGui::GetContentRegionMax().x; + */ + + private static native float nGetContentRegionMaxY(); /* + return ImGui::GetContentRegionMax().y; + */ + + /** + * Content boundaries min for the full window (roughly (0,0)-Scroll), in window coordinates + */ + public static ImVec2 getWindowContentRegionMin() { + final ImVec2 dst = new ImVec2(); + nGetWindowContentRegionMin(dst); + return dst; + } + + /** + * Content boundaries min for the full window (roughly (0,0)-Scroll), in window coordinates + */ + public static float getWindowContentRegionMinX() { + return nGetWindowContentRegionMinX(); + } + + /** + * Content boundaries min for the full window (roughly (0,0)-Scroll), in window coordinates + */ + public static float getWindowContentRegionMinY() { + return nGetWindowContentRegionMinY(); + } + + /** + * Content boundaries min for the full window (roughly (0,0)-Scroll), in window coordinates + */ + public static void getWindowContentRegionMin(final ImVec2 dst) { + nGetWindowContentRegionMin(dst); + } + + private static native void nGetWindowContentRegionMin(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ImGui::GetWindowContentRegionMin(), dst); + */ + + private static native float nGetWindowContentRegionMinX(); /* + return ImGui::GetWindowContentRegionMin().x; + */ + + private static native float nGetWindowContentRegionMinY(); /* + return ImGui::GetWindowContentRegionMin().y; + */ + + /** + * Content boundaries max for the full window (roughly (0,0)+Size-Scroll) where Size can be override with SetNextWindowContentSize(), in window coordinates + */ + public static ImVec2 getWindowContentRegionMax() { + final ImVec2 dst = new ImVec2(); + nGetWindowContentRegionMax(dst); + return dst; + } + + /** + * Content boundaries max for the full window (roughly (0,0)+Size-Scroll) where Size can be override with SetNextWindowContentSize(), in window coordinates + */ + public static float getWindowContentRegionMaxX() { + return nGetWindowContentRegionMaxX(); + } + + /** + * Content boundaries max for the full window (roughly (0,0)+Size-Scroll) where Size can be override with SetNextWindowContentSize(), in window coordinates + */ + public static float getWindowContentRegionMaxY() { + return nGetWindowContentRegionMaxY(); + } + + /** + * Content boundaries max for the full window (roughly (0,0)+Size-Scroll) where Size can be override with SetNextWindowContentSize(), in window coordinates + */ + public static void getWindowContentRegionMax(final ImVec2 dst) { + nGetWindowContentRegionMax(dst); + } + + private static native void nGetWindowContentRegionMax(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ImGui::GetWindowContentRegionMax(), dst); + */ + + private static native float nGetWindowContentRegionMaxX(); /* + return ImGui::GetWindowContentRegionMax().x; + */ + + private static native float nGetWindowContentRegionMaxY(); /* + return ImGui::GetWindowContentRegionMax().y; + */ + + // Windows Scrolling + + /** + * Get scrolling amount [0 .. GetScrollMaxX()] + */ + public static float getScrollX() { + return nGetScrollX(); + } + + private static native float nGetScrollX(); /* + return ImGui::GetScrollX(); + */ + + /** + * Get scrolling amount [0 .. GetScrollMaxY()] + */ + public static float getScrollY() { + return nGetScrollY(); + } + + private static native float nGetScrollY(); /* + return ImGui::GetScrollY(); + */ + + /** + * Set scrolling amount [0 .. GetScrollMaxX()] + */ + public static void setScrollX(final float scrollX) { + nSetScrollX(scrollX); + } + + private static native void nSetScrollX(float scrollX); /* + ImGui::SetScrollX(scrollX); + */ + + /** + * Set scrolling amount [0..GetScrollMaxY()] + */ + public static void setScrollY(final float scrollY) { + nSetScrollY(scrollY); + } + + private static native void nSetScrollY(float scrollY); /* + ImGui::SetScrollY(scrollY); + */ + + /** + * Get maximum scrolling amount ~~ ContentSize.x - WindowSize.x - DecorationsSize.x + */ + public static float getScrollMaxX() { + return nGetScrollMaxX(); + } + + private static native float nGetScrollMaxX(); /* + return ImGui::GetScrollMaxX(); + */ + + /** + * Get maximum scrolling amount ~~ ContentSize.y - WindowSize.y - DecorationsSize.y + */ + public static float getScrollMaxY() { + return nGetScrollMaxY(); + } + + private static native float nGetScrollMaxY(); /* + return ImGui::GetScrollMaxY(); + */ + + /** + * Adjust scrolling amount to make current cursor position visible. center_x_ratio=0.0: left, 0.5: center, 1.0: right. + * When using to make a "default/current item" visible, consider using SetItemDefaultFocus() instead. + */ + public static void setScrollHereX() { + nSetScrollHereX(); + } + + /** + * Adjust scrolling amount to make current cursor position visible. center_x_ratio=0.0: left, 0.5: center, 1.0: right. + * When using to make a "default/current item" visible, consider using SetItemDefaultFocus() instead. + */ + public static void setScrollHereX(final float centerXRatio) { + nSetScrollHereX(centerXRatio); + } + + private static native void nSetScrollHereX(); /* + ImGui::SetScrollHereX(); + */ + + private static native void nSetScrollHereX(float centerXRatio); /* + ImGui::SetScrollHereX(centerXRatio); + */ + + /** + * Adjust scrolling amount to make current cursor position visible. center_y_ratio=0.0: top, 0.5: center, 1.0: bottom. + * When using to make a "default/current item" visible, consider using SetItemDefaultFocus() instead. + */ + public static void setScrollHereY() { + nSetScrollHereY(); + } + + /** + * Adjust scrolling amount to make current cursor position visible. center_y_ratio=0.0: top, 0.5: center, 1.0: bottom. + * When using to make a "default/current item" visible, consider using SetItemDefaultFocus() instead. + */ + public static void setScrollHereY(final float centerYRatio) { + nSetScrollHereY(centerYRatio); + } + + private static native void nSetScrollHereY(); /* + ImGui::SetScrollHereY(); + */ + + private static native void nSetScrollHereY(float centerYRatio); /* + ImGui::SetScrollHereY(centerYRatio); + */ + + /** + * Adjust scrolling amount to make given position visible. Generally GetCursorStartPos() + offset to compute a valid position. + */ + public static void setScrollFromPosX(final float localX) { + nSetScrollFromPosX(localX); + } + + /** + * Adjust scrolling amount to make given position visible. Generally GetCursorStartPos() + offset to compute a valid position. + */ + public static void setScrollFromPosX(final float localX, final float centerXRatio) { + nSetScrollFromPosX(localX, centerXRatio); + } + + private static native void nSetScrollFromPosX(float localX); /* + ImGui::SetScrollFromPosX(localX); + */ + + private static native void nSetScrollFromPosX(float localX, float centerXRatio); /* + ImGui::SetScrollFromPosX(localX, centerXRatio); + */ + + /** + * Adjust scrolling amount to make given position visible. Generally GetCursorStartPos() + offset to compute a valid position. + */ + public static void setScrollFromPosY(final float localY) { + nSetScrollFromPosY(localY); + } + + /** + * Adjust scrolling amount to make given position visible. Generally GetCursorStartPos() + offset to compute a valid position. + */ + public static void setScrollFromPosY(final float localY, final float centerYRatio) { + nSetScrollFromPosY(localY, centerYRatio); + } + + private static native void nSetScrollFromPosY(float localY); /* + ImGui::SetScrollFromPosY(localY); + */ + + private static native void nSetScrollFromPosY(float localY, float centerYRatio); /* + ImGui::SetScrollFromPosY(localY, centerYRatio); + */ + + // Parameters stacks (shared) + + public static void pushFont(final ImFont font) { + nPushFont(font.ptr); + } + + private static native void nPushFont(long font); /* + ImGui::PushFont(reinterpret_cast(font)); + */ + + public static void popFont() { + nPopFont(); + } + + private static native void nPopFont(); /* + ImGui::PopFont(); + */ + + /** + * Modify a style color. always use this if you modify the style after NewFrame(). + */ + public static native void pushStyleColor(int imGuiCol, int r, int g, int b, int a); /* + ImGui::PushStyleColor(imGuiCol, (ImU32)ImColor((int)r, (int)g, (int)b, (int)a)); + */ + + /** + * Modify a style color. always use this if you modify the style after NewFrame(). + */ + public static void pushStyleColor(final int imGuiCol, final ImVec4 col) { + nPushStyleColor(imGuiCol, col.x, col.y, col.z, col.w); + } + + /** + * Modify a style color. always use this if you modify the style after NewFrame(). + */ + public static void pushStyleColor(final int imGuiCol, final float colX, final float colY, final float colZ, final float colW) { + nPushStyleColor(imGuiCol, colX, colY, colZ, colW); + } + + private static native void nPushStyleColor(int imGuiCol, float colX, float colY, float colZ, float colW); /*MANUAL + ImVec4 col = ImVec4(colX, colY, colZ, colW); + ImGui::PushStyleColor(imGuiCol, col); + */ + + /** + * Modify a style color. always use this if you modify the style after NewFrame(). + */ + public static void pushStyleColor(final int imGuiCol, final int col) { + nPushStyleColor(imGuiCol, col); + } + + private static native void nPushStyleColor(int imGuiCol, int col); /* + ImGui::PushStyleColor(imGuiCol, col); + */ + + public static void popStyleColor() { + nPopStyleColor(); + } + + public static void popStyleColor(final int count) { + nPopStyleColor(count); + } + + private static native void nPopStyleColor(); /* + ImGui::PopStyleColor(); + */ + + private static native void nPopStyleColor(int count); /* + ImGui::PopStyleColor(count); + */ + + /** + * Modify a style float variable. always use this if you modify the style after NewFrame(). + */ + public static void pushStyleVar(final int imGuiStyleVar, final float val) { + nPushStyleVar(imGuiStyleVar, val); + } + + private static native void nPushStyleVar(int imGuiStyleVar, float val); /* + ImGui::PushStyleVar(imGuiStyleVar, val); + */ + + /** + * Modify a style ImVec2 variable. always use this if you modify the style after NewFrame(). + */ + public static void pushStyleVar(final int imGuiStyleVar, final ImVec2 val) { + nPushStyleVar(imGuiStyleVar, val.x, val.y); + } + + /** + * Modify a style ImVec2 variable. always use this if you modify the style after NewFrame(). + */ + public static void pushStyleVar(final int imGuiStyleVar, final float valX, final float valY) { + nPushStyleVar(imGuiStyleVar, valX, valY); + } + + private static native void nPushStyleVar(int imGuiStyleVar, float valX, float valY); /*MANUAL + ImVec2 val = ImVec2(valX, valY); + ImGui::PushStyleVar(imGuiStyleVar, val); + */ + + public static void popStyleVar() { + nPopStyleVar(); + } + + public static void popStyleVar(final int count) { + nPopStyleVar(count); + } + + private static native void nPopStyleVar(); /* + ImGui::PopStyleVar(); + */ + + private static native void nPopStyleVar(int count); /* + ImGui::PopStyleVar(count); + */ + + /** + * Allow focusing using TAB/Shift-TAB, enabled by default but you can disable it for certain widgets + */ + public static void pushAllowKeyboardFocus(final boolean allowKeyboardFocus) { + nPushAllowKeyboardFocus(allowKeyboardFocus); + } + + private static native void nPushAllowKeyboardFocus(boolean allowKeyboardFocus); /* + ImGui::PushAllowKeyboardFocus(allowKeyboardFocus); + */ + + public static void popAllowKeyboardFocus() { + nPopAllowKeyboardFocus(); + } + + private static native void nPopAllowKeyboardFocus(); /* + ImGui::PopAllowKeyboardFocus(); + */ + + /** + * In 'repeat' mode, Button*() functions return repeated true in a typematic manner (using io.KeyRepeatDelay/io.KeyRepeatRate setting). + * Note that you can call IsItemActive() after any Button() to tell if the button is held in the current frame. + */ + public static void pushButtonRepeat(final boolean repeat) { + nPushButtonRepeat(repeat); + } + + private static native void nPushButtonRepeat(boolean repeat); /* + ImGui::PushButtonRepeat(repeat); + */ + + public static void popButtonRepeat() { + nPopButtonRepeat(); + } + + private static native void nPopButtonRepeat(); /* + ImGui::PopButtonRepeat(); + */ + + // Parameters stacks (current window) + + /** + * Push width of items for common large "item+label" widgets. {@code > 0.0f}: width in pixels, + * {@code <0.0f} align xx pixels to the right of window (so -1.0f always align width to the right side). + */ + public static void pushItemWidth(final float itemWidth) { + nPushItemWidth(itemWidth); + } + + private static native void nPushItemWidth(float itemWidth); /* + ImGui::PushItemWidth(itemWidth); + */ + + public static void popItemWidth() { + nPopItemWidth(); + } + + private static native void nPopItemWidth(); /* + ImGui::PopItemWidth(); + */ + + /** + * Set width of the _next_ common large "item+label" widget. {@code > 0.0f}: width in pixels, + * {@code <0.0f} align xx pixels to the right of window (so -1.0f always align width to the right side) + */ + public static void setNextItemWidth(final float itemWidth) { + nSetNextItemWidth(itemWidth); + } + + private static native void nSetNextItemWidth(float itemWidth); /* + ImGui::SetNextItemWidth(itemWidth); + */ + + /** + * Width of item given pushed settings and current cursor position. NOT necessarily the width of last item unlike most 'Item' functions. + */ + public static float calcItemWidth() { + return nCalcItemWidth(); + } + + private static native float nCalcItemWidth(); /* + return ImGui::CalcItemWidth(); + */ + + /** + * Push Word-wrapping positions for Text*() commands. {@code < 0.0f}: no wrapping; 0.0f: wrap to end of window (or column); {@code > 0.0f}: wrap at + * 'wrap_posX' position in window local space + */ + public static void pushTextWrapPos() { + nPushTextWrapPos(); + } + + /** + * Push Word-wrapping positions for Text*() commands. {@code < 0.0f}: no wrapping; 0.0f: wrap to end of window (or column); {@code > 0.0f}: wrap at + * 'wrap_posX' position in window local space + */ + public static void pushTextWrapPos(final float wrapLocalPosX) { + nPushTextWrapPos(wrapLocalPosX); + } + + private static native void nPushTextWrapPos(); /* + ImGui::PushTextWrapPos(); + */ + + private static native void nPushTextWrapPos(float wrapLocalPosX); /* + ImGui::PushTextWrapPos(wrapLocalPosX); + */ + + public static void popTextWrapPos() { + nPopTextWrapPos(); + } + + private static native void nPopTextWrapPos(); /* + ImGui::PopTextWrapPos(); + */ + + // Style read access + + private static final ImFont _GETFONT_1 = new ImFont(0); + + /** + * Get current font. + */ + public static ImFont getFont() { + _GETFONT_1.ptr = nGetFont(); + return _GETFONT_1; + } + + private static native long nGetFont(); /* + return (intptr_t)ImGui::GetFont(); + */ + + /** + * Get current font size (= height in pixels) of current font with current scale applied + */ + public static int getFontSize() { + return nGetFontSize(); + } + + private static native int nGetFontSize(); /* + return ImGui::GetFontSize(); + */ + + /** + * Get UV coordinate for a while pixel, useful to draw custom shapes via the ImDrawList API + */ + public static ImVec2 getFontTexUvWhitePixel() { + final ImVec2 dst = new ImVec2(); + nGetFontTexUvWhitePixel(dst); + return dst; + } + + /** + * Get UV coordinate for a while pixel, useful to draw custom shapes via the ImDrawList API + */ + public static float getFontTexUvWhitePixelX() { + return nGetFontTexUvWhitePixelX(); + } + + /** + * Get UV coordinate for a while pixel, useful to draw custom shapes via the ImDrawList API + */ + public static float getFontTexUvWhitePixelY() { + return nGetFontTexUvWhitePixelY(); + } + + /** + * Get UV coordinate for a while pixel, useful to draw custom shapes via the ImDrawList API + */ + public static void getFontTexUvWhitePixel(final ImVec2 dst) { + nGetFontTexUvWhitePixel(dst); + } + + private static native void nGetFontTexUvWhitePixel(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ImGui::GetFontTexUvWhitePixel(), dst); + */ + + private static native float nGetFontTexUvWhitePixelX(); /* + return ImGui::GetFontTexUvWhitePixel().x; + */ + + private static native float nGetFontTexUvWhitePixelY(); /* + return ImGui::GetFontTexUvWhitePixel().y; + */ + + /** + * Retrieve given style color with style alpha applied and optional extra alpha multiplier, packed as a 32-bit value suitable for ImDrawList. + */ + public static int getColorU32(final int idx) { + return nGetColorU32(idx); + } + + /** + * Retrieve given style color with style alpha applied and optional extra alpha multiplier, packed as a 32-bit value suitable for ImDrawList. + */ + public static int getColorU32(final int idx, final float alphaMul) { + return nGetColorU32(idx, alphaMul); + } + + private static native int nGetColorU32(int idx); /* + return ImGui::GetColorU32(static_cast(idx)); + */ + + private static native int nGetColorU32(int idx, float alphaMul); /* + return ImGui::GetColorU32(static_cast(idx), alphaMul); + */ + + /** + * Retrieve given color with style alpha applied, packed as a 32-bit value suitable for ImDrawList. + */ + public static int getColorU32(final ImVec4 col) { + return nGetColorU32(col.x, col.y, col.z, col.w); + } + + /** + * Retrieve given color with style alpha applied, packed as a 32-bit value suitable for ImDrawList. + */ + public static int getColorU32(final float colX, final float colY, final float colZ, final float colW) { + return nGetColorU32(colX, colY, colZ, colW); + } + + private static native int nGetColorU32(float colX, float colY, float colZ, float colW); /*MANUAL + ImVec4 col = ImVec4(colX, colY, colZ, colW); + auto _result = ImGui::GetColorU32(col); + return _result; + */ + + /** + * Retrieve given color with style alpha applied, packed as a 32-bit value suitable for ImDrawList. + */ + public static int getColorU32i(final int col) { + return nGetColorU32i(col); + } + + private static native int nGetColorU32i(int col); /* + return ImGui::GetColorU32(static_cast(col)); + */ + + /** + * Retrieve style color as stored in ImGuiStyle structure. use to feed back into PushStyleColor(), + * otherwise use GetColorU32() to get style color with style alpha baked in. + */ + public static ImVec4 getStyleColorVec4(final int imGuiColIdx) { + final ImVec4 dst = new ImVec4(); + nGetStyleColorVec4(dst, imGuiColIdx); + return dst; + } + + /** + * Retrieve style color as stored in ImGuiStyle structure. use to feed back into PushStyleColor(), + * otherwise use GetColorU32() to get style color with style alpha baked in. + */ + public static float getStyleColorVec4X(final int imGuiColIdx) { + return nGetStyleColorVec4X(imGuiColIdx); + } + + /** + * Retrieve style color as stored in ImGuiStyle structure. use to feed back into PushStyleColor(), + * otherwise use GetColorU32() to get style color with style alpha baked in. + */ + public static float getStyleColorVec4Y(final int imGuiColIdx) { + return nGetStyleColorVec4Y(imGuiColIdx); + } + + /** + * Retrieve style color as stored in ImGuiStyle structure. use to feed back into PushStyleColor(), + * otherwise use GetColorU32() to get style color with style alpha baked in. + */ + public static float getStyleColorVec4Z(final int imGuiColIdx) { + return nGetStyleColorVec4Z(imGuiColIdx); + } + + /** + * Retrieve style color as stored in ImGuiStyle structure. use to feed back into PushStyleColor(), + * otherwise use GetColorU32() to get style color with style alpha baked in. + */ + public static float getStyleColorVec4W(final int imGuiColIdx) { + return nGetStyleColorVec4W(imGuiColIdx); + } + + /** + * Retrieve style color as stored in ImGuiStyle structure. use to feed back into PushStyleColor(), + * otherwise use GetColorU32() to get style color with style alpha baked in. + */ + public static void getStyleColorVec4(final ImVec4 dst, final int imGuiColIdx) { + nGetStyleColorVec4(dst, imGuiColIdx); + } + + private static native void nGetStyleColorVec4(ImVec4 dst, int imGuiColIdx); /* + Jni::ImVec4Cpy(env, ImGui::GetStyleColorVec4(imGuiColIdx), dst); + */ + + private static native float nGetStyleColorVec4X(int imGuiColIdx); /* + return ImGui::GetStyleColorVec4(imGuiColIdx).x; + */ + + private static native float nGetStyleColorVec4Y(int imGuiColIdx); /* + return ImGui::GetStyleColorVec4(imGuiColIdx).y; + */ + + private static native float nGetStyleColorVec4Z(int imGuiColIdx); /* + return ImGui::GetStyleColorVec4(imGuiColIdx).z; + */ + + private static native float nGetStyleColorVec4W(int imGuiColIdx); /* + return ImGui::GetStyleColorVec4(imGuiColIdx).w; + */ + + // Cursor / Layout + // - By "cursor" we mean the current output position. + // - The typical widget behavior is to output themselves at the current cursor position, then move the cursor one line down. + // - You can call SameLine() between widgets to undo the last carriage return and output at the right of the preceding widget. + // - Attention! We currently have inconsistencies between window-local and absolute positions we will aim to fix with future API: + // Window-local coordinates: SameLine(), GetCursorPos(), SetCursorPos(), GetCursorStartPos(), GetContentRegionMax(), GetWindowContentRegion*(), PushTextWrapPos() + // Absolute coordinate: GetCursorScreenPos(), SetCursorScreenPos(), all ImDrawList:: functions. + + /** + * Separator, generally horizontal. inside a menu bar or in horizontal layout mode, this becomes a vertical separator. + */ + public static void separator() { + nSeparator(); + } + + private static native void nSeparator(); /* + ImGui::Separator(); + */ + + /** + * Call between widgets or groups to layout them horizontally. X position given in window coordinates. + */ + public static void sameLine() { + nSameLine(); + } + + /** + * Call between widgets or groups to layout them horizontally. X position given in window coordinates. + */ + public static void sameLine(final float offsetFromStartX) { + nSameLine(offsetFromStartX); + } + + /** + * Call between widgets or groups to layout them horizontally. X position given in window coordinates. + */ + public static void sameLine(final float offsetFromStartX, final float spacing) { + nSameLine(offsetFromStartX, spacing); + } + + private static native void nSameLine(); /* + ImGui::SameLine(); + */ + + private static native void nSameLine(float offsetFromStartX); /* + ImGui::SameLine(offsetFromStartX); + */ + + private static native void nSameLine(float offsetFromStartX, float spacing); /* + ImGui::SameLine(offsetFromStartX, spacing); + */ + + /** + * Undo a SameLine() or force a new line when in an horizontal-layout context. + */ + public static void newLine() { + nNewLine(); + } + + private static native void nNewLine(); /* + ImGui::NewLine(); + */ + + /** + * Add vertical spacing. + */ + public static void spacing() { + nSpacing(); + } + + private static native void nSpacing(); /* + ImGui::Spacing(); + */ + + /** + * Add a dummy item of given size. unlike InvisibleButton(), Dummy() won't take the mouse click or be navigable into. + */ + public static void dummy(final ImVec2 size) { + nDummy(size.x, size.y); + } + + /** + * Add a dummy item of given size. unlike InvisibleButton(), Dummy() won't take the mouse click or be navigable into. + */ + public static void dummy(final float sizeX, final float sizeY) { + nDummy(sizeX, sizeY); + } + + private static native void nDummy(float sizeX, float sizeY); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + ImGui::Dummy(size); + */ + + /** + * Move content position toward the right, by indent_w, or style.IndentSpacing if indent_w {@code <= 0}. + */ + public static void indent() { + nIndent(); + } + + /** + * Move content position toward the right, by indent_w, or style.IndentSpacing if indent_w {@code <= 0}. + */ + public static void indent(final float indentW) { + nIndent(indentW); + } + + private static native void nIndent(); /* + ImGui::Indent(); + */ + + private static native void nIndent(float indentW); /* + ImGui::Indent(indentW); + */ + + /** + * Move content position back to the left, by indent_w, or style.IndentSpacing if indent_w {@code <= 0}. + */ + public static void unindent() { + nUnindent(); + } + + /** + * Move content position back to the left, by indent_w, or style.IndentSpacing if indent_w {@code <= 0}. + */ + public static void unindent(final float indentW) { + nUnindent(indentW); + } + + private static native void nUnindent(); /* + ImGui::Unindent(); + */ + + private static native void nUnindent(float indentW); /* + ImGui::Unindent(indentW); + */ + + /** + * Lock horizontal starting position + */ + public static void beginGroup() { + nBeginGroup(); + } + + private static native void nBeginGroup(); /* + ImGui::BeginGroup(); + */ + + /** + * Unlock horizontal starting position + capture the whole group bounding box into one "item" (so you can use IsItemHovered() or layout primitives such as SameLine() on whole group, etc.) + */ + public static void endGroup() { + nEndGroup(); + } + + private static native void nEndGroup(); /* + ImGui::EndGroup(); + */ + + // (some functions are using window-relative coordinates, such as: GetCursorPos, GetCursorStartPos, GetContentRegionMax, GetWindowContentRegion* etc. + // other functions such as GetCursorScreenPos or everything in ImDrawList:: + // are using the main, absolute coordinate system. + // GetWindowPos() + GetCursorPos() == GetCursorScreenPos() etc.) + + /** + * Cursor position in window coordinates (relative to window position) + */ + public static ImVec2 getCursorPos() { + final ImVec2 dst = new ImVec2(); + nGetCursorPos(dst); + return dst; + } + + /** + * Cursor position in window coordinates (relative to window position) + */ + public static float getCursorPosX() { + return nGetCursorPosX(); + } + + /** + * Cursor position in window coordinates (relative to window position) + */ + public static float getCursorPosY() { + return nGetCursorPosY(); + } + + /** + * Cursor position in window coordinates (relative to window position) + */ + public static void getCursorPos(final ImVec2 dst) { + nGetCursorPos(dst); + } + + private static native void nGetCursorPos(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ImGui::GetCursorPos(), dst); + */ + + private static native float nGetCursorPosX(); /* + return ImGui::GetCursorPos().x; + */ + + private static native float nGetCursorPosY(); /* + return ImGui::GetCursorPos().y; + */ + + /** + * Cursor position in window coordinates (relative to window position) + */ + public static void setCursorPos(final ImVec2 pos) { + nSetCursorPos(pos.x, pos.y); + } + + /** + * Cursor position in window coordinates (relative to window position) + */ + public static void setCursorPos(final float posX, final float posY) { + nSetCursorPos(posX, posY); + } + + private static native void nSetCursorPos(float posX, float posY); /*MANUAL + ImVec2 pos = ImVec2(posX, posY); + ImGui::SetCursorPos(pos); + */ + + /** + * Cursor position in window coordinates (relative to window position) + */ + public static void setCursorPosX(final float x) { + nSetCursorPosX(x); + } + + private static native void nSetCursorPosX(float x); /* + ImGui::SetCursorPosX(x); + */ + + /** + * Cursor position in window coordinates (relative to window position) + */ + public static void setCursorPosY(final float y) { + nSetCursorPosY(y); + } + + private static native void nSetCursorPosY(float y); /* + ImGui::SetCursorPosY(y); + */ + + /** + * Initial cursor position in window coordinates + */ + public static ImVec2 getCursorStartPos() { + final ImVec2 dst = new ImVec2(); + nGetCursorStartPos(dst); + return dst; + } + + /** + * Initial cursor position in window coordinates + */ + public static float getCursorStartPosX() { + return nGetCursorStartPosX(); + } + + /** + * Initial cursor position in window coordinates + */ + public static float getCursorStartPosY() { + return nGetCursorStartPosY(); + } + + /** + * Initial cursor position in window coordinates + */ + public static void getCursorStartPos(final ImVec2 dst) { + nGetCursorStartPos(dst); + } + + private static native void nGetCursorStartPos(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ImGui::GetCursorStartPos(), dst); + */ + + private static native float nGetCursorStartPosX(); /* + return ImGui::GetCursorStartPos().x; + */ + + private static native float nGetCursorStartPosY(); /* + return ImGui::GetCursorStartPos().y; + */ + + /** + * Cursor position in absolute coordinates (useful to work with ImDrawList API). + * Generally top-left == GetMainViewport().Pos == (0,0) in single viewport mode, + * and bottom-right == GetMainViewport().Pos+Size == io.DisplaySize in single-viewport mode. + */ + public static ImVec2 getCursorScreenPos() { + final ImVec2 dst = new ImVec2(); + nGetCursorScreenPos(dst); + return dst; + } + + /** + * Cursor position in absolute coordinates (useful to work with ImDrawList API). + * Generally top-left == GetMainViewport().Pos == (0,0) in single viewport mode, + * and bottom-right == GetMainViewport().Pos+Size == io.DisplaySize in single-viewport mode. + */ + public static float getCursorScreenPosX() { + return nGetCursorScreenPosX(); + } + + /** + * Cursor position in absolute coordinates (useful to work with ImDrawList API). + * Generally top-left == GetMainViewport().Pos == (0,0) in single viewport mode, + * and bottom-right == GetMainViewport().Pos+Size == io.DisplaySize in single-viewport mode. + */ + public static float getCursorScreenPosY() { + return nGetCursorScreenPosY(); + } + + /** + * Cursor position in absolute coordinates (useful to work with ImDrawList API). + * Generally top-left == GetMainViewport().Pos == (0,0) in single viewport mode, + * and bottom-right == GetMainViewport().Pos+Size == io.DisplaySize in single-viewport mode. + */ + public static void getCursorScreenPos(final ImVec2 dst) { + nGetCursorScreenPos(dst); + } + + private static native void nGetCursorScreenPos(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ImGui::GetCursorScreenPos(), dst); + */ + + private static native float nGetCursorScreenPosX(); /* + return ImGui::GetCursorScreenPos().x; + */ + + private static native float nGetCursorScreenPosY(); /* + return ImGui::GetCursorScreenPos().y; + */ + + /** + * Cursor position in absolute coordinates. + */ + public static void setCursorScreenPos(final ImVec2 pos) { + nSetCursorScreenPos(pos.x, pos.y); + } + + /** + * Cursor position in absolute coordinates. + */ + public static void setCursorScreenPos(final float posX, final float posY) { + nSetCursorScreenPos(posX, posY); + } + + private static native void nSetCursorScreenPos(float posX, float posY); /*MANUAL + ImVec2 pos = ImVec2(posX, posY); + ImGui::SetCursorScreenPos(pos); + */ + + /** + * Vertically align upcoming text baseline to FramePadding.y so that it will align properly to regularly framed items (call if you have text on a line before a framed item) + */ + public static void alignTextToFramePadding() { + nAlignTextToFramePadding(); + } + + private static native void nAlignTextToFramePadding(); /* + ImGui::AlignTextToFramePadding(); + */ + + /** + * ~ FontSize + */ + public static float getTextLineHeight() { + return nGetTextLineHeight(); + } + + private static native float nGetTextLineHeight(); /* + return ImGui::GetTextLineHeight(); + */ + + /** + * ~ FontSize + style.ItemSpacing.y (distance in pixels between 2 consecutive lines of text) + */ + public static float getTextLineHeightWithSpacing() { + return nGetTextLineHeightWithSpacing(); + } + + private static native float nGetTextLineHeightWithSpacing(); /* + return ImGui::GetTextLineHeightWithSpacing(); + */ + + /** + * ~ FontSize + style.FramePadding.y * 2 + */ + public static float getFrameHeight() { + return nGetFrameHeight(); + } + + private static native float nGetFrameHeight(); /* + return ImGui::GetFrameHeight(); + */ + + /** + * ~ FontSize + style.FramePadding.y * 2 + style.ItemSpacing.y (distance in pixels between 2 consecutive lines of framed widgets) + */ + public static float getFrameHeightWithSpacing() { + return nGetFrameHeightWithSpacing(); + } + + private static native float nGetFrameHeightWithSpacing(); /* + return ImGui::GetFrameHeightWithSpacing(); + */ + + // ID stack/scopes + // - Read the FAQ for more details about how ID are handled in dear imgui. If you are creating widgets in a loop you most + // likely want to push a unique identifier (e.g. object pointer, loop index) to uniquely differentiate them. + // - The resulting ID are hashes of the entire stack. + // - You can also use the "Label##foobar" syntax within widget label to distinguish them from each others. + // - In this header file we use the "label"/"name" terminology to denote a string that will be displayed and used as an ID, + // whereas "strId" denote a string that is only used as an ID and not normally displayed. + + /** + * Push string into the ID stack (will hash string). + */ + public static void pushID(final String strId) { + nPushID(strId); + } + + private static native void nPushID(String strId); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + ImGui::PushID(strId); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + */ + + /** + * Push string into the ID stack (will hash string). + */ + public static void pushID(final String strIdBegin, final String strIdEnd) { + nPushID(strIdBegin, strIdEnd); + } + + private static native void nPushID(String strIdBegin, String strIdEnd); /*MANUAL + auto strIdBegin = obj_strIdBegin == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strIdBegin, JNI_FALSE); + auto strIdEnd = obj_strIdEnd == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strIdEnd, JNI_FALSE); + ImGui::PushID(strIdBegin, strIdEnd); + if (strIdBegin != NULL) env->ReleaseStringUTFChars(obj_strIdBegin, strIdBegin); + if (strIdEnd != NULL) env->ReleaseStringUTFChars(obj_strIdEnd, strIdEnd); + */ + + /** + * Push pointer into the ID stack (will hash pointer). + */ + public static void pushID(final long ptrId) { + nPushID(ptrId); + } + + private static native void nPushID(long ptrId); /* + ImGui::PushID((void*)ptrId); + */ + + /** + * Push integer into the ID stack (will hash integer). + */ + public static void pushID(final int intId) { + nPushID(intId); + } + + private static native void nPushID(int intId); /* + ImGui::PushID(intId); + */ + + /** + * Pop from the ID stack. + */ + public static void popID() { + nPopID(); + } + + private static native void nPopID(); /* + ImGui::PopID(); + */ + + /** + * Calculate unique ID (hash of whole ID stack + given parameter). e.g. if you want to query into ImGuiStorage yourself + */ + public static int getID(final String strId) { + return nGetID(strId); + } + + private static native int nGetID(String obj_strId); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + auto _result = ImGui::GetID(strId); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + /** + * Calculate unique ID (hash of whole ID stack + given parameter). e.g. if you want to query into ImGuiStorage yourself + */ + public static int getID(final String strIdBegin, final String strIdEnd) { + return nGetID(strIdBegin, strIdEnd); + } + + private static native int nGetID(String obj_strIdBegin, String obj_strIdEnd); /*MANUAL + auto strIdBegin = obj_strIdBegin == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strIdBegin, JNI_FALSE); + auto strIdEnd = obj_strIdEnd == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strIdEnd, JNI_FALSE); + auto _result = ImGui::GetID(strIdBegin, strIdEnd); + if (strIdBegin != NULL) env->ReleaseStringUTFChars(obj_strIdBegin, strIdBegin); + if (strIdEnd != NULL) env->ReleaseStringUTFChars(obj_strIdEnd, strIdEnd); + return _result; + */ + + /** + * Calculate unique ID (hash of whole ID stack + given parameter). e.g. if you want to query into ImGuiStorage yourself + */ + public static int getID(final long ptrId) { + return nGetID(ptrId); + } + + private static native int nGetID(long ptrId); /* + return ImGui::GetID((void*)ptrId); + */ + + // Widgets: Text + + /** + * Raw text without formatting. Roughly equivalent to Text("%s", text) but: + * A) doesn't require null terminated string if 'textEnd' is specified, + * B) it's faster, no memory copy is done, no buffer size limits, recommended for long chunks of text. + */ + public static void textUnformatted(final String text) { + nTextUnformatted(text); + } + + /** + * Raw text without formatting. Roughly equivalent to Text("%s", text) but: + * A) doesn't require null terminated string if 'textEnd' is specified, + * B) it's faster, no memory copy is done, no buffer size limits, recommended for long chunks of text. + */ + public static void textUnformatted(final String text, final String textEnd) { + nTextUnformatted(text, textEnd); + } + + private static native void nTextUnformatted(String text); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + ImGui::TextUnformatted(text); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + */ + + private static native void nTextUnformatted(String text, String textEnd); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + auto textEnd = obj_textEnd == NULL ? NULL : (char*)env->GetStringUTFChars(obj_textEnd, JNI_FALSE); + ImGui::TextUnformatted(text, textEnd); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + if (textEnd != NULL) env->ReleaseStringUTFChars(obj_textEnd, textEnd); + */ + + /** + * Formatted text + */ + public static void text(final String text) { + nText(text); + } + + private static native void nText(String text); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + ImGui::Text(text, NULL); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + */ + + /** + * Shortcut for PushStyleColor(ImGuiCol_Text, col); Text(fmt, ...); PopStyleColor(); + */ + public static void textColored(final ImVec4 col, final String text) { + nTextColored(col.x, col.y, col.z, col.w, text); + } + + /** + * Shortcut for PushStyleColor(ImGuiCol_Text, col); Text(fmt, ...); PopStyleColor(); + */ + public static void textColored(final float colX, final float colY, final float colZ, final float colW, final String text) { + nTextColored(colX, colY, colZ, colW, text); + } + + private static native void nTextColored(float colX, float colY, float colZ, float colW, String text); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + ImVec4 col = ImVec4(colX, colY, colZ, colW); + ImGui::TextColored(col, text, NULL); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + */ + + /** + * Shortcut for PushStyleColor(ImGuiCol_Text, col); Text(fmt, ...); PopStyleColor(); + */ + public static native void textColored(int r, int g, int b, int a, String text); /* + ImGui::TextColored(ImColor((int)r, (int)g, (int)b, (int)a), text, NULL); + */ + + /** + * Shortcut for PushStyleColor(ImGuiCol_Text, col); Text(fmt, ...); PopStyleColor(); + */ + public static native void textColored(int col, String text); /* + ImGui::TextColored(ImColor(col), text, NULL); + */ + + /** + * Shortcut for PushStyleColor(ImGuiCol_Text, style.Colors[ImGuiCol_TextDisabled]); Text(fmt, ...); PopStyleColor(); + */ + public static void textDisabled(final String text) { + nTextDisabled(text); + } + + private static native void nTextDisabled(String text); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + ImGui::TextDisabled(text, NULL); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + */ + + /** + * Shortcut for PushTextWrapPos(0.0f); Text(fmt, ...); PopTextWrapPos();. + * Note that this won't work on an auto-resizing window if there's no other widgets to extend the window width, + * yoy may need to set a size using SetNextWindowSize(). + */ + public static void textWrapped(final String text) { + nTextWrapped(text); + } + + private static native void nTextWrapped(String text); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + ImGui::TextWrapped(text, NULL); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + */ + + /** + * Display text+label aligned the same way as value+label widgets + */ + public static void labelText(final String label, final String text) { + nLabelText(label, text); + } + + private static native void nLabelText(String label, String text); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + ImGui::LabelText(label, text, NULL); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + */ + + /** + * Shortcut for Bullet()+Text() + */ + public static void bulletText(final String text) { + nBulletText(text); + } + + private static native void nBulletText(String text); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + ImGui::BulletText(text, NULL); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + */ + + // Widgets: Main + // - Most widgets return true when the value has been changed or when pressed/selected + // - You may also use one of the many IsItemXXX functions (e.g. IsItemActive, IsItemHovered, etc.) to query widget state. + + /** + * Button + */ + public static boolean button(final String label) { + return nButton(label); + } + + /** + * Button + */ + public static boolean button(final String label, final ImVec2 size) { + return nButton(label, size.x, size.y); + } + + /** + * Button + */ + public static boolean button(final String label, final float sizeX, final float sizeY) { + return nButton(label, sizeX, sizeY); + } + + private static native boolean nButton(String obj_label); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::Button(label); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + private static native boolean nButton(String obj_label, float sizeX, float sizeY); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::Button(label, size); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + /** + * Button with FramePadding=(0,0) to easily embed within text + */ + public static boolean smallButton(final String label) { + return nSmallButton(label); + } + + private static native boolean nSmallButton(String obj_label); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::SmallButton(label); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + /** + * Flexible button behavior without the visuals, frequently useful to build custom behaviors using the public api (along with IsItemActive, IsItemHovered, etc.) + */ + public static boolean invisibleButton(final String strId, final ImVec2 size) { + return nInvisibleButton(strId, size.x, size.y); + } + + /** + * Flexible button behavior without the visuals, frequently useful to build custom behaviors using the public api (along with IsItemActive, IsItemHovered, etc.) + */ + public static boolean invisibleButton(final String strId, final float sizeX, final float sizeY) { + return nInvisibleButton(strId, sizeX, sizeY); + } + + /** + * Flexible button behavior without the visuals, frequently useful to build custom behaviors using the public api (along with IsItemActive, IsItemHovered, etc.) + */ + public static boolean invisibleButton(final String strId, final ImVec2 size, final int imGuiButtonFlags) { + return nInvisibleButton(strId, size.x, size.y, imGuiButtonFlags); + } + + /** + * Flexible button behavior without the visuals, frequently useful to build custom behaviors using the public api (along with IsItemActive, IsItemHovered, etc.) + */ + public static boolean invisibleButton(final String strId, final float sizeX, final float sizeY, final int imGuiButtonFlags) { + return nInvisibleButton(strId, sizeX, sizeY, imGuiButtonFlags); + } + + private static native boolean nInvisibleButton(String obj_strId, float sizeX, float sizeY); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::InvisibleButton(strId, size); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + private static native boolean nInvisibleButton(String obj_strId, float sizeX, float sizeY, int imGuiButtonFlags); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::InvisibleButton(strId, size, imGuiButtonFlags); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + /** + * Square button with an arrow shape + */ + public static boolean arrowButton(final String strId, final int dir) { + return nArrowButton(strId, dir); + } + + private static native boolean nArrowButton(String obj_strId, int dir); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + auto _result = ImGui::ArrowButton(strId, dir); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + public static void image(final int userTextureId, final ImVec2 size) { + nImage(userTextureId, size.x, size.y); + } + + public static void image(final int userTextureId, final float sizeX, final float sizeY) { + nImage(userTextureId, sizeX, sizeY); + } + + public static void image(final int userTextureId, final ImVec2 size, final ImVec2 uv0) { + nImage(userTextureId, size.x, size.y, uv0.x, uv0.y); + } + + public static void image(final int userTextureId, final float sizeX, final float sizeY, final float uv0X, final float uv0Y) { + nImage(userTextureId, sizeX, sizeY, uv0X, uv0Y); + } + + public static void image(final int userTextureId, final ImVec2 size, final ImVec2 uv0, final ImVec2 uv1) { + nImage(userTextureId, size.x, size.y, uv0.x, uv0.y, uv1.x, uv1.y); + } + + public static void image(final int userTextureId, final float sizeX, final float sizeY, final float uv0X, final float uv0Y, final float uv1X, final float uv1Y) { + nImage(userTextureId, sizeX, sizeY, uv0X, uv0Y, uv1X, uv1Y); + } + + public static void image(final int userTextureId, final ImVec2 size, final ImVec2 uv0, final ImVec2 uv1, final ImVec4 tintCol) { + nImage(userTextureId, size.x, size.y, uv0.x, uv0.y, uv1.x, uv1.y, tintCol.x, tintCol.y, tintCol.z, tintCol.w); + } + + public static void image(final int userTextureId, final float sizeX, final float sizeY, 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, sizeX, sizeY, uv0X, uv0Y, uv1X, uv1Y, tintColX, tintColY, tintColZ, tintColW); + } + + public static void image(final int userTextureId, final ImVec2 size, final ImVec2 uv0, final ImVec2 uv1, final ImVec4 tintCol, final ImVec4 borderCol) { + nImage(userTextureId, size.x, size.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 image(final int userTextureId, final float sizeX, final float sizeY, 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, sizeX, sizeY, uv0X, uv0Y, uv1X, uv1Y, tintColX, tintColY, tintColZ, tintColW, borderColX, borderColY, borderColZ, borderColW); + } + + private static native void nImage(int userTextureId, float sizeX, float sizeY); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + ImGui::Image((ImTextureID)(intptr_t)userTextureId, size); + */ + + private static native void nImage(int userTextureId, float sizeX, float sizeY, float uv0X, float uv0Y); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + ImVec2 uv0 = ImVec2(uv0X, uv0Y); + ImGui::Image((ImTextureID)(intptr_t)userTextureId, size, uv0); + */ + + private static native void nImage(int userTextureId, float sizeX, float sizeY, float uv0X, float uv0Y, float uv1X, float uv1Y); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + ImVec2 uv0 = ImVec2(uv0X, uv0Y); + ImVec2 uv1 = ImVec2(uv1X, uv1Y); + ImGui::Image((ImTextureID)(intptr_t)userTextureId, size, uv0, uv1); + */ + + private static native void nImage(int userTextureId, float sizeX, float sizeY, float uv0X, float uv0Y, float uv1X, float uv1Y, float tintColX, float tintColY, float tintColZ, float tintColW); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + ImVec2 uv0 = ImVec2(uv0X, uv0Y); + ImVec2 uv1 = ImVec2(uv1X, uv1Y); + ImVec4 tintCol = ImVec4(tintColX, tintColY, tintColZ, tintColW); + ImGui::Image((ImTextureID)(intptr_t)userTextureId, size, uv0, uv1, tintCol); + */ + + private static native void nImage(int userTextureId, float sizeX, float sizeY, 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 + ImVec2 size = ImVec2(sizeX, sizeY); + ImVec2 uv0 = ImVec2(uv0X, uv0Y); + ImVec2 uv1 = ImVec2(uv1X, uv1Y); + ImVec4 tintCol = ImVec4(tintColX, tintColY, tintColZ, tintColW); + ImVec4 borderCol = ImVec4(borderColX, borderColY, borderColZ, borderColW); + ImGui::Image((ImTextureID)(intptr_t)userTextureId, size, uv0, uv1, tintCol, borderCol); + */ + + /** + * {@code <0} framePadding uses default frame padding settings. 0 for no padding + */ + public static void imageButton(final int userTextureId, final ImVec2 size) { + nImageButton(userTextureId, size.x, size.y); + } + + /** + * {@code <0} framePadding uses default frame padding settings. 0 for no padding + */ + public static void imageButton(final int userTextureId, final float sizeX, final float sizeY) { + nImageButton(userTextureId, sizeX, sizeY); + } + + /** + * {@code <0} framePadding uses default frame padding settings. 0 for no padding + */ + public static void imageButton(final int userTextureId, final ImVec2 size, final ImVec2 uv0) { + nImageButton(userTextureId, size.x, size.y, uv0.x, uv0.y); + } + + /** + * {@code <0} framePadding uses default frame padding settings. 0 for no padding + */ + public static void imageButton(final int userTextureId, final float sizeX, final float sizeY, final float uv0X, final float uv0Y) { + nImageButton(userTextureId, sizeX, sizeY, uv0X, uv0Y); + } + + /** + * {@code <0} framePadding uses default frame padding settings. 0 for no padding + */ + public static void imageButton(final int userTextureId, final ImVec2 size, final ImVec2 uv0, final ImVec2 uv1) { + nImageButton(userTextureId, size.x, size.y, uv0.x, uv0.y, uv1.x, uv1.y); + } + + /** + * {@code <0} framePadding uses default frame padding settings. 0 for no padding + */ + public static void imageButton(final int userTextureId, final float sizeX, final float sizeY, final float uv0X, final float uv0Y, final float uv1X, final float uv1Y) { + nImageButton(userTextureId, sizeX, sizeY, uv0X, uv0Y, uv1X, uv1Y); + } + + /** + * {@code <0} framePadding uses default frame padding settings. 0 for no padding + */ + public static void imageButton(final int userTextureId, final ImVec2 size, final ImVec2 uv0, final ImVec2 uv1, final int framePadding) { + nImageButton(userTextureId, size.x, size.y, uv0.x, uv0.y, uv1.x, uv1.y, framePadding); + } + + /** + * {@code <0} framePadding uses default frame padding settings. 0 for no padding + */ + public static void imageButton(final int userTextureId, final float sizeX, final float sizeY, final float uv0X, final float uv0Y, final float uv1X, final float uv1Y, final int framePadding) { + nImageButton(userTextureId, sizeX, sizeY, uv0X, uv0Y, uv1X, uv1Y, framePadding); + } + + /** + * {@code <0} framePadding uses default frame padding settings. 0 for no padding + */ + public static void imageButton(final int userTextureId, final ImVec2 size, final ImVec2 uv0, final ImVec2 uv1, final int framePadding, final ImVec4 bgCol) { + nImageButton(userTextureId, size.x, size.y, uv0.x, uv0.y, uv1.x, uv1.y, framePadding, bgCol.x, bgCol.y, bgCol.z, bgCol.w); + } + + /** + * {@code <0} framePadding uses default frame padding settings. 0 for no padding + */ + public static void imageButton(final int userTextureId, final float sizeX, final float sizeY, final float uv0X, final float uv0Y, final float uv1X, final float uv1Y, final int framePadding, final float bgColX, final float bgColY, final float bgColZ, final float bgColW) { + nImageButton(userTextureId, sizeX, sizeY, uv0X, uv0Y, uv1X, uv1Y, framePadding, bgColX, bgColY, bgColZ, bgColW); + } + + /** + * {@code <0} framePadding uses default frame padding settings. 0 for no padding + */ + public static void imageButton(final int userTextureId, final ImVec2 size, final ImVec2 uv0, final ImVec2 uv1, final int framePadding, final ImVec4 bgCol, final ImVec4 tintCol) { + nImageButton(userTextureId, size.x, size.y, uv0.x, uv0.y, uv1.x, uv1.y, framePadding, bgCol.x, bgCol.y, bgCol.z, bgCol.w, tintCol.x, tintCol.y, tintCol.z, tintCol.w); + } + + /** + * {@code <0} framePadding uses default frame padding settings. 0 for no padding + */ + public static void imageButton(final int userTextureId, final float sizeX, final float sizeY, final float uv0X, final float uv0Y, final float uv1X, final float uv1Y, final int framePadding, final float bgColX, final float bgColY, final float bgColZ, final float bgColW, final float tintColX, final float tintColY, final float tintColZ, final float tintColW) { + nImageButton(userTextureId, sizeX, sizeY, uv0X, uv0Y, uv1X, uv1Y, framePadding, bgColX, bgColY, bgColZ, bgColW, tintColX, tintColY, tintColZ, tintColW); + } + + /** + * {@code <0} framePadding uses default frame padding settings. 0 for no padding + */ + public static void imageButton(final int userTextureId, final ImVec2 size, final ImVec2 uv0, final ImVec2 uv1, final ImVec4 bgCol, final ImVec4 tintCol) { + nImageButton(userTextureId, size.x, size.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); + } + + /** + * {@code <0} framePadding uses default frame padding settings. 0 for no padding + */ + public static void imageButton(final int userTextureId, final float sizeX, final float sizeY, 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) { + nImageButton(userTextureId, sizeX, sizeY, uv0X, uv0Y, uv1X, uv1Y, bgColX, bgColY, bgColZ, bgColW, tintColX, tintColY, tintColZ, tintColW); + } + + private static native void nImageButton(int userTextureId, float sizeX, float sizeY); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + ImGui::ImageButton((ImTextureID)(intptr_t)userTextureId, size); + */ + + private static native void nImageButton(int userTextureId, float sizeX, float sizeY, float uv0X, float uv0Y); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + ImVec2 uv0 = ImVec2(uv0X, uv0Y); + ImGui::ImageButton((ImTextureID)(intptr_t)userTextureId, size, uv0); + */ + + private static native void nImageButton(int userTextureId, float sizeX, float sizeY, float uv0X, float uv0Y, float uv1X, float uv1Y); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + ImVec2 uv0 = ImVec2(uv0X, uv0Y); + ImVec2 uv1 = ImVec2(uv1X, uv1Y); + ImGui::ImageButton((ImTextureID)(intptr_t)userTextureId, size, uv0, uv1); + */ + + private static native void nImageButton(int userTextureId, float sizeX, float sizeY, float uv0X, float uv0Y, float uv1X, float uv1Y, int framePadding); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + ImVec2 uv0 = ImVec2(uv0X, uv0Y); + ImVec2 uv1 = ImVec2(uv1X, uv1Y); + ImGui::ImageButton((ImTextureID)(intptr_t)userTextureId, size, uv0, uv1, framePadding); + */ + + private static native void nImageButton(int userTextureId, float sizeX, float sizeY, float uv0X, float uv0Y, float uv1X, float uv1Y, int framePadding, float bgColX, float bgColY, float bgColZ, float bgColW); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + ImVec2 uv0 = ImVec2(uv0X, uv0Y); + ImVec2 uv1 = ImVec2(uv1X, uv1Y); + ImVec4 bgCol = ImVec4(bgColX, bgColY, bgColZ, bgColW); + ImGui::ImageButton((ImTextureID)(intptr_t)userTextureId, size, uv0, uv1, framePadding, bgCol); + */ + + private static native void nImageButton(int userTextureId, float sizeX, float sizeY, float uv0X, float uv0Y, float uv1X, float uv1Y, int framePadding, float bgColX, float bgColY, float bgColZ, float bgColW, float tintColX, float tintColY, float tintColZ, float tintColW); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + ImVec2 uv0 = ImVec2(uv0X, uv0Y); + ImVec2 uv1 = ImVec2(uv1X, uv1Y); + ImVec4 bgCol = ImVec4(bgColX, bgColY, bgColZ, bgColW); + ImVec4 tintCol = ImVec4(tintColX, tintColY, tintColZ, tintColW); + ImGui::ImageButton((ImTextureID)(intptr_t)userTextureId, size, uv0, uv1, framePadding, bgCol, tintCol); + */ + + private static native void nImageButton(int userTextureId, float sizeX, float sizeY, 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 size = ImVec2(sizeX, sizeY); + ImVec2 uv0 = ImVec2(uv0X, uv0Y); + ImVec2 uv1 = ImVec2(uv1X, uv1Y); + ImVec4 bgCol = ImVec4(bgColX, bgColY, bgColZ, bgColW); + ImVec4 tintCol = ImVec4(tintColX, tintColY, tintColZ, tintColW); + ImGui::ImageButton((ImTextureID)(intptr_t)userTextureId, size, uv0, uv1, -1, bgCol, tintCol); + */ + + public static boolean checkbox(String label, boolean active) { + return nCheckbox(label, active); + } + + private static native boolean nCheckbox(String label, boolean active); /* + bool flag = (bool)active; + return ImGui::Checkbox(label, &flag); + */ + + public static boolean checkbox(final String label, final ImBoolean data) { + return nCheckbox(label, data != null ? data.getData() : null); + } + + private static native boolean nCheckbox(String obj_label, boolean[] obj_data); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto data = obj_data == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_data, JNI_FALSE); + auto _result = ImGui::Checkbox(label, (data != NULL ? &data[0] : NULL)); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (data != NULL) env->ReleasePrimitiveArrayCritical(obj_data, data, JNI_FALSE); + return _result; + */ + + public static boolean checkboxFlags(final String label, final ImInt flags, final int flagsValue) { + return nCheckboxFlags(label, flags != null ? flags.getData() : null, flagsValue); + } + + private static native boolean nCheckboxFlags(String obj_label, int[] obj_flags, int flagsValue); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto flags = obj_flags == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_flags, JNI_FALSE); + auto _result = ImGui::CheckboxFlags(label, (flags != NULL ? &flags[0] : NULL), flagsValue); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (flags != NULL) env->ReleasePrimitiveArrayCritical(obj_flags, flags, JNI_FALSE); + return _result; + */ + + /** + * Use with e.g. if (RadioButton("one", my_value==1)) { my_value = 1; } + */ + public static boolean radioButton(final String label, final boolean active) { + return nRadioButton(label, active); + } + + private static native boolean nRadioButton(String obj_label, boolean active); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::RadioButton(label, active); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + /** + * Shortcut to handle the above pattern when value is an integer + */ + public static boolean radioButton(final String label, final ImInt v, final int vButton) { + return nRadioButton(label, v != null ? v.getData() : null, vButton); + } + + private static native boolean nRadioButton(String obj_label, int[] obj_v, int vButton); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::RadioButton(label, (v != NULL ? &v[0] : NULL), vButton); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static void progressBar(final float fraction) { + nProgressBar(fraction); + } + + public static void progressBar(final float fraction, final ImVec2 size) { + nProgressBar(fraction, size.x, size.y); + } + + public static void progressBar(final float fraction, final float sizeX, final float sizeY) { + nProgressBar(fraction, sizeX, sizeY); + } + + public static void progressBar(final float fraction, final ImVec2 size, final String overlay) { + nProgressBar(fraction, size.x, size.y, overlay); + } + + public static void progressBar(final float fraction, final float sizeX, final float sizeY, final String overlay) { + nProgressBar(fraction, sizeX, sizeY, overlay); + } + + public static void progressBar(final float fraction, final String overlay) { + nProgressBar(fraction, overlay); + } + + private static native void nProgressBar(float fraction); /* + ImGui::ProgressBar(fraction); + */ + + private static native void nProgressBar(float fraction, float sizeX, float sizeY); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + ImGui::ProgressBar(fraction, size); + */ + + private static native void nProgressBar(float fraction, float sizeX, float sizeY, String overlay); /*MANUAL + auto overlay = obj_overlay == NULL ? NULL : (char*)env->GetStringUTFChars(obj_overlay, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + ImGui::ProgressBar(fraction, size, overlay); + if (overlay != NULL) env->ReleaseStringUTFChars(obj_overlay, overlay); + */ + + private static native void nProgressBar(float fraction, String overlay); /*MANUAL + auto overlay = obj_overlay == NULL ? NULL : (char*)env->GetStringUTFChars(obj_overlay, JNI_FALSE); + ImGui::ProgressBar(fraction, ImVec2(-FLT_MIN,0), overlay); + if (overlay != NULL) env->ReleaseStringUTFChars(obj_overlay, overlay); + */ + + /** + * Draw a small circle + keep the cursor on the same line. advance cursor x position by GetTreeNodeToLabelSpacing(), same distance that TreeNode() uses + */ + public static void bullet() { + nBullet(); + } + + private static native void nBullet(); /* + ImGui::Bullet(); + */ + + // Widgets: Combo Box + // - The BeginCombo()/EndCombo() api allows you to manage your contents and selection state however you want it, by creating e.g. Selectable() items. + // - The old Combo() api are helpers over BeginCombo()/EndCombo() which are kept available for convenience purpose. + + public static boolean beginCombo(final String label, final String previewValue) { + return nBeginCombo(label, previewValue); + } + + public static boolean beginCombo(final String label, final String previewValue, final int imGuiComboFlags) { + return nBeginCombo(label, previewValue, imGuiComboFlags); + } + + private static native boolean nBeginCombo(String obj_label, String obj_previewValue); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto previewValue = obj_previewValue == NULL ? NULL : (char*)env->GetStringUTFChars(obj_previewValue, JNI_FALSE); + auto _result = ImGui::BeginCombo(label, previewValue); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (previewValue != NULL) env->ReleaseStringUTFChars(obj_previewValue, previewValue); + return _result; + */ + + private static native boolean nBeginCombo(String obj_label, String obj_previewValue, int imGuiComboFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto previewValue = obj_previewValue == NULL ? NULL : (char*)env->GetStringUTFChars(obj_previewValue, JNI_FALSE); + auto _result = ImGui::BeginCombo(label, previewValue, imGuiComboFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (previewValue != NULL) env->ReleaseStringUTFChars(obj_previewValue, previewValue); + return _result; + */ + + /** + * Only call EndCombo() if BeginCombo() returns true! + */ + public static void endCombo() { + nEndCombo(); + } + + private static native void nEndCombo(); /* + ImGui::EndCombo(); + */ + + public static boolean combo(final String label, final ImInt currentItem, final String[] items) { + return nCombo(label, currentItem != null ? currentItem.getData() : null, items, items.length); + } + + public static boolean combo(final String label, final ImInt currentItem, final String[] items, final int popupMaxHeightInItems) { + return nCombo(label, currentItem != null ? currentItem.getData() : null, items, items.length, popupMaxHeightInItems); + } + + private static native boolean nCombo(String obj_label, int[] obj_currentItem, String[] obj_items, int itemsCount); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto currentItem = obj_currentItem == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_currentItem, JNI_FALSE); + const char* items[itemsCount]; + for (int i = 0; i < itemsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_items, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + items[i] = rawStr; + }; + auto _result = ImGui::Combo(label, (currentItem != NULL ? ¤tItem[0] : NULL), items, itemsCount); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (currentItem != NULL) env->ReleasePrimitiveArrayCritical(obj_currentItem, currentItem, JNI_FALSE); + for (int i = 0; i < itemsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_items, i); + env->ReleaseStringUTFChars(str, items[i]); + }; + return _result; + */ + + private static native boolean nCombo(String obj_label, int[] obj_currentItem, String[] obj_items, int itemsCount, int popupMaxHeightInItems); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto currentItem = obj_currentItem == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_currentItem, JNI_FALSE); + const char* items[itemsCount]; + for (int i = 0; i < itemsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_items, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + items[i] = rawStr; + }; + auto _result = ImGui::Combo(label, (currentItem != NULL ? ¤tItem[0] : NULL), items, itemsCount, popupMaxHeightInItems); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (currentItem != NULL) env->ReleasePrimitiveArrayCritical(obj_currentItem, currentItem, JNI_FALSE); + for (int i = 0; i < itemsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_items, i); + env->ReleaseStringUTFChars(str, items[i]); + }; + return _result; + */ + + /** + * Separate items with \0 within a string, end item-list with \0\0. e.g. "One\0Two\0Three\0" + */ + public static boolean combo(final String label, final ImInt currentItem, final String itemsSeparatedByZeros) { + return nCombo(label, currentItem != null ? currentItem.getData() : null, itemsSeparatedByZeros); + } + + /** + * Separate items with \0 within a string, end item-list with \0\0. e.g. "One\0Two\0Three\0" + */ + public static boolean combo(final String label, final ImInt currentItem, final String itemsSeparatedByZeros, final int popupMaxHeightInItems) { + return nCombo(label, currentItem != null ? currentItem.getData() : null, itemsSeparatedByZeros, popupMaxHeightInItems); + } + + private static native boolean nCombo(String obj_label, int[] obj_currentItem, String obj_itemsSeparatedByZeros); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto currentItem = obj_currentItem == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_currentItem, JNI_FALSE); + auto itemsSeparatedByZeros = obj_itemsSeparatedByZeros == NULL ? NULL : (char*)env->GetStringUTFChars(obj_itemsSeparatedByZeros, JNI_FALSE); + auto _result = ImGui::Combo(label, (currentItem != NULL ? ¤tItem[0] : NULL), itemsSeparatedByZeros); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (currentItem != NULL) env->ReleasePrimitiveArrayCritical(obj_currentItem, currentItem, JNI_FALSE); + if (itemsSeparatedByZeros != NULL) env->ReleaseStringUTFChars(obj_itemsSeparatedByZeros, itemsSeparatedByZeros); + return _result; + */ + + private static native boolean nCombo(String obj_label, int[] obj_currentItem, String obj_itemsSeparatedByZeros, int popupMaxHeightInItems); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto currentItem = obj_currentItem == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_currentItem, JNI_FALSE); + auto itemsSeparatedByZeros = obj_itemsSeparatedByZeros == NULL ? NULL : (char*)env->GetStringUTFChars(obj_itemsSeparatedByZeros, JNI_FALSE); + auto _result = ImGui::Combo(label, (currentItem != NULL ? ¤tItem[0] : NULL), itemsSeparatedByZeros, popupMaxHeightInItems); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (currentItem != NULL) env->ReleasePrimitiveArrayCritical(obj_currentItem, currentItem, JNI_FALSE); + if (itemsSeparatedByZeros != NULL) env->ReleaseStringUTFChars(obj_itemsSeparatedByZeros, itemsSeparatedByZeros); + return _result; + */ + + // Widgets: Drag Sliders + // - CTRL+Click on any drag box to turn them into an input box. Manually input values aren't clamped and can go off-bounds. + // - For all the Float2/Float3/Float4/Int2/Int3/Int4 versions of every functions, note that a 'float v[X]' function argument is the same as 'float* v', the array syntax is just a way to document the number of elements that are expected to be accessible. You can pass address of your first element out of a contiguous set, e.g. &myvector.x + // - Adjust format string to decorate the value with a prefix, a suffix, or adapt the editing and display precision e.g. "%.3f" -> 1.234; "%5.2f secs" -> 01.23 secs; "Biscuit: %.0f" -> Biscuit: 1; etc. + // - Format string may also be set to NULL or use the default format ("%f" or "%d"). + // - Speed are per-pixel of mouse movement (vSpeed=0.2f: mouse needs to move by 5 pixels to increase value by 1). For gamepad/keyboard navigation, minimum speed is Max(vSpeed, minimum_step_at_given_precision). + // - Use vMin < vMax to clamp edits to given limits. Note that CTRL+Click manual input can override those limits. + // - Use v_max = FLT_MAX / INT_MAX etc to avoid clamping to a maximum, same with v_min = -FLT_MAX / INT_MIN to avoid clamping to a minimum. + // - Use vMin > vMax to lock edits. + // - We use the same sets of flags for DragXXX() and SliderXXX() functions as the features are the same and it makes it easier to swap them. + // - Legacy: Pre-1.78 there are DragXXX() function signatures that takes a final `float power=1.0f' argument instead of the `ImGuiSliderFlags flags=0' argument. + // If you get a warning converting a float to ImGuiSliderFlags, read https://github.com/ocornut/imgui/issues/3361 + + /** + * If {@code vMin >= vMax} we have no bound + */ + public static boolean dragFloat(final String label, final float[] v) { + return nDragFloat(label, v); + } + + /** + * If {@code vMin >= vMax} we have no bound + */ + public static boolean dragFloat(final String label, final float[] v, final float vSpeed) { + return nDragFloat(label, v, vSpeed); + } + + /** + * If {@code vMin >= vMax} we have no bound + */ + public static boolean dragFloat(final String label, final float[] v, final float vSpeed, final float vMin) { + return nDragFloat(label, v, vSpeed, vMin); + } + + /** + * If {@code vMin >= vMax} we have no bound + */ + public static boolean dragFloat(final String label, final float[] v, final float vSpeed, final float vMin, final float vMax) { + return nDragFloat(label, v, vSpeed, vMin, vMax); + } + + /** + * If {@code vMin >= vMax} we have no bound + */ + public static boolean dragFloat(final String label, final float[] v, final float vSpeed, final float vMin, final float vMax, final String format) { + return nDragFloat(label, v, vSpeed, vMin, vMax, format); + } + + /** + * If {@code vMin >= vMax} we have no bound + */ + public static boolean dragFloat(final String label, final float[] v, final float vSpeed, final float vMin, final float vMax, final String format, final int imGuiSliderFlags) { + return nDragFloat(label, v, vSpeed, vMin, vMax, format, imGuiSliderFlags); + } + + /** + * If {@code vMin >= vMax} we have no bound + */ + public static boolean dragFloat(final String label, final float[] v, final float vSpeed, final float vMin, final float vMax, final int imGuiSliderFlags) { + return nDragFloat(label, v, vSpeed, vMin, vMax, imGuiSliderFlags); + } + + private static native boolean nDragFloat(String obj_label, float[] obj_v); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragFloat(label, &v[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragFloat(String obj_label, float[] obj_v, float vSpeed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragFloat(label, &v[0], vSpeed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragFloat(String obj_label, float[] obj_v, float vSpeed, float vMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragFloat(label, &v[0], vSpeed, vMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragFloat(String obj_label, float[] obj_v, float vSpeed, float vMin, float vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragFloat(label, &v[0], vSpeed, vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragFloat(String obj_label, float[] obj_v, float vSpeed, float vMin, float vMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragFloat(label, &v[0], vSpeed, vMin, vMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragFloat(String obj_label, float[] obj_v, float vSpeed, float vMin, float vMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragFloat(label, &v[0], vSpeed, vMin, vMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragFloat(String obj_label, float[] obj_v, float vSpeed, float vMin, float vMax, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragFloat(label, &v[0], vSpeed, vMin, vMax, "%.3f", imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean dragFloat2(final String label, final float[] v) { + return nDragFloat2(label, v); + } + + public static boolean dragFloat2(final String label, final float[] v, final float vSpeed) { + return nDragFloat2(label, v, vSpeed); + } + + public static boolean dragFloat2(final String label, final float[] v, final float vSpeed, final float vMin) { + return nDragFloat2(label, v, vSpeed, vMin); + } + + public static boolean dragFloat2(final String label, final float[] v, final float vSpeed, final float vMin, final float vMax) { + return nDragFloat2(label, v, vSpeed, vMin, vMax); + } + + public static boolean dragFloat2(final String label, final float[] v, final float vSpeed, final float vMin, final float vMax, final String format) { + return nDragFloat2(label, v, vSpeed, vMin, vMax, format); + } + + public static boolean dragFloat2(final String label, final float[] v, final float vSpeed, final float vMin, final float vMax, final String format, final int imGuiSliderFlags) { + return nDragFloat2(label, v, vSpeed, vMin, vMax, format, imGuiSliderFlags); + } + + public static boolean dragFloat2(final String label, final float[] v, final float vSpeed, final float vMin, final float vMax, final int imGuiSliderFlags) { + return nDragFloat2(label, v, vSpeed, vMin, vMax, imGuiSliderFlags); + } + + private static native boolean nDragFloat2(String obj_label, float[] obj_v); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragFloat2(label, &v[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragFloat2(String obj_label, float[] obj_v, float vSpeed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragFloat2(label, &v[0], vSpeed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragFloat2(String obj_label, float[] obj_v, float vSpeed, float vMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragFloat2(label, &v[0], vSpeed, vMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragFloat2(String obj_label, float[] obj_v, float vSpeed, float vMin, float vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragFloat2(label, &v[0], vSpeed, vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragFloat2(String obj_label, float[] obj_v, float vSpeed, float vMin, float vMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragFloat2(label, &v[0], vSpeed, vMin, vMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragFloat2(String obj_label, float[] obj_v, float vSpeed, float vMin, float vMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragFloat2(label, &v[0], vSpeed, vMin, vMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragFloat2(String obj_label, float[] obj_v, float vSpeed, float vMin, float vMax, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragFloat2(label, &v[0], vSpeed, vMin, vMax, "%.3f", imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean dragFloat3(final String label, final float[] v) { + return nDragFloat3(label, v); + } + + public static boolean dragFloat3(final String label, final float[] v, final float vSpeed) { + return nDragFloat3(label, v, vSpeed); + } + + public static boolean dragFloat3(final String label, final float[] v, final float vSpeed, final float vMin) { + return nDragFloat3(label, v, vSpeed, vMin); + } + + public static boolean dragFloat3(final String label, final float[] v, final float vSpeed, final float vMin, final float vMax) { + return nDragFloat3(label, v, vSpeed, vMin, vMax); + } + + public static boolean dragFloat3(final String label, final float[] v, final float vSpeed, final float vMin, final float vMax, final String format) { + return nDragFloat3(label, v, vSpeed, vMin, vMax, format); + } + + public static boolean dragFloat3(final String label, final float[] v, final float vSpeed, final float vMin, final float vMax, final String format, final int imGuiSliderFlags) { + return nDragFloat3(label, v, vSpeed, vMin, vMax, format, imGuiSliderFlags); + } + + public static boolean dragFloat3(final String label, final float[] v, final float vSpeed, final float vMin, final float vMax, final int imGuiSliderFlags) { + return nDragFloat3(label, v, vSpeed, vMin, vMax, imGuiSliderFlags); + } + + private static native boolean nDragFloat3(String obj_label, float[] obj_v); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragFloat3(label, &v[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragFloat3(String obj_label, float[] obj_v, float vSpeed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragFloat3(label, &v[0], vSpeed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragFloat3(String obj_label, float[] obj_v, float vSpeed, float vMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragFloat3(label, &v[0], vSpeed, vMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragFloat3(String obj_label, float[] obj_v, float vSpeed, float vMin, float vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragFloat3(label, &v[0], vSpeed, vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragFloat3(String obj_label, float[] obj_v, float vSpeed, float vMin, float vMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragFloat3(label, &v[0], vSpeed, vMin, vMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragFloat3(String obj_label, float[] obj_v, float vSpeed, float vMin, float vMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragFloat3(label, &v[0], vSpeed, vMin, vMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragFloat3(String obj_label, float[] obj_v, float vSpeed, float vMin, float vMax, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragFloat3(label, &v[0], vSpeed, vMin, vMax, "%.3f", imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean dragFloat4(final String label, final float[] v) { + return nDragFloat4(label, v); + } + + public static boolean dragFloat4(final String label, final float[] v, final float vSpeed) { + return nDragFloat4(label, v, vSpeed); + } + + public static boolean dragFloat4(final String label, final float[] v, final float vSpeed, final float vMin) { + return nDragFloat4(label, v, vSpeed, vMin); + } + + public static boolean dragFloat4(final String label, final float[] v, final float vSpeed, final float vMin, final float vMax) { + return nDragFloat4(label, v, vSpeed, vMin, vMax); + } + + public static boolean dragFloat4(final String label, final float[] v, final float vSpeed, final float vMin, final float vMax, final String format) { + return nDragFloat4(label, v, vSpeed, vMin, vMax, format); + } + + public static boolean dragFloat4(final String label, final float[] v, final float vSpeed, final float vMin, final float vMax, final String format, final int imGuiSliderFlags) { + return nDragFloat4(label, v, vSpeed, vMin, vMax, format, imGuiSliderFlags); + } + + public static boolean dragFloat4(final String label, final float[] v, final float vSpeed, final float vMin, final float vMax, final int imGuiSliderFlags) { + return nDragFloat4(label, v, vSpeed, vMin, vMax, imGuiSliderFlags); + } + + private static native boolean nDragFloat4(String obj_label, float[] obj_v); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragFloat4(label, &v[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragFloat4(String obj_label, float[] obj_v, float vSpeed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragFloat4(label, &v[0], vSpeed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragFloat4(String obj_label, float[] obj_v, float vSpeed, float vMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragFloat4(label, &v[0], vSpeed, vMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragFloat4(String obj_label, float[] obj_v, float vSpeed, float vMin, float vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragFloat4(label, &v[0], vSpeed, vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragFloat4(String obj_label, float[] obj_v, float vSpeed, float vMin, float vMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragFloat4(label, &v[0], vSpeed, vMin, vMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragFloat4(String obj_label, float[] obj_v, float vSpeed, float vMin, float vMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragFloat4(label, &v[0], vSpeed, vMin, vMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragFloat4(String obj_label, float[] obj_v, float vSpeed, float vMin, float vMax, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragFloat4(label, &v[0], vSpeed, vMin, vMax, "%.3f", imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean dragFloatRange2(final String label, final float[] vCurrentMin, final float[] vCurrentMax, final float vSpeed) { + return nDragFloatRange2(label, vCurrentMin, vCurrentMax, vSpeed); + } + + public static boolean dragFloatRange2(final String label, final float[] vCurrentMin, final float[] vCurrentMax, final float vSpeed, final float vMin) { + return nDragFloatRange2(label, vCurrentMin, vCurrentMax, vSpeed, vMin); + } + + public static boolean dragFloatRange2(final String label, final float[] vCurrentMin, final float[] vCurrentMax, final float vSpeed, final float vMin, final float vMax) { + return nDragFloatRange2(label, vCurrentMin, vCurrentMax, vSpeed, vMin, vMax); + } + + public static boolean dragFloatRange2(final String label, final float[] vCurrentMin, final float[] vCurrentMax, final float vSpeed, final float vMin, final float vMax, final String format) { + return nDragFloatRange2(label, vCurrentMin, vCurrentMax, vSpeed, vMin, vMax, format); + } + + public static boolean dragFloatRange2(final String label, final float[] vCurrentMin, final float[] vCurrentMax, final float vSpeed, final float vMin, final float vMax, final String format, final String formatMax) { + return nDragFloatRange2(label, vCurrentMin, vCurrentMax, vSpeed, vMin, vMax, format, formatMax); + } + + public static boolean dragFloatRange2(final String label, final float[] vCurrentMin, final float[] vCurrentMax, final float vSpeed, final float vMin, final float vMax, final String format, final String formatMax, final int imGuiSliderFlags) { + return nDragFloatRange2(label, vCurrentMin, vCurrentMax, vSpeed, vMin, vMax, format, formatMax, imGuiSliderFlags); + } + + private static native boolean nDragFloatRange2(String obj_label, float[] obj_vCurrentMin, float[] obj_vCurrentMax, float vSpeed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto vCurrentMin = obj_vCurrentMin == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_vCurrentMin, JNI_FALSE); + auto vCurrentMax = obj_vCurrentMax == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_vCurrentMax, JNI_FALSE); + auto _result = ImGui::DragFloatRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (vCurrentMin != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMin, vCurrentMin, JNI_FALSE); + if (vCurrentMax != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMax, vCurrentMax, JNI_FALSE); + return _result; + */ + + private static native boolean nDragFloatRange2(String obj_label, float[] obj_vCurrentMin, float[] obj_vCurrentMax, float vSpeed, float vMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto vCurrentMin = obj_vCurrentMin == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_vCurrentMin, JNI_FALSE); + auto vCurrentMax = obj_vCurrentMax == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_vCurrentMax, JNI_FALSE); + auto _result = ImGui::DragFloatRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed, vMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (vCurrentMin != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMin, vCurrentMin, JNI_FALSE); + if (vCurrentMax != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMax, vCurrentMax, JNI_FALSE); + return _result; + */ + + private static native boolean nDragFloatRange2(String obj_label, float[] obj_vCurrentMin, float[] obj_vCurrentMax, float vSpeed, float vMin, float vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto vCurrentMin = obj_vCurrentMin == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_vCurrentMin, JNI_FALSE); + auto vCurrentMax = obj_vCurrentMax == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_vCurrentMax, JNI_FALSE); + auto _result = ImGui::DragFloatRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed, vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (vCurrentMin != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMin, vCurrentMin, JNI_FALSE); + if (vCurrentMax != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMax, vCurrentMax, JNI_FALSE); + return _result; + */ + + private static native boolean nDragFloatRange2(String obj_label, float[] obj_vCurrentMin, float[] obj_vCurrentMax, float vSpeed, float vMin, float vMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto vCurrentMin = obj_vCurrentMin == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_vCurrentMin, JNI_FALSE); + auto vCurrentMax = obj_vCurrentMax == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_vCurrentMax, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragFloatRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed, vMin, vMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (vCurrentMin != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMin, vCurrentMin, JNI_FALSE); + if (vCurrentMax != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMax, vCurrentMax, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragFloatRange2(String obj_label, float[] obj_vCurrentMin, float[] obj_vCurrentMax, float vSpeed, float vMin, float vMax, String obj_format, String obj_formatMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto vCurrentMin = obj_vCurrentMin == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_vCurrentMin, JNI_FALSE); + auto vCurrentMax = obj_vCurrentMax == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_vCurrentMax, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto formatMax = obj_formatMax == NULL ? NULL : (char*)env->GetStringUTFChars(obj_formatMax, JNI_FALSE); + auto _result = ImGui::DragFloatRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed, vMin, vMax, format, formatMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (vCurrentMin != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMin, vCurrentMin, JNI_FALSE); + if (vCurrentMax != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMax, vCurrentMax, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + if (formatMax != NULL) env->ReleaseStringUTFChars(obj_formatMax, formatMax); + return _result; + */ + + private static native boolean nDragFloatRange2(String obj_label, float[] obj_vCurrentMin, float[] obj_vCurrentMax, float vSpeed, float vMin, float vMax, String obj_format, String obj_formatMax, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto vCurrentMin = obj_vCurrentMin == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_vCurrentMin, JNI_FALSE); + auto vCurrentMax = obj_vCurrentMax == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_vCurrentMax, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto formatMax = obj_formatMax == NULL ? NULL : (char*)env->GetStringUTFChars(obj_formatMax, JNI_FALSE); + auto _result = ImGui::DragFloatRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed, vMin, vMax, format, formatMax, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (vCurrentMin != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMin, vCurrentMin, JNI_FALSE); + if (vCurrentMax != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMax, vCurrentMax, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + if (formatMax != NULL) env->ReleaseStringUTFChars(obj_formatMax, formatMax); + return _result; + */ + + /** + * If {@code vMin >= vMax} we have no bound + */ + public static boolean dragInt(final String label, final int[] v) { + return nDragInt(label, v); + } + + /** + * If {@code vMin >= vMax} we have no bound + */ + public static boolean dragInt(final String label, final int[] v, final float vSpeed) { + return nDragInt(label, v, vSpeed); + } + + /** + * If {@code vMin >= vMax} we have no bound + */ + public static boolean dragInt(final String label, final int[] v, final float vSpeed, final int vMin) { + return nDragInt(label, v, vSpeed, vMin); + } + + /** + * If {@code vMin >= vMax} we have no bound + */ + public static boolean dragInt(final String label, final int[] v, final float vSpeed, final int vMin, final int vMax) { + return nDragInt(label, v, vSpeed, vMin, vMax); + } + + /** + * If {@code vMin >= vMax} we have no bound + */ + public static boolean dragInt(final String label, final int[] v, final float vSpeed, final int vMin, final int vMax, final String format) { + return nDragInt(label, v, vSpeed, vMin, vMax, format); + } + + /** + * If {@code vMin >= vMax} we have no bound + */ + public static boolean dragInt(final String label, final int[] v, final float vSpeed, final int vMin, final int vMax, final String format, final int imGuiSliderFlags) { + return nDragInt(label, v, vSpeed, vMin, vMax, format, imGuiSliderFlags); + } + + /** + * If {@code vMin >= vMax} we have no bound + */ + public static boolean dragInt(final String label, final int[] v, final float vSpeed, final int vMin, final int vMax, final int imGuiSliderFlags) { + return nDragInt(label, v, vSpeed, vMin, vMax, imGuiSliderFlags); + } + + private static native boolean nDragInt(String obj_label, int[] obj_v); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragInt(label, &v[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragInt(String obj_label, int[] obj_v, float vSpeed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragInt(label, &v[0], vSpeed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragInt(String obj_label, int[] obj_v, float vSpeed, int vMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragInt(label, &v[0], vSpeed, vMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragInt(String obj_label, int[] obj_v, float vSpeed, int vMin, int vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragInt(label, &v[0], vSpeed, vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragInt(String obj_label, int[] obj_v, float vSpeed, int vMin, int vMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragInt(label, &v[0], vSpeed, vMin, vMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragInt(String obj_label, int[] obj_v, float vSpeed, int vMin, int vMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragInt(label, &v[0], vSpeed, vMin, vMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragInt(String obj_label, int[] obj_v, float vSpeed, int vMin, int vMax, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragInt(label, &v[0], vSpeed, vMin, vMax, "%d", imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean dragInt2(final String label, final int[] v) { + return nDragInt2(label, v); + } + + public static boolean dragInt2(final String label, final int[] v, final float vSpeed) { + return nDragInt2(label, v, vSpeed); + } + + public static boolean dragInt2(final String label, final int[] v, final float vSpeed, final int vMin) { + return nDragInt2(label, v, vSpeed, vMin); + } + + public static boolean dragInt2(final String label, final int[] v, final float vSpeed, final int vMin, final int vMax) { + return nDragInt2(label, v, vSpeed, vMin, vMax); + } + + public static boolean dragInt2(final String label, final int[] v, final float vSpeed, final int vMin, final int vMax, final String format) { + return nDragInt2(label, v, vSpeed, vMin, vMax, format); + } + + public static boolean dragInt2(final String label, final int[] v, final float vSpeed, final int vMin, final int vMax, final String format, final int imGuiSliderFlags) { + return nDragInt2(label, v, vSpeed, vMin, vMax, format, imGuiSliderFlags); + } + + public static boolean dragInt2(final String label, final int[] v, final float vSpeed, final int vMin, final int vMax, final int imGuiSliderFlags) { + return nDragInt2(label, v, vSpeed, vMin, vMax, imGuiSliderFlags); + } + + private static native boolean nDragInt2(String obj_label, int[] obj_v); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragInt2(label, &v[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragInt2(String obj_label, int[] obj_v, float vSpeed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragInt2(label, &v[0], vSpeed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragInt2(String obj_label, int[] obj_v, float vSpeed, int vMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragInt2(label, &v[0], vSpeed, vMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragInt2(String obj_label, int[] obj_v, float vSpeed, int vMin, int vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragInt2(label, &v[0], vSpeed, vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragInt2(String obj_label, int[] obj_v, float vSpeed, int vMin, int vMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragInt2(label, &v[0], vSpeed, vMin, vMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragInt2(String obj_label, int[] obj_v, float vSpeed, int vMin, int vMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragInt2(label, &v[0], vSpeed, vMin, vMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragInt2(String obj_label, int[] obj_v, float vSpeed, int vMin, int vMax, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragInt2(label, &v[0], vSpeed, vMin, vMax, "%d", imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean dragInt3(final String label, final int[] v) { + return nDragInt3(label, v); + } + + public static boolean dragInt3(final String label, final int[] v, final float vSpeed) { + return nDragInt3(label, v, vSpeed); + } + + public static boolean dragInt3(final String label, final int[] v, final float vSpeed, final int vMin) { + return nDragInt3(label, v, vSpeed, vMin); + } + + public static boolean dragInt3(final String label, final int[] v, final float vSpeed, final int vMin, final int vMax) { + return nDragInt3(label, v, vSpeed, vMin, vMax); + } + + public static boolean dragInt3(final String label, final int[] v, final float vSpeed, final int vMin, final int vMax, final String format) { + return nDragInt3(label, v, vSpeed, vMin, vMax, format); + } + + public static boolean dragInt3(final String label, final int[] v, final float vSpeed, final int vMin, final int vMax, final String format, final int imGuiSliderFlags) { + return nDragInt3(label, v, vSpeed, vMin, vMax, format, imGuiSliderFlags); + } + + public static boolean dragInt3(final String label, final int[] v, final float vSpeed, final int vMin, final int vMax, final int imGuiSliderFlags) { + return nDragInt3(label, v, vSpeed, vMin, vMax, imGuiSliderFlags); + } + + private static native boolean nDragInt3(String obj_label, int[] obj_v); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragInt3(label, &v[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragInt3(String obj_label, int[] obj_v, float vSpeed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragInt3(label, &v[0], vSpeed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragInt3(String obj_label, int[] obj_v, float vSpeed, int vMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragInt3(label, &v[0], vSpeed, vMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragInt3(String obj_label, int[] obj_v, float vSpeed, int vMin, int vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragInt3(label, &v[0], vSpeed, vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragInt3(String obj_label, int[] obj_v, float vSpeed, int vMin, int vMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragInt3(label, &v[0], vSpeed, vMin, vMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragInt3(String obj_label, int[] obj_v, float vSpeed, int vMin, int vMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragInt3(label, &v[0], vSpeed, vMin, vMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragInt3(String obj_label, int[] obj_v, float vSpeed, int vMin, int vMax, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragInt3(label, &v[0], vSpeed, vMin, vMax, "%d", imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean dragInt4(final String label, final int[] v) { + return nDragInt4(label, v); + } + + public static boolean dragInt4(final String label, final int[] v, final float vSpeed) { + return nDragInt4(label, v, vSpeed); + } + + public static boolean dragInt4(final String label, final int[] v, final float vSpeed, final int vMin) { + return nDragInt4(label, v, vSpeed, vMin); + } + + public static boolean dragInt4(final String label, final int[] v, final float vSpeed, final int vMin, final int vMax) { + return nDragInt4(label, v, vSpeed, vMin, vMax); + } + + public static boolean dragInt4(final String label, final int[] v, final float vSpeed, final int vMin, final int vMax, final String format) { + return nDragInt4(label, v, vSpeed, vMin, vMax, format); + } + + public static boolean dragInt4(final String label, final int[] v, final float vSpeed, final int vMin, final int vMax, final String format, final int imGuiSliderFlags) { + return nDragInt4(label, v, vSpeed, vMin, vMax, format, imGuiSliderFlags); + } + + public static boolean dragInt4(final String label, final int[] v, final float vSpeed, final int vMin, final int vMax, final int imGuiSliderFlags) { + return nDragInt4(label, v, vSpeed, vMin, vMax, imGuiSliderFlags); + } + + private static native boolean nDragInt4(String obj_label, int[] obj_v); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragInt4(label, &v[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragInt4(String obj_label, int[] obj_v, float vSpeed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragInt4(label, &v[0], vSpeed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragInt4(String obj_label, int[] obj_v, float vSpeed, int vMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragInt4(label, &v[0], vSpeed, vMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragInt4(String obj_label, int[] obj_v, float vSpeed, int vMin, int vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragInt4(label, &v[0], vSpeed, vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nDragInt4(String obj_label, int[] obj_v, float vSpeed, int vMin, int vMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragInt4(label, &v[0], vSpeed, vMin, vMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragInt4(String obj_label, int[] obj_v, float vSpeed, int vMin, int vMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragInt4(label, &v[0], vSpeed, vMin, vMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragInt4(String obj_label, int[] obj_v, float vSpeed, int vMin, int vMax, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::DragInt4(label, &v[0], vSpeed, vMin, vMax, "%d", imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean dragIntRange2(final String label, final int[] vCurrentMin, final int[] vCurrentMax) { + return nDragIntRange2(label, vCurrentMin, vCurrentMax); + } + + public static boolean dragIntRange2(final String label, final int[] vCurrentMin, final int[] vCurrentMax, final float vSpeed) { + return nDragIntRange2(label, vCurrentMin, vCurrentMax, vSpeed); + } + + public static boolean dragIntRange2(final String label, final int[] vCurrentMin, final int[] vCurrentMax, final float vSpeed, final int vMin) { + return nDragIntRange2(label, vCurrentMin, vCurrentMax, vSpeed, vMin); + } + + public static boolean dragIntRange2(final String label, final int[] vCurrentMin, final int[] vCurrentMax, final float vSpeed, final int vMin, final int vMax) { + return nDragIntRange2(label, vCurrentMin, vCurrentMax, vSpeed, vMin, vMax); + } + + public static boolean dragIntRange2(final String label, final int[] vCurrentMin, final int[] vCurrentMax, final float vSpeed, final int vMin, final int vMax, final String format) { + return nDragIntRange2(label, vCurrentMin, vCurrentMax, vSpeed, vMin, vMax, format); + } + + public static boolean dragIntRange2(final String label, final int[] vCurrentMin, final int[] vCurrentMax, final float vSpeed, final int vMin, final int vMax, final String format, final String formatMax) { + return nDragIntRange2(label, vCurrentMin, vCurrentMax, vSpeed, vMin, vMax, format, formatMax); + } + + public static boolean dragIntRange2(final String label, final int[] vCurrentMin, final int[] vCurrentMax, final float vSpeed, final int vMin, final int vMax, final String format, final String formatMax, final int imGuiSliderFlags) { + return nDragIntRange2(label, vCurrentMin, vCurrentMax, vSpeed, vMin, vMax, format, formatMax, imGuiSliderFlags); + } + + private static native boolean nDragIntRange2(String obj_label, int[] obj_vCurrentMin, int[] obj_vCurrentMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto vCurrentMin = obj_vCurrentMin == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_vCurrentMin, JNI_FALSE); + auto vCurrentMax = obj_vCurrentMax == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_vCurrentMax, JNI_FALSE); + auto _result = ImGui::DragIntRange2(label, &vCurrentMin[0], &vCurrentMax[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (vCurrentMin != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMin, vCurrentMin, JNI_FALSE); + if (vCurrentMax != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMax, vCurrentMax, JNI_FALSE); + return _result; + */ + + private static native boolean nDragIntRange2(String obj_label, int[] obj_vCurrentMin, int[] obj_vCurrentMax, float vSpeed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto vCurrentMin = obj_vCurrentMin == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_vCurrentMin, JNI_FALSE); + auto vCurrentMax = obj_vCurrentMax == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_vCurrentMax, JNI_FALSE); + auto _result = ImGui::DragIntRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (vCurrentMin != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMin, vCurrentMin, JNI_FALSE); + if (vCurrentMax != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMax, vCurrentMax, JNI_FALSE); + return _result; + */ + + private static native boolean nDragIntRange2(String obj_label, int[] obj_vCurrentMin, int[] obj_vCurrentMax, float vSpeed, int vMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto vCurrentMin = obj_vCurrentMin == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_vCurrentMin, JNI_FALSE); + auto vCurrentMax = obj_vCurrentMax == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_vCurrentMax, JNI_FALSE); + auto _result = ImGui::DragIntRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed, vMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (vCurrentMin != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMin, vCurrentMin, JNI_FALSE); + if (vCurrentMax != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMax, vCurrentMax, JNI_FALSE); + return _result; + */ + + private static native boolean nDragIntRange2(String obj_label, int[] obj_vCurrentMin, int[] obj_vCurrentMax, float vSpeed, int vMin, int vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto vCurrentMin = obj_vCurrentMin == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_vCurrentMin, JNI_FALSE); + auto vCurrentMax = obj_vCurrentMax == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_vCurrentMax, JNI_FALSE); + auto _result = ImGui::DragIntRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed, vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (vCurrentMin != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMin, vCurrentMin, JNI_FALSE); + if (vCurrentMax != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMax, vCurrentMax, JNI_FALSE); + return _result; + */ + + private static native boolean nDragIntRange2(String obj_label, int[] obj_vCurrentMin, int[] obj_vCurrentMax, float vSpeed, int vMin, int vMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto vCurrentMin = obj_vCurrentMin == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_vCurrentMin, JNI_FALSE); + auto vCurrentMax = obj_vCurrentMax == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_vCurrentMax, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragIntRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed, vMin, vMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (vCurrentMin != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMin, vCurrentMin, JNI_FALSE); + if (vCurrentMax != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMax, vCurrentMax, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragIntRange2(String obj_label, int[] obj_vCurrentMin, int[] obj_vCurrentMax, float vSpeed, int vMin, int vMax, String obj_format, String obj_formatMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto vCurrentMin = obj_vCurrentMin == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_vCurrentMin, JNI_FALSE); + auto vCurrentMax = obj_vCurrentMax == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_vCurrentMax, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto formatMax = obj_formatMax == NULL ? NULL : (char*)env->GetStringUTFChars(obj_formatMax, JNI_FALSE); + auto _result = ImGui::DragIntRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed, vMin, vMax, format, formatMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (vCurrentMin != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMin, vCurrentMin, JNI_FALSE); + if (vCurrentMax != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMax, vCurrentMax, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + if (formatMax != NULL) env->ReleaseStringUTFChars(obj_formatMax, formatMax); + return _result; + */ + + private static native boolean nDragIntRange2(String obj_label, int[] obj_vCurrentMin, int[] obj_vCurrentMax, float vSpeed, int vMin, int vMax, String obj_format, String obj_formatMax, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto vCurrentMin = obj_vCurrentMin == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_vCurrentMin, JNI_FALSE); + auto vCurrentMax = obj_vCurrentMax == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_vCurrentMax, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto formatMax = obj_formatMax == NULL ? NULL : (char*)env->GetStringUTFChars(obj_formatMax, JNI_FALSE); + auto _result = ImGui::DragIntRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed, vMin, vMax, format, formatMax, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (vCurrentMin != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMin, vCurrentMin, JNI_FALSE); + if (vCurrentMax != NULL) env->ReleasePrimitiveArrayCritical(obj_vCurrentMax, vCurrentMax, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + if (formatMax != NULL) env->ReleaseStringUTFChars(obj_formatMax, formatMax); + return _result; + */ + + public static boolean dragScalar(final String label, final short[] pData) { + return nDragScalar(label, pData); + } + + public static boolean dragScalar(final String label, final short[] pData, final float vSpeed) { + return nDragScalar(label, pData, vSpeed); + } + + public static boolean dragScalar(final String label, final short[] pData, final float vSpeed, final short pMin) { + return nDragScalar(label, pData, vSpeed, pMin); + } + + public static boolean dragScalar(final String label, final short[] pData, final float vSpeed, final short pMin, final short pMax) { + return nDragScalar(label, pData, vSpeed, pMin, pMax); + } + + public static boolean dragScalar(final String label, final short[] pData, final float vSpeed, final short pMin, final short pMax, final String format) { + return nDragScalar(label, pData, vSpeed, pMin, pMax, format); + } + + public static boolean dragScalar(final String label, final short[] pData, final float vSpeed, final short pMin, final short pMax, final String format, final int imGuiSliderFlags) { + return nDragScalar(label, pData, vSpeed, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nDragScalar(String obj_label, short[] obj_pData); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_S16, &pData[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, short[] obj_pData, float vSpeed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_S16, &pData[0], vSpeed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, short[] obj_pData, float vSpeed, short pMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_S16, &pData[0], vSpeed, &pMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, short[] obj_pData, float vSpeed, short pMin, short pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_S16, &pData[0], vSpeed, &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, short[] obj_pData, float vSpeed, short pMin, short pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_S16, &pData[0], vSpeed, &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, short[] obj_pData, float vSpeed, short pMin, short pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_S16, &pData[0], vSpeed, &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean dragScalar(final String label, final int[] pData) { + return nDragScalar(label, pData); + } + + public static boolean dragScalar(final String label, final int[] pData, final float vSpeed) { + return nDragScalar(label, pData, vSpeed); + } + + public static boolean dragScalar(final String label, final int[] pData, final float vSpeed, final int pMin) { + return nDragScalar(label, pData, vSpeed, pMin); + } + + public static boolean dragScalar(final String label, final int[] pData, final float vSpeed, final int pMin, final int pMax) { + return nDragScalar(label, pData, vSpeed, pMin, pMax); + } + + public static boolean dragScalar(final String label, final int[] pData, final float vSpeed, final int pMin, final int pMax, final String format) { + return nDragScalar(label, pData, vSpeed, pMin, pMax, format); + } + + public static boolean dragScalar(final String label, final int[] pData, final float vSpeed, final int pMin, final int pMax, final String format, final int imGuiSliderFlags) { + return nDragScalar(label, pData, vSpeed, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nDragScalar(String obj_label, int[] obj_pData); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_S32, &pData[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, int[] obj_pData, float vSpeed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_S32, &pData[0], vSpeed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, int[] obj_pData, float vSpeed, int pMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_S32, &pData[0], vSpeed, &pMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, int[] obj_pData, float vSpeed, int pMin, int pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_S32, &pData[0], vSpeed, &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, int[] obj_pData, float vSpeed, int pMin, int pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_S32, &pData[0], vSpeed, &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, int[] obj_pData, float vSpeed, int pMin, int pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_S32, &pData[0], vSpeed, &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean dragScalar(final String label, final long[] pData) { + return nDragScalar(label, pData); + } + + public static boolean dragScalar(final String label, final long[] pData, final float vSpeed) { + return nDragScalar(label, pData, vSpeed); + } + + public static boolean dragScalar(final String label, final long[] pData, final float vSpeed, final long pMin) { + return nDragScalar(label, pData, vSpeed, pMin); + } + + public static boolean dragScalar(final String label, final long[] pData, final float vSpeed, final long pMin, final long pMax) { + return nDragScalar(label, pData, vSpeed, pMin, pMax); + } + + public static boolean dragScalar(final String label, final long[] pData, final float vSpeed, final long pMin, final long pMax, final String format) { + return nDragScalar(label, pData, vSpeed, pMin, pMax, format); + } + + public static boolean dragScalar(final String label, final long[] pData, final float vSpeed, final long pMin, final long pMax, final String format, final int imGuiSliderFlags) { + return nDragScalar(label, pData, vSpeed, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nDragScalar(String obj_label, long[] obj_pData); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_S64, &pData[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, long[] obj_pData, float vSpeed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_S64, &pData[0], vSpeed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, long[] obj_pData, float vSpeed, long pMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_S64, &pData[0], vSpeed, &pMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, long[] obj_pData, float vSpeed, long pMin, long pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_S64, &pData[0], vSpeed, &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, long[] obj_pData, float vSpeed, long pMin, long pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_S64, &pData[0], vSpeed, &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, long[] obj_pData, float vSpeed, long pMin, long pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_S64, &pData[0], vSpeed, &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean dragScalar(final String label, final float[] pData) { + return nDragScalar(label, pData); + } + + public static boolean dragScalar(final String label, final float[] pData, final float vSpeed) { + return nDragScalar(label, pData, vSpeed); + } + + public static boolean dragScalar(final String label, final float[] pData, final float vSpeed, final float pMin) { + return nDragScalar(label, pData, vSpeed, pMin); + } + + public static boolean dragScalar(final String label, final float[] pData, final float vSpeed, final float pMin, final float pMax) { + return nDragScalar(label, pData, vSpeed, pMin, pMax); + } + + public static boolean dragScalar(final String label, final float[] pData, final float vSpeed, final float pMin, final float pMax, final String format) { + return nDragScalar(label, pData, vSpeed, pMin, pMax, format); + } + + public static boolean dragScalar(final String label, final float[] pData, final float vSpeed, final float pMin, final float pMax, final String format, final int imGuiSliderFlags) { + return nDragScalar(label, pData, vSpeed, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nDragScalar(String obj_label, float[] obj_pData); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_Float, &pData[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, float[] obj_pData, float vSpeed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_Float, &pData[0], vSpeed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, float[] obj_pData, float vSpeed, float pMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_Float, &pData[0], vSpeed, &pMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, float[] obj_pData, float vSpeed, float pMin, float pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_Float, &pData[0], vSpeed, &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, float[] obj_pData, float vSpeed, float pMin, float pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_Float, &pData[0], vSpeed, &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, float[] obj_pData, float vSpeed, float pMin, float pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_Float, &pData[0], vSpeed, &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean dragScalar(final String label, final double[] pData) { + return nDragScalar(label, pData); + } + + public static boolean dragScalar(final String label, final double[] pData, final float vSpeed) { + return nDragScalar(label, pData, vSpeed); + } + + public static boolean dragScalar(final String label, final double[] pData, final float vSpeed, final double pMin) { + return nDragScalar(label, pData, vSpeed, pMin); + } + + public static boolean dragScalar(final String label, final double[] pData, final float vSpeed, final double pMin, final double pMax) { + return nDragScalar(label, pData, vSpeed, pMin, pMax); + } + + public static boolean dragScalar(final String label, final double[] pData, final float vSpeed, final double pMin, final double pMax, final String format) { + return nDragScalar(label, pData, vSpeed, pMin, pMax, format); + } + + public static boolean dragScalar(final String label, final double[] pData, final float vSpeed, final double pMin, final double pMax, final String format, final int imGuiSliderFlags) { + return nDragScalar(label, pData, vSpeed, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nDragScalar(String obj_label, double[] obj_pData); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_Double, &pData[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, double[] obj_pData, float vSpeed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_Double, &pData[0], vSpeed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, double[] obj_pData, float vSpeed, double pMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_Double, &pData[0], vSpeed, &pMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, double[] obj_pData, float vSpeed, double pMin, double pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_Double, &pData[0], vSpeed, &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, double[] obj_pData, float vSpeed, double pMin, double pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_Double, &pData[0], vSpeed, &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragScalar(String obj_label, double[] obj_pData, float vSpeed, double pMin, double pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragScalar(label, ImGuiDataType_Double, &pData[0], vSpeed, &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean dragScalarN(final String label, final short[] pData, final int components) { + return nDragScalarN(label, pData, components); + } + + public static boolean dragScalarN(final String label, final short[] pData, final int components, final float vSpeed) { + return nDragScalarN(label, pData, components, vSpeed); + } + + public static boolean dragScalarN(final String label, final short[] pData, final int components, final float vSpeed, final short pMin) { + return nDragScalarN(label, pData, components, vSpeed, pMin); + } + + public static boolean dragScalarN(final String label, final short[] pData, final int components, final float vSpeed, final short pMin, final short pMax) { + return nDragScalarN(label, pData, components, vSpeed, pMin, pMax); + } + + public static boolean dragScalarN(final String label, final short[] pData, final int components, final float vSpeed, final short pMin, final short pMax, final String format) { + return nDragScalarN(label, pData, components, vSpeed, pMin, pMax, format); + } + + public static boolean dragScalarN(final String label, final short[] pData, final int components, final float vSpeed, final short pMin, final short pMax, final String format, final int imGuiSliderFlags) { + return nDragScalarN(label, pData, components, vSpeed, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nDragScalarN(String obj_label, short[] obj_pData, int components); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_S16, &pData[0], components); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, short[] obj_pData, int components, float vSpeed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_S16, &pData[0], components, vSpeed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, short[] obj_pData, int components, float vSpeed, short pMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_S16, &pData[0], components, vSpeed, &pMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, short[] obj_pData, int components, float vSpeed, short pMin, short pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_S16, &pData[0], components, vSpeed, &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, short[] obj_pData, int components, float vSpeed, short pMin, short pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_S16, &pData[0], components, vSpeed, &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, short[] obj_pData, int components, float vSpeed, short pMin, short pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_S16, &pData[0], components, vSpeed, &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean dragScalarN(final String label, final int[] pData, final int components) { + return nDragScalarN(label, pData, components); + } + + public static boolean dragScalarN(final String label, final int[] pData, final int components, final float vSpeed) { + return nDragScalarN(label, pData, components, vSpeed); + } + + public static boolean dragScalarN(final String label, final int[] pData, final int components, final float vSpeed, final int pMin) { + return nDragScalarN(label, pData, components, vSpeed, pMin); + } + + public static boolean dragScalarN(final String label, final int[] pData, final int components, final float vSpeed, final int pMin, final int pMax) { + return nDragScalarN(label, pData, components, vSpeed, pMin, pMax); + } + + public static boolean dragScalarN(final String label, final int[] pData, final int components, final float vSpeed, final int pMin, final int pMax, final String format) { + return nDragScalarN(label, pData, components, vSpeed, pMin, pMax, format); + } + + public static boolean dragScalarN(final String label, final int[] pData, final int components, final float vSpeed, final int pMin, final int pMax, final String format, final int imGuiSliderFlags) { + return nDragScalarN(label, pData, components, vSpeed, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nDragScalarN(String obj_label, int[] obj_pData, int components); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_S32, &pData[0], components); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, int[] obj_pData, int components, float vSpeed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_S32, &pData[0], components, vSpeed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, int[] obj_pData, int components, float vSpeed, int pMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_S32, &pData[0], components, vSpeed, &pMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, int[] obj_pData, int components, float vSpeed, int pMin, int pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_S32, &pData[0], components, vSpeed, &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, int[] obj_pData, int components, float vSpeed, int pMin, int pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_S32, &pData[0], components, vSpeed, &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, int[] obj_pData, int components, float vSpeed, int pMin, int pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_S32, &pData[0], components, vSpeed, &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean dragScalarN(final String label, final long[] pData, final int components) { + return nDragScalarN(label, pData, components); + } + + public static boolean dragScalarN(final String label, final long[] pData, final int components, final float vSpeed) { + return nDragScalarN(label, pData, components, vSpeed); + } + + public static boolean dragScalarN(final String label, final long[] pData, final int components, final float vSpeed, final long pMin) { + return nDragScalarN(label, pData, components, vSpeed, pMin); + } + + public static boolean dragScalarN(final String label, final long[] pData, final int components, final float vSpeed, final long pMin, final long pMax) { + return nDragScalarN(label, pData, components, vSpeed, pMin, pMax); + } + + public static boolean dragScalarN(final String label, final long[] pData, final int components, final float vSpeed, final long pMin, final long pMax, final String format) { + return nDragScalarN(label, pData, components, vSpeed, pMin, pMax, format); + } + + public static boolean dragScalarN(final String label, final long[] pData, final int components, final float vSpeed, final long pMin, final long pMax, final String format, final int imGuiSliderFlags) { + return nDragScalarN(label, pData, components, vSpeed, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nDragScalarN(String obj_label, long[] obj_pData, int components); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_S64, &pData[0], components); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, long[] obj_pData, int components, float vSpeed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_S64, &pData[0], components, vSpeed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, long[] obj_pData, int components, float vSpeed, long pMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_S64, &pData[0], components, vSpeed, &pMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, long[] obj_pData, int components, float vSpeed, long pMin, long pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_S64, &pData[0], components, vSpeed, &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, long[] obj_pData, int components, float vSpeed, long pMin, long pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_S64, &pData[0], components, vSpeed, &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, long[] obj_pData, int components, float vSpeed, long pMin, long pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_S64, &pData[0], components, vSpeed, &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean dragScalarN(final String label, final float[] pData, final int components) { + return nDragScalarN(label, pData, components); + } + + public static boolean dragScalarN(final String label, final float[] pData, final int components, final float vSpeed) { + return nDragScalarN(label, pData, components, vSpeed); + } + + public static boolean dragScalarN(final String label, final float[] pData, final int components, final float vSpeed, final float pMin) { + return nDragScalarN(label, pData, components, vSpeed, pMin); + } + + public static boolean dragScalarN(final String label, final float[] pData, final int components, final float vSpeed, final float pMin, final float pMax) { + return nDragScalarN(label, pData, components, vSpeed, pMin, pMax); + } + + public static boolean dragScalarN(final String label, final float[] pData, final int components, final float vSpeed, final float pMin, final float pMax, final String format) { + return nDragScalarN(label, pData, components, vSpeed, pMin, pMax, format); + } + + public static boolean dragScalarN(final String label, final float[] pData, final int components, final float vSpeed, final float pMin, final float pMax, final String format, final int imGuiSliderFlags) { + return nDragScalarN(label, pData, components, vSpeed, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nDragScalarN(String obj_label, float[] obj_pData, int components); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_Float, &pData[0], components); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, float[] obj_pData, int components, float vSpeed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_Float, &pData[0], components, vSpeed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, float[] obj_pData, int components, float vSpeed, float pMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_Float, &pData[0], components, vSpeed, &pMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, float[] obj_pData, int components, float vSpeed, float pMin, float pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_Float, &pData[0], components, vSpeed, &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, float[] obj_pData, int components, float vSpeed, float pMin, float pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_Float, &pData[0], components, vSpeed, &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, float[] obj_pData, int components, float vSpeed, float pMin, float pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_Float, &pData[0], components, vSpeed, &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean dragScalarN(final String label, final double[] pData, final int components) { + return nDragScalarN(label, pData, components); + } + + public static boolean dragScalarN(final String label, final double[] pData, final int components, final float vSpeed) { + return nDragScalarN(label, pData, components, vSpeed); + } + + public static boolean dragScalarN(final String label, final double[] pData, final int components, final float vSpeed, final double pMin) { + return nDragScalarN(label, pData, components, vSpeed, pMin); + } + + public static boolean dragScalarN(final String label, final double[] pData, final int components, final float vSpeed, final double pMin, final double pMax) { + return nDragScalarN(label, pData, components, vSpeed, pMin, pMax); + } + + public static boolean dragScalarN(final String label, final double[] pData, final int components, final float vSpeed, final double pMin, final double pMax, final String format) { + return nDragScalarN(label, pData, components, vSpeed, pMin, pMax, format); + } + + public static boolean dragScalarN(final String label, final double[] pData, final int components, final float vSpeed, final double pMin, final double pMax, final String format, final int imGuiSliderFlags) { + return nDragScalarN(label, pData, components, vSpeed, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nDragScalarN(String obj_label, double[] obj_pData, int components); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_Double, &pData[0], components); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, double[] obj_pData, int components, float vSpeed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_Double, &pData[0], components, vSpeed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, double[] obj_pData, int components, float vSpeed, double pMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_Double, &pData[0], components, vSpeed, &pMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, double[] obj_pData, int components, float vSpeed, double pMin, double pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_Double, &pData[0], components, vSpeed, &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, double[] obj_pData, int components, float vSpeed, double pMin, double pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_Double, &pData[0], components, vSpeed, &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nDragScalarN(String obj_label, double[] obj_pData, int components, float vSpeed, double pMin, double pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::DragScalarN(label, ImGuiDataType_Double, &pData[0], components, vSpeed, &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + // Widgets: Regular Sliders + // - CTRL+Click on any slider to turn them into an input box. Manually input values aren't clamped and can go off-bounds. + // - Adjust format string to decorate the value with a prefix, a suffix, or adapt the editing and display precision e.g. "%.3f" -> 1.234; "%5.2f secs" -> 01.23 secs; "Biscuit: %.0f" -> Biscuit: 1; etc. + // - Format string may also be set to NULL or use the default format ("%f" or "%d"). + // - Legacy: Pre-1.78 there are SliderXXX() function signatures that takes a final `float power=1.0f' argument instead of the `ImGuiSliderFlags flags=0' argument. + // If you get a warning converting a float to ImGuiSliderFlags, read https://github.com/ocornut/imgui/issues/3361 + + /** + * Adjust format to decorate the value with a prefix or a suffix for in-slider labels or unit display. + */ + public static boolean sliderFloat(final String label, final float[] v, final float vMin, final float vMax) { + return nSliderFloat(label, v, vMin, vMax); + } + + /** + * Adjust format to decorate the value with a prefix or a suffix for in-slider labels or unit display. + */ + public static boolean sliderFloat(final String label, final float[] v, final float vMin, final float vMax, final String format) { + return nSliderFloat(label, v, vMin, vMax, format); + } + + /** + * Adjust format to decorate the value with a prefix or a suffix for in-slider labels or unit display. + */ + public static boolean sliderFloat(final String label, final float[] v, final float vMin, final float vMax, final String format, final int imGuiSliderFlags) { + return nSliderFloat(label, v, vMin, vMax, format, imGuiSliderFlags); + } + + /** + * Adjust format to decorate the value with a prefix or a suffix for in-slider labels or unit display. + */ + public static boolean sliderFloat(final String label, final float[] v, final float vMin, final float vMax, final int imGuiSliderFlags) { + return nSliderFloat(label, v, vMin, vMax, imGuiSliderFlags); + } + + private static native boolean nSliderFloat(String obj_label, float[] obj_v, float vMin, float vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::SliderFloat(label, &v[0], vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nSliderFloat(String obj_label, float[] obj_v, float vMin, float vMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderFloat(label, &v[0], vMin, vMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderFloat(String obj_label, float[] obj_v, float vMin, float vMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderFloat(label, &v[0], vMin, vMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderFloat(String obj_label, float[] obj_v, float vMin, float vMax, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::SliderFloat(label, &v[0], vMin, vMax, "%.3f", imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean sliderFloat2(final String label, final float[] v, final float vMin, final float vMax) { + return nSliderFloat2(label, v, vMin, vMax); + } + + public static boolean sliderFloat2(final String label, final float[] v, final float vMin, final float vMax, final String format) { + return nSliderFloat2(label, v, vMin, vMax, format); + } + + public static boolean sliderFloat2(final String label, final float[] v, final float vMin, final float vMax, final String format, final int imGuiSliderFlags) { + return nSliderFloat2(label, v, vMin, vMax, format, imGuiSliderFlags); + } + + public static boolean sliderFloat2(final String label, final float[] v, final float vMin, final float vMax, final int imGuiSliderFlags) { + return nSliderFloat2(label, v, vMin, vMax, imGuiSliderFlags); + } + + private static native boolean nSliderFloat2(String obj_label, float[] obj_v, float vMin, float vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::SliderFloat2(label, &v[0], vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nSliderFloat2(String obj_label, float[] obj_v, float vMin, float vMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderFloat2(label, &v[0], vMin, vMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderFloat2(String obj_label, float[] obj_v, float vMin, float vMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderFloat2(label, &v[0], vMin, vMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderFloat2(String obj_label, float[] obj_v, float vMin, float vMax, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::SliderFloat2(label, &v[0], vMin, vMax, "%.3f", imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean sliderFloat3(final String label, final float[] v, final float vMin, final float vMax) { + return nSliderFloat3(label, v, vMin, vMax); + } + + public static boolean sliderFloat3(final String label, final float[] v, final float vMin, final float vMax, final String format) { + return nSliderFloat3(label, v, vMin, vMax, format); + } + + public static boolean sliderFloat3(final String label, final float[] v, final float vMin, final float vMax, final String format, final int imGuiSliderFlags) { + return nSliderFloat3(label, v, vMin, vMax, format, imGuiSliderFlags); + } + + public static boolean sliderFloat3(final String label, final float[] v, final float vMin, final float vMax, final int imGuiSliderFlags) { + return nSliderFloat3(label, v, vMin, vMax, imGuiSliderFlags); + } + + private static native boolean nSliderFloat3(String obj_label, float[] obj_v, float vMin, float vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::SliderFloat3(label, &v[0], vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nSliderFloat3(String obj_label, float[] obj_v, float vMin, float vMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderFloat3(label, &v[0], vMin, vMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderFloat3(String obj_label, float[] obj_v, float vMin, float vMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderFloat3(label, &v[0], vMin, vMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderFloat3(String obj_label, float[] obj_v, float vMin, float vMax, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::SliderFloat3(label, &v[0], vMin, vMax, "%.3f", imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean sliderFloat4(final String label, final float[] v, final float vMin, final float vMax) { + return nSliderFloat4(label, v, vMin, vMax); + } + + public static boolean sliderFloat4(final String label, final float[] v, final float vMin, final float vMax, final String format) { + return nSliderFloat4(label, v, vMin, vMax, format); + } + + public static boolean sliderFloat4(final String label, final float[] v, final float vMin, final float vMax, final String format, final int imGuiSliderFlags) { + return nSliderFloat4(label, v, vMin, vMax, format, imGuiSliderFlags); + } + + public static boolean sliderFloat4(final String label, final float[] v, final float vMin, final float vMax, final int imGuiSliderFlags) { + return nSliderFloat4(label, v, vMin, vMax, imGuiSliderFlags); + } + + private static native boolean nSliderFloat4(String obj_label, float[] obj_v, float vMin, float vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::SliderFloat4(label, &v[0], vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nSliderFloat4(String obj_label, float[] obj_v, float vMin, float vMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderFloat4(label, &v[0], vMin, vMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderFloat4(String obj_label, float[] obj_v, float vMin, float vMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderFloat4(label, &v[0], vMin, vMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderFloat4(String obj_label, float[] obj_v, float vMin, float vMax, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::SliderFloat4(label, &v[0], vMin, vMax, "%.3f", imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean sliderAngle(final String label, final float[] vRad) { + return nSliderAngle(label, vRad); + } + + public static boolean sliderAngle(final String label, final float[] vRad, final float vDegreesMin) { + return nSliderAngle(label, vRad, vDegreesMin); + } + + public static boolean sliderAngle(final String label, final float[] vRad, final float vDegreesMin, final float vDegreesMax) { + return nSliderAngle(label, vRad, vDegreesMin, vDegreesMax); + } + + public static boolean sliderAngle(final String label, final float[] vRad, final float vDegreesMin, final float vDegreesMax, final String format) { + return nSliderAngle(label, vRad, vDegreesMin, vDegreesMax, format); + } + + public static boolean sliderAngle(final String label, final float[] vRad, final float vDegreesMin, final float vDegreesMax, final String format, final int imGuiSliderFlags) { + return nSliderAngle(label, vRad, vDegreesMin, vDegreesMax, format, imGuiSliderFlags); + } + + public static boolean sliderAngle(final String label, final float[] vRad, final float vDegreesMin, final float vDegreesMax, final int imGuiSliderFlags) { + return nSliderAngle(label, vRad, vDegreesMin, vDegreesMax, imGuiSliderFlags); + } + + private static native boolean nSliderAngle(String obj_label, float[] obj_vRad); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto vRad = obj_vRad == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_vRad, JNI_FALSE); + auto _result = ImGui::SliderAngle(label, &vRad[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (vRad != NULL) env->ReleasePrimitiveArrayCritical(obj_vRad, vRad, JNI_FALSE); + return _result; + */ + + private static native boolean nSliderAngle(String obj_label, float[] obj_vRad, float vDegreesMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto vRad = obj_vRad == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_vRad, JNI_FALSE); + auto _result = ImGui::SliderAngle(label, &vRad[0], vDegreesMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (vRad != NULL) env->ReleasePrimitiveArrayCritical(obj_vRad, vRad, JNI_FALSE); + return _result; + */ + + private static native boolean nSliderAngle(String obj_label, float[] obj_vRad, float vDegreesMin, float vDegreesMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto vRad = obj_vRad == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_vRad, JNI_FALSE); + auto _result = ImGui::SliderAngle(label, &vRad[0], vDegreesMin, vDegreesMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (vRad != NULL) env->ReleasePrimitiveArrayCritical(obj_vRad, vRad, JNI_FALSE); + return _result; + */ + + private static native boolean nSliderAngle(String obj_label, float[] obj_vRad, float vDegreesMin, float vDegreesMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto vRad = obj_vRad == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_vRad, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderAngle(label, &vRad[0], vDegreesMin, vDegreesMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (vRad != NULL) env->ReleasePrimitiveArrayCritical(obj_vRad, vRad, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderAngle(String obj_label, float[] obj_vRad, float vDegreesMin, float vDegreesMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto vRad = obj_vRad == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_vRad, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderAngle(label, &vRad[0], vDegreesMin, vDegreesMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (vRad != NULL) env->ReleasePrimitiveArrayCritical(obj_vRad, vRad, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderAngle(String obj_label, float[] obj_vRad, float vDegreesMin, float vDegreesMax, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto vRad = obj_vRad == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_vRad, JNI_FALSE); + auto _result = ImGui::SliderAngle(label, &vRad[0], vDegreesMin, vDegreesMax, "%.0f deg", imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (vRad != NULL) env->ReleasePrimitiveArrayCritical(obj_vRad, vRad, JNI_FALSE); + return _result; + */ + + public static boolean sliderInt(final String label, final int[] v, final int vMin, final int vMax) { + return nSliderInt(label, v, vMin, vMax); + } + + public static boolean sliderInt(final String label, final int[] v, final int vMin, final int vMax, final String format) { + return nSliderInt(label, v, vMin, vMax, format); + } + + public static boolean sliderInt(final String label, final int[] v, final int vMin, final int vMax, final String format, final int imGuiSliderFlags) { + return nSliderInt(label, v, vMin, vMax, format, imGuiSliderFlags); + } + + public static boolean sliderInt(final String label, final int[] v, final int vMin, final int vMax, final int imGuiSliderFlags) { + return nSliderInt(label, v, vMin, vMax, imGuiSliderFlags); + } + + private static native boolean nSliderInt(String obj_label, int[] obj_v, int vMin, int vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::SliderInt(label, &v[0], vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nSliderInt(String obj_label, int[] obj_v, int vMin, int vMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderInt(label, &v[0], vMin, vMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderInt(String obj_label, int[] obj_v, int vMin, int vMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderInt(label, &v[0], vMin, vMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderInt(String obj_label, int[] obj_v, int vMin, int vMax, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::SliderInt(label, &v[0], vMin, vMax, "%d", imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean sliderInt2(final String label, final int[] v, final int vMin, final int vMax) { + return nSliderInt2(label, v, vMin, vMax); + } + + public static boolean sliderInt2(final String label, final int[] v, final int vMin, final int vMax, final String format) { + return nSliderInt2(label, v, vMin, vMax, format); + } + + public static boolean sliderInt2(final String label, final int[] v, final int vMin, final int vMax, final String format, final int imGuiSliderFlags) { + return nSliderInt2(label, v, vMin, vMax, format, imGuiSliderFlags); + } + + public static boolean sliderInt2(final String label, final int[] v, final int vMin, final int vMax, final int imGuiSliderFlags) { + return nSliderInt2(label, v, vMin, vMax, imGuiSliderFlags); + } + + private static native boolean nSliderInt2(String obj_label, int[] obj_v, int vMin, int vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::SliderInt2(label, &v[0], vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nSliderInt2(String obj_label, int[] obj_v, int vMin, int vMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderInt2(label, &v[0], vMin, vMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderInt2(String obj_label, int[] obj_v, int vMin, int vMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderInt2(label, &v[0], vMin, vMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderInt2(String obj_label, int[] obj_v, int vMin, int vMax, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::SliderInt2(label, &v[0], vMin, vMax, "%d", imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean sliderInt3(final String label, final int[] v, final int vMin, final int vMax) { + return nSliderInt3(label, v, vMin, vMax); + } + + public static boolean sliderInt3(final String label, final int[] v, final int vMin, final int vMax, final String format) { + return nSliderInt3(label, v, vMin, vMax, format); + } + + public static boolean sliderInt3(final String label, final int[] v, final int vMin, final int vMax, final String format, final int imGuiSliderFlags) { + return nSliderInt3(label, v, vMin, vMax, format, imGuiSliderFlags); + } + + public static boolean sliderInt3(final String label, final int[] v, final int vMin, final int vMax, final int imGuiSliderFlags) { + return nSliderInt3(label, v, vMin, vMax, imGuiSliderFlags); + } + + private static native boolean nSliderInt3(String obj_label, int[] obj_v, int vMin, int vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::SliderInt3(label, &v[0], vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nSliderInt3(String obj_label, int[] obj_v, int vMin, int vMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderInt3(label, &v[0], vMin, vMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderInt3(String obj_label, int[] obj_v, int vMin, int vMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderInt3(label, &v[0], vMin, vMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderInt3(String obj_label, int[] obj_v, int vMin, int vMax, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::SliderInt3(label, &v[0], vMin, vMax, "%d", imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean sliderInt4(final String label, final int[] v, final int vMin, final int vMax) { + return nSliderInt4(label, v, vMin, vMax); + } + + public static boolean sliderInt4(final String label, final int[] v, final int vMin, final int vMax, final String format) { + return nSliderInt4(label, v, vMin, vMax, format); + } + + public static boolean sliderInt4(final String label, final int[] v, final int vMin, final int vMax, final String format, final int imGuiSliderFlags) { + return nSliderInt4(label, v, vMin, vMax, format, imGuiSliderFlags); + } + + public static boolean sliderInt4(final String label, final int[] v, final int vMin, final int vMax, final int imGuiSliderFlags) { + return nSliderInt4(label, v, vMin, vMax, imGuiSliderFlags); + } + + private static native boolean nSliderInt4(String obj_label, int[] obj_v, int vMin, int vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::SliderInt4(label, &v[0], vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nSliderInt4(String obj_label, int[] obj_v, int vMin, int vMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderInt4(label, &v[0], vMin, vMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderInt4(String obj_label, int[] obj_v, int vMin, int vMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderInt4(label, &v[0], vMin, vMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderInt4(String obj_label, int[] obj_v, int vMin, int vMax, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::SliderInt4(label, &v[0], vMin, vMax, "%d", imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean sliderScalar(final String label, final short[] pData, final short pMin, final short pMax) { + return nSliderScalar(label, pData, pMin, pMax); + } + + public static boolean sliderScalar(final String label, final short[] pData, final short pMin, final short pMax, final String format) { + return nSliderScalar(label, pData, pMin, pMax, format); + } + + public static boolean sliderScalar(final String label, final short[] pData, final short pMin, final short pMax, final String format, final int imGuiSliderFlags) { + return nSliderScalar(label, pData, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nSliderScalar(String obj_label, short[] obj_pData, short pMin, short pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::SliderScalar(label, ImGuiDataType_S16, &pData[0], &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nSliderScalar(String obj_label, short[] obj_pData, short pMin, short pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderScalar(label, ImGuiDataType_S16, &pData[0], &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderScalar(String obj_label, short[] obj_pData, short pMin, short pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderScalar(label, ImGuiDataType_S16, &pData[0], &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean sliderScalar(final String label, final int[] pData, final int pMin, final int pMax) { + return nSliderScalar(label, pData, pMin, pMax); + } + + public static boolean sliderScalar(final String label, final int[] pData, final int pMin, final int pMax, final String format) { + return nSliderScalar(label, pData, pMin, pMax, format); + } + + public static boolean sliderScalar(final String label, final int[] pData, final int pMin, final int pMax, final String format, final int imGuiSliderFlags) { + return nSliderScalar(label, pData, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nSliderScalar(String obj_label, int[] obj_pData, int pMin, int pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::SliderScalar(label, ImGuiDataType_S32, &pData[0], &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nSliderScalar(String obj_label, int[] obj_pData, int pMin, int pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderScalar(label, ImGuiDataType_S32, &pData[0], &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderScalar(String obj_label, int[] obj_pData, int pMin, int pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderScalar(label, ImGuiDataType_S32, &pData[0], &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean sliderScalar(final String label, final long[] pData, final long pMin, final long pMax) { + return nSliderScalar(label, pData, pMin, pMax); + } + + public static boolean sliderScalar(final String label, final long[] pData, final long pMin, final long pMax, final String format) { + return nSliderScalar(label, pData, pMin, pMax, format); + } + + public static boolean sliderScalar(final String label, final long[] pData, final long pMin, final long pMax, final String format, final int imGuiSliderFlags) { + return nSliderScalar(label, pData, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nSliderScalar(String obj_label, long[] obj_pData, long pMin, long pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::SliderScalar(label, ImGuiDataType_S64, &pData[0], &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nSliderScalar(String obj_label, long[] obj_pData, long pMin, long pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderScalar(label, ImGuiDataType_S64, &pData[0], &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderScalar(String obj_label, long[] obj_pData, long pMin, long pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderScalar(label, ImGuiDataType_S64, &pData[0], &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean sliderScalar(final String label, final float[] pData, final float pMin, final float pMax) { + return nSliderScalar(label, pData, pMin, pMax); + } + + public static boolean sliderScalar(final String label, final float[] pData, final float pMin, final float pMax, final String format) { + return nSliderScalar(label, pData, pMin, pMax, format); + } + + public static boolean sliderScalar(final String label, final float[] pData, final float pMin, final float pMax, final String format, final int imGuiSliderFlags) { + return nSliderScalar(label, pData, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nSliderScalar(String obj_label, float[] obj_pData, float pMin, float pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::SliderScalar(label, ImGuiDataType_Float, &pData[0], &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nSliderScalar(String obj_label, float[] obj_pData, float pMin, float pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderScalar(label, ImGuiDataType_Float, &pData[0], &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderScalar(String obj_label, float[] obj_pData, float pMin, float pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderScalar(label, ImGuiDataType_Float, &pData[0], &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean sliderScalar(final String label, final double[] pData, final double pMin, final double pMax) { + return nSliderScalar(label, pData, pMin, pMax); + } + + public static boolean sliderScalar(final String label, final double[] pData, final double pMin, final double pMax, final String format) { + return nSliderScalar(label, pData, pMin, pMax, format); + } + + public static boolean sliderScalar(final String label, final double[] pData, final double pMin, final double pMax, final String format, final int imGuiSliderFlags) { + return nSliderScalar(label, pData, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nSliderScalar(String obj_label, double[] obj_pData, double pMin, double pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::SliderScalar(label, ImGuiDataType_Double, &pData[0], &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nSliderScalar(String obj_label, double[] obj_pData, double pMin, double pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderScalar(label, ImGuiDataType_Double, &pData[0], &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderScalar(String obj_label, double[] obj_pData, double pMin, double pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderScalar(label, ImGuiDataType_Double, &pData[0], &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean sliderScalarN(final String label, final short[] pData, final int components, final short pMin, final short pMax) { + return nSliderScalarN(label, pData, components, pMin, pMax); + } + + public static boolean sliderScalarN(final String label, final short[] pData, final int components, final short pMin, final short pMax, final String format) { + return nSliderScalarN(label, pData, components, pMin, pMax, format); + } + + public static boolean sliderScalarN(final String label, final short[] pData, final int components, final short pMin, final short pMax, final String format, final int imGuiSliderFlags) { + return nSliderScalarN(label, pData, components, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nSliderScalarN(String obj_label, short[] obj_pData, int components, short pMin, short pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::SliderScalarN(label, ImGuiDataType_S16, &pData[0], components, &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nSliderScalarN(String obj_label, short[] obj_pData, int components, short pMin, short pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderScalarN(label, ImGuiDataType_S16, &pData[0], components, &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderScalarN(String obj_label, short[] obj_pData, int components, short pMin, short pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderScalarN(label, ImGuiDataType_S16, &pData[0], components, &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean sliderScalarN(final String label, final int[] pData, final int components, final int pMin, final int pMax) { + return nSliderScalarN(label, pData, components, pMin, pMax); + } + + public static boolean sliderScalarN(final String label, final int[] pData, final int components, final int pMin, final int pMax, final String format) { + return nSliderScalarN(label, pData, components, pMin, pMax, format); + } + + public static boolean sliderScalarN(final String label, final int[] pData, final int components, final int pMin, final int pMax, final String format, final int imGuiSliderFlags) { + return nSliderScalarN(label, pData, components, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nSliderScalarN(String obj_label, int[] obj_pData, int components, int pMin, int pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::SliderScalarN(label, ImGuiDataType_S32, &pData[0], components, &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nSliderScalarN(String obj_label, int[] obj_pData, int components, int pMin, int pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderScalarN(label, ImGuiDataType_S32, &pData[0], components, &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderScalarN(String obj_label, int[] obj_pData, int components, int pMin, int pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderScalarN(label, ImGuiDataType_S32, &pData[0], components, &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean sliderScalarN(final String label, final long[] pData, final int components, final long pMin, final long pMax) { + return nSliderScalarN(label, pData, components, pMin, pMax); + } + + public static boolean sliderScalarN(final String label, final long[] pData, final int components, final long pMin, final long pMax, final String format) { + return nSliderScalarN(label, pData, components, pMin, pMax, format); + } + + public static boolean sliderScalarN(final String label, final long[] pData, final int components, final long pMin, final long pMax, final String format, final int imGuiSliderFlags) { + return nSliderScalarN(label, pData, components, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nSliderScalarN(String obj_label, long[] obj_pData, int components, long pMin, long pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::SliderScalarN(label, ImGuiDataType_S64, &pData[0], components, &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nSliderScalarN(String obj_label, long[] obj_pData, int components, long pMin, long pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderScalarN(label, ImGuiDataType_S64, &pData[0], components, &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderScalarN(String obj_label, long[] obj_pData, int components, long pMin, long pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderScalarN(label, ImGuiDataType_S64, &pData[0], components, &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean sliderScalarN(final String label, final float[] pData, final int components, final float pMin, final float pMax) { + return nSliderScalarN(label, pData, components, pMin, pMax); + } + + public static boolean sliderScalarN(final String label, final float[] pData, final int components, final float pMin, final float pMax, final String format) { + return nSliderScalarN(label, pData, components, pMin, pMax, format); + } + + public static boolean sliderScalarN(final String label, final float[] pData, final int components, final float pMin, final float pMax, final String format, final int imGuiSliderFlags) { + return nSliderScalarN(label, pData, components, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nSliderScalarN(String obj_label, float[] obj_pData, int components, float pMin, float pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::SliderScalarN(label, ImGuiDataType_Float, &pData[0], components, &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nSliderScalarN(String obj_label, float[] obj_pData, int components, float pMin, float pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderScalarN(label, ImGuiDataType_Float, &pData[0], components, &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderScalarN(String obj_label, float[] obj_pData, int components, float pMin, float pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderScalarN(label, ImGuiDataType_Float, &pData[0], components, &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean sliderScalarN(final String label, final double[] pData, final int components, final double pMin, final double pMax) { + return nSliderScalarN(label, pData, components, pMin, pMax); + } + + public static boolean sliderScalarN(final String label, final double[] pData, final int components, final double pMin, final double pMax, final String format) { + return nSliderScalarN(label, pData, components, pMin, pMax, format); + } + + public static boolean sliderScalarN(final String label, final double[] pData, final int components, final double pMin, final double pMax, final String format, final int imGuiSliderFlags) { + return nSliderScalarN(label, pData, components, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nSliderScalarN(String obj_label, double[] obj_pData, int components, double pMin, double pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::SliderScalarN(label, ImGuiDataType_Double, &pData[0], components, &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nSliderScalarN(String obj_label, double[] obj_pData, int components, double pMin, double pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderScalarN(label, ImGuiDataType_Double, &pData[0], components, &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nSliderScalarN(String obj_label, double[] obj_pData, int components, double pMin, double pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::SliderScalarN(label, ImGuiDataType_Double, &pData[0], components, &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean vSliderFloat(final String label, final ImVec2 size, final float[] v, final float vMin, final float vMax) { + return nVSliderFloat(label, size.x, size.y, v, vMin, vMax); + } + + public static boolean vSliderFloat(final String label, final float sizeX, final float sizeY, final float[] v, final float vMin, final float vMax) { + return nVSliderFloat(label, sizeX, sizeY, v, vMin, vMax); + } + + public static boolean vSliderFloat(final String label, final ImVec2 size, final float[] v, final float vMin, final float vMax, final String format) { + return nVSliderFloat(label, size.x, size.y, v, vMin, vMax, format); + } + + public static boolean vSliderFloat(final String label, final float sizeX, final float sizeY, final float[] v, final float vMin, final float vMax, final String format) { + return nVSliderFloat(label, sizeX, sizeY, v, vMin, vMax, format); + } + + public static boolean vSliderFloat(final String label, final ImVec2 size, final float[] v, final float vMin, final float vMax, final String format, final int imGuiSliderFlags) { + return nVSliderFloat(label, size.x, size.y, v, vMin, vMax, format, imGuiSliderFlags); + } + + public static boolean vSliderFloat(final String label, final float sizeX, final float sizeY, final float[] v, final float vMin, final float vMax, final String format, final int imGuiSliderFlags) { + return nVSliderFloat(label, sizeX, sizeY, v, vMin, vMax, format, imGuiSliderFlags); + } + + public static boolean vSliderFloat(final String label, final ImVec2 size, final float[] v, final float vMin, final float vMax, final int imGuiSliderFlags) { + return nVSliderFloat(label, size.x, size.y, v, vMin, vMax, imGuiSliderFlags); + } + + public static boolean vSliderFloat(final String label, final float sizeX, final float sizeY, final float[] v, final float vMin, final float vMax, final int imGuiSliderFlags) { + return nVSliderFloat(label, sizeX, sizeY, v, vMin, vMax, imGuiSliderFlags); + } + + private static native boolean nVSliderFloat(String obj_label, float sizeX, float sizeY, float[] obj_v, float vMin, float vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderFloat(label, size, &v[0], vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nVSliderFloat(String obj_label, float sizeX, float sizeY, float[] obj_v, float vMin, float vMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderFloat(label, size, &v[0], vMin, vMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nVSliderFloat(String obj_label, float sizeX, float sizeY, float[] obj_v, float vMin, float vMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderFloat(label, size, &v[0], vMin, vMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nVSliderFloat(String obj_label, float sizeX, float sizeY, float[] obj_v, float vMin, float vMax, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderFloat(label, size, &v[0], vMin, vMax, "%.3f", imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean vSliderInt(final String label, final ImVec2 size, final int[] v, final int vMin, final int vMax) { + return nVSliderInt(label, size.x, size.y, v, vMin, vMax); + } + + public static boolean vSliderInt(final String label, final float sizeX, final float sizeY, final int[] v, final int vMin, final int vMax) { + return nVSliderInt(label, sizeX, sizeY, v, vMin, vMax); + } + + public static boolean vSliderInt(final String label, final ImVec2 size, final int[] v, final int vMin, final int vMax, final String format) { + return nVSliderInt(label, size.x, size.y, v, vMin, vMax, format); + } + + public static boolean vSliderInt(final String label, final float sizeX, final float sizeY, final int[] v, final int vMin, final int vMax, final String format) { + return nVSliderInt(label, sizeX, sizeY, v, vMin, vMax, format); + } + + public static boolean vSliderInt(final String label, final ImVec2 size, final int[] v, final int vMin, final int vMax, final String format, final int imGuiSliderFlags) { + return nVSliderInt(label, size.x, size.y, v, vMin, vMax, format, imGuiSliderFlags); + } + + public static boolean vSliderInt(final String label, final float sizeX, final float sizeY, final int[] v, final int vMin, final int vMax, final String format, final int imGuiSliderFlags) { + return nVSliderInt(label, sizeX, sizeY, v, vMin, vMax, format, imGuiSliderFlags); + } + + public static boolean vSliderInt(final String label, final ImVec2 size, final int[] v, final int vMin, final int vMax, final int imGuiSliderFlags) { + return nVSliderInt(label, size.x, size.y, v, vMin, vMax, imGuiSliderFlags); + } + + public static boolean vSliderInt(final String label, final float sizeX, final float sizeY, final int[] v, final int vMin, final int vMax, final int imGuiSliderFlags) { + return nVSliderInt(label, sizeX, sizeY, v, vMin, vMax, imGuiSliderFlags); + } + + private static native boolean nVSliderInt(String obj_label, float sizeX, float sizeY, int[] obj_v, int vMin, int vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderInt(label, size, &v[0], vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nVSliderInt(String obj_label, float sizeX, float sizeY, int[] obj_v, int vMin, int vMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderInt(label, size, &v[0], vMin, vMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nVSliderInt(String obj_label, float sizeX, float sizeY, int[] obj_v, int vMin, int vMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderInt(label, size, &v[0], vMin, vMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nVSliderInt(String obj_label, float sizeX, float sizeY, int[] obj_v, int vMin, int vMax, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderInt(label, size, &v[0], vMin, vMax, "%d", imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean vSliderScalar(final String label, final ImVec2 size, final short[] pData, final short pMin, final short pMax) { + return nVSliderScalar(label, size.x, size.y, pData, pMin, pMax); + } + + public static boolean vSliderScalar(final String label, final float sizeX, final float sizeY, final short[] pData, final short pMin, final short pMax) { + return nVSliderScalar(label, sizeX, sizeY, pData, pMin, pMax); + } + + public static boolean vSliderScalar(final String label, final ImVec2 size, final short[] pData, final short pMin, final short pMax, final String format) { + return nVSliderScalar(label, size.x, size.y, pData, pMin, pMax, format); + } + + public static boolean vSliderScalar(final String label, final float sizeX, final float sizeY, final short[] pData, final short pMin, final short pMax, final String format) { + return nVSliderScalar(label, sizeX, sizeY, pData, pMin, pMax, format); + } + + public static boolean vSliderScalar(final String label, final ImVec2 size, final short[] pData, final short pMin, final short pMax, final String format, final int imGuiSliderFlags) { + return nVSliderScalar(label, size.x, size.y, pData, pMin, pMax, format, imGuiSliderFlags); + } + + public static boolean vSliderScalar(final String label, final float sizeX, final float sizeY, final short[] pData, final short pMin, final short pMax, final String format, final int imGuiSliderFlags) { + return nVSliderScalar(label, sizeX, sizeY, pData, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nVSliderScalar(String obj_label, float sizeX, float sizeY, short[] obj_pData, short pMin, short pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderScalar(label, size, ImGuiDataType_S16, &pData[0], &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nVSliderScalar(String obj_label, float sizeX, float sizeY, short[] obj_pData, short pMin, short pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderScalar(label, size, ImGuiDataType_S16, &pData[0], &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nVSliderScalar(String obj_label, float sizeX, float sizeY, short[] obj_pData, short pMin, short pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderScalar(label, size, ImGuiDataType_S16, &pData[0], &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean vSliderScalar(final String label, final ImVec2 size, final int[] pData, final int pMin, final int pMax) { + return nVSliderScalar(label, size.x, size.y, pData, pMin, pMax); + } + + public static boolean vSliderScalar(final String label, final float sizeX, final float sizeY, final int[] pData, final int pMin, final int pMax) { + return nVSliderScalar(label, sizeX, sizeY, pData, pMin, pMax); + } + + public static boolean vSliderScalar(final String label, final ImVec2 size, final int[] pData, final int pMin, final int pMax, final String format) { + return nVSliderScalar(label, size.x, size.y, pData, pMin, pMax, format); + } + + public static boolean vSliderScalar(final String label, final float sizeX, final float sizeY, final int[] pData, final int pMin, final int pMax, final String format) { + return nVSliderScalar(label, sizeX, sizeY, pData, pMin, pMax, format); + } + + public static boolean vSliderScalar(final String label, final ImVec2 size, final int[] pData, final int pMin, final int pMax, final String format, final int imGuiSliderFlags) { + return nVSliderScalar(label, size.x, size.y, pData, pMin, pMax, format, imGuiSliderFlags); + } + + public static boolean vSliderScalar(final String label, final float sizeX, final float sizeY, final int[] pData, final int pMin, final int pMax, final String format, final int imGuiSliderFlags) { + return nVSliderScalar(label, sizeX, sizeY, pData, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nVSliderScalar(String obj_label, float sizeX, float sizeY, int[] obj_pData, int pMin, int pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderScalar(label, size, ImGuiDataType_S32, &pData[0], &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nVSliderScalar(String obj_label, float sizeX, float sizeY, int[] obj_pData, int pMin, int pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderScalar(label, size, ImGuiDataType_S32, &pData[0], &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nVSliderScalar(String obj_label, float sizeX, float sizeY, int[] obj_pData, int pMin, int pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderScalar(label, size, ImGuiDataType_S32, &pData[0], &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean vSliderScalar(final String label, final ImVec2 size, final long[] pData, final long pMin, final long pMax) { + return nVSliderScalar(label, size.x, size.y, pData, pMin, pMax); + } + + public static boolean vSliderScalar(final String label, final float sizeX, final float sizeY, final long[] pData, final long pMin, final long pMax) { + return nVSliderScalar(label, sizeX, sizeY, pData, pMin, pMax); + } + + public static boolean vSliderScalar(final String label, final ImVec2 size, final long[] pData, final long pMin, final long pMax, final String format) { + return nVSliderScalar(label, size.x, size.y, pData, pMin, pMax, format); + } + + public static boolean vSliderScalar(final String label, final float sizeX, final float sizeY, final long[] pData, final long pMin, final long pMax, final String format) { + return nVSliderScalar(label, sizeX, sizeY, pData, pMin, pMax, format); + } + + public static boolean vSliderScalar(final String label, final ImVec2 size, final long[] pData, final long pMin, final long pMax, final String format, final int imGuiSliderFlags) { + return nVSliderScalar(label, size.x, size.y, pData, pMin, pMax, format, imGuiSliderFlags); + } + + public static boolean vSliderScalar(final String label, final float sizeX, final float sizeY, final long[] pData, final long pMin, final long pMax, final String format, final int imGuiSliderFlags) { + return nVSliderScalar(label, sizeX, sizeY, pData, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nVSliderScalar(String obj_label, float sizeX, float sizeY, long[] obj_pData, long pMin, long pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderScalar(label, size, ImGuiDataType_S64, &pData[0], &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nVSliderScalar(String obj_label, float sizeX, float sizeY, long[] obj_pData, long pMin, long pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderScalar(label, size, ImGuiDataType_S64, &pData[0], &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nVSliderScalar(String obj_label, float sizeX, float sizeY, long[] obj_pData, long pMin, long pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderScalar(label, size, ImGuiDataType_S64, &pData[0], &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean vSliderScalar(final String label, final ImVec2 size, final float[] pData, final float pMin, final float pMax) { + return nVSliderScalar(label, size.x, size.y, pData, pMin, pMax); + } + + public static boolean vSliderScalar(final String label, final float sizeX, final float sizeY, final float[] pData, final float pMin, final float pMax) { + return nVSliderScalar(label, sizeX, sizeY, pData, pMin, pMax); + } + + public static boolean vSliderScalar(final String label, final ImVec2 size, final float[] pData, final float pMin, final float pMax, final String format) { + return nVSliderScalar(label, size.x, size.y, pData, pMin, pMax, format); + } + + public static boolean vSliderScalar(final String label, final float sizeX, final float sizeY, final float[] pData, final float pMin, final float pMax, final String format) { + return nVSliderScalar(label, sizeX, sizeY, pData, pMin, pMax, format); + } + + public static boolean vSliderScalar(final String label, final ImVec2 size, final float[] pData, final float pMin, final float pMax, final String format, final int imGuiSliderFlags) { + return nVSliderScalar(label, size.x, size.y, pData, pMin, pMax, format, imGuiSliderFlags); + } + + public static boolean vSliderScalar(final String label, final float sizeX, final float sizeY, final float[] pData, final float pMin, final float pMax, final String format, final int imGuiSliderFlags) { + return nVSliderScalar(label, sizeX, sizeY, pData, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nVSliderScalar(String obj_label, float sizeX, float sizeY, float[] obj_pData, float pMin, float pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderScalar(label, size, ImGuiDataType_Float, &pData[0], &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nVSliderScalar(String obj_label, float sizeX, float sizeY, float[] obj_pData, float pMin, float pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderScalar(label, size, ImGuiDataType_Float, &pData[0], &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nVSliderScalar(String obj_label, float sizeX, float sizeY, float[] obj_pData, float pMin, float pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderScalar(label, size, ImGuiDataType_Float, &pData[0], &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean vSliderScalar(final String label, final ImVec2 size, final double[] pData, final double pMin, final double pMax) { + return nVSliderScalar(label, size.x, size.y, pData, pMin, pMax); + } + + public static boolean vSliderScalar(final String label, final float sizeX, final float sizeY, final double[] pData, final double pMin, final double pMax) { + return nVSliderScalar(label, sizeX, sizeY, pData, pMin, pMax); + } + + public static boolean vSliderScalar(final String label, final ImVec2 size, final double[] pData, final double pMin, final double pMax, final String format) { + return nVSliderScalar(label, size.x, size.y, pData, pMin, pMax, format); + } + + public static boolean vSliderScalar(final String label, final float sizeX, final float sizeY, final double[] pData, final double pMin, final double pMax, final String format) { + return nVSliderScalar(label, sizeX, sizeY, pData, pMin, pMax, format); + } + + public static boolean vSliderScalar(final String label, final ImVec2 size, final double[] pData, final double pMin, final double pMax, final String format, final int imGuiSliderFlags) { + return nVSliderScalar(label, size.x, size.y, pData, pMin, pMax, format, imGuiSliderFlags); + } + + public static boolean vSliderScalar(final String label, final float sizeX, final float sizeY, final double[] pData, final double pMin, final double pMax, final String format, final int imGuiSliderFlags) { + return nVSliderScalar(label, sizeX, sizeY, pData, pMin, pMax, format, imGuiSliderFlags); + } + + private static native boolean nVSliderScalar(String obj_label, float sizeX, float sizeY, double[] obj_pData, double pMin, double pMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderScalar(label, size, ImGuiDataType_Double, &pData[0], &pMin, &pMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nVSliderScalar(String obj_label, float sizeX, float sizeY, double[] obj_pData, double pMin, double pMax, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderScalar(label, size, ImGuiDataType_Double, &pData[0], &pMin, &pMax, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nVSliderScalar(String obj_label, float sizeX, float sizeY, double[] obj_pData, double pMin, double pMax, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::VSliderScalar(label, size, ImGuiDataType_Double, &pData[0], &pMin, &pMax, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + // Widgets: Input with Keyboard + // - If you want to use InputText() with std::string or any custom dynamic string type, see misc/cpp/imgui_stdlib.h and comments in imgui_demo.cpp. + // - Most of the ImGuiInputTextFlags flags are only useful for InputText() and not for InputFloatX, InputIntX, InputDouble etc. + + /*JNI + jmethodID jImStringResizeInternalMID; + jmethodID jInputTextCallbackMID; + + jfieldID inputDataSizeID; + jfieldID inputDataIsDirtyID; + jfieldID inputDataIsResizedID; + + struct InputTextCallbackUserData { + JNIEnv* env; + jobject* imString; + int maxSize; + jbyteArray jResizedBuf; + char* resizedBuf; + jobject* textInputData; + char* allowedChars; + jobject* handler; + }; + + static int TextEditCallbackStub(ImGuiInputTextCallbackData* data) { + InputTextCallbackUserData* userData = (InputTextCallbackUserData*)data->UserData; + + if (data->EventFlag == ImGuiInputTextFlags_CallbackCharFilter) { + int allowedCharLength = strlen(userData->allowedChars); + if(allowedCharLength > 0) { + bool found = false; + for(int i = 0; i < allowedCharLength; i++) { + if(userData->allowedChars[i] == data->EventChar) { + found = true; + break; + } + } + return found ? 0 : 1; + } + } else if (data->EventFlag == ImGuiInputTextFlags_CallbackResize) { + int newSize = data->BufTextLen; + if (newSize >= userData->maxSize) { + JNIEnv* env = userData->env; + + jbyteArray newBufArr = (jbyteArray)env->CallObjectMethod(*userData->imString, jImStringResizeInternalMID, newSize); + char* newBuf = (char*)env->GetPrimitiveArrayCritical(newBufArr, 0); + + data->Buf = newBuf; + + userData->jResizedBuf = newBufArr; + userData->resizedBuf = newBuf; + } + } + + if (userData->handler != NULL) { + JNIEnv* env = userData->env; + env->CallObjectMethod(*userData->handler, jInputTextCallbackMID, data); + } + + return 0; + } + */ + + private static native void nInitInputTextData(); /* + jclass jInputDataClass = env->FindClass("imgui/type/ImString$InputData"); + inputDataSizeID = env->GetFieldID(jInputDataClass, "size", "I"); + inputDataIsDirtyID = env->GetFieldID(jInputDataClass, "isDirty", "Z"); + inputDataIsResizedID = env->GetFieldID(jInputDataClass, "isResized", "Z"); + + jclass jImString = env->FindClass("imgui/type/ImString"); + jImStringResizeInternalMID = env->GetMethodID(jImString, "resizeInternal", "(I)[B"); + + jclass jCallback = env->FindClass("imgui/callback/ImGuiInputTextCallback"); + jInputTextCallbackMID = env->GetMethodID(jCallback, "accept", "(J)V"); + */ + + public static boolean inputText(final String label, final ImString text) { + return preInputText(false, label, null, text); + } + + public static boolean inputText(final String label, final ImString text, final int imGuiInputTextFlags) { + return preInputText(false, label, null, text, 0, 0, imGuiInputTextFlags); + } + + public static boolean inputText(final String label, final ImString text, final int imGuiInputTextFlags, final ImGuiInputTextCallback callback) { + return preInputText(false, label, null, text, 0, 0, imGuiInputTextFlags, callback); + } + + public static boolean inputTextMultiline(final String label, final ImString text) { + return preInputText(true, label, null, text); + } + + public static boolean inputTextMultiline(final String label, final ImString text, final float width, final float height) { + return preInputText(true, label, null, text, width, height); + } + + public static boolean inputTextMultiline(final String label, final ImString text, final int imGuiInputTextFlags) { + return preInputText(true, label, null, text, 0, 0, imGuiInputTextFlags); + } + + public static boolean inputTextMultiline(final String label, final ImString text, final int imGuiInputTextFlags, final ImGuiInputTextCallback callback) { + return preInputText(true, label, null, text, 0, 0, imGuiInputTextFlags, callback); + } + + public static boolean inputTextMultiline(final String label, final ImString text, final float width, final float height, final int imGuiInputTextFlags) { + return preInputText(true, label, null, text, width, height, imGuiInputTextFlags); + } + + public static boolean inputTextMultiline(final String label, final ImString text, final float width, final float height, final int imGuiInputTextFlags, final ImGuiInputTextCallback callback) { + return preInputText(true, label, null, text, width, height, imGuiInputTextFlags, callback); + } + + public static boolean inputTextWithHint(final String label, final String hint, final ImString text) { + return preInputText(false, label, hint, text); + } + + public static boolean inputTextWithHint(final String label, final String hint, final ImString text, final int imGuiInputTextFlags) { + return preInputText(false, label, hint, text, 0, 0, imGuiInputTextFlags); + } + + public static boolean inputTextWithHint(final String label, final String hint, final ImString text, final int imGuiInputTextFlags, final ImGuiInputTextCallback callback) { + return preInputText(false, label, hint, text, 0, 0, imGuiInputTextFlags, callback); + } + + private static boolean preInputText(final boolean multiline, final String label, final String hint, final ImString text) { + return preInputText(multiline, label, hint, text, 0, 0); + } + + private static boolean preInputText(final boolean multiline, final String label, final String hint, final ImString text, final float width, final float height) { + return preInputText(multiline, label, hint, text, width, height, ImGuiInputTextFlags.None); + } + + private static boolean preInputText(final boolean multiline, final String label, final String hint, final ImString text, final float width, final float height, final int flags) { + return preInputText(multiline, label, hint, text, width, height, flags, null); + } + + private static boolean preInputText(final boolean multiline, final String label, final String hint, final ImString text, final float width, final float height, final int flagsV, final ImGuiInputTextCallback callback) { + final ImString.InputData inputData = text.inputData; + int flags = flagsV; + + if (inputData.isResizable) { + flags |= ImGuiInputTextFlags.CallbackResize; + } + + if (!inputData.allowedChars.isEmpty()) { + flags |= ImGuiInputTextFlags.CallbackCharFilter; + } + + String hintLabel = hint; + if (hintLabel == null) { + hintLabel = ""; + } + + return nInputText(multiline, hint != null, label, hintLabel, text, text.getData(), text.getData().length, width, height, flags, inputData, inputData.allowedChars, callback); + } + + private static native boolean nInputText(boolean multiline, boolean hint, String label, String hintLabel, ImString imString, byte[] buf, int maxSize, float width, float height, int flags, ImString.InputData textInputData, String allowedChars, ImGuiInputTextCallback callback); /* + InputTextCallbackUserData userData; + userData.imString = &imString; + userData.maxSize = maxSize; + userData.jResizedBuf = NULL; + userData.resizedBuf = NULL; + userData.textInputData = &textInputData; + userData.env = env; + userData.allowedChars = allowedChars; + userData.handler = callback != NULL ? &callback : NULL; + + bool valueChanged; + + if (multiline) { + valueChanged = ImGui::InputTextMultiline(label, buf, maxSize, ImVec2(width, height), flags, &TextEditCallbackStub, &userData); + } else if (hint) { + valueChanged = ImGui::InputTextWithHint(label, hintLabel, buf, maxSize, flags, &TextEditCallbackStub, &userData); + } else { + valueChanged = ImGui::InputText(label, buf, maxSize, flags, &TextEditCallbackStub, &userData); + } + + if (valueChanged) { + int size; + + if (userData.jResizedBuf != NULL) { + size = strlen(userData.resizedBuf); + env->ReleasePrimitiveArrayCritical(userData.jResizedBuf, userData.resizedBuf, 0); + } else { + size = strlen(buf); + } + + env->SetIntField(textInputData, inputDataSizeID, size); + env->SetBooleanField(textInputData, inputDataIsDirtyID, true); + } + + return valueChanged; + */ + + public static boolean inputFloat(final String label, final ImFloat v) { + return nInputFloat(label, v != null ? v.getData() : null); + } + + public static boolean inputFloat(final String label, final ImFloat v, final float step) { + return nInputFloat(label, v != null ? v.getData() : null, step); + } + + public static boolean inputFloat(final String label, final ImFloat v, final float step, final float stepFast) { + return nInputFloat(label, v != null ? v.getData() : null, step, stepFast); + } + + public static boolean inputFloat(final String label, final ImFloat v, final float step, final float stepFast, final String format) { + return nInputFloat(label, v != null ? v.getData() : null, step, stepFast, format); + } + + public static boolean inputFloat(final String label, final ImFloat v, final float step, final float stepFast, final String format, final int imGuiInputTextFlags) { + return nInputFloat(label, v != null ? v.getData() : null, step, stepFast, format, imGuiInputTextFlags); + } + + public static boolean inputFloat(final String label, final ImFloat v, final float step, final float stepFast, final int imGuiInputTextFlags) { + return nInputFloat(label, v != null ? v.getData() : null, step, stepFast, imGuiInputTextFlags); + } + + private static native boolean nInputFloat(String obj_label, float[] obj_v); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputFloat(label, (v != NULL ? &v[0] : NULL)); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nInputFloat(String obj_label, float[] obj_v, float step); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputFloat(label, (v != NULL ? &v[0] : NULL), step); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nInputFloat(String obj_label, float[] obj_v, float step, float stepFast); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputFloat(label, (v != NULL ? &v[0] : NULL), step, stepFast); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nInputFloat(String obj_label, float[] obj_v, float step, float stepFast, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputFloat(label, (v != NULL ? &v[0] : NULL), step, stepFast, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nInputFloat(String obj_label, float[] obj_v, float step, float stepFast, String obj_format, int imGuiInputTextFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputFloat(label, (v != NULL ? &v[0] : NULL), step, stepFast, format, imGuiInputTextFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nInputFloat(String obj_label, float[] obj_v, float step, float stepFast, int imGuiInputTextFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputFloat(label, (v != NULL ? &v[0] : NULL), step, stepFast, "%.3f", imGuiInputTextFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean inputFloat2(final String label, final float[] v) { + return nInputFloat2(label, v); + } + + public static boolean inputFloat2(final String label, final float[] v, final String format) { + return nInputFloat2(label, v, format); + } + + public static boolean inputFloat2(final String label, final float[] v, final String format, final int imGuiInputTextFlags) { + return nInputFloat2(label, v, format, imGuiInputTextFlags); + } + + public static boolean inputFloat2(final String label, final float[] v, final int imGuiInputTextFlags) { + return nInputFloat2(label, v, imGuiInputTextFlags); + } + + private static native boolean nInputFloat2(String obj_label, float[] obj_v); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputFloat2(label, &v[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nInputFloat2(String obj_label, float[] obj_v, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputFloat2(label, &v[0], format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nInputFloat2(String obj_label, float[] obj_v, String obj_format, int imGuiInputTextFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputFloat2(label, &v[0], format, imGuiInputTextFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nInputFloat2(String obj_label, float[] obj_v, int imGuiInputTextFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputFloat2(label, &v[0], "%.3f", imGuiInputTextFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean inputFloat3(final String label, final float[] v) { + return nInputFloat3(label, v); + } + + public static boolean inputFloat3(final String label, final float[] v, final String format) { + return nInputFloat3(label, v, format); + } + + public static boolean inputFloat3(final String label, final float[] v, final String format, final int imGuiInputTextFlags) { + return nInputFloat3(label, v, format, imGuiInputTextFlags); + } + + public static boolean inputFloat3(final String label, final float[] v, final int imGuiInputTextFlags) { + return nInputFloat3(label, v, imGuiInputTextFlags); + } + + private static native boolean nInputFloat3(String obj_label, float[] obj_v); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputFloat3(label, &v[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nInputFloat3(String obj_label, float[] obj_v, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputFloat3(label, &v[0], format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nInputFloat3(String obj_label, float[] obj_v, String obj_format, int imGuiInputTextFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputFloat3(label, &v[0], format, imGuiInputTextFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nInputFloat3(String obj_label, float[] obj_v, int imGuiInputTextFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputFloat3(label, &v[0], "%.3f", imGuiInputTextFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean inputFloat4(final String label, final float[] v) { + return nInputFloat4(label, v); + } + + public static boolean inputFloat4(final String label, final float[] v, final String format) { + return nInputFloat4(label, v, format); + } + + public static boolean inputFloat4(final String label, final float[] v, final String format, final int imGuiInputTextFlags) { + return nInputFloat4(label, v, format, imGuiInputTextFlags); + } + + public static boolean inputFloat4(final String label, final float[] v, final int imGuiInputTextFlags) { + return nInputFloat4(label, v, imGuiInputTextFlags); + } + + private static native boolean nInputFloat4(String obj_label, float[] obj_v); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputFloat4(label, &v[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nInputFloat4(String obj_label, float[] obj_v, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputFloat4(label, &v[0], format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nInputFloat4(String obj_label, float[] obj_v, String obj_format, int imGuiInputTextFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputFloat4(label, &v[0], format, imGuiInputTextFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nInputFloat4(String obj_label, float[] obj_v, int imGuiInputTextFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputFloat4(label, &v[0], "%.3f", imGuiInputTextFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean inputInt(final String label, final ImInt v) { + return nInputInt(label, v != null ? v.getData() : null); + } + + public static boolean inputInt(final String label, final ImInt v, final int step) { + return nInputInt(label, v != null ? v.getData() : null, step); + } + + public static boolean inputInt(final String label, final ImInt v, final int step, final int stepFast) { + return nInputInt(label, v != null ? v.getData() : null, step, stepFast); + } + + public static boolean inputInt(final String label, final ImInt v, final int step, final int stepFast, final int imGuiInputTextFlags) { + return nInputInt(label, v != null ? v.getData() : null, step, stepFast, imGuiInputTextFlags); + } + + private static native boolean nInputInt(String obj_label, int[] obj_v); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputInt(label, (v != NULL ? &v[0] : NULL)); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nInputInt(String obj_label, int[] obj_v, int step); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputInt(label, (v != NULL ? &v[0] : NULL), step); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nInputInt(String obj_label, int[] obj_v, int step, int stepFast); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputInt(label, (v != NULL ? &v[0] : NULL), step, stepFast); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nInputInt(String obj_label, int[] obj_v, int step, int stepFast, int imGuiInputTextFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputInt(label, (v != NULL ? &v[0] : NULL), step, stepFast, imGuiInputTextFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean inputInt2(final String label, final int[] v) { + return nInputInt2(label, v); + } + + public static boolean inputInt2(final String label, final int[] v, final int imGuiInputTextFlags) { + return nInputInt2(label, v, imGuiInputTextFlags); + } + + private static native boolean nInputInt2(String obj_label, int[] obj_v); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputInt2(label, &v[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nInputInt2(String obj_label, int[] obj_v, int imGuiInputTextFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputInt2(label, &v[0], imGuiInputTextFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean inputInt3(final String label, final int[] v) { + return nInputInt3(label, v); + } + + public static boolean inputInt3(final String label, final int[] v, final int imGuiInputTextFlags) { + return nInputInt3(label, v, imGuiInputTextFlags); + } + + private static native boolean nInputInt3(String obj_label, int[] obj_v); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputInt3(label, &v[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nInputInt3(String obj_label, int[] obj_v, int imGuiInputTextFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputInt3(label, &v[0], imGuiInputTextFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean inputInt4(final String label, final int[] v) { + return nInputInt4(label, v); + } + + public static boolean inputInt4(final String label, final int[] v, final int imGuiInputTextFlags) { + return nInputInt4(label, v, imGuiInputTextFlags); + } + + private static native boolean nInputInt4(String obj_label, int[] obj_v); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputInt4(label, &v[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nInputInt4(String obj_label, int[] obj_v, int imGuiInputTextFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputInt4(label, &v[0], imGuiInputTextFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean inputDouble(final String label, final ImDouble v) { + return nInputDouble(label, v != null ? v.getData() : null); + } + + public static boolean inputDouble(final String label, final ImDouble v, final double step) { + return nInputDouble(label, v != null ? v.getData() : null, step); + } + + public static boolean inputDouble(final String label, final ImDouble v, final double step, final double stepFast) { + return nInputDouble(label, v != null ? v.getData() : null, step, stepFast); + } + + public static boolean inputDouble(final String label, final ImDouble v, final double step, final double stepFast, final String format) { + return nInputDouble(label, v != null ? v.getData() : null, step, stepFast, format); + } + + public static boolean inputDouble(final String label, final ImDouble v, final double step, final double stepFast, final String format, final int imGuiInputTextFlags) { + return nInputDouble(label, v != null ? v.getData() : null, step, stepFast, format, imGuiInputTextFlags); + } + + public static boolean inputDouble(final String label, final ImDouble v, final double step, final double stepFast, final int imGuiInputTextFlags) { + return nInputDouble(label, v != null ? v.getData() : null, step, stepFast, imGuiInputTextFlags); + } + + private static native boolean nInputDouble(String obj_label, double[] obj_v); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputDouble(label, (v != NULL ? &v[0] : NULL)); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nInputDouble(String obj_label, double[] obj_v, double step); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputDouble(label, (v != NULL ? &v[0] : NULL), step); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nInputDouble(String obj_label, double[] obj_v, double step, double stepFast); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputDouble(label, (v != NULL ? &v[0] : NULL), step, stepFast); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + private static native boolean nInputDouble(String obj_label, double[] obj_v, double step, double stepFast, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputDouble(label, (v != NULL ? &v[0] : NULL), step, stepFast, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nInputDouble(String obj_label, double[] obj_v, double step, double stepFast, String obj_format, int imGuiInputTextFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputDouble(label, (v != NULL ? &v[0] : NULL), step, stepFast, format, imGuiInputTextFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nInputDouble(String obj_label, double[] obj_v, double step, double stepFast, int imGuiInputTextFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto v = obj_v == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_v, JNI_FALSE); + auto _result = ImGui::InputDouble(label, (v != NULL ? &v[0] : NULL), step, stepFast, "%.6f", imGuiInputTextFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (v != NULL) env->ReleasePrimitiveArrayCritical(obj_v, v, JNI_FALSE); + return _result; + */ + + public static boolean inputScalar(final String label, final short[] pData) { + return nInputScalar(label, pData); + } + + public static boolean inputScalar(final String label, final short[] pData, final short pStep) { + return nInputScalar(label, pData, pStep); + } + + public static boolean inputScalar(final String label, final short[] pData, final short pStep, final short pStepFast) { + return nInputScalar(label, pData, pStep, pStepFast); + } + + public static boolean inputScalar(final String label, final short[] pData, final short pStep, final short pStepFast, final String format) { + return nInputScalar(label, pData, pStep, pStepFast, format); + } + + public static boolean inputScalar(final String label, final short[] pData, final short pStep, final short pStepFast, final String format, final int imGuiSliderFlags) { + return nInputScalar(label, pData, pStep, pStepFast, format, imGuiSliderFlags); + } + + private static native boolean nInputScalar(String obj_label, short[] obj_pData); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_S16, &pData[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalar(String obj_label, short[] obj_pData, short pStep); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_S16, &pData[0], &pStep); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalar(String obj_label, short[] obj_pData, short pStep, short pStepFast); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_S16, &pData[0], &pStep, &pStepFast); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalar(String obj_label, short[] obj_pData, short pStep, short pStepFast, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_S16, &pData[0], &pStep, &pStepFast, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nInputScalar(String obj_label, short[] obj_pData, short pStep, short pStepFast, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_S16, &pData[0], &pStep, &pStepFast, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean inputScalar(final String label, final int[] pData) { + return nInputScalar(label, pData); + } + + public static boolean inputScalar(final String label, final int[] pData, final int pStep) { + return nInputScalar(label, pData, pStep); + } + + public static boolean inputScalar(final String label, final int[] pData, final int pStep, final int pStepFast) { + return nInputScalar(label, pData, pStep, pStepFast); + } + + public static boolean inputScalar(final String label, final int[] pData, final int pStep, final int pStepFast, final String format) { + return nInputScalar(label, pData, pStep, pStepFast, format); + } + + public static boolean inputScalar(final String label, final int[] pData, final int pStep, final int pStepFast, final String format, final int imGuiSliderFlags) { + return nInputScalar(label, pData, pStep, pStepFast, format, imGuiSliderFlags); + } + + private static native boolean nInputScalar(String obj_label, int[] obj_pData); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_S32, &pData[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalar(String obj_label, int[] obj_pData, int pStep); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_S32, &pData[0], &pStep); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalar(String obj_label, int[] obj_pData, int pStep, int pStepFast); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_S32, &pData[0], &pStep, &pStepFast); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalar(String obj_label, int[] obj_pData, int pStep, int pStepFast, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_S32, &pData[0], &pStep, &pStepFast, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nInputScalar(String obj_label, int[] obj_pData, int pStep, int pStepFast, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_S32, &pData[0], &pStep, &pStepFast, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean inputScalar(final String label, final long[] pData) { + return nInputScalar(label, pData); + } + + public static boolean inputScalar(final String label, final long[] pData, final long pStep) { + return nInputScalar(label, pData, pStep); + } + + public static boolean inputScalar(final String label, final long[] pData, final long pStep, final long pStepFast) { + return nInputScalar(label, pData, pStep, pStepFast); + } + + public static boolean inputScalar(final String label, final long[] pData, final long pStep, final long pStepFast, final String format) { + return nInputScalar(label, pData, pStep, pStepFast, format); + } + + public static boolean inputScalar(final String label, final long[] pData, final long pStep, final long pStepFast, final String format, final int imGuiSliderFlags) { + return nInputScalar(label, pData, pStep, pStepFast, format, imGuiSliderFlags); + } + + private static native boolean nInputScalar(String obj_label, long[] obj_pData); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_S64, &pData[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalar(String obj_label, long[] obj_pData, long pStep); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_S64, &pData[0], &pStep); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalar(String obj_label, long[] obj_pData, long pStep, long pStepFast); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_S64, &pData[0], &pStep, &pStepFast); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalar(String obj_label, long[] obj_pData, long pStep, long pStepFast, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_S64, &pData[0], &pStep, &pStepFast, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nInputScalar(String obj_label, long[] obj_pData, long pStep, long pStepFast, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_S64, &pData[0], &pStep, &pStepFast, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean inputScalar(final String label, final float[] pData) { + return nInputScalar(label, pData); + } + + public static boolean inputScalar(final String label, final float[] pData, final float pStep) { + return nInputScalar(label, pData, pStep); + } + + public static boolean inputScalar(final String label, final float[] pData, final float pStep, final float pStepFast) { + return nInputScalar(label, pData, pStep, pStepFast); + } + + public static boolean inputScalar(final String label, final float[] pData, final float pStep, final float pStepFast, final String format) { + return nInputScalar(label, pData, pStep, pStepFast, format); + } + + public static boolean inputScalar(final String label, final float[] pData, final float pStep, final float pStepFast, final String format, final int imGuiSliderFlags) { + return nInputScalar(label, pData, pStep, pStepFast, format, imGuiSliderFlags); + } + + private static native boolean nInputScalar(String obj_label, float[] obj_pData); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_Float, &pData[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalar(String obj_label, float[] obj_pData, float pStep); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_Float, &pData[0], &pStep); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalar(String obj_label, float[] obj_pData, float pStep, float pStepFast); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_Float, &pData[0], &pStep, &pStepFast); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalar(String obj_label, float[] obj_pData, float pStep, float pStepFast, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_Float, &pData[0], &pStep, &pStepFast, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nInputScalar(String obj_label, float[] obj_pData, float pStep, float pStepFast, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_Float, &pData[0], &pStep, &pStepFast, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean inputScalar(final String label, final double[] pData) { + return nInputScalar(label, pData); + } + + public static boolean inputScalar(final String label, final double[] pData, final double pStep) { + return nInputScalar(label, pData, pStep); + } + + public static boolean inputScalar(final String label, final double[] pData, final double pStep, final double pStepFast) { + return nInputScalar(label, pData, pStep, pStepFast); + } + + public static boolean inputScalar(final String label, final double[] pData, final double pStep, final double pStepFast, final String format) { + return nInputScalar(label, pData, pStep, pStepFast, format); + } + + public static boolean inputScalar(final String label, final double[] pData, final double pStep, final double pStepFast, final String format, final int imGuiSliderFlags) { + return nInputScalar(label, pData, pStep, pStepFast, format, imGuiSliderFlags); + } + + private static native boolean nInputScalar(String obj_label, double[] obj_pData); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_Double, &pData[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalar(String obj_label, double[] obj_pData, double pStep); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_Double, &pData[0], &pStep); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalar(String obj_label, double[] obj_pData, double pStep, double pStepFast); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_Double, &pData[0], &pStep, &pStepFast); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalar(String obj_label, double[] obj_pData, double pStep, double pStepFast, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_Double, &pData[0], &pStep, &pStepFast, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nInputScalar(String obj_label, double[] obj_pData, double pStep, double pStepFast, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputScalar(label, ImGuiDataType_Double, &pData[0], &pStep, &pStepFast, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean inputScalarN(final String label, final short[] pData, final int components) { + return nInputScalarN(label, pData, components); + } + + public static boolean inputScalarN(final String label, final short[] pData, final int components, final short pStep) { + return nInputScalarN(label, pData, components, pStep); + } + + public static boolean inputScalarN(final String label, final short[] pData, final int components, final short pStep, final short pStepFast) { + return nInputScalarN(label, pData, components, pStep, pStepFast); + } + + public static boolean inputScalarN(final String label, final short[] pData, final int components, final short pStep, final short pStepFast, final String format) { + return nInputScalarN(label, pData, components, pStep, pStepFast, format); + } + + public static boolean inputScalarN(final String label, final short[] pData, final int components, final short pStep, final short pStepFast, final String format, final int imGuiSliderFlags) { + return nInputScalarN(label, pData, components, pStep, pStepFast, format, imGuiSliderFlags); + } + + private static native boolean nInputScalarN(String obj_label, short[] obj_pData, int components); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_S16, &pData[0], components); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalarN(String obj_label, short[] obj_pData, int components, short pStep); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_S16, &pData[0], components, &pStep); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalarN(String obj_label, short[] obj_pData, int components, short pStep, short pStepFast); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_S16, &pData[0], components, &pStep, &pStepFast); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalarN(String obj_label, short[] obj_pData, int components, short pStep, short pStepFast, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_S16, &pData[0], components, &pStep, &pStepFast, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nInputScalarN(String obj_label, short[] obj_pData, int components, short pStep, short pStepFast, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_S16, &pData[0], components, &pStep, &pStepFast, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean inputScalarN(final String label, final int[] pData, final int components) { + return nInputScalarN(label, pData, components); + } + + public static boolean inputScalarN(final String label, final int[] pData, final int components, final int pStep) { + return nInputScalarN(label, pData, components, pStep); + } + + public static boolean inputScalarN(final String label, final int[] pData, final int components, final int pStep, final int pStepFast) { + return nInputScalarN(label, pData, components, pStep, pStepFast); + } + + public static boolean inputScalarN(final String label, final int[] pData, final int components, final int pStep, final int pStepFast, final String format) { + return nInputScalarN(label, pData, components, pStep, pStepFast, format); + } + + public static boolean inputScalarN(final String label, final int[] pData, final int components, final int pStep, final int pStepFast, final String format, final int imGuiSliderFlags) { + return nInputScalarN(label, pData, components, pStep, pStepFast, format, imGuiSliderFlags); + } + + private static native boolean nInputScalarN(String obj_label, int[] obj_pData, int components); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_S32, &pData[0], components); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalarN(String obj_label, int[] obj_pData, int components, int pStep); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_S32, &pData[0], components, &pStep); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalarN(String obj_label, int[] obj_pData, int components, int pStep, int pStepFast); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_S32, &pData[0], components, &pStep, &pStepFast); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalarN(String obj_label, int[] obj_pData, int components, int pStep, int pStepFast, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_S32, &pData[0], components, &pStep, &pStepFast, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nInputScalarN(String obj_label, int[] obj_pData, int components, int pStep, int pStepFast, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_S32, &pData[0], components, &pStep, &pStepFast, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean inputScalarN(final String label, final long[] pData, final int components) { + return nInputScalarN(label, pData, components); + } + + public static boolean inputScalarN(final String label, final long[] pData, final int components, final long pStep) { + return nInputScalarN(label, pData, components, pStep); + } + + public static boolean inputScalarN(final String label, final long[] pData, final int components, final long pStep, final long pStepFast) { + return nInputScalarN(label, pData, components, pStep, pStepFast); + } + + public static boolean inputScalarN(final String label, final long[] pData, final int components, final long pStep, final long pStepFast, final String format) { + return nInputScalarN(label, pData, components, pStep, pStepFast, format); + } + + public static boolean inputScalarN(final String label, final long[] pData, final int components, final long pStep, final long pStepFast, final String format, final int imGuiSliderFlags) { + return nInputScalarN(label, pData, components, pStep, pStepFast, format, imGuiSliderFlags); + } + + private static native boolean nInputScalarN(String obj_label, long[] obj_pData, int components); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_S64, &pData[0], components); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalarN(String obj_label, long[] obj_pData, int components, long pStep); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_S64, &pData[0], components, &pStep); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalarN(String obj_label, long[] obj_pData, int components, long pStep, long pStepFast); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_S64, &pData[0], components, &pStep, &pStepFast); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalarN(String obj_label, long[] obj_pData, int components, long pStep, long pStepFast, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_S64, &pData[0], components, &pStep, &pStepFast, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nInputScalarN(String obj_label, long[] obj_pData, int components, long pStep, long pStepFast, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_S64, &pData[0], components, &pStep, &pStepFast, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean inputScalarN(final String label, final float[] pData, final int components) { + return nInputScalarN(label, pData, components); + } + + public static boolean inputScalarN(final String label, final float[] pData, final int components, final float pStep) { + return nInputScalarN(label, pData, components, pStep); + } + + public static boolean inputScalarN(final String label, final float[] pData, final int components, final float pStep, final float pStepFast) { + return nInputScalarN(label, pData, components, pStep, pStepFast); + } + + public static boolean inputScalarN(final String label, final float[] pData, final int components, final float pStep, final float pStepFast, final String format) { + return nInputScalarN(label, pData, components, pStep, pStepFast, format); + } + + public static boolean inputScalarN(final String label, final float[] pData, final int components, final float pStep, final float pStepFast, final String format, final int imGuiSliderFlags) { + return nInputScalarN(label, pData, components, pStep, pStepFast, format, imGuiSliderFlags); + } + + private static native boolean nInputScalarN(String obj_label, float[] obj_pData, int components); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_Float, &pData[0], components); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalarN(String obj_label, float[] obj_pData, int components, float pStep); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_Float, &pData[0], components, &pStep); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalarN(String obj_label, float[] obj_pData, int components, float pStep, float pStepFast); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_Float, &pData[0], components, &pStep, &pStepFast); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalarN(String obj_label, float[] obj_pData, int components, float pStep, float pStepFast, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_Float, &pData[0], components, &pStep, &pStepFast, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nInputScalarN(String obj_label, float[] obj_pData, int components, float pStep, float pStepFast, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_Float, &pData[0], components, &pStep, &pStepFast, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + public static boolean inputScalarN(final String label, final double[] pData, final int components) { + return nInputScalarN(label, pData, components); + } + + public static boolean inputScalarN(final String label, final double[] pData, final int components, final double pStep) { + return nInputScalarN(label, pData, components, pStep); + } + + public static boolean inputScalarN(final String label, final double[] pData, final int components, final double pStep, final double pStepFast) { + return nInputScalarN(label, pData, components, pStep, pStepFast); + } + + public static boolean inputScalarN(final String label, final double[] pData, final int components, final double pStep, final double pStepFast, final String format) { + return nInputScalarN(label, pData, components, pStep, pStepFast, format); + } + + public static boolean inputScalarN(final String label, final double[] pData, final int components, final double pStep, final double pStepFast, final String format, final int imGuiSliderFlags) { + return nInputScalarN(label, pData, components, pStep, pStepFast, format, imGuiSliderFlags); + } + + private static native boolean nInputScalarN(String obj_label, double[] obj_pData, int components); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_Double, &pData[0], components); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalarN(String obj_label, double[] obj_pData, int components, double pStep); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_Double, &pData[0], components, &pStep); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalarN(String obj_label, double[] obj_pData, int components, double pStep, double pStepFast); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_Double, &pData[0], components, &pStep, &pStepFast); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + return _result; + */ + + private static native boolean nInputScalarN(String obj_label, double[] obj_pData, int components, double pStep, double pStepFast, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_Double, &pData[0], components, &pStep, &pStepFast, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nInputScalarN(String obj_label, double[] obj_pData, int components, double pStep, double pStepFast, String obj_format, int imGuiSliderFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pData = obj_pData == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pData, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGui::InputScalarN(label, ImGuiDataType_Double, &pData[0], components, &pStep, &pStepFast, format, imGuiSliderFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pData != NULL) env->ReleasePrimitiveArrayCritical(obj_pData, pData, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + // Widgets: Color Editor/Picker (tip: the ColorEdit* functions have a little color square that can be left-clicked to open a picker, and right-clicked to open an option menu.) + // - Note that in C++ a 'float v[X]' function argument is the _same_ as 'float* v', the array syntax is just a way to document the number of elements that are expected to be accessible. + // - You can pass the address of a first float element out of a contiguous structure, e.g. &myvector.x + + public static boolean colorEdit3(final String label, final float[] col) { + return nColorEdit3(label, col); + } + + public static boolean colorEdit3(final String label, final float[] col, final int imGuiColorEditFlags) { + return nColorEdit3(label, col, imGuiColorEditFlags); + } + + private static native boolean nColorEdit3(String obj_label, float[] obj_col); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto col = obj_col == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_col, JNI_FALSE); + auto _result = ImGui::ColorEdit3(label, &col[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (col != NULL) env->ReleasePrimitiveArrayCritical(obj_col, col, JNI_FALSE); + return _result; + */ + + private static native boolean nColorEdit3(String obj_label, float[] obj_col, int imGuiColorEditFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto col = obj_col == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_col, JNI_FALSE); + auto _result = ImGui::ColorEdit3(label, &col[0], imGuiColorEditFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (col != NULL) env->ReleasePrimitiveArrayCritical(obj_col, col, JNI_FALSE); + return _result; + */ + + public static boolean colorEdit4(final String label, final float[] col) { + return nColorEdit4(label, col); + } + + public static boolean colorEdit4(final String label, final float[] col, final int imGuiColorEditFlags) { + return nColorEdit4(label, col, imGuiColorEditFlags); + } + + private static native boolean nColorEdit4(String obj_label, float[] obj_col); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto col = obj_col == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_col, JNI_FALSE); + auto _result = ImGui::ColorEdit4(label, &col[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (col != NULL) env->ReleasePrimitiveArrayCritical(obj_col, col, JNI_FALSE); + return _result; + */ + + private static native boolean nColorEdit4(String obj_label, float[] obj_col, int imGuiColorEditFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto col = obj_col == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_col, JNI_FALSE); + auto _result = ImGui::ColorEdit4(label, &col[0], imGuiColorEditFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (col != NULL) env->ReleasePrimitiveArrayCritical(obj_col, col, JNI_FALSE); + return _result; + */ + + public static boolean colorPicker3(final String label, final float[] col) { + return nColorPicker3(label, col); + } + + public static boolean colorPicker3(final String label, final float[] col, final int imGuiColorEditFlags) { + return nColorPicker3(label, col, imGuiColorEditFlags); + } + + private static native boolean nColorPicker3(String obj_label, float[] obj_col); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto col = obj_col == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_col, JNI_FALSE); + auto _result = ImGui::ColorPicker3(label, &col[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (col != NULL) env->ReleasePrimitiveArrayCritical(obj_col, col, JNI_FALSE); + return _result; + */ + + private static native boolean nColorPicker3(String obj_label, float[] obj_col, int imGuiColorEditFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto col = obj_col == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_col, JNI_FALSE); + auto _result = ImGui::ColorPicker3(label, &col[0], imGuiColorEditFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (col != NULL) env->ReleasePrimitiveArrayCritical(obj_col, col, JNI_FALSE); + return _result; + */ + + public static boolean colorPicker4(final String label, final float[] col) { + return nColorPicker4(label, col); + } + + public static boolean colorPicker4(final String label, final float[] col, final int imGuiColorEditFlags) { + return nColorPicker4(label, col, imGuiColorEditFlags); + } + + public static boolean colorPicker4(final String label, final float[] col, final int imGuiColorEditFlags, final float[] refCol) { + return nColorPicker4(label, col, imGuiColorEditFlags, refCol); + } + + public static boolean colorPicker4(final String label, final float[] col, final float[] refCol) { + return nColorPicker4(label, col, refCol); + } + + private static native boolean nColorPicker4(String obj_label, float[] obj_col); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto col = obj_col == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_col, JNI_FALSE); + auto _result = ImGui::ColorPicker4(label, &col[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (col != NULL) env->ReleasePrimitiveArrayCritical(obj_col, col, JNI_FALSE); + return _result; + */ + + private static native boolean nColorPicker4(String obj_label, float[] obj_col, int imGuiColorEditFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto col = obj_col == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_col, JNI_FALSE); + auto _result = ImGui::ColorPicker4(label, &col[0], imGuiColorEditFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (col != NULL) env->ReleasePrimitiveArrayCritical(obj_col, col, JNI_FALSE); + return _result; + */ + + private static native boolean nColorPicker4(String obj_label, float[] obj_col, int imGuiColorEditFlags, float[] obj_refCol); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto col = obj_col == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_col, JNI_FALSE); + auto refCol = obj_refCol == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_refCol, JNI_FALSE); + auto _result = ImGui::ColorPicker4(label, &col[0], imGuiColorEditFlags, &refCol[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (col != NULL) env->ReleasePrimitiveArrayCritical(obj_col, col, JNI_FALSE); + if (refCol != NULL) env->ReleasePrimitiveArrayCritical(obj_refCol, refCol, JNI_FALSE); + return _result; + */ + + private static native boolean nColorPicker4(String obj_label, float[] obj_col, float[] obj_refCol); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto col = obj_col == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_col, JNI_FALSE); + auto refCol = obj_refCol == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_refCol, JNI_FALSE); + auto _result = ImGui::ColorPicker4(label, &col[0], 0, &refCol[0]); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (col != NULL) env->ReleasePrimitiveArrayCritical(obj_col, col, JNI_FALSE); + if (refCol != NULL) env->ReleasePrimitiveArrayCritical(obj_refCol, refCol, JNI_FALSE); + return _result; + */ + + /** + * Display a colored square/button, hover for details, return true when pressed. + */ + public static boolean colorButton(final String descId, final ImVec4 col) { + return nColorButton(descId, col.x, col.y, col.z, col.w); + } + + /** + * Display a colored square/button, hover for details, return true when pressed. + */ + public static boolean colorButton(final String descId, final float colX, final float colY, final float colZ, final float colW) { + return nColorButton(descId, colX, colY, colZ, colW); + } + + /** + * Display a colored square/button, hover for details, return true when pressed. + */ + public static boolean colorButton(final String descId, final ImVec4 col, final int imGuiColorEditFlags) { + return nColorButton(descId, col.x, col.y, col.z, col.w, imGuiColorEditFlags); + } + + /** + * Display a colored square/button, hover for details, return true when pressed. + */ + public static boolean colorButton(final String descId, final float colX, final float colY, final float colZ, final float colW, final int imGuiColorEditFlags) { + return nColorButton(descId, colX, colY, colZ, colW, imGuiColorEditFlags); + } + + /** + * Display a colored square/button, hover for details, return true when pressed. + */ + public static boolean colorButton(final String descId, final ImVec4 col, final int imGuiColorEditFlags, final ImVec2 size) { + return nColorButton(descId, col.x, col.y, col.z, col.w, imGuiColorEditFlags, size.x, size.y); + } + + /** + * Display a colored square/button, hover for details, return true when pressed. + */ + public static boolean colorButton(final String descId, final float colX, final float colY, final float colZ, final float colW, final int imGuiColorEditFlags, final float sizeX, final float sizeY) { + return nColorButton(descId, colX, colY, colZ, colW, imGuiColorEditFlags, sizeX, sizeY); + } + + /** + * Display a colored square/button, hover for details, return true when pressed. + */ + public static boolean colorButton(final String descId, final ImVec4 col, final ImVec2 size) { + return nColorButton(descId, col.x, col.y, col.z, col.w, size.x, size.y); + } + + /** + * Display a colored square/button, hover for details, return true when pressed. + */ + public static boolean colorButton(final String descId, final float colX, final float colY, final float colZ, final float colW, final float sizeX, final float sizeY) { + return nColorButton(descId, colX, colY, colZ, colW, sizeX, sizeY); + } + + private static native boolean nColorButton(String obj_descId, float colX, float colY, float colZ, float colW); /*MANUAL + auto descId = obj_descId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_descId, JNI_FALSE); + ImVec4 col = ImVec4(colX, colY, colZ, colW); + auto _result = ImGui::ColorButton(descId, col); + if (descId != NULL) env->ReleaseStringUTFChars(obj_descId, descId); + return _result; + */ + + private static native boolean nColorButton(String obj_descId, float colX, float colY, float colZ, float colW, int imGuiColorEditFlags); /*MANUAL + auto descId = obj_descId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_descId, JNI_FALSE); + ImVec4 col = ImVec4(colX, colY, colZ, colW); + auto _result = ImGui::ColorButton(descId, col, imGuiColorEditFlags); + if (descId != NULL) env->ReleaseStringUTFChars(obj_descId, descId); + return _result; + */ + + private static native boolean nColorButton(String obj_descId, float colX, float colY, float colZ, float colW, int imGuiColorEditFlags, float sizeX, float sizeY); /*MANUAL + auto descId = obj_descId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_descId, JNI_FALSE); + ImVec4 col = ImVec4(colX, colY, colZ, colW); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::ColorButton(descId, col, imGuiColorEditFlags, size); + if (descId != NULL) env->ReleaseStringUTFChars(obj_descId, descId); + return _result; + */ + + private static native boolean nColorButton(String obj_descId, float colX, float colY, float colZ, float colW, float sizeX, float sizeY); /*MANUAL + auto descId = obj_descId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_descId, JNI_FALSE); + ImVec4 col = ImVec4(colX, colY, colZ, colW); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::ColorButton(descId, col, 0, size); + if (descId != NULL) env->ReleaseStringUTFChars(obj_descId, descId); + return _result; + */ + + /** + * Initialize current options (generally on application startup) if you want to select a default format, + * picker type, etc. User will be able to change many settings, unless you pass the _NoOptions flag to your calls. + */ + public static void setColorEditOptions(final int imGuiColorEditFlags) { + nSetColorEditOptions(imGuiColorEditFlags); + } + + private static native void nSetColorEditOptions(int imGuiColorEditFlags); /* + ImGui::SetColorEditOptions(imGuiColorEditFlags); + */ + + // Widgets: Trees + // - TreeNode functions return true when the node is open, in which case you need to also call TreePop() when you are finished displaying the tree node contents. + + /** + * Helper variation to easily decorelate the id from the displayed string. + * Read the FAQ about why and how to use ID. to align arbitrary text at the same level as a TreeNode() you can use Bullet(). + */ + public static boolean treeNode(final String strId, final String label) { + return nTreeNode(strId, label); + } + + private static native boolean nTreeNode(String obj_strId, String obj_label); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::TreeNode(strId, label, NULL); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + public static boolean treeNode(final long ptrId, final String label) { + return nTreeNode(ptrId, label); + } + + private static native boolean nTreeNode(long ptrId, String obj_label); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::TreeNode((void*)ptrId, label, NULL); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + public static boolean treeNodeEx(final String strId, final int imGuiTreeNodeFlags, final String label) { + return nTreeNodeEx(strId, imGuiTreeNodeFlags, label); + } + + private static native boolean nTreeNodeEx(String obj_strId, int imGuiTreeNodeFlags, String obj_label); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::TreeNodeEx(strId, imGuiTreeNodeFlags, label, NULL); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + public static boolean treeNodeEx(final long ptrId, final int imGuiTreeNodeFlags, final String label) { + return nTreeNodeEx(ptrId, imGuiTreeNodeFlags, label); + } + + private static native boolean nTreeNodeEx(long ptrId, int imGuiTreeNodeFlags, String obj_label); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::TreeNodeEx((void*)ptrId, imGuiTreeNodeFlags, label, NULL); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + /** + * ~ Indent()+PushId(). Already called by TreeNode() when returning true, but you can call TreePush/TreePop yourself if desired. + */ + public static void treePush(final String strId) { + nTreePush(strId); + } + + private static native void nTreePush(String strId); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + ImGui::TreePush(strId); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + */ + + /** + * ~ Indent()+PushId(). Already called by TreeNode() when returning true, but you can call TreePush/TreePop yourself if desired. + */ + public static void treePush() { + nTreePush(); + } + + /** + * ~ Indent()+PushId(). Already called by TreeNode() when returning true, but you can call TreePush/TreePop yourself if desired. + */ + public static void treePush(final long ptrId) { + nTreePush(ptrId); + } + + private static native void nTreePush(); /* + ImGui::TreePush(); + */ + + private static native void nTreePush(long ptrId); /* + ImGui::TreePush((void*)ptrId); + */ + + /** + * ~ Unindent()+PopId() + */ + public static void treePop() { + nTreePop(); + } + + private static native void nTreePop(); /* + ImGui::TreePop(); + */ + + /** + * Horizontal distance preceding label when using TreeNode*() or Bullet() == (g.FontSize + style.FramePadding.x*2) for a regular unframed TreeNode + */ + public static float getTreeNodeToLabelSpacing() { + return nGetTreeNodeToLabelSpacing(); + } + + private static native float nGetTreeNodeToLabelSpacing(); /* + return ImGui::GetTreeNodeToLabelSpacing(); + */ + + /** + * If returning 'true' the header is open. doesn't indent nor push on ID stack. user doesn't have to call TreePop(). + */ + public static boolean collapsingHeader(final String label) { + return nCollapsingHeader(label); + } + + /** + * If returning 'true' the header is open. doesn't indent nor push on ID stack. user doesn't have to call TreePop(). + */ + public static boolean collapsingHeader(final String label, final int imGuiTreeNodeFlags) { + return nCollapsingHeader(label, imGuiTreeNodeFlags); + } + + private static native boolean nCollapsingHeader(String obj_label); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::CollapsingHeader(label); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + private static native boolean nCollapsingHeader(String obj_label, int imGuiTreeNodeFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::CollapsingHeader(label, imGuiTreeNodeFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + /** + * When 'p_visible != NULL': if '*p_visible==true' display an additional small close button on upper right of the header which will set the bool + * to false when clicked, if '*p_visible==false' don't display the header. + */ + static boolean collapsingHeader(final String label, final ImBoolean pVisible) { + return nCollapsingHeader(label, pVisible != null ? pVisible.getData() : null); + } + + /** + * When 'p_visible != NULL': if '*p_visible==true' display an additional small close button on upper right of the header which will set the bool + * to false when clicked, if '*p_visible==false' don't display the header. + */ + static boolean collapsingHeader(final String label, final ImBoolean pVisible, final int imGuiTreeNodeFlags) { + return nCollapsingHeader(label, pVisible != null ? pVisible.getData() : null, imGuiTreeNodeFlags); + } + + private static native boolean nCollapsingHeader(String obj_label, boolean[] obj_pVisible); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pVisible = obj_pVisible == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_pVisible, JNI_FALSE); + auto _result = ImGui::CollapsingHeader(label, (pVisible != NULL ? &pVisible[0] : NULL)); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pVisible != NULL) env->ReleasePrimitiveArrayCritical(obj_pVisible, pVisible, JNI_FALSE); + return _result; + */ + + private static native boolean nCollapsingHeader(String obj_label, boolean[] obj_pVisible, int imGuiTreeNodeFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pVisible = obj_pVisible == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_pVisible, JNI_FALSE); + auto _result = ImGui::CollapsingHeader(label, (pVisible != NULL ? &pVisible[0] : NULL), imGuiTreeNodeFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pVisible != NULL) env->ReleasePrimitiveArrayCritical(obj_pVisible, pVisible, JNI_FALSE); + return _result; + */ + + /** + * Set next TreeNode/CollapsingHeader open state. + */ + public static void setNextItemOpen(final boolean isOpen) { + nSetNextItemOpen(isOpen); + } + + /** + * Set next TreeNode/CollapsingHeader open state. + */ + public static void setNextItemOpen(final boolean isOpen, final int cond) { + nSetNextItemOpen(isOpen, cond); + } + + private static native void nSetNextItemOpen(boolean isOpen); /* + ImGui::SetNextItemOpen(isOpen); + */ + + private static native void nSetNextItemOpen(boolean isOpen, int cond); /* + ImGui::SetNextItemOpen(isOpen, cond); + */ + + // Widgets: Selectables + // - A selectable highlights when hovered, and can display another color when selected. + // - Neighbors selectable extend their highlight bounds in order to leave no gap between them. + + public static boolean selectable(final String label) { + return nSelectable(label); + } + + public static boolean selectable(final String label, final boolean selected) { + return nSelectable(label, selected); + } + + public static boolean selectable(final String label, final boolean selected, final int imGuiSelectableFlags) { + return nSelectable(label, selected, imGuiSelectableFlags); + } + + public static boolean selectable(final String label, final boolean selected, final int imGuiSelectableFlags, final ImVec2 size) { + return nSelectable(label, selected, imGuiSelectableFlags, size.x, size.y); + } + + public static boolean selectable(final String label, final boolean selected, final int imGuiSelectableFlags, final float sizeX, final float sizeY) { + return nSelectable(label, selected, imGuiSelectableFlags, sizeX, sizeY); + } + + public static boolean selectable(final String label, final int imGuiSelectableFlags, final ImVec2 size) { + return nSelectable(label, imGuiSelectableFlags, size.x, size.y); + } + + public static boolean selectable(final String label, final int imGuiSelectableFlags, final float sizeX, final float sizeY) { + return nSelectable(label, imGuiSelectableFlags, sizeX, sizeY); + } + + public static boolean selectable(final String label, final ImVec2 size) { + return nSelectable(label, size.x, size.y); + } + + public static boolean selectable(final String label, final float sizeX, final float sizeY) { + return nSelectable(label, sizeX, sizeY); + } + + public static boolean selectable(final String label, final boolean selected, final ImVec2 size) { + return nSelectable(label, selected, size.x, size.y); + } + + public static boolean selectable(final String label, final boolean selected, final float sizeX, final float sizeY) { + return nSelectable(label, selected, sizeX, sizeY); + } + + private static native boolean nSelectable(String obj_label); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::Selectable(label); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + private static native boolean nSelectable(String obj_label, boolean selected); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::Selectable(label, selected); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + private static native boolean nSelectable(String obj_label, boolean selected, int imGuiSelectableFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::Selectable(label, selected, imGuiSelectableFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + private static native boolean nSelectable(String obj_label, boolean selected, int imGuiSelectableFlags, float sizeX, float sizeY); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::Selectable(label, selected, imGuiSelectableFlags, size); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + private static native boolean nSelectable(String obj_label, int imGuiSelectableFlags, float sizeX, float sizeY); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::Selectable(label, false, imGuiSelectableFlags, size); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + private static native boolean nSelectable(String obj_label, float sizeX, float sizeY); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::Selectable(label, false, 0, size); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + private static native boolean nSelectable(String obj_label, boolean selected, float sizeX, float sizeY); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::Selectable(label, selected, 0, size); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + public static boolean selectable(final String label, final ImBoolean pSelected) { + return nSelectable(label, pSelected != null ? pSelected.getData() : null); + } + + public static boolean selectable(final String label, final ImBoolean pSelected, final int imGuiSelectableFlags) { + return nSelectable(label, pSelected != null ? pSelected.getData() : null, imGuiSelectableFlags); + } + + public static boolean selectable(final String label, final ImBoolean pSelected, final int imGuiSelectableFlags, final ImVec2 size) { + return nSelectable(label, pSelected != null ? pSelected.getData() : null, imGuiSelectableFlags, size.x, size.y); + } + + public static boolean selectable(final String label, final ImBoolean pSelected, final int imGuiSelectableFlags, final float sizeX, final float sizeY) { + return nSelectable(label, pSelected != null ? pSelected.getData() : null, imGuiSelectableFlags, sizeX, sizeY); + } + + public static boolean selectable(final String label, final ImBoolean pSelected, final ImVec2 size) { + return nSelectable(label, pSelected != null ? pSelected.getData() : null, size.x, size.y); + } + + public static boolean selectable(final String label, final ImBoolean pSelected, final float sizeX, final float sizeY) { + return nSelectable(label, pSelected != null ? pSelected.getData() : null, sizeX, sizeY); + } + + private static native boolean nSelectable(String obj_label, boolean[] obj_pSelected); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pSelected = obj_pSelected == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_pSelected, JNI_FALSE); + auto _result = ImGui::Selectable(label, (pSelected != NULL ? &pSelected[0] : NULL)); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pSelected != NULL) env->ReleasePrimitiveArrayCritical(obj_pSelected, pSelected, JNI_FALSE); + return _result; + */ + + private static native boolean nSelectable(String obj_label, boolean[] obj_pSelected, int imGuiSelectableFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pSelected = obj_pSelected == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_pSelected, JNI_FALSE); + auto _result = ImGui::Selectable(label, (pSelected != NULL ? &pSelected[0] : NULL), imGuiSelectableFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pSelected != NULL) env->ReleasePrimitiveArrayCritical(obj_pSelected, pSelected, JNI_FALSE); + return _result; + */ + + private static native boolean nSelectable(String obj_label, boolean[] obj_pSelected, int imGuiSelectableFlags, float sizeX, float sizeY); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pSelected = obj_pSelected == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_pSelected, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::Selectable(label, (pSelected != NULL ? &pSelected[0] : NULL), imGuiSelectableFlags, size); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pSelected != NULL) env->ReleasePrimitiveArrayCritical(obj_pSelected, pSelected, JNI_FALSE); + return _result; + */ + + private static native boolean nSelectable(String obj_label, boolean[] obj_pSelected, float sizeX, float sizeY); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pSelected = obj_pSelected == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_pSelected, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::Selectable(label, (pSelected != NULL ? &pSelected[0] : NULL), 0, size); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pSelected != NULL) env->ReleasePrimitiveArrayCritical(obj_pSelected, pSelected, JNI_FALSE); + return _result; + */ + + // Widgets: List Boxes + // - This is essentially a thin wrapper to using BeginChild/EndChild with some stylistic changes. + // - The BeginListBox()/EndListBox() api allows you to manage your contents and selection state however you want it, by creating e.g. Selectable() or any items. + // - The simplified/old ListBox() api are helpers over BeginListBox()/EndListBox() which are kept available for convenience purpose. This is analoguous to how Combos are created. + // - Choose frame width: size.x > 0.0f: custom / size.x < 0.0f or -FLT_MIN: right-align / size.x = 0.0f (default): use current ItemWidth + // - Choose frame height: size.y > 0.0f: custom / size.y < 0.0f or -FLT_MIN: bottom-align / size.y = 0.0f (default): arbitrary default height which can fit ~7 items + + /** + * Open a framed scrolling region. + */ + public static boolean beginListBox(final String label) { + return nBeginListBox(label); + } + + /** + * Open a framed scrolling region. + */ + public static boolean beginListBox(final String label, final ImVec2 size) { + return nBeginListBox(label, size.x, size.y); + } + + /** + * Open a framed scrolling region. + */ + public static boolean beginListBox(final String label, final float sizeX, final float sizeY) { + return nBeginListBox(label, sizeX, sizeY); + } + + private static native boolean nBeginListBox(String obj_label); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::BeginListBox(label); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + private static native boolean nBeginListBox(String obj_label, float sizeX, float sizeY); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::BeginListBox(label, size); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + /** + * Only call EndListBox() if BeginListBox() returned true! + */ + public static void endListBox() { + nEndListBox(); + } + + private static native void nEndListBox(); /* + ImGui::EndListBox(); + */ + + public static void listBox(final String label, final ImInt currentItem, final String[] items) { + nListBox(label, currentItem != null ? currentItem.getData() : null, items, items.length); + } + + public static void listBox(final String label, final ImInt currentItem, final String[] items, final int heightInItems) { + nListBox(label, currentItem != null ? currentItem.getData() : null, items, items.length, heightInItems); + } + + private static native void nListBox(String label, int[] currentItem, String[] obj_items, int itemsCount); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto currentItem = obj_currentItem == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_currentItem, JNI_FALSE); + const char* items[itemsCount]; + for (int i = 0; i < itemsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_items, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + items[i] = rawStr; + }; + ImGui::ListBox(label, (currentItem != NULL ? ¤tItem[0] : NULL), items, itemsCount); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (currentItem != NULL) env->ReleasePrimitiveArrayCritical(obj_currentItem, currentItem, JNI_FALSE); + for (int i = 0; i < itemsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_items, i); + env->ReleaseStringUTFChars(str, items[i]); + }; + */ + + private static native void nListBox(String label, int[] currentItem, String[] obj_items, int itemsCount, int heightInItems); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto currentItem = obj_currentItem == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_currentItem, JNI_FALSE); + const char* items[itemsCount]; + for (int i = 0; i < itemsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_items, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + items[i] = rawStr; + }; + ImGui::ListBox(label, (currentItem != NULL ? ¤tItem[0] : NULL), items, itemsCount, heightInItems); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (currentItem != NULL) env->ReleasePrimitiveArrayCritical(obj_currentItem, currentItem, JNI_FALSE); + for (int i = 0; i < itemsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_items, i); + env->ReleaseStringUTFChars(str, items[i]); + }; + */ + + // Widgets: Data Plotting + // - Consider using ImPlot (https://github.com/epezent/implot) + + public static void plotLines(final String label, final float[] values, final int valuesCount) { + nPlotLines(label, values, valuesCount); + } + + public static void plotLines(final String label, final float[] values, final int valuesCount, final int valuesOffset) { + nPlotLines(label, values, valuesCount, valuesOffset); + } + + public static void plotLines(final String label, final float[] values, final int valuesCount, final int valuesOffset, final String overlayText) { + nPlotLines(label, values, valuesCount, valuesOffset, overlayText); + } + + public static void plotLines(final String label, final float[] values, final int valuesCount, final int valuesOffset, final String overlayText, final float scaleMin) { + nPlotLines(label, values, valuesCount, valuesOffset, overlayText, scaleMin); + } + + public static void plotLines(final String label, final float[] values, final int valuesCount, final int valuesOffset, final String overlayText, final float scaleMin, final float scaleMax) { + nPlotLines(label, values, valuesCount, valuesOffset, overlayText, scaleMin, scaleMax); + } + + public static void plotLines(final String label, final float[] values, final int valuesCount, final int valuesOffset, final String overlayText, final float scaleMin, final float scaleMax, final ImVec2 graphSize) { + nPlotLines(label, values, valuesCount, valuesOffset, overlayText, scaleMin, scaleMax, graphSize.x, graphSize.y); + } + + public static void plotLines(final String label, final float[] values, final int valuesCount, final int valuesOffset, final String overlayText, final float scaleMin, final float scaleMax, final float graphSizeX, final float graphSizeY) { + nPlotLines(label, values, valuesCount, valuesOffset, overlayText, scaleMin, scaleMax, graphSizeX, graphSizeY); + } + + public static void plotLines(final String label, final float[] values, final int valuesCount, final int valuesOffset, final String overlayText, final float scaleMin, final float scaleMax, final ImVec2 graphSize, final int stride) { + nPlotLines(label, values, valuesCount, valuesOffset, overlayText, scaleMin, scaleMax, graphSize.x, graphSize.y, stride); + } + + public static void plotLines(final String label, final float[] values, final int valuesCount, final int valuesOffset, final String overlayText, final float scaleMin, final float scaleMax, final float graphSizeX, final float graphSizeY, final int stride) { + nPlotLines(label, values, valuesCount, valuesOffset, overlayText, scaleMin, scaleMax, graphSizeX, graphSizeY, stride); + } + + public static void plotLines(final String label, final float[] values, final int valuesCount, final String overlayText, final float scaleMin, final float scaleMax, final ImVec2 graphSize, final int stride) { + nPlotLines(label, values, valuesCount, overlayText, scaleMin, scaleMax, graphSize.x, graphSize.y, stride); + } + + public static void plotLines(final String label, final float[] values, final int valuesCount, final String overlayText, final float scaleMin, final float scaleMax, final float graphSizeX, final float graphSizeY, final int stride) { + nPlotLines(label, values, valuesCount, overlayText, scaleMin, scaleMax, graphSizeX, graphSizeY, stride); + } + + public static void plotLines(final String label, final float[] values, final int valuesCount, final float scaleMin, final float scaleMax, final ImVec2 graphSize, final int stride) { + nPlotLines(label, values, valuesCount, scaleMin, scaleMax, graphSize.x, graphSize.y, stride); + } + + public static void plotLines(final String label, final float[] values, final int valuesCount, final float scaleMin, final float scaleMax, final float graphSizeX, final float graphSizeY, final int stride) { + nPlotLines(label, values, valuesCount, scaleMin, scaleMax, graphSizeX, graphSizeY, stride); + } + + public static void plotLines(final String label, final float[] values, final int valuesCount, final int valuesOffset, final float scaleMin, final float scaleMax, final ImVec2 graphSize, final int stride) { + nPlotLines(label, values, valuesCount, valuesOffset, scaleMin, scaleMax, graphSize.x, graphSize.y, stride); + } + + public static void plotLines(final String label, final float[] values, final int valuesCount, final int valuesOffset, final float scaleMin, final float scaleMax, final float graphSizeX, final float graphSizeY, final int stride) { + nPlotLines(label, values, valuesCount, valuesOffset, scaleMin, scaleMax, graphSizeX, graphSizeY, stride); + } + + public static void plotLines(final String label, final float[] values, final int valuesCount, final int valuesOffset, final String overlayText, final float scaleMin, final float scaleMax, final int stride) { + nPlotLines(label, values, valuesCount, valuesOffset, overlayText, scaleMin, scaleMax, stride); + } + + private static native void nPlotLines(String label, float[] values, int valuesCount); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImGui::PlotLines(label, &values[0], valuesCount); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotLines(String label, float[] values, int valuesCount, int valuesOffset); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImGui::PlotLines(label, &values[0], valuesCount, valuesOffset); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotLines(String label, float[] values, int valuesCount, int valuesOffset, String overlayText); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto overlayText = obj_overlayText == NULL ? NULL : (char*)env->GetStringUTFChars(obj_overlayText, JNI_FALSE); + ImGui::PlotLines(label, &values[0], valuesCount, valuesOffset, overlayText); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (overlayText != NULL) env->ReleaseStringUTFChars(obj_overlayText, overlayText); + */ + + private static native void nPlotLines(String label, float[] values, int valuesCount, int valuesOffset, String overlayText, float scaleMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto overlayText = obj_overlayText == NULL ? NULL : (char*)env->GetStringUTFChars(obj_overlayText, JNI_FALSE); + ImGui::PlotLines(label, &values[0], valuesCount, valuesOffset, overlayText, scaleMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (overlayText != NULL) env->ReleaseStringUTFChars(obj_overlayText, overlayText); + */ + + private static native void nPlotLines(String label, float[] values, int valuesCount, int valuesOffset, String overlayText, float scaleMin, float scaleMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto overlayText = obj_overlayText == NULL ? NULL : (char*)env->GetStringUTFChars(obj_overlayText, JNI_FALSE); + ImGui::PlotLines(label, &values[0], valuesCount, valuesOffset, overlayText, scaleMin, scaleMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (overlayText != NULL) env->ReleaseStringUTFChars(obj_overlayText, overlayText); + */ + + private static native void nPlotLines(String label, float[] values, int valuesCount, int valuesOffset, String overlayText, float scaleMin, float scaleMax, float graphSizeX, float graphSizeY); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto overlayText = obj_overlayText == NULL ? NULL : (char*)env->GetStringUTFChars(obj_overlayText, JNI_FALSE); + ImVec2 graphSize = ImVec2(graphSizeX, graphSizeY); + ImGui::PlotLines(label, &values[0], valuesCount, valuesOffset, overlayText, scaleMin, scaleMax, graphSize); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (overlayText != NULL) env->ReleaseStringUTFChars(obj_overlayText, overlayText); + */ + + private static native void nPlotLines(String label, float[] values, int valuesCount, int valuesOffset, String overlayText, float scaleMin, float scaleMax, float graphSizeX, float graphSizeY, int stride); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto overlayText = obj_overlayText == NULL ? NULL : (char*)env->GetStringUTFChars(obj_overlayText, JNI_FALSE); + ImVec2 graphSize = ImVec2(graphSizeX, graphSizeY); + ImGui::PlotLines(label, &values[0], valuesCount, valuesOffset, overlayText, scaleMin, scaleMax, graphSize, stride); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (overlayText != NULL) env->ReleaseStringUTFChars(obj_overlayText, overlayText); + */ + + private static native void nPlotLines(String label, float[] values, int valuesCount, String overlayText, float scaleMin, float scaleMax, float graphSizeX, float graphSizeY, int stride); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto overlayText = obj_overlayText == NULL ? NULL : (char*)env->GetStringUTFChars(obj_overlayText, JNI_FALSE); + ImVec2 graphSize = ImVec2(graphSizeX, graphSizeY); + ImGui::PlotLines(label, &values[0], valuesCount, 0, overlayText, scaleMin, scaleMax, graphSize, stride); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (overlayText != NULL) env->ReleaseStringUTFChars(obj_overlayText, overlayText); + */ + + private static native void nPlotLines(String label, float[] values, int valuesCount, float scaleMin, float scaleMax, float graphSizeX, float graphSizeY, int stride); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImVec2 graphSize = ImVec2(graphSizeX, graphSizeY); + ImGui::PlotLines(label, &values[0], valuesCount, 0, NULL, scaleMin, scaleMax, graphSize, stride); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotLines(String label, float[] values, int valuesCount, int valuesOffset, float scaleMin, float scaleMax, float graphSizeX, float graphSizeY, int stride); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImVec2 graphSize = ImVec2(graphSizeX, graphSizeY); + ImGui::PlotLines(label, &values[0], valuesCount, valuesOffset, NULL, scaleMin, scaleMax, graphSize, stride); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotLines(String label, float[] values, int valuesCount, int valuesOffset, String overlayText, float scaleMin, float scaleMax, int stride); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto overlayText = obj_overlayText == NULL ? NULL : (char*)env->GetStringUTFChars(obj_overlayText, JNI_FALSE); + ImGui::PlotLines(label, &values[0], valuesCount, valuesOffset, overlayText, scaleMin, scaleMax, ImVec2(0,0), stride); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (overlayText != NULL) env->ReleaseStringUTFChars(obj_overlayText, overlayText); + */ + + public static void plotHistogram(final String label, final float[] values, final int valuesCount) { + nPlotHistogram(label, values, valuesCount); + } + + public static void plotHistogram(final String label, final float[] values, final int valuesCount, final int valuesOffset) { + nPlotHistogram(label, values, valuesCount, valuesOffset); + } + + public static void plotHistogram(final String label, final float[] values, final int valuesCount, final int valuesOffset, final String overlayText) { + nPlotHistogram(label, values, valuesCount, valuesOffset, overlayText); + } + + public static void plotHistogram(final String label, final float[] values, final int valuesCount, final int valuesOffset, final String overlayText, final float scaleMin) { + nPlotHistogram(label, values, valuesCount, valuesOffset, overlayText, scaleMin); + } + + public static void plotHistogram(final String label, final float[] values, final int valuesCount, final int valuesOffset, final String overlayText, final float scaleMin, final float scaleMax) { + nPlotHistogram(label, values, valuesCount, valuesOffset, overlayText, scaleMin, scaleMax); + } + + public static void plotHistogram(final String label, final float[] values, final int valuesCount, final int valuesOffset, final String overlayText, final float scaleMin, final float scaleMax, final ImVec2 graphSize) { + nPlotHistogram(label, values, valuesCount, valuesOffset, overlayText, scaleMin, scaleMax, graphSize.x, graphSize.y); + } + + public static void plotHistogram(final String label, final float[] values, final int valuesCount, final int valuesOffset, final String overlayText, final float scaleMin, final float scaleMax, final float graphSizeX, final float graphSizeY) { + nPlotHistogram(label, values, valuesCount, valuesOffset, overlayText, scaleMin, scaleMax, graphSizeX, graphSizeY); + } + + public static void plotHistogram(final String label, final float[] values, final int valuesCount, final int valuesOffset, final String overlayText, final float scaleMin, final float scaleMax, final ImVec2 graphSize, final int stride) { + nPlotHistogram(label, values, valuesCount, valuesOffset, overlayText, scaleMin, scaleMax, graphSize.x, graphSize.y, stride); + } + + public static void plotHistogram(final String label, final float[] values, final int valuesCount, final int valuesOffset, final String overlayText, final float scaleMin, final float scaleMax, final float graphSizeX, final float graphSizeY, final int stride) { + nPlotHistogram(label, values, valuesCount, valuesOffset, overlayText, scaleMin, scaleMax, graphSizeX, graphSizeY, stride); + } + + public static void plotHistogram(final String label, final float[] values, final int valuesCount, final String overlayText, final float scaleMin, final float scaleMax, final ImVec2 graphSize, final int stride) { + nPlotHistogram(label, values, valuesCount, overlayText, scaleMin, scaleMax, graphSize.x, graphSize.y, stride); + } + + public static void plotHistogram(final String label, final float[] values, final int valuesCount, final String overlayText, final float scaleMin, final float scaleMax, final float graphSizeX, final float graphSizeY, final int stride) { + nPlotHistogram(label, values, valuesCount, overlayText, scaleMin, scaleMax, graphSizeX, graphSizeY, stride); + } + + public static void plotHistogram(final String label, final float[] values, final int valuesCount, final float scaleMin, final float scaleMax, final ImVec2 graphSize, final int stride) { + nPlotHistogram(label, values, valuesCount, scaleMin, scaleMax, graphSize.x, graphSize.y, stride); + } + + public static void plotHistogram(final String label, final float[] values, final int valuesCount, final float scaleMin, final float scaleMax, final float graphSizeX, final float graphSizeY, final int stride) { + nPlotHistogram(label, values, valuesCount, scaleMin, scaleMax, graphSizeX, graphSizeY, stride); + } + + public static void plotHistogram(final String label, final float[] values, final int valuesCount, final int valuesOffset, final float scaleMin, final float scaleMax, final ImVec2 graphSize, final int stride) { + nPlotHistogram(label, values, valuesCount, valuesOffset, scaleMin, scaleMax, graphSize.x, graphSize.y, stride); + } + + public static void plotHistogram(final String label, final float[] values, final int valuesCount, final int valuesOffset, final float scaleMin, final float scaleMax, final float graphSizeX, final float graphSizeY, final int stride) { + nPlotHistogram(label, values, valuesCount, valuesOffset, scaleMin, scaleMax, graphSizeX, graphSizeY, stride); + } + + public static void plotHistogram(final String label, final float[] values, final int valuesCount, final int valuesOffset, final String overlayText, final float scaleMin, final float scaleMax, final int stride) { + nPlotHistogram(label, values, valuesCount, valuesOffset, overlayText, scaleMin, scaleMax, stride); + } + + private static native void nPlotHistogram(String label, float[] values, int valuesCount); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImGui::PlotHistogram(label, &values[0], valuesCount); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotHistogram(String label, float[] values, int valuesCount, int valuesOffset); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImGui::PlotHistogram(label, &values[0], valuesCount, valuesOffset); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotHistogram(String label, float[] values, int valuesCount, int valuesOffset, String overlayText); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto overlayText = obj_overlayText == NULL ? NULL : (char*)env->GetStringUTFChars(obj_overlayText, JNI_FALSE); + ImGui::PlotHistogram(label, &values[0], valuesCount, valuesOffset, overlayText); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (overlayText != NULL) env->ReleaseStringUTFChars(obj_overlayText, overlayText); + */ + + private static native void nPlotHistogram(String label, float[] values, int valuesCount, int valuesOffset, String overlayText, float scaleMin); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto overlayText = obj_overlayText == NULL ? NULL : (char*)env->GetStringUTFChars(obj_overlayText, JNI_FALSE); + ImGui::PlotHistogram(label, &values[0], valuesCount, valuesOffset, overlayText, scaleMin); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (overlayText != NULL) env->ReleaseStringUTFChars(obj_overlayText, overlayText); + */ + + private static native void nPlotHistogram(String label, float[] values, int valuesCount, int valuesOffset, String overlayText, float scaleMin, float scaleMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto overlayText = obj_overlayText == NULL ? NULL : (char*)env->GetStringUTFChars(obj_overlayText, JNI_FALSE); + ImGui::PlotHistogram(label, &values[0], valuesCount, valuesOffset, overlayText, scaleMin, scaleMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (overlayText != NULL) env->ReleaseStringUTFChars(obj_overlayText, overlayText); + */ + + private static native void nPlotHistogram(String label, float[] values, int valuesCount, int valuesOffset, String overlayText, float scaleMin, float scaleMax, float graphSizeX, float graphSizeY); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto overlayText = obj_overlayText == NULL ? NULL : (char*)env->GetStringUTFChars(obj_overlayText, JNI_FALSE); + ImVec2 graphSize = ImVec2(graphSizeX, graphSizeY); + ImGui::PlotHistogram(label, &values[0], valuesCount, valuesOffset, overlayText, scaleMin, scaleMax, graphSize); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (overlayText != NULL) env->ReleaseStringUTFChars(obj_overlayText, overlayText); + */ + + private static native void nPlotHistogram(String label, float[] values, int valuesCount, int valuesOffset, String overlayText, float scaleMin, float scaleMax, float graphSizeX, float graphSizeY, int stride); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto overlayText = obj_overlayText == NULL ? NULL : (char*)env->GetStringUTFChars(obj_overlayText, JNI_FALSE); + ImVec2 graphSize = ImVec2(graphSizeX, graphSizeY); + ImGui::PlotHistogram(label, &values[0], valuesCount, valuesOffset, overlayText, scaleMin, scaleMax, graphSize, stride); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (overlayText != NULL) env->ReleaseStringUTFChars(obj_overlayText, overlayText); + */ + + private static native void nPlotHistogram(String label, float[] values, int valuesCount, String overlayText, float scaleMin, float scaleMax, float graphSizeX, float graphSizeY, int stride); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto overlayText = obj_overlayText == NULL ? NULL : (char*)env->GetStringUTFChars(obj_overlayText, JNI_FALSE); + ImVec2 graphSize = ImVec2(graphSizeX, graphSizeY); + ImGui::PlotHistogram(label, &values[0], valuesCount, 0, overlayText, scaleMin, scaleMax, graphSize, stride); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (overlayText != NULL) env->ReleaseStringUTFChars(obj_overlayText, overlayText); + */ + + private static native void nPlotHistogram(String label, float[] values, int valuesCount, float scaleMin, float scaleMax, float graphSizeX, float graphSizeY, int stride); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImVec2 graphSize = ImVec2(graphSizeX, graphSizeY); + ImGui::PlotHistogram(label, &values[0], valuesCount, 0, NULL, scaleMin, scaleMax, graphSize, stride); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotHistogram(String label, float[] values, int valuesCount, int valuesOffset, float scaleMin, float scaleMax, float graphSizeX, float graphSizeY, int stride); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImVec2 graphSize = ImVec2(graphSizeX, graphSizeY); + ImGui::PlotHistogram(label, &values[0], valuesCount, valuesOffset, NULL, scaleMin, scaleMax, graphSize, stride); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotHistogram(String label, float[] values, int valuesCount, int valuesOffset, String overlayText, float scaleMin, float scaleMax, int stride); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto overlayText = obj_overlayText == NULL ? NULL : (char*)env->GetStringUTFChars(obj_overlayText, JNI_FALSE); + ImGui::PlotHistogram(label, &values[0], valuesCount, valuesOffset, overlayText, scaleMin, scaleMax, ImVec2(0,0), stride); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (overlayText != NULL) env->ReleaseStringUTFChars(obj_overlayText, overlayText); + */ + + // Widgets: Value() Helpers. + // - Those are merely shortcut to calling Text() with a format string. Output single value in "name: value" format (tip: freely declare more in your code to handle your types. you can add functions to the ImGui namespace) + + public static void value(final String prefix, final Number value) { + nValue(prefix, value.toString()); + } + + public static void value(final String prefix, final float value, String floatFormat) { + nValue(prefix, String.format(floatFormat, value)); + } + + private static native void nValue(String prefix, String value); /* + ImGui::Value(prefix, value); + */ + + // Widgets: Menus + // - Use BeginMenuBar() on a window ImGuiWindowFlags_MenuBar to append to its menu bar. + // - Use BeginMainMenuBar() to create a menu bar at the top of the screen and append to it. + // - Use BeginMenu() to create a menu. You can call BeginMenu() multiple time with the same identifier to append more items to it. + + /** + * Append to menu-bar of current window (requires ImGuiWindowFlags_MenuBar flag set on parent window). + */ + public static boolean beginMenuBar() { + return nBeginMenuBar(); + } + + private static native boolean nBeginMenuBar(); /* + return ImGui::BeginMenuBar(); + */ + + /** + * Only call EndMenuBar() if BeginMenuBar() returns true! + */ + public static void endMenuBar() { + nEndMenuBar(); + } + + private static native void nEndMenuBar(); /* + ImGui::EndMenuBar(); + */ + + /** + * Create and append to a full screen menu-bar. + */ + public static boolean beginMainMenuBar() { + return nBeginMainMenuBar(); + } + + private static native boolean nBeginMainMenuBar(); /* + return ImGui::BeginMainMenuBar(); + */ + + /** + * Only call EndMainMenuBar() if BeginMainMenuBar() returns true! + */ + public static void endMainMenuBar() { + nEndMainMenuBar(); + } + + private static native void nEndMainMenuBar(); /* + ImGui::EndMainMenuBar(); + */ + + /** + * Create a sub-menu entry. only call EndMenu() if this returns true! + */ + public static boolean beginMenu(final String label) { + return nBeginMenu(label); + } + + /** + * Create a sub-menu entry. only call EndMenu() if this returns true! + */ + public static boolean beginMenu(final String label, final boolean enabled) { + return nBeginMenu(label, enabled); + } + + private static native boolean nBeginMenu(String obj_label); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::BeginMenu(label); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + private static native boolean nBeginMenu(String obj_label, boolean enabled); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::BeginMenu(label, enabled); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + /** + * Only call EndMenu() if BeginMenu() returns true! + */ + public static void endMenu() { + nEndMenu(); + } + + private static native void nEndMenu(); /* + ImGui::EndMenu(); + */ + + /** + * Return true when activated. shortcuts are displayed for convenience but not processed by ImGui at the moment + */ + public static boolean menuItem(final String label) { + return nMenuItem(label); + } + + /** + * Return true when activated. shortcuts are displayed for convenience but not processed by ImGui at the moment + */ + public static boolean menuItem(final String label, final boolean selected) { + return nMenuItem(label, selected); + } + + /** + * Return true when activated. shortcuts are displayed for convenience but not processed by ImGui at the moment + */ + public static boolean menuItem(final String label, final boolean selected, final boolean enabled) { + return nMenuItem(label, selected, enabled); + } + + private static native boolean nMenuItem(String obj_label); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::MenuItem(label, NULL); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + private static native boolean nMenuItem(String obj_label, boolean selected); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::MenuItem(label, NULL, selected); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + private static native boolean nMenuItem(String obj_label, boolean selected, boolean enabled); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::MenuItem(label, NULL, selected, enabled); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + /** + * Return true when activated. shortcuts are displayed for convenience but not processed by ImGui at the moment + */ + public static boolean menuItem(final String label, final String shortcut) { + return nMenuItem(label, shortcut); + } + + /** + * Return true when activated. shortcuts are displayed for convenience but not processed by ImGui at the moment + */ + public static boolean menuItem(final String label, final String shortcut, final boolean selected) { + return nMenuItem(label, shortcut, selected); + } + + /** + * Return true when activated. shortcuts are displayed for convenience but not processed by ImGui at the moment + */ + public static boolean menuItem(final String label, final String shortcut, final boolean selected, final boolean enabled) { + return nMenuItem(label, shortcut, selected, enabled); + } + + private static native boolean nMenuItem(String obj_label, String obj_shortcut); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto shortcut = obj_shortcut == NULL ? NULL : (char*)env->GetStringUTFChars(obj_shortcut, JNI_FALSE); + auto _result = ImGui::MenuItem(label, shortcut); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (shortcut != NULL) env->ReleaseStringUTFChars(obj_shortcut, shortcut); + return _result; + */ + + private static native boolean nMenuItem(String obj_label, String obj_shortcut, boolean selected); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto shortcut = obj_shortcut == NULL ? NULL : (char*)env->GetStringUTFChars(obj_shortcut, JNI_FALSE); + auto _result = ImGui::MenuItem(label, shortcut, selected); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (shortcut != NULL) env->ReleaseStringUTFChars(obj_shortcut, shortcut); + return _result; + */ + + private static native boolean nMenuItem(String obj_label, String obj_shortcut, boolean selected, boolean enabled); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto shortcut = obj_shortcut == NULL ? NULL : (char*)env->GetStringUTFChars(obj_shortcut, JNI_FALSE); + auto _result = ImGui::MenuItem(label, shortcut, selected, enabled); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (shortcut != NULL) env->ReleaseStringUTFChars(obj_shortcut, shortcut); + return _result; + */ + + /** + * Return true when activated + toggle (*pSelected) if pSelected != NULL + */ + public static boolean menuItem(final String label, final String shortcut, final ImBoolean pSelected) { + return nMenuItem(label, shortcut, pSelected != null ? pSelected.getData() : null); + } + + /** + * Return true when activated + toggle (*pSelected) if pSelected != NULL + */ + public static boolean menuItem(final String label, final String shortcut, final ImBoolean pSelected, final boolean enabled) { + return nMenuItem(label, shortcut, pSelected != null ? pSelected.getData() : null, enabled); + } + + private static native boolean nMenuItem(String obj_label, String obj_shortcut, boolean[] obj_pSelected); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto shortcut = obj_shortcut == NULL ? NULL : (char*)env->GetStringUTFChars(obj_shortcut, JNI_FALSE); + auto pSelected = obj_pSelected == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_pSelected, JNI_FALSE); + auto _result = ImGui::MenuItem(label, shortcut, (pSelected != NULL ? &pSelected[0] : NULL)); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (shortcut != NULL) env->ReleaseStringUTFChars(obj_shortcut, shortcut); + if (pSelected != NULL) env->ReleasePrimitiveArrayCritical(obj_pSelected, pSelected, JNI_FALSE); + return _result; + */ + + private static native boolean nMenuItem(String obj_label, String obj_shortcut, boolean[] obj_pSelected, boolean enabled); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto shortcut = obj_shortcut == NULL ? NULL : (char*)env->GetStringUTFChars(obj_shortcut, JNI_FALSE); + auto pSelected = obj_pSelected == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_pSelected, JNI_FALSE); + auto _result = ImGui::MenuItem(label, shortcut, (pSelected != NULL ? &pSelected[0] : NULL), enabled); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (shortcut != NULL) env->ReleaseStringUTFChars(obj_shortcut, shortcut); + if (pSelected != NULL) env->ReleasePrimitiveArrayCritical(obj_pSelected, pSelected, JNI_FALSE); + return _result; + */ + + // Tooltips + // - Tooltip are windows following the mouse. They do not take focus away. + + /** + * Begin/append a tooltip window. to create full-featured tooltip (with any kind of items). + */ + public static void beginTooltip() { + nBeginTooltip(); + } + + private static native void nBeginTooltip(); /* + ImGui::BeginTooltip(); + */ + + public static void endTooltip() { + nEndTooltip(); + } + + private static native void nEndTooltip(); /* + ImGui::EndTooltip(); + */ + + /** + * Set a text-only tooltip, typically use with ImGui::IsItemHovered(). override any previous call to SetTooltip(). + */ + public static void setTooltip(final String text) { + nSetTooltip(text); + } + + private static native void nSetTooltip(String text); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + ImGui::SetTooltip(text, NULL); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + */ + + // Popups, Modals + // - They block normal mouse hovering detection (and therefore most mouse interactions) behind them. + // - If not modal: they can be closed by clicking anywhere outside them, or by pressing ESCAPE. + // - Their visibility state (~bool) is held internally instead of being held by the programmer as we are used to with regular Begin*() calls. + // - The 3 properties above are related: we need to retain popup visibility state in the library because popups may be closed as any time. + // - You can bypass the hovering restriction by using ImGuiHoveredFlags_AllowWhenBlockedByPopup when calling IsItemHovered() or IsWindowHovered(). + // - IMPORTANT: Popup identifiers are relative to the current ID stack, so OpenPopup and BeginPopup generally needs to be at the same level of the stack. + // This is sometimes leading to confusing mistakes. May rework this in the future. + // Popups: begin/end functions + // - BeginPopup(): query popup state, if open start appending into the window. Call EndPopup() afterwards. ImGuiWindowFlags are forwarded to the window. + // - BeginPopupModal(): block every interactions behind the window, cannot be closed by user, add a dimming background, has a title bar. + + /** + * Return true if the popup is open, and you can start outputting to it. + */ + public static boolean beginPopup(final String strId) { + return nBeginPopup(strId); + } + + /** + * Return true if the popup is open, and you can start outputting to it. + */ + public static boolean beginPopup(final String strId, final int imGuiWindowFlags) { + return nBeginPopup(strId, imGuiWindowFlags); + } + + private static native boolean nBeginPopup(String obj_strId); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + auto _result = ImGui::BeginPopup(strId); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + private static native boolean nBeginPopup(String obj_strId, int imGuiWindowFlags); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + auto _result = ImGui::BeginPopup(strId, imGuiWindowFlags); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + /** + * Return true if the popup is open, and you can start outputting to it. + */ + public static boolean beginPopupModal(final String name) { + return nBeginPopupModal(name); + } + + /** + * Return true if the popup is open, and you can start outputting to it. + */ + public static boolean beginPopupModal(final String name, final ImBoolean pOpen) { + return nBeginPopupModal(name, pOpen != null ? pOpen.getData() : null); + } + + /** + * Return true if the popup is open, and you can start outputting to it. + */ + public static boolean beginPopupModal(final String name, final ImBoolean pOpen, final int imGuiWindowFlags) { + return nBeginPopupModal(name, pOpen != null ? pOpen.getData() : null, imGuiWindowFlags); + } + + /** + * Return true if the popup is open, and you can start outputting to it. + */ + public static boolean beginPopupModal(final String name, final int imGuiWindowFlags) { + return nBeginPopupModal(name, imGuiWindowFlags); + } + + private static native boolean nBeginPopupModal(String obj_name); /*MANUAL + auto name = obj_name == NULL ? NULL : (char*)env->GetStringUTFChars(obj_name, JNI_FALSE); + auto _result = ImGui::BeginPopupModal(name); + if (name != NULL) env->ReleaseStringUTFChars(obj_name, name); + return _result; + */ + + private static native boolean nBeginPopupModal(String obj_name, boolean[] obj_pOpen); /*MANUAL + auto name = obj_name == NULL ? NULL : (char*)env->GetStringUTFChars(obj_name, JNI_FALSE); + auto pOpen = obj_pOpen == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_pOpen, JNI_FALSE); + auto _result = ImGui::BeginPopupModal(name, (pOpen != NULL ? &pOpen[0] : NULL)); + if (name != NULL) env->ReleaseStringUTFChars(obj_name, name); + if (pOpen != NULL) env->ReleasePrimitiveArrayCritical(obj_pOpen, pOpen, JNI_FALSE); + return _result; + */ + + private static native boolean nBeginPopupModal(String obj_name, boolean[] obj_pOpen, int imGuiWindowFlags); /*MANUAL + auto name = obj_name == NULL ? NULL : (char*)env->GetStringUTFChars(obj_name, JNI_FALSE); + auto pOpen = obj_pOpen == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_pOpen, JNI_FALSE); + auto _result = ImGui::BeginPopupModal(name, (pOpen != NULL ? &pOpen[0] : NULL), imGuiWindowFlags); + if (name != NULL) env->ReleaseStringUTFChars(obj_name, name); + if (pOpen != NULL) env->ReleasePrimitiveArrayCritical(obj_pOpen, pOpen, JNI_FALSE); + return _result; + */ + + private static native boolean nBeginPopupModal(String obj_name, int imGuiWindowFlags); /*MANUAL + auto name = obj_name == NULL ? NULL : (char*)env->GetStringUTFChars(obj_name, JNI_FALSE); + auto _result = ImGui::BeginPopupModal(name, NULL, imGuiWindowFlags); + if (name != NULL) env->ReleaseStringUTFChars(obj_name, name); + return _result; + */ + + /** + * Only call EndPopup() if BeginPopupXXX() returns true! + */ + public static void endPopup() { + nEndPopup(); + } + + private static native void nEndPopup(); /* + ImGui::EndPopup(); + */ + + // Popups: open/close functions + // - OpenPopup(): set popup state to open. ImGuiPopupFlags are available for opening options. + // - If not modal: they can be closed by clicking anywhere outside them, or by pressing ESCAPE. + // - CloseCurrentPopup(): use inside the BeginPopup()/EndPopup() scope to close manually. + // - CloseCurrentPopup() is called by default by Selectable()/MenuItem() when activated (FIXME: need some options). + // - Use ImGuiPopupFlags_NoOpenOverExistingPopup to avoid opening a popup if there's already one at the same level. This is equivalent to e.g. testing for !IsAnyPopupOpen() prior to OpenPopup(). + + /** + * Call to mark popup as open (don't call every frame!). + */ + public static void openPopup(final String strId) { + nOpenPopup(strId); + } + + /** + * Call to mark popup as open (don't call every frame!). + */ + public static void openPopup(final String strId, final int imGuiPopupFlags) { + nOpenPopup(strId, imGuiPopupFlags); + } + + private static native void nOpenPopup(String strId); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + ImGui::OpenPopup(strId); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + */ + + private static native void nOpenPopup(String strId, int imGuiPopupFlags); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + ImGui::OpenPopup(strId, imGuiPopupFlags); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + */ + + /** + * Id overload to facilitate calling from nested stacks. + */ + public static void openPopup(final int id) { + nOpenPopup(id); + } + + /** + * Id overload to facilitate calling from nested stacks. + */ + public static void openPopup(final int id, final int imGuiPopupFlags) { + nOpenPopup(id, imGuiPopupFlags); + } + + private static native void nOpenPopup(int id); /* + ImGui::OpenPopup((ImGuiID)id); + */ + + private static native void nOpenPopup(int id, int imGuiPopupFlags); /* + ImGui::OpenPopup((ImGuiID)id, imGuiPopupFlags); + */ + + /** + * Helper to open popup when clicked on last item. return true when just opened. (note: actually triggers on the mouse _released_ event to be consistent with popup behaviors) + */ + public static void openPopupOnItemClick() { + nOpenPopupOnItemClick(); + } + + /** + * Helper to open popup when clicked on last item. return true when just opened. (note: actually triggers on the mouse _released_ event to be consistent with popup behaviors) + */ + public static void openPopupOnItemClick(final String strId) { + nOpenPopupOnItemClick(strId); + } + + /** + * Helper to open popup when clicked on last item. return true when just opened. (note: actually triggers on the mouse _released_ event to be consistent with popup behaviors) + */ + public static void openPopupOnItemClick(final String strId, final int imGuiPopupFlags) { + nOpenPopupOnItemClick(strId, imGuiPopupFlags); + } + + /** + * Helper to open popup when clicked on last item. return true when just opened. (note: actually triggers on the mouse _released_ event to be consistent with popup behaviors) + */ + public static void openPopupOnItemClick(final int imGuiPopupFlags) { + nOpenPopupOnItemClick(imGuiPopupFlags); + } + + private static native void nOpenPopupOnItemClick(); /* + ImGui::OpenPopupOnItemClick(); + */ + + private static native void nOpenPopupOnItemClick(String strId); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + ImGui::OpenPopupOnItemClick(strId); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + */ + + private static native void nOpenPopupOnItemClick(String strId, int imGuiPopupFlags); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + ImGui::OpenPopupOnItemClick(strId, imGuiPopupFlags); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + */ + + private static native void nOpenPopupOnItemClick(int imGuiPopupFlags); /* + ImGui::OpenPopupOnItemClick(NULL, imGuiPopupFlags); + */ + + /** + * Manually close the popup we have begin-ed into. + */ + public static void closeCurrentPopup() { + nCloseCurrentPopup(); + } + + private static native void nCloseCurrentPopup(); /* + ImGui::CloseCurrentPopup(); + */ + + // Popups: open+begin combined functions helpers + // - Helpers to do OpenPopup+BeginPopup where the Open action is triggered by e.g. hovering an item and right-clicking. + // - They are convenient to easily create context menus, hence the name. + // - IMPORTANT: Notice that BeginPopupContextXXX takes ImGuiPopupFlags just like OpenPopup() and unlike BeginPopup(). For full consistency, we may add ImGuiWindowFlags to the BeginPopupContextXXX functions in the future. + // - IMPORTANT: we exceptionally default their flags to 1 (== ImGuiPopupFlags_MouseButtonRight) for backward compatibility with older API taking 'int mouse_button = 1' parameter, so if you add other flags remember to re-add the ImGuiPopupFlags_MouseButtonRight. + + /** + * Open+begin popup when clicked on last item. if you can pass a NULL str_id only if the previous item had an id. + * If you want to use that on a non-interactive item such as Text() you need to pass in an explicit ID here. read comments in .cpp! + */ + public static boolean beginPopupContextItem() { + return nBeginPopupContextItem(); + } + + /** + * Open+begin popup when clicked on last item. if you can pass a NULL str_id only if the previous item had an id. + * If you want to use that on a non-interactive item such as Text() you need to pass in an explicit ID here. read comments in .cpp! + */ + public static boolean beginPopupContextItem(final String strId) { + return nBeginPopupContextItem(strId); + } + + /** + * Open+begin popup when clicked on last item. if you can pass a NULL str_id only if the previous item had an id. + * If you want to use that on a non-interactive item such as Text() you need to pass in an explicit ID here. read comments in .cpp! + */ + public static boolean beginPopupContextItem(final String strId, final int imGuiPopupFlags) { + return nBeginPopupContextItem(strId, imGuiPopupFlags); + } + + /** + * Open+begin popup when clicked on last item. if you can pass a NULL str_id only if the previous item had an id. + * If you want to use that on a non-interactive item such as Text() you need to pass in an explicit ID here. read comments in .cpp! + */ + public static boolean beginPopupContextItem(final int imGuiPopupFlags) { + return nBeginPopupContextItem(imGuiPopupFlags); + } + + private static native boolean nBeginPopupContextItem(); /* + return ImGui::BeginPopupContextItem(); + */ + + private static native boolean nBeginPopupContextItem(String obj_strId); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + auto _result = ImGui::BeginPopupContextItem(strId); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + private static native boolean nBeginPopupContextItem(String obj_strId, int imGuiPopupFlags); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + auto _result = ImGui::BeginPopupContextItem(strId, imGuiPopupFlags); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + private static native boolean nBeginPopupContextItem(int imGuiPopupFlags); /* + return ImGui::BeginPopupContextItem(NULL, imGuiPopupFlags); + */ + + /** + * Open+begin popup when clicked on current window. + */ + public static boolean beginPopupContextWindow() { + return nBeginPopupContextWindow(); + } + + /** + * Open+begin popup when clicked on current window. + */ + public static boolean beginPopupContextWindow(final String strId) { + return nBeginPopupContextWindow(strId); + } + + /** + * Open+begin popup when clicked on current window. + */ + public static boolean beginPopupContextWindow(final String strId, final int imGuiPopupFlags) { + return nBeginPopupContextWindow(strId, imGuiPopupFlags); + } + + /** + * Open+begin popup when clicked on current window. + */ + public static boolean beginPopupContextWindow(final int imGuiPopupFlags) { + return nBeginPopupContextWindow(imGuiPopupFlags); + } + + private static native boolean nBeginPopupContextWindow(); /* + return ImGui::BeginPopupContextWindow(); + */ + + private static native boolean nBeginPopupContextWindow(String obj_strId); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + auto _result = ImGui::BeginPopupContextWindow(strId); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + private static native boolean nBeginPopupContextWindow(String obj_strId, int imGuiPopupFlags); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + auto _result = ImGui::BeginPopupContextWindow(strId, imGuiPopupFlags); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + private static native boolean nBeginPopupContextWindow(int imGuiPopupFlags); /* + return ImGui::BeginPopupContextWindow(NULL, imGuiPopupFlags); + */ + + /** + * Open+begin popup when clicked in void (where there are no windows). + */ + public static boolean beginPopupContextVoid() { + return nBeginPopupContextVoid(); + } + + /** + * Open+begin popup when clicked in void (where there are no windows). + */ + public static boolean beginPopupContextVoid(final String strId) { + return nBeginPopupContextVoid(strId); + } + + /** + * Open+begin popup when clicked in void (where there are no windows). + */ + public static boolean beginPopupContextVoid(final String strId, final int imGuiPopupFlags) { + return nBeginPopupContextVoid(strId, imGuiPopupFlags); + } + + /** + * Open+begin popup when clicked in void (where there are no windows). + */ + public static boolean beginPopupContextVoid(final int imGuiPopupFlags) { + return nBeginPopupContextVoid(imGuiPopupFlags); + } + + private static native boolean nBeginPopupContextVoid(); /* + return ImGui::BeginPopupContextVoid(); + */ + + private static native boolean nBeginPopupContextVoid(String obj_strId); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + auto _result = ImGui::BeginPopupContextVoid(strId); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + private static native boolean nBeginPopupContextVoid(String obj_strId, int imGuiPopupFlags); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + auto _result = ImGui::BeginPopupContextVoid(strId, imGuiPopupFlags); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + private static native boolean nBeginPopupContextVoid(int imGuiPopupFlags); /* + return ImGui::BeginPopupContextVoid(NULL, imGuiPopupFlags); + */ + + // Popups: test function + // - IsPopupOpen(): return true if the popup is open at the current BeginPopup() level of the popup stack. + // - IsPopupOpen() with ImGuiPopupFlags_AnyPopupId: return true if any popup is open at the current BeginPopup() level of the popup stack. + // - IsPopupOpen() with ImGuiPopupFlags_AnyPopupId + ImGuiPopupFlags_AnyPopupLevel: return true if any popup is open. + + /** + * Return true if the popup is open. + */ + public static boolean isPopupOpen(final String strId) { + return nIsPopupOpen(strId); + } + + /** + * Return true if the popup is open. + */ + public static boolean isPopupOpen(final String strId, final int imGuiPopupFlags) { + return nIsPopupOpen(strId, imGuiPopupFlags); + } + + private static native boolean nIsPopupOpen(String obj_strId); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + auto _result = ImGui::IsPopupOpen(strId); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + private static native boolean nIsPopupOpen(String obj_strId, int imGuiPopupFlags); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + auto _result = ImGui::IsPopupOpen(strId, imGuiPopupFlags); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + // Tables + // [BETA API] API may evolve slightly! If you use this, please update to the next version when it comes out! + // - Full-featured replacement for old Columns API. + // - See Demo->Tables for demo code. + // - See top of imgui_tables.cpp for general commentary. + // - See ImGuiTableFlags_ and ImGuiTableColumnFlags_ enums for a description of available flags. + // The typical call flow is: + // - 1. Call BeginTable(). + // - 2. Optionally call TableSetupColumn() to submit column name/flags/defaults. + // - 3. Optionally call TableSetupScrollFreeze() to request scroll freezing of columns/rows. + // - 4. Optionally call TableHeadersRow() to submit a header row. Names are pulled from TableSetupColumn() data. + // - 5. Populate contents: + // - In most situations you can use TableNextRow() + TableSetColumnIndex(N) to start appending into a column. + // - If you are using tables as a sort of grid, where every columns is holding the same type of contents, + // you may prefer using TableNextColumn() instead of TableNextRow() + TableSetColumnIndex(). + // TableNextColumn() will automatically wrap-around into the next row if needed. + // - IMPORTANT: Comparatively to the old Columns() API, we need to call TableNextColumn() for the first column! + // - Summary of possible call flow: + // -------------------------------------------------------------------------------------------------------- + // TableNextRow() -> TableSetColumnIndex(0) -> Text("Hello 0") -> TableSetColumnIndex(1) -> Text("Hello 1") // OK + // TableNextRow() -> TableNextColumn() -> Text("Hello 0") -> TableNextColumn() -> Text("Hello 1") // OK + // TableNextColumn() -> Text("Hello 0") -> TableNextColumn() -> Text("Hello 1") // OK: TableNextColumn() automatically gets to next row! + // TableNextRow() -> Text("Hello 0") // Not OK! Missing TableSetColumnIndex() or TableNextColumn()! Text will not appear! + // -------------------------------------------------------------------------------------------------------- + // - 5. Call EndTable() + + public static boolean beginTable(final String id, final int column) { + return nBeginTable(id, column); + } + + public static boolean beginTable(final String id, final int column, final int imGuiTableFlags) { + return nBeginTable(id, column, imGuiTableFlags); + } + + public static boolean beginTable(final String id, final int column, final int imGuiTableFlags, final ImVec2 outerSize) { + return nBeginTable(id, column, imGuiTableFlags, outerSize.x, outerSize.y); + } + + public static boolean beginTable(final String id, final int column, final int imGuiTableFlags, final float outerSizeX, final float outerSizeY) { + return nBeginTable(id, column, imGuiTableFlags, outerSizeX, outerSizeY); + } + + public static boolean beginTable(final String id, final int column, final int imGuiTableFlags, final ImVec2 outerSize, final float innerWidth) { + return nBeginTable(id, column, imGuiTableFlags, outerSize.x, outerSize.y, innerWidth); + } + + public static boolean beginTable(final String id, final int column, final int imGuiTableFlags, final float outerSizeX, final float outerSizeY, final float innerWidth) { + return nBeginTable(id, column, imGuiTableFlags, outerSizeX, outerSizeY, innerWidth); + } + + public static boolean beginTable(final String id, final int column, final ImVec2 outerSize, final float innerWidth) { + return nBeginTable(id, column, outerSize.x, outerSize.y, innerWidth); + } + + public static boolean beginTable(final String id, final int column, final float outerSizeX, final float outerSizeY, final float innerWidth) { + return nBeginTable(id, column, outerSizeX, outerSizeY, innerWidth); + } + + public static boolean beginTable(final String id, final int column, final float innerWidth) { + return nBeginTable(id, column, innerWidth); + } + + public static boolean beginTable(final String id, final int column, final int imGuiTableFlags, final float innerWidth) { + return nBeginTable(id, column, imGuiTableFlags, innerWidth); + } + + private static native boolean nBeginTable(String obj_id, int column); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto _result = ImGui::BeginTable(id, column); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + return _result; + */ + + private static native boolean nBeginTable(String obj_id, int column, int imGuiTableFlags); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto _result = ImGui::BeginTable(id, column, imGuiTableFlags); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + return _result; + */ + + private static native boolean nBeginTable(String obj_id, int column, int imGuiTableFlags, float outerSizeX, float outerSizeY); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + ImVec2 outerSize = ImVec2(outerSizeX, outerSizeY); + auto _result = ImGui::BeginTable(id, column, imGuiTableFlags, outerSize); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + return _result; + */ + + private static native boolean nBeginTable(String obj_id, int column, int imGuiTableFlags, float outerSizeX, float outerSizeY, float innerWidth); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + ImVec2 outerSize = ImVec2(outerSizeX, outerSizeY); + auto _result = ImGui::BeginTable(id, column, imGuiTableFlags, outerSize, innerWidth); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + return _result; + */ + + private static native boolean nBeginTable(String obj_id, int column, float outerSizeX, float outerSizeY, float innerWidth); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + ImVec2 outerSize = ImVec2(outerSizeX, outerSizeY); + auto _result = ImGui::BeginTable(id, column, 0, outerSize, innerWidth); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + return _result; + */ + + private static native boolean nBeginTable(String obj_id, int column, float innerWidth); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto _result = ImGui::BeginTable(id, column, 0, ImVec2(0,0), innerWidth); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + return _result; + */ + + private static native boolean nBeginTable(String obj_id, int column, int imGuiTableFlags, float innerWidth); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto _result = ImGui::BeginTable(id, column, imGuiTableFlags, ImVec2(0,0), innerWidth); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + return _result; + */ + + /** + * Only call EndTable() if BeginTable() returns true! + */ + public static void endTable() { + nEndTable(); + } + + private static native void nEndTable(); /* + ImGui::EndTable(); + */ + + /** + * Append into the first cell of a new row. + */ + public static void tableNextRow() { + nTableNextRow(); + } + + /** + * Append into the first cell of a new row. + */ + public static void tableNextRow(final int imGuiTableRowFlags) { + nTableNextRow(imGuiTableRowFlags); + } + + /** + * Append into the first cell of a new row. + */ + public static void tableNextRow(final int imGuiTableRowFlags, final float minRowHeight) { + nTableNextRow(imGuiTableRowFlags, minRowHeight); + } + + /** + * Append into the first cell of a new row. + */ + public static void tableNextRow(final float minRowHeight) { + nTableNextRow(minRowHeight); + } + + private static native void nTableNextRow(); /* + ImGui::TableNextRow(); + */ + + private static native void nTableNextRow(int imGuiTableRowFlags); /* + ImGui::TableNextRow(imGuiTableRowFlags); + */ + + private static native void nTableNextRow(int imGuiTableRowFlags, float minRowHeight); /* + ImGui::TableNextRow(imGuiTableRowFlags, minRowHeight); + */ + + private static native void nTableNextRow(float minRowHeight); /* + ImGui::TableNextRow(0, minRowHeight); + */ + + /** + * Append into the next column (or first column of next row if currently in last column). Return true when column is visible. + */ + public static boolean tableNextColumn() { + return nTableNextColumn(); + } + + private static native boolean nTableNextColumn(); /* + return ImGui::TableNextColumn(); + */ + + /** + * Append into the specified column. Return true when column is visible. + */ + public static boolean tableSetColumnIndex(final int columnN) { + return nTableSetColumnIndex(columnN); + } + + private static native boolean nTableSetColumnIndex(int columnN); /* + return ImGui::TableSetColumnIndex(columnN); + */ + + // Tables: Headers & Columns declaration + // - Use TableSetupColumn() to specify label, resizing policy, default width/weight, id, various other flags etc. + // - Use TableHeadersRow() to create a header row and automatically submit a TableHeader() for each column. + // Headers are required to perform: reordering, sorting, and opening the context menu. + // The context menu can also be made available in columns body using ImGuiTableFlags_ContextMenuInBody. + // - You may manually submit headers using TableNextRow() + TableHeader() calls, but this is only useful in + // some advanced use cases (e.g. adding custom widgets in header row). + // - Use TableSetupScrollFreeze() to lock columns/rows so they stay visible when scrolled. + + public static void tableSetupColumn(final String label) { + nTableSetupColumn(label); + } + + public static void tableSetupColumn(final String label, final int imGuiTableColumnFlags) { + nTableSetupColumn(label, imGuiTableColumnFlags); + } + + public static void tableSetupColumn(final String label, final int imGuiTableColumnFlags, final float initWidthOrWeight) { + nTableSetupColumn(label, imGuiTableColumnFlags, initWidthOrWeight); + } + + public static void tableSetupColumn(final String label, final int imGuiTableColumnFlags, final float initWidthOrWeight, final int userId) { + nTableSetupColumn(label, imGuiTableColumnFlags, initWidthOrWeight, userId); + } + + public static void tableSetupColumn(final String label, final float initWidthOrWeight, final int userId) { + nTableSetupColumn(label, initWidthOrWeight, userId); + } + + public static void tableSetupColumn(final String label, final int imGuiTableColumnFlags, final int userId) { + nTableSetupColumn(label, imGuiTableColumnFlags, userId); + } + + private static native void nTableSetupColumn(String label); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + ImGui::TableSetupColumn(label); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + */ + + private static native void nTableSetupColumn(String label, int imGuiTableColumnFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + ImGui::TableSetupColumn(label, imGuiTableColumnFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + */ + + private static native void nTableSetupColumn(String label, int imGuiTableColumnFlags, float initWidthOrWeight); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + ImGui::TableSetupColumn(label, imGuiTableColumnFlags, initWidthOrWeight); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + */ + + private static native void nTableSetupColumn(String label, int imGuiTableColumnFlags, float initWidthOrWeight, int userId); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + ImGui::TableSetupColumn(label, imGuiTableColumnFlags, initWidthOrWeight, userId); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + */ + + private static native void nTableSetupColumn(String label, float initWidthOrWeight, int userId); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + ImGui::TableSetupColumn(label, 0, initWidthOrWeight, userId); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + */ + + private static native void nTableSetupColumn(String label, int imGuiTableColumnFlags, int userId); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + ImGui::TableSetupColumn(label, imGuiTableColumnFlags, 0.0f, userId); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + */ + + /** + * Lock columns/rows so they stay visible when scrolled. + */ + public static void tableSetupScrollFreeze(final int cols, final int rows) { + nTableSetupScrollFreeze(cols, rows); + } + + private static native void nTableSetupScrollFreeze(int cols, int rows); /* + ImGui::TableSetupScrollFreeze(cols, rows); + */ + + /** + * Submit all headers cells based on data provided to TableSetupColumn() + submit context menu + */ + public static void tableHeadersRow() { + nTableHeadersRow(); + } + + private static native void nTableHeadersRow(); /* + ImGui::TableHeadersRow(); + */ + + /** + * Submit one header cell manually (rarely used) + */ + public static void tableHeader(final String label) { + nTableHeader(label); + } + + private static native void nTableHeader(String label); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + ImGui::TableHeader(label); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + */ + + // Tables: Sorting + // - Call TableGetSortSpecs() to retrieve latest sort specs for the table. NULL when not sorting. + // - When 'SpecsDirty == true' you should sort your data. It will be true when sorting specs have changed + // since last call, or the first time. Make sure to set 'SpecsDirty = false' after sorting, else you may + // wastefully sort your data every frame! + // - Lifetime: don't hold on this pointer over multiple frames or past any subsequent call to BeginTable(). + + // TODO: TableGetSortSpecs() + + // Tables: Miscellaneous functions + // - Functions args 'int column_n' treat the default value of -1 as the same as passing the current column index. + + /** + * Return number of columns (value passed to BeginTable). + */ + public static int tableGetColumnCount() { + return nTableGetColumnCount(); + } + + private static native int nTableGetColumnCount(); /* + return ImGui::TableGetColumnCount(); + */ + + /** + * Return current column index. + */ + public static int tableGetColumnIndex() { + return nTableGetColumnIndex(); + } + + private static native int nTableGetColumnIndex(); /* + return ImGui::TableGetColumnIndex(); + */ + + /** + * Return current row index. + */ + public static int tableGetRowIndex() { + return nTableGetRowIndex(); + } + + private static native int nTableGetRowIndex(); /* + return ImGui::TableGetRowIndex(); + */ + + /** + * Return "" if column didn't have a name declared by TableSetupColumn(). Pass -1 to use current column. + */ + public static String tableGetColumnName() { + return nTableGetColumnName(); + } + + /** + * Return "" if column didn't have a name declared by TableSetupColumn(). Pass -1 to use current column. + */ + public static String tableGetColumnName(final int columnN) { + return nTableGetColumnName(columnN); + } + + private static native String nTableGetColumnName(); /* + return env->NewStringUTF(ImGui::TableGetColumnName()); + */ + + private static native String nTableGetColumnName(int columnN); /* + return env->NewStringUTF(ImGui::TableGetColumnName(columnN)); + */ + + /** + * Return column flags, so you can query their Enabled/Visible/Sorted/Hovered status flags. Pass -1 to use current column. + */ + public static int tableGetColumnFlags() { + return nTableGetColumnFlags(); + } + + /** + * Return column flags, so you can query their Enabled/Visible/Sorted/Hovered status flags. Pass -1 to use current column. + */ + public static int tableGetColumnFlags(final int columnN) { + return nTableGetColumnFlags(columnN); + } + + private static native int nTableGetColumnFlags(); /* + return ImGui::TableGetColumnFlags(); + */ + + private static native int nTableGetColumnFlags(int columnN); /* + return ImGui::TableGetColumnFlags(columnN); + */ + + /** + * change user accessible enabled/disabled state of a column. Set to false to hide the column. + * User can use the context menu to change this themselves (right-click in headers, or right-click in columns body with ImGuiTableFlags_ContextMenuInBody) + */ + public static void tableSetColumnEnabled(final int columnN, final boolean value) { + nTableSetColumnEnabled(columnN, value); + } + + private static native void nTableSetColumnEnabled(int columnN, boolean value); /* + ImGui::TableSetColumnEnabled(columnN, value); + */ + + /** + * Change the color of a cell, row, or column. See ImGuiTableBgTarget_ flags for details. + */ + public static void tableSetBgColor(final int imGuiTableBgTarget, final int color) { + nTableSetBgColor(imGuiTableBgTarget, color); + } + + /** + * Change the color of a cell, row, or column. See ImGuiTableBgTarget_ flags for details. + */ + public static void tableSetBgColor(final int imGuiTableBgTarget, final int color, final int columnN) { + nTableSetBgColor(imGuiTableBgTarget, color, columnN); + } + + private static native void nTableSetBgColor(int imGuiTableBgTarget, int color); /* + ImGui::TableSetBgColor(imGuiTableBgTarget, color); + */ + + private static native void nTableSetBgColor(int imGuiTableBgTarget, int color, int columnN); /* + ImGui::TableSetBgColor(imGuiTableBgTarget, color, columnN); + */ + + // Legacy Columns API (2020: prefer using Tables!) + // Columns + // - You can also use SameLine(posX) to mimic simplified columns. + + public static void columns() { + nColumns(); + } + + public static void columns(final int count) { + nColumns(count); + } + + public static void columns(final int count, final String id) { + nColumns(count, id); + } + + public static void columns(final int count, final String id, final boolean border) { + nColumns(count, id, border); + } + + public static void columns(final String id, final boolean border) { + nColumns(id, border); + } + + public static void columns(final boolean border) { + nColumns(border); + } + + public static void columns(final int count, final boolean border) { + nColumns(count, border); + } + + private static native void nColumns(); /* + ImGui::Columns(); + */ + + private static native void nColumns(int count); /* + ImGui::Columns(count); + */ + + private static native void nColumns(int count, String id); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + ImGui::Columns(count, id); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + */ + + private static native void nColumns(int count, String id, boolean border); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + ImGui::Columns(count, id, border); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + */ + + private static native void nColumns(String id, boolean border); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + ImGui::Columns(1, id, border); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + */ + + private static native void nColumns(boolean border); /* + ImGui::Columns(1, NULL, border); + */ + + private static native void nColumns(int count, boolean border); /* + ImGui::Columns(count, NULL, border); + */ + + /** + * Next column, defaults to current row or next row if the current row is finished + */ + public static void nextColumn() { + nNextColumn(); + } + + private static native void nNextColumn(); /* + ImGui::NextColumn(); + */ + + /** + * Get current column index + */ + public static int getColumnIndex() { + return nGetColumnIndex(); + } + + private static native int nGetColumnIndex(); /* + return ImGui::GetColumnIndex(); + */ + + /** + * Get column width (in pixels). pass -1 to use current column + */ + public static float getColumnWidth() { + return nGetColumnWidth(); + } + + /** + * Get column width (in pixels). pass -1 to use current column + */ + public static float getColumnWidth(final int columnIndex) { + return nGetColumnWidth(columnIndex); + } + + private static native float nGetColumnWidth(); /* + return ImGui::GetColumnWidth(); + */ + + private static native float nGetColumnWidth(int columnIndex); /* + return ImGui::GetColumnWidth(columnIndex); + */ + + /** + * Set column width (in pixels). pass -1 to use current column + */ + public static void setColumnWidth(final int columnIndex, final float width) { + nSetColumnWidth(columnIndex, width); + } + + private static native void nSetColumnWidth(int columnIndex, float width); /* + ImGui::SetColumnWidth(columnIndex, width); + */ + + /** + * Get position of column line (in pixels, from the left side of the contents region). pass -1 to use current column, otherwise 0..GetColumnsCount() inclusive. column 0 is typically 0.0f + */ + public static float getColumnOffset() { + return nGetColumnOffset(); + } + + /** + * Get position of column line (in pixels, from the left side of the contents region). pass -1 to use current column, otherwise 0..GetColumnsCount() inclusive. column 0 is typically 0.0f + */ + public static float getColumnOffset(final int columnIndex) { + return nGetColumnOffset(columnIndex); + } + + private static native float nGetColumnOffset(); /* + return ImGui::GetColumnOffset(); + */ + + private static native float nGetColumnOffset(int columnIndex); /* + return ImGui::GetColumnOffset(columnIndex); + */ + + /** + * Set position of column line (in pixels, from the left side of the contents region). pass -1 to use current column + */ + public static void setColumnOffset(final int columnIndex, final float offsetX) { + nSetColumnOffset(columnIndex, offsetX); + } + + private static native void nSetColumnOffset(int columnIndex, float offsetX); /* + ImGui::SetColumnOffset(columnIndex, offsetX); + */ + + public static int getColumnsCount() { + return nGetColumnsCount(); + } + + private static native int nGetColumnsCount(); /* + return ImGui::GetColumnsCount(); + */ + + // Tab Bars, Tabs + // Note: Tabs are automatically created by the docking system. Use this to create tab bars/tabs yourself without docking being involved. + + /** + * Create and append into a TabBar + */ + public static boolean beginTabBar(final String strId) { + return nBeginTabBar(strId); + } + + /** + * Create and append into a TabBar + */ + public static boolean beginTabBar(final String strId, final int imGuiTabBarFlags) { + return nBeginTabBar(strId, imGuiTabBarFlags); + } + + private static native boolean nBeginTabBar(String obj_strId); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + auto _result = ImGui::BeginTabBar(strId); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + private static native boolean nBeginTabBar(String obj_strId, int imGuiTabBarFlags); /*MANUAL + auto strId = obj_strId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_strId, JNI_FALSE); + auto _result = ImGui::BeginTabBar(strId, imGuiTabBarFlags); + if (strId != NULL) env->ReleaseStringUTFChars(obj_strId, strId); + return _result; + */ + + /** + * Only call EndTabBar() if BeginTabBar() returns true! + */ + public static void endTabBar() { + nEndTabBar(); + } + + private static native void nEndTabBar(); /* + ImGui::EndTabBar(); + */ + + /** + * Create a Tab. Returns true if the Tab is selected. + */ + public static boolean beginTabItem(final String label) { + return nBeginTabItem(label); + } + + /** + * Create a Tab. Returns true if the Tab is selected. + */ + public static boolean beginTabItem(final String label, final ImBoolean pOpen) { + return nBeginTabItem(label, pOpen != null ? pOpen.getData() : null); + } + + /** + * Create a Tab. Returns true if the Tab is selected. + */ + public static boolean beginTabItem(final String label, final ImBoolean pOpen, final int imGuiTabItemFlags) { + return nBeginTabItem(label, pOpen != null ? pOpen.getData() : null, imGuiTabItemFlags); + } + + /** + * Create a Tab. Returns true if the Tab is selected. + */ + public static boolean beginTabItem(final String label, final int imGuiTabItemFlags) { + return nBeginTabItem(label, imGuiTabItemFlags); + } + + private static native boolean nBeginTabItem(String obj_label); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::BeginTabItem(label); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + private static native boolean nBeginTabItem(String obj_label, boolean[] obj_pOpen); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pOpen = obj_pOpen == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_pOpen, JNI_FALSE); + auto _result = ImGui::BeginTabItem(label, (pOpen != NULL ? &pOpen[0] : NULL)); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pOpen != NULL) env->ReleasePrimitiveArrayCritical(obj_pOpen, pOpen, JNI_FALSE); + return _result; + */ + + private static native boolean nBeginTabItem(String obj_label, boolean[] obj_pOpen, int imGuiTabItemFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pOpen = obj_pOpen == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_pOpen, JNI_FALSE); + auto _result = ImGui::BeginTabItem(label, (pOpen != NULL ? &pOpen[0] : NULL), imGuiTabItemFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pOpen != NULL) env->ReleasePrimitiveArrayCritical(obj_pOpen, pOpen, JNI_FALSE); + return _result; + */ + + private static native boolean nBeginTabItem(String obj_label, int imGuiTabItemFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::BeginTabItem(label, NULL, imGuiTabItemFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + /** + * Only call EndTabItem() if BeginTabItem() returns true! + */ + public static void endTabItem() { + nEndTabItem(); + } + + private static native void nEndTabItem(); /* + ImGui::EndTabItem(); + */ + + /** + * Create a Tab behaving like a button. return true when clicked. cannot be selected in the tab bar. + */ + public static boolean tabItemButton(final String label) { + return nTabItemButton(label); + } + + /** + * Create a Tab behaving like a button. return true when clicked. cannot be selected in the tab bar. + */ + public static boolean tabItemButton(final String label, final int imGuiTabItemFlags) { + return nTabItemButton(label, imGuiTabItemFlags); + } + + private static native boolean nTabItemButton(String obj_label); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::TabItemButton(label); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + private static native boolean nTabItemButton(String obj_label, int imGuiTabItemFlags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImGui::TabItemButton(label, imGuiTabItemFlags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + /** + * Notify TabBar or Docking system of a closed tab/window ahead (useful to reduce visual flicker on reorderable tab bars). + * For tab-bar: call after BeginTabBar() and before Tab submissions. Otherwise call with a window name. + */ + public static void setTabItemClosed(final String tabOrDockedWindowLabel) { + nSetTabItemClosed(tabOrDockedWindowLabel); + } + + private static native void nSetTabItemClosed(String tabOrDockedWindowLabel); /*MANUAL + auto tabOrDockedWindowLabel = obj_tabOrDockedWindowLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_tabOrDockedWindowLabel, JNI_FALSE); + ImGui::SetTabItemClosed(tabOrDockedWindowLabel); + if (tabOrDockedWindowLabel != NULL) env->ReleaseStringUTFChars(obj_tabOrDockedWindowLabel, tabOrDockedWindowLabel); + */ + + // Docking + // [BETA API] Enable with io.ConfigFlags |= ImGuiConfigFlags_DockingEnable. + // Note: You can use most Docking facilities without calling any API. You DO NOT need to call DockSpace() to use Docking! + // - To dock windows: if io.ConfigDockingWithShift == false (default) drag window from their title bar. + // - To dock windows: if io.ConfigDockingWithShift == true: hold SHIFT anywhere while moving windows. + // About DockSpace: + // - Use DockSpace() to create an explicit dock node _within_ an existing window. See Docking demo for details. + // - DockSpace() needs to be submitted _before_ any window they can host. If you use a dockspace, submit it early in your app. + + public static int dockSpace(final int imGuiID) { + return nDockSpace(imGuiID); + } + + public static int dockSpace(final int imGuiID, final ImVec2 size) { + return nDockSpace(imGuiID, size.x, size.y); + } + + public static int dockSpace(final int imGuiID, final float sizeX, final float sizeY) { + return nDockSpace(imGuiID, sizeX, sizeY); + } + + public static int dockSpace(final int imGuiID, final ImVec2 size, final int imGuiDockNodeFlags) { + return nDockSpace(imGuiID, size.x, size.y, imGuiDockNodeFlags); + } + + public static int dockSpace(final int imGuiID, final float sizeX, final float sizeY, final int imGuiDockNodeFlags) { + return nDockSpace(imGuiID, sizeX, sizeY, imGuiDockNodeFlags); + } + + public static int dockSpace(final int imGuiID, final ImVec2 size, final int imGuiDockNodeFlags, final ImGuiWindowClass windowClass) { + return nDockSpace(imGuiID, size.x, size.y, imGuiDockNodeFlags, windowClass.ptr); + } + + public static int dockSpace(final int imGuiID, final float sizeX, final float sizeY, final int imGuiDockNodeFlags, final ImGuiWindowClass windowClass) { + return nDockSpace(imGuiID, sizeX, sizeY, imGuiDockNodeFlags, windowClass.ptr); + } + + public static int dockSpace(final int imGuiID, final int imGuiDockNodeFlags, final ImGuiWindowClass windowClass) { + return nDockSpace(imGuiID, imGuiDockNodeFlags, windowClass.ptr); + } + + public static int dockSpace(final int imGuiID, final ImGuiWindowClass windowClass) { + return nDockSpace(imGuiID, windowClass.ptr); + } + + public static int dockSpace(final int imGuiID, final ImVec2 size, final ImGuiWindowClass windowClass) { + return nDockSpace(imGuiID, size.x, size.y, windowClass.ptr); + } + + public static int dockSpace(final int imGuiID, final float sizeX, final float sizeY, final ImGuiWindowClass windowClass) { + return nDockSpace(imGuiID, sizeX, sizeY, windowClass.ptr); + } + + private static native int nDockSpace(int imGuiID); /* + return ImGui::DockSpace(imGuiID); + */ + + private static native int nDockSpace(int imGuiID, float sizeX, float sizeY); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::DockSpace(imGuiID, size); + return _result; + */ + + private static native int nDockSpace(int imGuiID, float sizeX, float sizeY, int imGuiDockNodeFlags); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::DockSpace(imGuiID, size, imGuiDockNodeFlags); + return _result; + */ + + private static native int nDockSpace(int imGuiID, float sizeX, float sizeY, int imGuiDockNodeFlags, long windowClass); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::DockSpace(imGuiID, size, imGuiDockNodeFlags, reinterpret_cast(windowClass)); + return _result; + */ + + private static native int nDockSpace(int imGuiID, int imGuiDockNodeFlags, long windowClass); /* + return ImGui::DockSpace(imGuiID, ImVec2(0,0), imGuiDockNodeFlags, reinterpret_cast(windowClass)); + */ + + private static native int nDockSpace(int imGuiID, long windowClass); /* + return ImGui::DockSpace(imGuiID, ImVec2(0,0), 0, reinterpret_cast(windowClass)); + */ + + private static native int nDockSpace(int imGuiID, float sizeX, float sizeY, long windowClass); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::DockSpace(imGuiID, size, 0, reinterpret_cast(windowClass)); + return _result; + */ + + public static int dockSpaceOverViewport() { + return nDockSpaceOverViewport(); + } + + public static int dockSpaceOverViewport(final ImGuiViewport viewport) { + return nDockSpaceOverViewport(viewport.ptr); + } + + public static int dockSpaceOverViewport(final ImGuiViewport viewport, final int imGuiDockNodeFlags) { + return nDockSpaceOverViewport(viewport.ptr, imGuiDockNodeFlags); + } + + public static int dockSpaceOverViewport(final ImGuiViewport viewport, final int imGuiDockNodeFlags, final ImGuiWindowClass windowClass) { + return nDockSpaceOverViewport(viewport.ptr, imGuiDockNodeFlags, windowClass.ptr); + } + + public static int dockSpaceOverViewport(final ImGuiViewport viewport, final ImGuiWindowClass windowClass) { + return nDockSpaceOverViewport(viewport.ptr, windowClass.ptr); + } + + private static native int nDockSpaceOverViewport(); /* + return ImGui::DockSpaceOverViewport(); + */ + + private static native int nDockSpaceOverViewport(long viewport); /* + return ImGui::DockSpaceOverViewport(reinterpret_cast(viewport)); + */ + + private static native int nDockSpaceOverViewport(long viewport, int imGuiDockNodeFlags); /* + return ImGui::DockSpaceOverViewport(reinterpret_cast(viewport), imGuiDockNodeFlags); + */ + + private static native int nDockSpaceOverViewport(long viewport, int imGuiDockNodeFlags, long windowClass); /* + return ImGui::DockSpaceOverViewport(reinterpret_cast(viewport), imGuiDockNodeFlags, reinterpret_cast(windowClass)); + */ + + private static native int nDockSpaceOverViewport(long viewport, long windowClass); /* + return ImGui::DockSpaceOverViewport(reinterpret_cast(viewport), 0, reinterpret_cast(windowClass)); + */ + + /** + * Set next window dock id + */ + public static void setNextWindowDockID(final int dockId) { + nSetNextWindowDockID(dockId); + } + + /** + * Set next window dock id + */ + public static void setNextWindowDockID(final int dockId, final int imGuiCond) { + nSetNextWindowDockID(dockId, imGuiCond); + } + + private static native void nSetNextWindowDockID(int dockId); /* + ImGui::SetNextWindowDockID(dockId); + */ + + private static native void nSetNextWindowDockID(int dockId, int imGuiCond); /* + ImGui::SetNextWindowDockID(dockId, imGuiCond); + */ + + /** + * set next window class (rare/advanced uses: provide hints to the platform backend via altered viewport flags and parent/child info) + */ + public static void setNextWindowClass(final ImGuiWindowClass windowClass) { + nSetNextWindowClass(windowClass.ptr); + } + + private static native void nSetNextWindowClass(long windowClass); /* + ImGui::SetNextWindowClass(reinterpret_cast(windowClass)); + */ + + public static int getWindowDockID() { + return nGetWindowDockID(); + } + + private static native int nGetWindowDockID(); /* + return ImGui::GetWindowDockID(); + */ + + /** + * Is current window docked into another window? + */ + public static boolean isWindowDocked() { + return nIsWindowDocked(); + } + + private static native boolean nIsWindowDocked(); /* + return ImGui::IsWindowDocked(); + */ + + // Logging/Capture + // - All text output from the interface can be captured into tty/file/clipboard. By default, tree nodes are automatically opened during logging. + + /** + * Start logging to tty (stdout) + */ + public static void logToTTY() { + nLogToTTY(); + } + + /** + * Start logging to tty (stdout) + */ + public static void logToTTY(final int autoOpenDepth) { + nLogToTTY(autoOpenDepth); + } + + private static native void nLogToTTY(); /* + ImGui::LogToTTY(); + */ + + private static native void nLogToTTY(int autoOpenDepth); /* + ImGui::LogToTTY(autoOpenDepth); + */ + + /** + * Start logging to file + */ + public static void logToFile() { + nLogToFile(); + } + + /** + * Start logging to file + */ + public static void logToFile(final int autoOpenDepth) { + nLogToFile(autoOpenDepth); + } + + /** + * Start logging to file + */ + public static void logToFile(final int autoOpenDepth, final String filename) { + nLogToFile(autoOpenDepth, filename); + } + + /** + * Start logging to file + */ + public static void logToFile(final String filename) { + nLogToFile(filename); + } + + private static native void nLogToFile(); /* + ImGui::LogToFile(); + */ + + private static native void nLogToFile(int autoOpenDepth); /* + ImGui::LogToFile(autoOpenDepth); + */ + + private static native void nLogToFile(int autoOpenDepth, String filename); /*MANUAL + auto filename = obj_filename == NULL ? NULL : (char*)env->GetStringUTFChars(obj_filename, JNI_FALSE); + ImGui::LogToFile(autoOpenDepth, filename); + if (filename != NULL) env->ReleaseStringUTFChars(obj_filename, filename); + */ + + private static native void nLogToFile(String filename); /*MANUAL + auto filename = obj_filename == NULL ? NULL : (char*)env->GetStringUTFChars(obj_filename, JNI_FALSE); + ImGui::LogToFile(-1, filename); + if (filename != NULL) env->ReleaseStringUTFChars(obj_filename, filename); + */ + + /** + * Start logging to OS clipboard + */ + public static void logToClipboard() { + nLogToClipboard(); + } + + /** + * Start logging to OS clipboard + */ + public static void logToClipboard(final int autoOpenDepth) { + nLogToClipboard(autoOpenDepth); + } + + private static native void nLogToClipboard(); /* + ImGui::LogToClipboard(); + */ + + private static native void nLogToClipboard(int autoOpenDepth); /* + ImGui::LogToClipboard(autoOpenDepth); + */ + + /** + * Stop logging (close file, etc.) + */ + public static void logFinish() { + nLogFinish(); + } + + private static native void nLogFinish(); /* + ImGui::LogFinish(); + */ + + /** + * Helper to display buttons for logging to tty/file/clipboard + */ + public static void logButtons() { + nLogButtons(); + } + + private static native void nLogButtons(); /* + ImGui::LogButtons(); + */ + + /** + * Pass text data straight to log (without being displayed) + */ + public static void logText(final String text) { + nLogText(text); + } + + private static native void nLogText(String text); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + ImGui::LogText(text, NULL); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + */ + + // Drag and Drop + // - If you stop calling BeginDragDropSource() the payload is preserved however it won't have a preview tooltip (we currently display a fallback "..." tooltip as replacement) + + /** + * Call when the current item is active. If this return true, you can call SetDragDropPayload() + EndDragDropSource() + */ + public static boolean beginDragDropSource() { + return nBeginDragDropSource(); + } + + /** + * Call when the current item is active. If this return true, you can call SetDragDropPayload() + EndDragDropSource() + */ + public static boolean beginDragDropSource(final int imGuiDragDropFlags) { + return nBeginDragDropSource(imGuiDragDropFlags); + } + + private static native boolean nBeginDragDropSource(); /* + return ImGui::BeginDragDropSource(); + */ + + private static native boolean nBeginDragDropSource(int imGuiDragDropFlags); /* + return ImGui::BeginDragDropSource(imGuiDragDropFlags); + */ + + private static WeakReference payloadRef = null; + private static final byte[] PAYLOAD_PLACEHOLDER_DATA = new byte[1]; + + /** + * Type is a user defined string of maximum 32 characters. Strings starting with '_' are reserved for dear imgui internal types. + *

+ * BINDING NOTICE: + * Method adopted for Java, so objects are used instead of raw bytes. + * Binding stores a reference to the object in a form of {@link WeakReference}. + */ + public static boolean setDragDropPayload(final String dataType, final Object payload) { + return setDragDropPayload(dataType, payload, 0); + } + + /** + * Type is a user defined string of maximum 32 characters. Strings starting with '_' are reserved for dear imgui internal types. + *

+ * BINDING NOTICE: + * Method adopted for Java, so objects are used instead of raw bytes. + * Binding stores a reference to the object in a form of {@link WeakReference}. + */ + public static boolean setDragDropPayload(final String dataType, final Object payload, final int imGuiCond) { + if (payloadRef == null || payloadRef.get() != payload) { + payloadRef = new WeakReference<>(payload); + } + return nSetDragDropPayload(dataType, PAYLOAD_PLACEHOLDER_DATA, 1, imGuiCond); + } + + /** + * Binding alternative for {@link #setDragDropPayload(String, Object)}, which uses payload class as a unique identifier. + */ + public static boolean setDragDropPayload(final Object payload) { + return setDragDropPayload(payload, 0); + } + + /** + * Binding alternative for {@link #setDragDropPayload(String, Object, int)}, which uses payload class as a unique identifier. + */ + public static boolean setDragDropPayload(final Object payload, final int imGuiCond) { + return setDragDropPayload(String.valueOf(payload.getClass().hashCode()), payload, imGuiCond); + } + + private static native boolean nSetDragDropPayload(String dataType, byte[] data, int sz, int imGuiCond); /* + return ImGui::SetDragDropPayload(dataType, &data[0], sz, imGuiCond); + */ + + /** + * Only call EndDragDropSource() if BeginDragDropSource() returns true! + */ + public static void endDragDropSource() { + nEndDragDropSource(); + } + + private static native void nEndDragDropSource(); /* + ImGui::EndDragDropSource(); + */ + + /** + * Call after submitting an item that may receive a payload. If this returns true, you can call AcceptDragDropPayload() + EndDragDropTarget() + */ + public static boolean beginDragDropTarget() { + return nBeginDragDropTarget(); + } + + private static native boolean nBeginDragDropTarget(); /* + return ImGui::BeginDragDropTarget(); + */ + + /** + * Accept contents of a given type. If ImGuiDragDropFlags_AcceptBeforeDelivery is set you can peek into the payload before the mouse button is released. + */ + public static T acceptDragDropPayload(final String dataType) { + return acceptDragDropPayload(dataType, ImGuiDragDropFlags.None); + } + + /** + * Type safe alternative for {@link #acceptDragDropPayload(String)}, since it checks assignability of the accepted class. + */ + public static T acceptDragDropPayload(final String dataType, final Class aClass) { + return acceptDragDropPayload(dataType, ImGuiDragDropFlags.None, aClass); + } + + /** + * Accept contents of a given type. If ImGuiDragDropFlags_AcceptBeforeDelivery is set you can peek into the payload before the mouse button is released. + */ + public static T acceptDragDropPayload(final String dataType, final int imGuiDragDropFlags) { + return acceptDragDropPayload(dataType, imGuiDragDropFlags, null); + } + + /** + * Type safe alternative for {@link #acceptDragDropPayload(String, int)}, since it checks assignability of the accepted class. + */ + @SuppressWarnings("unchecked") + public static T acceptDragDropPayload(final String dataType, final int imGuiDragDropFlags, final Class aClass) { + if (payloadRef != null && nAcceptDragDropPayload(dataType, imGuiDragDropFlags)) { + final Object rawPayload = payloadRef.get(); + if (rawPayload != null) { + if (aClass == null || rawPayload.getClass().isAssignableFrom(aClass)) { + return (T) rawPayload; + } + } + } + return null; + } + + /** + * Binding alternative for {@link #acceptDragDropPayload(String)}, which uses payload class as a unique identifier. + */ + public static T acceptDragDropPayload(final Class aClass) { + return acceptDragDropPayload(String.valueOf(aClass.hashCode()), ImGuiDragDropFlags.None, aClass); + } + + /** + * Binding alternative for {@link #acceptDragDropPayload(String, int)}, which uses payload class as a unique identifier. + */ + public static T acceptDragDropPayload(final Class aClass, final int imGuiDragDropFlags) { + return acceptDragDropPayload(String.valueOf(aClass.hashCode()), imGuiDragDropFlags, aClass); + } + + private static native boolean nAcceptDragDropPayload(String dataType, int imGuiDragDropFlags); /* + return ImGui::AcceptDragDropPayload(dataType, imGuiDragDropFlags) != NULL; + */ + + /** + * Only call EndDragDropTarget() if BeginDragDropTarget() returns true! + */ + public static void endDragDropTarget() { + nEndDragDropTarget(); + } + + private static native void nEndDragDropTarget(); /* + ImGui::EndDragDropTarget(); + */ + + /** + * Peek directly into the current payload from anywhere. May return NULL. + */ + @SuppressWarnings("unchecked") + public static T getDragDropPayload() { + if (payloadRef != null && nHasDragDropPayload()) { + final Object rawPayload = payloadRef.get(); + if (rawPayload != null) { + return (T) rawPayload; + } + } + return null; + } + + /** + * Peek directly into the current payload from anywhere. May return NULL. Checks if payload has the same type as provided. + */ + @SuppressWarnings("unchecked") + public static T getDragDropPayload(final String dataType) { + if (payloadRef != null && nHasDragDropPayload(dataType)) { + final Object rawPayload = payloadRef.get(); + if (rawPayload != null) { + return (T) rawPayload; + } + } + return null; + } + + /** + * Binding alternative for {@link #getDragDropPayload(String)}, which uses payload class as a unique identifier. + */ + public static T getDragDropPayload(final Class aClass) { + return getDragDropPayload(String.valueOf(aClass.hashCode())); + } + + private static native boolean nHasDragDropPayload(); /* + const ImGuiPayload* payload = ImGui::GetDragDropPayload(); + return payload != NULL && payload->Data != NULL; + */ + + private static native boolean nHasDragDropPayload(String dataType); /* + const ImGuiPayload* payload = ImGui::GetDragDropPayload(); + return payload != NULL && payload->IsDataType(dataType); + */ + + /** + * Disable all user interactions and dim items visuals (applying style.DisabledAlpha over current colors) + * BeginDisabled(false) essentially does nothing useful but is provided to facilitate use of boolean expressions. + * If you can avoid calling BeginDisabled(False)/EndDisabled() best to avoid it. + */ + public static void beginDisabled() { + nBeginDisabled(); + } + + /** + * Disable all user interactions and dim items visuals (applying style.DisabledAlpha over current colors) + * BeginDisabled(false) essentially does nothing useful but is provided to facilitate use of boolean expressions. + * If you can avoid calling BeginDisabled(False)/EndDisabled() best to avoid it. + */ + public static void beginDisabled(final boolean disabled) { + nBeginDisabled(disabled); + } + + private static native void nBeginDisabled(); /* + ImGui::BeginDisabled(); + */ + + private static native void nBeginDisabled(boolean disabled); /* + ImGui::BeginDisabled(disabled); + */ + + public static void endDisabled() { + nEndDisabled(); + } + + private static native void nEndDisabled(); /* + ImGui::EndDisabled(); + */ + + // Clipping + // - Mouse hovering is affected by ImGui::PushClipRect() calls, unlike direct calls to ImDrawList::PushClipRect() which are render only. + + public static void pushClipRect(final ImVec2 clipRectMin, final ImVec2 clipRectMax, final boolean intersectWithCurrentClipRect) { + nPushClipRect(clipRectMin.x, clipRectMin.y, clipRectMax.x, clipRectMax.y, intersectWithCurrentClipRect); + } + + public static void pushClipRect(final float clipRectMinX, final float clipRectMinY, final float clipRectMaxX, final float clipRectMaxY, final boolean intersectWithCurrentClipRect) { + nPushClipRect(clipRectMinX, clipRectMinY, clipRectMaxX, clipRectMaxY, intersectWithCurrentClipRect); + } + + private static native void nPushClipRect(float clipRectMinX, float clipRectMinY, float clipRectMaxX, float clipRectMaxY, boolean intersectWithCurrentClipRect); /*MANUAL + ImVec2 clipRectMin = ImVec2(clipRectMinX, clipRectMinY); + ImVec2 clipRectMax = ImVec2(clipRectMaxX, clipRectMaxY); + ImGui::PushClipRect(clipRectMin, clipRectMax, intersectWithCurrentClipRect); + */ + + public static void popClipRect() { + nPopClipRect(); + } + + private static native void nPopClipRect(); /* + ImGui::PopClipRect(); + */ + + // Focus, Activation + // - Prefer using "SetItemDefaultFocus()" over "if (IsWindowAppearing()) SetScrollHereY()" when applicable to signify "this is the default item" + + /** + * Make last item the default focused item of a window. + */ + public static void setItemDefaultFocus() { + nSetItemDefaultFocus(); + } + + private static native void nSetItemDefaultFocus(); /* + ImGui::SetItemDefaultFocus(); + */ + + /** + * Focus keyboard on the next widget. Use positive 'offset' to access sub components of a multiple component widget. Use -1 to access previous widget. + */ + public static void setKeyboardFocusHere() { + nSetKeyboardFocusHere(); + } + + /** + * Focus keyboard on the next widget. Use positive 'offset' to access sub components of a multiple component widget. Use -1 to access previous widget. + */ + public static void setKeyboardFocusHere(final int offset) { + nSetKeyboardFocusHere(offset); + } + + private static native void nSetKeyboardFocusHere(); /* + ImGui::SetKeyboardFocusHere(); + */ + + private static native void nSetKeyboardFocusHere(int offset); /* + ImGui::SetKeyboardFocusHere(offset); + */ + + // Item/Widgets Utilities + // - Most of the functions are referring to the last/previous item we submitted. + // - See Demo Window under "Widgets->Querying Status" for an interactive visualization of most of those functions. + + /** + * Is the last item hovered? (and usable, aka not blocked by a popup, etc.). See ImGuiHoveredFlags for more options. + */ + public static boolean isItemHovered() { + return nIsItemHovered(); + } + + /** + * Is the last item hovered? (and usable, aka not blocked by a popup, etc.). See ImGuiHoveredFlags for more options. + */ + public static boolean isItemHovered(final int imGuiHoveredFlags) { + return nIsItemHovered(imGuiHoveredFlags); + } + + private static native boolean nIsItemHovered(); /* + return ImGui::IsItemHovered(); + */ + + private static native boolean nIsItemHovered(int imGuiHoveredFlags); /* + return ImGui::IsItemHovered(imGuiHoveredFlags); + */ + + /** + * Is the last item active? (e.g. button being held, text field being edited. + * This will continuously return true while holding mouse button on an item. + * Items that don't interact will always return false) + */ + public static boolean isItemActive() { + return nIsItemActive(); + } + + private static native boolean nIsItemActive(); /* + return ImGui::IsItemActive(); + */ + + /** + * Is the last item focused for keyboard/gamepad navigation? + */ + public static boolean isItemFocused() { + return nIsItemFocused(); + } + + private static native boolean nIsItemFocused(); /* + return ImGui::IsItemFocused(); + */ + + /** + * Is the last item clicked? (e.g. button/node just clicked on) == {@code IsMouseClicked(mouseButton) && IsItemHovered()} + */ + public static boolean isItemClicked() { + return nIsItemClicked(); + } + + /** + * Is the last item clicked? (e.g. button/node just clicked on) == {@code IsMouseClicked(mouseButton) && IsItemHovered()} + */ + public static boolean isItemClicked(final int mouseButton) { + return nIsItemClicked(mouseButton); + } + + private static native boolean nIsItemClicked(); /* + return ImGui::IsItemClicked(); + */ + + private static native boolean nIsItemClicked(int mouseButton); /* + return ImGui::IsItemClicked(mouseButton); + */ + + /** + * Is the last item visible? (items may be out of sight because of clipping/scrolling) + */ + public static boolean isItemVisible() { + return nIsItemVisible(); + } + + private static native boolean nIsItemVisible(); /* + return ImGui::IsItemVisible(); + */ + + /** + * Did the last item modify its underlying value this frame? or was pressed? This is generally the same as the "bool" return value of many widgets. + */ + public static boolean isItemEdited() { + return nIsItemEdited(); + } + + private static native boolean nIsItemEdited(); /* + return ImGui::IsItemEdited(); + */ + + /** + * Was the last item just made active (item was previously inactive). + */ + public static boolean isItemActivated() { + return nIsItemActivated(); + } + + private static native boolean nIsItemActivated(); /* + return ImGui::IsItemActivated(); + */ + + /** + * Was the last item just made inactive (item was previously active). Useful for Undo/Redo patterns with widgets that requires continuous editing. + */ + public static boolean isItemDeactivated() { + return nIsItemDeactivated(); + } + + private static native boolean nIsItemDeactivated(); /* + return ImGui::IsItemDeactivated(); + */ + + /** + * Was the last item just made inactive and made a value change when it was active? (e.g. Slider/Drag moved). + * Useful for Undo/Redo patterns with widgets that requires continuous editing. + * Note that you may get false positives (some widgets such as Combo()/ListBox()/Selectable() will return true even when clicking an already selected item). + */ + public static boolean isItemDeactivatedAfterEdit() { + return nIsItemDeactivatedAfterEdit(); + } + + private static native boolean nIsItemDeactivatedAfterEdit(); /* + return ImGui::IsItemDeactivatedAfterEdit(); + */ + + /** + * Was the last item open state toggled? set by TreeNode(). + */ + public static boolean isItemToggledOpen() { + return nIsItemToggledOpen(); + } + + private static native boolean nIsItemToggledOpen(); /* + return ImGui::IsItemToggledOpen(); + */ + + /** + * Is any item hovered? + */ + public static boolean isAnyItemHovered() { + return nIsAnyItemHovered(); + } + + private static native boolean nIsAnyItemHovered(); /* + return ImGui::IsAnyItemHovered(); + */ + + /** + * Is any item active? + */ + public static boolean isAnyItemActive() { + return nIsAnyItemActive(); + } + + private static native boolean nIsAnyItemActive(); /* + return ImGui::IsAnyItemActive(); + */ + /** + * Is any item focused? + */ + public static boolean isAnyItemFocused() { + return nIsAnyItemFocused(); + } + + private static native boolean nIsAnyItemFocused(); /* + return ImGui::IsAnyItemFocused(); + */ + + /** + * Get upper-left bounding rectangle of the last item (screen space) + */ + public static ImVec2 getItemRectMin() { + final ImVec2 dst = new ImVec2(); + nGetItemRectMin(dst); + return dst; + } + + /** + * Get upper-left bounding rectangle of the last item (screen space) + */ + public static float getItemRectMinX() { + return nGetItemRectMinX(); + } + + /** + * Get upper-left bounding rectangle of the last item (screen space) + */ + public static float getItemRectMinY() { + return nGetItemRectMinY(); + } + + /** + * Get upper-left bounding rectangle of the last item (screen space) + */ + public static void getItemRectMin(final ImVec2 dst) { + nGetItemRectMin(dst); + } + + private static native void nGetItemRectMin(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ImGui::GetItemRectMin(), dst); + */ + + private static native float nGetItemRectMinX(); /* + return ImGui::GetItemRectMin().x; + */ + + private static native float nGetItemRectMinY(); /* + return ImGui::GetItemRectMin().y; + */ + + /** + * Get lower-right bounding rectangle of the last item (screen space) + */ + public static ImVec2 getItemRectMax() { + final ImVec2 dst = new ImVec2(); + nGetItemRectMax(dst); + return dst; + } + + /** + * Get lower-right bounding rectangle of the last item (screen space) + */ + public static float getItemRectMaxX() { + return nGetItemRectMaxX(); + } + + /** + * Get lower-right bounding rectangle of the last item (screen space) + */ + public static float getItemRectMaxY() { + return nGetItemRectMaxY(); + } + + /** + * Get lower-right bounding rectangle of the last item (screen space) + */ + public static void getItemRectMax(final ImVec2 dst) { + nGetItemRectMax(dst); + } + + private static native void nGetItemRectMax(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ImGui::GetItemRectMax(), dst); + */ + + private static native float nGetItemRectMaxX(); /* + return ImGui::GetItemRectMax().x; + */ + + private static native float nGetItemRectMaxY(); /* + return ImGui::GetItemRectMax().y; + */ + + /** + * Get size of last item + */ + public static ImVec2 getItemRectSize() { + final ImVec2 dst = new ImVec2(); + nGetItemRectSize(dst); + return dst; + } + + /** + * Get size of last item + */ + public static float getItemRectSizeX() { + return nGetItemRectSizeX(); + } + + /** + * Get size of last item + */ + public static float getItemRectSizeY() { + return nGetItemRectSizeY(); + } + + /** + * Get size of last item + */ + public static void getItemRectSize(final ImVec2 dst) { + nGetItemRectSize(dst); + } + + private static native void nGetItemRectSize(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ImGui::GetItemRectSize(), dst); + */ + + private static native float nGetItemRectSizeX(); /* + return ImGui::GetItemRectSize().x; + */ + + private static native float nGetItemRectSizeY(); /* + return ImGui::GetItemRectSize().y; + */ + + /** + * Allow last item to be overlapped by a subsequent item. sometimes useful with invisible buttons, selectables, etc. to catch unused area. + */ + public static void setItemAllowOverlap() { + nSetItemAllowOverlap(); + } + + private static native void nSetItemAllowOverlap(); /* + ImGui::SetItemAllowOverlap(); + */ + + // Viewports + // - Currently represents the Platform Window created by the application which is hosting our Dear ImGui windows. + // - In 'docking' branch with multi-viewport enabled, we extend this concept to have multiple active viewports. + // - In the future we will extend this concept further to also represent Platform Monitor and support a "no main platform window" operation mode. + + private static final ImGuiViewport _GETMAINVIEWPORT_1 = new ImGuiViewport(0); + + /** + * Return primary/default viewport. + */ + public static ImGuiViewport getMainViewport() { + _GETMAINVIEWPORT_1.ptr = nGetMainViewport(); + return _GETMAINVIEWPORT_1; + } + + private static native long nGetMainViewport(); /* + return (intptr_t)ImGui::GetMainViewport(); + */ + + // Miscellaneous Utilities + + /** + * Test if rectangle (of given size, starting from cursor position) is visible / not clipped. + */ + public static boolean isRectVisible(final ImVec2 size) { + return nIsRectVisible(size.x, size.y); + } + + /** + * Test if rectangle (of given size, starting from cursor position) is visible / not clipped. + */ + public static boolean isRectVisible(final float sizeX, final float sizeY) { + return nIsRectVisible(sizeX, sizeY); + } + + private static native boolean nIsRectVisible(float sizeX, float sizeY); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::IsRectVisible(size); + return _result; + */ + + /** + * Test if rectangle (in screen space) is visible / not clipped. to perform coarse clipping on user's side. + */ + public static boolean isRectVisible(final ImVec2 rectMin, final ImVec2 rectMax) { + return nIsRectVisible(rectMin.x, rectMin.y, rectMax.x, rectMax.y); + } + + /** + * Test if rectangle (in screen space) is visible / not clipped. to perform coarse clipping on user's side. + */ + public static boolean isRectVisible(final float rectMinX, final float rectMinY, final float rectMaxX, final float rectMaxY) { + return nIsRectVisible(rectMinX, rectMinY, rectMaxX, rectMaxY); + } + + private static native boolean nIsRectVisible(float rectMinX, float rectMinY, float rectMaxX, float rectMaxY); /*MANUAL + ImVec2 rectMin = ImVec2(rectMinX, rectMinY); + ImVec2 rectMax = ImVec2(rectMaxX, rectMaxY); + auto _result = ImGui::IsRectVisible(rectMin, rectMax); + return _result; + */ + + /** + * Get global imgui time. incremented by io.DeltaTime every frame. + */ + public static double getTime() { + return nGetTime(); + } + + private static native double nGetTime(); /* + return ImGui::GetTime(); + */ + + /** + * Get global imgui frame count. incremented by 1 every frame. + */ + public static int getFrameCount() { + return nGetFrameCount(); + } + + private static native int nGetFrameCount(); /* + return ImGui::GetFrameCount(); + */ + + /** + * Get background draw list for the viewport associated to the current window. + * This draw list will be the first rendering one. Useful to quickly draw shapes/text behind dear imgui contents. + */ + public static ImDrawList getBackgroundDrawList() { + return new ImDrawList(nGetBackgroundDrawList()); + } + + /** + * Get background draw list for the viewport associated to the current window. + * This draw list will be the first rendering one. Useful to quickly draw shapes/text behind dear imgui contents. + */ + public static ImDrawList getBackgroundDrawList(final ImGuiViewport viewport) { + return new ImDrawList(nGetBackgroundDrawList(viewport.ptr)); + } + + private static native long nGetBackgroundDrawList(); /* + return (intptr_t)ImGui::GetBackgroundDrawList(); + */ + + private static native long nGetBackgroundDrawList(long viewport); /* + return (intptr_t)ImGui::GetBackgroundDrawList(reinterpret_cast(viewport)); + */ + + /** + * Get foreground draw list for the viewport associated to the current window. + * This draw list will be the first rendering one. Useful to quickly draw shapes/text behind dear imgui contents. + */ + public static ImDrawList getForegroundDrawList() { + return new ImDrawList(nGetForegroundDrawList()); + } + + /** + * Get foreground draw list for the viewport associated to the current window. + * This draw list will be the first rendering one. Useful to quickly draw shapes/text behind dear imgui contents. + */ + public static ImDrawList getForegroundDrawList(final ImGuiViewport viewport) { + return new ImDrawList(nGetForegroundDrawList(viewport.ptr)); + } + + private static native long nGetForegroundDrawList(); /* + return (intptr_t)ImGui::GetForegroundDrawList(); + */ + + private static native long nGetForegroundDrawList(long viewport); /* + return (intptr_t)ImGui::GetForegroundDrawList(reinterpret_cast(viewport)); + */ + + // TODO GetDrawListSharedData + + /** + * Get a string corresponding to the enum value (for display, saving, etc.). + */ + public static String getStyleColorName(final int imGuiColIdx) { + return nGetStyleColorName(imGuiColIdx); + } + + private static native String nGetStyleColorName(int imGuiColIdx); /* + return env->NewStringUTF(ImGui::GetStyleColorName(imGuiColIdx)); + */ + + /** + * Replace current window storage with our own (if you want to manipulate it yourself, typically clear subsection of it). + */ + public static void setStateStorage(final ImGuiStorage storage) { + nSetStateStorage(storage.ptr); + } + + private static native void nSetStateStorage(long storage); /* + ImGui::SetStateStorage(reinterpret_cast(storage)); + */ + + public static ImGuiStorage getStateStorage() { + return new ImGuiStorage(nGetStateStorage()); + } + + private static native long nGetStateStorage(); /* + return (intptr_t)ImGui::GetStateStorage(); + */ + + /** + * Helper to create a child window / scrolling region that looks like a normal widget frame + */ + public static boolean beginChildFrame(final int id, final ImVec2 size) { + return nBeginChildFrame(id, size.x, size.y); + } + + /** + * Helper to create a child window / scrolling region that looks like a normal widget frame + */ + public static boolean beginChildFrame(final int id, final float sizeX, final float sizeY) { + return nBeginChildFrame(id, sizeX, sizeY); + } + + /** + * Helper to create a child window / scrolling region that looks like a normal widget frame + */ + public static boolean beginChildFrame(final int id, final ImVec2 size, final int imGuiWindowFlags) { + return nBeginChildFrame(id, size.x, size.y, imGuiWindowFlags); + } + + /** + * Helper to create a child window / scrolling region that looks like a normal widget frame + */ + public static boolean beginChildFrame(final int id, final float sizeX, final float sizeY, final int imGuiWindowFlags) { + return nBeginChildFrame(id, sizeX, sizeY, imGuiWindowFlags); + } + + private static native boolean nBeginChildFrame(int id, float sizeX, float sizeY); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::BeginChildFrame(id, size); + return _result; + */ + + private static native boolean nBeginChildFrame(int id, float sizeX, float sizeY, int imGuiWindowFlags); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::BeginChildFrame(id, size, imGuiWindowFlags); + return _result; + */ + + /** + * Always call EndChildFrame() regardless of BeginChildFrame() return values (which indicates a collapsed/clipped window) + */ + public static void endChildFrame() { + nEndChildFrame(); + } + + private static native void nEndChildFrame(); /* + ImGui::EndChildFrame(); + */ + + // Text Utilities + + public static ImVec2 calcTextSize(final String text) { + final ImVec2 dst = new ImVec2(); + nCalcTextSize(dst, text); + return dst; + } + + public static float calcTextSizeX(final String text) { + return nCalcTextSizeX(text); + } + + public static float calcTextSizeY(final String text) { + return nCalcTextSizeY(text); + } + + public static void calcTextSize(final ImVec2 dst, final String text) { + nCalcTextSize(dst, text); + } + + public static ImVec2 calcTextSize(final String text, final boolean hideTextAfterDoubleHash) { + final ImVec2 dst = new ImVec2(); + nCalcTextSize(dst, text, hideTextAfterDoubleHash); + return dst; + } + + public static float calcTextSizeX(final String text, final boolean hideTextAfterDoubleHash) { + return nCalcTextSizeX(text, hideTextAfterDoubleHash); + } + + public static float calcTextSizeY(final String text, final boolean hideTextAfterDoubleHash) { + return nCalcTextSizeY(text, hideTextAfterDoubleHash); + } + + public static void calcTextSize(final ImVec2 dst, final String text, final boolean hideTextAfterDoubleHash) { + nCalcTextSize(dst, text, hideTextAfterDoubleHash); + } + + public static ImVec2 calcTextSize(final String text, final boolean hideTextAfterDoubleHash, final float wrapWidth) { + final ImVec2 dst = new ImVec2(); + nCalcTextSize(dst, text, hideTextAfterDoubleHash, wrapWidth); + return dst; + } + + public static float calcTextSizeX(final String text, final boolean hideTextAfterDoubleHash, final float wrapWidth) { + return nCalcTextSizeX(text, hideTextAfterDoubleHash, wrapWidth); + } + + public static float calcTextSizeY(final String text, final boolean hideTextAfterDoubleHash, final float wrapWidth) { + return nCalcTextSizeY(text, hideTextAfterDoubleHash, wrapWidth); + } + + public static void calcTextSize(final ImVec2 dst, final String text, final boolean hideTextAfterDoubleHash, final float wrapWidth) { + nCalcTextSize(dst, text, hideTextAfterDoubleHash, wrapWidth); + } + + public static ImVec2 calcTextSize(final String text, final float wrapWidth) { + final ImVec2 dst = new ImVec2(); + nCalcTextSize(dst, text, wrapWidth); + return dst; + } + + public static float calcTextSizeX(final String text, final float wrapWidth) { + return nCalcTextSizeX(text, wrapWidth); + } + + public static float calcTextSizeY(final String text, final float wrapWidth) { + return nCalcTextSizeY(text, wrapWidth); + } + + public static void calcTextSize(final ImVec2 dst, final String text, final float wrapWidth) { + nCalcTextSize(dst, text, wrapWidth); + } + + private static native void nCalcTextSize(ImVec2 dst, String text); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + Jni::ImVec2Cpy(env, ImGui::CalcTextSize(text, NULL), dst); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + */ + + private static native float nCalcTextSizeX(String obj_text); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + auto _result = ImGui::CalcTextSize(text, NULL).x; + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + return _result; + */ + + private static native float nCalcTextSizeY(String obj_text); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + auto _result = ImGui::CalcTextSize(text, NULL).y; + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + return _result; + */ + + private static native void nCalcTextSize(ImVec2 dst, String text, boolean hideTextAfterDoubleHash); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + Jni::ImVec2Cpy(env, ImGui::CalcTextSize(text, NULL, hideTextAfterDoubleHash), dst); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + */ + + private static native float nCalcTextSizeX(String obj_text, boolean hideTextAfterDoubleHash); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + auto _result = ImGui::CalcTextSize(text, NULL, hideTextAfterDoubleHash).x; + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + return _result; + */ + + private static native float nCalcTextSizeY(String obj_text, boolean hideTextAfterDoubleHash); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + auto _result = ImGui::CalcTextSize(text, NULL, hideTextAfterDoubleHash).y; + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + return _result; + */ + + private static native void nCalcTextSize(ImVec2 dst, String text, boolean hideTextAfterDoubleHash, float wrapWidth); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + Jni::ImVec2Cpy(env, ImGui::CalcTextSize(text, NULL, hideTextAfterDoubleHash, wrapWidth), dst); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + */ + + private static native float nCalcTextSizeX(String obj_text, boolean hideTextAfterDoubleHash, float wrapWidth); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + auto _result = ImGui::CalcTextSize(text, NULL, hideTextAfterDoubleHash, wrapWidth).x; + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + return _result; + */ + + private static native float nCalcTextSizeY(String obj_text, boolean hideTextAfterDoubleHash, float wrapWidth); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + auto _result = ImGui::CalcTextSize(text, NULL, hideTextAfterDoubleHash, wrapWidth).y; + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + return _result; + */ + + private static native void nCalcTextSize(ImVec2 dst, String text, float wrapWidth); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + Jni::ImVec2Cpy(env, ImGui::CalcTextSize(text, NULL, false, wrapWidth), dst); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + */ + + private static native float nCalcTextSizeX(String obj_text, float wrapWidth); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + auto _result = ImGui::CalcTextSize(text, NULL, false, wrapWidth).x; + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + return _result; + */ + + private static native float nCalcTextSizeY(String obj_text, float wrapWidth); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + auto _result = ImGui::CalcTextSize(text, NULL, false, wrapWidth).y; + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + return _result; + */ + + // Color Utilities + + public static ImVec4 colorConvertU32ToFloat4(final int in) { + final ImVec4 dst = new ImVec4(); + nColorConvertU32ToFloat4(dst, in); + return dst; + } + + public static float colorConvertU32ToFloat4X(final int in) { + return nColorConvertU32ToFloat4X(in); + } + + public static float colorConvertU32ToFloat4Y(final int in) { + return nColorConvertU32ToFloat4Y(in); + } + + public static float colorConvertU32ToFloat4Z(final int in) { + return nColorConvertU32ToFloat4Z(in); + } + + public static float colorConvertU32ToFloat4W(final int in) { + return nColorConvertU32ToFloat4W(in); + } + + public static void colorConvertU32ToFloat4(final ImVec4 dst, final int in) { + nColorConvertU32ToFloat4(dst, in); + } + + private static native void nColorConvertU32ToFloat4(ImVec4 dst, int in); /* + Jni::ImVec4Cpy(env, ImGui::ColorConvertU32ToFloat4(in), dst); + */ + + private static native float nColorConvertU32ToFloat4X(int in); /* + return ImGui::ColorConvertU32ToFloat4(in).x; + */ + + private static native float nColorConvertU32ToFloat4Y(int in); /* + return ImGui::ColorConvertU32ToFloat4(in).y; + */ + + private static native float nColorConvertU32ToFloat4Z(int in); /* + return ImGui::ColorConvertU32ToFloat4(in).z; + */ + + private static native float nColorConvertU32ToFloat4W(int in); /* + return ImGui::ColorConvertU32ToFloat4(in).w; + */ + + public static int colorConvertFloat4ToU32(final ImVec4 in) { + return nColorConvertFloat4ToU32(in.x, in.y, in.z, in.w); + } + + public static int colorConvertFloat4ToU32(final float inX, final float inY, final float inZ, final float inW) { + return nColorConvertFloat4ToU32(inX, inY, inZ, inW); + } + + private static native int nColorConvertFloat4ToU32(float inX, float inY, float inZ, float inW); /*MANUAL + ImVec4 in = ImVec4(inX, inY, inZ, inW); + auto _result = ImGui::ColorConvertFloat4ToU32(in); + return _result; + */ + + public static void colorConvertRGBtoHSV(float[] rgb, float[] hsv){ + nColorConvertRGBtoHSV(rgb, hsv); + } + + public static native void nColorConvertRGBtoHSV(float[] rgb, float[] hsv); /* + ImGui::ColorConvertRGBtoHSV(rgb[0], rgb[1], rgb[2], hsv[0], hsv[1], hsv[2]); + */ + + public static void colorConvertHSVtoRGB(float[] hsv, float[] rgb) { + nColorConvertHSVtoRGB(hsv, rgb); + } + + public static native void nColorConvertHSVtoRGB(float[] hsv, float[] rgb); /* + ImGui::ColorConvertHSVtoRGB(hsv[0], hsv[1], hsv[2], rgb[0], rgb[1], rgb[2]); + */ + + // Inputs Utilities: Keyboard + // - For 'int user_key_index' you can use your own indices/enums according to how your backend/engine stored them in io.KeysDown[]. + // - We don't know the meaning of those value. You can use GetKeyIndex() to map a ImGuiKey_ value into the user index. + + /** + * Map ImGuiKey_* values into user's key index. == io.KeyMap[key] + */ + public static int getKeyIndex(final int imguiKey) { + return nGetKeyIndex(imguiKey); + } + + private static native int nGetKeyIndex(int imguiKey); /* + return ImGui::GetKeyIndex(imguiKey); + */ + /** + * Is key being held. == io.KeysDown[user_key_index]. + */ + public static boolean isKeyDown(final int userKeyIndex) { + return nIsKeyDown(userKeyIndex); + } + + private static native boolean nIsKeyDown(int userKeyIndex); /* + return ImGui::IsKeyDown(userKeyIndex); + */ + + /** + * Was key pressed (went from !Down to Down)? if repeat=true, uses io.KeyRepeatDelay / KeyRepeatRate + */ + public static boolean isKeyPressed(final int userKeyIndex) { + return nIsKeyPressed(userKeyIndex); + } + + /** + * Was key pressed (went from !Down to Down)? if repeat=true, uses io.KeyRepeatDelay / KeyRepeatRate + */ + public static boolean isKeyPressed(final int userKeyIndex, final boolean repeat) { + return nIsKeyPressed(userKeyIndex, repeat); + } + + private static native boolean nIsKeyPressed(int userKeyIndex); /* + return ImGui::IsKeyPressed(userKeyIndex); + */ + + private static native boolean nIsKeyPressed(int userKeyIndex, boolean repeat); /* + return ImGui::IsKeyPressed(userKeyIndex, repeat); + */ + + /** + * Was key released (went from Down to !Down).. + */ + public static boolean isKeyReleased(final int userKeyIndex) { + return nIsKeyReleased(userKeyIndex); + } + + private static native boolean nIsKeyReleased(int userKeyIndex); /* + return ImGui::IsKeyReleased(userKeyIndex); + */ + + /** + * Uses provided repeat rate/delay. + * Return a count, most often 0 or 1 but might be {@code >1} if RepeatRate is small enough that {@code DeltaTime > RepeatRate} + */ + public static boolean getKeyPressedAmount(final int keyIndex, final float repeatDelay, final float rate) { + return nGetKeyPressedAmount(keyIndex, repeatDelay, rate); + } + + private static native boolean nGetKeyPressedAmount(int keyIndex, float repeatDelay, float rate); /* + return ImGui::GetKeyPressedAmount(keyIndex, repeatDelay, rate); + */ + + /** + * Attention: misleading name! manually override io.WantCaptureKeyboard flag next frame (said flag is entirely left for your application to handle). + * e.g. force capture keyboard when your widget is being hovered. + * This is equivalent to setting "io.WantCaptureKeyboard = wantCaptureKeyboardValue"; after the next NewFrame() call. + */ + public static void captureKeyboardFromApp() { + nCaptureKeyboardFromApp(); + } + + /** + * Attention: misleading name! manually override io.WantCaptureKeyboard flag next frame (said flag is entirely left for your application to handle). + * e.g. force capture keyboard when your widget is being hovered. + * This is equivalent to setting "io.WantCaptureKeyboard = wantCaptureKeyboardValue"; after the next NewFrame() call. + */ + public static void captureKeyboardFromApp(final boolean wantCaptureKeyboardValue) { + nCaptureKeyboardFromApp(wantCaptureKeyboardValue); + } + + private static native void nCaptureKeyboardFromApp(); /* + ImGui::CaptureKeyboardFromApp(); + */ + + private static native void nCaptureKeyboardFromApp(boolean wantCaptureKeyboardValue); /* + ImGui::CaptureKeyboardFromApp(wantCaptureKeyboardValue); + */ + + // Inputs Utilities: Mouse + // - To refer to a mouse button, you may use named enums in your code e.g. ImGuiMouseButton_Left, ImGuiMouseButton_Right. + // - You can also use regular integer: it is forever guaranteed that 0=Left, 1=Right, 2=Middle. + // - Dragging operations are only reported after mouse has moved a certain distance away from the initial clicking position (see 'lock_threshold' and 'io.MouseDraggingThreshold') + + /** + * Is mouse button held (0=left, 1=right, 2=middle) + */ + public static boolean isMouseDown(final int button) { + return nIsMouseDown(button); + } + + private static native boolean nIsMouseDown(int button); /* + return ImGui::IsMouseDown(button); + */ + + /** + * Did mouse button clicked (went from !Down to Down) (0=left, 1=right, 2=middle) + */ + public static boolean isMouseClicked(final int button) { + return nIsMouseClicked(button); + } + + /** + * Did mouse button clicked (went from !Down to Down) (0=left, 1=right, 2=middle) + */ + public static boolean isMouseClicked(final int button, final boolean repeat) { + return nIsMouseClicked(button, repeat); + } + + private static native boolean nIsMouseClicked(int button); /* + return ImGui::IsMouseClicked(button); + */ + + private static native boolean nIsMouseClicked(int button, boolean repeat); /* + return ImGui::IsMouseClicked(button, repeat); + */ + + /** + * Did mouse button released (went from Down to !Down) + */ + public static boolean isMouseReleased(final int button) { + return nIsMouseReleased(button); + } + + private static native boolean nIsMouseReleased(int button); /* + return ImGui::IsMouseReleased(button); + */ + + /** + * did mouse button double-clicked? (note that a double-click will also report IsMouseClicked() == true). + */ + public static boolean isMouseDoubleClicked(final int button) { + return nIsMouseDoubleClicked(button); + } + + private static native boolean nIsMouseDoubleClicked(int button); /* + return ImGui::IsMouseDoubleClicked(button); + */ + + /** + * Return the number of successive mouse-clicks at the time where a click happen (otherwise 0). + */ + public static int getMouseClickedCount(final int button) { + return nGetMouseClickedCount(button); + } + + private static native int nGetMouseClickedCount(int button); /* + return ImGui::GetMouseClickedCount(button); + */ + + /** + * Is mouse hovering given bounding rect (in screen space). clipped by current clipping settings, but disregarding of other consideration of focus/window ordering/popup-block. + */ + public static boolean isMouseHoveringRect(final ImVec2 rMin, final ImVec2 rMax) { + return nIsMouseHoveringRect(rMin.x, rMin.y, rMax.x, rMax.y); + } + + /** + * Is mouse hovering given bounding rect (in screen space). clipped by current clipping settings, but disregarding of other consideration of focus/window ordering/popup-block. + */ + public static boolean isMouseHoveringRect(final float rMinX, final float rMinY, final float rMaxX, final float rMaxY) { + return nIsMouseHoveringRect(rMinX, rMinY, rMaxX, rMaxY); + } + + /** + * Is mouse hovering given bounding rect (in screen space). clipped by current clipping settings, but disregarding of other consideration of focus/window ordering/popup-block. + */ + public static boolean isMouseHoveringRect(final ImVec2 rMin, final ImVec2 rMax, final boolean clip) { + return nIsMouseHoveringRect(rMin.x, rMin.y, rMax.x, rMax.y, clip); + } + + /** + * Is mouse hovering given bounding rect (in screen space). clipped by current clipping settings, but disregarding of other consideration of focus/window ordering/popup-block. + */ + public static boolean isMouseHoveringRect(final float rMinX, final float rMinY, final float rMaxX, final float rMaxY, final boolean clip) { + return nIsMouseHoveringRect(rMinX, rMinY, rMaxX, rMaxY, clip); + } + + private static native boolean nIsMouseHoveringRect(float rMinX, float rMinY, float rMaxX, float rMaxY); /*MANUAL + ImVec2 rMin = ImVec2(rMinX, rMinY); + ImVec2 rMax = ImVec2(rMaxX, rMaxY); + auto _result = ImGui::IsMouseHoveringRect(rMin, rMax); + return _result; + */ + + private static native boolean nIsMouseHoveringRect(float rMinX, float rMinY, float rMaxX, float rMaxY, boolean clip); /*MANUAL + ImVec2 rMin = ImVec2(rMinX, rMinY); + ImVec2 rMax = ImVec2(rMaxX, rMaxY); + auto _result = ImGui::IsMouseHoveringRect(rMin, rMax, clip); + return _result; + */ + + /** + * By convention we use (-FLT_MAX,-FLT_MAX) to denote that there is no mouse + */ + public static boolean isMousePosValid() { + return nIsMousePosValid(); + } + + /** + * By convention we use (-FLT_MAX,-FLT_MAX) to denote that there is no mouse + */ + public static boolean isMousePosValid(final ImVec2 mousePos) { + return nIsMousePosValid(mousePos.x, mousePos.y); + } + + /** + * By convention we use (-FLT_MAX,-FLT_MAX) to denote that there is no mouse + */ + public static boolean isMousePosValid(final float mousePosX, final float mousePosY) { + return nIsMousePosValid(mousePosX, mousePosY); + } + + private static native boolean nIsMousePosValid(); /* + return ImGui::IsMousePosValid(); + */ + + private static native boolean nIsMousePosValid(float mousePosX, float mousePosY); /*MANUAL + ImVec2 mousePos = ImVec2(mousePosX, mousePosY); + auto _result = ImGui::IsMousePosValid(&mousePos); + return _result; + */ + + /** + * Is any mouse button held + */ + public static boolean isAnyMouseDown() { + return nIsAnyMouseDown(); + } + + private static native boolean nIsAnyMouseDown(); /* + return ImGui::IsAnyMouseDown(); + */ + + /** + * Shortcut to ImGui::GetIO().MousePos provided by user, to be consistent with other calls + */ + public static ImVec2 getMousePos() { + final ImVec2 dst = new ImVec2(); + nGetMousePos(dst); + return dst; + } + + /** + * Shortcut to ImGui::GetIO().MousePos provided by user, to be consistent with other calls + */ + public static float getMousePosX() { + return nGetMousePosX(); + } + + /** + * Shortcut to ImGui::GetIO().MousePos provided by user, to be consistent with other calls + */ + public static float getMousePosY() { + return nGetMousePosY(); + } + + /** + * Shortcut to ImGui::GetIO().MousePos provided by user, to be consistent with other calls + */ + public static void getMousePos(final ImVec2 dst) { + nGetMousePos(dst); + } + + private static native void nGetMousePos(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ImGui::GetMousePos(), dst); + */ + + private static native float nGetMousePosX(); /* + return ImGui::GetMousePos().x; + */ + + private static native float nGetMousePosY(); /* + return ImGui::GetMousePos().y; + */ + + /** + * Retrieve backup of mouse position at the time of opening popup we have BeginPopup() into + */ + public static ImVec2 getMousePosOnOpeningCurrentPopup() { + final ImVec2 dst = new ImVec2(); + nGetMousePosOnOpeningCurrentPopup(dst); + return dst; + } + + /** + * Retrieve backup of mouse position at the time of opening popup we have BeginPopup() into + */ + public static float getMousePosOnOpeningCurrentPopupX() { + return nGetMousePosOnOpeningCurrentPopupX(); + } + + /** + * Retrieve backup of mouse position at the time of opening popup we have BeginPopup() into + */ + public static float getMousePosOnOpeningCurrentPopupY() { + return nGetMousePosOnOpeningCurrentPopupY(); + } + + /** + * Retrieve backup of mouse position at the time of opening popup we have BeginPopup() into + */ + public static void getMousePosOnOpeningCurrentPopup(final ImVec2 dst) { + nGetMousePosOnOpeningCurrentPopup(dst); + } + + private static native void nGetMousePosOnOpeningCurrentPopup(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ImGui::GetMousePosOnOpeningCurrentPopup(), dst); + */ + + private static native float nGetMousePosOnOpeningCurrentPopupX(); /* + return ImGui::GetMousePosOnOpeningCurrentPopup().x; + */ + + private static native float nGetMousePosOnOpeningCurrentPopupY(); /* + return ImGui::GetMousePosOnOpeningCurrentPopup().y; + */ + + /** + * Is mouse dragging. if lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold + */ + public static boolean isMouseDragging(final int button) { + return nIsMouseDragging(button); + } + + /** + * Is mouse dragging. if lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold + */ + public static boolean isMouseDragging(final int button, final float lockThreshold) { + return nIsMouseDragging(button, lockThreshold); + } + + private static native boolean nIsMouseDragging(int button); /* + return ImGui::IsMouseDragging(button); + */ + + private static native boolean nIsMouseDragging(int button, float lockThreshold); /* + return ImGui::IsMouseDragging(button, 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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. + */ + public static ImVec2 getMouseDragDelta() { + final ImVec2 dst = new ImVec2(); + nGetMouseDragDelta(dst); + return 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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. + */ + public static float getMouseDragDeltaX() { + return nGetMouseDragDeltaX(); + } + + /** + * 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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. + */ + public static float getMouseDragDeltaY() { + return nGetMouseDragDeltaY(); + } + + /** + * 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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. + */ + public static void getMouseDragDelta(final ImVec2 dst) { + nGetMouseDragDelta(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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. + */ + public static ImVec2 getMouseDragDelta(final int button) { + final ImVec2 dst = new ImVec2(); + nGetMouseDragDelta(dst, button); + return 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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. + */ + public static float getMouseDragDeltaX(final int button) { + return nGetMouseDragDeltaX(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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. + */ + public static float getMouseDragDeltaY(final int button) { + return nGetMouseDragDeltaY(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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. + */ + public static void getMouseDragDelta(final ImVec2 dst, final int button) { + nGetMouseDragDelta(dst, 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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. + */ + public static ImVec2 getMouseDragDelta(final int button, final float lockThreshold) { + final ImVec2 dst = new ImVec2(); + nGetMouseDragDelta(dst, button, lockThreshold); + return 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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. + */ + public static float getMouseDragDeltaX(final int button, final float lockThreshold) { + return nGetMouseDragDeltaX(button, 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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. + */ + public static float getMouseDragDeltaY(final int button, final float lockThreshold) { + return nGetMouseDragDeltaY(button, 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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. + */ + public static void getMouseDragDelta(final ImVec2 dst, final int button, final float lockThreshold) { + nGetMouseDragDelta(dst, button, lockThreshold); + } + + private static native void nGetMouseDragDelta(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ImGui::GetMouseDragDelta(), dst); + */ + + private static native float nGetMouseDragDeltaX(); /* + return ImGui::GetMouseDragDelta().x; + */ + + private static native float nGetMouseDragDeltaY(); /* + return ImGui::GetMouseDragDelta().y; + */ + + private static native void nGetMouseDragDelta(ImVec2 dst, int button); /* + Jni::ImVec2Cpy(env, ImGui::GetMouseDragDelta(button), dst); + */ + + private static native float nGetMouseDragDeltaX(int button); /* + return ImGui::GetMouseDragDelta(button).x; + */ + + private static native float nGetMouseDragDeltaY(int button); /* + return ImGui::GetMouseDragDelta(button).y; + */ + + private static native void nGetMouseDragDelta(ImVec2 dst, int button, float lockThreshold); /* + Jni::ImVec2Cpy(env, ImGui::GetMouseDragDelta(button, lockThreshold), dst); + */ + + private static native float nGetMouseDragDeltaX(int button, float lockThreshold); /* + return ImGui::GetMouseDragDelta(button, lockThreshold).x; + */ + + private static native float nGetMouseDragDeltaY(int button, float lockThreshold); /* + return ImGui::GetMouseDragDelta(button, lockThreshold).y; + */ + + public static void resetMouseDragDelta() { + nResetMouseDragDelta(); + } + + public static void resetMouseDragDelta(final int button) { + nResetMouseDragDelta(button); + } + + private static native void nResetMouseDragDelta(); /* + ImGui::ResetMouseDragDelta(); + */ + + private static native void nResetMouseDragDelta(int button); /* + ImGui::ResetMouseDragDelta(button); + */ + + /** + * get desired cursor type, reset in ImGui::NewFrame(), this is updated during the frame. valid before Render(). + * If you use software rendering by setting io.MouseDrawCursor ImGui will render those for you + */ + public static int getMouseCursor() { + return nGetMouseCursor(); + } + + private static native int nGetMouseCursor(); /* + return ImGui::GetMouseCursor(); + */ + + /** + * Set desired cursor type + */ + public static void setMouseCursor(final int type) { + nSetMouseCursor(type); + } + + private static native void nSetMouseCursor(int type); /* + ImGui::SetMouseCursor(type); + */ + + /** + * Attention: misleading name! manually override io.WantCaptureMouse flag next frame (said flag is entirely left for your application to handle). + * This is equivalent to setting "io.WantCaptureMouse = wantCaptureMouseValue;" after the next NewFrame() call. + */ + public static void captureMouseFromApp() { + nCaptureMouseFromApp(); + } + + /** + * Attention: misleading name! manually override io.WantCaptureMouse flag next frame (said flag is entirely left for your application to handle). + * This is equivalent to setting "io.WantCaptureMouse = wantCaptureMouseValue;" after the next NewFrame() call. + */ + public static void captureMouseFromApp(final boolean wantCaptureMouseValue) { + nCaptureMouseFromApp(wantCaptureMouseValue); + } + + private static native void nCaptureMouseFromApp(); /* + ImGui::CaptureMouseFromApp(); + */ + + private static native void nCaptureMouseFromApp(boolean wantCaptureMouseValue); /* + ImGui::CaptureMouseFromApp(wantCaptureMouseValue); + */ + + // Clipboard Utilities + // - Also see the LogToClipboard() function to capture GUI into clipboard, or easily output text data to the clipboard. + + public static String getClipboardText() { + return nGetClipboardText(); + } + + private static native String nGetClipboardText(); /* + return env->NewStringUTF(ImGui::GetClipboardText()); + */ + + public static void setClipboardText(final String text) { + nSetClipboardText(text); + } + + private static native void nSetClipboardText(String text); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + ImGui::SetClipboardText(text); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + */ + + // Settings/.Ini Utilities + // - The disk functions are automatically called if io.IniFilename != NULL (default is "imgui.ini"). + // - Set io.IniFilename to NULL to load/save manually. Read io.WantSaveIniSettings description about handling .ini saving manually. + + /** + * Call after CreateContext() and before the first call to NewFrame(). NewFrame() automatically calls LoadIniSettingsFromDisk(io.IniFilename). + */ + public static void loadIniSettingsFromDisk(final String iniFilename) { + nLoadIniSettingsFromDisk(iniFilename); + } + + private static native void nLoadIniSettingsFromDisk(String iniFilename); /*MANUAL + auto iniFilename = obj_iniFilename == NULL ? NULL : (char*)env->GetStringUTFChars(obj_iniFilename, JNI_FALSE); + ImGui::LoadIniSettingsFromDisk(iniFilename); + if (iniFilename != NULL) env->ReleaseStringUTFChars(obj_iniFilename, iniFilename); + */ + + /** + * Call after CreateContext() and before the first call to NewFrame() to provide .ini data from your own data source. + */ + public static void loadIniSettingsFromMemory(final String iniData) { + nLoadIniSettingsFromMemory(iniData); + } + + /** + * Call after CreateContext() and before the first call to NewFrame() to provide .ini data from your own data source. + */ + public static void loadIniSettingsFromMemory(final String iniData, final int iniSize) { + nLoadIniSettingsFromMemory(iniData, iniSize); + } + + private static native void nLoadIniSettingsFromMemory(String iniData); /*MANUAL + auto iniData = obj_iniData == NULL ? NULL : (char*)env->GetStringUTFChars(obj_iniData, JNI_FALSE); + ImGui::LoadIniSettingsFromMemory(iniData); + if (iniData != NULL) env->ReleaseStringUTFChars(obj_iniData, iniData); + */ + + private static native void nLoadIniSettingsFromMemory(String iniData, int iniSize); /*MANUAL + auto iniData = obj_iniData == NULL ? NULL : (char*)env->GetStringUTFChars(obj_iniData, JNI_FALSE); + ImGui::LoadIniSettingsFromMemory(iniData, iniSize); + if (iniData != NULL) env->ReleaseStringUTFChars(obj_iniData, iniData); + */ + + /** + * This is automatically called (if io.IniFilename is not empty) a few seconds after any modification that should be reflected in the .ini file (and also by DestroyContext). + */ + public static void saveIniSettingsToDisk(final String iniFilename) { + nSaveIniSettingsToDisk(iniFilename); + } + + private static native void nSaveIniSettingsToDisk(String iniFilename); /*MANUAL + auto iniFilename = obj_iniFilename == NULL ? NULL : (char*)env->GetStringUTFChars(obj_iniFilename, JNI_FALSE); + ImGui::SaveIniSettingsToDisk(iniFilename); + if (iniFilename != NULL) env->ReleaseStringUTFChars(obj_iniFilename, iniFilename); + */ + + /** + * Return a zero-terminated string with the .ini data which you can save by your own mean. + * Call when io.WantSaveIniSettings is set, then save data by your own mean and clear io.WantSaveIniSettings. + */ + public static String saveIniSettingsToMemory() { + return nSaveIniSettingsToMemory(); + } + + /** + * Return a zero-terminated string with the .ini data which you can save by your own mean. + * Call when io.WantSaveIniSettings is set, then save data by your own mean and clear io.WantSaveIniSettings. + */ + public static String saveIniSettingsToMemory(final long outIniSize) { + return nSaveIniSettingsToMemory(outIniSize); + } + + private static native String nSaveIniSettingsToMemory(); /* + return env->NewStringUTF(ImGui::SaveIniSettingsToMemory()); + */ + + private static native String nSaveIniSettingsToMemory(long outIniSize); /* + return env->NewStringUTF(ImGui::SaveIniSettingsToMemory((size_t*)&outIniSize)); + */ + + // Debug Utilities + // - This is used by the IMGUI_CHECKVERSION() macro. + + public static boolean debugCheckVersionAndDataLayout(final String versionStr, final int szIo, final int szStyle, final int szVec2, final int szVec4, final int szDrawVert, final int szDrawIdx) { + return nDebugCheckVersionAndDataLayout(versionStr, szIo, szStyle, szVec2, szVec4, szDrawVert, szDrawIdx); + } + + private static native boolean nDebugCheckVersionAndDataLayout(String obj_versionStr, int szIo, int szStyle, int szVec2, int szVec4, int szDrawVert, int szDrawIdx); /*MANUAL + auto versionStr = obj_versionStr == NULL ? NULL : (char*)env->GetStringUTFChars(obj_versionStr, JNI_FALSE); + auto _result = ImGui::DebugCheckVersionAndDataLayout(versionStr, szIo, szStyle, szVec2, szVec4, szDrawVert, szDrawIdx); + if (versionStr != NULL) env->ReleaseStringUTFChars(obj_versionStr, versionStr); + return _result; + */ + + // (Optional) Platform/OS interface for multi-viewport support + // Read comments around the ImGuiPlatformIO structure for more details. + // Note: You may use GetWindowViewport() to get the current viewport of the current window. + + private static final ImGuiPlatformIO _GETPLATFORMIO_1 = new ImGuiPlatformIO(0); + + /** + * Platform/renderer functions, for backend to setup + viewports list. + */ + public static ImGuiPlatformIO getPlatformIO() { + _GETPLATFORMIO_1.ptr = nGetPlatformIO(); + return _GETPLATFORMIO_1; + } + + private static native long nGetPlatformIO(); /* + return (intptr_t)&ImGui::GetPlatformIO(); + */ + + /** + * Call in main loop. Will call CreateWindow/ResizeWindow/etc. Platform functions for each secondary viewport, and DestroyWindow for each inactive viewport. + */ + public static void updatePlatformWindows() { + nUpdatePlatformWindows(); + } + + private static native void nUpdatePlatformWindows(); /* + ImGui::UpdatePlatformWindows(); + */ + + /** + * Call in main loop. will call RenderWindow/SwapBuffers platform functions for each secondary viewport which doesn't have the ImGuiViewportFlags_Minimized flag set. + * May be reimplemented by user for custom rendering needs. + */ + public static void renderPlatformWindowsDefault() { + nRenderPlatformWindowsDefault(); + } + + private static native void nRenderPlatformWindowsDefault(); /* + ImGui::RenderPlatformWindowsDefault(); + */ + + /** + * Call DestroyWindow platform functions for all viewports. + * Call from backend Shutdown() if you need to close platform windows before imgui shutdown. + * Otherwise will be called by DestroyContext(). + */ + public static void destroyPlatformWindows() { + nDestroyPlatformWindows(); + } + + private static native void nDestroyPlatformWindows(); /* + ImGui::DestroyPlatformWindows(); + */ + + /** + * This is a helper for backends. + */ + public static ImGuiViewport findViewportByID(final int imGuiID) { + return new ImGuiViewport(nFindViewportByID(imGuiID)); + } + + private static native long nFindViewportByID(int imGuiID); /* + return (intptr_t)ImGui::FindViewportByID(imGuiID); + */ + + /** + * This is a helper for backends. The type platform_handle is decided by the backend (e.g. HWND, MyWindow*, GLFWwindow* etc.) + */ + public static ImGuiViewport findViewportByPlatformHandle(final long platformHandle) { + return new ImGuiViewport(nFindViewportByPlatformHandle(platformHandle)); + } + + private static native long nFindViewportByPlatformHandle(long platformHandle); /* + return (intptr_t)ImGui::FindViewportByPlatformHandle((void*)platformHandle); + */ +} diff --git a/imgui-binding/src/generated/java/imgui/ImGuiIO.java b/imgui-binding/src/generated/java/imgui/ImGuiIO.java new file mode 100644 index 0000000..07503f5 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImGuiIO.java @@ -0,0 +1,2778 @@ +package imgui; + +import imgui.binding.ImGuiStruct; +import imgui.callback.ImStrConsumer; +import imgui.callback.ImStrSupplier; + +/** + * Communicate most settings and inputs/outputs to Dear ImGui using this structure. + * Access via ImGui::GetIO(). Read 'Programmer guide' section in .cpp file for general usage. + */ +public final class ImGuiIO extends ImGuiStruct { + public ImGuiIO(final long ptr) { + super(ptr); + } + + /*JNI + #include "_common.h" + #define THIS ((ImGuiIO*)STRUCT_PTR) + */ + + //------------------------------------------------------------------ + // Configuration (fill once) + //------------------------------------------------------------------ + + /** + * See ImGuiConfigFlags enum. Set by user/application. Gamepad/keyboard navigation options, etc. + */ + public int getConfigFlags() { + return nGetConfigFlags(); + } + + /** + * See ImGuiConfigFlags enum. Set by user/application. Gamepad/keyboard navigation options, etc. + */ + public void setConfigFlags(final int value) { + nSetConfigFlags(value); + } + + /** + * See ImGuiConfigFlags enum. Set by user/application. Gamepad/keyboard navigation options, etc. + */ + public void addConfigFlags(final int flags) { + setConfigFlags(getConfigFlags() | flags); + } + + /** + * See ImGuiConfigFlags enum. Set by user/application. Gamepad/keyboard navigation options, etc. + */ + public void removeConfigFlags(final int flags) { + setConfigFlags(getConfigFlags() & ~(flags)); + } + + /** + * See ImGuiConfigFlags enum. Set by user/application. Gamepad/keyboard navigation options, etc. + */ + public boolean hasConfigFlags(final int flags) { + return (getConfigFlags() & flags) != 0; + } + + private native int nGetConfigFlags(); /* + return THIS->ConfigFlags; + */ + + private native void nSetConfigFlags(int value); /* + THIS->ConfigFlags = value; + */ + + /** + * See ImGuiBackendFlags enum. Set by backend to communicate features supported by the backend. + */ + public int getBackendFlags() { + return nGetBackendFlags(); + } + + /** + * See ImGuiBackendFlags enum. Set by backend to communicate features supported by the backend. + */ + public void setBackendFlags(final int value) { + nSetBackendFlags(value); + } + + /** + * See ImGuiBackendFlags enum. Set by backend to communicate features supported by the backend. + */ + public void addBackendFlags(final int flags) { + setBackendFlags(getBackendFlags() | flags); + } + + /** + * See ImGuiBackendFlags enum. Set by backend to communicate features supported by the backend. + */ + public void removeBackendFlags(final int flags) { + setBackendFlags(getBackendFlags() & ~(flags)); + } + + /** + * See ImGuiBackendFlags enum. Set by backend to communicate features supported by the backend. + */ + public boolean hasBackendFlags(final int flags) { + return (getBackendFlags() & flags) != 0; + } + + private native int nGetBackendFlags(); /* + return THIS->BackendFlags; + */ + + private native void nSetBackendFlags(int value); /* + THIS->BackendFlags = value; + */ + + /** + * Main display size, in pixels (generally == {@code GetMainViewport()->Size}) + */ + public ImVec2 getDisplaySize() { + final ImVec2 dst = new ImVec2(); + nGetDisplaySize(dst); + return dst; + } + + /** + * Main display size, in pixels (generally == {@code GetMainViewport()->Size}) + */ + public float getDisplaySizeX() { + return nGetDisplaySizeX(); + } + + /** + * Main display size, in pixels (generally == {@code GetMainViewport()->Size}) + */ + public float getDisplaySizeY() { + return nGetDisplaySizeY(); + } + + /** + * Main display size, in pixels (generally == {@code GetMainViewport()->Size}) + */ + public void getDisplaySize(final ImVec2 dst) { + nGetDisplaySize(dst); + } + + /** + * Main display size, in pixels (generally == {@code GetMainViewport()->Size}) + */ + public void setDisplaySize(final ImVec2 value) { + nSetDisplaySize(value.x, value.y); + } + + /** + * Main display size, in pixels (generally == {@code GetMainViewport()->Size}) + */ + public void setDisplaySize(final float valueX, final float valueY) { + nSetDisplaySize(valueX, valueY); + } + + private native void nGetDisplaySize(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->DisplaySize, dst); + */ + + private native float nGetDisplaySizeX(); /* + return THIS->DisplaySize.x; + */ + + private native float nGetDisplaySizeY(); /* + return THIS->DisplaySize.y; + */ + + private native void nSetDisplaySize(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->DisplaySize = value; + */ + + /** + * Time elapsed since last frame, in seconds. + */ + public float getDeltaTime() { + return nGetDeltaTime(); + } + + /** + * Time elapsed since last frame, in seconds. + */ + public void setDeltaTime(final float value) { + nSetDeltaTime(value); + } + + private native float nGetDeltaTime(); /* + return THIS->DeltaTime; + */ + + private native void nSetDeltaTime(float value); /* + THIS->DeltaTime = value; + */ + + /** + * Minimum time between saving positions/sizes to .ini file, in seconds. + */ + public float getIniSavingRate() { + return nGetIniSavingRate(); + } + + /** + * Minimum time between saving positions/sizes to .ini file, in seconds. + */ + public void setIniSavingRate(final float value) { + nSetIniSavingRate(value); + } + + private native float nGetIniSavingRate(); /* + return THIS->IniSavingRate; + */ + + private native void nSetIniSavingRate(float value); /* + THIS->IniSavingRate = value; + */ + + /** + * Path to .ini file. Set NULL to disable automatic .ini loading/saving, if e.g. you want to manually load/save from memory. + */ + public String getIniFilename() { + return nGetIniFilename(); + } + + /** + * Path to .ini file. Set NULL to disable automatic .ini loading/saving, if e.g. you want to manually load/save from memory. + */ + public void setIniFilename(final String value) { + nSetIniFilename(value); + } + + private native String nGetIniFilename(); /* + return env->NewStringUTF(THIS->IniFilename); + */ + + private native void nSetIniFilename(String value); /*MANUAL + auto value = obj_value == NULL ? NULL : (char*)env->GetStringUTFChars(obj_value, JNI_FALSE); + THIS->IniFilename = value; + if (value != NULL) env->ReleaseStringUTFChars(obj_value, value); + */ + + /** + * Path to .log file (default parameter to ImGui::LogToFile when no file is specified). + */ + public String getLogFilename() { + return nGetLogFilename(); + } + + /** + * Path to .log file (default parameter to ImGui::LogToFile when no file is specified). + */ + public void setLogFilename(final String value) { + nSetLogFilename(value); + } + + private native String nGetLogFilename(); /* + return env->NewStringUTF(THIS->LogFilename); + */ + + private native void nSetLogFilename(String value); /*MANUAL + auto value = obj_value == NULL ? NULL : (char*)env->GetStringUTFChars(obj_value, JNI_FALSE); + THIS->LogFilename = value; + if (value != NULL) env->ReleaseStringUTFChars(obj_value, value); + */ + + /** + * Time for a double-click, in seconds. + */ + public float getMouseDoubleClickTime() { + return nGetMouseDoubleClickTime(); + } + + /** + * Time for a double-click, in seconds. + */ + public void setMouseDoubleClickTime(final float value) { + nSetMouseDoubleClickTime(value); + } + + private native float nGetMouseDoubleClickTime(); /* + return THIS->MouseDoubleClickTime; + */ + + private native void nSetMouseDoubleClickTime(float value); /* + THIS->MouseDoubleClickTime = value; + */ + + /** + * Distance threshold to stay in to validate a double-click, in pixels. + */ + public float getMouseDoubleClickMaxDist() { + return nGetMouseDoubleClickMaxDist(); + } + + /** + * Distance threshold to stay in to validate a double-click, in pixels. + */ + public void setMouseDoubleClickMaxDist(final float value) { + nSetMouseDoubleClickMaxDist(value); + } + + private native float nGetMouseDoubleClickMaxDist(); /* + return THIS->MouseDoubleClickMaxDist; + */ + + private native void nSetMouseDoubleClickMaxDist(float value); /* + THIS->MouseDoubleClickMaxDist = value; + */ + + /** + * Distance threshold before considering we are dragging. + */ + public float getMouseDragThreshold() { + return nGetMouseDragThreshold(); + } + + /** + * Distance threshold before considering we are dragging. + */ + public void setMouseDragThreshold(final float value) { + nSetMouseDragThreshold(value); + } + + private native float nGetMouseDragThreshold(); /* + return THIS->MouseDragThreshold; + */ + + private native void nSetMouseDragThreshold(float value); /* + THIS->MouseDragThreshold = value; + */ + + /** + * Map of indices into the KeysDown[512] entries array which represent your "native" keyboard state. + */ + public int[] getKeyMap() { + return nGetKeyMap(); + } + + /** + * Map of indices into the KeysDown[512] entries array which represent your "native" keyboard state. + */ + public int getKeyMap(final int idx) { + return nGetKeyMap(idx); + } + + /** + * Map of indices into the KeysDown[512] entries array which represent your "native" keyboard state. + */ + public void setKeyMap(final int[] value) { + nSetKeyMap(value); + } + + /** + * Map of indices into the KeysDown[512] entries array which represent your "native" keyboard state. + */ + public void setKeyMap(final int idx, final int value) { + nSetKeyMap(idx, value); + } + + private native int[] nGetKeyMap(); /* + jint jBuf[ImGuiKey_COUNT]; + for (int i = 0; i < ImGuiKey_COUNT; i++) + jBuf[i] = THIS->KeyMap[i]; + jintArray result = env->NewIntArray(ImGuiKey_COUNT); + env->SetIntArrayRegion(result, 0, ImGuiKey_COUNT, jBuf); + return result; + */ + + private native int nGetKeyMap(int idx); /* + return THIS->KeyMap[idx]; + */ + + private native void nSetKeyMap(int[] value); /* + for (int i = 0; i < ImGuiKey_COUNT; i++) + THIS->KeyMap[i] = value[i]; + */ + + private native int nSetKeyMap(int idx, int value); /* + THIS->KeyMap[idx] = value; + */ + + /** + * When holding a key/button, time before it starts repeating, in seconds (for buttons in Repeat mode, etc.). + */ + public float getKeyRepeatDelay() { + return nGetKeyRepeatDelay(); + } + + /** + * When holding a key/button, time before it starts repeating, in seconds (for buttons in Repeat mode, etc.). + */ + public void setKeyRepeatDelay(final float value) { + nSetKeyRepeatDelay(value); + } + + private native float nGetKeyRepeatDelay(); /* + return THIS->KeyRepeatDelay; + */ + + private native void nSetKeyRepeatDelay(float value); /* + THIS->KeyRepeatDelay = value; + */ + + /** + * When holding a key/button, rate at which it repeats, in seconds. + */ + public float getKeyRepeatRate() { + return nGetKeyRepeatRate(); + } + + /** + * When holding a key/button, rate at which it repeats, in seconds. + */ + public void setKeyRepeatRate(final float value) { + nSetKeyRepeatRate(value); + } + + private native float nGetKeyRepeatRate(); /* + return THIS->KeyRepeatRate; + */ + + private native void nSetKeyRepeatRate(float value); /* + THIS->KeyRepeatRate = value; + */ + + private static final ImFontAtlas _GETFONTS_1 = new ImFontAtlas(0); + + /** + * Font atlas: load, rasterize and pack one or more fonts into a single texture. + */ + public ImFontAtlas getFonts() { + _GETFONTS_1.ptr = nGetFonts(); + return _GETFONTS_1; + } + + /** + * Font atlas: load, rasterize and pack one or more fonts into a single texture. + */ + public void setFonts(final ImFontAtlas value) { + nSetFonts(value.ptr); + } + + private native long nGetFonts(); /* + return (intptr_t)THIS->Fonts; + */ + + private native void nSetFonts(long value); /* + THIS->Fonts = reinterpret_cast(value); + */ + + /** + * Global scale all fonts + */ + public float getFontGlobalScale() { + return nGetFontGlobalScale(); + } + + /** + * Global scale all fonts + */ + public void setFontGlobalScale(final float value) { + nSetFontGlobalScale(value); + } + + private native float nGetFontGlobalScale(); /* + return THIS->FontGlobalScale; + */ + + private native void nSetFontGlobalScale(float value); /* + THIS->FontGlobalScale = value; + */ + + /** + * Allow user scaling text of individual window with CTRL+Wheel. + */ + public boolean getFontAllowUserScaling() { + return nGetFontAllowUserScaling(); + } + + /** + * Allow user scaling text of individual window with CTRL+Wheel. + */ + public void setFontAllowUserScaling(final boolean value) { + nSetFontAllowUserScaling(value); + } + + private native boolean nGetFontAllowUserScaling(); /* + return THIS->FontAllowUserScaling; + */ + + private native void nSetFontAllowUserScaling(boolean value); /* + THIS->FontAllowUserScaling = value; + */ + + /** + * Font to use on NewFrame(). Use NULL to uses Fonts{@code ->}Fonts[0]. + */ + public ImFont getFontDefault() { + return new ImFont(nGetFontDefault()); + } + + /** + * Font to use on NewFrame(). Use NULL to uses Fonts{@code ->}Fonts[0]. + */ + public void setFontDefault(final ImFont value) { + nSetFontDefault(value.ptr); + } + + private native long nGetFontDefault(); /* + return (intptr_t)THIS->FontDefault; + */ + + private native void nSetFontDefault(long value); /* + THIS->FontDefault = reinterpret_cast(value); + */ + + /** + * For retina display or other situations where window coordinates are different from framebuffer coordinates. This generally ends up in ImDrawData::FramebufferScale. + */ + public ImVec2 getDisplayFramebufferScale() { + final ImVec2 dst = new ImVec2(); + nGetDisplayFramebufferScale(dst); + return dst; + } + + /** + * For retina display or other situations where window coordinates are different from framebuffer coordinates. This generally ends up in ImDrawData::FramebufferScale. + */ + public float getDisplayFramebufferScaleX() { + return nGetDisplayFramebufferScaleX(); + } + + /** + * For retina display or other situations where window coordinates are different from framebuffer coordinates. This generally ends up in ImDrawData::FramebufferScale. + */ + public float getDisplayFramebufferScaleY() { + return nGetDisplayFramebufferScaleY(); + } + + /** + * For retina display or other situations where window coordinates are different from framebuffer coordinates. This generally ends up in ImDrawData::FramebufferScale. + */ + public void getDisplayFramebufferScale(final ImVec2 dst) { + nGetDisplayFramebufferScale(dst); + } + + /** + * For retina display or other situations where window coordinates are different from framebuffer coordinates. This generally ends up in ImDrawData::FramebufferScale. + */ + public void setDisplayFramebufferScale(final ImVec2 value) { + nSetDisplayFramebufferScale(value.x, value.y); + } + + /** + * For retina display or other situations where window coordinates are different from framebuffer coordinates. This generally ends up in ImDrawData::FramebufferScale. + */ + public void setDisplayFramebufferScale(final float valueX, final float valueY) { + nSetDisplayFramebufferScale(valueX, valueY); + } + + private native void nGetDisplayFramebufferScale(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->DisplayFramebufferScale, dst); + */ + + private native float nGetDisplayFramebufferScaleX(); /* + return THIS->DisplayFramebufferScale.x; + */ + + private native float nGetDisplayFramebufferScaleY(); /* + return THIS->DisplayFramebufferScale.y; + */ + + private native void nSetDisplayFramebufferScale(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->DisplayFramebufferScale = value; + */ + + // Docking options (when ImGuiConfigFlags_DockingEnable is set) + + /** + * Simplified docking mode: disable window splitting, so docking is limited to merging multiple windows together into tab-bars. + */ + public boolean getConfigDockingNoSplit() { + return nGetConfigDockingNoSplit(); + } + + /** + * Simplified docking mode: disable window splitting, so docking is limited to merging multiple windows together into tab-bars. + */ + public void setConfigDockingNoSplit(final boolean value) { + nSetConfigDockingNoSplit(value); + } + + private native boolean nGetConfigDockingNoSplit(); /* + return THIS->ConfigDockingNoSplit; + */ + + private native void nSetConfigDockingNoSplit(boolean value); /* + THIS->ConfigDockingNoSplit = value; + */ + + /** + * Enable docking with holding Shift key (reduce visual noise, allows dropping in wider space) + */ + public boolean getConfigDockingWithShift() { + return nGetConfigDockingWithShift(); + } + + /** + * Enable docking with holding Shift key (reduce visual noise, allows dropping in wider space) + */ + public void setConfigDockingWithShift(final boolean value) { + nSetConfigDockingWithShift(value); + } + + private native boolean nGetConfigDockingWithShift(); /* + return THIS->ConfigDockingWithShift; + */ + + private native void nSetConfigDockingWithShift(boolean value); /* + THIS->ConfigDockingWithShift = value; + */ + + public boolean getConfigDockingAlwaysTabBar() { + return nGetConfigDockingAlwaysTabBar(); + } + + public void setConfigDockingAlwaysTabBar(final boolean value) { + nSetConfigDockingAlwaysTabBar(value); + } + + private native boolean nGetConfigDockingAlwaysTabBar(); /* + return THIS->ConfigDockingAlwaysTabBar; + */ + + private native void nSetConfigDockingAlwaysTabBar(boolean value); /* + THIS->ConfigDockingAlwaysTabBar = value; + */ + + /** + * Make window or viewport transparent when docking and only display docking boxes on the target viewport. Useful if rendering of multiple viewport cannot be synced. Best used with ConfigViewportsNoAutoMerge. + */ + public boolean getConfigDockingTransparentPayload() { + return nGetConfigDockingTransparentPayload(); + } + + /** + * Make window or viewport transparent when docking and only display docking boxes on the target viewport. Useful if rendering of multiple viewport cannot be synced. Best used with ConfigViewportsNoAutoMerge. + */ + public void setConfigDockingTransparentPayload(final boolean value) { + nSetConfigDockingTransparentPayload(value); + } + + private native boolean nGetConfigDockingTransparentPayload(); /* + return THIS->ConfigDockingTransparentPayload; + */ + + private native void nSetConfigDockingTransparentPayload(boolean value); /* + THIS->ConfigDockingTransparentPayload = value; + */ + + // Viewport options (when ImGuiConfigFlags_ViewportsEnable is set) + + /** + * Set to make all floating imgui windows always create their own viewport. Otherwise, they are merged into the main host viewports when overlapping it. May also set ImGuiViewportFlags_NoAutoMerge on individual viewport. + */ + public boolean getConfigViewportsNoAutoMerge() { + return nGetConfigViewportsNoAutoMerge(); + } + + /** + * Set to make all floating imgui windows always create their own viewport. Otherwise, they are merged into the main host viewports when overlapping it. May also set ImGuiViewportFlags_NoAutoMerge on individual viewport. + */ + public void setConfigViewportsNoAutoMerge(final boolean value) { + nSetConfigViewportsNoAutoMerge(value); + } + + private native boolean nGetConfigViewportsNoAutoMerge(); /* + return THIS->ConfigViewportsNoAutoMerge; + */ + + private native void nSetConfigViewportsNoAutoMerge(boolean value); /* + THIS->ConfigViewportsNoAutoMerge = value; + */ + + /** + * Disable default OS task bar icon flag for secondary viewports. When a viewport doesn't want a task bar icon, ImGuiViewportFlags_NoTaskBarIcon will be set on it. + */ + public boolean getConfigViewportsNoTaskBarIcon() { + return nGetConfigViewportsNoTaskBarIcon(); + } + + /** + * Disable default OS task bar icon flag for secondary viewports. When a viewport doesn't want a task bar icon, ImGuiViewportFlags_NoTaskBarIcon will be set on it. + */ + public void setConfigViewportsNoTaskBarIcon(final boolean value) { + nSetConfigViewportsNoTaskBarIcon(value); + } + + private native boolean nGetConfigViewportsNoTaskBarIcon(); /* + return THIS->ConfigViewportsNoTaskBarIcon; + */ + + private native void nSetConfigViewportsNoTaskBarIcon(boolean value); /* + THIS->ConfigViewportsNoTaskBarIcon = value; + */ + + /** + * Disable default OS window decoration flag for secondary viewports. When a viewport doesn't want window decorations, ImGuiViewportFlags_NoDecoration will be set on it. Enabling decoration can create subsequent issues at OS levels (e.g. minimum window size). + */ + public boolean getConfigViewportsNoDecoration() { + return nGetConfigViewportsNoDecoration(); + } + + /** + * Disable default OS window decoration flag for secondary viewports. When a viewport doesn't want window decorations, ImGuiViewportFlags_NoDecoration will be set on it. Enabling decoration can create subsequent issues at OS levels (e.g. minimum window size). + */ + public void setConfigViewportsNoDecoration(final boolean value) { + nSetConfigViewportsNoDecoration(value); + } + + private native boolean nGetConfigViewportsNoDecoration(); /* + return THIS->ConfigViewportsNoDecoration; + */ + + private native void nSetConfigViewportsNoDecoration(boolean value); /* + THIS->ConfigViewportsNoDecoration = value; + */ + + /** + * Disable default OS parenting to main viewport for secondary viewports. By default, viewports are marked with ParentViewportId = {@code }, expecting the platform backend to setup a parent/child relationship between the OS windows (some backend may ignore this). Set to true if you want the default to be 0, then all viewports will be top-level OS windows. + */ + public boolean getConfigViewportsNoDefaultParent() { + return nGetConfigViewportsNoDefaultParent(); + } + + /** + * Disable default OS parenting to main viewport for secondary viewports. By default, viewports are marked with ParentViewportId = {@code }, expecting the platform backend to setup a parent/child relationship between the OS windows (some backend may ignore this). Set to true if you want the default to be 0, then all viewports will be top-level OS windows. + */ + public void setConfigViewportsNoDefaultParent(final boolean value) { + nSetConfigViewportsNoDefaultParent(value); + } + + private native boolean nGetConfigViewportsNoDefaultParent(); /* + return THIS->ConfigViewportsNoDefaultParent; + */ + + private native void nSetConfigViewportsNoDefaultParent(boolean value); /* + THIS->ConfigViewportsNoDefaultParent = value; + */ + + // Miscellaneous options + + /** + * Request ImGui to draw a mouse cursor for you (if you are on a platform without a mouse cursor). + * Cannot be easily renamed to 'io.ConfigXXX' because this is frequently used by backend implementations. + */ + public boolean getMouseDrawCursor() { + return nGetMouseDrawCursor(); + } + + /** + * Request ImGui to draw a mouse cursor for you (if you are on a platform without a mouse cursor). + * Cannot be easily renamed to 'io.ConfigXXX' because this is frequently used by backend implementations. + */ + public void setMouseDrawCursor(final boolean value) { + nSetMouseDrawCursor(value); + } + + private native boolean nGetMouseDrawCursor(); /* + return THIS->MouseDrawCursor; + */ + + private native void nSetMouseDrawCursor(boolean value); /* + THIS->MouseDrawCursor = value; + */ + + /** + * OS X style: Text editing cursor movement using Alt instead of Ctrl, Shortcuts using Cmd/Super instead of Ctrl, + * Line/Text Start and End using Cmd+Arrows instead of Home/End, Double click selects by word instead of selecting whole text, + * Multi-selection in lists uses Cmd/Super instead of Ctrl + */ + public boolean getConfigMacOSXBehaviors() { + return nGetConfigMacOSXBehaviors(); + } + + /** + * OS X style: Text editing cursor movement using Alt instead of Ctrl, Shortcuts using Cmd/Super instead of Ctrl, + * Line/Text Start and End using Cmd+Arrows instead of Home/End, Double click selects by word instead of selecting whole text, + * Multi-selection in lists uses Cmd/Super instead of Ctrl + */ + public void setConfigMacOSXBehaviors(final boolean value) { + nSetConfigMacOSXBehaviors(value); + } + + private native boolean nGetConfigMacOSXBehaviors(); /* + return THIS->ConfigMacOSXBehaviors; + */ + + private native void nSetConfigMacOSXBehaviors(boolean value); /* + THIS->ConfigMacOSXBehaviors = value; + */ + + /** + * Set to false to disable blinking cursor, for users who consider it distracting. + */ + public boolean getConfigInputTextCursorBlink() { + return nGetConfigInputTextCursorBlink(); + } + + /** + * Set to false to disable blinking cursor, for users who consider it distracting. + */ + public void setConfigInputTextCursorBlink(final boolean value) { + nSetConfigInputTextCursorBlink(value); + } + + private native boolean nGetConfigInputTextCursorBlink(); /* + return THIS->ConfigInputTextCursorBlink; + */ + + private native void nSetConfigInputTextCursorBlink(boolean value); /* + THIS->ConfigInputTextCursorBlink = value; + */ + + /** + * [BETA] Enable turning DragXXX widgets into text input with a simple mouse click-release (without moving). Not desirable on devices without a keyboard. + */ + public boolean getConfigDragClickToInputText() { + return nGetConfigDragClickToInputText(); + } + + /** + * [BETA] Enable turning DragXXX widgets into text input with a simple mouse click-release (without moving). Not desirable on devices without a keyboard. + */ + public void setConfigDragClickToInputText(final boolean value) { + nSetConfigDragClickToInputText(value); + } + + private native boolean nGetConfigDragClickToInputText(); /* + return THIS->ConfigDragClickToInputText; + */ + + private native void nSetConfigDragClickToInputText(boolean value); /* + THIS->ConfigDragClickToInputText = value; + */ + + /** + * Enable resizing of windows from their edges and from the lower-left corner. + * This requires (io.BackendFlags {@code &} ImGuiBackendFlags_HasMouseCursors) because it needs mouse cursor feedback. + * (This used to be a per-window ImGuiWindowFlags_ResizeFromAnySide flag) + */ + public boolean getConfigWindowsResizeFromEdges() { + return nGetConfigWindowsResizeFromEdges(); + } + + /** + * Enable resizing of windows from their edges and from the lower-left corner. + * This requires (io.BackendFlags {@code &} ImGuiBackendFlags_HasMouseCursors) because it needs mouse cursor feedback. + * (This used to be a per-window ImGuiWindowFlags_ResizeFromAnySide flag) + */ + public void setConfigWindowsResizeFromEdges(final boolean value) { + nSetConfigWindowsResizeFromEdges(value); + } + + private native boolean nGetConfigWindowsResizeFromEdges(); /* + return THIS->ConfigWindowsResizeFromEdges; + */ + + private native void nSetConfigWindowsResizeFromEdges(boolean value); /* + THIS->ConfigWindowsResizeFromEdges = value; + */ + + /** + * Enable allowing to move windows only when clicking on their title bar. Does not apply to windows without a title bar. + */ + public boolean getConfigWindowsMoveFromTitleBarOnly() { + return nGetConfigWindowsMoveFromTitleBarOnly(); + } + + /** + * Enable allowing to move windows only when clicking on their title bar. Does not apply to windows without a title bar. + */ + public void setConfigWindowsMoveFromTitleBarOnly(final boolean value) { + nSetConfigWindowsMoveFromTitleBarOnly(value); + } + + private native boolean nGetConfigWindowsMoveFromTitleBarOnly(); /* + return THIS->ConfigWindowsMoveFromTitleBarOnly; + */ + + private native void nSetConfigWindowsMoveFromTitleBarOnly(boolean value); /* + THIS->ConfigWindowsMoveFromTitleBarOnly = value; + */ + + /** + * [Timer (in seconds) to free transient windows/tables memory buffers when unused. Set to -1.0f to disable. + */ + public boolean getConfigMemoryCompactTimer() { + return nGetConfigMemoryCompactTimer(); + } + + /** + * [Timer (in seconds) to free transient windows/tables memory buffers when unused. Set to -1.0f to disable. + */ + public void setConfigMemoryCompactTimer(final boolean value) { + nSetConfigMemoryCompactTimer(value); + } + + private native boolean nGetConfigMemoryCompactTimer(); /* + return THIS->ConfigMemoryCompactTimer; + */ + + private native void nSetConfigMemoryCompactTimer(boolean value); /* + THIS->ConfigMemoryCompactTimer = value; + */ + + //------------------------------------------------------------------ + // Platform Functions + //------------------------------------------------------------------ + + /** + * Optional: Platform backend name (informational only! will be displayed in About Window) + User data for backend/wrappers to store their own stuff. + */ + public String getBackendPlatformName() { + return nGetBackendPlatformName(); + } + + /** + * Optional: Platform backend name (informational only! will be displayed in About Window) + User data for backend/wrappers to store their own stuff. + */ + public void setBackendPlatformName(final String value) { + nSetBackendPlatformName(value); + } + + private native String nGetBackendPlatformName(); /* + return env->NewStringUTF(THIS->BackendPlatformName); + */ + + private native void nSetBackendPlatformName(String value); /*MANUAL + auto value = obj_value == NULL ? NULL : (char*)env->GetStringUTFChars(obj_value, JNI_FALSE); + THIS->BackendPlatformName = value; + if (value != NULL) env->ReleaseStringUTFChars(obj_value, value); + */ + + public String getBackendRendererName() { + return nGetBackendRendererName(); + } + + public void setBackendRendererName(final String value) { + nSetBackendRendererName(value); + } + + private native String nGetBackendRendererName(); /* + return env->NewStringUTF(THIS->BackendRendererName); + */ + + private native void nSetBackendRendererName(String value); /*MANUAL + auto value = obj_value == NULL ? NULL : (char*)env->GetStringUTFChars(obj_value, JNI_FALSE); + THIS->BackendRendererName = value; + if (value != NULL) env->ReleaseStringUTFChars(obj_value, value); + */ + + // Optional: Access OS clipboard + // (default to use native Win32 clipIsMouseDraggingboard on Windows, otherwise uses a private clipboard. Override to access OS clipboard on other architectures) + + /*JNI + jobject _setClipboardTextCallback = NULL; + jobject _getClipboardTextCallback = NULL; + + void setClipboardTextStub(void* userData, const char* text) { + Jni::CallImStrConsumer(Jni::GetEnv(), _setClipboardTextCallback, text); + } + + const char* getClipboardTextStub(void* user_data) { + JNIEnv* env = Jni::GetEnv(); + jstring jstr = Jni::CallImStrSupplier(env, _getClipboardTextCallback); + return env->GetStringUTFChars(jstr, 0); + } + */ + + public native void setSetClipboardTextFn(ImStrConsumer setClipboardTextCallback); /* + if (_setClipboardTextCallback != NULL) { + env->DeleteGlobalRef(_setClipboardTextCallback); + } + _setClipboardTextCallback = env->NewGlobalRef(setClipboardTextCallback); + THIS->SetClipboardTextFn = setClipboardTextStub; + */ + + public native void setGetClipboardTextFn(ImStrSupplier getClipboardTextCallback); /* + if (_getClipboardTextCallback != NULL) { + env->DeleteGlobalRef(_getClipboardTextCallback); + } + _getClipboardTextCallback = env->NewGlobalRef(getClipboardTextCallback); + THIS->GetClipboardTextFn = getClipboardTextStub; + */ + + //------------------------------------------------------------------ + // Input - Fill before calling NewFrame() + //------------------------------------------------------------------ + + /** + * Mouse position, in pixels. Set to ImVec2(-FLT_MAX, -FLT_MAX) if mouse is unavailable (on another screen, etc.) + */ + public ImVec2 getMousePos() { + final ImVec2 dst = new ImVec2(); + nGetMousePos(dst); + return dst; + } + + /** + * Mouse position, in pixels. Set to ImVec2(-FLT_MAX, -FLT_MAX) if mouse is unavailable (on another screen, etc.) + */ + public float getMousePosX() { + return nGetMousePosX(); + } + + /** + * Mouse position, in pixels. Set to ImVec2(-FLT_MAX, -FLT_MAX) if mouse is unavailable (on another screen, etc.) + */ + public float getMousePosY() { + return nGetMousePosY(); + } + + /** + * Mouse position, in pixels. Set to ImVec2(-FLT_MAX, -FLT_MAX) if mouse is unavailable (on another screen, etc.) + */ + public void getMousePos(final ImVec2 dst) { + nGetMousePos(dst); + } + + /** + * Mouse position, in pixels. Set to ImVec2(-FLT_MAX, -FLT_MAX) if mouse is unavailable (on another screen, etc.) + */ + public void setMousePos(final ImVec2 value) { + nSetMousePos(value.x, value.y); + } + + /** + * Mouse position, in pixels. Set to ImVec2(-FLT_MAX, -FLT_MAX) if mouse is unavailable (on another screen, etc.) + */ + public void setMousePos(final float valueX, final float valueY) { + nSetMousePos(valueX, valueY); + } + + private native void nGetMousePos(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->MousePos, dst); + */ + + private native float nGetMousePosX(); /* + return THIS->MousePos.x; + */ + + private native float nGetMousePosY(); /* + return THIS->MousePos.y; + */ + + private native void nSetMousePos(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->MousePos = value; + */ + + /** + * Mouse buttons: 0=left, 1=right, 2=middle + extras (ImGuiMouseButton_COUNT == 5). Dear ImGui mostly uses left and right buttons. + * Others buttons allows us to track if the mouse is being used by your application + available to user as a convenience via IsMouse** API. + */ + public boolean[] getMouseDown() { + return nGetMouseDown(); + } + + /** + * Mouse buttons: 0=left, 1=right, 2=middle + extras (ImGuiMouseButton_COUNT == 5). Dear ImGui mostly uses left and right buttons. + * Others buttons allows us to track if the mouse is being used by your application + available to user as a convenience via IsMouse** API. + */ + public boolean getMouseDown(final int idx) { + return nGetMouseDown(idx); + } + + /** + * Mouse buttons: 0=left, 1=right, 2=middle + extras (ImGuiMouseButton_COUNT == 5). Dear ImGui mostly uses left and right buttons. + * Others buttons allows us to track if the mouse is being used by your application + available to user as a convenience via IsMouse** API. + */ + public void setMouseDown(final boolean[] value) { + nSetMouseDown(value); + } + + /** + * Mouse buttons: 0=left, 1=right, 2=middle + extras (ImGuiMouseButton_COUNT == 5). Dear ImGui mostly uses left and right buttons. + * Others buttons allows us to track if the mouse is being used by your application + available to user as a convenience via IsMouse** API. + */ + public void setMouseDown(final int idx, final boolean value) { + nSetMouseDown(idx, value); + } + + private native boolean[] nGetMouseDown(); /* + jboolean jBuf[5]; + for (int i = 0; i < 5; i++) + jBuf[i] = THIS->MouseDown[i]; + jbooleanArray result = env->NewBooleanArray(5); + env->SetBooleanArrayRegion(result, 0, 5, jBuf); + return result; + */ + + private native boolean nGetMouseDown(int idx); /* + return THIS->MouseDown[idx]; + */ + + private native void nSetMouseDown(boolean[] value); /* + for (int i = 0; i < 5; i++) + THIS->MouseDown[i] = value[i]; + */ + + private native boolean nSetMouseDown(int idx, boolean value); /* + THIS->MouseDown[idx] = value; + */ + + /** + * Mouse wheel Vertical: 1 unit scrolls about 5 lines text. + */ + public float getMouseWheel() { + return nGetMouseWheel(); + } + + /** + * Mouse wheel Vertical: 1 unit scrolls about 5 lines text. + */ + public void setMouseWheel(final float value) { + nSetMouseWheel(value); + } + + private native float nGetMouseWheel(); /* + return THIS->MouseWheel; + */ + + private native void nSetMouseWheel(float value); /* + THIS->MouseWheel = value; + */ + + /** + * Mouse wheel Horizontal. Most users don't have a mouse with an horizontal wheel, may not be filled by all backends. + */ + public float getMouseWheelH() { + return nGetMouseWheelH(); + } + + /** + * Mouse wheel Horizontal. Most users don't have a mouse with an horizontal wheel, may not be filled by all backends. + */ + public void setMouseWheelH(final float value) { + nSetMouseWheelH(value); + } + + private native float nGetMouseWheelH(); /* + return THIS->MouseWheelH; + */ + + private native void nSetMouseWheelH(float value); /* + THIS->MouseWheelH = value; + */ + + /** + * (Optional) When using multiple viewports: viewport the OS mouse cursor is hovering _IGNORING_ viewports with the ImGuiViewportFlags_NoInputs flag, + * and _REGARDLESS_ of whether another viewport is focused. Set io.BackendFlags |= ImGuiBackendFlags_HasMouseHoveredViewport if you can provide this info. + * If you don't imgui will infer the value using the rectangles and last focused time of the viewports it knows about (ignoring other OS windows). + */ + public int getMouseHoveredViewport() { + return nGetMouseHoveredViewport(); + } + + /** + * (Optional) When using multiple viewports: viewport the OS mouse cursor is hovering _IGNORING_ viewports with the ImGuiViewportFlags_NoInputs flag, + * and _REGARDLESS_ of whether another viewport is focused. Set io.BackendFlags |= ImGuiBackendFlags_HasMouseHoveredViewport if you can provide this info. + * If you don't imgui will infer the value using the rectangles and last focused time of the viewports it knows about (ignoring other OS windows). + */ + public void setMouseHoveredViewport(final int value) { + nSetMouseHoveredViewport(value); + } + + private native int nGetMouseHoveredViewport(); /* + return THIS->MouseHoveredViewport; + */ + + private native void nSetMouseHoveredViewport(int value); /* + THIS->MouseHoveredViewport = value; + */ + + /** + * Keyboard modifier pressed: Control + */ + public boolean getKeyCtrl() { + return nGetKeyCtrl(); + } + + /** + * Keyboard modifier pressed: Control + */ + public void setKeyCtrl(final boolean value) { + nSetKeyCtrl(value); + } + + private native boolean nGetKeyCtrl(); /* + return THIS->KeyCtrl; + */ + + private native void nSetKeyCtrl(boolean value); /* + THIS->KeyCtrl = value; + */ + + /** + * Keyboard modifier pressed: Shift + */ + public boolean getKeyShift() { + return nGetKeyShift(); + } + + /** + * Keyboard modifier pressed: Shift + */ + public void setKeyShift(final boolean value) { + nSetKeyShift(value); + } + + private native boolean nGetKeyShift(); /* + return THIS->KeyShift; + */ + + private native void nSetKeyShift(boolean value); /* + THIS->KeyShift = value; + */ + + /** + * Keyboard modifier pressed: Alt + */ + public boolean getKeyAlt() { + return nGetKeyAlt(); + } + + /** + * Keyboard modifier pressed: Alt + */ + public void setKeyAlt(final boolean value) { + nSetKeyAlt(value); + } + + private native boolean nGetKeyAlt(); /* + return THIS->KeyAlt; + */ + + private native void nSetKeyAlt(boolean value); /* + THIS->KeyAlt = value; + */ + + /** + * Keyboard modifier pressed: Cmd/Super/Windows + */ + public boolean getKeySuper() { + return nGetKeySuper(); + } + + /** + * Keyboard modifier pressed: Cmd/Super/Windows + */ + public void setKeySuper(final boolean value) { + nSetKeySuper(value); + } + + private native boolean nGetKeySuper(); /* + return THIS->KeySuper; + */ + + private native void nSetKeySuper(boolean value); /* + THIS->KeySuper = value; + */ + + /** + * Keyboard keys that are pressed (ideally left in the "native" order your engine has access to keyboard keys, so you can use your own defines/enums for keys). + */ + public boolean[] getKeysDown() { + return nGetKeysDown(); + } + + /** + * Keyboard keys that are pressed (ideally left in the "native" order your engine has access to keyboard keys, so you can use your own defines/enums for keys). + */ + public boolean getKeysDown(final int idx) { + return nGetKeysDown(idx); + } + + /** + * Keyboard keys that are pressed (ideally left in the "native" order your engine has access to keyboard keys, so you can use your own defines/enums for keys). + */ + public void setKeysDown(final boolean[] value) { + nSetKeysDown(value); + } + + /** + * Keyboard keys that are pressed (ideally left in the "native" order your engine has access to keyboard keys, so you can use your own defines/enums for keys). + */ + public void setKeysDown(final int idx, final boolean value) { + nSetKeysDown(idx, value); + } + + private native boolean[] nGetKeysDown(); /* + jboolean jBuf[512]; + for (int i = 0; i < 512; i++) + jBuf[i] = THIS->KeysDown[i]; + jbooleanArray result = env->NewBooleanArray(512); + env->SetBooleanArrayRegion(result, 0, 512, jBuf); + return result; + */ + + private native boolean nGetKeysDown(int idx); /* + return THIS->KeysDown[idx]; + */ + + private native void nSetKeysDown(boolean[] value); /* + for (int i = 0; i < 512; i++) + THIS->KeysDown[i] = value[i]; + */ + + private native boolean nSetKeysDown(int idx, boolean value); /* + THIS->KeysDown[idx] = value; + */ + + /** + * Gamepad inputs. Cleared back to zero by EndFrame(). Keyboard keys will be auto-mapped and be written here by NewFrame(). + */ + public float[] getNavInputs() { + return nGetNavInputs(); + } + + /** + * Gamepad inputs. Cleared back to zero by EndFrame(). Keyboard keys will be auto-mapped and be written here by NewFrame(). + */ + public float getNavInputs(final int idx) { + return nGetNavInputs(idx); + } + + /** + * Gamepad inputs. Cleared back to zero by EndFrame(). Keyboard keys will be auto-mapped and be written here by NewFrame(). + */ + public void setNavInputs(final float[] value) { + nSetNavInputs(value); + } + + /** + * Gamepad inputs. Cleared back to zero by EndFrame(). Keyboard keys will be auto-mapped and be written here by NewFrame(). + */ + public void setNavInputs(final int idx, final float value) { + nSetNavInputs(idx, value); + } + + private native float[] nGetNavInputs(); /* + jfloat jBuf[512]; + for (int i = 0; i < 512; i++) + jBuf[i] = THIS->NavInputs[i]; + jfloatArray result = env->NewFloatArray(512); + env->SetFloatArrayRegion(result, 0, 512, jBuf); + return result; + */ + + private native float nGetNavInputs(int idx); /* + return THIS->NavInputs[idx]; + */ + + private native void nSetNavInputs(float[] value); /* + for (int i = 0; i < 512; i++) + THIS->NavInputs[i] = value[i]; + */ + + private native float nSetNavInputs(int idx, float value); /* + THIS->NavInputs[idx] = value; + */ + + // Functions + + /** + * Queue new character input. + */ + public void addInputCharacter(final int c) { + nAddInputCharacter(c); + } + + private native void nAddInputCharacter(int c); /* + THIS->AddInputCharacter((unsigned int)c); + */ + + /** + * Queue new character input from an UTF-16 character, it can be a surrogate + */ + public void addInputCharacterUTF16(final short c) { + nAddInputCharacterUTF16(c); + } + + private native void nAddInputCharacterUTF16(short c); /* + THIS->AddInputCharacterUTF16((ImWchar16)c); + */ + + /** + * Queue new characters input from an UTF-8 string. + */ + public void addInputCharactersUTF8(final String str) { + nAddInputCharactersUTF8(str); + } + + private native void nAddInputCharactersUTF8(String str); /*MANUAL + auto str = obj_str == NULL ? NULL : (char*)env->GetStringUTFChars(obj_str, JNI_FALSE); + THIS->AddInputCharactersUTF8(str); + if (str != NULL) env->ReleaseStringUTFChars(obj_str, str); + */ + + /** + * Notifies Dear ImGui when hosting platform windows lose or gain input focus + */ + public void addFocusEvent(final boolean focused) { + nAddFocusEvent(focused); + } + + private native void nAddFocusEvent(boolean focused); /* + THIS->AddFocusEvent(focused); + */ + + /** + * [Internal] Clear the text input buffer manually + */ + public void clearInputCharacters() { + nClearInputCharacters(); + } + + private native void nClearInputCharacters(); /* + THIS->ClearInputCharacters(); + */ + + /** + * [Internal] Release all keys + */ + public void clearInputKeys() { + nClearInputKeys(); + } + + private native void nClearInputKeys(); /* + THIS->ClearInputKeys(); + */ + + //------------------------------------------------------------------ + // Output - Updated by NewFrame() or EndFrame()/Render() + // (when reading from the io.WantCaptureMouse, io.WantCaptureKeyboard flags to dispatch your inputs, it is + // generally easier and more correct to use their state BEFORE calling NewFrame(). See FAQ for details!) + //------------------------------------------------------------------ + + /** + * Set when Dear ImGui will use mouse inputs, in this case do not dispatch them to your main game/application + * (either way, always pass on mouse inputs to imgui). + * (e.g. unclicked mouse is hovering over an imgui window, widget is active, mouse was clicked over an imgui window, etc.). + */ + public boolean getWantCaptureMouse() { + return nGetWantCaptureMouse(); + } + + /** + * Set when Dear ImGui will use mouse inputs, in this case do not dispatch them to your main game/application + * (either way, always pass on mouse inputs to imgui). + * (e.g. unclicked mouse is hovering over an imgui window, widget is active, mouse was clicked over an imgui window, etc.). + */ + public void setWantCaptureMouse(final boolean value) { + nSetWantCaptureMouse(value); + } + + private native boolean nGetWantCaptureMouse(); /* + return THIS->WantCaptureMouse; + */ + + private native void nSetWantCaptureMouse(boolean value); /* + THIS->WantCaptureMouse = value; + */ + + /** + * Set when Dear ImGui will use keyboard inputs, in this case do not dispatch them to your main game/application + * (either way, always pass keyboard inputs to imgui). (e.g. InputText active, or an imgui window is focused and navigation is enabled, etc.). + */ + public boolean getWantCaptureKeyboard() { + return nGetWantCaptureKeyboard(); + } + + /** + * Set when Dear ImGui will use keyboard inputs, in this case do not dispatch them to your main game/application + * (either way, always pass keyboard inputs to imgui). (e.g. InputText active, or an imgui window is focused and navigation is enabled, etc.). + */ + public void setWantCaptureKeyboard(final boolean value) { + nSetWantCaptureKeyboard(value); + } + + private native boolean nGetWantCaptureKeyboard(); /* + return THIS->WantCaptureKeyboard; + */ + + private native void nSetWantCaptureKeyboard(boolean value); /* + THIS->WantCaptureKeyboard = value; + */ + + /** + * Mobile/console: when set, you may display an on-screen keyboard. + * This is set by Dear ImGui when it wants textual keyboard input to happen (e.g. when a InputText widget is active). + */ + public boolean getWantTextInput() { + return nGetWantTextInput(); + } + + /** + * Mobile/console: when set, you may display an on-screen keyboard. + * This is set by Dear ImGui when it wants textual keyboard input to happen (e.g. when a InputText widget is active). + */ + public void setWantTextInput(final boolean value) { + nSetWantTextInput(value); + } + + private native boolean nGetWantTextInput(); /* + return THIS->WantTextInput; + */ + + private native void nSetWantTextInput(boolean value); /* + THIS->WantTextInput = value; + */ + + /** + * MousePos has been altered, backend should reposition mouse on next frame. Rarely used! Set only when ImGuiConfigFlags_NavEnableSetMousePos flag is enabled. + */ + public boolean getWantSetMousePos() { + return nGetWantSetMousePos(); + } + + /** + * MousePos has been altered, backend should reposition mouse on next frame. Rarely used! Set only when ImGuiConfigFlags_NavEnableSetMousePos flag is enabled. + */ + public void setWantSetMousePos(final boolean value) { + nSetWantSetMousePos(value); + } + + private native boolean nGetWantSetMousePos(); /* + return THIS->WantSetMousePos; + */ + + private native void nSetWantSetMousePos(boolean value); /* + THIS->WantSetMousePos = value; + */ + + /** + * When manual .ini load/save is active (io.IniFilename == NULL), + * this will be set to notify your application that you can call SaveIniSettingsToMemory() and save yourself. + * Important: clear io.WantSaveIniSettings yourself after saving! + */ + public boolean getWantSaveIniSettings() { + return nGetWantSaveIniSettings(); + } + + /** + * When manual .ini load/save is active (io.IniFilename == NULL), + * this will be set to notify your application that you can call SaveIniSettingsToMemory() and save yourself. + * Important: clear io.WantSaveIniSettings yourself after saving! + */ + public void setWantSaveIniSettings(final boolean value) { + nSetWantSaveIniSettings(value); + } + + private native boolean nGetWantSaveIniSettings(); /* + return THIS->WantSaveIniSettings; + */ + + private native void nSetWantSaveIniSettings(boolean value); /* + THIS->WantSaveIniSettings = value; + */ + + /** + * Keyboard/Gamepad navigation is currently allowed (will handle ImGuiKey_NavXXX events) = a window is focused + * and it doesn't use the ImGuiWindowFlags_NoNavInputs flag. + */ + public boolean getNavActive() { + return nGetNavActive(); + } + + /** + * Keyboard/Gamepad navigation is currently allowed (will handle ImGuiKey_NavXXX events) = a window is focused + * and it doesn't use the ImGuiWindowFlags_NoNavInputs flag. + */ + public void setNavActive(final boolean value) { + nSetNavActive(value); + } + + private native boolean nGetNavActive(); /* + return THIS->NavActive; + */ + + private native void nSetNavActive(boolean value); /* + THIS->NavActive = value; + */ + + /** + * Keyboard/Gamepad navigation is visible and allowed (will handle ImGuiKey_NavXXX events). + */ + public boolean getNavVisible() { + return nGetNavVisible(); + } + + /** + * Keyboard/Gamepad navigation is visible and allowed (will handle ImGuiKey_NavXXX events). + */ + public void setNavVisible(final boolean value) { + nSetNavVisible(value); + } + + private native boolean nGetNavVisible(); /* + return THIS->NavVisible; + */ + + private native void nSetNavVisible(boolean value); /* + THIS->NavVisible = value; + */ + + /** + * Application framerate estimate, in frame per second. Solely for convenience. Rolling average estimation based on io.DeltaTime over 120 frames. + * Solely for convenience. Rolling average estimation based on IO.DeltaTime over 120 frames + */ + public float getFramerate() { + return nGetFramerate(); + } + + /** + * Application framerate estimate, in frame per second. Solely for convenience. Rolling average estimation based on io.DeltaTime over 120 frames. + * Solely for convenience. Rolling average estimation based on IO.DeltaTime over 120 frames + */ + public void setFramerate(final float value) { + nSetFramerate(value); + } + + private native float nGetFramerate(); /* + return THIS->Framerate; + */ + + private native void nSetFramerate(float value); /* + THIS->Framerate = value; + */ + + /** + * Vertices output during last call to Render() + */ + public int getMetricsRenderVertices() { + return nGetMetricsRenderVertices(); + } + + /** + * Vertices output during last call to Render() + */ + public void setMetricsRenderVertices(final int value) { + nSetMetricsRenderVertices(value); + } + + private native int nGetMetricsRenderVertices(); /* + return THIS->MetricsRenderVertices; + */ + + private native void nSetMetricsRenderVertices(int value); /* + THIS->MetricsRenderVertices = value; + */ + + /** + * Indices output during last call to Render() = number of triangles * 3 + */ + public int getMetricsRenderIndices() { + return nGetMetricsRenderIndices(); + } + + /** + * Indices output during last call to Render() = number of triangles * 3 + */ + public void setMetricsRenderIndices(final int value) { + nSetMetricsRenderIndices(value); + } + + private native int nGetMetricsRenderIndices(); /* + return THIS->MetricsRenderIndices; + */ + + private native void nSetMetricsRenderIndices(int value); /* + THIS->MetricsRenderIndices = value; + */ + + /** + * Number of visible windows + */ + public int getMetricsRenderWindows() { + return nGetMetricsRenderWindows(); + } + + /** + * Number of visible windows + */ + public void setMetricsRenderWindows(final int value) { + nSetMetricsRenderWindows(value); + } + + private native int nGetMetricsRenderWindows(); /* + return THIS->MetricsRenderWindows; + */ + + private native void nSetMetricsRenderWindows(int value); /* + THIS->MetricsRenderWindows = value; + */ + + /** + * Number of active windows + */ + public int getMetricsActiveWindows() { + return nGetMetricsActiveWindows(); + } + + /** + * Number of active windows + */ + public void setMetricsActiveWindows(final int value) { + nSetMetricsActiveWindows(value); + } + + private native int nGetMetricsActiveWindows(); /* + return THIS->MetricsActiveWindows; + */ + + private native void nSetMetricsActiveWindows(int value); /* + THIS->MetricsActiveWindows = value; + */ + + /** + * Number of active allocations, updated by MemAlloc/MemFree based on current context. May be off if you have multiple imgui contexts. + */ + public int getMetricsActiveAllocations() { + return nGetMetricsActiveAllocations(); + } + + /** + * Number of active allocations, updated by MemAlloc/MemFree based on current context. May be off if you have multiple imgui contexts. + */ + public void setMetricsActiveAllocations(final int value) { + nSetMetricsActiveAllocations(value); + } + + private native int nGetMetricsActiveAllocations(); /* + return THIS->MetricsActiveAllocations; + */ + + private native void nSetMetricsActiveAllocations(int value); /* + THIS->MetricsActiveAllocations = value; + */ + + /** + * Mouse delta. Note that this is zero if either current or previous position are invalid (-FLT_MAX,-FLT_MAX), so a disappearing/reappearing mouse won't have a huge delta. + */ + public ImVec2 getMouseDelta() { + final ImVec2 dst = new ImVec2(); + nGetMouseDelta(dst); + return dst; + } + + /** + * Mouse delta. Note that this is zero if either current or previous position are invalid (-FLT_MAX,-FLT_MAX), so a disappearing/reappearing mouse won't have a huge delta. + */ + public float getMouseDeltaX() { + return nGetMouseDeltaX(); + } + + /** + * Mouse delta. Note that this is zero if either current or previous position are invalid (-FLT_MAX,-FLT_MAX), so a disappearing/reappearing mouse won't have a huge delta. + */ + public float getMouseDeltaY() { + return nGetMouseDeltaY(); + } + + /** + * Mouse delta. Note that this is zero if either current or previous position are invalid (-FLT_MAX,-FLT_MAX), so a disappearing/reappearing mouse won't have a huge delta. + */ + public void getMouseDelta(final ImVec2 dst) { + nGetMouseDelta(dst); + } + + /** + * Mouse delta. Note that this is zero if either current or previous position are invalid (-FLT_MAX,-FLT_MAX), so a disappearing/reappearing mouse won't have a huge delta. + */ + public void setMouseDelta(final ImVec2 value) { + nSetMouseDelta(value.x, value.y); + } + + /** + * Mouse delta. Note that this is zero if either current or previous position are invalid (-FLT_MAX,-FLT_MAX), so a disappearing/reappearing mouse won't have a huge delta. + */ + public void setMouseDelta(final float valueX, final float valueY) { + nSetMouseDelta(valueX, valueY); + } + + private native void nGetMouseDelta(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->MouseDelta, dst); + */ + + private native float nGetMouseDeltaX(); /* + return THIS->MouseDelta.x; + */ + + private native float nGetMouseDeltaY(); /* + return THIS->MouseDelta.y; + */ + + private native void nSetMouseDelta(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->MouseDelta = value; + */ + + //------------------------------------------------------------------ + // [Internal] Dear ImGui will maintain those fields. Forward compatibility not guaranteed! + //------------------------------------------------------------------ + + /** + * Alternative to WantCaptureMouse: (WantCaptureMouse == true {@code &&} WantCaptureMouseUnlessPopupClose == false) when a click over void is expected to close a popup. + */ + public boolean getWantCaptureMouseUnlessPopupClose() { + return nGetWantCaptureMouseUnlessPopupClose(); + } + + /** + * Alternative to WantCaptureMouse: (WantCaptureMouse == true {@code &&} WantCaptureMouseUnlessPopupClose == false) when a click over void is expected to close a popup. + */ + public void setWantCaptureMouseUnlessPopupClose(final boolean value) { + nSetWantCaptureMouseUnlessPopupClose(value); + } + + private native boolean nGetWantCaptureMouseUnlessPopupClose(); /* + return THIS->WantCaptureMouseUnlessPopupClose; + */ + + private native void nSetWantCaptureMouseUnlessPopupClose(boolean value); /* + THIS->WantCaptureMouseUnlessPopupClose = value; + */ + + /** + * Key mods flags (same as io.KeyCtrl/KeyShift/KeyAlt/KeySuper but merged into flags), updated by NewFrame() + */ + public int getKeyMods() { + return nGetKeyMods(); + } + + /** + * Key mods flags (same as io.KeyCtrl/KeyShift/KeyAlt/KeySuper but merged into flags), updated by NewFrame() + */ + public void setKeyMods(final int value) { + nSetKeyMods(value); + } + + private native int nGetKeyMods(); /* + return THIS->KeyMods; + */ + + private native void nSetKeyMods(int value); /* + THIS->KeyMods = value; + */ + + /** + * Previous key mods + */ + public int getKeyModsPrev() { + return nGetKeyModsPrev(); + } + + /** + * Previous key mods + */ + public void setKeyModsPrev(final int value) { + nSetKeyModsPrev(value); + } + + private native int nGetKeyModsPrev(); /* + return THIS->KeyModsPrev; + */ + + private native void nSetKeyModsPrev(int value); /* + THIS->KeyModsPrev = value; + */ + + /** + * Previous mouse position (note that MouseDelta is not necessary == MousePos-MousePosPrev, in case either position is invalid) + */ + public ImVec2 getMousePosPrev() { + final ImVec2 dst = new ImVec2(); + nGetMousePosPrev(dst); + return dst; + } + + /** + * Previous mouse position (note that MouseDelta is not necessary == MousePos-MousePosPrev, in case either position is invalid) + */ + public float getMousePosPrevX() { + return nGetMousePosPrevX(); + } + + /** + * Previous mouse position (note that MouseDelta is not necessary == MousePos-MousePosPrev, in case either position is invalid) + */ + public float getMousePosPrevY() { + return nGetMousePosPrevY(); + } + + /** + * Previous mouse position (note that MouseDelta is not necessary == MousePos-MousePosPrev, in case either position is invalid) + */ + public void getMousePosPrev(final ImVec2 dst) { + nGetMousePosPrev(dst); + } + + /** + * Previous mouse position (note that MouseDelta is not necessary == MousePos-MousePosPrev, in case either position is invalid) + */ + public void setMousePosPrev(final ImVec2 value) { + nSetMousePosPrev(value.x, value.y); + } + + /** + * Previous mouse position (note that MouseDelta is not necessary == MousePos-MousePosPrev, in case either position is invalid) + */ + public void setMousePosPrev(final float valueX, final float valueY) { + nSetMousePosPrev(valueX, valueY); + } + + private native void nGetMousePosPrev(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->MousePosPrev, dst); + */ + + private native float nGetMousePosPrevX(); /* + return THIS->MousePosPrev.x; + */ + + private native float nGetMousePosPrevY(); /* + return THIS->MousePosPrev.y; + */ + + private native void nSetMousePosPrev(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->MousePosPrev = value; + */ + + /** + * Position at time of clicking. + */ + public ImVec2[] getMouseClickedPos() { + return nGetMouseClickedPos(); + } + + /** + * Position at time of clicking. + */ + public void setMouseClickedPos(final ImVec2[] value) { + nSetMouseClickedPos(value); + } + + private native ImVec2[] nGetMouseClickedPos(); /* + return Jni::NewImVec2Array(env, THIS->MouseClickedPos, 5); + */ + + private native void nSetMouseClickedPos(ImVec2[] value); /* + Jni::ImVec2ArrayCpy(env, value, THIS->MouseClickedPos, 5); + */ + + /** + * Time of last click (used to figure out double-click) + */ + public double[] getMouseClickedTime() { + return nGetMouseClickedTime(); + } + + /** + * Time of last click (used to figure out double-click) + */ + public double getMouseClickedTime(final int idx) { + return nGetMouseClickedTime(idx); + } + + /** + * Time of last click (used to figure out double-click) + */ + public void setMouseClickedTime(final double[] value) { + nSetMouseClickedTime(value); + } + + /** + * Time of last click (used to figure out double-click) + */ + public void setMouseClickedTime(final int idx, final double value) { + nSetMouseClickedTime(idx, value); + } + + private native double[] nGetMouseClickedTime(); /* + jdouble jBuf[5]; + for (int i = 0; i < 5; i++) + jBuf[i] = THIS->MouseClickedTime[i]; + jdoubleArray result = env->NewDoubleArray(5); + env->SetDoubleArrayRegion(result, 0, 5, jBuf); + return result; + */ + + private native double nGetMouseClickedTime(int idx); /* + return THIS->MouseClickedTime[idx]; + */ + + private native void nSetMouseClickedTime(double[] value); /* + for (int i = 0; i < 5; i++) + THIS->MouseClickedTime[i] = value[i]; + */ + + private native double nSetMouseClickedTime(int idx, double value); /* + THIS->MouseClickedTime[idx] = value; + */ + + /** + * Mouse button went from !Down to Down (same as MouseClickedCount[x] != 0) + */ + public boolean[] getMouseClicked() { + return nGetMouseClicked(); + } + + /** + * Mouse button went from !Down to Down (same as MouseClickedCount[x] != 0) + */ + public boolean getMouseClicked(final int idx) { + return nGetMouseClicked(idx); + } + + /** + * Mouse button went from !Down to Down (same as MouseClickedCount[x] != 0) + */ + public void setMouseClicked(final boolean[] value) { + nSetMouseClicked(value); + } + + /** + * Mouse button went from !Down to Down (same as MouseClickedCount[x] != 0) + */ + public void setMouseClicked(final int idx, final boolean value) { + nSetMouseClicked(idx, value); + } + + private native boolean[] nGetMouseClicked(); /* + jboolean jBuf[5]; + for (int i = 0; i < 5; i++) + jBuf[i] = THIS->MouseClicked[i]; + jbooleanArray result = env->NewBooleanArray(5); + env->SetBooleanArrayRegion(result, 0, 5, jBuf); + return result; + */ + + private native boolean nGetMouseClicked(int idx); /* + return THIS->MouseClicked[idx]; + */ + + private native void nSetMouseClicked(boolean[] value); /* + for (int i = 0; i < 5; i++) + THIS->MouseClicked[i] = value[i]; + */ + + private native boolean nSetMouseClicked(int idx, boolean value); /* + THIS->MouseClicked[idx] = value; + */ + + /** + * Has mouse button been double-clicked? (same as MouseClickedCount[x] == 2) + */ + public boolean[] getMouseDoubleClicked() { + return nGetMouseDoubleClicked(); + } + + /** + * Has mouse button been double-clicked? (same as MouseClickedCount[x] == 2) + */ + public boolean getMouseDoubleClicked(final int idx) { + return nGetMouseDoubleClicked(idx); + } + + /** + * Has mouse button been double-clicked? (same as MouseClickedCount[x] == 2) + */ + public void setMouseDoubleClicked(final boolean[] value) { + nSetMouseDoubleClicked(value); + } + + /** + * Has mouse button been double-clicked? (same as MouseClickedCount[x] == 2) + */ + public void setMouseDoubleClicked(final int idx, final boolean value) { + nSetMouseDoubleClicked(idx, value); + } + + private native boolean[] nGetMouseDoubleClicked(); /* + jboolean jBuf[5]; + for (int i = 0; i < 5; i++) + jBuf[i] = THIS->MouseDoubleClicked[i]; + jbooleanArray result = env->NewBooleanArray(5); + env->SetBooleanArrayRegion(result, 0, 5, jBuf); + return result; + */ + + private native boolean nGetMouseDoubleClicked(int idx); /* + return THIS->MouseDoubleClicked[idx]; + */ + + private native void nSetMouseDoubleClicked(boolean[] value); /* + for (int i = 0; i < 5; i++) + THIS->MouseDoubleClicked[i] = value[i]; + */ + + private native boolean nSetMouseDoubleClicked(int idx, boolean value); /* + THIS->MouseDoubleClicked[idx] = value; + */ + + /** + * == 0 (not clicked), == 1 (same as MouseClicked[]), == 2 (double-clicked), == 3 (triple-clicked) etc. when going from !Down to Down + */ + public int[] getMouseClickedCount() { + return nGetMouseClickedCount(); + } + + /** + * == 0 (not clicked), == 1 (same as MouseClicked[]), == 2 (double-clicked), == 3 (triple-clicked) etc. when going from !Down to Down + */ + public int getMouseClickedCount(final int idx) { + return nGetMouseClickedCount(idx); + } + + /** + * == 0 (not clicked), == 1 (same as MouseClicked[]), == 2 (double-clicked), == 3 (triple-clicked) etc. when going from !Down to Down + */ + public void setMouseClickedCount(final int[] value) { + nSetMouseClickedCount(value); + } + + /** + * == 0 (not clicked), == 1 (same as MouseClicked[]), == 2 (double-clicked), == 3 (triple-clicked) etc. when going from !Down to Down + */ + public void setMouseClickedCount(final int idx, final int value) { + nSetMouseClickedCount(idx, value); + } + + private native int[] nGetMouseClickedCount(); /* + jint jBuf[5]; + for (int i = 0; i < 5; i++) + jBuf[i] = THIS->MouseClickedCount[i]; + jintArray result = env->NewIntArray(5); + env->SetIntArrayRegion(result, 0, 5, jBuf); + return result; + */ + + private native int nGetMouseClickedCount(int idx); /* + return THIS->MouseClickedCount[idx]; + */ + + private native void nSetMouseClickedCount(int[] value); /* + for (int i = 0; i < 5; i++) + THIS->MouseClickedCount[i] = value[i]; + */ + + private native int nSetMouseClickedCount(int idx, int value); /* + THIS->MouseClickedCount[idx] = value; + */ + + /** + * Count successive number of clicks. Stays valid after mouse release. Reset after another click is done. + */ + public int[] getMouseClickedLastCount() { + return nGetMouseClickedLastCount(); + } + + /** + * Count successive number of clicks. Stays valid after mouse release. Reset after another click is done. + */ + public int getMouseClickedLastCount(final int idx) { + return nGetMouseClickedLastCount(idx); + } + + /** + * Count successive number of clicks. Stays valid after mouse release. Reset after another click is done. + */ + public void setMouseClickedLastCount(final int[] value) { + nSetMouseClickedLastCount(value); + } + + /** + * Count successive number of clicks. Stays valid after mouse release. Reset after another click is done. + */ + public void setMouseClickedLastCount(final int idx, final int value) { + nSetMouseClickedLastCount(idx, value); + } + + private native int[] nGetMouseClickedLastCount(); /* + jint jBuf[5]; + for (int i = 0; i < 5; i++) + jBuf[i] = THIS->MouseClickedLastCount[i]; + jintArray result = env->NewIntArray(5); + env->SetIntArrayRegion(result, 0, 5, jBuf); + return result; + */ + + private native int nGetMouseClickedLastCount(int idx); /* + return THIS->MouseClickedLastCount[idx]; + */ + + private native void nSetMouseClickedLastCount(int[] value); /* + for (int i = 0; i < 5; i++) + THIS->MouseClickedLastCount[i] = value[i]; + */ + + private native int nSetMouseClickedLastCount(int idx, int value); /* + THIS->MouseClickedLastCount[idx] = value; + */ + + /** + * Mouse button went from Down to !Down + */ + public boolean[] getMouseReleased() { + return nGetMouseReleased(); + } + + /** + * Mouse button went from Down to !Down + */ + public boolean getMouseReleased(final int idx) { + return nGetMouseReleased(idx); + } + + /** + * Mouse button went from Down to !Down + */ + public void setMouseReleased(final boolean[] value) { + nSetMouseReleased(value); + } + + /** + * Mouse button went from Down to !Down + */ + public void setMouseReleased(final int idx, final boolean value) { + nSetMouseReleased(idx, value); + } + + private native boolean[] nGetMouseReleased(); /* + jboolean jBuf[5]; + for (int i = 0; i < 5; i++) + jBuf[i] = THIS->MouseReleased[i]; + jbooleanArray result = env->NewBooleanArray(5); + env->SetBooleanArrayRegion(result, 0, 5, jBuf); + return result; + */ + + private native boolean nGetMouseReleased(int idx); /* + return THIS->MouseReleased[idx]; + */ + + private native void nSetMouseReleased(boolean[] value); /* + for (int i = 0; i < 5; i++) + THIS->MouseReleased[i] = value[i]; + */ + + private native boolean nSetMouseReleased(int idx, boolean value); /* + THIS->MouseReleased[idx] = value; + */ + + /** + * Track if button was clicked inside a dear imgui window or over void blocked by a popup. We don't request mouse capture from the application if click started outside ImGui bounds. + */ + public boolean[] getMouseDownOwned() { + return nGetMouseDownOwned(); + } + + /** + * Track if button was clicked inside a dear imgui window or over void blocked by a popup. We don't request mouse capture from the application if click started outside ImGui bounds. + */ + public boolean getMouseDownOwned(final int idx) { + return nGetMouseDownOwned(idx); + } + + /** + * Track if button was clicked inside a dear imgui window or over void blocked by a popup. We don't request mouse capture from the application if click started outside ImGui bounds. + */ + public void setMouseDownOwned(final boolean[] value) { + nSetMouseDownOwned(value); + } + + /** + * Track if button was clicked inside a dear imgui window or over void blocked by a popup. We don't request mouse capture from the application if click started outside ImGui bounds. + */ + public void setMouseDownOwned(final int idx, final boolean value) { + nSetMouseDownOwned(idx, value); + } + + private native boolean[] nGetMouseDownOwned(); /* + jboolean jBuf[5]; + for (int i = 0; i < 5; i++) + jBuf[i] = THIS->MouseDownOwned[i]; + jbooleanArray result = env->NewBooleanArray(5); + env->SetBooleanArrayRegion(result, 0, 5, jBuf); + return result; + */ + + private native boolean nGetMouseDownOwned(int idx); /* + return THIS->MouseDownOwned[idx]; + */ + + private native void nSetMouseDownOwned(boolean[] value); /* + for (int i = 0; i < 5; i++) + THIS->MouseDownOwned[i] = value[i]; + */ + + private native boolean nSetMouseDownOwned(int idx, boolean value); /* + THIS->MouseDownOwned[idx] = value; + */ + + /** + * Track if button was clicked inside a dear imgui window. + */ + public boolean[] getMouseDownOwnedUnlessPopupClose() { + return nGetMouseDownOwnedUnlessPopupClose(); + } + + /** + * Track if button was clicked inside a dear imgui window. + */ + public boolean getMouseDownOwnedUnlessPopupClose(final int idx) { + return nGetMouseDownOwnedUnlessPopupClose(idx); + } + + /** + * Track if button was clicked inside a dear imgui window. + */ + public void setMouseDownOwnedUnlessPopupClose(final boolean[] value) { + nSetMouseDownOwnedUnlessPopupClose(value); + } + + /** + * Track if button was clicked inside a dear imgui window. + */ + public void setMouseDownOwnedUnlessPopupClose(final int idx, final boolean value) { + nSetMouseDownOwnedUnlessPopupClose(idx, value); + } + + private native boolean[] nGetMouseDownOwnedUnlessPopupClose(); /* + jboolean jBuf[5]; + for (int i = 0; i < 5; i++) + jBuf[i] = THIS->MouseDownOwnedUnlessPopupClose[i]; + jbooleanArray result = env->NewBooleanArray(5); + env->SetBooleanArrayRegion(result, 0, 5, jBuf); + return result; + */ + + private native boolean nGetMouseDownOwnedUnlessPopupClose(int idx); /* + return THIS->MouseDownOwnedUnlessPopupClose[idx]; + */ + + private native void nSetMouseDownOwnedUnlessPopupClose(boolean[] value); /* + for (int i = 0; i < 5; i++) + THIS->MouseDownOwnedUnlessPopupClose[i] = value[i]; + */ + + private native boolean nSetMouseDownOwnedUnlessPopupClose(int idx, boolean value); /* + THIS->MouseDownOwnedUnlessPopupClose[idx] = value; + */ + + /** + * Duration the mouse button has been down (0.0f == just clicked) + */ + public float[] getMouseDownDuration() { + return nGetMouseDownDuration(); + } + + /** + * Duration the mouse button has been down (0.0f == just clicked) + */ + public float getMouseDownDuration(final int idx) { + return nGetMouseDownDuration(idx); + } + + /** + * Duration the mouse button has been down (0.0f == just clicked) + */ + public void setMouseDownDuration(final float[] value) { + nSetMouseDownDuration(value); + } + + /** + * Duration the mouse button has been down (0.0f == just clicked) + */ + public void setMouseDownDuration(final int idx, final float value) { + nSetMouseDownDuration(idx, value); + } + + private native float[] nGetMouseDownDuration(); /* + jfloat jBuf[5]; + for (int i = 0; i < 5; i++) + jBuf[i] = THIS->MouseDownDuration[i]; + jfloatArray result = env->NewFloatArray(5); + env->SetFloatArrayRegion(result, 0, 5, jBuf); + return result; + */ + + private native float nGetMouseDownDuration(int idx); /* + return THIS->MouseDownDuration[idx]; + */ + + private native void nSetMouseDownDuration(float[] value); /* + for (int i = 0; i < 5; i++) + THIS->MouseDownDuration[i] = value[i]; + */ + + private native float nSetMouseDownDuration(int idx, float value); /* + THIS->MouseDownDuration[idx] = value; + */ + + /** + * Previous time the mouse button has been down + */ + public float[] getMouseDownDurationPrev() { + return nGetMouseDownDurationPrev(); + } + + /** + * Previous time the mouse button has been down + */ + public float getMouseDownDurationPrev(final int idx) { + return nGetMouseDownDurationPrev(idx); + } + + /** + * Previous time the mouse button has been down + */ + public void setMouseDownDurationPrev(final float[] value) { + nSetMouseDownDurationPrev(value); + } + + /** + * Previous time the mouse button has been down + */ + public void setMouseDownDurationPrev(final int idx, final float value) { + nSetMouseDownDurationPrev(idx, value); + } + + private native float[] nGetMouseDownDurationPrev(); /* + jfloat jBuf[5]; + for (int i = 0; i < 5; i++) + jBuf[i] = THIS->MouseDownDurationPrev[i]; + jfloatArray result = env->NewFloatArray(5); + env->SetFloatArrayRegion(result, 0, 5, jBuf); + return result; + */ + + private native float nGetMouseDownDurationPrev(int idx); /* + return THIS->MouseDownDurationPrev[idx]; + */ + + private native void nSetMouseDownDurationPrev(float[] value); /* + for (int i = 0; i < 5; i++) + THIS->MouseDownDurationPrev[i] = value[i]; + */ + + private native float nSetMouseDownDurationPrev(int idx, float value); /* + THIS->MouseDownDurationPrev[idx] = value; + */ + + /** + * Maximum distance, absolute, on each axis, of how much mouse has traveled from the clicking point + */ + public ImVec2[] getMouseDragMaxDistanceAbs() { + return nGetMouseDragMaxDistanceAbs(); + } + + /** + * Maximum distance, absolute, on each axis, of how much mouse has traveled from the clicking point + */ + public void setMouseDragMaxDistanceAbs(final ImVec2[] value) { + nSetMouseDragMaxDistanceAbs(value); + } + + private native ImVec2[] nGetMouseDragMaxDistanceAbs(); /* + return Jni::NewImVec2Array(env, THIS->MouseDragMaxDistanceAbs, 5); + */ + + private native void nSetMouseDragMaxDistanceAbs(ImVec2[] value); /* + Jni::ImVec2ArrayCpy(env, value, THIS->MouseDragMaxDistanceAbs, 5); + */ + + /** + * Squared maximum distance of how much mouse has traveled from the clicking point + */ + public float[] getMouseDragMaxDistanceSqr() { + return nGetMouseDragMaxDistanceSqr(); + } + + /** + * Squared maximum distance of how much mouse has traveled from the clicking point + */ + public float getMouseDragMaxDistanceSqr(final int idx) { + return nGetMouseDragMaxDistanceSqr(idx); + } + + /** + * Squared maximum distance of how much mouse has traveled from the clicking point + */ + public void setMouseDragMaxDistanceSqr(final float[] value) { + nSetMouseDragMaxDistanceSqr(value); + } + + /** + * Squared maximum distance of how much mouse has traveled from the clicking point + */ + public void setMouseDragMaxDistanceSqr(final int idx, final float value) { + nSetMouseDragMaxDistanceSqr(idx, value); + } + + private native float[] nGetMouseDragMaxDistanceSqr(); /* + jfloat jBuf[5]; + for (int i = 0; i < 5; i++) + jBuf[i] = THIS->MouseDragMaxDistanceSqr[i]; + jfloatArray result = env->NewFloatArray(5); + env->SetFloatArrayRegion(result, 0, 5, jBuf); + return result; + */ + + private native float nGetMouseDragMaxDistanceSqr(int idx); /* + return THIS->MouseDragMaxDistanceSqr[idx]; + */ + + private native void nSetMouseDragMaxDistanceSqr(float[] value); /* + for (int i = 0; i < 5; i++) + THIS->MouseDragMaxDistanceSqr[i] = value[i]; + */ + + private native float nSetMouseDragMaxDistanceSqr(int idx, float value); /* + THIS->MouseDragMaxDistanceSqr[idx] = value; + */ + + /** + * Duration the keyboard key has been down (0.0f == just pressed) + */ + public float[] getKeysDownDuration() { + return nGetKeysDownDuration(); + } + + /** + * Duration the keyboard key has been down (0.0f == just pressed) + */ + public float getKeysDownDuration(final int idx) { + return nGetKeysDownDuration(idx); + } + + /** + * Duration the keyboard key has been down (0.0f == just pressed) + */ + public void setKeysDownDuration(final float[] value) { + nSetKeysDownDuration(value); + } + + /** + * Duration the keyboard key has been down (0.0f == just pressed) + */ + public void setKeysDownDuration(final int idx, final float value) { + nSetKeysDownDuration(idx, value); + } + + private native float[] nGetKeysDownDuration(); /* + jfloat jBuf[512]; + for (int i = 0; i < 512; i++) + jBuf[i] = THIS->KeysDownDuration[i]; + jfloatArray result = env->NewFloatArray(512); + env->SetFloatArrayRegion(result, 0, 512, jBuf); + return result; + */ + + private native float nGetKeysDownDuration(int idx); /* + return THIS->KeysDownDuration[idx]; + */ + + private native void nSetKeysDownDuration(float[] value); /* + for (int i = 0; i < 512; i++) + THIS->KeysDownDuration[i] = value[i]; + */ + + private native float nSetKeysDownDuration(int idx, float value); /* + THIS->KeysDownDuration[idx] = value; + */ + + /** + * Previous duration the key has been down + */ + public float[] getKeysDownDurationPrev() { + return nGetKeysDownDurationPrev(); + } + + /** + * Previous duration the key has been down + */ + public float getKeysDownDurationPrev(final int idx) { + return nGetKeysDownDurationPrev(idx); + } + + /** + * Previous duration the key has been down + */ + public void setKeysDownDurationPrev(final float[] value) { + nSetKeysDownDurationPrev(value); + } + + /** + * Previous duration the key has been down + */ + public void setKeysDownDurationPrev(final int idx, final float value) { + nSetKeysDownDurationPrev(idx, value); + } + + private native float[] nGetKeysDownDurationPrev(); /* + jfloat jBuf[512]; + for (int i = 0; i < 512; i++) + jBuf[i] = THIS->KeysDownDurationPrev[i]; + jfloatArray result = env->NewFloatArray(512); + env->SetFloatArrayRegion(result, 0, 512, jBuf); + return result; + */ + + private native float nGetKeysDownDurationPrev(int idx); /* + return THIS->KeysDownDurationPrev[idx]; + */ + + private native void nSetKeysDownDurationPrev(float[] value); /* + for (int i = 0; i < 512; i++) + THIS->KeysDownDurationPrev[i] = value[i]; + */ + + private native float nSetKeysDownDurationPrev(int idx, float value); /* + THIS->KeysDownDurationPrev[idx] = value; + */ + + public float[] getNavInputsDownDuration() { + return nGetNavInputsDownDuration(); + } + + public float getNavInputsDownDuration(final int idx) { + return nGetNavInputsDownDuration(idx); + } + + public void setNavInputsDownDuration(final float[] value) { + nSetNavInputsDownDuration(value); + } + + public void setNavInputsDownDuration(final int idx, final float value) { + nSetNavInputsDownDuration(idx, value); + } + + private native float[] nGetNavInputsDownDuration(); /* + jfloat jBuf[ImGuiNavInput_COUNT]; + for (int i = 0; i < ImGuiNavInput_COUNT; i++) + jBuf[i] = THIS->NavInputsDownDuration[i]; + jfloatArray result = env->NewFloatArray(ImGuiNavInput_COUNT); + env->SetFloatArrayRegion(result, 0, ImGuiNavInput_COUNT, jBuf); + return result; + */ + + private native float nGetNavInputsDownDuration(int idx); /* + return THIS->NavInputsDownDuration[idx]; + */ + + private native void nSetNavInputsDownDuration(float[] value); /* + for (int i = 0; i < ImGuiNavInput_COUNT; i++) + THIS->NavInputsDownDuration[i] = value[i]; + */ + + private native float nSetNavInputsDownDuration(int idx, float value); /* + THIS->NavInputsDownDuration[idx] = value; + */ + + public float[] getNavInputsDownDurationPrev() { + return nGetNavInputsDownDurationPrev(); + } + + public float getNavInputsDownDurationPrev(final int idx) { + return nGetNavInputsDownDurationPrev(idx); + } + + public void setNavInputsDownDurationPrev(final float[] value) { + nSetNavInputsDownDurationPrev(value); + } + + public void setNavInputsDownDurationPrev(final int idx, final float value) { + nSetNavInputsDownDurationPrev(idx, value); + } + + private native float[] nGetNavInputsDownDurationPrev(); /* + jfloat jBuf[ImGuiNavInput_COUNT]; + for (int i = 0; i < ImGuiNavInput_COUNT; i++) + jBuf[i] = THIS->NavInputsDownDurationPrev[i]; + jfloatArray result = env->NewFloatArray(ImGuiNavInput_COUNT); + env->SetFloatArrayRegion(result, 0, ImGuiNavInput_COUNT, jBuf); + return result; + */ + + private native float nGetNavInputsDownDurationPrev(int idx); /* + return THIS->NavInputsDownDurationPrev[idx]; + */ + + private native void nSetNavInputsDownDurationPrev(float[] value); /* + for (int i = 0; i < ImGuiNavInput_COUNT; i++) + THIS->NavInputsDownDurationPrev[i] = value[i]; + */ + + private native float nSetNavInputsDownDurationPrev(int idx, float value); /* + THIS->NavInputsDownDurationPrev[idx] = value; + */ + + /** + * Touch/Pen pressure (0.0f to 1.0f, should be {@code >}0.0f only when MouseDown[0] == true). Helper storage currently unused by Dear ImGui. + */ + public float getPenPressure() { + return nGetPenPressure(); + } + + /** + * Touch/Pen pressure (0.0f to 1.0f, should be {@code >}0.0f only when MouseDown[0] == true). Helper storage currently unused by Dear ImGui. + */ + public void setPenPressure(final float value) { + nSetPenPressure(value); + } + + private native float nGetPenPressure(); /* + return THIS->PenPressure; + */ + + private native void nSetPenPressure(float value); /* + THIS->PenPressure = value; + */ + + public boolean getAppFocusLost() { + return nGetAppFocusLost(); + } + + public void setAppFocusLost(final boolean value) { + nSetAppFocusLost(value); + } + + private native boolean nGetAppFocusLost(); /* + return THIS->AppFocusLost; + */ + + private native void nSetAppFocusLost(boolean value); /* + THIS->AppFocusLost = value; + */ + + /** + * For AddInputCharacterUTF16 + */ + public short getInputQueueSurrogate() { + return nGetInputQueueSurrogate(); + } + + /** + * For AddInputCharacterUTF16 + */ + public void setInputQueueSurrogate(final short value) { + nSetInputQueueSurrogate(value); + } + + private native short nGetInputQueueSurrogate(); /* + return THIS->InputQueueSurrogate; + */ + + private native void nSetInputQueueSurrogate(short value); /* + THIS->InputQueueSurrogate = value; + */ + + // TODO: InputQueueCharacters + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/ImGuiInputTextCallbackData.java b/imgui-binding/src/generated/java/imgui/ImGuiInputTextCallbackData.java new file mode 100644 index 0000000..6dc53d1 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImGuiInputTextCallbackData.java @@ -0,0 +1,294 @@ +package imgui; + +import imgui.binding.ImGuiStruct; + +/** + * Shared state of InputText(), passed as an argument to your callback when a ImGuiInputTextFlags_Callback* flag is used.

+ * The callback function should return 0 by default.

+ * Callbacks (follow a flag name and see comments in ImGuiInputTextFlags_ declarations for more details)

+ * - ImGuiInputTextFlags_CallbackEdit: Callback on buffer edit (note that InputText() already returns true on edit, the callback is useful mainly to manipulate the underlying buffer while focus is active)

+ * - ImGuiInputTextFlags_CallbackAlways: Callback on each iteration

+ * - ImGuiInputTextFlags_CallbackCompletion: Callback on pressing TAB

+ * - ImGuiInputTextFlags_CallbackHistory: Callback on pressing Up/Down arrows

+ * - ImGuiInputTextFlags_CallbackCharFilter: Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard.

+ * - ImGuiInputTextFlags_CallbackResize: Callback on buffer capacity changes request (beyond 'buf_size' parameter value), allowing the string to grow.

+ */ +public class ImGuiInputTextCallbackData extends ImGuiStruct { + public ImGuiInputTextCallbackData(final long ptr) { + super(ptr); + } + + /*JNI + #include "_common.h" + #define THIS ((ImGuiInputTextCallbackData*)STRUCT_PTR) + */ + + /** + * One ImGuiInputTextFlags_Callback* + */ + public int getEventFlag() { + return nGetEventFlag(); + } + + /** + * One ImGuiInputTextFlags_Callback* + */ + public boolean hasEventFlag(final int flags) { + return (getEventFlag() & flags) != 0; + } + + private native int nGetEventFlag(); /* + return THIS->EventFlag; + */ + + /** + * What user passed to InputText() + */ + public int getFlags() { + return nGetFlags(); + } + + /** + * What user passed to InputText() + */ + public boolean hasFlags(final int flags) { + return (getFlags() & flags) != 0; + } + + private native int nGetFlags(); /* + return THIS->Flags; + */ + + // TODO: UserData + + /** + * [CharFilter] Replace character with another one, or set to zero to drop. return 1 is equivalent to setting EventChar=0; + */ + public int getEventChar() { + return nGetEventChar(); + } + + /** + * [CharFilter] Replace character with another one, or set to zero to drop. return 1 is equivalent to setting EventChar=0; + */ + public void setEventChar(final int value) { + nSetEventChar(value); + } + + private native int nGetEventChar(); /* + return THIS->EventChar; + */ + + private native void nSetEventChar(int value); /* + THIS->EventChar = value; + */ + + /** + * [Completion,History] + */ + public int getEventKey() { + return nGetEventKey(); + } + + private native int nGetEventKey(); /* + return THIS->EventKey; + */ + + /** + * [Resize] Can replace pointer

+ * [Completion,History,Always] Only write to pointed data, don't replace the actual pointer! + */ + public String getBuf() { + return nGetBuf(); + } + + /** + * [Resize] Can replace pointer

+ * [Completion,History,Always] Only write to pointed data, don't replace the actual pointer! + */ + public void setBuf(final String value) { + nSetBuf(value); + } + + private native String nGetBuf(); /* + return env->NewStringUTF(THIS->Buf); + */ + + private native void nSetBuf(String value); /*MANUAL + auto value = obj_value == NULL ? NULL : (char*)env->GetStringUTFChars(obj_value, JNI_FALSE); + THIS->Buf = value; + if (value != NULL) env->ReleaseStringUTFChars(obj_value, value); + */ + + /** + * [Resize,Completion,History,Always] Exclude zero-terminator storage. In C land: == strlen(some_text), in C++ land: string.length() + */ + public int getBufTextLen() { + return nGetBufTextLen(); + } + + /** + * [Resize,Completion,History,Always] Exclude zero-terminator storage. In C land: == strlen(some_text), in C++ land: string.length() + */ + public void setBufTextLen(final int value) { + nSetBufTextLen(value); + } + + private native int nGetBufTextLen(); /* + return THIS->BufTextLen; + */ + + private native void nSetBufTextLen(int value); /* + THIS->BufTextLen = value; + */ + + /** + * Set if you modify Buf/BufTextLen! + */ + public boolean getBufDirty() { + return nGetBufDirty(); + } + + /** + * Set if you modify Buf/BufTextLen! + */ + public void setBufDirty(final boolean value) { + nSetBufDirty(value); + } + + private native boolean nGetBufDirty(); /* + return THIS->BufDirty; + */ + + private native void nSetBufDirty(boolean value); /* + THIS->BufDirty = value; + */ + + /** + * Current cursor position + */ + public int getCursorPos() { + return nGetCursorPos(); + } + + /** + * Current cursor position + */ + public void setCursorPos(final int value) { + nSetCursorPos(value); + } + + private native int nGetCursorPos(); /* + return THIS->CursorPos; + */ + + private native void nSetCursorPos(int value); /* + THIS->CursorPos = value; + */ + + /** + * Selection Start + */ + public int getSelectionStart() { + return nGetSelectionStart(); + } + + /** + * Selection Start + */ + public void setSelectionStart(final int value) { + nSetSelectionStart(value); + } + + private native int nGetSelectionStart(); /* + return THIS->SelectionStart; + */ + + private native void nSetSelectionStart(int value); /* + THIS->SelectionStart = value; + */ + + /** + * Selection End + */ + public int getSelectionEnd() { + return nGetSelectionEnd(); + } + + /** + * Selection End + */ + public void setSelectionEnd(final int value) { + nSetSelectionEnd(value); + } + + private native int nGetSelectionEnd(); /* + return THIS->SelectionEnd; + */ + + private native void nSetSelectionEnd(int value); /* + THIS->SelectionEnd = value; + */ + + /** + * Delete Chars + * + * @param pos + * Start Delete Pos + * @param bytesCount + * Delete Char Count + */ + public void deleteChars(final int pos, final int bytesCount) { + nDeleteChars(pos, bytesCount); + } + + private native void nDeleteChars(int pos, int bytesCount); /* + THIS->DeleteChars(pos, bytesCount); + */ + + /** + * Insert Chars + * + * @param pos + * insert Psos + * @param str + * insert String + */ + public void insertChars(final int pos, final String str) { + nInsertChars(pos, str); + } + + private native void nInsertChars(int pos, String str); /*MANUAL + auto str = obj_str == NULL ? NULL : (char*)env->GetStringUTFChars(obj_str, JNI_FALSE); + THIS->InsertChars(pos, str); + if (str != NULL) env->ReleaseStringUTFChars(obj_str, str); + */ + + public void selectAll() { + nSelectAll(); + } + + private native void nSelectAll(); /* + THIS->SelectAll(); + */ + + public void clearSelection() { + nClearSelection(); + } + + private native void nClearSelection(); /* + THIS->ClearSelection(); + */ + + public boolean hasSelection() { + return nHasSelection(); + } + + private native boolean nHasSelection(); /* + return THIS->HasSelection(); + */ + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/ImGuiListClipper.java b/imgui-binding/src/generated/java/imgui/ImGuiListClipper.java new file mode 100644 index 0000000..c0adc53 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImGuiListClipper.java @@ -0,0 +1,69 @@ +package imgui; + +import imgui.callback.ImListClipperCallback; + +/** + * Helper: Manually clip large list of items. + * If you are submitting lots of evenly spaced items and you have a random access to the list, you can perform coarse + * clipping based on visibility to save yourself from processing those items at all. + * The clipper calculates the range of visible items and advance the cursor to compensate for the non-visible items we have skipped. + * (Dear ImGui already clip items based on their bounds but it needs to measure text size to do so, whereas manual coarse clipping before submission makes this cost and your own data fetching/submission cost almost null) + *

+ *   ImGuiListClipper clipper;
+ *   clipper.Begin(1000);         // We have 1000 elements, evenly spaced.
+ *   while (clipper.Step())
+ *       for (int i = clipper.DisplayStart; i {@code <} clipper.DisplayEnd; i++)
+ *           ImGui::Text("line number %d", i);
+ * 
+ * Generally what happens is: + * - Clipper lets you process the first element (DisplayStart = 0, DisplayEnd = 1) regardless of it being visible or not. + * - User code submit one element. + * - Clipper can measure the height of the first element + * - Clipper calculate the actual range of elements to display based on the current clipping rectangle, position the cursor before the first visible element. + * - User code submit visible elements. + * - The clipper also handles various subtleties related to keyboard/gamepad navigation, wrapping etc. + *

+ * BINDING NOTICE: + * It's impossible to implement the same API like in the original. Method {@link #forEach(int, int, ImListClipperCallback)} could be used instead. + *

+ *     ImGuiListClipper.forEach(1000, new ImListClipperCallback() {
+ *         public void accept(int index) {
+ *             ImGui.text(String.format("line number %d", index));
+ *         }
+ *     });
+ * 
+ */ +public final class ImGuiListClipper { + private ImGuiListClipper() { + } + + /*JNI + #include "_common.h" + */ + + /** + * @param itemsCount Use -1 to ignore (you can call Begin later). + * Use INT_MAX if you don't know how many items you have (in which case the cursor won't be advanced in the final step). + * @param callback action to do in iterations + */ + public static void forEach(final int itemsCount, final ImListClipperCallback callback) { + forEach(itemsCount, -1, callback); + } + + /** + * @param itemsCount Use -1 to ignore (you can call Begin later). + * Use INT_MAX if you don't know how many items you have (in which case the cursor won't be advanced in the final step). + * @param itemsHeight Use -1.0f to be calculated automatically on first step. + * Otherwise pass in the distance between your items, typically GetTextLineHeightWithSpacing() or GetFrameHeightWithSpacing(). + * @param callback action to do in iterations + */ + public static native void forEach(int itemsCount, int itemsHeight, ImListClipperCallback callback); /* + ImGuiListClipper clipper; + clipper.Begin(itemsCount, itemsHeight); + while (clipper.Step()) { + for (int i = clipper.DisplayStart; i < clipper.DisplayEnd; i++) { + Jni::CallImListClipperCallback(env, callback, i); + } + } + */ +} diff --git a/imgui-binding/src/generated/java/imgui/ImGuiOnceUponAFrame.java b/imgui-binding/src/generated/java/imgui/ImGuiOnceUponAFrame.java new file mode 100644 index 0000000..7da1685 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImGuiOnceUponAFrame.java @@ -0,0 +1,23 @@ +package imgui; + +/** + * Helper: Execute a block of code at maximum once a frame. + * Convenient if you want to quickly create an UI within deep-nested code that runs multiple times every frame. + * Usage: static ImGuiOnceUponAFrame oaf; if (oaf) ImGui::Text("This will be called only once per frame"); + *

+ * BINDING NOTICE: + * Java example: if (ImGuiOnceUponAFrame.get()) ImGui.text("This will be called only once per frame"); + */ +public final class ImGuiOnceUponAFrame { + private ImGuiOnceUponAFrame() { + } + + /*JNI + #include "_common.h" + */ + + public static native boolean get(); /* + ImGuiOnceUponAFrame oaf; + return (bool)oaf; + */ +} diff --git a/imgui-binding/src/generated/java/imgui/ImGuiPlatformIO.java b/imgui-binding/src/generated/java/imgui/ImGuiPlatformIO.java new file mode 100644 index 0000000..4df2f63 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImGuiPlatformIO.java @@ -0,0 +1,540 @@ +package imgui; + +import imgui.binding.ImGuiStruct; +import imgui.callback.ImPlatformFuncViewport; +import imgui.callback.ImPlatformFuncViewportFloat; +import imgui.callback.ImPlatformFuncViewportImVec2; +import imgui.callback.ImPlatformFuncViewportString; +import imgui.callback.ImPlatformFuncViewportSuppBoolean; +import imgui.callback.ImPlatformFuncViewportSuppFloat; +import imgui.callback.ImPlatformFuncViewportSuppImVec2; + +/** + * ----------------------------------------------------------------------------- + * [BETA] Platform interface for multi-viewport support + * ----------------------------------------------------------------------------- + * (Optional) This is completely optional, for advanced users! + * If you are new to Dear ImGui and trying to integrate it into your engine, you can probably ignore this for now. + * This feature allows you to seamlessly drag Dear ImGui windows outside of your application viewport. + * This is achieved by creating new Platform/OS windows on the fly, and rendering into them. + * Dear ImGui manages the viewport structures, and the backend create and maintain one Platform/OS window for each of those viewports. + * See Glossary https://github.com/ocornut/imgui/wiki/Glossary for details about some of the terminology. + * See Thread https://github.com/ocornut/imgui/issues/1542 for gifs, news and questions about this evolving feature. + * About the coordinates system: + * - When multi-viewports are enabled, all Dear ImGui coordinates become absolute coordinates (same as OS coordinates!) + * - So e.g. ImGui::SetNextWindowPos(ImVec2(0,0)) will position a window relative to your primary monitor! + * - If you want to position windows relative to your main application viewport, use ImGui::GetMainViewport().Pos as a base position. + * Steps to use multi-viewports in your application, when using a default backend from the examples/ folder: + * - Application: Enable feature with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'. + * - Backend: The backend initialization will setup all necessary ImGuiPlatformIO's functions and update monitors info every frame. + * - Application: In your main loop, call ImGui::UpdatePlatformWindows(), ImGui::RenderPlatformWindowsDefault() after EndFrame() or Render(). + * - Application: Fix absolute coordinates used in ImGui::SetWindowPos() or ImGui::SetNextWindowPos() calls. + * Steps to use multi-viewports in your application, when using a custom backend: + * - Important: THIS IS NOT EASY TO DO and comes with many subtleties not described here! + * It's also an experimental feature, so some of the requirements may evolve. + * Consider using default backends if you can. Either way, carefully follow and refer to examples/ backends for details. + * - Application: Enable feature with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'. + * - Backend: Hook ImGuiPlatformIO's Platform_* and Renderer_* callbacks (see below). + * Set 'io.BackendFlags |= ImGuiBackendFlags_PlatformHasViewports' and 'io.BackendFlags |= ImGuiBackendFlags_PlatformHasViewports'. + * Update ImGuiPlatformIO's Monitors list every frame. + * Update MousePos every frame, in absolute coordinates. + * - Application: In your main loop, call ImGui::UpdatePlatformWindows(), ImGui::RenderPlatformWindowsDefault() after EndFrame() or Render(). + * You may skip calling RenderPlatformWindowsDefault() if its API is not convenient for your needs. Read comments below. + * - Application: Fix absolute coordinates used in ImGui::SetWindowPos() or ImGui::SetNextWindowPos() calls. + * About ImGui::RenderPlatformWindowsDefault(): + * - This function is a mostly a _helper_ for the common-most cases, and to facilitate using default backends. + * - You can check its simple source code to understand what it does. + * It basically iterates secondary viewports and call 4 functions that are setup in ImGuiPlatformIO, if available: + * Platform_RenderWindow(), Renderer_RenderWindow(), Platform_SwapBuffers(), Renderer_SwapBuffers() + * Those functions pointers exists only for the benefit of RenderPlatformWindowsDefault(). + * - If you have very specific rendering needs (e.g. flipping multiple swap-chain simultaneously, unusual sync/threading issues, etc.), + * you may be tempted to ignore RenderPlatformWindowsDefault() and write customized code to perform your renderingg. + * You may decide to setup the platform_io's *RenderWindow and *SwapBuffers pointers and call your functions through those pointers, + * or you may decide to never setup those pointers and call your code directly. They are a convenience, not an obligatory interface. + * ----------------------------------------------------------------------------- + * (Optional) Access via ImGui::GetPlatformIO() + *

+ * ------------------------------------------------------------------ + * Input - Backend interface/functions + Monitor List + * ------------------------------------------------------------------ + * (Optional) Platform functions (e.g. Win32, GLFW, SDL2) + * For reference, the second column shows which function are generally calling the Platform Functions: + * N = ImGui::NewFrame() ~ beginning of the dear imgui frame: read info from platform/OS windows (latest size/position) + * F = ImGui::Begin(), ImGui::EndFrame() ~ during the dear imgui frame + * U = ImGui::UpdatePlatformWindows() ~ after the dear imgui frame: create and update all platform/OS windows + * R = ImGui::RenderPlatformWindowsDefault() ~ render + * D = ImGui::DestroyPlatformWindows() ~ shutdown + * The general idea is that NewFrame() we will read the current Platform/OS state, and UpdatePlatformWindows() will write to it. + * The functions are designed so we can mix and match 2 imgui_impl_xxxx files, one for the Platform (~window/input handling), one for Renderer. + * Custom engine backends will often provide both Platform and Renderer interfaces and so may not need to use all functions. + * Platform functions are typically called before their Renderer counterpart, apart from Destroy which are called the other way. + */ +public final class ImGuiPlatformIO extends ImGuiStruct { + private static final ImGuiViewport TMP_VIEWPORT = new ImGuiViewport(0); + private static final ImGuiPlatformMonitor TMP_MONITOR = new ImGuiPlatformMonitor(0); + private static final ImVec2 TMP_IM_VEC2 = new ImVec2(); + + public ImGuiPlatformIO(final long ptr) { + super(ptr); + } + + /*JNI + #include "_common.h" + + #define IMGUI_PLATFORM_IO ((ImGuiPlatformIO*)STRUCT_PTR) + + jobject jTmpViewport = NULL; + jobject jTmpImVec2 = NULL; + */ + + static void init() { + nInit(TMP_VIEWPORT, TMP_IM_VEC2); + } + + private static native void nInit(ImGuiViewport tmpViewport, ImVec2 tmpImVec2); /* + jTmpViewport = env->NewGlobalRef(tmpViewport); + jTmpImVec2 = env->NewGlobalRef(tmpImVec2); + */ + + /*JNI + #define IM_PLATFORM_FUNC_VIEWPORT_TMPL(name)\ + jobject platformCallback##name = NULL;\ + void PlatformStub##name(ImGuiViewport* vp) {\ + if (platformCallback##name != NULL) {\ + JNIEnv* env = Jni::GetEnv();\ + env->SetLongField(jTmpViewport, Jni::GetBindingStructPtrID(), (intptr_t)vp);\ + Jni::CallImPlatformFuncViewport(env, platformCallback##name, jTmpViewport);\ + }\ + }\ + void PlatformStub##name(ImGuiViewport* vp, void*) {\ + PlatformStub##name(vp);\ + } + + IM_PLATFORM_FUNC_VIEWPORT_TMPL(CreateWindow) + + #define IM_PLATFORM_FUNC_VIEWPORT_METHOD_TMPL(name)\ + if (platformCallback##name != NULL) {\ + env->DeleteGlobalRef(platformCallback##name);\ + }\ + platformCallback##name = env->NewGlobalRef(func);\ + IMGUI_PLATFORM_IO->Platform_##name = PlatformStub##name; + */ + + /** + * // . . U . . // Create a new platform window for the given viewport. + */ + public native void setPlatformCreateWindow(ImPlatformFuncViewport func); /* + IM_PLATFORM_FUNC_VIEWPORT_METHOD_TMPL(CreateWindow) + */ + + /*JNI + IM_PLATFORM_FUNC_VIEWPORT_TMPL(DestroyWindow) + */ + + /** + * // N . U . D // + */ + public native void setPlatformDestroyWindow(ImPlatformFuncViewport func); /* + IM_PLATFORM_FUNC_VIEWPORT_METHOD_TMPL(DestroyWindow) + */ + + /*JNI + IM_PLATFORM_FUNC_VIEWPORT_TMPL(ShowWindow) + */ + + /** + * // . . U . . // Newly created windows are initially hidden so SetWindowPos/Size/Title can be called on them before showing the window. + */ + public native void setPlatformShowWindow(ImPlatformFuncViewport func); /* + IM_PLATFORM_FUNC_VIEWPORT_METHOD_TMPL(ShowWindow) + */ + + /*JNI + #define IM_PLATFORM_FUNC_VIEWPORT_IM_VEC2_TMPL(name)\ + jobject platformCallback##name = NULL;\ + void PlatformStub##name(ImGuiViewport* vp, ImVec2 pos) {\ + if (platformCallback##name != NULL) {\ + JNIEnv* env = Jni::GetEnv();\ + env->SetLongField(jTmpViewport, Jni::GetBindingStructPtrID(), (intptr_t)vp);\ + Jni::ImVec2Cpy(env, pos, jTmpImVec2);\ + Jni::CallImPlatformFuncViewportImVec2(env, platformCallback##name, jTmpViewport, jTmpImVec2);\ + }\ + } + + IM_PLATFORM_FUNC_VIEWPORT_IM_VEC2_TMPL(SetWindowPos) + + #define IM_PLATFORM_FUNC_VIEWPORT_IM_VEC2_METHOD_TMPL(name)\ + if (platformCallback##name != NULL) {\ + env->DeleteGlobalRef(platformCallback##name);\ + }\ + platformCallback##name = env->NewGlobalRef(func);\ + IMGUI_PLATFORM_IO->Platform_##name = PlatformStub##name; + */ + + /** + * // . . U . . // Set platform window position (given the upper-left corner of client area). + */ + public native void setPlatformSetWindowPos(ImPlatformFuncViewportImVec2 func); /* + IM_PLATFORM_FUNC_VIEWPORT_IM_VEC2_METHOD_TMPL(SetWindowPos) + */ + + /*JNI + #define IM_PLATFORM_FUNC_VIEWPORT_SUPP_IM_VEC2_TMPL(name)\ + jobject platformCallback##name = NULL;\ + ImVec2 PlatformStub##name(ImGuiViewport* vp) {\ + ImVec2 dst;\ + if (platformCallback##name != NULL) {\ + JNIEnv* env = Jni::GetEnv();\ + env->SetLongField(jTmpViewport, Jni::GetBindingStructPtrID(), (intptr_t)vp);\ + Jni::CallImPlatformFuncViewportSuppImVec2(env, platformCallback##name, jTmpViewport, jTmpImVec2);\ + Jni::ImVec2Cpy(env, jTmpImVec2, &dst);\ + }\ + return dst;\ + } + + IM_PLATFORM_FUNC_VIEWPORT_SUPP_IM_VEC2_TMPL(GetWindowPos) + + #define IM_PLATFORM_FUNC_VIEWPORT_SUPP_IM_VEC2_METHOD_TMPL(name)\ + if (platformCallback##name != NULL) {\ + env->DeleteGlobalRef(platformCallback##name);\ + }\ + platformCallback##name = env->NewGlobalRef(func);\ + IMGUI_PLATFORM_IO->Platform_##name = PlatformStub##name; + */ + + /** + * // N . . . . // + */ + public native void setPlatformGetWindowPos(ImPlatformFuncViewportSuppImVec2 func); /* + IM_PLATFORM_FUNC_VIEWPORT_SUPP_IM_VEC2_METHOD_TMPL(GetWindowPos) + */ + + /*JNI + IM_PLATFORM_FUNC_VIEWPORT_IM_VEC2_TMPL(SetWindowSize) + */ + + /** + * // . . U . . // Set platform window client area size (ignoring OS decorations such as OS title bar etc.) + */ + public native void setPlatformSetWindowSize(ImPlatformFuncViewportImVec2 func); /* + IM_PLATFORM_FUNC_VIEWPORT_IM_VEC2_METHOD_TMPL(SetWindowSize) + */ + + /*JNI + IM_PLATFORM_FUNC_VIEWPORT_SUPP_IM_VEC2_TMPL(GetWindowSize) + */ + + /** + * // N . . . . // Get platform window client area size + */ + public native void setPlatformGetWindowSize(ImPlatformFuncViewportSuppImVec2 func); /* + IM_PLATFORM_FUNC_VIEWPORT_SUPP_IM_VEC2_METHOD_TMPL(GetWindowSize) + */ + + /*JNI + IM_PLATFORM_FUNC_VIEWPORT_TMPL(SetWindowFocus) + */ + + /** + * // N . . . . // Move window to front and set input focus. + */ + public native void setPlatformSetWindowFocus(ImPlatformFuncViewport func); /* + IM_PLATFORM_FUNC_VIEWPORT_METHOD_TMPL(SetWindowFocus) + */ + + /*JNI + #define IM_PLATFORM_FUNC_VIEWPORT_SUPP_BOOLEAN_TMPL(name)\ + jobject platformCallback##name = NULL;\ + bool PlatformStub##name(ImGuiViewport* vp) {\ + if (platformCallback##name != NULL) {\ + JNIEnv* env = Jni::GetEnv();\ + env->SetLongField(jTmpViewport, Jni::GetBindingStructPtrID(), (intptr_t)vp);\ + return Jni::CallImPlatformFuncViewportSuppBoolean(env, platformCallback##name, jTmpViewport);\ + }\ + return false;\ + } + + IM_PLATFORM_FUNC_VIEWPORT_SUPP_BOOLEAN_TMPL(GetWindowFocus) + + #define IM_PLATFORM_FUNC_VIEWPORT_SUPP_BOOLEAN_METHOD_TMPL(name)\ + if (platformCallback##name != NULL) {\ + env->DeleteGlobalRef(platformCallback##name);\ + }\ + platformCallback##name = env->NewGlobalRef(func);\ + IMGUI_PLATFORM_IO->Platform_##name = PlatformStub##name; + */ + + /** + * // . . U . . // + */ + public native void setPlatformGetWindowFocus(ImPlatformFuncViewportSuppBoolean func); /* + IM_PLATFORM_FUNC_VIEWPORT_SUPP_BOOLEAN_METHOD_TMPL(GetWindowFocus) + */ + + /*JNI + IM_PLATFORM_FUNC_VIEWPORT_SUPP_BOOLEAN_TMPL(GetWindowMinimized) + */ + + /** + * // N . . . . // Get platform window minimized state. When minimized, we generally won't attempt to get/set size and contents will be culled more easily. + */ + public native void setPlatformGetWindowMinimized(ImPlatformFuncViewportSuppBoolean func); /* + IM_PLATFORM_FUNC_VIEWPORT_SUPP_BOOLEAN_METHOD_TMPL(GetWindowMinimized) + */ + + /*JNI + jobject platformCallbackSetWindowTitle = NULL; + void PlatformStubSetWindowTitle(ImGuiViewport* vp, const char* str) { + if (platformCallbackSetWindowTitle != NULL) { + JNIEnv* env = Jni::GetEnv(); + env->SetLongField(jTmpViewport, Jni::GetBindingStructPtrID(), (intptr_t)vp); + Jni::CallImPlatformFuncViewportString(env, platformCallbackSetWindowTitle, jTmpViewport, str); + } + } + */ + + /** + * // . . U . . // Set platform window title (given an UTF-8 string) + */ + public native void setPlatformSetWindowTitle(ImPlatformFuncViewportString func); /* + if (platformCallbackSetWindowTitle != NULL) { + env->DeleteGlobalRef(platformCallbackSetWindowTitle); + } + platformCallbackSetWindowTitle = env->NewGlobalRef(func); + IMGUI_PLATFORM_IO->Platform_SetWindowTitle = PlatformStubSetWindowTitle; + */ + + /*JNI + jobject platformCallbackSetWindowAlpha = NULL; + void PlatformStubSetWindowAlpha(ImGuiViewport* vp, float alpha) { + if (platformCallbackSetWindowAlpha != NULL) { + JNIEnv* env = Jni::GetEnv(); + env->SetLongField(jTmpViewport, Jni::GetBindingStructPtrID(), (intptr_t)vp); + Jni::CallImPlatformFuncViewportFloat(env, platformCallbackSetWindowAlpha, jTmpViewport, alpha); + } + } + */ + + /** + * // . . U . . // (Optional) Setup window transparency + */ + public native void setPlatformSetWindowAlpha(ImPlatformFuncViewportFloat func); /* + if (platformCallbackSetWindowAlpha != NULL) { + env->DeleteGlobalRef(platformCallbackSetWindowAlpha); + } + platformCallbackSetWindowAlpha = env->NewGlobalRef(func); + IMGUI_PLATFORM_IO->Platform_SetWindowAlpha = PlatformStubSetWindowAlpha; + */ + + /*JNI + IM_PLATFORM_FUNC_VIEWPORT_TMPL(UpdateWindow) + */ + + /** + * // . . U . . // (Optional) Called by UpdatePlatformWindows(). Optional hook to allow the platform backend from doing general book-keeping every frame. + */ + public native void setPlatformUpdateWindow(ImPlatformFuncViewport func); /* + IM_PLATFORM_FUNC_VIEWPORT_METHOD_TMPL(UpdateWindow) + */ + + /*JNI + IM_PLATFORM_FUNC_VIEWPORT_TMPL(RenderWindow) + */ + + /** + * // . . . R . // (Optional) Main rendering (platform side! This is often unused, or just setting a "current" context for OpenGL bindings). + */ + public native void setPlatformRenderWindow(ImPlatformFuncViewport func); /* + IM_PLATFORM_FUNC_VIEWPORT_METHOD_TMPL(RenderWindow) + */ + + /*JNI + IM_PLATFORM_FUNC_VIEWPORT_TMPL(SwapBuffers) + */ + + /** + * // . . . R . // (Optional) Call Present/SwapBuffers (platform side! This is often unused!). + */ + public native void setPlatformSwapBuffers(ImPlatformFuncViewport func); /* + IM_PLATFORM_FUNC_VIEWPORT_METHOD_TMPL(SwapBuffers) + */ + + /*JNI + jobject platformCallbackGetWindowDpiScale = NULL; + float PlatformStubGetWindowDpiScale(ImGuiViewport* vp) { + if (platformCallbackGetWindowDpiScale != NULL) { + JNIEnv* env = Jni::GetEnv(); + env->SetLongField(jTmpViewport, Jni::GetBindingStructPtrID(), (intptr_t)vp); + return Jni::CallImPlatformFuncViewportSuppFloat(env, platformCallbackGetWindowDpiScale, jTmpViewport); + } + return false; + } + */ + + /** + * // N . . . . // (Optional) [BETA] FIXME-DPI: DPI handling: Return DPI scale for this viewport. 1.0f = 96 DPI. + */ + public native void setPlatformGetWindowDpiScale(ImPlatformFuncViewportSuppFloat func); /* + if (platformCallbackGetWindowDpiScale != NULL) { + env->DeleteGlobalRef(platformCallbackGetWindowDpiScale); + } + platformCallbackGetWindowDpiScale = env->NewGlobalRef(func); + IMGUI_PLATFORM_IO->Platform_GetWindowDpiScale = PlatformStubGetWindowDpiScale; + */ + + /*JNI + IM_PLATFORM_FUNC_VIEWPORT_TMPL(OnChangedViewport) + */ + + /** + * // (Optional) [BETA] FIXME-DPI: DPI handling: Called during Begin() every time the viewport we are outputting into changes, so backend has a chance to swap fonts to adjust style. + */ + public native void setPlatformOnChangedViewport(ImPlatformFuncViewport func); /* + IM_PLATFORM_FUNC_VIEWPORT_METHOD_TMPL(OnChangedViewport) + */ + + // (Optional) Renderer functions (e.g. DirectX, OpenGL, Vulkan) + + /*JNI + #define IM_RENDERER_FUNC_VIEWPORT_TMPL(name)\ + jobject rendererCallback##name = NULL;\ + void RendererStub##name(ImGuiViewport* vp) {\ + if (rendererCallback##name != NULL) {\ + JNIEnv* env = Jni::GetEnv();\ + env->SetLongField(jTmpViewport, Jni::GetBindingStructPtrID(), (intptr_t)vp);\ + Jni::CallImPlatformFuncViewport(env, rendererCallback##name, jTmpViewport);\ + }\ + }\ + void RendererStub##name(ImGuiViewport* vp, void*) {\ + RendererStub##name(vp);\ + } + + IM_RENDERER_FUNC_VIEWPORT_TMPL(CreateWindow) + + #define IM_RENDERER_FUNC_VIEWPORT_METHOD_TMPL(name)\ + if (rendererCallback##name != NULL) {\ + env->DeleteGlobalRef(rendererCallback##name);\ + }\ + rendererCallback##name = env->NewGlobalRef(func);\ + IMGUI_PLATFORM_IO->Renderer_##name = RendererStub##name; + */ + + /** + * // . . U . . // Create swap chain, frame buffers etc. (called after Platform_CreateWindow) + */ + public native void setRendererCreateWindow(ImPlatformFuncViewport func); /* + IM_RENDERER_FUNC_VIEWPORT_METHOD_TMPL(CreateWindow) + */ + + /*JNI + IM_RENDERER_FUNC_VIEWPORT_TMPL(DestroyWindow) + */ + + /** + * // N . U . D // Destroy swap chain, frame buffers etc. (called before Platform_DestroyWindow) + */ + public native void setRendererDestroyWindow(ImPlatformFuncViewport func); /* + IM_RENDERER_FUNC_VIEWPORT_METHOD_TMPL(DestroyWindow) + */ + + /*JNI + jobject rendererCallbackSetWindowSize = NULL; + void RendererStubSetWindowSize(ImGuiViewport* vp, ImVec2 pos) { + if (rendererCallbackSetWindowSize != NULL) { + JNIEnv* env = Jni::GetEnv(); + env->SetLongField(jTmpViewport, Jni::GetBindingStructPtrID(), (intptr_t)vp); + Jni::ImVec2Cpy(env, pos, jTmpImVec2); + Jni::CallImPlatformFuncViewportImVec2(env, rendererCallbackSetWindowSize, jTmpViewport, jTmpImVec2); + } + } + */ + + /** + * // . . U . . // Resize swap chain, frame buffers etc. (called after Platform_SetWindowSize) + */ + public native void setRendererSetWindowPos(ImPlatformFuncViewportImVec2 func); /* + if (rendererCallbackSetWindowSize != NULL) { + env->DeleteGlobalRef(rendererCallbackSetWindowSize); + } + rendererCallbackSetWindowSize = env->NewGlobalRef(func); + IMGUI_PLATFORM_IO->Renderer_SetWindowSize = RendererStubSetWindowSize; + */ + + /*JNI + IM_RENDERER_FUNC_VIEWPORT_TMPL(RenderWindow) + */ + + /** + * // . . . R . // (Optional) Clear framebuffer, setup render target, + * then render the viewport.DrawData. 'render_arg' is the value passed to RenderPlatformWindowsDefault(). + */ + public native void setRendererRenderWindow(ImPlatformFuncViewport func); /* + IM_RENDERER_FUNC_VIEWPORT_METHOD_TMPL(RenderWindow) + */ + + /*JNI + IM_RENDERER_FUNC_VIEWPORT_TMPL(SwapBuffers) + */ + + /** + * // . . . R . // (Optional) Call Present/SwapBuffers. 'render_arg' is the value passed to RenderPlatformWindowsDefault(). + */ + public native void setRendererSwapBuffers(ImPlatformFuncViewport func); /* + IM_RENDERER_FUNC_VIEWPORT_METHOD_TMPL(SwapBuffers) + */ + + // (Optional) Monitor list + // - Updated by: app/backend. Update every frame to dynamically support changing monitor or DPI configuration. + // - Used by: dear imgui to query DPI info, clamp popups/tooltips within same monitor and not have them straddle monitors. + + //------------------------------------------------------------------ + // Output - List of viewports to render into platform windows + //------------------------------------------------------------------ + + public native void resizeMonitors(int size); /* + IMGUI_PLATFORM_IO->Monitors.resize(0); + */ + + public native int getMonitorsSize(); /* + return IMGUI_PLATFORM_IO->Monitors.Size; + */ + + public native void pushMonitors(float mainPosX, float mainPosY, float mainSizeX, float mainSizeY, float workPosX, float workPosY, float workSizeX, float workSizeY, float dpiScale); /* + ImGuiPlatformMonitor monitor; + + monitor.MainPos = ImVec2(mainPosX, mainPosY); + monitor.MainSize = ImVec2(mainSizeX, mainSizeY); + + monitor.WorkPos = ImVec2(workPosX, workPosY); + monitor.WorkSize = ImVec2(workSizeX, workSizeY); + + monitor.DpiScale = dpiScale; + + IMGUI_PLATFORM_IO->Monitors.push_back(monitor); + */ + + public ImGuiPlatformMonitor getMonitors(final int idx) { + TMP_MONITOR.ptr = nGetMonitors(idx); + return TMP_MONITOR; + } + + private native long nGetMonitors(int idx); /* + return (intptr_t)&IMGUI_PLATFORM_IO->Monitors[idx]; + */ + + // Viewports list (the list is updated by calling ImGui::EndFrame or ImGui::Render) + // (in the future we will attempt to organize this feature to remove the need for a "main viewport") + + public native int getViewportsSize(); /* + return IMGUI_PLATFORM_IO->Viewports.Size; + */ + + public ImGuiViewport getViewports(final int idx) { + TMP_VIEWPORT.ptr = nGetViewports(idx); + return TMP_VIEWPORT; + } + + private native long nGetViewports(int idx); /* + return (intptr_t)IMGUI_PLATFORM_IO->Viewports[idx]; + */ +} diff --git a/imgui-binding/src/generated/java/imgui/ImGuiPlatformMonitor.java b/imgui-binding/src/generated/java/imgui/ImGuiPlatformMonitor.java new file mode 100644 index 0000000..27cb8f5 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImGuiPlatformMonitor.java @@ -0,0 +1,300 @@ +package imgui; + +import imgui.binding.ImGuiStruct; + +/** + * (Optional) This is required when enabling multi-viewport. Represent the bounds of each connected monitor/display and their DPI. + * We use this information for multiple DPI support + clamping the position of popups and tooltips so they don't straddle multiple monitors. + */ +public final class ImGuiPlatformMonitor extends ImGuiStruct { + public ImGuiPlatformMonitor(final long ptr) { + super(ptr); + } + + /*JNI + #include "_common.h" + #define THIS ((ImGuiPlatformMonitor*)STRUCT_PTR) + */ + + /** + * Coordinates of the area displayed on this monitor (Min = upper left, Max = bottom right) + */ + public ImVec2 getMainPos() { + final ImVec2 dst = new ImVec2(); + nGetMainPos(dst); + return dst; + } + + /** + * Coordinates of the area displayed on this monitor (Min = upper left, Max = bottom right) + */ + public float getMainPosX() { + return nGetMainPosX(); + } + + /** + * Coordinates of the area displayed on this monitor (Min = upper left, Max = bottom right) + */ + public float getMainPosY() { + return nGetMainPosY(); + } + + /** + * Coordinates of the area displayed on this monitor (Min = upper left, Max = bottom right) + */ + public void getMainPos(final ImVec2 dst) { + nGetMainPos(dst); + } + + /** + * Coordinates of the area displayed on this monitor (Min = upper left, Max = bottom right) + */ + public void setMainPos(final ImVec2 value) { + nSetMainPos(value.x, value.y); + } + + /** + * Coordinates of the area displayed on this monitor (Min = upper left, Max = bottom right) + */ + public void setMainPos(final float valueX, final float valueY) { + nSetMainPos(valueX, valueY); + } + + private native void nGetMainPos(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->MainPos, dst); + */ + + private native float nGetMainPosX(); /* + return THIS->MainPos.x; + */ + + private native float nGetMainPosY(); /* + return THIS->MainPos.y; + */ + + private native void nSetMainPos(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->MainPos = value; + */ + + /** + * Coordinates of the area displayed on this monitor (Min = upper left, Max = bottom right) + */ + public ImVec2 getMainSize() { + final ImVec2 dst = new ImVec2(); + nGetMainSize(dst); + return dst; + } + + /** + * Coordinates of the area displayed on this monitor (Min = upper left, Max = bottom right) + */ + public float getMainSizeX() { + return nGetMainSizeX(); + } + + /** + * Coordinates of the area displayed on this monitor (Min = upper left, Max = bottom right) + */ + public float getMainSizeY() { + return nGetMainSizeY(); + } + + /** + * Coordinates of the area displayed on this monitor (Min = upper left, Max = bottom right) + */ + public void getMainSize(final ImVec2 dst) { + nGetMainSize(dst); + } + + /** + * Coordinates of the area displayed on this monitor (Min = upper left, Max = bottom right) + */ + public void setMainSize(final ImVec2 value) { + nSetMainSize(value.x, value.y); + } + + /** + * Coordinates of the area displayed on this monitor (Min = upper left, Max = bottom right) + */ + public void setMainSize(final float valueX, final float valueY) { + nSetMainSize(valueX, valueY); + } + + private native void nGetMainSize(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->MainSize, dst); + */ + + private native float nGetMainSizeX(); /* + return THIS->MainSize.x; + */ + + private native float nGetMainSizeY(); /* + return THIS->MainSize.y; + */ + + private native void nSetMainSize(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->MainSize = value; + */ + + /** + * Coordinates without task bars / side bars / menu bars. + * Used to avoid positioning popups/tooltips inside this region. If you don't have this info, please copy the value for MainPos/MainSize. + */ + public ImVec2 getWorkPos() { + final ImVec2 dst = new ImVec2(); + nGetWorkPos(dst); + return dst; + } + + /** + * Coordinates without task bars / side bars / menu bars. + * Used to avoid positioning popups/tooltips inside this region. If you don't have this info, please copy the value for MainPos/MainSize. + */ + public float getWorkPosX() { + return nGetWorkPosX(); + } + + /** + * Coordinates without task bars / side bars / menu bars. + * Used to avoid positioning popups/tooltips inside this region. If you don't have this info, please copy the value for MainPos/MainSize. + */ + public float getWorkPosY() { + return nGetWorkPosY(); + } + + /** + * Coordinates without task bars / side bars / menu bars. + * Used to avoid positioning popups/tooltips inside this region. If you don't have this info, please copy the value for MainPos/MainSize. + */ + public void getWorkPos(final ImVec2 dst) { + nGetWorkPos(dst); + } + + /** + * Coordinates without task bars / side bars / menu bars. + * Used to avoid positioning popups/tooltips inside this region. If you don't have this info, please copy the value for MainPos/MainSize. + */ + public void setWorkPos(final ImVec2 value) { + nSetWorkPos(value.x, value.y); + } + + /** + * Coordinates without task bars / side bars / menu bars. + * Used to avoid positioning popups/tooltips inside this region. If you don't have this info, please copy the value for MainPos/MainSize. + */ + public void setWorkPos(final float valueX, final float valueY) { + nSetWorkPos(valueX, valueY); + } + + private native void nGetWorkPos(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->WorkPos, dst); + */ + + private native float nGetWorkPosX(); /* + return THIS->WorkPos.x; + */ + + private native float nGetWorkPosY(); /* + return THIS->WorkPos.y; + */ + + private native void nSetWorkPos(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->WorkPos = value; + */ + + /** + * Coordinates without task bars / side bars / menu bars. + * Used to avoid positioning popups/tooltips inside this region. If you don't have this info, please copy the value for MainPos/MainSize. + */ + public ImVec2 getWorkSize() { + final ImVec2 dst = new ImVec2(); + nGetWorkSize(dst); + return dst; + } + + /** + * Coordinates without task bars / side bars / menu bars. + * Used to avoid positioning popups/tooltips inside this region. If you don't have this info, please copy the value for MainPos/MainSize. + */ + public float getWorkSizeX() { + return nGetWorkSizeX(); + } + + /** + * Coordinates without task bars / side bars / menu bars. + * Used to avoid positioning popups/tooltips inside this region. If you don't have this info, please copy the value for MainPos/MainSize. + */ + public float getWorkSizeY() { + return nGetWorkSizeY(); + } + + /** + * Coordinates without task bars / side bars / menu bars. + * Used to avoid positioning popups/tooltips inside this region. If you don't have this info, please copy the value for MainPos/MainSize. + */ + public void getWorkSize(final ImVec2 dst) { + nGetWorkSize(dst); + } + + /** + * Coordinates without task bars / side bars / menu bars. + * Used to avoid positioning popups/tooltips inside this region. If you don't have this info, please copy the value for MainPos/MainSize. + */ + public void setWorkSize(final ImVec2 value) { + nSetWorkSize(value.x, value.y); + } + + /** + * Coordinates without task bars / side bars / menu bars. + * Used to avoid positioning popups/tooltips inside this region. If you don't have this info, please copy the value for MainPos/MainSize. + */ + public void setWorkSize(final float valueX, final float valueY) { + nSetWorkSize(valueX, valueY); + } + + private native void nGetWorkSize(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->WorkSize, dst); + */ + + private native float nGetWorkSizeX(); /* + return THIS->WorkSize.x; + */ + + private native float nGetWorkSizeY(); /* + return THIS->WorkSize.y; + */ + + private native void nSetWorkSize(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->WorkSize = value; + */ + + /** + * 1.0f = 96 DPI + */ + public float getDpiScale() { + return nGetDpiScale(); + } + + /** + * 1.0f = 96 DPI + */ + public void setDpiScale(final float value) { + nSetDpiScale(value); + } + + private native float nGetDpiScale(); /* + return THIS->DpiScale; + */ + + private native void nSetDpiScale(float value); /* + THIS->DpiScale = value; + */ + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/ImGuiStorage.java b/imgui-binding/src/generated/java/imgui/ImGuiStorage.java new file mode 100644 index 0000000..db48143 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImGuiStorage.java @@ -0,0 +1,146 @@ +package imgui; + +import imgui.binding.ImGuiStructDestroyable; + +/** + * Helper: Key-Value storage + * Typically you don't have to worry about this since a storage is held within each Window. + * We use it to e.g. store collapse state for a tree (Int 0/1) + * This is optimized for efficient lookup (dichotomy into a contiguous buffer) and rare insertion (typically tied to user interactions aka max once a frame) + * You can use it as custom user storage for temporary values. Declare your own storage if, for example: + * - You want to manipulate the open/close state of a particular sub-tree in your interface (tree node uses Int 0/1 to store their state). + * - You want to store custom debug data easily without adding or editing structures in your code (probably not efficient, but convenient) + * Types are NOT stored, so it is up to you to make sure your Key don't collide with different types. + */ +public final class ImGuiStorage extends ImGuiStructDestroyable { + public ImGuiStorage() { + } + + public ImGuiStorage(final long ptr) { + super(ptr); + } + + @Override + protected long create() { + return nCreate(); + } + + /*JNI + #include "_common.h" + #define THIS ((ImGuiStorage*)STRUCT_PTR) + */ + + private native long nCreate(); /* + return (intptr_t)(new ImGuiStorage()); + */ + + // - Get***() functions find pair, never add/allocate. Pairs are sorted so a query is O(log N) + // - Set***() functions find pair, insertion on demand if missing. + // - Sorted insertion is costly, paid once. A typical frame shouldn't need to insert any new pair. + + public void clear() { + nClear(); + } + + private native void nClear(); /* + THIS->Clear(); + */ + + public int getInt(final int key) { + return nGetInt(key); + } + + public int getInt(final int key, final int defaultVal) { + return nGetInt(key, defaultVal); + } + + private native int nGetInt(int key); /* + return THIS->GetInt(key); + */ + + private native int nGetInt(int key, int defaultVal); /* + return THIS->GetInt(key, defaultVal); + */ + + public void setInt(final int key, final int val) { + nSetInt(key, val); + } + + private native void nSetInt(int key, int val); /* + THIS->SetInt(key, val); + */ + + public boolean getBool(final int key) { + return nGetBool(key); + } + + public boolean getBool(final int key, final boolean defaultVal) { + return nGetBool(key, defaultVal); + } + + private native boolean nGetBool(int key); /* + return THIS->GetBool(key); + */ + + private native boolean nGetBool(int key, boolean defaultVal); /* + return THIS->GetBool(key, defaultVal); + */ + + public void setBool(final int key, final boolean val) { + nSetBool(key, val); + } + + private native void nSetBool(int key, boolean val); /* + THIS->SetBool(key, val); + */ + + public float getFloat(final int key) { + return nGetFloat(key); + } + + public float getFloat(final int key, final float defaultVal) { + return nGetFloat(key, defaultVal); + } + + private native float nGetFloat(int key); /* + return THIS->GetFloat(key); + */ + + private native float nGetFloat(int key, float defaultVal); /* + return THIS->GetFloat(key, defaultVal); + */ + + public void setFloat(final int key, final float val) { + nSetFloat(key, val); + } + + private native void nSetFloat(int key, float val); /* + THIS->SetFloat(key, val); + */ + + /** + * Use on your own storage if you know only integer are being stored (open/close all tree nodes) + */ + public void setAllInt(final int val) { + nSetAllInt(val); + } + + private native void nSetAllInt(int val); /* + THIS->SetAllInt(val); + */ + + /** + * For quicker full rebuild of a storage (instead of an incremental one), you may add all your contents and then sort once. + */ + public void buildSortByKey() { + nBuildSortByKey(); + } + + private native void nBuildSortByKey(); /* + THIS->BuildSortByKey(); + */ + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/ImGuiStyle.java b/imgui-binding/src/generated/java/imgui/ImGuiStyle.java new file mode 100644 index 0000000..92d815c --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImGuiStyle.java @@ -0,0 +1,1461 @@ +package imgui; + +import imgui.binding.ImGuiStructDestroyable; + +/** + * You may modify the ImGui::GetStyle() main instance during initialization and before NewFrame(). + * During the frame, use ImGui::PushStyleVar(ImGuiStyleVar_XXXX)/PopStyleVar() to alter the main style values, + * and ImGui::PushStyleColor(ImGuiCol_XXX)/PopStyleColor() for colors. + */ +public final class ImGuiStyle extends ImGuiStructDestroyable { + public ImGuiStyle() { + } + + public ImGuiStyle(final long ptr) { + super(ptr); + } + + @Override + protected long create() { + return nCreate(); + } + + /*JNI + #include "_common.h" + #define THIS ((ImGuiStyle*)STRUCT_PTR) + */ + + private native long nCreate(); /* + return (intptr_t)(new ImGuiStyle()); + */ + + /** + * Global alpha applies to everything in Dear ImGui. + */ + public float getAlpha() { + return nGetAlpha(); + } + + /** + * Global alpha applies to everything in Dear ImGui. + */ + public void setAlpha(final float value) { + nSetAlpha(value); + } + + private native float nGetAlpha(); /* + return THIS->Alpha; + */ + + private native void nSetAlpha(float value); /* + THIS->Alpha = value; + */ + + /** + * Additional alpha multiplier applied by BeginDisabled(). Multiply over current value of Alpha. + */ + public float getDisabledAlpha() { + return nGetDisabledAlpha(); + } + + /** + * Additional alpha multiplier applied by BeginDisabled(). Multiply over current value of Alpha. + */ + public void setDisabledAlpha(final float value) { + nSetDisabledAlpha(value); + } + + private native float nGetDisabledAlpha(); /* + return THIS->DisabledAlpha; + */ + + private native void nSetDisabledAlpha(float value); /* + THIS->DisabledAlpha = value; + */ + + /** + * Padding within a window. + */ + public ImVec2 getWindowPadding() { + final ImVec2 dst = new ImVec2(); + nGetWindowPadding(dst); + return dst; + } + + /** + * Padding within a window. + */ + public float getWindowPaddingX() { + return nGetWindowPaddingX(); + } + + /** + * Padding within a window. + */ + public float getWindowPaddingY() { + return nGetWindowPaddingY(); + } + + /** + * Padding within a window. + */ + public void getWindowPadding(final ImVec2 dst) { + nGetWindowPadding(dst); + } + + /** + * Padding within a window. + */ + public void setWindowPadding(final ImVec2 value) { + nSetWindowPadding(value.x, value.y); + } + + /** + * Padding within a window. + */ + public void setWindowPadding(final float valueX, final float valueY) { + nSetWindowPadding(valueX, valueY); + } + + private native void nGetWindowPadding(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->WindowPadding, dst); + */ + + private native float nGetWindowPaddingX(); /* + return THIS->WindowPadding.x; + */ + + private native float nGetWindowPaddingY(); /* + return THIS->WindowPadding.y; + */ + + private native void nSetWindowPadding(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->WindowPadding = value; + */ + + /** + * Radius of window corners rounding. Set to 0.0f to have rectangular windows. + * Large values tend to lead to variety of artifacts and are not recommended. + */ + public float getWindowRounding() { + return nGetWindowRounding(); + } + + /** + * Radius of window corners rounding. Set to 0.0f to have rectangular windows. + * Large values tend to lead to variety of artifacts and are not recommended. + */ + public void setWindowRounding(final float value) { + nSetWindowRounding(value); + } + + private native float nGetWindowRounding(); /* + return THIS->WindowRounding; + */ + + private native void nSetWindowRounding(float value); /* + THIS->WindowRounding = value; + */ + + /** + * Thickness of border around windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). + */ + public float getWindowBorderSize() { + return nGetWindowBorderSize(); + } + + /** + * Thickness of border around windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). + */ + public void setWindowBorderSize(final float value) { + nSetWindowBorderSize(value); + } + + private native float nGetWindowBorderSize(); /* + return THIS->WindowBorderSize; + */ + + private native void nSetWindowBorderSize(float value); /* + THIS->WindowBorderSize = value; + */ + + /** + * Minimum window size. This is a global setting. If you want to constraint individual windows, use SetNextWindowSizeConstraints(). + */ + public ImVec2 getWindowMinSize() { + final ImVec2 dst = new ImVec2(); + nGetWindowMinSize(dst); + return dst; + } + + /** + * Minimum window size. This is a global setting. If you want to constraint individual windows, use SetNextWindowSizeConstraints(). + */ + public float getWindowMinSizeX() { + return nGetWindowMinSizeX(); + } + + /** + * Minimum window size. This is a global setting. If you want to constraint individual windows, use SetNextWindowSizeConstraints(). + */ + public float getWindowMinSizeY() { + return nGetWindowMinSizeY(); + } + + /** + * Minimum window size. This is a global setting. If you want to constraint individual windows, use SetNextWindowSizeConstraints(). + */ + public void getWindowMinSize(final ImVec2 dst) { + nGetWindowMinSize(dst); + } + + /** + * Minimum window size. This is a global setting. If you want to constraint individual windows, use SetNextWindowSizeConstraints(). + */ + public void setWindowMinSize(final ImVec2 value) { + nSetWindowMinSize(value.x, value.y); + } + + /** + * Minimum window size. This is a global setting. If you want to constraint individual windows, use SetNextWindowSizeConstraints(). + */ + public void setWindowMinSize(final float valueX, final float valueY) { + nSetWindowMinSize(valueX, valueY); + } + + private native void nGetWindowMinSize(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->WindowMinSize, dst); + */ + + private native float nGetWindowMinSizeX(); /* + return THIS->WindowMinSize.x; + */ + + private native float nGetWindowMinSizeY(); /* + return THIS->WindowMinSize.y; + */ + + private native void nSetWindowMinSize(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->WindowMinSize = value; + */ + + /** + * Alignment for title bar text. Defaults to (0.0f,0.5f) for left-aligned,vertically centered. + */ + public ImVec2 getWindowTitleAlign() { + final ImVec2 dst = new ImVec2(); + nGetWindowTitleAlign(dst); + return dst; + } + + /** + * Alignment for title bar text. Defaults to (0.0f,0.5f) for left-aligned,vertically centered. + */ + public float getWindowTitleAlignX() { + return nGetWindowTitleAlignX(); + } + + /** + * Alignment for title bar text. Defaults to (0.0f,0.5f) for left-aligned,vertically centered. + */ + public float getWindowTitleAlignY() { + return nGetWindowTitleAlignY(); + } + + /** + * Alignment for title bar text. Defaults to (0.0f,0.5f) for left-aligned,vertically centered. + */ + public void getWindowTitleAlign(final ImVec2 dst) { + nGetWindowTitleAlign(dst); + } + + /** + * Alignment for title bar text. Defaults to (0.0f,0.5f) for left-aligned,vertically centered. + */ + public void setWindowTitleAlign(final ImVec2 value) { + nSetWindowTitleAlign(value.x, value.y); + } + + /** + * Alignment for title bar text. Defaults to (0.0f,0.5f) for left-aligned,vertically centered. + */ + public void setWindowTitleAlign(final float valueX, final float valueY) { + nSetWindowTitleAlign(valueX, valueY); + } + + private native void nGetWindowTitleAlign(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->WindowTitleAlign, dst); + */ + + private native float nGetWindowTitleAlignX(); /* + return THIS->WindowTitleAlign.x; + */ + + private native float nGetWindowTitleAlignY(); /* + return THIS->WindowTitleAlign.y; + */ + + private native void nSetWindowTitleAlign(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->WindowTitleAlign = value; + */ + + /** + * Side of the collapsing/docking button in the title bar (None/Left/Right). Defaults to ImGuiDir_Left. + */ + public int getWindowMenuButtonPosition() { + return nGetWindowMenuButtonPosition(); + } + + /** + * Side of the collapsing/docking button in the title bar (None/Left/Right). Defaults to ImGuiDir_Left. + */ + public void setWindowMenuButtonPosition(final int value) { + nSetWindowMenuButtonPosition(value); + } + + private native int nGetWindowMenuButtonPosition(); /* + return THIS->WindowMenuButtonPosition; + */ + + private native void nSetWindowMenuButtonPosition(int value); /* + THIS->WindowMenuButtonPosition = value; + */ + + /** + * Radius of child window corners rounding. Set to 0.0f to have rectangular windows. + */ + public float getChildRounding() { + return nGetChildRounding(); + } + + /** + * Radius of child window corners rounding. Set to 0.0f to have rectangular windows. + */ + public void setChildRounding(final float value) { + nSetChildRounding(value); + } + + private native float nGetChildRounding(); /* + return THIS->ChildRounding; + */ + + private native void nSetChildRounding(float value); /* + THIS->ChildRounding = value; + */ + + /** + * Thickness of border around child windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). + */ + public float getChildBorderSize() { + return nGetChildBorderSize(); + } + + /** + * Thickness of border around child windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). + */ + public void setChildBorderSize(final float value) { + nSetChildBorderSize(value); + } + + private native float nGetChildBorderSize(); /* + return THIS->ChildBorderSize; + */ + + private native void nSetChildBorderSize(float value); /* + THIS->ChildBorderSize = value; + */ + + /** + * Radius of popup window corners rounding. (Note that tooltip windows use WindowRounding) + */ + public float getPopupRounding() { + return nGetPopupRounding(); + } + + /** + * Radius of popup window corners rounding. (Note that tooltip windows use WindowRounding) + */ + public void setPopupRounding(final float value) { + nSetPopupRounding(value); + } + + private native float nGetPopupRounding(); /* + return THIS->PopupRounding; + */ + + private native void nSetPopupRounding(float value); /* + THIS->PopupRounding = value; + */ + + /** + * Thickness of border around popup/tooltip windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). + */ + public float getPopupBorderSize() { + return nGetPopupBorderSize(); + } + + /** + * Thickness of border around popup/tooltip windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). + */ + public void setPopupBorderSize(final float value) { + nSetPopupBorderSize(value); + } + + private native float nGetPopupBorderSize(); /* + return THIS->PopupBorderSize; + */ + + private native void nSetPopupBorderSize(float value); /* + THIS->PopupBorderSize = value; + */ + + /** + * Padding within a framed rectangle (used by most widgets). + */ + public ImVec2 getFramePadding() { + final ImVec2 dst = new ImVec2(); + nGetFramePadding(dst); + return dst; + } + + /** + * Padding within a framed rectangle (used by most widgets). + */ + public float getFramePaddingX() { + return nGetFramePaddingX(); + } + + /** + * Padding within a framed rectangle (used by most widgets). + */ + public float getFramePaddingY() { + return nGetFramePaddingY(); + } + + /** + * Padding within a framed rectangle (used by most widgets). + */ + public void getFramePadding(final ImVec2 dst) { + nGetFramePadding(dst); + } + + /** + * Padding within a framed rectangle (used by most widgets). + */ + public void setFramePadding(final ImVec2 value) { + nSetFramePadding(value.x, value.y); + } + + /** + * Padding within a framed rectangle (used by most widgets). + */ + public void setFramePadding(final float valueX, final float valueY) { + nSetFramePadding(valueX, valueY); + } + + private native void nGetFramePadding(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->FramePadding, dst); + */ + + private native float nGetFramePaddingX(); /* + return THIS->FramePadding.x; + */ + + private native float nGetFramePaddingY(); /* + return THIS->FramePadding.y; + */ + + private native void nSetFramePadding(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->FramePadding = value; + */ + + /** + * Radius of frame corners rounding. Set to 0.0f to have rectangular frame (used by most widgets). + */ + public float getFrameRounding() { + return nGetFrameRounding(); + } + + /** + * Radius of frame corners rounding. Set to 0.0f to have rectangular frame (used by most widgets). + */ + public void setFrameRounding(final float value) { + nSetFrameRounding(value); + } + + private native float nGetFrameRounding(); /* + return THIS->FrameRounding; + */ + + private native void nSetFrameRounding(float value); /* + THIS->FrameRounding = value; + */ + + /** + * Thickness of border around frames. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). + */ + public float getFrameBorderSize() { + return nGetFrameBorderSize(); + } + + /** + * Thickness of border around frames. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). + */ + public void setFrameBorderSize(final float value) { + nSetFrameBorderSize(value); + } + + private native float nGetFrameBorderSize(); /* + return THIS->FrameBorderSize; + */ + + private native void nSetFrameBorderSize(float value); /* + THIS->FrameBorderSize = value; + */ + + /** + * Horizontal and vertical spacing between widgets/lines. + */ + public ImVec2 getItemSpacing() { + final ImVec2 dst = new ImVec2(); + nGetItemSpacing(dst); + return dst; + } + + /** + * Horizontal and vertical spacing between widgets/lines. + */ + public float getItemSpacingX() { + return nGetItemSpacingX(); + } + + /** + * Horizontal and vertical spacing between widgets/lines. + */ + public float getItemSpacingY() { + return nGetItemSpacingY(); + } + + /** + * Horizontal and vertical spacing between widgets/lines. + */ + public void getItemSpacing(final ImVec2 dst) { + nGetItemSpacing(dst); + } + + /** + * Horizontal and vertical spacing between widgets/lines. + */ + public void setItemSpacing(final ImVec2 value) { + nSetItemSpacing(value.x, value.y); + } + + /** + * Horizontal and vertical spacing between widgets/lines. + */ + public void setItemSpacing(final float valueX, final float valueY) { + nSetItemSpacing(valueX, valueY); + } + + private native void nGetItemSpacing(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->ItemSpacing, dst); + */ + + private native float nGetItemSpacingX(); /* + return THIS->ItemSpacing.x; + */ + + private native float nGetItemSpacingY(); /* + return THIS->ItemSpacing.y; + */ + + private native void nSetItemSpacing(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->ItemSpacing = value; + */ + + /** + * Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label). + */ + public ImVec2 getItemInnerSpacing() { + final ImVec2 dst = new ImVec2(); + nGetItemInnerSpacing(dst); + return dst; + } + + /** + * Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label). + */ + public float getItemInnerSpacingX() { + return nGetItemInnerSpacingX(); + } + + /** + * Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label). + */ + public float getItemInnerSpacingY() { + return nGetItemInnerSpacingY(); + } + + /** + * Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label). + */ + public void getItemInnerSpacing(final ImVec2 dst) { + nGetItemInnerSpacing(dst); + } + + /** + * Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label). + */ + public void setItemInnerSpacing(final ImVec2 value) { + nSetItemInnerSpacing(value.x, value.y); + } + + /** + * Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label). + */ + public void setItemInnerSpacing(final float valueX, final float valueY) { + nSetItemInnerSpacing(valueX, valueY); + } + + private native void nGetItemInnerSpacing(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->ItemInnerSpacing, dst); + */ + + private native float nGetItemInnerSpacingX(); /* + return THIS->ItemInnerSpacing.x; + */ + + private native float nGetItemInnerSpacingY(); /* + return THIS->ItemInnerSpacing.y; + */ + + private native void nSetItemInnerSpacing(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->ItemInnerSpacing = value; + */ + + /** + * Padding within a table cell. + */ + public ImVec2 getCellPadding() { + final ImVec2 dst = new ImVec2(); + nGetCellPadding(dst); + return dst; + } + + /** + * Padding within a table cell. + */ + public float getCellPaddingX() { + return nGetCellPaddingX(); + } + + /** + * Padding within a table cell. + */ + public float getCellPaddingY() { + return nGetCellPaddingY(); + } + + /** + * Padding within a table cell. + */ + public void getCellPadding(final ImVec2 dst) { + nGetCellPadding(dst); + } + + /** + * Padding within a table cell. + */ + public void setCellPadding(final ImVec2 value) { + nSetCellPadding(value.x, value.y); + } + + /** + * Padding within a table cell. + */ + public void setCellPadding(final float valueX, final float valueY) { + nSetCellPadding(valueX, valueY); + } + + private native void nGetCellPadding(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->CellPadding, dst); + */ + + private native float nGetCellPaddingX(); /* + return THIS->CellPadding.x; + */ + + private native float nGetCellPaddingY(); /* + return THIS->CellPadding.y; + */ + + private native void nSetCellPadding(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->CellPadding = value; + */ + + /** + * Expand reactive bounding box for touch-based system where touch position is not accurate enough. + * Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much! + */ + public ImVec2 getTouchExtraPadding() { + final ImVec2 dst = new ImVec2(); + nGetTouchExtraPadding(dst); + return dst; + } + + /** + * Expand reactive bounding box for touch-based system where touch position is not accurate enough. + * Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much! + */ + public float getTouchExtraPaddingX() { + return nGetTouchExtraPaddingX(); + } + + /** + * Expand reactive bounding box for touch-based system where touch position is not accurate enough. + * Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much! + */ + public float getTouchExtraPaddingY() { + return nGetTouchExtraPaddingY(); + } + + /** + * Expand reactive bounding box for touch-based system where touch position is not accurate enough. + * Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much! + */ + public void getTouchExtraPadding(final ImVec2 dst) { + nGetTouchExtraPadding(dst); + } + + /** + * Expand reactive bounding box for touch-based system where touch position is not accurate enough. + * Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much! + */ + public void setTouchExtraPadding(final ImVec2 value) { + nSetTouchExtraPadding(value.x, value.y); + } + + /** + * Expand reactive bounding box for touch-based system where touch position is not accurate enough. + * Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much! + */ + public void setTouchExtraPadding(final float valueX, final float valueY) { + nSetTouchExtraPadding(valueX, valueY); + } + + private native void nGetTouchExtraPadding(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->TouchExtraPadding, dst); + */ + + private native float nGetTouchExtraPaddingX(); /* + return THIS->TouchExtraPadding.x; + */ + + private native float nGetTouchExtraPaddingY(); /* + return THIS->TouchExtraPadding.y; + */ + + private native void nSetTouchExtraPadding(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->TouchExtraPadding = value; + */ + + /** + * Horizontal indentation when e.g. entering a tree node. Generally == (FontSize + FramePadding.x*2). + */ + public float getIndentSpacing() { + return nGetIndentSpacing(); + } + + /** + * Horizontal indentation when e.g. entering a tree node. Generally == (FontSize + FramePadding.x*2). + */ + public void setIndentSpacing(final float value) { + nSetIndentSpacing(value); + } + + private native float nGetIndentSpacing(); /* + return THIS->IndentSpacing; + */ + + private native void nSetIndentSpacing(float value); /* + THIS->IndentSpacing = value; + */ + + /** + * Minimum horizontal spacing between two columns. Preferably {@code >} (FramePadding.x + 1). + */ + public float getColumnsMinSpacing() { + return nGetColumnsMinSpacing(); + } + + /** + * Minimum horizontal spacing between two columns. Preferably {@code >} (FramePadding.x + 1). + */ + public void setColumnsMinSpacing(final float value) { + nSetColumnsMinSpacing(value); + } + + private native float nGetColumnsMinSpacing(); /* + return THIS->ColumnsMinSpacing; + */ + + private native void nSetColumnsMinSpacing(float value); /* + THIS->ColumnsMinSpacing = value; + */ + + /** + * Width of the vertical scrollbar, Height of the horizontal scrollbar. + */ + public float getScrollbarSize() { + return nGetScrollbarSize(); + } + + /** + * Width of the vertical scrollbar, Height of the horizontal scrollbar. + */ + public void setScrollbarSize(final float value) { + nSetScrollbarSize(value); + } + + private native float nGetScrollbarSize(); /* + return THIS->ScrollbarSize; + */ + + private native void nSetScrollbarSize(float value); /* + THIS->ScrollbarSize = value; + */ + + /** + * Radius of grab corners for scrollbar. + */ + public float getScrollbarRounding() { + return nGetScrollbarRounding(); + } + + /** + * Radius of grab corners for scrollbar. + */ + public void setScrollbarRounding(final float value) { + nSetScrollbarRounding(value); + } + + private native float nGetScrollbarRounding(); /* + return THIS->ScrollbarRounding; + */ + + private native void nSetScrollbarRounding(float value); /* + THIS->ScrollbarRounding = value; + */ + + /** + * Minimum width/height of a grab box for slider/scrollbar. + */ + public float getGrabMinSize() { + return nGetGrabMinSize(); + } + + /** + * Minimum width/height of a grab box for slider/scrollbar. + */ + public void setGrabMinSize(final float value) { + nSetGrabMinSize(value); + } + + private native float nGetGrabMinSize(); /* + return THIS->GrabMinSize; + */ + + private native void nSetGrabMinSize(float value); /* + THIS->GrabMinSize = value; + */ + + /** + * Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs. + */ + public float getGrabRounding() { + return nGetGrabRounding(); + } + + /** + * Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs. + */ + public void setGrabRounding(final float value) { + nSetGrabRounding(value); + } + + private native float nGetGrabRounding(); /* + return THIS->GrabRounding; + */ + + private native void nSetGrabRounding(float value); /* + THIS->GrabRounding = value; + */ + + /** + * The size in pixels of the dead-zone around zero on logarithmic sliders that cross zero. + */ + public float getLogSliderDeadzone() { + return nGetLogSliderDeadzone(); + } + + /** + * The size in pixels of the dead-zone around zero on logarithmic sliders that cross zero. + */ + public void setLogSliderDeadzone(final float value) { + nSetLogSliderDeadzone(value); + } + + private native float nGetLogSliderDeadzone(); /* + return THIS->LogSliderDeadzone; + */ + + private native void nSetLogSliderDeadzone(float value); /* + THIS->LogSliderDeadzone = value; + */ + + /** + * Radius of upper corners of a tab. Set to 0.0f to have rectangular tabs. + */ + public float getTabRounding() { + return nGetTabRounding(); + } + + /** + * Radius of upper corners of a tab. Set to 0.0f to have rectangular tabs. + */ + public void setTabRounding(final float value) { + nSetTabRounding(value); + } + + private native float nGetTabRounding(); /* + return THIS->TabRounding; + */ + + private native void nSetTabRounding(float value); /* + THIS->TabRounding = value; + */ + + /** + * Thickness of border around tabs. + */ + public float getTabBorderSize() { + return nGetTabBorderSize(); + } + + /** + * Thickness of border around tabs. + */ + public void setTabBorderSize(final float value) { + nSetTabBorderSize(value); + } + + private native float nGetTabBorderSize(); /* + return THIS->TabBorderSize; + */ + + private native void nSetTabBorderSize(float value); /* + THIS->TabBorderSize = value; + */ + + /** + * Minimum width for close button to appears 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. + */ + public float getTabMinWidthForCloseButton() { + return nGetTabMinWidthForCloseButton(); + } + + /** + * Minimum width for close button to appears 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. + */ + public void setTabMinWidthForCloseButton(final float value) { + nSetTabMinWidthForCloseButton(value); + } + + private native float nGetTabMinWidthForCloseButton(); /* + return THIS->TabMinWidthForCloseButton; + */ + + private native void nSetTabMinWidthForCloseButton(float value); /* + THIS->TabMinWidthForCloseButton = value; + */ + + /** + * Side of the color button in the ColorEdit4 widget (left/right). Defaults to ImGuiDir_Right. + */ + public int getColorButtonPosition() { + return nGetColorButtonPosition(); + } + + /** + * Side of the color button in the ColorEdit4 widget (left/right). Defaults to ImGuiDir_Right. + */ + public void setColorButtonPosition(final int value) { + nSetColorButtonPosition(value); + } + + private native int nGetColorButtonPosition(); /* + return THIS->ColorButtonPosition; + */ + + private native void nSetColorButtonPosition(int value); /* + THIS->ColorButtonPosition = value; + */ + + /** + * Alignment of button text when button is larger than text. Defaults to (0.5f, 0.5f) (centered). + */ + public ImVec2 getButtonTextAlign() { + final ImVec2 dst = new ImVec2(); + nGetButtonTextAlign(dst); + return dst; + } + + /** + * Alignment of button text when button is larger than text. Defaults to (0.5f, 0.5f) (centered). + */ + public float getButtonTextAlignX() { + return nGetButtonTextAlignX(); + } + + /** + * Alignment of button text when button is larger than text. Defaults to (0.5f, 0.5f) (centered). + */ + public float getButtonTextAlignY() { + return nGetButtonTextAlignY(); + } + + /** + * Alignment of button text when button is larger than text. Defaults to (0.5f, 0.5f) (centered). + */ + public void getButtonTextAlign(final ImVec2 dst) { + nGetButtonTextAlign(dst); + } + + /** + * Alignment of button text when button is larger than text. Defaults to (0.5f, 0.5f) (centered). + */ + public void setButtonTextAlign(final ImVec2 value) { + nSetButtonTextAlign(value.x, value.y); + } + + /** + * Alignment of button text when button is larger than text. Defaults to (0.5f, 0.5f) (centered). + */ + public void setButtonTextAlign(final float valueX, final float valueY) { + nSetButtonTextAlign(valueX, valueY); + } + + private native void nGetButtonTextAlign(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->ButtonTextAlign, dst); + */ + + private native float nGetButtonTextAlignX(); /* + return THIS->ButtonTextAlign.x; + */ + + private native float nGetButtonTextAlignY(); /* + return THIS->ButtonTextAlign.y; + */ + + private native void nSetButtonTextAlign(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->ButtonTextAlign = value; + */ + + /** + * Alignment of selectable text. Defaults to (0.0f, 0.0f) (top-left aligned). + * It's generally important to keep this left-aligned if you want to lay multiple items on a same line. + */ + public ImVec2 getSelectableTextAlign() { + final ImVec2 dst = new ImVec2(); + nGetSelectableTextAlign(dst); + return dst; + } + + /** + * Alignment of selectable text. Defaults to (0.0f, 0.0f) (top-left aligned). + * It's generally important to keep this left-aligned if you want to lay multiple items on a same line. + */ + public float getSelectableTextAlignX() { + return nGetSelectableTextAlignX(); + } + + /** + * Alignment of selectable text. Defaults to (0.0f, 0.0f) (top-left aligned). + * It's generally important to keep this left-aligned if you want to lay multiple items on a same line. + */ + public float getSelectableTextAlignY() { + return nGetSelectableTextAlignY(); + } + + /** + * Alignment of selectable text. Defaults to (0.0f, 0.0f) (top-left aligned). + * It's generally important to keep this left-aligned if you want to lay multiple items on a same line. + */ + public void getSelectableTextAlign(final ImVec2 dst) { + nGetSelectableTextAlign(dst); + } + + /** + * Alignment of selectable text. Defaults to (0.0f, 0.0f) (top-left aligned). + * It's generally important to keep this left-aligned if you want to lay multiple items on a same line. + */ + public void setSelectableTextAlign(final ImVec2 value) { + nSetSelectableTextAlign(value.x, value.y); + } + + /** + * Alignment of selectable text. Defaults to (0.0f, 0.0f) (top-left aligned). + * It's generally important to keep this left-aligned if you want to lay multiple items on a same line. + */ + public void setSelectableTextAlign(final float valueX, final float valueY) { + nSetSelectableTextAlign(valueX, valueY); + } + + private native void nGetSelectableTextAlign(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->SelectableTextAlign, dst); + */ + + private native float nGetSelectableTextAlignX(); /* + return THIS->SelectableTextAlign.x; + */ + + private native float nGetSelectableTextAlignY(); /* + return THIS->SelectableTextAlign.y; + */ + + private native void nSetSelectableTextAlign(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->SelectableTextAlign = value; + */ + + /** + * Window position are clamped to be visible within the display area by at least this amount. Only applies to regular windows. + */ + public ImVec2 getDisplayWindowPadding() { + final ImVec2 dst = new ImVec2(); + nGetDisplayWindowPadding(dst); + return dst; + } + + /** + * Window position are clamped to be visible within the display area by at least this amount. Only applies to regular windows. + */ + public float getDisplayWindowPaddingX() { + return nGetDisplayWindowPaddingX(); + } + + /** + * Window position are clamped to be visible within the display area by at least this amount. Only applies to regular windows. + */ + public float getDisplayWindowPaddingY() { + return nGetDisplayWindowPaddingY(); + } + + /** + * Window position are clamped to be visible within the display area by at least this amount. Only applies to regular windows. + */ + public void getDisplayWindowPadding(final ImVec2 dst) { + nGetDisplayWindowPadding(dst); + } + + /** + * Window position are clamped to be visible within the display area by at least this amount. Only applies to regular windows. + */ + public void setDisplayWindowPadding(final ImVec2 value) { + nSetDisplayWindowPadding(value.x, value.y); + } + + /** + * Window position are clamped to be visible within the display area by at least this amount. Only applies to regular windows. + */ + public void setDisplayWindowPadding(final float valueX, final float valueY) { + nSetDisplayWindowPadding(valueX, valueY); + } + + private native void nGetDisplayWindowPadding(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->DisplayWindowPadding, dst); + */ + + private native float nGetDisplayWindowPaddingX(); /* + return THIS->DisplayWindowPadding.x; + */ + + private native float nGetDisplayWindowPaddingY(); /* + return THIS->DisplayWindowPadding.y; + */ + + private native void nSetDisplayWindowPadding(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->DisplayWindowPadding = value; + */ + + /** + * If you cannot see the edges of your screen (e.g. on a TV) increase the safe area padding. + * Apply to popups/tooltips as well regular windows. NB: Prefer configuring your TV sets correctly! + */ + public ImVec2 getDisplaySafeAreaPadding() { + final ImVec2 dst = new ImVec2(); + nGetDisplaySafeAreaPadding(dst); + return dst; + } + + /** + * If you cannot see the edges of your screen (e.g. on a TV) increase the safe area padding. + * Apply to popups/tooltips as well regular windows. NB: Prefer configuring your TV sets correctly! + */ + public float getDisplaySafeAreaPaddingX() { + return nGetDisplaySafeAreaPaddingX(); + } + + /** + * If you cannot see the edges of your screen (e.g. on a TV) increase the safe area padding. + * Apply to popups/tooltips as well regular windows. NB: Prefer configuring your TV sets correctly! + */ + public float getDisplaySafeAreaPaddingY() { + return nGetDisplaySafeAreaPaddingY(); + } + + /** + * If you cannot see the edges of your screen (e.g. on a TV) increase the safe area padding. + * Apply to popups/tooltips as well regular windows. NB: Prefer configuring your TV sets correctly! + */ + public void getDisplaySafeAreaPadding(final ImVec2 dst) { + nGetDisplaySafeAreaPadding(dst); + } + + /** + * If you cannot see the edges of your screen (e.g. on a TV) increase the safe area padding. + * Apply to popups/tooltips as well regular windows. NB: Prefer configuring your TV sets correctly! + */ + public void setDisplaySafeAreaPadding(final ImVec2 value) { + nSetDisplaySafeAreaPadding(value.x, value.y); + } + + /** + * If you cannot see the edges of your screen (e.g. on a TV) increase the safe area padding. + * Apply to popups/tooltips as well regular windows. NB: Prefer configuring your TV sets correctly! + */ + public void setDisplaySafeAreaPadding(final float valueX, final float valueY) { + nSetDisplaySafeAreaPadding(valueX, valueY); + } + + private native void nGetDisplaySafeAreaPadding(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->DisplaySafeAreaPadding, dst); + */ + + private native float nGetDisplaySafeAreaPaddingX(); /* + return THIS->DisplaySafeAreaPadding.x; + */ + + private native float nGetDisplaySafeAreaPaddingY(); /* + return THIS->DisplaySafeAreaPadding.y; + */ + + private native void nSetDisplaySafeAreaPadding(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->DisplaySafeAreaPadding = value; + */ + + /** + * Scale software rendered mouse cursor (when io.MouseDrawCursor is enabled). May be removed later. + */ + public float getMouseCursorScale() { + return nGetMouseCursorScale(); + } + + /** + * Scale software rendered mouse cursor (when io.MouseDrawCursor is enabled). May be removed later. + */ + public void setMouseCursorScale(final float value) { + nSetMouseCursorScale(value); + } + + private native float nGetMouseCursorScale(); /* + return THIS->MouseCursorScale; + */ + + private native void nSetMouseCursorScale(float value); /* + THIS->MouseCursorScale = value; + */ + + /** + * Enable anti-aliased lines/borders. Disable if you are really tight on CPU/GPU. Latched at the beginning of the frame (copied to ImDrawList). + */ + public boolean getAntiAliasedLines() { + return nGetAntiAliasedLines(); + } + + /** + * Enable anti-aliased lines/borders. Disable if you are really tight on CPU/GPU. Latched at the beginning of the frame (copied to ImDrawList). + */ + public void setAntiAliasedLines(final boolean value) { + nSetAntiAliasedLines(value); + } + + private native boolean nGetAntiAliasedLines(); /* + return THIS->AntiAliasedLines; + */ + + private native void nSetAntiAliasedLines(boolean value); /* + THIS->AntiAliasedLines = value; + */ + + /** + * Enable anti-aliased lines/borders using textures where possible. + * Require backend to render with bilinear filtering. + * Latched at the beginning of the frame (copied to ImDrawList). + */ + public boolean getAntiAliasedLinesUseTex() { + return nGetAntiAliasedLinesUseTex(); + } + + /** + * Enable anti-aliased lines/borders using textures where possible. + * Require backend to render with bilinear filtering. + * Latched at the beginning of the frame (copied to ImDrawList). + */ + public void setAntiAliasedLinesUseTex(final boolean value) { + nSetAntiAliasedLinesUseTex(value); + } + + private native boolean nGetAntiAliasedLinesUseTex(); /* + return THIS->AntiAliasedLinesUseTex; + */ + + private native void nSetAntiAliasedLinesUseTex(boolean value); /* + THIS->AntiAliasedLinesUseTex = value; + */ + + /** + * Enable anti-aliased edges around filled shapes (rounded rectangles, circles, etc.). + * Disable if you are really tight on CPU/GPU. Latched at the beginning of the frame (copied to ImDrawList). + */ + public boolean getAntiAliasedFill() { + return nGetAntiAliasedFill(); + } + + /** + * Enable anti-aliased edges around filled shapes (rounded rectangles, circles, etc.). + * Disable if you are really tight on CPU/GPU. Latched at the beginning of the frame (copied to ImDrawList). + */ + public void setAntiAliasedFill(final boolean value) { + nSetAntiAliasedFill(value); + } + + private native boolean nGetAntiAliasedFill(); /* + return THIS->AntiAliasedFill; + */ + + private native void nSetAntiAliasedFill(boolean value); /* + THIS->AntiAliasedFill = value; + */ + + /** + * Tessellation tolerance when using PathBezierCurveTo() without a specific number of segments. + * Decrease for highly tessellated curves (higher quality, more polygons), increase to reduce quality. + */ + public float getCurveTessellationTol() { + return nGetCurveTessellationTol(); + } + + /** + * Tessellation tolerance when using PathBezierCurveTo() without a specific number of segments. + * Decrease for highly tessellated curves (higher quality, more polygons), increase to reduce quality. + */ + public void setCurveTessellationTol(final float value) { + nSetCurveTessellationTol(value); + } + + private native float nGetCurveTessellationTol(); /* + return THIS->CurveTessellationTol; + */ + + private native void nSetCurveTessellationTol(float value); /* + THIS->CurveTessellationTol = value; + */ + + /** + * Maximum error (in pixels) allowed when using AddCircle()/AddCircleFilled() or drawing rounded corner rectangles with no explicit segment count specified. + * Decrease for higher quality but more geometry. + */ + public float getCircleTessellationMaxError() { + return nGetCircleTessellationMaxError(); + } + + /** + * Maximum error (in pixels) allowed when using AddCircle()/AddCircleFilled() or drawing rounded corner rectangles with no explicit segment count specified. + * Decrease for higher quality but more geometry. + */ + public void setCircleTessellationMaxError(final float value) { + nSetCircleTessellationMaxError(value); + } + + private native float nGetCircleTessellationMaxError(); /* + return THIS->CircleTessellationMaxError; + */ + + private native void nSetCircleTessellationMaxError(float value); /* + THIS->CircleTessellationMaxError = value; + */ + + public ImVec4[] getColors() { + return nGetColors(); + } + + public void setColors(final ImVec4[] value) { + nSetColors(value); + } + + private native ImVec4[] nGetColors(); /* + return Jni::NewImVec4Array(env, THIS->Colors, ImGuiCol_COUNT); + */ + + private native void nSetColors(ImVec4[] value); /* + Jni::ImVec4ArrayCpy(env, value, THIS->Colors, ImGuiCol_COUNT); + */ + + public ImVec4 getColor(final int col) { + final ImVec4 dst = new ImVec4(); + getColor(col, dst); + return dst; + } + + public native void getColor(int col, ImVec4 dst); /* + Jni::ImVec4Cpy(env, THIS->Colors[col], dst); + */ + + public native void setColor(int col, float r, float g, float b, float a); /* + THIS->Colors[col] = ImColor((float)r, (float)g, (float)b, (float)a); + */ + + public native void setColor(int col, int r, int g, int b, int a); /* + THIS->Colors[col] = ImColor((int)r, (int)g, (int)b, (int)a); + */ + + public native void setColor(int col, int value); /* + THIS->Colors[col] = ImColor(value); + */ + + public void scaleAllSizes(final float scaleFactor) { + nScaleAllSizes(scaleFactor); + } + + private native void nScaleAllSizes(float scaleFactor); /* + THIS->ScaleAllSizes(scaleFactor); + */ + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/ImGuiTextFilter.java b/imgui-binding/src/generated/java/imgui/ImGuiTextFilter.java new file mode 100644 index 0000000..227cc03 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImGuiTextFilter.java @@ -0,0 +1,135 @@ +package imgui; + +import imgui.binding.ImGuiStructDestroyable; + +/** + * Helper: Parse and apply text filters. In format "aaaaa[,bbbb][,ccccc]" + */ +public final class ImGuiTextFilter extends ImGuiStructDestroyable { + public ImGuiTextFilter() { + this(""); + } + + public ImGuiTextFilter(final String defaultFilter) { + ptr = nCreate(defaultFilter); + } + + public ImGuiTextFilter(final long ptr) { + super(ptr); + } + + @Override + protected long create() { + return nCreate(""); + } + + /*JNI + #include "_common.h" + #define THIS ((ImGuiTextFilter*)STRUCT_PTR) + */ + + private native long nCreate(String defaultFilter); /* + return (intptr_t)(new ImGuiTextFilter(defaultFilter)); + */ + + public boolean draw() { + return nDraw(); + } + + public boolean draw(final String label) { + return nDraw(label); + } + + public boolean draw(final String label, final float width) { + return nDraw(label, width); + } + + public boolean draw(final float width) { + return nDraw(width); + } + + private native boolean nDraw(); /* + return THIS->Draw(); + */ + + private native boolean nDraw(String obj_label); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = THIS->Draw(label); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + private native boolean nDraw(String obj_label, float width); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = THIS->Draw(label, width); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + private native boolean nDraw(float width); /* + return THIS->Draw("Filter (inc,-exc)", width); + */ + + public boolean passFilter(final String text) { + return nPassFilter(text); + } + + private native boolean nPassFilter(String obj_text); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + auto _result = THIS->PassFilter(text, NULL); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + return _result; + */ + + public void build() { + nBuild(); + } + + private native void nBuild(); /* + THIS->Build(); + */ + + public void clear() { + nClear(); + } + + private native void nClear(); /* + THIS->Clear(); + */ + + public boolean isActive() { + return nIsActive(); + } + + private native boolean nIsActive(); /* + return THIS->IsActive(); + */ + + public native String getInputBuffer(); /* + return env->NewStringUTF(THIS->InputBuf); + */ + + public native void setInputBuffer(String inputBuf); /* + strncpy(THIS->InputBuf, inputBuf, sizeof(THIS->InputBuf)); + */ + + public int getCountGrep() { + return nGetCountGrep(); + } + + public void setCountGrep(final int value) { + nSetCountGrep(value); + } + + private native int nGetCountGrep(); /* + return THIS->CountGrep; + */ + + private native void nSetCountGrep(int value); /* + THIS->CountGrep = value; + */ + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/ImGuiViewport.java b/imgui-binding/src/generated/java/imgui/ImGuiViewport.java new file mode 100644 index 0000000..b0a4a14 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImGuiViewport.java @@ -0,0 +1,593 @@ +package imgui; + +import imgui.binding.ImGuiStruct; + +/** + * The viewports created and managed by Dear ImGui. The role of the platform backend is to create the platform/OS windows corresponding to each viewport. + * - Main Area = entire viewport. + * - Work Area = entire viewport minus sections optionally used by menu bars, status bars. Some positioning code will prefer to use this. Window are also trying to stay within this area. + */ +public final class ImGuiViewport extends ImGuiStruct { + public ImGuiViewport(final long ptr) { + super(ptr); + } + + /*JNI + #include "_common.h" + #define THIS ((ImGuiViewport*)STRUCT_PTR) + */ + + /** + * Unique identifier for the viewport. + */ + public int getID() { + return nGetID(); + } + + /** + * Unique identifier for the viewport. + */ + public void setID(final int value) { + nSetID(value); + } + + private native int nGetID(); /* + return THIS->ID; + */ + + private native void nSetID(int value); /* + THIS->ID = value; + */ + + /** + * See {@link imgui.flag.ImGuiViewportFlags}. + */ + public int getFlags() { + return nGetFlags(); + } + + /** + * See {@link imgui.flag.ImGuiViewportFlags}. + */ + public void setFlags(final int value) { + nSetFlags(value); + } + + /** + * See {@link imgui.flag.ImGuiViewportFlags}. + */ + public void addFlags(final int flags) { + setFlags(getFlags() | flags); + } + + /** + * See {@link imgui.flag.ImGuiViewportFlags}. + */ + public void removeFlags(final int flags) { + setFlags(getFlags() & ~(flags)); + } + + /** + * See {@link imgui.flag.ImGuiViewportFlags}. + */ + public boolean hasFlags(final int flags) { + return (getFlags() & flags) != 0; + } + + private native int nGetFlags(); /* + return THIS->Flags; + */ + + private native void nSetFlags(int value); /* + THIS->Flags = value; + */ + + /** + * Main Area: Position of the viewport (the imgui coordinates are the same as OS desktop/native coordinates). + */ + public ImVec2 getPos() { + final ImVec2 dst = new ImVec2(); + nGetPos(dst); + return dst; + } + + /** + * Main Area: Position of the viewport (the imgui coordinates are the same as OS desktop/native coordinates). + */ + public float getPosX() { + return nGetPosX(); + } + + /** + * Main Area: Position of the viewport (the imgui coordinates are the same as OS desktop/native coordinates). + */ + public float getPosY() { + return nGetPosY(); + } + + /** + * Main Area: Position of the viewport (the imgui coordinates are the same as OS desktop/native coordinates). + */ + public void getPos(final ImVec2 dst) { + nGetPos(dst); + } + + /** + * Main Area: Position of the viewport (the imgui coordinates are the same as OS desktop/native coordinates). + */ + public void setPos(final ImVec2 value) { + nSetPos(value.x, value.y); + } + + /** + * Main Area: Position of the viewport (the imgui coordinates are the same as OS desktop/native coordinates). + */ + public void setPos(final float valueX, final float valueY) { + nSetPos(valueX, valueY); + } + + private native void nGetPos(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->Pos, dst); + */ + + private native float nGetPosX(); /* + return THIS->Pos.x; + */ + + private native float nGetPosY(); /* + return THIS->Pos.y; + */ + + private native void nSetPos(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->Pos = value; + */ + + /** + * Main Area: Size of the viewport. + */ + public ImVec2 getSize() { + final ImVec2 dst = new ImVec2(); + nGetSize(dst); + return dst; + } + + /** + * Main Area: Size of the viewport. + */ + public float getSizeX() { + return nGetSizeX(); + } + + /** + * Main Area: Size of the viewport. + */ + public float getSizeY() { + return nGetSizeY(); + } + + /** + * Main Area: Size of the viewport. + */ + public void getSize(final ImVec2 dst) { + nGetSize(dst); + } + + /** + * Main Area: Size of the viewport. + */ + public void setSize(final ImVec2 value) { + nSetSize(value.x, value.y); + } + + /** + * Main Area: Size of the viewport. + */ + public void setSize(final float valueX, final float valueY) { + nSetSize(valueX, valueY); + } + + private native void nGetSize(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->Size, dst); + */ + + private native float nGetSizeX(); /* + return THIS->Size.x; + */ + + private native float nGetSizeY(); /* + return THIS->Size.y; + */ + + private native void nSetSize(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->Size = value; + */ + + /** + * Work Area: Position of the viewport minus task bars, menus bars, status bars. + */ + public ImVec2 getWorkPos() { + final ImVec2 dst = new ImVec2(); + nGetWorkPos(dst); + return dst; + } + + /** + * Work Area: Position of the viewport minus task bars, menus bars, status bars. + */ + public float getWorkPosX() { + return nGetWorkPosX(); + } + + /** + * Work Area: Position of the viewport minus task bars, menus bars, status bars. + */ + public float getWorkPosY() { + return nGetWorkPosY(); + } + + /** + * Work Area: Position of the viewport minus task bars, menus bars, status bars. + */ + public void getWorkPos(final ImVec2 dst) { + nGetWorkPos(dst); + } + + /** + * Work Area: Position of the viewport minus task bars, menus bars, status bars. + */ + public void setWorkPos(final ImVec2 value) { + nSetWorkPos(value.x, value.y); + } + + /** + * Work Area: Position of the viewport minus task bars, menus bars, status bars. + */ + public void setWorkPos(final float valueX, final float valueY) { + nSetWorkPos(valueX, valueY); + } + + private native void nGetWorkPos(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->WorkPos, dst); + */ + + private native float nGetWorkPosX(); /* + return THIS->WorkPos.x; + */ + + private native float nGetWorkPosY(); /* + return THIS->WorkPos.y; + */ + + private native void nSetWorkPos(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->WorkPos = value; + */ + + /** + * Work Area: Size of the viewport minus task bars, menu bars, status bars. + */ + public ImVec2 getWorkSize() { + final ImVec2 dst = new ImVec2(); + nGetWorkSize(dst); + return dst; + } + + /** + * Work Area: Size of the viewport minus task bars, menu bars, status bars. + */ + public float getWorkSizeX() { + return nGetWorkSizeX(); + } + + /** + * Work Area: Size of the viewport minus task bars, menu bars, status bars. + */ + public float getWorkSizeY() { + return nGetWorkSizeY(); + } + + /** + * Work Area: Size of the viewport minus task bars, menu bars, status bars. + */ + public void getWorkSize(final ImVec2 dst) { + nGetWorkSize(dst); + } + + /** + * Work Area: Size of the viewport minus task bars, menu bars, status bars. + */ + public void setWorkSize(final ImVec2 value) { + nSetWorkSize(value.x, value.y); + } + + /** + * Work Area: Size of the viewport minus task bars, menu bars, status bars. + */ + public void setWorkSize(final float valueX, final float valueY) { + nSetWorkSize(valueX, valueY); + } + + private native void nGetWorkSize(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->WorkSize, dst); + */ + + private native float nGetWorkSizeX(); /* + return THIS->WorkSize.x; + */ + + private native float nGetWorkSizeY(); /* + return THIS->WorkSize.y; + */ + + private native void nSetWorkSize(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->WorkSize = value; + */ + + /** + * 1.0f = 96 DPI = No extra scale. + */ + public float getDpiScale() { + return nGetDpiScale(); + } + + /** + * 1.0f = 96 DPI = No extra scale. + */ + public void setDpiScale(final float value) { + nSetDpiScale(value); + } + + private native float nGetDpiScale(); /* + return THIS->DpiScale; + */ + + private native void nSetDpiScale(float value); /* + THIS->DpiScale = value; + */ + + /** + * (Advanced) 0: no parent. Instruct the platform backend to setup a parent/child relationship between platform windows. + */ + public int getParentViewportId() { + return nGetParentViewportId(); + } + + /** + * (Advanced) 0: no parent. Instruct the platform backend to setup a parent/child relationship between platform windows. + */ + public void setParentViewportId(final int value) { + nSetParentViewportId(value); + } + + private native int nGetParentViewportId(); /* + return THIS->ParentViewportId; + */ + + private native void nSetParentViewportId(int value); /* + THIS->ParentViewportId = value; + */ + + /** + * The ImDrawData corresponding to this viewport. Valid after Render() and until the next call to NewFrame(). + */ + public ImDrawData getDrawData() { + return new ImDrawData(nGetDrawData()); + } + + /** + * The ImDrawData corresponding to this viewport. Valid after Render() and until the next call to NewFrame(). + */ + public void setDrawData(final ImDrawData value) { + nSetDrawData(value.ptr); + } + + private native long nGetDrawData(); /* + return (intptr_t)THIS->DrawData; + */ + + private native void nSetDrawData(long value); /* + THIS->DrawData = reinterpret_cast(value); + */ + + // Our design separate the Renderer and Platform backends to facilitate combining default backends with each others. + // When our create your own backend for a custom engine, it is possible that both Renderer and Platform will be handled + // by the same system and you may not need to use all the UserData/Handle fields. + // The library never uses those fields, they are merely storage to facilitate backend implementation. + + /** + * void* to hold custom data structure for the renderer (e.g. swap chain, framebuffers etc.). generally set by your Renderer_CreateWindow function. + */ + public native void setRendererUserData(Object data); /* + if (THIS->RendererUserData != NULL) { + env->DeleteGlobalRef((jobject)THIS->RendererUserData); + } + THIS->RendererUserData = (data == NULL ? NULL : (void*)env->NewGlobalRef(data)); + */ + + /** + * void* to hold custom data structure for the renderer (e.g. swap chain, framebuffers etc.). generally set by your Renderer_CreateWindow function. + */ + public native Object getRendererUserData(); /* + return (jobject)THIS->RendererUserData; + */ + + /** + * void* to hold custom data structure for the OS / platform (e.g. windowing info, render context). generally set by your Platform_CreateWindow function. + */ + public native void setPlatformUserData(Object data); /* + if (THIS->PlatformUserData != NULL) { + env->DeleteGlobalRef((jobject)THIS->PlatformUserData); + } + THIS->PlatformUserData = (data == NULL ? NULL : (void*)env->NewGlobalRef(data)); + */ + + /** + * void* to hold custom data structure for the OS / platform (e.g. windowing info, render context). generally set by your Platform_CreateWindow function. + */ + public native Object getPlatformUserData(); /* + return (jobject)THIS->PlatformUserData; + */ + + /** + * void* for FindViewportByPlatformHandle(). (e.g. suggested to use natural platform handle such as HWND, GLFWWindow*, SDL_Window*) + */ + public native void setPlatformHandle(long data); /* + THIS->PlatformHandle = (void*)data; + */ + + /** + * void* for FindViewportByPlatformHandle(). (e.g. suggested to use natural platform handle such as HWND, GLFWWindow*, SDL_Window*) + */ + public native long getPlatformHandle(); /* + return (intptr_t)THIS->PlatformHandle; + */ + + /** + * void* to hold lower-level, platform-native window handle (e.g. the HWND) when using an abstraction layer like GLFW or SDL (where PlatformHandle would be a SDL_Window*) + */ + public native void setPlatformHandleRaw(long data); /* + THIS->PlatformHandleRaw = (void*)data; + */ + + /** + * void* to hold lower-level, platform-native window handle (e.g. the HWND) when using an abstraction layer like GLFW or SDL (where PlatformHandle would be a SDL_Window*) + */ + public native long getPlatformHandleRaw(); /* + return (intptr_t)THIS->PlatformHandleRaw; + */ + + /** + * Platform window requested move (e.g. window was moved by the OS / host window manager, authoritative position will be OS window position). + */ + public boolean getPlatformRequestMove() { + return nGetPlatformRequestMove(); + } + + /** + * Platform window requested move (e.g. window was moved by the OS / host window manager, authoritative position will be OS window position). + */ + public void setPlatformRequestMove(final boolean value) { + nSetPlatformRequestMove(value); + } + + private native boolean nGetPlatformRequestMove(); /* + return THIS->PlatformRequestMove; + */ + + private native void nSetPlatformRequestMove(boolean value); /* + THIS->PlatformRequestMove = value; + */ + + /** + * Platform window requested resize (e.g. window was resized by the OS / host window manager, authoritative size will be OS window size). + */ + public boolean getPlatformRequestResize() { + return nGetPlatformRequestResize(); + } + + /** + * Platform window requested resize (e.g. window was resized by the OS / host window manager, authoritative size will be OS window size). + */ + public void setPlatformRequestResize(final boolean value) { + nSetPlatformRequestResize(value); + } + + private native boolean nGetPlatformRequestResize(); /* + return THIS->PlatformRequestResize; + */ + + private native void nSetPlatformRequestResize(boolean value); /* + THIS->PlatformRequestResize = value; + */ + + /** + * Platform window requested closure (e.g. window was moved by the OS / host window manager, e.g. pressing ALT-F4). + */ + public boolean getPlatformRequestClose() { + return nGetPlatformRequestClose(); + } + + /** + * Platform window requested closure (e.g. window was moved by the OS / host window manager, e.g. pressing ALT-F4). + */ + public void setPlatformRequestClose(final boolean value) { + nSetPlatformRequestClose(value); + } + + private native boolean nGetPlatformRequestClose(); /* + return THIS->PlatformRequestClose; + */ + + private native void nSetPlatformRequestClose(boolean value); /* + THIS->PlatformRequestClose = value; + */ + + // Helpers + + public ImVec2 getCenter() { + final ImVec2 dst = new ImVec2(); + nGetCenter(dst); + return dst; + } + + public float getCenterX() { + return nGetCenterX(); + } + + public float getCenterY() { + return nGetCenterY(); + } + + public void getCenter(final ImVec2 dst) { + nGetCenter(dst); + } + + private native void nGetCenter(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->GetCenter(), dst); + */ + + private native float nGetCenterX(); /* + return THIS->GetCenter().x; + */ + + private native float nGetCenterY(); /* + return THIS->GetCenter().y; + */ + + public ImVec2 getWorkCenter() { + final ImVec2 dst = new ImVec2(); + nGetWorkCenter(dst); + return dst; + } + + public float getWorkCenterX() { + return nGetWorkCenterX(); + } + + public float getWorkCenterY() { + return nGetWorkCenterY(); + } + + public void getWorkCenter(final ImVec2 dst) { + nGetWorkCenter(dst); + } + + private native void nGetWorkCenter(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->GetWorkCenter(), dst); + */ + + private native float nGetWorkCenterX(); /* + return THIS->GetWorkCenter().x; + */ + + private native float nGetWorkCenterY(); /* + return THIS->GetWorkCenter().y; + */ + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/ImGuiWindowClass.java b/imgui-binding/src/generated/java/imgui/ImGuiWindowClass.java new file mode 100644 index 0000000..745c850 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImGuiWindowClass.java @@ -0,0 +1,318 @@ +package imgui; + +import imgui.binding.ImGuiStructDestroyable; + +/** + * [ALPHA] Rarely used / very advanced uses only. Use with SetNextWindowClass() and DockSpace() functions. + * Important: the content of this class is still highly WIP and likely to change and be refactored + * before we stabilize Docking features. Please be mindful if using this. + * Provide hints: + * - To the platform backend via altered viewport flags (enable/disable OS decoration, OS task bar icons, etc.) + * - To the platform backend for OS level parent/child relationships of viewport. + * - To the docking system for various options and filtering. + */ +public final class ImGuiWindowClass extends ImGuiStructDestroyable { + public ImGuiWindowClass() { + } + + public ImGuiWindowClass(final long ptr) { + super(ptr); + } + + @Override + protected long create() { + return nCreate(); + } + + /*JNI + #include "_common.h" + #define THIS ((ImGuiWindowClass*)STRUCT_PTR) + */ + + private native long nCreate(); /* + return (intptr_t)(new ImGuiWindowClass()); + */ + + /** + * User data. 0 = Default class (unclassed). Windows of different classes cannot be docked with each others. + */ + public int getClassId() { + return nGetClassId(); + } + + /** + * User data. 0 = Default class (unclassed). Windows of different classes cannot be docked with each others. + */ + public void setClassId(final int value) { + nSetClassId(value); + } + + private native int nGetClassId(); /* + return THIS->ClassId; + */ + + private native void nSetClassId(int value); /* + THIS->ClassId = value; + */ + + /** + * Hint for the platform backend. If non-zero, the platform backend can create a parent{@code <>}child relationship between the platform windows. + * Not conforming backends are free to e.g. parent every viewport to the main viewport or not. + */ + public int getParentViewportId() { + return nGetParentViewportId(); + } + + /** + * Hint for the platform backend. If non-zero, the platform backend can create a parent{@code <>}child relationship between the platform windows. + * Not conforming backends are free to e.g. parent every viewport to the main viewport or not. + */ + public void setParentViewportId(final int value) { + nSetParentViewportId(value); + } + + private native int nGetParentViewportId(); /* + return THIS->ParentViewportId; + */ + + private native void nSetParentViewportId(int value); /* + THIS->ParentViewportId = value; + */ + + /** + * Viewport flags to set when a window of this class owns a viewport. + * This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. + */ + public int getViewportFlagsOverrideSet() { + return nGetViewportFlagsOverrideSet(); + } + + /** + * Viewport flags to set when a window of this class owns a viewport. + * This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. + */ + public void setViewportFlagsOverrideSet(final int value) { + nSetViewportFlagsOverrideSet(value); + } + + /** + * Viewport flags to set when a window of this class owns a viewport. + * This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. + */ + public void addViewportFlagsOverrideSet(final int flags) { + setViewportFlagsOverrideSet(getViewportFlagsOverrideSet() | flags); + } + + /** + * Viewport flags to set when a window of this class owns a viewport. + * This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. + */ + public void removeViewportFlagsOverrideSet(final int flags) { + setViewportFlagsOverrideSet(getViewportFlagsOverrideSet() & ~(flags)); + } + + /** + * Viewport flags to set when a window of this class owns a viewport. + * This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. + */ + public boolean hasViewportFlagsOverrideSet(final int flags) { + return (getViewportFlagsOverrideSet() & flags) != 0; + } + + private native int nGetViewportFlagsOverrideSet(); /* + return THIS->ViewportFlagsOverrideSet; + */ + + private native void nSetViewportFlagsOverrideSet(int value); /* + THIS->ViewportFlagsOverrideSet = value; + */ + + /** + * Viewport flags to clear when a window of this class owns a viewport. + * This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. + */ + public int getViewportFlagsOverrideClear() { + return nGetViewportFlagsOverrideClear(); + } + + /** + * Viewport flags to clear when a window of this class owns a viewport. + * This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. + */ + public void setViewportFlagsOverrideClear(final int value) { + nSetViewportFlagsOverrideClear(value); + } + + /** + * Viewport flags to clear when a window of this class owns a viewport. + * This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. + */ + public void addViewportFlagsOverrideClear(final int flags) { + setViewportFlagsOverrideClear(getViewportFlagsOverrideClear() | flags); + } + + /** + * Viewport flags to clear when a window of this class owns a viewport. + * This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. + */ + public void removeViewportFlagsOverrideClear(final int flags) { + setViewportFlagsOverrideClear(getViewportFlagsOverrideClear() & ~(flags)); + } + + /** + * Viewport flags to clear when a window of this class owns a viewport. + * This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. + */ + public boolean hasViewportFlagsOverrideClear(final int flags) { + return (getViewportFlagsOverrideClear() & flags) != 0; + } + + private native int nGetViewportFlagsOverrideClear(); /* + return THIS->ViewportFlagsOverrideClear; + */ + + private native void nSetViewportFlagsOverrideClear(int value); /* + THIS->ViewportFlagsOverrideClear = value; + */ + + /** + * [EXPERIMENTAL] TabItem flags to set when a window of this class gets submitted into a dock node tab bar. + * May use with ImGuiTabItemFlags_Leading or ImGuiTabItemFlags_Trailing. + */ + public int getTabItemFlagsOverrideSet() { + return nGetTabItemFlagsOverrideSet(); + } + + /** + * [EXPERIMENTAL] TabItem flags to set when a window of this class gets submitted into a dock node tab bar. + * May use with ImGuiTabItemFlags_Leading or ImGuiTabItemFlags_Trailing. + */ + public void setTabItemFlagsOverrideSet(final int value) { + nSetTabItemFlagsOverrideSet(value); + } + + /** + * [EXPERIMENTAL] TabItem flags to set when a window of this class gets submitted into a dock node tab bar. + * May use with ImGuiTabItemFlags_Leading or ImGuiTabItemFlags_Trailing. + */ + public void addTabItemFlagsOverrideSet(final int flags) { + setTabItemFlagsOverrideSet(getTabItemFlagsOverrideSet() | flags); + } + + /** + * [EXPERIMENTAL] TabItem flags to set when a window of this class gets submitted into a dock node tab bar. + * May use with ImGuiTabItemFlags_Leading or ImGuiTabItemFlags_Trailing. + */ + public void removeTabItemFlagsOverrideSet(final int flags) { + setTabItemFlagsOverrideSet(getTabItemFlagsOverrideSet() & ~(flags)); + } + + /** + * [EXPERIMENTAL] TabItem flags to set when a window of this class gets submitted into a dock node tab bar. + * May use with ImGuiTabItemFlags_Leading or ImGuiTabItemFlags_Trailing. + */ + public boolean hasTabItemFlagsOverrideSet(final int flags) { + return (getTabItemFlagsOverrideSet() & flags) != 0; + } + + private native int nGetTabItemFlagsOverrideSet(); /* + return THIS->TabItemFlagsOverrideSet; + */ + + private native void nSetTabItemFlagsOverrideSet(int value); /* + THIS->TabItemFlagsOverrideSet = value; + */ + + /** + * [EXPERIMENTAL] Dock node flags to set when a window of this class is hosted by a dock node (it doesn't have to be selected!) + */ + public int getDockNodeFlagsOverrideSet() { + return nGetDockNodeFlagsOverrideSet(); + } + + /** + * [EXPERIMENTAL] Dock node flags to set when a window of this class is hosted by a dock node (it doesn't have to be selected!) + */ + public void setDockNodeFlagsOverrideSet(final int value) { + nSetDockNodeFlagsOverrideSet(value); + } + + /** + * [EXPERIMENTAL] Dock node flags to set when a window of this class is hosted by a dock node (it doesn't have to be selected!) + */ + public void addDockNodeFlagsOverrideSet(final int flags) { + setDockNodeFlagsOverrideSet(getDockNodeFlagsOverrideSet() | flags); + } + + /** + * [EXPERIMENTAL] Dock node flags to set when a window of this class is hosted by a dock node (it doesn't have to be selected!) + */ + public void removeDockNodeFlagsOverrideSet(final int flags) { + setDockNodeFlagsOverrideSet(getDockNodeFlagsOverrideSet() & ~(flags)); + } + + /** + * [EXPERIMENTAL] Dock node flags to set when a window of this class is hosted by a dock node (it doesn't have to be selected!) + */ + public boolean hasDockNodeFlagsOverrideSet(final int flags) { + return (getDockNodeFlagsOverrideSet() & flags) != 0; + } + + private native int nGetDockNodeFlagsOverrideSet(); /* + return THIS->DockNodeFlagsOverrideSet; + */ + + private native void nSetDockNodeFlagsOverrideSet(int value); /* + THIS->DockNodeFlagsOverrideSet = value; + */ + + /** + * Set to true to enforce single floating windows of this class always having their own docking node + * (equivalent of setting the global io.ConfigDockingAlwaysTabBar) + */ + public boolean getDockingAlwaysTabBar() { + return nGetDockingAlwaysTabBar(); + } + + /** + * Set to true to enforce single floating windows of this class always having their own docking node + * (equivalent of setting the global io.ConfigDockingAlwaysTabBar) + */ + public void setDockingAlwaysTabBar(final boolean value) { + nSetDockingAlwaysTabBar(value); + } + + private native boolean nGetDockingAlwaysTabBar(); /* + return THIS->DockingAlwaysTabBar; + */ + + private native void nSetDockingAlwaysTabBar(boolean value); /* + THIS->DockingAlwaysTabBar = value; + */ + + /** + * Set to true to allow windows of this class to be docked/merged with an unclassed window. + */ + public boolean getDockingAllowUnclassed() { + return nGetDockingAllowUnclassed(); + } + + /** + * Set to true to allow windows of this class to be docked/merged with an unclassed window. + */ + public void setDockingAllowUnclassed(final boolean value) { + nSetDockingAllowUnclassed(value); + } + + private native boolean nGetDockingAllowUnclassed(); /* + return THIS->DockingAllowUnclassed; + */ + + private native void nSetDockingAllowUnclassed(boolean value); /* + THIS->DockingAllowUnclassed = value; + */ + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/ImVec2.java b/imgui-binding/src/generated/java/imgui/ImVec2.java new file mode 100644 index 0000000..923e5bb --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImVec2.java @@ -0,0 +1,93 @@ +package imgui; + +import java.util.Objects; + +/** + * 2D vector (often used to store positions or sizes). + */ +public final class ImVec2 implements Cloneable { + public float x; + public float y; + + public ImVec2() { + } + + public ImVec2(final float x, final float y) { + set(x, y); + } + + public ImVec2(final ImVec2 value) { + set(value.x, value.y); + } + + public ImVec2 set(final float x, final float y) { + this.x = x; + this.y = y; + return this; + } + + public ImVec2 set(final ImVec2 value) { + return set(value.x, value.y); + } + + public ImVec2 plus(final float x, final float y) { + this.x += x; + this.y += y; + return this; + } + + public ImVec2 plus(final ImVec2 value) { + return plus(value.x, value.y); + } + + public ImVec2 minus(final float x, final float y) { + this.x -= x; + this.y -= y; + return this; + } + + public ImVec2 minus(final ImVec2 value) { + return minus(value.x, value.y); + } + + public ImVec2 times(final float x, final float y) { + this.x *= x; + this.y *= y; + return this; + } + + public ImVec2 times(final ImVec2 value) { + return times(value.x, value.y); + } + + @Override + public String toString() { + return "ImVec2{" + + "x=" + x + + ", y=" + y + + '}'; + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final ImVec2 imVec2 = (ImVec2) o; + return Float.compare(imVec2.x, x) == 0 && Float.compare(imVec2.y, y) == 0; + } + + @Override + public int hashCode() { + return Objects.hash(x, y); + } + + @Override + @SuppressWarnings("MethodDoesntCallSuperMethod") + public ImVec2 clone() { + return new ImVec2(this); + } +} diff --git a/imgui-binding/src/generated/java/imgui/ImVec4.java b/imgui-binding/src/generated/java/imgui/ImVec4.java new file mode 100644 index 0000000..1192eb8 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/ImVec4.java @@ -0,0 +1,105 @@ +package imgui; + +import java.util.Objects; + +/** + * 4D vector (often used to store floating-point colors). + */ +public final class ImVec4 implements Cloneable { + public float x; + public float y; + public float z; + public float w; + + public ImVec4() { + } + + public ImVec4(final float x, final float y, final float z, final float w) { + set(x, y, z, w); + } + + public ImVec4(final ImVec4 value) { + set(value.x, value.y, value.z, value.w); + } + + public ImVec4 set(final float x, final float y, final float z, final float w) { + this.x = x; + this.y = y; + this.z = z; + this.w = w; + return this; + } + + public ImVec4 set(final ImVec4 value) { + return set(value.x, value.y, value.z, value.w); + } + + public ImVec4 plus(final float x, final float y, final float z, final float w) { + this.x += x; + this.y += y; + this.z += z; + this.w += w; + return this; + } + + public ImVec4 plus(final ImVec4 value) { + return plus(value.x, value.y, value.z, value.w); + } + + public ImVec4 minus(final float x, final float y, final float z, final float w) { + this.x -= x; + this.y -= y; + this.z -= z; + this.w -= w; + return this; + } + + public ImVec4 minus(final ImVec4 value) { + return minus(value.x, value.y, value.z, value.w); + } + + public ImVec4 times(final float x, final float y, final float z, final float w) { + this.x *= x; + this.y *= y; + this.z *= z; + this.w *= w; + return this; + } + + public ImVec4 times(final ImVec4 value) { + return times(value.x, value.y, value.z, value.w); + } + + @Override + public String toString() { + return "ImVec4{" + + "x=" + x + + ", y=" + y + + ", z=" + z + + ", w=" + w + + '}'; + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final ImVec4 imVec4 = (ImVec4) o; + return Float.compare(imVec4.x, x) == 0 && Float.compare(imVec4.y, y) == 0 && Float.compare(imVec4.z, z) == 0 && Float.compare(imVec4.w, w) == 0; + } + + @Override + public int hashCode() { + return Objects.hash(x, y, z, w); + } + + @Override + @SuppressWarnings("MethodDoesntCallSuperMethod") + public ImVec4 clone() { + return new ImVec4(this); + } +} diff --git a/imgui-binding/src/generated/java/imgui/assertion/ImAssertCallback.java b/imgui-binding/src/generated/java/imgui/assertion/ImAssertCallback.java new file mode 100644 index 0000000..6f831b4 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/assertion/ImAssertCallback.java @@ -0,0 +1,45 @@ + +package imgui.assertion; + +/** + * Callback for native IM_ASSERT calls. + */ +public abstract class ImAssertCallback { + /** + * Called from native code to bring the callback into java side. + * Will force the application to terminate with exit code 1 after forwarding the callback, this is required, otherwise + * if execution is returned to the native layer, a EXCEPTION_ACCESS_VIOLATION will be thrown. + * If the callback throws an exception, it will be caught and printed along with a warning to prevent execution + * from returning to the native layer. + * + * @param assertion The assertion string + * @param line The line number of the assertion in the source file + * @param file The source file where the assertion occurred + */ + public void imAssert(final String assertion, final int line, final String file) { + try { + imAssertCallback(assertion, line, file); + } catch (Exception ex) { + System.err.println("WARNING: Exception thrown in Dear ImGui Assertion Callback!"); + System.err.println("Dear ImGui Assertion Failed: " + assertion); + System.err.println("Assertion Located At: " + file + ":" + line); + ex.printStackTrace(); + } + System.exit(1); + } + + /** + * The assertion callback from ImGui. + * Do not throw an exception within this callback, to prevent + * execution from returned to the native layer and cause a EXCEPTION_ACCESS_VIOLATION, + * the callback will catch any exceptions and print a warning. + *

+ * There is no way to catch the assertion and continue execution. + * You may however call System.exit(code) with your own exit code. + * + * @param assertion The assertion string + * @param line The line number of the assertion in the source file + * @param file The source file where the assertion occurred + */ + public abstract void imAssertCallback(String assertion, int line, String file); +} diff --git a/imgui-binding/src/generated/java/imgui/binding/ImGuiStruct.java b/imgui-binding/src/generated/java/imgui/binding/ImGuiStruct.java new file mode 100644 index 0000000..5f28f30 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/binding/ImGuiStruct.java @@ -0,0 +1,38 @@ +package imgui.binding; + +import imgui.ImGui; + +/** + * Class provides a communication layer between binding and Dear ImGui library through the "pointer" field. + */ +public abstract class ImGuiStruct { + /** + * Pointer to the natively allocated object. + * Could be zero if JNI returned NULL instead of the real object. + * For such cases methods {@link #isValidPtr()} and {@link #isNotValidPtr()} could be used to verify that object points to the real object. + */ + public long ptr; + + public ImGuiStruct(final long ptr) { + ImGui.init(); + this.ptr = ptr; + } + + /** + * Shows if object pointer is valid and does it point to the existing object. + * + * @return true, if pointer is valid + */ + public final boolean isValidPtr() { + return ptr != 0; + } + + /** + * Shows if object pointer is valid and does it point to the existing object. + * + * @return true, if pointer is invalid + */ + public final boolean isNotValidPtr() { + return !isValidPtr(); + } +} diff --git a/imgui-binding/src/generated/java/imgui/binding/ImGuiStructDestroyable.java b/imgui-binding/src/generated/java/imgui/binding/ImGuiStructDestroyable.java new file mode 100644 index 0000000..a65488d --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/binding/ImGuiStructDestroyable.java @@ -0,0 +1,31 @@ +package imgui.binding; + +/** + * Class extends {@link ImGuiStruct} and provides additional API to allocated and de-allocate native objects. + */ +public abstract class ImGuiStructDestroyable extends ImGuiStruct { + /** + * Constructor, which creates natively allocated struct. Those structs should be manually disposed with {@link #destroy()} method. + */ + public ImGuiStructDestroyable() { + this(0); + ptr = create(); + } + + public ImGuiStructDestroyable(final long ptr) { + super(ptr); + } + + protected abstract long create(); + + /** + * Method to free natively allocated memory for the struct mapped with pointer. + */ + public void destroy() { + nDestroy(ptr); + } + + private native void nDestroy(long ptr); /* + delete (void*)ptr; + */ +} diff --git a/imgui-binding/src/generated/java/imgui/callback/ImGuiInputTextCallback.java b/imgui-binding/src/generated/java/imgui/callback/ImGuiInputTextCallback.java new file mode 100644 index 0000000..7cbc047 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/callback/ImGuiInputTextCallback.java @@ -0,0 +1,17 @@ +package imgui.callback; + +import imgui.ImGuiInputTextCallbackData; + +import java.util.function.Consumer; + +/** + * Callback to use in {@link imgui.ImGui#inputText(String, imgui.type.ImString, int, ImGuiInputTextCallback)}. + */ +public abstract class ImGuiInputTextCallback implements Consumer { + /** + * This function will be called by the native Callback and wrapped. + */ + public final void accept(final long ptr) { + accept(new ImGuiInputTextCallbackData(ptr)); + } +} diff --git a/imgui-binding/src/generated/java/imgui/callback/ImListClipperCallback.java b/imgui-binding/src/generated/java/imgui/callback/ImListClipperCallback.java new file mode 100644 index 0000000..5893d27 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/callback/ImListClipperCallback.java @@ -0,0 +1,8 @@ +package imgui.callback; + +/** + * Callback for {@link imgui.ImGuiListClipper} class. + */ +public abstract class ImListClipperCallback { + public abstract void accept(int index); +} diff --git a/imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewport.java b/imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewport.java new file mode 100644 index 0000000..5a6f35a --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewport.java @@ -0,0 +1,10 @@ +package imgui.callback; + +import imgui.ImGuiViewport; + +/** + * Callback to represent ImGuiPlatformIO function with args: (ImGuiViewport*) + */ +public abstract class ImPlatformFuncViewport { + public abstract void accept(ImGuiViewport vp); +} diff --git a/imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportFloat.java b/imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportFloat.java new file mode 100644 index 0000000..d39f75c --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportFloat.java @@ -0,0 +1,10 @@ +package imgui.callback; + +import imgui.ImGuiViewport; + +/** + * Callback to represent ImGuiPlatformIO function with args: (ImGuiViewport*, String) + */ +public abstract class ImPlatformFuncViewportFloat { + public abstract void accept(ImGuiViewport vp, float f); +} diff --git a/imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportImVec2.java b/imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportImVec2.java new file mode 100644 index 0000000..ee8b1f8 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportImVec2.java @@ -0,0 +1,11 @@ +package imgui.callback; + +import imgui.ImGuiViewport; +import imgui.ImVec2; + +/** + * Callback to represent ImGuiPlatformIO function with args: (ImGuiViewport*, ImVec2) + */ +public abstract class ImPlatformFuncViewportImVec2 { + public abstract void accept(ImGuiViewport vp, ImVec2 imVec2); +} diff --git a/imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportString.java b/imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportString.java new file mode 100644 index 0000000..d4bfe7a --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportString.java @@ -0,0 +1,10 @@ +package imgui.callback; + +import imgui.ImGuiViewport; + +/** + * Callback to represent ImGuiPlatformIO function with args: (ImGuiViewport*, String) + */ +public abstract class ImPlatformFuncViewportString { + public abstract void accept(ImGuiViewport vp, String str); +} diff --git a/imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportSuppBoolean.java b/imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportSuppBoolean.java new file mode 100644 index 0000000..30cae75 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportSuppBoolean.java @@ -0,0 +1,10 @@ +package imgui.callback; + +import imgui.ImGuiViewport; + +/** + * Callback to represent ImGuiPlatformIO function with args: (ImGuiViewport*) - Boolean + */ +public abstract class ImPlatformFuncViewportSuppBoolean { + public abstract boolean get(ImGuiViewport vp); +} diff --git a/imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportSuppFloat.java b/imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportSuppFloat.java new file mode 100644 index 0000000..67e4e7a --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportSuppFloat.java @@ -0,0 +1,10 @@ +package imgui.callback; + +import imgui.ImGuiViewport; + +/** + * Callback to represent ImGuiPlatformIO function with args: (ImGuiViewport*) - Boolean + */ +public abstract class ImPlatformFuncViewportSuppFloat { + public abstract float get(ImGuiViewport vp); +} diff --git a/imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportSuppImVec2.java b/imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportSuppImVec2.java new file mode 100644 index 0000000..1bfcafa --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportSuppImVec2.java @@ -0,0 +1,11 @@ +package imgui.callback; + +import imgui.ImGuiViewport; +import imgui.ImVec2; + +/** + * Callback to represent ImGuiPlatformIO function with args: (ImGuiViewport*) - ImVec2 + */ +public abstract class ImPlatformFuncViewportSuppImVec2 { + public abstract void get(ImGuiViewport vp, ImVec2 dstImVec2); +} diff --git a/imgui-binding/src/generated/java/imgui/callback/ImStrConsumer.java b/imgui-binding/src/generated/java/imgui/callback/ImStrConsumer.java new file mode 100644 index 0000000..584b2be --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/callback/ImStrConsumer.java @@ -0,0 +1,8 @@ +package imgui.callback; + +/** + * Callback to supply Java string form native code. + */ +public abstract class ImStrConsumer { + public abstract void accept(String str); +} diff --git a/imgui-binding/src/generated/java/imgui/callback/ImStrSupplier.java b/imgui-binding/src/generated/java/imgui/callback/ImStrSupplier.java new file mode 100644 index 0000000..5958d81 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/callback/ImStrSupplier.java @@ -0,0 +1,8 @@ +package imgui.callback; + +/** + * Callback to get Java string from native code. + */ +public abstract class ImStrSupplier { + public abstract String get(); +} diff --git a/imgui-binding/src/generated/java/imgui/extension/imguifiledialog/ImGuiFileDialog.java b/imgui-binding/src/generated/java/imgui/extension/imguifiledialog/ImGuiFileDialog.java new file mode 100644 index 0000000..46d3669 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/imguifiledialog/ImGuiFileDialog.java @@ -0,0 +1,1591 @@ +package imgui.extension.imguifiledialog; + +import imgui.ImVec2; +import imgui.extension.imguifiledialog.callback.ImGuiFileDialogPaneFun; + +import java.util.HashMap; + +/** + * ImGuiFileDialog extension for ImGui + * Repo: https://github.com/aiekick/ImGuiFileDialog + */ +public final class ImGuiFileDialog { + private ImGuiFileDialog() { + } + + /*JNI + #include "_imguifiledialog.h" + + static auto PaneFunCallback(JNIEnv* env, jobject fn) { + static jobject cb = NULL; + if (cb != NULL) { + env->DeleteGlobalRef(cb); + } + cb = env->NewGlobalRef(fn); + return [](const char* filter, void* userData, bool* canWeContinue) { + if (cb != NULL) { + Jni::CallImGuiFileDialogPaneFun(Jni::GetEnv(), cb, filter, reinterpret_cast(userData), *canWeContinue); + } + }; + } + */ + + /** + * Open simple dialog (path and fileName can be specified) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFileName + * default file name + */ + public static void openDialog(final String vKey, final String vTitle, final String vFilters, final String vPath, final String vFileName) { + nOpenDialog(vKey, vTitle, vFilters, vPath, vFileName); + } + + /** + * Open simple dialog (path and fileName can be specified) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFileName + * default file name + * @param vCountSelectionMax + * count selection max + */ + public static void openDialog(final String vKey, final String vTitle, final String vFilters, final String vPath, final String vFileName, final int vCountSelectionMax) { + nOpenDialog(vKey, vTitle, vFilters, vPath, vFileName, vCountSelectionMax); + } + + /** + * Open simple dialog (path and fileName can be specified) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFileName + * default file name + * @param vCountSelectionMax + * count selection max + * @param vUserDatas + * user datas (can be retrieved in pane) + */ + public static void openDialog(final String vKey, final String vTitle, final String vFilters, final String vPath, final String vFileName, final int vCountSelectionMax, final long vUserDatas) { + nOpenDialog(vKey, vTitle, vFilters, vPath, vFileName, vCountSelectionMax, vUserDatas); + } + + /** + * Open simple dialog (path and fileName can be specified) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFileName + * default file name + * @param vCountSelectionMax + * count selection max + * @param vUserDatas + * user datas (can be retrieved in pane) + */ + public static void openDialog(final String vKey, final String vTitle, final String vFilters, final String vPath, final String vFileName, final int vCountSelectionMax, final long vUserDatas, final int vFlags) { + nOpenDialog(vKey, vTitle, vFilters, vPath, vFileName, vCountSelectionMax, vUserDatas, vFlags); + } + + private static native void nOpenDialog(String vKey, String vTitle, String vFilters, String vPath, String vFileName); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vPath = obj_vPath == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vPath, JNI_FALSE); + auto vFileName = obj_vFileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFileName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, vFilters, vPath, vFileName); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vPath != NULL) env->ReleaseStringUTFChars(obj_vPath, vPath); + if (vFileName != NULL) env->ReleaseStringUTFChars(obj_vFileName, vFileName); + */ + + private static native void nOpenDialog(String vKey, String vTitle, String vFilters, String vPath, String vFileName, int vCountSelectionMax); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vPath = obj_vPath == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vPath, JNI_FALSE); + auto vFileName = obj_vFileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFileName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, vFilters, vPath, vFileName, vCountSelectionMax); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vPath != NULL) env->ReleaseStringUTFChars(obj_vPath, vPath); + if (vFileName != NULL) env->ReleaseStringUTFChars(obj_vFileName, vFileName); + */ + + private static native void nOpenDialog(String vKey, String vTitle, String vFilters, String vPath, String vFileName, int vCountSelectionMax, long vUserDatas); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vPath = obj_vPath == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vPath, JNI_FALSE); + auto vFileName = obj_vFileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFileName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, vFilters, vPath, vFileName, vCountSelectionMax, reinterpret_cast(vUserDatas)); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vPath != NULL) env->ReleaseStringUTFChars(obj_vPath, vPath); + if (vFileName != NULL) env->ReleaseStringUTFChars(obj_vFileName, vFileName); + */ + + private static native void nOpenDialog(String vKey, String vTitle, String vFilters, String vPath, String vFileName, int vCountSelectionMax, long vUserDatas, int vFlags); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vPath = obj_vPath == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vPath, JNI_FALSE); + auto vFileName = obj_vFileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFileName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, vFilters, vPath, vFileName, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vPath != NULL) env->ReleaseStringUTFChars(obj_vPath, vPath); + if (vFileName != NULL) env->ReleaseStringUTFChars(obj_vFileName, vFileName); + */ + + /** + * Open simple dialog (path and filename are obtained from filePathName) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName + * file path name (will be decompsoed in path and fileName) + */ + public static void openDialog(final String vKey, final String vTitle, final String vFilters, final String vFilePathName) { + nOpenDialog(vKey, vTitle, vFilters, vFilePathName); + } + + /** + * Open simple dialog (path and filename are obtained from filePathName) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName + * file path name (will be decompsoed in path and fileName) + * @param vCountSelectionMax + * count selection max + */ + public static void openDialog(final String vKey, final String vTitle, final String vFilters, final String vFilePathName, final int vCountSelectionMax) { + nOpenDialog(vKey, vTitle, vFilters, vFilePathName, vCountSelectionMax); + } + + /** + * Open simple dialog (path and filename are obtained from filePathName) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName + * file path name (will be decompsoed in path and fileName) + * @param vCountSelectionMax + * count selection max + * @param vUserDatas + * user datas (can be retrieved in pane) + */ + public static void openDialog(final String vKey, final String vTitle, final String vFilters, final String vFilePathName, final int vCountSelectionMax, final long vUserDatas) { + nOpenDialog(vKey, vTitle, vFilters, vFilePathName, vCountSelectionMax, vUserDatas); + } + + /** + * Open simple dialog (path and filename are obtained from filePathName) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName + * file path name (will be decompsoed in path and fileName) + * @param vCountSelectionMax + * count selection max + * @param vUserDatas + * user datas (can be retrieved in pane) + */ + public static void openDialog(final String vKey, final String vTitle, final String vFilters, final String vFilePathName, final int vCountSelectionMax, final long vUserDatas, final int vFlags) { + nOpenDialog(vKey, vTitle, vFilters, vFilePathName, vCountSelectionMax, vUserDatas, vFlags); + } + + private static native void nOpenDialog(String vKey, String vTitle, String vFilters, String vFilePathName); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vFilePathName = obj_vFilePathName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilePathName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, vFilters, vFilePathName); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vFilePathName != NULL) env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); + */ + + private static native void nOpenDialog(String vKey, String vTitle, String vFilters, String vFilePathName, int vCountSelectionMax); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vFilePathName = obj_vFilePathName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilePathName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, vFilters, vFilePathName, vCountSelectionMax); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vFilePathName != NULL) env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); + */ + + private static native void nOpenDialog(String vKey, String vTitle, String vFilters, String vFilePathName, int vCountSelectionMax, long vUserDatas); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vFilePathName = obj_vFilePathName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilePathName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, vFilters, vFilePathName, vCountSelectionMax, reinterpret_cast(vUserDatas)); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vFilePathName != NULL) env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); + */ + + private static native void nOpenDialog(String vKey, String vTitle, String vFilters, String vFilePathName, int vCountSelectionMax, long vUserDatas, int vFlags); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vFilePathName = obj_vFilePathName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilePathName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, vFilters, vFilePathName, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vFilePathName != NULL) env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); + */ + + /** + * Open dialog with custom right pane (path and fileName can be specified) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFileName + * default file name + * @param vSidePane + * side pane + */ + public static void openDialog(final String vKey, final String vTitle, final String vFilters, final String vPath, final String vFileName, final ImGuiFileDialogPaneFun vSidePane) { + nOpenDialog(vKey, vTitle, vFilters, vPath, vFileName, vSidePane); + } + + /** + * Open dialog with custom right pane (path and fileName can be specified) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFileName + * default file name + * @param vSidePane + * side pane + */ + public static void openDialog(final String vKey, final String vTitle, final String vFilters, final String vPath, final String vFileName, final ImGuiFileDialogPaneFun vSidePane, final float vSidePaneWidth) { + nOpenDialog(vKey, vTitle, vFilters, vPath, vFileName, vSidePane, vSidePaneWidth); + } + + /** + * Open dialog with custom right pane (path and fileName can be specified) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFileName + * default file name + * @param vSidePane + * side pane + * @param vCountSelectionMax + * count selection max + */ + public static void openDialog(final String vKey, final String vTitle, final String vFilters, final String vPath, final String vFileName, final ImGuiFileDialogPaneFun vSidePane, final float vSidePaneWidth, final int vCountSelectionMax) { + nOpenDialog(vKey, vTitle, vFilters, vPath, vFileName, vSidePane, vSidePaneWidth, vCountSelectionMax); + } + + /** + * Open dialog with custom right pane (path and fileName can be specified) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFileName + * default file name + * @param vSidePane + * side pane + * @param vCountSelectionMax + * count selection max + * @param vUserDatas + * user datas (can be retrieved in pane) + */ + public static void openDialog(final String vKey, final String vTitle, final String vFilters, final String vPath, final String vFileName, final ImGuiFileDialogPaneFun vSidePane, final float vSidePaneWidth, final int vCountSelectionMax, final long vUserDatas) { + nOpenDialog(vKey, vTitle, vFilters, vPath, vFileName, vSidePane, vSidePaneWidth, vCountSelectionMax, vUserDatas); + } + + /** + * Open dialog with custom right pane (path and fileName can be specified) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFileName + * default file name + * @param vSidePane + * side pane + * @param vCountSelectionMax + * count selection max + * @param vUserDatas + * user datas (can be retrieved in pane) + */ + public static void openDialog(final String vKey, final String vTitle, final String vFilters, final String vPath, final String vFileName, final ImGuiFileDialogPaneFun vSidePane, final float vSidePaneWidth, final int vCountSelectionMax, final long vUserDatas, final int vFlags) { + nOpenDialog(vKey, vTitle, vFilters, vPath, vFileName, vSidePane, vSidePaneWidth, vCountSelectionMax, vUserDatas, vFlags); + } + + /** + * Open dialog with custom right pane (path and fileName can be specified) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFileName + * default file name + * @param vSidePane + * side pane + * @param vCountSelectionMax + * count selection max + * @param vUserDatas + * user datas (can be retrieved in pane) + */ + public static void openDialog(final String vKey, final String vTitle, final String vFilters, final String vPath, final String vFileName, final ImGuiFileDialogPaneFun vSidePane, final int vCountSelectionMax, final long vUserDatas, final int vFlags) { + nOpenDialog(vKey, vTitle, vFilters, vPath, vFileName, vSidePane, vCountSelectionMax, vUserDatas, vFlags); + } + + private static native void nOpenDialog(String vKey, String vTitle, String vFilters, String vPath, String vFileName, ImGuiFileDialogPaneFun vSidePane); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vPath = obj_vPath == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vPath, JNI_FALSE); + auto vFileName = obj_vFileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFileName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, vFilters, vPath, vFileName, PaneFunCallback(env, vSidePane)); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vPath != NULL) env->ReleaseStringUTFChars(obj_vPath, vPath); + if (vFileName != NULL) env->ReleaseStringUTFChars(obj_vFileName, vFileName); + */ + + private static native void nOpenDialog(String vKey, String vTitle, String vFilters, String vPath, String vFileName, ImGuiFileDialogPaneFun vSidePane, float vSidePaneWidth); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vPath = obj_vPath == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vPath, JNI_FALSE); + auto vFileName = obj_vFileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFileName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, vFilters, vPath, vFileName, PaneFunCallback(env, vSidePane), vSidePaneWidth); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vPath != NULL) env->ReleaseStringUTFChars(obj_vPath, vPath); + if (vFileName != NULL) env->ReleaseStringUTFChars(obj_vFileName, vFileName); + */ + + private static native void nOpenDialog(String vKey, String vTitle, String vFilters, String vPath, String vFileName, ImGuiFileDialogPaneFun vSidePane, float vSidePaneWidth, int vCountSelectionMax); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vPath = obj_vPath == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vPath, JNI_FALSE); + auto vFileName = obj_vFileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFileName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, vFilters, vPath, vFileName, PaneFunCallback(env, vSidePane), vSidePaneWidth, vCountSelectionMax); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vPath != NULL) env->ReleaseStringUTFChars(obj_vPath, vPath); + if (vFileName != NULL) env->ReleaseStringUTFChars(obj_vFileName, vFileName); + */ + + private static native void nOpenDialog(String vKey, String vTitle, String vFilters, String vPath, String vFileName, ImGuiFileDialogPaneFun vSidePane, float vSidePaneWidth, int vCountSelectionMax, long vUserDatas); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vPath = obj_vPath == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vPath, JNI_FALSE); + auto vFileName = obj_vFileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFileName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, vFilters, vPath, vFileName, PaneFunCallback(env, vSidePane), vSidePaneWidth, vCountSelectionMax, reinterpret_cast(vUserDatas)); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vPath != NULL) env->ReleaseStringUTFChars(obj_vPath, vPath); + if (vFileName != NULL) env->ReleaseStringUTFChars(obj_vFileName, vFileName); + */ + + private static native void nOpenDialog(String vKey, String vTitle, String vFilters, String vPath, String vFileName, ImGuiFileDialogPaneFun vSidePane, float vSidePaneWidth, int vCountSelectionMax, long vUserDatas, int vFlags); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vPath = obj_vPath == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vPath, JNI_FALSE); + auto vFileName = obj_vFileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFileName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, vFilters, vPath, vFileName, PaneFunCallback(env, vSidePane), vSidePaneWidth, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vPath != NULL) env->ReleaseStringUTFChars(obj_vPath, vPath); + if (vFileName != NULL) env->ReleaseStringUTFChars(obj_vFileName, vFileName); + */ + + private static native void nOpenDialog(String vKey, String vTitle, String vFilters, String vPath, String vFileName, ImGuiFileDialogPaneFun vSidePane, int vCountSelectionMax, long vUserDatas, int vFlags); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vPath = obj_vPath == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vPath, JNI_FALSE); + auto vFileName = obj_vFileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFileName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, vFilters, vPath, vFileName, PaneFunCallback(env, vSidePane), 250.0f, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vPath != NULL) env->ReleaseStringUTFChars(obj_vPath, vPath); + if (vFileName != NULL) env->ReleaseStringUTFChars(obj_vFileName, vFileName); + */ + + /** + * Open dialog with custom right pane (path and filename are obtained from filePathName) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName + * file path name (will be decompsoed in path and fileName) + * @param vSidePane + * side pane + */ + public static void openDialog(final String vKey, final String vTitle, final String vFilters, final String vFilePathName, final ImGuiFileDialogPaneFun vSidePane) { + nOpenDialog(vKey, vTitle, vFilters, vFilePathName, vSidePane); + } + + /** + * Open dialog with custom right pane (path and filename are obtained from filePathName) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName + * file path name (will be decompsoed in path and fileName) + * @param vSidePane + * side pane + */ + public static void openDialog(final String vKey, final String vTitle, final String vFilters, final String vFilePathName, final ImGuiFileDialogPaneFun vSidePane, final float vSidePaneWidth) { + nOpenDialog(vKey, vTitle, vFilters, vFilePathName, vSidePane, vSidePaneWidth); + } + + /** + * Open dialog with custom right pane (path and filename are obtained from filePathName) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName + * file path name (will be decompsoed in path and fileName) + * @param vSidePane + * side pane + * @param vCountSelectionMax + * count selection max + */ + public static void openDialog(final String vKey, final String vTitle, final String vFilters, final String vFilePathName, final ImGuiFileDialogPaneFun vSidePane, final float vSidePaneWidth, final int vCountSelectionMax) { + nOpenDialog(vKey, vTitle, vFilters, vFilePathName, vSidePane, vSidePaneWidth, vCountSelectionMax); + } + + /** + * Open dialog with custom right pane (path and filename are obtained from filePathName) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName + * file path name (will be decompsoed in path and fileName) + * @param vSidePane + * side pane + * @param vCountSelectionMax + * count selection max + * @param vUserDatas + * user datas (can be retrieved in pane) + */ + public static void openDialog(final String vKey, final String vTitle, final String vFilters, final String vFilePathName, final ImGuiFileDialogPaneFun vSidePane, final float vSidePaneWidth, final int vCountSelectionMax, final long vUserDatas) { + nOpenDialog(vKey, vTitle, vFilters, vFilePathName, vSidePane, vSidePaneWidth, vCountSelectionMax, vUserDatas); + } + + /** + * Open dialog with custom right pane (path and filename are obtained from filePathName) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName + * file path name (will be decompsoed in path and fileName) + * @param vSidePane + * side pane + * @param vCountSelectionMax + * count selection max + * @param vUserDatas + * user datas (can be retrieved in pane) + */ + public static void openDialog(final String vKey, final String vTitle, final String vFilters, final String vFilePathName, final ImGuiFileDialogPaneFun vSidePane, final float vSidePaneWidth, final int vCountSelectionMax, final long vUserDatas, final int vFlags) { + nOpenDialog(vKey, vTitle, vFilters, vFilePathName, vSidePane, vSidePaneWidth, vCountSelectionMax, vUserDatas, vFlags); + } + + /** + * Open dialog with custom right pane (path and filename are obtained from filePathName) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName + * file path name (will be decompsoed in path and fileName) + * @param vSidePane + * side pane + * @param vCountSelectionMax + * count selection max + * @param vUserDatas + * user datas (can be retrieved in pane) + */ + public static void openDialog(final String vKey, final String vTitle, final String vFilters, final String vFilePathName, final ImGuiFileDialogPaneFun vSidePane, final int vCountSelectionMax, final long vUserDatas, final int vFlags) { + nOpenDialog(vKey, vTitle, vFilters, vFilePathName, vSidePane, vCountSelectionMax, vUserDatas, vFlags); + } + + private static native void nOpenDialog(String vKey, String vTitle, String vFilters, String vFilePathName, ImGuiFileDialogPaneFun vSidePane); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vFilePathName = obj_vFilePathName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilePathName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, vFilters, vFilePathName, PaneFunCallback(env, vSidePane)); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vFilePathName != NULL) env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); + */ + + private static native void nOpenDialog(String vKey, String vTitle, String vFilters, String vFilePathName, ImGuiFileDialogPaneFun vSidePane, float vSidePaneWidth); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vFilePathName = obj_vFilePathName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilePathName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, vFilters, vFilePathName, PaneFunCallback(env, vSidePane), vSidePaneWidth); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vFilePathName != NULL) env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); + */ + + private static native void nOpenDialog(String vKey, String vTitle, String vFilters, String vFilePathName, ImGuiFileDialogPaneFun vSidePane, float vSidePaneWidth, int vCountSelectionMax); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vFilePathName = obj_vFilePathName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilePathName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, vFilters, vFilePathName, PaneFunCallback(env, vSidePane), vSidePaneWidth, vCountSelectionMax); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vFilePathName != NULL) env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); + */ + + private static native void nOpenDialog(String vKey, String vTitle, String vFilters, String vFilePathName, ImGuiFileDialogPaneFun vSidePane, float vSidePaneWidth, int vCountSelectionMax, long vUserDatas); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vFilePathName = obj_vFilePathName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilePathName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, vFilters, vFilePathName, PaneFunCallback(env, vSidePane), vSidePaneWidth, vCountSelectionMax, reinterpret_cast(vUserDatas)); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vFilePathName != NULL) env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); + */ + + private static native void nOpenDialog(String vKey, String vTitle, String vFilters, String vFilePathName, ImGuiFileDialogPaneFun vSidePane, float vSidePaneWidth, int vCountSelectionMax, long vUserDatas, int vFlags); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vFilePathName = obj_vFilePathName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilePathName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, vFilters, vFilePathName, PaneFunCallback(env, vSidePane), vSidePaneWidth, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vFilePathName != NULL) env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); + */ + + private static native void nOpenDialog(String vKey, String vTitle, String vFilters, String vFilePathName, ImGuiFileDialogPaneFun vSidePane, int vCountSelectionMax, long vUserDatas, int vFlags); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vFilePathName = obj_vFilePathName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilePathName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, vFilters, vFilePathName, PaneFunCallback(env, vSidePane), 250.0f, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vFilePathName != NULL) env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); + */ + + + /** + * Open simple modal (path and fileName can be specified) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFileName + * default file name + */ + public static void openModal(final String vKey, final String vTitle, final String vFilters, final String vPath, final String vFileName) { + nOpenModal(vKey, vTitle, vFilters, vPath, vFileName); + } + + /** + * Open simple modal (path and fileName can be specified) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFileName + * default file name + * @param vCountSelectionMax + * count selection max + */ + public static void openModal(final String vKey, final String vTitle, final String vFilters, final String vPath, final String vFileName, final int vCountSelectionMax) { + nOpenModal(vKey, vTitle, vFilters, vPath, vFileName, vCountSelectionMax); + } + + /** + * Open simple modal (path and fileName can be specified) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFileName + * default file name + * @param vCountSelectionMax + * count selection max + * @param vUserDatas + * user datas (can be retrieved in pane) + */ + public static void openModal(final String vKey, final String vTitle, final String vFilters, final String vPath, final String vFileName, final int vCountSelectionMax, final long vUserDatas) { + nOpenModal(vKey, vTitle, vFilters, vPath, vFileName, vCountSelectionMax, vUserDatas); + } + + /** + * Open simple modal (path and fileName can be specified) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFileName + * default file name + * @param vCountSelectionMax + * count selection max + * @param vUserDatas + * user datas (can be retrieved in pane) + */ + public static void openModal(final String vKey, final String vTitle, final String vFilters, final String vPath, final String vFileName, final int vCountSelectionMax, final long vUserDatas, final int vFlags) { + nOpenModal(vKey, vTitle, vFilters, vPath, vFileName, vCountSelectionMax, vUserDatas, vFlags); + } + + private static native void nOpenModal(String vKey, String vTitle, String vFilters, String vPath, String vFileName); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vPath = obj_vPath == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vPath, JNI_FALSE); + auto vFileName = obj_vFileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFileName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vPath, vFileName); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vPath != NULL) env->ReleaseStringUTFChars(obj_vPath, vPath); + if (vFileName != NULL) env->ReleaseStringUTFChars(obj_vFileName, vFileName); + */ + + private static native void nOpenModal(String vKey, String vTitle, String vFilters, String vPath, String vFileName, int vCountSelectionMax); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vPath = obj_vPath == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vPath, JNI_FALSE); + auto vFileName = obj_vFileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFileName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vPath, vFileName, vCountSelectionMax); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vPath != NULL) env->ReleaseStringUTFChars(obj_vPath, vPath); + if (vFileName != NULL) env->ReleaseStringUTFChars(obj_vFileName, vFileName); + */ + + private static native void nOpenModal(String vKey, String vTitle, String vFilters, String vPath, String vFileName, int vCountSelectionMax, long vUserDatas); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vPath = obj_vPath == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vPath, JNI_FALSE); + auto vFileName = obj_vFileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFileName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vPath, vFileName, vCountSelectionMax, reinterpret_cast(vUserDatas)); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vPath != NULL) env->ReleaseStringUTFChars(obj_vPath, vPath); + if (vFileName != NULL) env->ReleaseStringUTFChars(obj_vFileName, vFileName); + */ + + private static native void nOpenModal(String vKey, String vTitle, String vFilters, String vPath, String vFileName, int vCountSelectionMax, long vUserDatas, int vFlags); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vPath = obj_vPath == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vPath, JNI_FALSE); + auto vFileName = obj_vFileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFileName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vPath, vFileName, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vPath != NULL) env->ReleaseStringUTFChars(obj_vPath, vPath); + if (vFileName != NULL) env->ReleaseStringUTFChars(obj_vFileName, vFileName); + */ + + /** + * open simple modal (path and filename are obtained from filePathName) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName + * file path name (will be decomposed in path and fileName) + */ + public static void openModal(final String vKey, final String vTitle, final String vFilters, final String vFilePathName) { + nOpenModal(vKey, vTitle, vFilters, vFilePathName); + } + + /** + * open simple modal (path and filename are obtained from filePathName) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName + * file path name (will be decomposed in path and fileName) + * @param vCountSelectionMax + * count selection max + */ + public static void openModal(final String vKey, final String vTitle, final String vFilters, final String vFilePathName, final int vCountSelectionMax) { + nOpenModal(vKey, vTitle, vFilters, vFilePathName, vCountSelectionMax); + } + + /** + * open simple modal (path and filename are obtained from filePathName) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName + * file path name (will be decomposed in path and fileName) + * @param vCountSelectionMax + * count selection max + * @param vUserDatas + * user datas (can be retrieved in pane) + */ + public static void openModal(final String vKey, final String vTitle, final String vFilters, final String vFilePathName, final int vCountSelectionMax, final long vUserDatas) { + nOpenModal(vKey, vTitle, vFilters, vFilePathName, vCountSelectionMax, vUserDatas); + } + + /** + * open simple modal (path and filename are obtained from filePathName) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName + * file path name (will be decomposed in path and fileName) + * @param vCountSelectionMax + * count selection max + * @param vUserDatas + * user datas (can be retrieved in pane) + */ + public static void openModal(final String vKey, final String vTitle, final String vFilters, final String vFilePathName, final int vCountSelectionMax, final long vUserDatas, final int vFlags) { + nOpenModal(vKey, vTitle, vFilters, vFilePathName, vCountSelectionMax, vUserDatas, vFlags); + } + + private static native void nOpenModal(String vKey, String vTitle, String vFilters, String vFilePathName); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vFilePathName = obj_vFilePathName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilePathName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vFilePathName); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vFilePathName != NULL) env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); + */ + + private static native void nOpenModal(String vKey, String vTitle, String vFilters, String vFilePathName, int vCountSelectionMax); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vFilePathName = obj_vFilePathName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilePathName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vFilePathName, vCountSelectionMax); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vFilePathName != NULL) env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); + */ + + private static native void nOpenModal(String vKey, String vTitle, String vFilters, String vFilePathName, int vCountSelectionMax, long vUserDatas); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vFilePathName = obj_vFilePathName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilePathName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vFilePathName, vCountSelectionMax, reinterpret_cast(vUserDatas)); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vFilePathName != NULL) env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); + */ + + private static native void nOpenModal(String vKey, String vTitle, String vFilters, String vFilePathName, int vCountSelectionMax, long vUserDatas, int vFlags); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vFilePathName = obj_vFilePathName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilePathName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vFilePathName, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vFilePathName != NULL) env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); + */ + + + /** + * Open modal with custom right pane (path and fileName can be specified) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFileName + * default file name + * @param vSidePane + * side pane + */ + public static void openModal(final String vKey, final String vTitle, final String vFilters, final String vPath, final String vFileName, final ImGuiFileDialogPaneFun vSidePane) { + nOpenModal(vKey, vTitle, vFilters, vPath, vFileName, vSidePane); + } + + /** + * Open modal with custom right pane (path and fileName can be specified) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFileName + * default file name + * @param vSidePane + * side pane + * @param vSidePaneWidth + * side pane width + */ + public static void openModal(final String vKey, final String vTitle, final String vFilters, final String vPath, final String vFileName, final ImGuiFileDialogPaneFun vSidePane, final float vSidePaneWidth) { + nOpenModal(vKey, vTitle, vFilters, vPath, vFileName, vSidePane, vSidePaneWidth); + } + + /** + * Open modal with custom right pane (path and fileName can be specified) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFileName + * default file name + * @param vSidePane + * side pane + * @param vSidePaneWidth + * side pane width + * @param vCountSelectionMax + * count selection max + */ + public static void openModal(final String vKey, final String vTitle, final String vFilters, final String vPath, final String vFileName, final ImGuiFileDialogPaneFun vSidePane, final float vSidePaneWidth, final int vCountSelectionMax) { + nOpenModal(vKey, vTitle, vFilters, vPath, vFileName, vSidePane, vSidePaneWidth, vCountSelectionMax); + } + + /** + * Open modal with custom right pane (path and fileName can be specified) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFileName + * default file name + * @param vSidePane + * side pane + * @param vSidePaneWidth + * side pane width + * @param vCountSelectionMax + * count selection max + * @param vUserDatas + * user datas (can be retrieved in pane) + */ + public static void openModal(final String vKey, final String vTitle, final String vFilters, final String vPath, final String vFileName, final ImGuiFileDialogPaneFun vSidePane, final float vSidePaneWidth, final int vCountSelectionMax, final long vUserDatas) { + nOpenModal(vKey, vTitle, vFilters, vPath, vFileName, vSidePane, vSidePaneWidth, vCountSelectionMax, vUserDatas); + } + + /** + * Open modal with custom right pane (path and fileName can be specified) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFileName + * default file name + * @param vSidePane + * side pane + * @param vSidePaneWidth + * side pane width + * @param vCountSelectionMax + * count selection max + * @param vUserDatas + * user datas (can be retrieved in pane) + */ + public static void openModal(final String vKey, final String vTitle, final String vFilters, final String vPath, final String vFileName, final ImGuiFileDialogPaneFun vSidePane, final float vSidePaneWidth, final int vCountSelectionMax, final long vUserDatas, final int vFlags) { + nOpenModal(vKey, vTitle, vFilters, vPath, vFileName, vSidePane, vSidePaneWidth, vCountSelectionMax, vUserDatas, vFlags); + } + + /** + * Open modal with custom right pane (path and fileName can be specified) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFileName + * default file name + * @param vSidePane + * side pane + * @param vCountSelectionMax + * count selection max + * @param vUserDatas + * user datas (can be retrieved in pane) + */ + public static void openModal(final String vKey, final String vTitle, final String vFilters, final String vPath, final String vFileName, final ImGuiFileDialogPaneFun vSidePane, final int vCountSelectionMax, final long vUserDatas, final int vFlags) { + nOpenModal(vKey, vTitle, vFilters, vPath, vFileName, vSidePane, vCountSelectionMax, vUserDatas, vFlags); + } + + private static native void nOpenModal(String vKey, String vTitle, String vFilters, String vPath, String vFileName, ImGuiFileDialogPaneFun vSidePane); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vPath = obj_vPath == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vPath, JNI_FALSE); + auto vFileName = obj_vFileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFileName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vPath, vFileName, PaneFunCallback(env, vSidePane)); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vPath != NULL) env->ReleaseStringUTFChars(obj_vPath, vPath); + if (vFileName != NULL) env->ReleaseStringUTFChars(obj_vFileName, vFileName); + */ + + private static native void nOpenModal(String vKey, String vTitle, String vFilters, String vPath, String vFileName, ImGuiFileDialogPaneFun vSidePane, float vSidePaneWidth); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vPath = obj_vPath == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vPath, JNI_FALSE); + auto vFileName = obj_vFileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFileName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vPath, vFileName, PaneFunCallback(env, vSidePane), vSidePaneWidth); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vPath != NULL) env->ReleaseStringUTFChars(obj_vPath, vPath); + if (vFileName != NULL) env->ReleaseStringUTFChars(obj_vFileName, vFileName); + */ + + private static native void nOpenModal(String vKey, String vTitle, String vFilters, String vPath, String vFileName, ImGuiFileDialogPaneFun vSidePane, float vSidePaneWidth, int vCountSelectionMax); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vPath = obj_vPath == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vPath, JNI_FALSE); + auto vFileName = obj_vFileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFileName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vPath, vFileName, PaneFunCallback(env, vSidePane), vSidePaneWidth, vCountSelectionMax); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vPath != NULL) env->ReleaseStringUTFChars(obj_vPath, vPath); + if (vFileName != NULL) env->ReleaseStringUTFChars(obj_vFileName, vFileName); + */ + + private static native void nOpenModal(String vKey, String vTitle, String vFilters, String vPath, String vFileName, ImGuiFileDialogPaneFun vSidePane, float vSidePaneWidth, int vCountSelectionMax, long vUserDatas); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vPath = obj_vPath == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vPath, JNI_FALSE); + auto vFileName = obj_vFileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFileName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vPath, vFileName, PaneFunCallback(env, vSidePane), vSidePaneWidth, vCountSelectionMax, reinterpret_cast(vUserDatas)); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vPath != NULL) env->ReleaseStringUTFChars(obj_vPath, vPath); + if (vFileName != NULL) env->ReleaseStringUTFChars(obj_vFileName, vFileName); + */ + + private static native void nOpenModal(String vKey, String vTitle, String vFilters, String vPath, String vFileName, ImGuiFileDialogPaneFun vSidePane, float vSidePaneWidth, int vCountSelectionMax, long vUserDatas, int vFlags); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vPath = obj_vPath == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vPath, JNI_FALSE); + auto vFileName = obj_vFileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFileName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vPath, vFileName, PaneFunCallback(env, vSidePane), vSidePaneWidth, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vPath != NULL) env->ReleaseStringUTFChars(obj_vPath, vPath); + if (vFileName != NULL) env->ReleaseStringUTFChars(obj_vFileName, vFileName); + */ + + private static native void nOpenModal(String vKey, String vTitle, String vFilters, String vPath, String vFileName, ImGuiFileDialogPaneFun vSidePane, int vCountSelectionMax, long vUserDatas, int vFlags); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vPath = obj_vPath == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vPath, JNI_FALSE); + auto vFileName = obj_vFileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFileName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vPath, vFileName, PaneFunCallback(env, vSidePane), 250.0f, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vPath != NULL) env->ReleaseStringUTFChars(obj_vPath, vPath); + if (vFileName != NULL) env->ReleaseStringUTFChars(obj_vFileName, vFileName); + */ + + /** + * Open modal with custom right pane (path and filename are obtained from filePathName) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName + * file path name (will be decomposed in path and fileName) + * @param vSidePane + * side pane + */ + public static void openModal(final String vKey, final String vTitle, final String vFilters, final String vFilePathName, final ImGuiFileDialogPaneFun vSidePane) { + nOpenModal(vKey, vTitle, vFilters, vFilePathName, vSidePane); + } + + /** + * Open modal with custom right pane (path and filename are obtained from filePathName) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName + * file path name (will be decomposed in path and fileName) + * @param vSidePane + * side pane + * @param vSidePaneWidth + * side pane width + */ + public static void openModal(final String vKey, final String vTitle, final String vFilters, final String vFilePathName, final ImGuiFileDialogPaneFun vSidePane, final float vSidePaneWidth) { + nOpenModal(vKey, vTitle, vFilters, vFilePathName, vSidePane, vSidePaneWidth); + } + + /** + * Open modal with custom right pane (path and filename are obtained from filePathName) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName + * file path name (will be decomposed in path and fileName) + * @param vSidePane + * side pane + * @param vSidePaneWidth + * side pane width + * @param vCountSelectionMax + * count selection max + */ + public static void openModal(final String vKey, final String vTitle, final String vFilters, final String vFilePathName, final ImGuiFileDialogPaneFun vSidePane, final float vSidePaneWidth, final int vCountSelectionMax) { + nOpenModal(vKey, vTitle, vFilters, vFilePathName, vSidePane, vSidePaneWidth, vCountSelectionMax); + } + + /** + * Open modal with custom right pane (path and filename are obtained from filePathName) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName + * file path name (will be decomposed in path and fileName) + * @param vSidePane + * side pane + * @param vSidePaneWidth + * side pane width + * @param vCountSelectionMax + * count selection max + * @param vUserDatas + * user datas (can be retrieved in pane) + */ + public static void openModal(final String vKey, final String vTitle, final String vFilters, final String vFilePathName, final ImGuiFileDialogPaneFun vSidePane, final float vSidePaneWidth, final int vCountSelectionMax, final long vUserDatas) { + nOpenModal(vKey, vTitle, vFilters, vFilePathName, vSidePane, vSidePaneWidth, vCountSelectionMax, vUserDatas); + } + + /** + * Open modal with custom right pane (path and filename are obtained from filePathName) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName + * file path name (will be decomposed in path and fileName) + * @param vSidePane + * side pane + * @param vSidePaneWidth + * side pane width + * @param vCountSelectionMax + * count selection max + * @param vUserDatas + * user datas (can be retrieved in pane) + */ + public static void openModal(final String vKey, final String vTitle, final String vFilters, final String vFilePathName, final ImGuiFileDialogPaneFun vSidePane, final float vSidePaneWidth, final int vCountSelectionMax, final long vUserDatas, final int vFlags) { + nOpenModal(vKey, vTitle, vFilters, vFilePathName, vSidePane, vSidePaneWidth, vCountSelectionMax, vUserDatas, vFlags); + } + + /** + * Open modal with custom right pane (path and filename are obtained from filePathName) + * + * @param vKey + * key dialog + * @param vFilters + * filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName + * file path name (will be decomposed in path and fileName) + * @param vSidePane + * side pane + * @param vCountSelectionMax + * count selection max + * @param vUserDatas + * user datas (can be retrieved in pane) + */ + public static void openModal(final String vKey, final String vTitle, final String vFilters, final String vFilePathName, final ImGuiFileDialogPaneFun vSidePane, final int vCountSelectionMax, final long vUserDatas, final int vFlags) { + nOpenModal(vKey, vTitle, vFilters, vFilePathName, vSidePane, vCountSelectionMax, vUserDatas, vFlags); + } + + private static native void nOpenModal(String vKey, String vTitle, String vFilters, String vFilePathName, ImGuiFileDialogPaneFun vSidePane); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vFilePathName = obj_vFilePathName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilePathName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vFilePathName, PaneFunCallback(env, vSidePane)); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vFilePathName != NULL) env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); + */ + + private static native void nOpenModal(String vKey, String vTitle, String vFilters, String vFilePathName, ImGuiFileDialogPaneFun vSidePane, float vSidePaneWidth); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vFilePathName = obj_vFilePathName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilePathName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vFilePathName, PaneFunCallback(env, vSidePane), vSidePaneWidth); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vFilePathName != NULL) env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); + */ + + private static native void nOpenModal(String vKey, String vTitle, String vFilters, String vFilePathName, ImGuiFileDialogPaneFun vSidePane, float vSidePaneWidth, int vCountSelectionMax); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vFilePathName = obj_vFilePathName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilePathName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vFilePathName, PaneFunCallback(env, vSidePane), vSidePaneWidth, vCountSelectionMax); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vFilePathName != NULL) env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); + */ + + private static native void nOpenModal(String vKey, String vTitle, String vFilters, String vFilePathName, ImGuiFileDialogPaneFun vSidePane, float vSidePaneWidth, int vCountSelectionMax, long vUserDatas); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vFilePathName = obj_vFilePathName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilePathName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vFilePathName, PaneFunCallback(env, vSidePane), vSidePaneWidth, vCountSelectionMax, reinterpret_cast(vUserDatas)); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vFilePathName != NULL) env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); + */ + + private static native void nOpenModal(String vKey, String vTitle, String vFilters, String vFilePathName, ImGuiFileDialogPaneFun vSidePane, float vSidePaneWidth, int vCountSelectionMax, long vUserDatas, int vFlags); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vFilePathName = obj_vFilePathName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilePathName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vFilePathName, PaneFunCallback(env, vSidePane), vSidePaneWidth, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vFilePathName != NULL) env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); + */ + + private static native void nOpenModal(String vKey, String vTitle, String vFilters, String vFilePathName, ImGuiFileDialogPaneFun vSidePane, int vCountSelectionMax, long vUserDatas, int vFlags); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto vTitle = obj_vTitle == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vTitle, JNI_FALSE); + auto vFilters = obj_vFilters == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); + auto vFilePathName = obj_vFilePathName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vFilePathName, JNI_FALSE); + ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vFilePathName, PaneFunCallback(env, vSidePane), 250.0f, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + if (vTitle != NULL) env->ReleaseStringUTFChars(obj_vTitle, vTitle); + if (vFilters != NULL) env->ReleaseStringUTFChars(obj_vFilters, vFilters); + if (vFilePathName != NULL) env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); + */ + + /** + * Display / Close dialog form + * Display the dialog. return true if a result was obtained (Ok or not) + * + * @param vKey + * key dialog to display (if not the same key as defined by OpenDialog/Modal => no opening) + * @return true if a result was obtained (Ok or not) + */ + public static boolean display(final String vKey) { + return nDisplay(vKey); + } + + /** + * Display / Close dialog form + * Display the dialog. return true if a result was obtained (Ok or not) + * + * @param vKey + * key dialog to display (if not the same key as defined by OpenDialog/Modal => no opening) + * @return true if a result was obtained (Ok or not) + */ + public static boolean display(final String vKey, final int vFlags) { + return nDisplay(vKey, vFlags); + } + + /** + * Display / Close dialog form + * Display the dialog. return true if a result was obtained (Ok or not) + * + * @param vKey + * key dialog to display (if not the same key as defined by OpenDialog/Modal => no opening) + * @param vMinSize + * minimal size constraint for the ImGuiWindow + * @return true if a result was obtained (Ok or not) + */ + public static boolean display(final String vKey, final int vFlags, final ImVec2 vMinSize) { + return nDisplay(vKey, vFlags, vMinSize.x, vMinSize.y); + } + + /** + * Display / Close dialog form + * Display the dialog. return true if a result was obtained (Ok or not) + * + * @param vKey + * key dialog to display (if not the same key as defined by OpenDialog/Modal => no opening) + * @return true if a result was obtained (Ok or not) + */ + public static boolean display(final String vKey, final int vFlags, final float vMinSizeX, final float vMinSizeY) { + return nDisplay(vKey, vFlags, vMinSizeX, vMinSizeY); + } + + /** + * Display / Close dialog form + * Display the dialog. return true if a result was obtained (Ok or not) + * + * @param vKey + * key dialog to display (if not the same key as defined by OpenDialog/Modal => no opening) + * @param vMinSize + * minimal size constraint for the ImGuiWindow + * @param vMaxSize + * maximal size constraint for the ImGuiWindow + * @return true if a result was obtained (Ok or not) + */ + public static boolean display(final String vKey, final int vFlags, final ImVec2 vMinSize, final ImVec2 vMaxSize) { + return nDisplay(vKey, vFlags, vMinSize.x, vMinSize.y, vMaxSize.x, vMaxSize.y); + } + + /** + * Display / Close dialog form + * Display the dialog. return true if a result was obtained (Ok or not) + * + * @param vKey + * key dialog to display (if not the same key as defined by OpenDialog/Modal => no opening) + * @return true if a result was obtained (Ok or not) + */ + public static boolean display(final String vKey, final int vFlags, final float vMinSizeX, final float vMinSizeY, final float vMaxSizeX, final float vMaxSizeY) { + return nDisplay(vKey, vFlags, vMinSizeX, vMinSizeY, vMaxSizeX, vMaxSizeY); + } + + private static native boolean nDisplay(String obj_vKey); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto _result = ImGuiFileDialog::Instance()->Display(vKey); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + return _result; + */ + + private static native boolean nDisplay(String obj_vKey, int vFlags); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto _result = ImGuiFileDialog::Instance()->Display(vKey, vFlags); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + return _result; + */ + + private static native boolean nDisplay(String obj_vKey, int vFlags, float vMinSizeX, float vMinSizeY); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + ImVec2 vMinSize = ImVec2(vMinSizeX, vMinSizeY); + auto _result = ImGuiFileDialog::Instance()->Display(vKey, vFlags, vMinSize); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + return _result; + */ + + private static native boolean nDisplay(String obj_vKey, int vFlags, float vMinSizeX, float vMinSizeY, float vMaxSizeX, float vMaxSizeY); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + ImVec2 vMinSize = ImVec2(vMinSizeX, vMinSizeY); + ImVec2 vMaxSize = ImVec2(vMaxSizeX, vMaxSizeY); + auto _result = ImGuiFileDialog::Instance()->Display(vKey, vFlags, vMinSize, vMaxSize); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + return _result; + */ + + + /** + * Close dialog + */ + public static void close() { + nClose(); + } + + private static native void nClose(); /* + ImGuiFileDialog::Instance()->Close(); + */ + + + /** + * Say if the dialog key was already opened this frame + * + * @return if the dialog key was already opened this frame + */ + public static boolean wasOpenedThisFrame() { + return nWasOpenedThisFrame(); + } + + /** + * Say if the dialog key was already opened this frame + * + * @param vKey + * key dialog + * @return if the dialog key was already opened this frame + */ + public static boolean wasOpenedThisFrame(final String vKey) { + return nWasOpenedThisFrame(vKey); + } + + private static native boolean nWasOpenedThisFrame(); /* + return ImGuiFileDialog::Instance()->WasOpenedThisFrame(); + */ + + private static native boolean nWasOpenedThisFrame(String obj_vKey); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto _result = ImGuiFileDialog::Instance()->WasOpenedThisFrame(vKey); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + return _result; + */ + + /** + * Say if the key is opened + * + * @return if the key is opened + */ + public static boolean isOpened() { + return nIsOpened(); + } + + /** + * Say if the key is opened + * + * @param vKey + * key dialog + * @return if the key is opened + */ + public static boolean isOpened(final String vKey) { + return nIsOpened(vKey); + } + + private static native boolean nIsOpened(); /* + return ImGuiFileDialog::Instance()->IsOpened(); + */ + + private static native boolean nIsOpened(String obj_vKey); /*MANUAL + auto vKey = obj_vKey == NULL ? NULL : (char*)env->GetStringUTFChars(obj_vKey, JNI_FALSE); + auto _result = ImGuiFileDialog::Instance()->IsOpened(vKey); + if (vKey != NULL) env->ReleaseStringUTFChars(obj_vKey, vKey); + return _result; + */ + + /** + * Return the dialog key who is opened, return nothing if not opened + * + * @return the dialog key who is opened or nothing is not opened + */ + public static String getOpenedKey() { + return nGetOpenedKey(); + } + + private static native String nGetOpenedKey(); /* + return env->NewStringUTF(ImGuiFileDialog::Instance()->GetOpenedKey().c_str()); + */ + + + /** + * true: Dialog Closed with Ok result / false: Dialog closed with cancel result + * + * @return True if the dialog closed with Ok result, or false with cancel result + */ + public static boolean isOk() { + return nIsOk(); + } + + private static native boolean nIsOk(); /* + return ImGuiFileDialog::Instance()->IsOk(); + */ + + + /** + * Open File behavior : will return selection via a map<FileName, FilePathName> + *

+ * For example, if a file is selected, say test.txt. Then the key value pair will be: + * 'test.txt', '/some/path/to/test.txt' + * + * @return Map of FileName to FilePathName in key,value pair + */ + public static HashMap getSelection() { + return nGetSelection(); + } + + private static native HashMap nGetSelection(); /* + // Get the map from ImGuiFileDialog + std::map mMap = ImGuiFileDialog::Instance()->GetSelection(); + + env->PushLocalFrame(mMap.size() * 2); // Expands stack size to not overflow + + // Get reference to java's HashMap + jclass hashMapClass = env->FindClass("java/util/HashMap"); + jmethodID hashMapInit = env->GetMethodID(hashMapClass, "", "(I)V"); + jobject hashMapObj = env->NewObject(hashMapClass, hashMapInit, mMap.size()); + jmethodID hashMapPut = env->GetMethodID(hashMapClass, "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); + + //Copy key,value pairs from map to hashmap + for (auto it : mMap) { + env->CallObjectMethod(hashMapObj, hashMapPut, + env->NewStringUTF(it.first.c_str()), + env->NewStringUTF(it.second.c_str()) + ); + } + + env->PopLocalFrame(hashMapObj); // Cleanup stack + + return hashMapObj; + */ + + + /** + * Save File behavior : will always return the content of the field with current filter extention and current path + */ + public static String getFilePathName() { + return nGetFilePathName(); + } + + private static native String nGetFilePathName(); /* + return env->NewStringUTF(ImGuiFileDialog::Instance()->GetFilePathName().c_str()); + */ + + /** + * Save File behavior : will always return the content of the field with current filter extension + * + * @return the content of the field with current filter extension + */ + public static String getCurrentFileName() { + return nGetCurrentFileName(); + } + + private static native String nGetCurrentFileName(); /* + return env->NewStringUTF(ImGuiFileDialog::Instance()->GetCurrentFileName().c_str()); + */ + + /** + * Will return current path + * + * @return the current path + */ + public static String getCurrentPath() { + return nGetCurrentPath(); + } + + private static native String nGetCurrentPath(); /* + return env->NewStringUTF(ImGuiFileDialog::Instance()->GetCurrentPath().c_str()); + */ + + /** + * Will return selected filter + * + * @return the selected filter + */ + public static String getCurrentFilter() { + return nGetCurrentFilter(); + } + + private static native String nGetCurrentFilter(); /* + return env->NewStringUTF(ImGuiFileDialog::Instance()->GetCurrentFilter().c_str()); + */ + + + /** + * Will return user datas sent with Open Dialog/Modal + *

+ * Can be used to pass a long value to the dialog and get the value back. + * This long value can be a pointer to a native data structure. + * + * @return user datas sent with Open Dialog/Modal + */ + public static long getUserDatas() { + return nGetUserDatas(); + } + + private static native long nGetUserDatas(); /* + return (intptr_t)ImGuiFileDialog::Instance()->GetUserDatas(); + */ +} diff --git a/imgui-binding/src/generated/java/imgui/extension/imguifiledialog/callback/ImGuiFileDialogPaneFun.java b/imgui-binding/src/generated/java/imgui/extension/imguifiledialog/callback/ImGuiFileDialogPaneFun.java new file mode 100644 index 0000000..9bd2f51 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/imguifiledialog/callback/ImGuiFileDialogPaneFun.java @@ -0,0 +1,5 @@ +package imgui.extension.imguifiledialog.callback; + +public abstract class ImGuiFileDialogPaneFun { + public abstract void accept(String filter, long userDatas, boolean canContinue); +} diff --git a/imgui-binding/src/generated/java/imgui/extension/imguifiledialog/flag/ImGuiFileDialogFlags.java b/imgui-binding/src/generated/java/imgui/extension/imguifiledialog/flag/ImGuiFileDialogFlags.java new file mode 100644 index 0000000..b3a67f9 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/imguifiledialog/flag/ImGuiFileDialogFlags.java @@ -0,0 +1,59 @@ +package imgui.extension.imguifiledialog.flag; + + +public final class ImGuiFileDialogFlags { + private ImGuiFileDialogFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * show confirm to overwrite dialog + * + *

Definition: {@code (1 << 0)} + */ + public static final int ConfirmOverwrite = 1; + + /** + * dont show hidden file (file starting with a .) + * + *

Definition: {@code (1 << 1)} + */ + public static final int DontShowHiddenFiles = 2; + + /** + * disable the create directory button + * + *

Definition: {@code (1 << 2)} + */ + public static final int DisableCreateDirectoryButton = 4; + + /** + * hide column file type + * + *

Definition: {@code (1 << 3)} + */ + public static final int HideColumnType = 8; + + /** + * hide column file size + * + *

Definition: {@code (1 << 4)} + */ + public static final int HideColumnSize = 16; + + /** + * hide column file date + * + *

Definition: {@code (1 << 5)} + */ + public static final int HideColumnDate = 32; + + /** + * Definition: {@code ImGuiFileDialogFlags_ConfirmOverwrite} + */ + public static final int Default = 1; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/imguiknobs/ImGuiKnobs.java b/imgui-binding/src/generated/java/imgui/extension/imguiknobs/ImGuiKnobs.java new file mode 100644 index 0000000..00f2a78 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/imguiknobs/ImGuiKnobs.java @@ -0,0 +1,1013 @@ +package imgui.extension.imguiknobs; + +import imgui.type.ImFloat; +import imgui.type.ImInt; + +/** + * ImGuiKnobs extension for ImGui + * Repo: https://github.com/altschuler/imgui-knobs + */ +public final class ImGuiKnobs { + private ImGuiKnobs() { + } + + /*JNI + #include "_imguiknobs.h" + */ + + /** + * Create a knob with float values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + */ + public static boolean knob(final String label, final ImFloat pValue, final float vMin, final float vMax) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax); + } + + /** + * Create a knob with float values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + */ + public static boolean knob(final String label, final ImFloat pValue, final float vMin, final float vMax, final float speed) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed); + } + + /** + * Create a knob with float values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param format + * string format + */ + public static boolean knob(final String label, final ImFloat pValue, final float vMin, final float vMax, final float speed, final String format) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, format); + } + + /** + * Create a knob with float values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param format + * string format + */ + public static boolean knob(final String label, final ImFloat pValue, final float vMin, final float vMax, final float speed, final String format, final int variant) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, format, variant); + } + + /** + * Create a knob with float values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param format + * string format + * @param size + * size of the knob + */ + public static boolean knob(final String label, final ImFloat pValue, final float vMin, final float vMax, final float speed, final String format, final int variant, final float size) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, format, variant, size); + } + + /** + * Create a knob with float values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param format + * string format + * @param size + * size of the knob + */ + public static boolean knob(final String label, final ImFloat pValue, final float vMin, final float vMax, final float speed, final String format, final int variant, final float size, final int flags) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, format, variant, size, flags); + } + + /** + * Create a knob with float values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param format + * string format + * @param size + * size of the knob + * @param steps + * determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + */ + public static boolean knob(final String label, final ImFloat pValue, final float vMin, final float vMax, final float speed, final String format, final int variant, final float size, final int flags, final int steps) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, format, variant, size, flags, steps); + } + + /** + * Create a knob with float values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param format + * string format + * @param size + * size of the knob + * @param steps + * determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + */ + public static boolean knob(final String label, final ImFloat pValue, final float vMin, final float vMax, final String format, final int variant, final float size, final int flags, final int steps) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, format, variant, size, flags, steps); + } + + /** + * Create a knob with float values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param size + * size of the knob + * @param steps + * determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + */ + public static boolean knob(final String label, final ImFloat pValue, final float vMin, final float vMax, final int variant, final float size, final int flags, final int steps) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, variant, size, flags, steps); + } + + /** + * Create a knob with float values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param size + * size of the knob + * @param steps + * determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + */ + public static boolean knob(final String label, final ImFloat pValue, final float vMin, final float vMax, final float speed, final int variant, final float size, final int flags, final int steps) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, variant, size, flags, steps); + } + + /** + * Create a knob with float values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param size + * size of the knob + * @param steps + * determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + */ + public static boolean knob(final String label, final ImFloat pValue, final float vMin, final float vMax, final float speed, final float size, final int flags, final int steps) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, size, flags, steps); + } + + /** + * Create a knob with float values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param steps + * determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + */ + public static boolean knob(final String label, final ImFloat pValue, final float vMin, final float vMax, final float speed, final int flags, final int steps) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, flags, steps); + } + + /** + * Create a knob with float values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param steps + * determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + */ + public static boolean knob(final String label, final ImFloat pValue, final float vMin, final float vMax, final float speed, final int steps) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, steps); + } + + /** + * Create a knob with float values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param format + * string format + * @param size + * size of the knob + * @param steps + * determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + */ + public static boolean knob(final String label, final ImFloat pValue, final float vMin, final float vMax, final float speed, final String format, final float size, final int flags, final int steps) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, format, size, flags, steps); + } + + /** + * Create a knob with float values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param format + * string format + * @param steps + * determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + */ + public static boolean knob(final String label, final ImFloat pValue, final float vMin, final float vMax, final float speed, final String format, final int variant, final int flags, final int steps) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, format, variant, flags, steps); + } + + /** + * Create a knob with float values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param format + * string format + * @param steps + * determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + */ + public static boolean knob(final String label, final ImFloat pValue, final float vMin, final float vMax, final float speed, final String format, final int variant, final int steps) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, format, variant, steps); + } + + private static native boolean nKnob(String obj_label, float[] obj_pValue, float vMin, float vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto _result = ImGuiKnobs::Knob(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + return _result; + */ + + private static native boolean nKnob(String obj_label, float[] obj_pValue, float vMin, float vMax, float speed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto _result = ImGuiKnobs::Knob(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + return _result; + */ + + private static native boolean nKnob(String obj_label, float[] obj_pValue, float vMin, float vMax, float speed, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGuiKnobs::Knob(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nKnob(String obj_label, float[] obj_pValue, float vMin, float vMax, float speed, String obj_format, int variant); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGuiKnobs::Knob(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, format, variant); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nKnob(String obj_label, float[] obj_pValue, float vMin, float vMax, float speed, String obj_format, int variant, float size); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGuiKnobs::Knob(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, format, variant, size); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nKnob(String obj_label, float[] obj_pValue, float vMin, float vMax, float speed, String obj_format, int variant, float size, int flags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGuiKnobs::Knob(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, format, variant, size, flags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nKnob(String obj_label, float[] obj_pValue, float vMin, float vMax, float speed, String obj_format, int variant, float size, int flags, int steps); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGuiKnobs::Knob(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, format, variant, size, flags, steps); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nKnob(String obj_label, float[] obj_pValue, float vMin, float vMax, String obj_format, int variant, float size, int flags, int steps); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGuiKnobs::Knob(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, 0, format, variant, size, flags, steps); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nKnob(String obj_label, float[] obj_pValue, float vMin, float vMax, int variant, float size, int flags, int steps); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto _result = ImGuiKnobs::Knob(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, 0, NULL, variant, size, flags, steps); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + return _result; + */ + + private static native boolean nKnob(String obj_label, float[] obj_pValue, float vMin, float vMax, float speed, int variant, float size, int flags, int steps); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto _result = ImGuiKnobs::Knob(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, NULL, variant, size, flags, steps); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + return _result; + */ + + private static native boolean nKnob(String obj_label, float[] obj_pValue, float vMin, float vMax, float speed, float size, int flags, int steps); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto _result = ImGuiKnobs::Knob(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, NULL, ImGuiKnobVariant_Tick, size, flags, steps); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + return _result; + */ + + private static native boolean nKnob(String obj_label, float[] obj_pValue, float vMin, float vMax, float speed, int flags, int steps); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto _result = ImGuiKnobs::Knob(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, NULL, ImGuiKnobVariant_Tick, 0, flags, steps); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + return _result; + */ + + private static native boolean nKnob(String obj_label, float[] obj_pValue, float vMin, float vMax, float speed, int steps); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto _result = ImGuiKnobs::Knob(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, NULL, ImGuiKnobVariant_Tick, 0, 0, steps); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + return _result; + */ + + private static native boolean nKnob(String obj_label, float[] obj_pValue, float vMin, float vMax, float speed, String obj_format, float size, int flags, int steps); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGuiKnobs::Knob(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, format, ImGuiKnobVariant_Tick, size, flags, steps); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nKnob(String obj_label, float[] obj_pValue, float vMin, float vMax, float speed, String obj_format, int variant, int flags, int steps); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGuiKnobs::Knob(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, format, variant, 0, flags, steps); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nKnob(String obj_label, float[] obj_pValue, float vMin, float vMax, float speed, String obj_format, int variant, int steps); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGuiKnobs::Knob(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, format, variant, 0, 0, steps); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + /** + * Create a knob with int values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + */ + public static boolean knob(final String label, final ImInt pValue, final int vMin, final int vMax) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax); + } + + /** + * Create a knob with int values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + */ + public static boolean knob(final String label, final ImInt pValue, final int vMin, final int vMax, final float speed) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed); + } + + /** + * Create a knob with int values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param format + * string format + */ + public static boolean knob(final String label, final ImInt pValue, final int vMin, final int vMax, final float speed, final String format) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, format); + } + + /** + * Create a knob with int values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param format + * string format + */ + public static boolean knob(final String label, final ImInt pValue, final int vMin, final int vMax, final float speed, final String format, final int variant) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, format, variant); + } + + /** + * Create a knob with int values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param format + * string format + * @param size + * Size for the knob + */ + public static boolean knob(final String label, final ImInt pValue, final int vMin, final int vMax, final float speed, final String format, final int variant, final float size) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, format, variant, size); + } + + /** + * Create a knob with int values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param format + * string format + * @param size + * Size for the knob + */ + public static boolean knob(final String label, final ImInt pValue, final int vMin, final int vMax, final float speed, final String format, final int variant, final float size, final int flags) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, format, variant, size, flags); + } + + /** + * Create a knob with int values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param format + * string format + * @param size + * Size for the knob + * @param steps + * determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + */ + public static boolean knob(final String label, final ImInt pValue, final int vMin, final int vMax, final float speed, final String format, final int variant, final float size, final int flags, final int steps) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, format, variant, size, flags, steps); + } + + /** + * Create a knob with int values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param format + * string format + * @param size + * Size for the knob + * @param steps + * determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + */ + public static boolean knob(final String label, final ImInt pValue, final int vMin, final int vMax, final String format, final int variant, final float size, final int flags, final int steps) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, format, variant, size, flags, steps); + } + + /** + * Create a knob with int values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param size + * Size for the knob + * @param steps + * determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + */ + public static boolean knob(final String label, final ImInt pValue, final int vMin, final int vMax, final int variant, final float size, final int flags, final int steps) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, variant, size, flags, steps); + } + + /** + * Create a knob with int values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param size + * Size for the knob + * @param steps + * determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + */ + public static boolean knob(final String label, final ImInt pValue, final int vMin, final int vMax, final float speed, final int variant, final float size, final int flags, final int steps) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, variant, size, flags, steps); + } + + /** + * Create a knob with int values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param size + * Size for the knob + * @param steps + * determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + */ + public static boolean knob(final String label, final ImInt pValue, final int vMin, final int vMax, final float speed, final float size, final int flags, final int steps) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, size, flags, steps); + } + + /** + * Create a knob with int values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param steps + * determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + */ + public static boolean knob(final String label, final ImInt pValue, final int vMin, final int vMax, final float speed, final int flags, final int steps) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, flags, steps); + } + + /** + * Create a knob with int values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param steps + * determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + */ + public static boolean knob(final String label, final ImInt pValue, final int vMin, final int vMax, final float speed, final int steps) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, steps); + } + + /** + * Create a knob with int values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param format + * string format + * @param size + * Size for the knob + * @param steps + * determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + */ + public static boolean knob(final String label, final ImInt pValue, final int vMin, final int vMax, final float speed, final String format, final float size, final int flags, final int steps) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, format, size, flags, steps); + } + + /** + * Create a knob with int values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param format + * string format + * @param steps + * determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + */ + public static boolean knob(final String label, final ImInt pValue, final int vMin, final int vMax, final float speed, final String format, final int variant, final int flags, final int steps) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, format, variant, flags, steps); + } + + /** + * Create a knob with int values + * + * @param label + * knob Label + * @param pValue + * knob value + * @param vMin + * minimum value + * @param vMax + * maximum value + * @param speed + * speed of the knob + * @param format + * string format + * @param steps + * determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + */ + public static boolean knob(final String label, final ImInt pValue, final int vMin, final int vMax, final float speed, final String format, final int variant, final int steps) { + return nKnob(label, pValue != null ? pValue.getData() : null, vMin, vMax, speed, format, variant, steps); + } + + private static native boolean nKnob(String obj_label, int[] obj_pValue, int vMin, int vMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto _result = ImGuiKnobs::KnobInt(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + return _result; + */ + + private static native boolean nKnob(String obj_label, int[] obj_pValue, int vMin, int vMax, float speed); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto _result = ImGuiKnobs::KnobInt(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + return _result; + */ + + private static native boolean nKnob(String obj_label, int[] obj_pValue, int vMin, int vMax, float speed, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGuiKnobs::KnobInt(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nKnob(String obj_label, int[] obj_pValue, int vMin, int vMax, float speed, String obj_format, int variant); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGuiKnobs::KnobInt(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, format, variant); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nKnob(String obj_label, int[] obj_pValue, int vMin, int vMax, float speed, String obj_format, int variant, float size); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGuiKnobs::KnobInt(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, format, variant, size); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nKnob(String obj_label, int[] obj_pValue, int vMin, int vMax, float speed, String obj_format, int variant, float size, int flags); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGuiKnobs::KnobInt(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, format, variant, size, flags); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nKnob(String obj_label, int[] obj_pValue, int vMin, int vMax, float speed, String obj_format, int variant, float size, int flags, int steps); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGuiKnobs::KnobInt(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, format, variant, size, flags, steps); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nKnob(String obj_label, int[] obj_pValue, int vMin, int vMax, String obj_format, int variant, float size, int flags, int steps); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGuiKnobs::KnobInt(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, 0, format, variant, size, flags, steps); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nKnob(String obj_label, int[] obj_pValue, int vMin, int vMax, int variant, float size, int flags, int steps); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto _result = ImGuiKnobs::KnobInt(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, 0, NULL, variant, size, flags, steps); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + return _result; + */ + + private static native boolean nKnob(String obj_label, int[] obj_pValue, int vMin, int vMax, float speed, int variant, float size, int flags, int steps); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto _result = ImGuiKnobs::KnobInt(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, NULL, variant, size, flags, steps); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + return _result; + */ + + private static native boolean nKnob(String obj_label, int[] obj_pValue, int vMin, int vMax, float speed, float size, int flags, int steps); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto _result = ImGuiKnobs::KnobInt(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, NULL, ImGuiKnobVariant_Tick, size, flags, steps); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + return _result; + */ + + private static native boolean nKnob(String obj_label, int[] obj_pValue, int vMin, int vMax, float speed, int flags, int steps); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto _result = ImGuiKnobs::KnobInt(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, NULL, ImGuiKnobVariant_Tick, 0, flags, steps); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + return _result; + */ + + private static native boolean nKnob(String obj_label, int[] obj_pValue, int vMin, int vMax, float speed, int steps); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto _result = ImGuiKnobs::KnobInt(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, NULL, ImGuiKnobVariant_Tick, 0, 0, steps); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + return _result; + */ + + private static native boolean nKnob(String obj_label, int[] obj_pValue, int vMin, int vMax, float speed, String obj_format, float size, int flags, int steps); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGuiKnobs::KnobInt(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, format, ImGuiKnobVariant_Tick, size, flags, steps); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nKnob(String obj_label, int[] obj_pValue, int vMin, int vMax, float speed, String obj_format, int variant, int flags, int steps); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGuiKnobs::KnobInt(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, format, variant, 0, flags, steps); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nKnob(String obj_label, int[] obj_pValue, int vMin, int vMax, float speed, String obj_format, int variant, int steps); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto pValue = obj_pValue == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pValue, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImGuiKnobs::KnobInt(label, (pValue != NULL ? &pValue[0] : NULL), vMin, vMax, speed, format, variant, 0, 0, steps); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (pValue != NULL) env->ReleasePrimitiveArrayCritical(obj_pValue, pValue, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ +} diff --git a/imgui-binding/src/generated/java/imgui/extension/imguiknobs/flag/ImGuiKnobFlags.java b/imgui-binding/src/generated/java/imgui/extension/imguiknobs/flag/ImGuiKnobFlags.java new file mode 100644 index 0000000..89dc7ce --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/imguiknobs/flag/ImGuiKnobFlags.java @@ -0,0 +1,29 @@ +package imgui.extension.imguiknobs.flag; + + +public final class ImGuiKnobFlags { + private ImGuiKnobFlags() { + } + + public static final int None = 0; + + /** + * Definition: {@code 1 << 0} + */ + public static final int NoTitle = 1; + + /** + * Definition: {@code 1 << 1} + */ + public static final int NoInput = 2; + + /** + * Definition: {@code 1 << 2} + */ + public static final int ValueTooltip = 4; + + /** + * Definition: {@code 1 << 3} + */ + public static final int DragHorizontal = 8; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/imguiknobs/flag/ImGuiKnobVariant.java b/imgui-binding/src/generated/java/imgui/extension/imguiknobs/flag/ImGuiKnobVariant.java new file mode 100644 index 0000000..8714a63 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/imguiknobs/flag/ImGuiKnobVariant.java @@ -0,0 +1,42 @@ +package imgui.extension.imguiknobs.flag; + + +public final class ImGuiKnobVariant { + private ImGuiKnobVariant() { + } + + /** + * Definition: {@code 1 << 0} + */ + public static final int Tick = 1; + + /** + * Definition: {@code 1 << 1} + */ + public static final int Dot = 2; + + /** + * Definition: {@code 1 << 2} + */ + public static final int Wiper = 4; + + /** + * Definition: {@code 1 << 3} + */ + public static final int WiperOnly = 8; + + /** + * Definition: {@code 1 << 4} + */ + public static final int WiperDot = 16; + + /** + * Definition: {@code 1 << 5} + */ + public static final int Stepped = 32; + + /** + * Definition: {@code 1 << 6} + */ + public static final int Space = 64; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/imguizmo/ImGuizmo.java b/imgui-binding/src/generated/java/imgui/extension/imguizmo/ImGuizmo.java new file mode 100644 index 0000000..19cb251 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/imguizmo/ImGuizmo.java @@ -0,0 +1,542 @@ +package imgui.extension.imguizmo; + +import imgui.ImDrawList; +import imgui.ImVec2; +import imgui.internal.ImGuiContext; + +public final class ImGuizmo { + private ImGuizmo() { + } + + /*JNI + #include "_imguizmo.h" + */ + + /** + * Call inside your own window and before Manipulate() in order to draw gizmo to that window. + * Or pass a specific ImDrawList to draw to (e.g. ImGui::GetForegroundDrawList()). + */ + public static void setDrawList() { + nSetDrawList(); + } + + /** + * Call inside your own window and before Manipulate() in order to draw gizmo to that window. + * Or pass a specific ImDrawList to draw to (e.g. ImGui::GetForegroundDrawList()). + */ + public static void setDrawList(final ImDrawList drawList) { + nSetDrawList(drawList.ptr); + } + + private static native void nSetDrawList(); /* + ImGuizmo::SetDrawlist(); + */ + + private static native void nSetDrawList(long drawList); /* + ImGuizmo::SetDrawlist(reinterpret_cast(drawList)); + */ + + /** + * Call BeginFrame right after ImGui_XXXX_NewFrame(); + */ + public static void beginFrame() { + nBeginFrame(); + } + + private static native void nBeginFrame(); /* + ImGuizmo::BeginFrame(); + */ + + /** + * This is necessary because when imguizmo is compiled into a dll, and imgui into another + * Globals are not shared between them. + * More details at https://stackoverflow.com/questions/19373061/what-happens-to-global-and-static-variables-in-a-shared-library-when-it-is-dynam + * Expose method to set imgui context + */ + public static void setImGuiContext(final ImGuiContext ctx) { + nSetImGuiContext(ctx.ptr); + } + + private static native void nSetImGuiContext(long ctx); /* + ImGuizmo::SetImGuiContext(reinterpret_cast(ctx)); + */ + + /** + * Return true if mouse cursor is over any gizmo control (axis, plan or screen component) + */ + public static boolean isOver() { + return nIsOver(); + } + + private static native boolean nIsOver(); /* + return ImGuizmo::IsOver(); + */ + + /** + * Return true if mouse IsOver or if the gizmo is in moving state + */ + public static boolean isUsing() { + return nIsUsing(); + } + + private static native boolean nIsUsing(); /* + return ImGuizmo::IsUsing(); + */ + + /** + * Enable/disable the gizmo. Stay in the state until next call to Enable. + * Gizmo is rendered with gray half transparent color when disabled + */ + public static void enable(final boolean enable) { + nEnable(enable); + } + + private static native void nEnable(boolean enable); /* + ImGuizmo::Enable(enable); + */ + + /** + * Helper function for manually editing Translation/Rotation/Scale with an input float. + * Translation, Rotation and Scale float points to 3 floats each. + * Angles are in degrees (more suitable for human editing). + * + * @param matrix + * the model matrix + * @param translation + * the model translation + * @param rotation + * the model rotation + * @param scale + * the model scale + * @see Reference Page + */ + public static void decomposeMatrixToComponents(final float[] matrix, final float[] translation, final float[] rotation, final float[] scale) { + nDecomposeMatrixToComponents(matrix, translation, rotation, scale); + } + + private static native void nDecomposeMatrixToComponents(float[] matrix, float[] translation, float[] rotation, float[] scale); /*MANUAL + auto matrix = obj_matrix == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_matrix, JNI_FALSE); + auto translation = obj_translation == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_translation, JNI_FALSE); + auto rotation = obj_rotation == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_rotation, JNI_FALSE); + auto scale = obj_scale == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_scale, JNI_FALSE); + ImGuizmo::DecomposeMatrixToComponents(&matrix[0], &translation[0], &rotation[0], &scale[0]); + if (matrix != NULL) env->ReleasePrimitiveArrayCritical(obj_matrix, matrix, JNI_FALSE); + if (translation != NULL) env->ReleasePrimitiveArrayCritical(obj_translation, translation, JNI_FALSE); + if (rotation != NULL) env->ReleasePrimitiveArrayCritical(obj_rotation, rotation, JNI_FALSE); + if (scale != NULL) env->ReleasePrimitiveArrayCritical(obj_scale, scale, JNI_FALSE); + */ + + /** + * Helper function for manually editing Translation/Rotation/Scale with an input float. + * Translation, Rotation and Scale float points to 3 floats each. + * Angles are in degrees (more suitable for human editing). + * + * @param translation + * the model translation + * @param rotation + * the model rotation + * @param scale + * the model scale + * @param matrix + * the model matrix + * @see Reference Page + */ + public static void recomposeMatrixFromComponents(final float[] translation, final float[] rotation, final float[] scale, final float[] matrix) { + nRecomposeMatrixFromComponents(translation, rotation, scale, matrix); + } + + private static native void nRecomposeMatrixFromComponents(float[] translation, float[] rotation, float[] scale, float[] matrix); /*MANUAL + auto translation = obj_translation == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_translation, JNI_FALSE); + auto rotation = obj_rotation == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_rotation, JNI_FALSE); + auto scale = obj_scale == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_scale, JNI_FALSE); + auto matrix = obj_matrix == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_matrix, JNI_FALSE); + ImGuizmo::RecomposeMatrixFromComponents(&translation[0], &rotation[0], &scale[0], &matrix[0]); + if (translation != NULL) env->ReleasePrimitiveArrayCritical(obj_translation, translation, JNI_FALSE); + if (rotation != NULL) env->ReleasePrimitiveArrayCritical(obj_rotation, rotation, JNI_FALSE); + if (scale != NULL) env->ReleasePrimitiveArrayCritical(obj_scale, scale, JNI_FALSE); + if (matrix != NULL) env->ReleasePrimitiveArrayCritical(obj_matrix, matrix, JNI_FALSE); + */ + + /** + * This will set the rect position. + * + * @param x + * x coordinate of the rectangle + * @param y + * y coordinate of the rectangle + * @param width + * width of the rectangle + * @param height + * height of the rectangle + */ + public static void setRect(final float x, final float y, final float width, final float height) { + nSetRect(x, y, width, height); + } + + private static native void nSetRect(float x, float y, float width, float height); /* + ImGuizmo::SetRect(x, y, width, height); + */ + + /** + * Making sure if we're set to ortho or not. + */ + public static void setOrthographic(final boolean isOrthographic) { + nSetOrthographic(isOrthographic); + } + + private static native void nSetOrthographic(boolean isOrthographic); /* + ImGuizmo::SetOrthographic(isOrthographic); + */ + + /** + * Drawing an arbitrary cube in the world. + * + * @param view + * target camera view + * @param projection + * target camera projection + * @param matrices + * cube matrices (max. 4 cubes allowed) + */ + public static void drawCubes(final float[] view, final float[] projection, final float[] matrices) { + nDrawCubes(view, projection, matrices); + } + + private static native void nDrawCubes(float[] view, float[] projection, float[] matrices); /*MANUAL + auto view = obj_view == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_view, JNI_FALSE); + auto projection = obj_projection == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_projection, JNI_FALSE); + auto matrices = obj_matrices == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_matrices, JNI_FALSE); + ImGuizmo::DrawCubes(&view[0], &projection[0], &matrices[0], (int)(env->GetArrayLength(obj_matrices)/16)); + if (view != NULL) env->ReleasePrimitiveArrayCritical(obj_view, view, JNI_FALSE); + if (projection != NULL) env->ReleasePrimitiveArrayCritical(obj_projection, projection, JNI_FALSE); + if (matrices != NULL) env->ReleasePrimitiveArrayCritical(obj_matrices, matrices, JNI_FALSE); + */ + + /** + * Drawing an arbitrary cube in the world. + * + * @param view + * target camera view + * @param projection + * target camera projection + * @param matrices + * cube matrices (max. 4 cubes allowed) + * @param matrixCount + * number of matrices + */ + public static void drawCubes(final float[] view, final float[] projection, final float[] matrices, final int matrixCount) { + nDrawCubes(view, projection, matrices, matrixCount); + } + + private static native void nDrawCubes(float[] view, float[] projection, float[] matrices, int matrixCount); /*MANUAL + auto view = obj_view == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_view, JNI_FALSE); + auto projection = obj_projection == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_projection, JNI_FALSE); + auto matrices = obj_matrices == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_matrices, JNI_FALSE); + ImGuizmo::DrawCubes(&view[0], &projection[0], &matrices[0], matrixCount); + if (view != NULL) env->ReleasePrimitiveArrayCritical(obj_view, view, JNI_FALSE); + if (projection != NULL) env->ReleasePrimitiveArrayCritical(obj_projection, projection, JNI_FALSE); + if (matrices != NULL) env->ReleasePrimitiveArrayCritical(obj_matrices, matrices, JNI_FALSE); + */ + + /** + * Drawing an arbitrary cube in the world. + * + * @param view target camera view + * @param projection target camera projection + * @param matrices cube matrices (max. 4 cubes allowed) + */ + public static void drawCubes(final float[] view, final float[] projection, final float[]... matrices) { + if (matrices.length > 4) { + throw new IllegalArgumentException("Only up to 4 cubes matrices is supported"); + } + + final float[] cubeMatrices = new float[matrices.length * 16]; + for (int i = 0, cubeMatricesLength = matrices.length; i < cubeMatricesLength; i++) { + final float[] cubeMatrix = matrices[i]; + System.arraycopy(cubeMatrix, 0, cubeMatrices, i * cubeMatrix.length, cubeMatrix.length); + } + + drawCubes(view, projection, cubeMatrices, cubeMatrices.length); + } + + /** + * Drawing a grid to the world (should only be used for debugging purposes). + * + * @param view + * target camera view + * @param projection + * target camera projection + * @param matrix + * grid matrix + * @param gridSize + * grid size + */ + public static void drawGrid(final float[] view, final float[] projection, final float[] matrix, final float gridSize) { + nDrawGrid(view, projection, matrix, gridSize); + } + + private static native void nDrawGrid(float[] view, float[] projection, float[] matrix, float gridSize); /*MANUAL + auto view = obj_view == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_view, JNI_FALSE); + auto projection = obj_projection == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_projection, JNI_FALSE); + auto matrix = obj_matrix == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_matrix, JNI_FALSE); + ImGuizmo::DrawGrid(&view[0], &projection[0], &matrix[0], gridSize); + if (view != NULL) env->ReleasePrimitiveArrayCritical(obj_view, view, JNI_FALSE); + if (projection != NULL) env->ReleasePrimitiveArrayCritical(obj_projection, projection, JNI_FALSE); + if (matrix != NULL) env->ReleasePrimitiveArrayCritical(obj_matrix, matrix, JNI_FALSE); + */ + + /** + * Manipulating the given model matrix with delta matrix + * + * @param view + * target camera view + * @param projection + * target camera projection + * @param operation + * target operation + * @param mode + * target mode + * @param matrix + * model matrix + */ + public static void manipulate(final float[] view, final float[] projection, final int operation, final int mode, final float[] matrix) { + nManipulate(view, projection, operation, mode, matrix); + } + + /** + * Manipulating the given model matrix with delta matrix + * + * @param view + * target camera view + * @param projection + * target camera projection + * @param operation + * target operation + * @param mode + * target mode + * @param matrix + * model matrix + * @param deltaMatrix + * delta matrix + */ + public static void manipulate(final float[] view, final float[] projection, final int operation, final int mode, final float[] matrix, final float[] deltaMatrix) { + nManipulate(view, projection, operation, mode, matrix, deltaMatrix); + } + + /** + * Manipulating the given model matrix with delta matrix + * + * @param view + * target camera view + * @param projection + * target camera projection + * @param operation + * target operation + * @param mode + * target mode + * @param matrix + * model matrix + * @param deltaMatrix + * delta matrix + * @param snap + * snap value + */ + public static void manipulate(final float[] view, final float[] projection, final int operation, final int mode, final float[] matrix, final float[] deltaMatrix, final float[] snap) { + nManipulate(view, projection, operation, mode, matrix, deltaMatrix, snap); + } + + /** + * Manipulating the given model matrix with delta matrix + * + * @param view + * target camera view + * @param projection + * target camera projection + * @param operation + * target operation + * @param mode + * target mode + * @param matrix + * model matrix + * @param deltaMatrix + * delta matrix + * @param snap + * snap value + * @param localBounds + * bounds value + */ + public static void manipulate(final float[] view, final float[] projection, final int operation, final int mode, final float[] matrix, final float[] deltaMatrix, final float[] snap, final float[] localBounds) { + nManipulate(view, projection, operation, mode, matrix, deltaMatrix, snap, localBounds); + } + + /** + * Manipulating the given model matrix with delta matrix + * + * @param view + * target camera view + * @param projection + * target camera projection + * @param operation + * target operation + * @param mode + * target mode + * @param matrix + * model matrix + * @param deltaMatrix + * delta matrix + * @param snap + * snap value + * @param localBounds + * bounds value + * @param boundsSnap + * bounds snap value + */ + public static void manipulate(final float[] view, final float[] projection, final int operation, final int mode, final float[] matrix, final float[] deltaMatrix, final float[] snap, final float[] localBounds, final float[] boundsSnap) { + nManipulate(view, projection, operation, mode, matrix, deltaMatrix, snap, localBounds, boundsSnap); + } + + private static native void nManipulate(float[] view, float[] projection, int operation, int mode, float[] matrix); /*MANUAL + auto view = obj_view == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_view, JNI_FALSE); + auto projection = obj_projection == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_projection, JNI_FALSE); + auto matrix = obj_matrix == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_matrix, JNI_FALSE); + ImGuizmo::Manipulate(&view[0], &projection[0], static_cast(operation), static_cast(mode), &matrix[0]); + if (view != NULL) env->ReleasePrimitiveArrayCritical(obj_view, view, JNI_FALSE); + if (projection != NULL) env->ReleasePrimitiveArrayCritical(obj_projection, projection, JNI_FALSE); + if (matrix != NULL) env->ReleasePrimitiveArrayCritical(obj_matrix, matrix, JNI_FALSE); + */ + + private static native void nManipulate(float[] view, float[] projection, int operation, int mode, float[] matrix, float[] deltaMatrix); /*MANUAL + auto view = obj_view == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_view, JNI_FALSE); + auto projection = obj_projection == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_projection, JNI_FALSE); + auto matrix = obj_matrix == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_matrix, JNI_FALSE); + auto deltaMatrix = obj_deltaMatrix == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_deltaMatrix, JNI_FALSE); + ImGuizmo::Manipulate(&view[0], &projection[0], static_cast(operation), static_cast(mode), &matrix[0], &deltaMatrix[0]); + if (view != NULL) env->ReleasePrimitiveArrayCritical(obj_view, view, JNI_FALSE); + if (projection != NULL) env->ReleasePrimitiveArrayCritical(obj_projection, projection, JNI_FALSE); + if (matrix != NULL) env->ReleasePrimitiveArrayCritical(obj_matrix, matrix, JNI_FALSE); + if (deltaMatrix != NULL) env->ReleasePrimitiveArrayCritical(obj_deltaMatrix, deltaMatrix, JNI_FALSE); + */ + + private static native void nManipulate(float[] view, float[] projection, int operation, int mode, float[] matrix, float[] deltaMatrix, float[] snap); /*MANUAL + auto view = obj_view == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_view, JNI_FALSE); + auto projection = obj_projection == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_projection, JNI_FALSE); + auto matrix = obj_matrix == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_matrix, JNI_FALSE); + auto deltaMatrix = obj_deltaMatrix == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_deltaMatrix, JNI_FALSE); + auto snap = obj_snap == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_snap, JNI_FALSE); + ImGuizmo::Manipulate(&view[0], &projection[0], static_cast(operation), static_cast(mode), &matrix[0], &deltaMatrix[0], &snap[0]); + if (view != NULL) env->ReleasePrimitiveArrayCritical(obj_view, view, JNI_FALSE); + if (projection != NULL) env->ReleasePrimitiveArrayCritical(obj_projection, projection, JNI_FALSE); + if (matrix != NULL) env->ReleasePrimitiveArrayCritical(obj_matrix, matrix, JNI_FALSE); + if (deltaMatrix != NULL) env->ReleasePrimitiveArrayCritical(obj_deltaMatrix, deltaMatrix, JNI_FALSE); + if (snap != NULL) env->ReleasePrimitiveArrayCritical(obj_snap, snap, JNI_FALSE); + */ + + private static native void nManipulate(float[] view, float[] projection, int operation, int mode, float[] matrix, float[] deltaMatrix, float[] snap, float[] localBounds); /*MANUAL + auto view = obj_view == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_view, JNI_FALSE); + auto projection = obj_projection == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_projection, JNI_FALSE); + auto matrix = obj_matrix == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_matrix, JNI_FALSE); + auto deltaMatrix = obj_deltaMatrix == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_deltaMatrix, JNI_FALSE); + auto snap = obj_snap == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_snap, JNI_FALSE); + auto localBounds = obj_localBounds == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_localBounds, JNI_FALSE); + ImGuizmo::Manipulate(&view[0], &projection[0], static_cast(operation), static_cast(mode), &matrix[0], &deltaMatrix[0], &snap[0], &localBounds[0]); + if (view != NULL) env->ReleasePrimitiveArrayCritical(obj_view, view, JNI_FALSE); + if (projection != NULL) env->ReleasePrimitiveArrayCritical(obj_projection, projection, JNI_FALSE); + if (matrix != NULL) env->ReleasePrimitiveArrayCritical(obj_matrix, matrix, JNI_FALSE); + if (deltaMatrix != NULL) env->ReleasePrimitiveArrayCritical(obj_deltaMatrix, deltaMatrix, JNI_FALSE); + if (snap != NULL) env->ReleasePrimitiveArrayCritical(obj_snap, snap, JNI_FALSE); + if (localBounds != NULL) env->ReleasePrimitiveArrayCritical(obj_localBounds, localBounds, JNI_FALSE); + */ + + private static native void nManipulate(float[] view, float[] projection, int operation, int mode, float[] matrix, float[] deltaMatrix, float[] snap, float[] localBounds, float[] boundsSnap); /*MANUAL + auto view = obj_view == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_view, JNI_FALSE); + auto projection = obj_projection == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_projection, JNI_FALSE); + auto matrix = obj_matrix == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_matrix, JNI_FALSE); + auto deltaMatrix = obj_deltaMatrix == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_deltaMatrix, JNI_FALSE); + auto snap = obj_snap == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_snap, JNI_FALSE); + auto localBounds = obj_localBounds == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_localBounds, JNI_FALSE); + auto boundsSnap = obj_boundsSnap == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_boundsSnap, JNI_FALSE); + ImGuizmo::Manipulate(&view[0], &projection[0], static_cast(operation), static_cast(mode), &matrix[0], &deltaMatrix[0], &snap[0], &localBounds[0], &boundsSnap[0]); + if (view != NULL) env->ReleasePrimitiveArrayCritical(obj_view, view, JNI_FALSE); + if (projection != NULL) env->ReleasePrimitiveArrayCritical(obj_projection, projection, JNI_FALSE); + if (matrix != NULL) env->ReleasePrimitiveArrayCritical(obj_matrix, matrix, JNI_FALSE); + if (deltaMatrix != NULL) env->ReleasePrimitiveArrayCritical(obj_deltaMatrix, deltaMatrix, JNI_FALSE); + if (snap != NULL) env->ReleasePrimitiveArrayCritical(obj_snap, snap, JNI_FALSE); + if (localBounds != NULL) env->ReleasePrimitiveArrayCritical(obj_localBounds, localBounds, JNI_FALSE); + if (boundsSnap != NULL) env->ReleasePrimitiveArrayCritical(obj_boundsSnap, boundsSnap, JNI_FALSE); + */ + + /** + * Manipulating the view + * + * @param view + * target camera view + * @param length + * camera distance/length + */ + public static void viewManipulate(final float[] view, final float length, final ImVec2 position, final ImVec2 size, final int backgroundColor) { + nViewManipulate(view, length, position.x, position.y, size.x, size.y, backgroundColor); + } + + /** + * Manipulating the view + * + * @param view + * target camera view + * @param length + * camera distance/length + */ + public static void viewManipulate(final float[] view, final float length, final float positionX, final float positionY, final float sizeX, final float sizeY, final int backgroundColor) { + nViewManipulate(view, length, positionX, positionY, sizeX, sizeY, backgroundColor); + } + + private static native void nViewManipulate(float[] view, float length, float positionX, float positionY, float sizeX, float sizeY, int backgroundColor); /*MANUAL + auto view = obj_view == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_view, JNI_FALSE); + ImVec2 position = ImVec2(positionX, positionY); + ImVec2 size = ImVec2(sizeX, sizeY); + ImGuizmo::ViewManipulate(&view[0], length, position, size, backgroundColor); + if (view != NULL) env->ReleasePrimitiveArrayCritical(obj_view, view, JNI_FALSE); + */ + + /** + * This will update the current id + */ + public static void setID(final int id) { + nSetID(id); + } + + private static native void nSetID(int id); /* + ImGuizmo::SetID(id); + */ + + /** + * Return true if the cursor is over the operation's gizmo + */ + public static boolean isOver(final int operation) { + return nIsOver(operation); + } + + private static native boolean nIsOver(int operation); /* + return ImGuizmo::IsOver(static_cast(operation)); + */ + + public static void setGizmoSizeClipSpace(final float value) { + nSetGizmoSizeClipSpace(value); + } + + private static native void nSetGizmoSizeClipSpace(float value); /* + ImGuizmo::SetGizmoSizeClipSpace(value); + */ + + /** + * Allow axis to flip. + * When true (default), the guizmo axis flip for better visibility. + * When false, they always stay along the positive world/local axis. + */ + public static void allowAxisFlip(final boolean value) { + nAllowAxisFlip(value); + } + + private static native void nAllowAxisFlip(boolean value); /* + ImGuizmo::AllowAxisFlip(value); + */ +} diff --git a/imgui-binding/src/generated/java/imgui/extension/imguizmo/flag/Mode.java b/imgui-binding/src/generated/java/imgui/extension/imguizmo/flag/Mode.java new file mode 100644 index 0000000..b3efa45 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/imguizmo/flag/Mode.java @@ -0,0 +1,11 @@ +package imgui.extension.imguizmo.flag; + + +public final class Mode { + private Mode() { + } + + public static final int LOCAL = 0; + + public static final int WORLD = 1; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/imguizmo/flag/Operation.java b/imgui-binding/src/generated/java/imgui/extension/imguizmo/flag/Operation.java new file mode 100644 index 0000000..df9ed6a --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/imguizmo/flag/Operation.java @@ -0,0 +1,82 @@ +package imgui.extension.imguizmo.flag; + + +/** + * Needs view and projection matrices. + * Matrix parameter is the source matrix (where will be gizmo be drawn) and might be transformed by the function. Return deltaMatrix is optional. + * Translation is applied in world space. + */ +public final class Operation { + private Operation() { + } + + /** + * Definition: {@code (1u << 0)} + */ + public static final int TRANSLATE_X = 1; + + /** + * Definition: {@code (1u << 1)} + */ + public static final int TRANSLATE_Y = 2; + + /** + * Definition: {@code (1u << 2)} + */ + public static final int TRANSLATE_Z = 4; + + /** + * Definition: {@code (1u << 3)} + */ + public static final int ROTATE_X = 8; + + /** + * Definition: {@code (1u << 4)} + */ + public static final int ROTATE_Y = 16; + + /** + * Definition: {@code (1u << 5)} + */ + public static final int ROTATE_Z = 32; + + /** + * Definition: {@code (1u << 6)} + */ + public static final int ROTATE_SCREEN = 64; + + /** + * Definition: {@code (1u << 7)} + */ + public static final int SCALE_X = 128; + + /** + * Definition: {@code (1u << 8)} + */ + public static final int SCALE_Y = 256; + + /** + * Definition: {@code (1u << 9)} + */ + public static final int SCALE_Z = 512; + + /** + * Definition: {@code (1u << 10)} + */ + public static final int BOUNDS = 1024; + + /** + * Definition: {@code TRANSLATE_X | TRANSLATE_Y | TRANSLATE_Z} + */ + public static final int TRANSLATE = 7; + + /** + * Definition: {@code ROTATE_X | ROTATE_Y | ROTATE_Z | ROTATE_SCREEN} + */ + public static final int ROTATE = 120; + + /** + * Definition: {@code SCALE_X | SCALE_Y | SCALE_Z} + */ + public static final int SCALE = 896; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodes.java b/imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodes.java new file mode 100644 index 0000000..99036a7 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodes.java @@ -0,0 +1,1079 @@ +package imgui.extension.imnodes; + +import imgui.ImVec2; +import imgui.internal.ImGuiContext; +import imgui.type.ImBoolean; +import imgui.type.ImInt; + +/** + * Bindings for Imnodes (https://github.com/Nelarius/imnodes/) + * Original library author - Johann Muszynski (https://github.com/Nelarius) + *

+ * Refer to the library's Github page for examples and support + */ +public final class ImNodes { + private ImNodes() { + } + + /*JNI + #include "_imnodes.h" + */ + + // An editor context corresponds to a set of nodes in a single workspace (created with a single + // Begin/EndNodeEditor pair) + // + // By default, the library creates an editor context behind the scenes, so using any of the ImNodes + // functions doesn't require you to explicitly create a context. + + public static void setImGuiContext(final ImGuiContext ctx) { + nSetImGuiContext(ctx.ptr); + } + + private static native void nSetImGuiContext(long ctx); /* + ImNodes::SetImGuiContext(reinterpret_cast(ctx)); + */ + + public static ImNodesContext createContext() { + return new ImNodesContext(nCreateContext()); + } + + private static native long nCreateContext(); /* + return (intptr_t)ImNodes::CreateContext(); + */ + + public static void destroyContext() { + nDestroyContext(); + } + + public static void destroyContext(final ImNodesContext ctx) { + nDestroyContext(ctx.ptr); + } + + private static native void nDestroyContext(); /* + ImNodes::DestroyContext(); + */ + + private static native void nDestroyContext(long ctx); /* + ImNodes::DestroyContext(reinterpret_cast(ctx)); + */ + + public static ImNodesContext getCurrentContext() { + return new ImNodesContext(nGetCurrentContext()); + } + + private static native long nGetCurrentContext(); /* + return (intptr_t)ImNodes::GetCurrentContext(); + */ + + public static void setCurrentContext(final ImNodesContext ctx) { + nSetCurrentContext(ctx.ptr); + } + + private static native void nSetCurrentContext(long ctx); /* + ImNodes::SetCurrentContext(reinterpret_cast(ctx)); + */ + + public static ImNodesEditorContext editorContextCreate() { + return new ImNodesEditorContext(nEditorContextCreate()); + } + + private static native long nEditorContextCreate(); /* + return (intptr_t)ImNodes::EditorContextCreate(); + */ + + public static void editorContextFree(final ImNodesEditorContext context) { + nEditorContextFree(context.ptr); + } + + private static native void nEditorContextFree(long context); /* + ImNodes::EditorContextFree(reinterpret_cast(context)); + */ + + public static void editorContextSet(final ImNodesEditorContext context) { + nEditorContextSet(context.ptr); + } + + private static native void nEditorContextSet(long context); /* + ImNodes::EditorContextSet(reinterpret_cast(context)); + */ + + public static ImVec2 editorContextGetPanning() { + final ImVec2 dst = new ImVec2(); + nEditorContextGetPanning(dst); + return dst; + } + + public static float editorContextGetPanningX() { + return nEditorContextGetPanningX(); + } + + public static float editorContextGetPanningY() { + return nEditorContextGetPanningY(); + } + + public static void editorContextGetPanning(final ImVec2 dst) { + nEditorContextGetPanning(dst); + } + + private static native void nEditorContextGetPanning(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ImNodes::EditorContextGetPanning(), dst); + */ + + private static native float nEditorContextGetPanningX(); /* + return ImNodes::EditorContextGetPanning().x; + */ + + private static native float nEditorContextGetPanningY(); /* + return ImNodes::EditorContextGetPanning().y; + */ + + public static void editorContextResetPanning(final ImVec2 pos) { + nEditorContextResetPanning(pos.x, pos.y); + } + + public static void editorContextResetPanning(final float posX, final float posY) { + nEditorContextResetPanning(posX, posY); + } + + private static native void nEditorContextResetPanning(float posX, float posY); /*MANUAL + ImVec2 pos = ImVec2(posX, posY); + ImNodes::EditorContextResetPanning(pos); + */ + + public static void editorContextMoveToNode(final int nodeId) { + nEditorContextMoveToNode(nodeId); + } + + private static native void nEditorContextMoveToNode(int nodeId); /* + ImNodes::EditorContextMoveToNode(nodeId); + */ + + private static final ImNodesIO _GETIO_1 = new ImNodesIO(0); + + public static ImNodesIO getIO() { + _GETIO_1.ptr = nGetIO(); + return _GETIO_1; + } + + private static native long nGetIO(); /* + return (intptr_t)&ImNodes::GetIO(); + */ + + private static final ImNodesStyle _GETSTYLE_1 = new ImNodesStyle(0); + + /** + * Returns the global style struct. See the struct declaration for default values. + */ + public static ImNodesStyle getStyle() { + _GETSTYLE_1.ptr = nGetStyle(); + return _GETSTYLE_1; + } + + private static native long nGetStyle(); /* + return (intptr_t)&ImNodes::GetStyle(); + */ + + // Style presets matching the dear imgui styles of the same name. + + public static void styleColorsDark() { + nStyleColorsDark(); + } + + private static native void nStyleColorsDark(); /* + ImNodes::StyleColorsDark(); + */ + + public static void styleColorsClassic() { + nStyleColorsClassic(); + } + + private static native void nStyleColorsClassic(); /* + ImNodes::StyleColorsClassic(); + */ + + public static void styleColorsLight() { + nStyleColorsLight(); + } + + private static native void nStyleColorsLight(); /* + ImNodes::StyleColorsLight(); + */ + + /** + * The top-level function call. Call this before calling BeginNode/EndNode. Calling this function + * will result the node editor grid workspace being rendered. + */ + public static void beginNodeEditor() { + nBeginNodeEditor(); + } + + private static native void nBeginNodeEditor(); /* + ImNodes::BeginNodeEditor(); + */ + + public static void endNodeEditor() { + nEndNodeEditor(); + } + + private static native void nEndNodeEditor(); /* + ImNodes::EndNodeEditor(); + */ + + /** + * Add a navigable minimap to the editor; call before EndNodeEditor after all nodes and links have been specified + * // TODO: add callback + */ + public static void miniMap() { + nMiniMap(); + } + + /** + * Add a navigable minimap to the editor; call before EndNodeEditor after all nodes and links have been specified + * // TODO: add callback + */ + public static void miniMap(final float miniMapSizeFraction) { + nMiniMap(miniMapSizeFraction); + } + + /** + * Add a navigable minimap to the editor; call before EndNodeEditor after all nodes and links have been specified + * // TODO: add callback + */ + public static void miniMap(final float miniMapSizeFraction, final int miniMapLocation) { + nMiniMap(miniMapSizeFraction, miniMapLocation); + } + + private static native void nMiniMap(); /* + ImNodes::MiniMap(); + */ + + private static native void nMiniMap(float miniMapSizeFraction); /* + ImNodes::MiniMap(miniMapSizeFraction); + */ + + private static native void nMiniMap(float miniMapSizeFraction, int miniMapLocation); /* + ImNodes::MiniMap(miniMapSizeFraction, static_cast(miniMapLocation)); + */ + + /** + * Use PushColorStyle and PopColorStyle to modify ImNodesColorStyle mid-frame. + */ + public static void pushColorStyle(final int item, final int color) { + nPushColorStyle(item, color); + } + + private static native void nPushColorStyle(int item, int color); /* + ImNodes::PushColorStyle(static_cast(item), color); + */ + + public static void popColorStyle() { + nPopColorStyle(); + } + + private static native void nPopColorStyle(); /* + ImNodes::PopColorStyle(); + */ + + public static void pushStyleVar(final int styleItem, final float value) { + nPushStyleVar(styleItem, value); + } + + private static native void nPushStyleVar(int styleItem, float value); /* + ImNodes::PushStyleVar(static_cast(styleItem), value); + */ + + public static void pushStyleVar(final int styleItem, final ImVec2 value) { + nPushStyleVar(styleItem, value.x, value.y); + } + + public static void pushStyleVar(final int styleItem, final float valueX, final float valueY) { + nPushStyleVar(styleItem, valueX, valueY); + } + + private static native void nPushStyleVar(int styleItem, float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + ImNodes::PushStyleVar(static_cast(styleItem), value); + */ + + public static void popStyleVar() { + nPopStyleVar(); + } + + private static native void nPopStyleVar(); /* + ImNodes::PopStyleVar(); + */ + + public static void beginNode(final int node) { + nBeginNode(node); + } + + private static native void nBeginNode(int node); /* + ImNodes::BeginNode(node); + */ + + public static void endNode() { + nEndNode(); + } + + private static native void nEndNode(); /* + ImNodes::EndNode(); + */ + + public static ImVec2 getNodeDimensions(final int id) { + final ImVec2 dst = new ImVec2(); + nGetNodeDimensions(dst, id); + return dst; + } + + public static float getNodeDimensionsX(final int id) { + return nGetNodeDimensionsX(id); + } + + public static float getNodeDimensionsY(final int id) { + return nGetNodeDimensionsY(id); + } + + public static void getNodeDimensions(final ImVec2 dst, final int id) { + nGetNodeDimensions(dst, id); + } + + private static native void nGetNodeDimensions(ImVec2 dst, int id); /* + Jni::ImVec2Cpy(env, ImNodes::GetNodeDimensions(id), dst); + */ + + private static native float nGetNodeDimensionsX(int id); /* + return ImNodes::GetNodeDimensions(id).x; + */ + + private static native float nGetNodeDimensionsY(int id); /* + return ImNodes::GetNodeDimensions(id).y; + */ + + /** + * Place your node title bar content (such as the node title, using ImGui::Text) between the + * following function calls. These functions have to be called before adding any attributes, or the + * layout of the node will be incorrect. + */ + public static void beginNodeTitleBar() { + nBeginNodeTitleBar(); + } + + private static native void nBeginNodeTitleBar(); /* + ImNodes::BeginNodeTitleBar(); + */ + + public static void endNodeTitleBar() { + nEndNodeTitleBar(); + } + + private static native void nEndNodeTitleBar(); /* + ImNodes::EndNodeTitleBar(); + */ + + // Attributes are ImGui UI elements embedded within the node. Attributes can have pin shapes + // rendered next to them. Links are created between pins. + // + // The activity status of an attribute can be checked via the IsAttributeActive() and + // IsAnyAttributeActive() function calls. This is one easy way of checking for any changes made to + // an attribute's drag float UI, for instance. + // + // Each attribute id must be unique. + + /** + * Create an input attribute block. The pin is rendered on left side. + */ + public static void beginInputAttribute(final int id) { + nBeginInputAttribute(id); + } + + /** + * Create an input attribute block. The pin is rendered on left side. + */ + public static void beginInputAttribute(final int id, final int shape) { + nBeginInputAttribute(id, shape); + } + + private static native void nBeginInputAttribute(int id); /* + ImNodes::BeginInputAttribute(id); + */ + + private static native void nBeginInputAttribute(int id, int shape); /* + ImNodes::BeginInputAttribute(id, static_cast(shape)); + */ /* + ImNodes::BeginInputAttribute(id, (ImNodesPinShape)imNodesPinShape); + */ + + public static void endInputAttribute() { + nEndInputAttribute(); + } + + private static native void nEndInputAttribute(); /* + ImNodes::EndInputAttribute(); + */ + + /** + * Create an output attribute block. The pin is rendered on the right side. + */ + public static void beginOutputAttribute(final int id) { + nBeginOutputAttribute(id); + } + + /** + * Create an output attribute block. The pin is rendered on the right side. + */ + public static void beginOutputAttribute(final int id, final int shape) { + nBeginOutputAttribute(id, shape); + } + + private static native void nBeginOutputAttribute(int id); /* + ImNodes::BeginOutputAttribute(id); + */ + + private static native void nBeginOutputAttribute(int id, int shape); /* + ImNodes::BeginOutputAttribute(id, static_cast(shape)); + */ + + public static void endOutputAttribute() { + nEndOutputAttribute(); + } + + private static native void nEndOutputAttribute(); /* + ImNodes::EndOutputAttribute(); + */ + + /** + * Create a static attribute block. A static attribute has no pin, and therefore can't be linked to + * anything. However, you can still use IsAttributeActive() and IsAnyAttributeActive() to check for + * attribute activity. + */ + public static void beginStaticAttribute(final int id) { + nBeginStaticAttribute(id); + } + + private static native void nBeginStaticAttribute(int id); /* + ImNodes::BeginStaticAttribute(id); + */ + + public static void endStaticAttribute() { + nEndStaticAttribute(); + } + + private static native void nEndStaticAttribute(); /* + ImNodes::EndStaticAttribute(); + */ + + /** + * Push a single AttributeFlags value. By default, only AttributeFlags_None is set. + */ + public static void pushAttributeFlag(final int flag) { + nPushAttributeFlag(flag); + } + + private static native void nPushAttributeFlag(int flag); /* + ImNodes::PushAttributeFlag(static_cast(flag)); + */ + + public static void popAttributeFlag() { + nPopAttributeFlag(); + } + + private static native void nPopAttributeFlag(); /* + ImNodes::PopAttributeFlag(); + */ + + /** + * Render a link between attributes. + * The attributes ids used here must match the ids used in Begin(Input|Output)Attribute function + * calls. The order of source and target doesn't make a difference for rendering the link. + */ + public static void link(final int id, final int source, final int target) { + nLink(id, source, target); + } + + private static native void nLink(int id, int source, int target); /* + ImNodes::Link(id, source, target); + */ + + /** + * Enable or disable the ability to click and drag a specific node. + */ + public static void setNodeDraggable(final int nodeId, final boolean draggable) { + nSetNodeDraggable(nodeId, draggable); + } + + private static native void nSetNodeDraggable(int nodeId, boolean draggable); /* + ImNodes::SetNodeDraggable(nodeId, draggable); + */ + + // The node's position can be expressed in three coordinate systems: + // * screen space coordinates, -- the origin is the upper left corner of the window. + // * editor space coordinates -- the origin is the upper left corner of the node editor window + // * grid space coordinates, -- the origin is the upper left corner of the node editor window, + // translated by the current editor panning vector (see EditorContextGetPanning() and + // EditorContextResetPanning()) + // Use the following functions to get and set the node's coordinates in these coordinate systems. + + public static void setNodeScreenSpacePos(final int nodeId, final ImVec2 screenSpacePos) { + nSetNodeScreenSpacePos(nodeId, screenSpacePos.x, screenSpacePos.y); + } + + public static void setNodeScreenSpacePos(final int nodeId, final float screenSpacePosX, final float screenSpacePosY) { + nSetNodeScreenSpacePos(nodeId, screenSpacePosX, screenSpacePosY); + } + + private static native void nSetNodeScreenSpacePos(int nodeId, float screenSpacePosX, float screenSpacePosY); /*MANUAL + ImVec2 screenSpacePos = ImVec2(screenSpacePosX, screenSpacePosY); + ImNodes::SetNodeScreenSpacePos(nodeId, screenSpacePos); + */ + + public static void setNodeEditorSpacePos(final int nodeId, final ImVec2 editorSpacePos) { + nSetNodeEditorSpacePos(nodeId, editorSpacePos.x, editorSpacePos.y); + } + + public static void setNodeEditorSpacePos(final int nodeId, final float editorSpacePosX, final float editorSpacePosY) { + nSetNodeEditorSpacePos(nodeId, editorSpacePosX, editorSpacePosY); + } + + private static native void nSetNodeEditorSpacePos(int nodeId, float editorSpacePosX, float editorSpacePosY); /*MANUAL + ImVec2 editorSpacePos = ImVec2(editorSpacePosX, editorSpacePosY); + ImNodes::SetNodeEditorSpacePos(nodeId, editorSpacePos); + */ + + public static void setNodeGridSpacePos(final int nodeId, final ImVec2 gridPos) { + nSetNodeGridSpacePos(nodeId, gridPos.x, gridPos.y); + } + + public static void setNodeGridSpacePos(final int nodeId, final float gridPosX, final float gridPosY) { + nSetNodeGridSpacePos(nodeId, gridPosX, gridPosY); + } + + private static native void nSetNodeGridSpacePos(int nodeId, float gridPosX, float gridPosY); /*MANUAL + ImVec2 gridPos = ImVec2(gridPosX, gridPosY); + ImNodes::SetNodeGridSpacePos(nodeId, gridPos); + */ + + public static void getNodeScreenSpacePos(final int nodeId) { + nGetNodeScreenSpacePos(nodeId); + } + + private static native void nGetNodeScreenSpacePos(int nodeId); /* + ImNodes::GetNodeScreenSpacePos(nodeId); + */ + + public static void getNodeEditorSpacePos(final int nodeId) { + nGetNodeEditorSpacePos(nodeId); + } + + private static native void nGetNodeEditorSpacePos(int nodeId); /* + ImNodes::GetNodeEditorSpacePos(nodeId); + */ + + public static void getNodeGridSpacePos(final int nodeId) { + nGetNodeGridSpacePos(nodeId); + } + + private static native void nGetNodeGridSpacePos(int nodeId); /* + ImNodes::GetNodeGridSpacePos(nodeId); + */ + + /** + * Returns true if the current node editor canvas is being hovered over by the mouse, and is not + * blocked by any other windows. + */ + public static boolean isEditorHovered() { + return nIsEditorHovered(); + } + + private static native boolean nIsEditorHovered(); /* + return ImNodes::IsEditorHovered(); + */ + + // The following functions return true if a UI element is being hovered over by the mouse cursor. + // Assigns the id of the UI element being hovered over to the function argument. Use these functions + // after EndNodeEditor() has been called. + + public static boolean isNodeHovered(final ImInt nodeId) { + return nIsNodeHovered(nodeId != null ? nodeId.getData() : null); + } + + private static native boolean nIsNodeHovered(int[] obj_nodeId); /*MANUAL + auto nodeId = obj_nodeId == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_nodeId, JNI_FALSE); + auto _result = ImNodes::IsNodeHovered((nodeId != NULL ? &nodeId[0] : NULL)); + if (nodeId != NULL) env->ReleasePrimitiveArrayCritical(obj_nodeId, nodeId, JNI_FALSE); + return _result; + */ + + public static boolean isLinkHovered(final ImInt linkId) { + return nIsLinkHovered(linkId != null ? linkId.getData() : null); + } + + private static native boolean nIsLinkHovered(int[] obj_linkId); /*MANUAL + auto linkId = obj_linkId == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_linkId, JNI_FALSE); + auto _result = ImNodes::IsLinkHovered((linkId != NULL ? &linkId[0] : NULL)); + if (linkId != NULL) env->ReleasePrimitiveArrayCritical(obj_linkId, linkId, JNI_FALSE); + return _result; + */ + + public static boolean isPinHovered(final ImInt attributeId) { + return nIsPinHovered(attributeId != null ? attributeId.getData() : null); + } + + private static native boolean nIsPinHovered(int[] obj_attributeId); /*MANUAL + auto attributeId = obj_attributeId == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_attributeId, JNI_FALSE); + auto _result = ImNodes::IsPinHovered((attributeId != NULL ? &attributeId[0] : NULL)); + if (attributeId != NULL) env->ReleasePrimitiveArrayCritical(obj_attributeId, attributeId, JNI_FALSE); + return _result; + */ + + // Binding notice: getHoveredNode(), getHoveredLink() and getHoveredPin() + // return id of the hovered object. If there is no such object -1 will be returned. + // Use these functions after endNodeEditor() has been called. + // + // These methods implemented instead of the original bool ImNodes::IsNodeHovered(int* node_id), + // bool ImNodes::IsLinkHovered(int* link_id) and bool ImNodes::IsPinHovered(int* attribute_id) for convenience. + + /** + * @return id of the hovered node or -1 if there is no such object + */ + public static native int getHoveredNode(); /* + int i; + return ImNodes::IsNodeHovered(&i) ? i : -1; + */ + + /** + * @return id of the hovered link or -1 if there is no such object + */ + public static native int getHoveredLink(); /* + int i; + return ImNodes::IsLinkHovered(&i) ? i : -1; + */ + + /** + * @return id of the hovered pin or -1 if there is no such object + */ + public static native int getHoveredPin(); /* + int i; + return ImNodes::IsPinHovered(&i) ? i : -1; + */ + + /** + * Use The following two functions to query the number of selected nodes or links in the current + * editor. Use after calling EndNodeEditor(). + */ + public static int numSelectedNodes() { + return nNumSelectedNodes(); + } + + private static native int nNumSelectedNodes(); /* + return ImNodes::NumSelectedNodes(); + */ + + public static int numSelectedLinks() { + return nNumSelectedLinks(); + } + + private static native int nNumSelectedLinks(); /* + return ImNodes::NumSelectedLinks(); + */ + + /** + * Get the selected node/link ids. The pointer argument should point to an integer array with at + * least as many elements as the respective NumSelectedNodes/NumSelectedLinks function call + * returned. + */ + public static void getSelectedNodes(final int[] nodeIds) { + nGetSelectedNodes(nodeIds); + } + + private static native void nGetSelectedNodes(int[] nodeIds); /*MANUAL + auto nodeIds = obj_nodeIds == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_nodeIds, JNI_FALSE); + ImNodes::GetSelectedNodes(&nodeIds[0]); + if (nodeIds != NULL) env->ReleasePrimitiveArrayCritical(obj_nodeIds, nodeIds, JNI_FALSE); + */ + + /** + * Get the selected node/link ids. The pointer argument should point to an integer array with at + * least as many elements as the respective NumSelectedNodes/NumSelectedLinks function call + * returned. + */ + public static void getSelectedLinks(final int[] linkIds) { + nGetSelectedLinks(linkIds); + } + + private static native void nGetSelectedLinks(int[] linkIds); /*MANUAL + auto linkIds = obj_linkIds == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_linkIds, JNI_FALSE); + ImNodes::GetSelectedLinks(&linkIds[0]); + if (linkIds != NULL) env->ReleasePrimitiveArrayCritical(obj_linkIds, linkIds, JNI_FALSE); + */ + + /** + * Clears the list of selected nodes/links. Useful if you want to delete a selected node or link. + */ + public static void clearNodeSelection() { + nClearNodeSelection(); + } + + private static native void nClearNodeSelection(); /* + ImNodes::ClearNodeSelection(); + */ + + /** + * Clears the list of selected nodes/links. Useful if you want to delete a selected node or link. + */ + public static void clearLinkSelection() { + nClearLinkSelection(); + } + + private static native void nClearLinkSelection(); /* + ImNodes::ClearLinkSelection(); + */ + + /** + * Manually select a node or link. + */ + public static void selectNode(final int nodeId) { + nSelectNode(nodeId); + } + + private static native void nSelectNode(int nodeId); /* + ImNodes::SelectNode(nodeId); + */ + + public static void clearNodeSelection(final int nodeId) { + nClearNodeSelection(nodeId); + } + + private static native void nClearNodeSelection(int nodeId); /* + ImNodes::ClearNodeSelection(nodeId); + */ + + public static boolean isNodeSelected(final int nodeId) { + return nIsNodeSelected(nodeId); + } + + private static native boolean nIsNodeSelected(int nodeId); /* + return ImNodes::IsNodeSelected(nodeId); + */ + + public static void selectLink(final int linkId) { + nSelectLink(linkId); + } + + private static native void nSelectLink(int linkId); /* + ImNodes::SelectLink(linkId); + */ + + public static void clearLinkSelection(final int linkId) { + nClearLinkSelection(linkId); + } + + private static native void nClearLinkSelection(int linkId); /* + ImNodes::ClearLinkSelection(linkId); + */ + + public static boolean isLinkSelected(final int linkId) { + return nIsLinkSelected(linkId); + } + + private static native boolean nIsLinkSelected(int linkId); /* + return ImNodes::IsLinkSelected(linkId); + */ + + /** + * Was the previous attribute active? This will continuously return true while the left mouse button + * is being pressed over the UI content of the attribute. + */ + public static boolean isAttributeActive() { + return nIsAttributeActive(); + } + + private static native boolean nIsAttributeActive(); /* + return ImNodes::IsAttributeActive(); + */ + + public static boolean isAnyAttributeActive() { + return nIsAnyAttributeActive(); + } + + public static boolean isAnyAttributeActive(final ImInt attributeId) { + return nIsAnyAttributeActive(attributeId != null ? attributeId.getData() : null); + } + + private static native boolean nIsAnyAttributeActive(); /* + return ImNodes::IsAnyAttributeActive(); + */ + + private static native boolean nIsAnyAttributeActive(int[] obj_attributeId); /*MANUAL + auto attributeId = obj_attributeId == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_attributeId, JNI_FALSE); + auto _result = ImNodes::IsAnyAttributeActive((attributeId != NULL ? &attributeId[0] : NULL)); + if (attributeId != NULL) env->ReleasePrimitiveArrayCritical(obj_attributeId, attributeId, JNI_FALSE); + return _result; + */ + + /** + * Binding notice: getActiveAttribute() returns id the active attribute. If there is no active attribute -1 will be returned. + *

+ * This method implemented instead of the original bool ImNodes::IsAnyAttributeActive(int* attribute_id) for convenience. + */ + public static native int getActiveAttribute(); /* + int i; + return ImNodes::IsAnyAttributeActive(&i) ? i : -1; + */ + + // Use the following functions to query a change of state for an existing link, or new link. Call + // these after EndNodeEditor(). + + /** + * Did the user start dragging a new link from a pin? + */ + public static boolean isLinkStarted(final ImInt startedAtAttributeId) { + return nIsLinkStarted(startedAtAttributeId != null ? startedAtAttributeId.getData() : null); + } + + private static native boolean nIsLinkStarted(int[] obj_startedAtAttributeId); /*MANUAL + auto startedAtAttributeId = obj_startedAtAttributeId == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_startedAtAttributeId, JNI_FALSE); + auto _result = ImNodes::IsLinkStarted((startedAtAttributeId != NULL ? &startedAtAttributeId[0] : NULL)); + if (startedAtAttributeId != NULL) env->ReleasePrimitiveArrayCritical(obj_startedAtAttributeId, startedAtAttributeId, JNI_FALSE); + return _result; + */ + + /** + * Did the user drop the dragged link before attaching it to a pin? + * There are two different kinds of situations to consider when handling this event: + * 1) a link which is created at a pin and then dropped + * 2) an existing link which is detached from a pin and then dropped + * Use the including_detached_links flag to control whether this function triggers when the user + * detaches a link and drops it. + */ + public static boolean isLinkDropped() { + return nIsLinkDropped(); + } + + /** + * Did the user drop the dragged link before attaching it to a pin? + * There are two different kinds of situations to consider when handling this event: + * 1) a link which is created at a pin and then dropped + * 2) an existing link which is detached from a pin and then dropped + * Use the including_detached_links flag to control whether this function triggers when the user + * detaches a link and drops it. + */ + public static boolean isLinkDropped(final ImInt startedAtAttributeId) { + return nIsLinkDropped(startedAtAttributeId != null ? startedAtAttributeId.getData() : null); + } + + /** + * Did the user drop the dragged link before attaching it to a pin? + * There are two different kinds of situations to consider when handling this event: + * 1) a link which is created at a pin and then dropped + * 2) an existing link which is detached from a pin and then dropped + * Use the including_detached_links flag to control whether this function triggers when the user + * detaches a link and drops it. + */ + public static boolean isLinkDropped(final ImInt startedAtAttributeId, final boolean includingDetachedLinks) { + return nIsLinkDropped(startedAtAttributeId != null ? startedAtAttributeId.getData() : null, includingDetachedLinks); + } + + /** + * Did the user drop the dragged link before attaching it to a pin? + * There are two different kinds of situations to consider when handling this event: + * 1) a link which is created at a pin and then dropped + * 2) an existing link which is detached from a pin and then dropped + * Use the including_detached_links flag to control whether this function triggers when the user + * detaches a link and drops it. + */ + public static boolean isLinkDropped(final boolean includingDetachedLinks) { + return nIsLinkDropped(includingDetachedLinks); + } + + private static native boolean nIsLinkDropped(); /* + return ImNodes::IsLinkDropped(); + */ + + private static native boolean nIsLinkDropped(int[] obj_startedAtAttributeId); /*MANUAL + auto startedAtAttributeId = obj_startedAtAttributeId == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_startedAtAttributeId, JNI_FALSE); + auto _result = ImNodes::IsLinkDropped((startedAtAttributeId != NULL ? &startedAtAttributeId[0] : NULL)); + if (startedAtAttributeId != NULL) env->ReleasePrimitiveArrayCritical(obj_startedAtAttributeId, startedAtAttributeId, JNI_FALSE); + return _result; + */ + + private static native boolean nIsLinkDropped(int[] obj_startedAtAttributeId, boolean includingDetachedLinks); /*MANUAL + auto startedAtAttributeId = obj_startedAtAttributeId == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_startedAtAttributeId, JNI_FALSE); + auto _result = ImNodes::IsLinkDropped((startedAtAttributeId != NULL ? &startedAtAttributeId[0] : NULL), includingDetachedLinks); + if (startedAtAttributeId != NULL) env->ReleasePrimitiveArrayCritical(obj_startedAtAttributeId, startedAtAttributeId, JNI_FALSE); + return _result; + */ + + private static native boolean nIsLinkDropped(boolean includingDetachedLinks); /* + return ImNodes::IsLinkDropped(NULL, includingDetachedLinks); + */ + + /** + * Did the user finish creating a new link? + */ + public static boolean isLinkCreated(final ImInt startedAtAttributeId, final ImInt endedAtAttributeId) { + return nIsLinkCreated(startedAtAttributeId != null ? startedAtAttributeId.getData() : null, endedAtAttributeId != null ? endedAtAttributeId.getData() : null); + } + + /** + * Did the user finish creating a new link? + */ + public static boolean isLinkCreated(final ImInt startedAtAttributeId, final ImInt endedAtAttributeId, final ImBoolean createdFromSnap) { + return nIsLinkCreated(startedAtAttributeId != null ? startedAtAttributeId.getData() : null, endedAtAttributeId != null ? endedAtAttributeId.getData() : null, createdFromSnap != null ? createdFromSnap.getData() : null); + } + + private static native boolean nIsLinkCreated(int[] obj_startedAtAttributeId, int[] obj_endedAtAttributeId); /*MANUAL + auto startedAtAttributeId = obj_startedAtAttributeId == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_startedAtAttributeId, JNI_FALSE); + auto endedAtAttributeId = obj_endedAtAttributeId == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_endedAtAttributeId, JNI_FALSE); + auto _result = ImNodes::IsLinkCreated((startedAtAttributeId != NULL ? &startedAtAttributeId[0] : NULL), (endedAtAttributeId != NULL ? &endedAtAttributeId[0] : NULL)); + if (startedAtAttributeId != NULL) env->ReleasePrimitiveArrayCritical(obj_startedAtAttributeId, startedAtAttributeId, JNI_FALSE); + if (endedAtAttributeId != NULL) env->ReleasePrimitiveArrayCritical(obj_endedAtAttributeId, endedAtAttributeId, JNI_FALSE); + return _result; + */ + + private static native boolean nIsLinkCreated(int[] obj_startedAtAttributeId, int[] obj_endedAtAttributeId, boolean[] obj_createdFromSnap); /*MANUAL + auto startedAtAttributeId = obj_startedAtAttributeId == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_startedAtAttributeId, JNI_FALSE); + auto endedAtAttributeId = obj_endedAtAttributeId == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_endedAtAttributeId, JNI_FALSE); + auto createdFromSnap = obj_createdFromSnap == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_createdFromSnap, JNI_FALSE); + auto _result = ImNodes::IsLinkCreated((startedAtAttributeId != NULL ? &startedAtAttributeId[0] : NULL), (endedAtAttributeId != NULL ? &endedAtAttributeId[0] : NULL), (createdFromSnap != NULL ? &createdFromSnap[0] : NULL)); + if (startedAtAttributeId != NULL) env->ReleasePrimitiveArrayCritical(obj_startedAtAttributeId, startedAtAttributeId, JNI_FALSE); + if (endedAtAttributeId != NULL) env->ReleasePrimitiveArrayCritical(obj_endedAtAttributeId, endedAtAttributeId, JNI_FALSE); + if (createdFromSnap != NULL) env->ReleasePrimitiveArrayCritical(obj_createdFromSnap, createdFromSnap, JNI_FALSE); + return _result; + */ + + /** + * Did the user finish creating a new link? + */ + public static boolean isLinkCreated(final ImInt startedAtNodeId, final ImInt startedAtAttributeId, final ImInt endedAtNodeId, final ImInt endedAtAttributeId) { + return nIsLinkCreated(startedAtNodeId != null ? startedAtNodeId.getData() : null, startedAtAttributeId != null ? startedAtAttributeId.getData() : null, endedAtNodeId != null ? endedAtNodeId.getData() : null, endedAtAttributeId != null ? endedAtAttributeId.getData() : null); + } + + /** + * Did the user finish creating a new link? + */ + public static boolean isLinkCreated(final ImInt startedAtNodeId, final ImInt startedAtAttributeId, final ImInt endedAtNodeId, final ImInt endedAtAttributeId, final ImBoolean createdFromSnap) { + return nIsLinkCreated(startedAtNodeId != null ? startedAtNodeId.getData() : null, startedAtAttributeId != null ? startedAtAttributeId.getData() : null, endedAtNodeId != null ? endedAtNodeId.getData() : null, endedAtAttributeId != null ? endedAtAttributeId.getData() : null, createdFromSnap != null ? createdFromSnap.getData() : null); + } + + private static native boolean nIsLinkCreated(int[] obj_startedAtNodeId, int[] obj_startedAtAttributeId, int[] obj_endedAtNodeId, int[] obj_endedAtAttributeId); /*MANUAL + auto startedAtNodeId = obj_startedAtNodeId == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_startedAtNodeId, JNI_FALSE); + auto startedAtAttributeId = obj_startedAtAttributeId == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_startedAtAttributeId, JNI_FALSE); + auto endedAtNodeId = obj_endedAtNodeId == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_endedAtNodeId, JNI_FALSE); + auto endedAtAttributeId = obj_endedAtAttributeId == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_endedAtAttributeId, JNI_FALSE); + auto _result = ImNodes::IsLinkCreated((startedAtNodeId != NULL ? &startedAtNodeId[0] : NULL), (startedAtAttributeId != NULL ? &startedAtAttributeId[0] : NULL), (endedAtNodeId != NULL ? &endedAtNodeId[0] : NULL), (endedAtAttributeId != NULL ? &endedAtAttributeId[0] : NULL)); + if (startedAtNodeId != NULL) env->ReleasePrimitiveArrayCritical(obj_startedAtNodeId, startedAtNodeId, JNI_FALSE); + if (startedAtAttributeId != NULL) env->ReleasePrimitiveArrayCritical(obj_startedAtAttributeId, startedAtAttributeId, JNI_FALSE); + if (endedAtNodeId != NULL) env->ReleasePrimitiveArrayCritical(obj_endedAtNodeId, endedAtNodeId, JNI_FALSE); + if (endedAtAttributeId != NULL) env->ReleasePrimitiveArrayCritical(obj_endedAtAttributeId, endedAtAttributeId, JNI_FALSE); + return _result; + */ + + private static native boolean nIsLinkCreated(int[] obj_startedAtNodeId, int[] obj_startedAtAttributeId, int[] obj_endedAtNodeId, int[] obj_endedAtAttributeId, boolean[] obj_createdFromSnap); /*MANUAL + auto startedAtNodeId = obj_startedAtNodeId == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_startedAtNodeId, JNI_FALSE); + auto startedAtAttributeId = obj_startedAtAttributeId == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_startedAtAttributeId, JNI_FALSE); + auto endedAtNodeId = obj_endedAtNodeId == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_endedAtNodeId, JNI_FALSE); + auto endedAtAttributeId = obj_endedAtAttributeId == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_endedAtAttributeId, JNI_FALSE); + auto createdFromSnap = obj_createdFromSnap == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_createdFromSnap, JNI_FALSE); + auto _result = ImNodes::IsLinkCreated((startedAtNodeId != NULL ? &startedAtNodeId[0] : NULL), (startedAtAttributeId != NULL ? &startedAtAttributeId[0] : NULL), (endedAtNodeId != NULL ? &endedAtNodeId[0] : NULL), (endedAtAttributeId != NULL ? &endedAtAttributeId[0] : NULL), (createdFromSnap != NULL ? &createdFromSnap[0] : NULL)); + if (startedAtNodeId != NULL) env->ReleasePrimitiveArrayCritical(obj_startedAtNodeId, startedAtNodeId, JNI_FALSE); + if (startedAtAttributeId != NULL) env->ReleasePrimitiveArrayCritical(obj_startedAtAttributeId, startedAtAttributeId, JNI_FALSE); + if (endedAtNodeId != NULL) env->ReleasePrimitiveArrayCritical(obj_endedAtNodeId, endedAtNodeId, JNI_FALSE); + if (endedAtAttributeId != NULL) env->ReleasePrimitiveArrayCritical(obj_endedAtAttributeId, endedAtAttributeId, JNI_FALSE); + if (createdFromSnap != NULL) env->ReleasePrimitiveArrayCritical(obj_createdFromSnap, createdFromSnap, JNI_FALSE); + return _result; + */ + + /** + * Was an existing link detached from a pin by the user? The detached link's id is assigned to the + * output argument link_id. + */ + public static boolean isLinkDestroyed(final ImInt linkId) { + return nIsLinkDestroyed(linkId != null ? linkId.getData() : null); + } + + private static native boolean nIsLinkDestroyed(int[] obj_linkId); /*MANUAL + auto linkId = obj_linkId == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_linkId, JNI_FALSE); + auto _result = ImNodes::IsLinkDestroyed((linkId != NULL ? &linkId[0] : NULL)); + if (linkId != NULL) env->ReleasePrimitiveArrayCritical(obj_linkId, linkId, JNI_FALSE); + return _result; + */ + + // Use the following functions to write the editor context's state to a string, or directly to a + // file. The editor context is serialized in the INI file format. + + public static String saveCurrentEditorStateToIniString() { + return nSaveCurrentEditorStateToIniString(); + } + + private static native String nSaveCurrentEditorStateToIniString(); /* + return env->NewStringUTF(ImNodes::SaveCurrentEditorStateToIniString()); + */ + + public static String saveEditorStateToIniString(final ImNodesEditorContext editor) { + return nSaveEditorStateToIniString(editor.ptr); + } + + private static native String nSaveEditorStateToIniString(long editor); /* + return env->NewStringUTF(ImNodes::SaveEditorStateToIniString(reinterpret_cast(editor))); + */ + + public static void loadCurrentEditorStateFromIniString(final String data, final int dataSize) { + nLoadCurrentEditorStateFromIniString(data, dataSize); + } + + private static native void nLoadCurrentEditorStateFromIniString(String data, int dataSize); /*MANUAL + auto data = obj_data == NULL ? NULL : (char*)env->GetStringUTFChars(obj_data, JNI_FALSE); + ImNodes::LoadCurrentEditorStateFromIniString(data, dataSize); + if (data != NULL) env->ReleaseStringUTFChars(obj_data, data); + */ + + public static void loadEditorStateFromIniString(final ImNodesEditorContext editor, final String data, final int dataSize) { + nLoadEditorStateFromIniString(editor.ptr, data, dataSize); + } + + private static native void nLoadEditorStateFromIniString(long editor, String data, int dataSize); /*MANUAL + auto data = obj_data == NULL ? NULL : (char*)env->GetStringUTFChars(obj_data, JNI_FALSE); + ImNodes::LoadEditorStateFromIniString(reinterpret_cast(editor), data, dataSize); + if (data != NULL) env->ReleaseStringUTFChars(obj_data, data); + */ + + public static void saveCurrentEditorStateToIniFile(final String fileName) { + nSaveCurrentEditorStateToIniFile(fileName); + } + + private static native void nSaveCurrentEditorStateToIniFile(String fileName); /*MANUAL + auto fileName = obj_fileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_fileName, JNI_FALSE); + ImNodes::SaveCurrentEditorStateToIniFile(fileName); + if (fileName != NULL) env->ReleaseStringUTFChars(obj_fileName, fileName); + */ + + public static void saveEditorStateToIniFile(final ImNodesEditorContext editor, final String fileName) { + nSaveEditorStateToIniFile(editor.ptr, fileName); + } + + private static native void nSaveEditorStateToIniFile(long editor, String fileName); /*MANUAL + auto fileName = obj_fileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_fileName, JNI_FALSE); + ImNodes::SaveEditorStateToIniFile(reinterpret_cast(editor), fileName); + if (fileName != NULL) env->ReleaseStringUTFChars(obj_fileName, fileName); + */ + + public static void loadCurrentEditorStateFromIniFile(final String fileName) { + nLoadCurrentEditorStateFromIniFile(fileName); + } + + private static native void nLoadCurrentEditorStateFromIniFile(String fileName); /*MANUAL + auto fileName = obj_fileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_fileName, JNI_FALSE); + ImNodes::LoadCurrentEditorStateFromIniFile(fileName); + if (fileName != NULL) env->ReleaseStringUTFChars(obj_fileName, fileName); + */ + + public static void loadEditorStateFromIniFile(final ImNodesEditorContext editor, final String fileName) { + nLoadEditorStateFromIniFile(editor.ptr, fileName); + } + + private static native void nLoadEditorStateFromIniFile(long editor, String fileName); /*MANUAL + auto fileName = obj_fileName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_fileName, JNI_FALSE); + ImNodes::LoadEditorStateFromIniFile(reinterpret_cast(editor), fileName); + if (fileName != NULL) env->ReleaseStringUTFChars(obj_fileName, fileName); + */ +} diff --git a/imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodesContext.java b/imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodesContext.java new file mode 100644 index 0000000..5f0f8be --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodesContext.java @@ -0,0 +1,9 @@ +package imgui.extension.imnodes; + +import imgui.binding.ImGuiStruct; + +public final class ImNodesContext extends ImGuiStruct { + public ImNodesContext(final long ptr) { + super(ptr); + } +} diff --git a/imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodesEditorContext.java b/imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodesEditorContext.java new file mode 100644 index 0000000..4d960ef --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodesEditorContext.java @@ -0,0 +1,9 @@ +package imgui.extension.imnodes; + +import imgui.binding.ImGuiStruct; + +public final class ImNodesEditorContext extends ImGuiStruct { + public ImNodesEditorContext(final long ptr) { + super(ptr); + } +} diff --git a/imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodesIO.java b/imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodesIO.java new file mode 100644 index 0000000..39af2d2 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodesIO.java @@ -0,0 +1,64 @@ +package imgui.extension.imnodes; + +import imgui.binding.ImGuiStruct; + +public final class ImNodesIO extends ImGuiStruct { + public ImNodesIO(final long ptr) { + super(ptr); + } + + /*JNI + #include "_imnodes.h" + #define THIS ((ImNodesIO*)STRUCT_PTR) + */ + + /** + * Holding alt mouse button pans the node area, by default middle mouse button will be used + * Set based on ImGuiMouseButton values + */ + public int getAltMouseButton() { + return nGetAltMouseButton(); + } + + /** + * Holding alt mouse button pans the node area, by default middle mouse button will be used + * Set based on ImGuiMouseButton values + */ + public void setAltMouseButton(final int value) { + nSetAltMouseButton(value); + } + + private native int nGetAltMouseButton(); /* + return THIS->AltMouseButton; + */ + + private native void nSetAltMouseButton(int value); /* + THIS->AltMouseButton = value; + */ + + /** + * Panning speed when dragging an element and mouse is outside the main editor view. + */ + public float getAutoPanningSpeed() { + return nGetAutoPanningSpeed(); + } + + /** + * Panning speed when dragging an element and mouse is outside the main editor view. + */ + public void setAutoPanningSpeed(final float value) { + nSetAutoPanningSpeed(value); + } + + private native float nGetAutoPanningSpeed(); /* + return THIS->AutoPanningSpeed; + */ + + private native void nSetAutoPanningSpeed(float value); /* + THIS->AutoPanningSpeed = value; + */ + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodesStyle.java b/imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodesStyle.java new file mode 100644 index 0000000..932d055 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodesStyle.java @@ -0,0 +1,494 @@ +package imgui.extension.imnodes; + +import imgui.ImVec2; +import imgui.ImVec4; +import imgui.binding.ImGuiStruct; + +public final class ImNodesStyle extends ImGuiStruct { + public ImNodesStyle(final long ptr) { + super(ptr); + } + + /*JNI + #include "_imnodes.h" + #define THIS ((ImNodesStyle*)STRUCT_PTR) + */ + + public float getGridSpacing() { + return nGetGridSpacing(); + } + + public void setGridSpacing(final float value) { + nSetGridSpacing(value); + } + + private native float nGetGridSpacing(); /* + return THIS->GridSpacing; + */ + + private native void nSetGridSpacing(float value); /* + THIS->GridSpacing = value; + */ + + public float getNodeCornerRounding() { + return nGetNodeCornerRounding(); + } + + public void setNodeCornerRounding(final float value) { + nSetNodeCornerRounding(value); + } + + private native float nGetNodeCornerRounding(); /* + return THIS->NodeCornerRounding; + */ + + private native void nSetNodeCornerRounding(float value); /* + THIS->NodeCornerRounding = value; + */ + + public ImVec2 getNodePadding() { + final ImVec2 dst = new ImVec2(); + nGetNodePadding(dst); + return dst; + } + + public float getNodePaddingX() { + return nGetNodePaddingX(); + } + + public float getNodePaddingY() { + return nGetNodePaddingY(); + } + + public void getNodePadding(final ImVec2 dst) { + nGetNodePadding(dst); + } + + public void setNodePadding(final ImVec2 value) { + nSetNodePadding(value.x, value.y); + } + + public void setNodePadding(final float valueX, final float valueY) { + nSetNodePadding(valueX, valueY); + } + + private native void nGetNodePadding(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->NodePadding, dst); + */ + + private native float nGetNodePaddingX(); /* + return THIS->NodePadding.x; + */ + + private native float nGetNodePaddingY(); /* + return THIS->NodePadding.y; + */ + + private native void nSetNodePadding(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->NodePadding = value; + */ + + public float getNodeBorderThickness() { + return nGetNodeBorderThickness(); + } + + public void setNodeBorderThickness(final float value) { + nSetNodeBorderThickness(value); + } + + private native float nGetNodeBorderThickness(); /* + return THIS->NodeBorderThickness; + */ + + private native void nSetNodeBorderThickness(float value); /* + THIS->NodeBorderThickness = value; + */ + + public float getLinkThickness() { + return nGetLinkThickness(); + } + + public void setLinkThickness(final float value) { + nSetLinkThickness(value); + } + + private native float nGetLinkThickness(); /* + return THIS->LinkThickness; + */ + + private native void nSetLinkThickness(float value); /* + THIS->LinkThickness = value; + */ + + public float getLinkLineSegmentsPerLength() { + return nGetLinkLineSegmentsPerLength(); + } + + public void setLinkLineSegmentsPerLength(final float value) { + nSetLinkLineSegmentsPerLength(value); + } + + private native float nGetLinkLineSegmentsPerLength(); /* + return THIS->LinkLineSegmentsPerLength; + */ + + private native void nSetLinkLineSegmentsPerLength(float value); /* + THIS->LinkLineSegmentsPerLength = value; + */ + + public float getLinkHoverDistance() { + return nGetLinkHoverDistance(); + } + + public void setLinkHoverDistance(final float value) { + nSetLinkHoverDistance(value); + } + + private native float nGetLinkHoverDistance(); /* + return THIS->LinkHoverDistance; + */ + + private native void nSetLinkHoverDistance(float value); /* + THIS->LinkHoverDistance = value; + */ + + /** + * The circle radius used when the pin shape is either PinShape_Circle or PinShape_CircleFilled. + */ + public float getPinCircleRadius() { + return nGetPinCircleRadius(); + } + + /** + * The circle radius used when the pin shape is either PinShape_Circle or PinShape_CircleFilled. + */ + public void setPinCircleRadius(final float value) { + nSetPinCircleRadius(value); + } + + private native float nGetPinCircleRadius(); /* + return THIS->PinCircleRadius; + */ + + private native void nSetPinCircleRadius(float value); /* + THIS->PinCircleRadius = value; + */ + + /** + * The quad side length used when the shape is either PinShape_Quad or PinShape_QuadFilled. + */ + public float getPinQuadSideLength() { + return nGetPinQuadSideLength(); + } + + /** + * The quad side length used when the shape is either PinShape_Quad or PinShape_QuadFilled. + */ + public void setPinQuadSideLength(final float value) { + nSetPinQuadSideLength(value); + } + + private native float nGetPinQuadSideLength(); /* + return THIS->PinQuadSideLength; + */ + + private native void nSetPinQuadSideLength(float value); /* + THIS->PinQuadSideLength = value; + */ + + /** + * The equilateral triangle side length used when the pin shape is either PinShape_Triangle or PinShape_TriangleFilled. + */ + public float getPinTriangleSideLength() { + return nGetPinTriangleSideLength(); + } + + /** + * The equilateral triangle side length used when the pin shape is either PinShape_Triangle or PinShape_TriangleFilled. + */ + public void setPinTriangleSideLength(final float value) { + nSetPinTriangleSideLength(value); + } + + private native float nGetPinTriangleSideLength(); /* + return THIS->PinTriangleSideLength; + */ + + private native void nSetPinTriangleSideLength(float value); /* + THIS->PinTriangleSideLength = value; + */ + + /** + * The thickness of the line used when the pin shape is not filled. + */ + public float getPinLineThickness() { + return nGetPinLineThickness(); + } + + /** + * The thickness of the line used when the pin shape is not filled. + */ + public void setPinLineThickness(final float value) { + nSetPinLineThickness(value); + } + + private native float nGetPinLineThickness(); /* + return THIS->PinLineThickness; + */ + + private native void nSetPinLineThickness(float value); /* + THIS->PinLineThickness = value; + */ + + /** + * The radius from the pin's center position inside of which it is detected as being hovered over. + */ + public float getPinHoverRadius() { + return nGetPinHoverRadius(); + } + + /** + * The radius from the pin's center position inside of which it is detected as being hovered over. + */ + public void setPinHoverRadius(final float value) { + nSetPinHoverRadius(value); + } + + private native float nGetPinHoverRadius(); /* + return THIS->PinHoverRadius; + */ + + private native void nSetPinHoverRadius(float value); /* + THIS->PinHoverRadius = value; + */ + + /** + * Offsets the pins' positions from the edge of the node to the outside of the node. + */ + public float getPinOffset() { + return nGetPinOffset(); + } + + /** + * Offsets the pins' positions from the edge of the node to the outside of the node. + */ + public void setPinOffset(final float value) { + nSetPinOffset(value); + } + + private native float nGetPinOffset(); /* + return THIS->PinOffset; + */ + + private native void nSetPinOffset(float value); /* + THIS->PinOffset = value; + */ + + /** + * Mini-map padding size between mini-map edge and mini-map content. + */ + public ImVec2 getMiniMapPadding() { + final ImVec2 dst = new ImVec2(); + nGetMiniMapPadding(dst); + return dst; + } + + /** + * Mini-map padding size between mini-map edge and mini-map content. + */ + public float getMiniMapPaddingX() { + return nGetMiniMapPaddingX(); + } + + /** + * Mini-map padding size between mini-map edge and mini-map content. + */ + public float getMiniMapPaddingY() { + return nGetMiniMapPaddingY(); + } + + /** + * Mini-map padding size between mini-map edge and mini-map content. + */ + public void getMiniMapPadding(final ImVec2 dst) { + nGetMiniMapPadding(dst); + } + + /** + * Mini-map padding size between mini-map edge and mini-map content. + */ + public void setMiniMapPadding(final ImVec2 value) { + nSetMiniMapPadding(value.x, value.y); + } + + /** + * Mini-map padding size between mini-map edge and mini-map content. + */ + public void setMiniMapPadding(final float valueX, final float valueY) { + nSetMiniMapPadding(valueX, valueY); + } + + private native void nGetMiniMapPadding(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->MiniMapPadding, dst); + */ + + private native float nGetMiniMapPaddingX(); /* + return THIS->MiniMapPadding.x; + */ + + private native float nGetMiniMapPaddingY(); /* + return THIS->MiniMapPadding.y; + */ + + private native void nSetMiniMapPadding(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->MiniMapPadding = value; + */ + + /** + * Mini-map offset from the screen side. + */ + public ImVec2 getMiniMapOffset() { + final ImVec2 dst = new ImVec2(); + nGetMiniMapOffset(dst); + return dst; + } + + /** + * Mini-map offset from the screen side. + */ + public float getMiniMapOffsetX() { + return nGetMiniMapOffsetX(); + } + + /** + * Mini-map offset from the screen side. + */ + public float getMiniMapOffsetY() { + return nGetMiniMapOffsetY(); + } + + /** + * Mini-map offset from the screen side. + */ + public void getMiniMapOffset(final ImVec2 dst) { + nGetMiniMapOffset(dst); + } + + /** + * Mini-map offset from the screen side. + */ + public void setMiniMapOffset(final ImVec2 value) { + nSetMiniMapOffset(value.x, value.y); + } + + /** + * Mini-map offset from the screen side. + */ + public void setMiniMapOffset(final float valueX, final float valueY) { + nSetMiniMapOffset(valueX, valueY); + } + + private native void nGetMiniMapOffset(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->MiniMapOffset, dst); + */ + + private native float nGetMiniMapOffsetX(); /* + return THIS->MiniMapOffset.x; + */ + + private native float nGetMiniMapOffsetY(); /* + return THIS->MiniMapOffset.y; + */ + + private native void nSetMiniMapOffset(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->MiniMapOffset = value; + */ + + /** + * By default, ImNodesStyleFlags_NodeOutline and ImNodesStyleFlags_Gridlines are enabled. + */ + public int getFlags() { + return nGetFlags(); + } + + /** + * By default, ImNodesStyleFlags_NodeOutline and ImNodesStyleFlags_Gridlines are enabled. + */ + public void setFlags(final int value) { + nSetFlags(value); + } + + /** + * By default, ImNodesStyleFlags_NodeOutline and ImNodesStyleFlags_Gridlines are enabled. + */ + public void addFlags(final int flags) { + setFlags(getFlags() | flags); + } + + /** + * By default, ImNodesStyleFlags_NodeOutline and ImNodesStyleFlags_Gridlines are enabled. + */ + public void removeFlags(final int flags) { + setFlags(getFlags() & ~(flags)); + } + + /** + * By default, ImNodesStyleFlags_NodeOutline and ImNodesStyleFlags_Gridlines are enabled. + */ + public boolean hasFlags(final int flags) { + return (getFlags() & flags) != 0; + } + + private native int nGetFlags(); /* + return THIS->Flags; + */ + + private native void nSetFlags(int value); /* + THIS->Flags = value; + */ + + public int[] getColors() { + return nGetColors(); + } + + public int getColors(final int idx) { + return nGetColors(idx); + } + + public void setColors(final int[] value) { + nSetColors(value); + } + + public void setColors(final int idx, final int value) { + nSetColors(idx, value); + } + + private native int[] nGetColors(); /* + jint jBuf[ImNodesCol_COUNT]; + for (int i = 0; i < ImNodesCol_COUNT; i++) + jBuf[i] = THIS->Colors[i]; + jintArray result = env->NewIntArray(ImNodesCol_COUNT); + env->SetIntArrayRegion(result, 0, ImNodesCol_COUNT, jBuf); + return result; + */ + + private native int nGetColors(int idx); /* + return THIS->Colors[idx]; + */ + + private native void nSetColors(int[] value); /* + for (int i = 0; i < ImNodesCol_COUNT; i++) + THIS->Colors[i] = value[i]; + */ + + private native int nSetColors(int idx, int value); /* + THIS->Colors[idx] = value; + */ + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesAttributeFlags.java b/imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesAttributeFlags.java new file mode 100644 index 0000000..129ee2f --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesAttributeFlags.java @@ -0,0 +1,29 @@ +package imgui.extension.imnodes.flag; + + +/** + * This enum controls the way the attribute pins behave. + */ +public final class ImNodesAttributeFlags { + private ImNodesAttributeFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Allow detaching a link by left-clicking and dragging the link at a pin it is connected to. NOTE: the user has to actually delete the link for this to work. A deleted link can be detected by calling IsLinkDestroyed() after EndNodeEditor(). + * + *

Definition: {@code 1 << 0} + */ + public static final int EnableLinkDetachWithDragClick = 1; + + /** + * Visual snapping of an in progress link will trigger IsLink Created/Destroyed events. Allows for previewing the creation of a link while dragging it across attributes. See here for demo: https://github.com/Nelarius/imnodes/issues/41#issuecomment-647132113 NOTE: the user has to actually delete the link for this to work. A deleted link can be detected by calling IsLinkDestroyed() after EndNodeEditor(). + * + *

Definition: {@code 1 << 1} + */ + public static final int EnableLinkCreationOnSnap = 2; +} diff --git a/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesColorStyle.java b/imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesCol.java similarity index 91% rename from imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesColorStyle.java rename to imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesCol.java index 851e563..0c358e6 100644 --- a/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesColorStyle.java +++ b/imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesCol.java @@ -1,36 +1,68 @@ package imgui.extension.imnodes.flag; -public final class ImNodesColorStyle { - private ImNodesColorStyle() { + +public final class ImNodesCol { + private ImNodesCol() { } + /** + * Definition: {@code 0} + */ public static final int NodeBackground = 0; + public static final int NodeBackgroundHovered = 1; + public static final int NodeBackgroundSelected = 2; + public static final int NodeOutline = 3; + public static final int TitleBar = 4; + public static final int TitleBarHovered = 5; + public static final int TitleBarSelected = 6; + public static final int Link = 7; + public static final int LinkHovered = 8; + public static final int LinkSelected = 9; + public static final int Pin = 10; + public static final int PinHovered = 11; + public static final int BoxSelector = 12; + public static final int BoxSelectorOutline = 13; + public static final int GridBackground = 14; + public static final int GridLine = 15; + public static final int MiniMapBackground = 16; + public static final int MiniMapBackgroundHovered = 17; + public static final int MiniMapOutline = 18; + public static final int MiniMapOutlineHovered = 19; + public static final int MiniMapNodeBackground = 20; + public static final int MiniMapNodeBackgroundHovered = 21; + public static final int MiniMapNodeBackgroundSelected = 22; + public static final int MiniMapNodeOutline = 23; + public static final int MiniMapLink = 24; + public static final int MiniMapLinkSelected = 25; + public static final int MiniMapCanvas = 26; + public static final int MiniMapCanvasOutline = 27; + public static final int COUNT = 28; } diff --git a/imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesMiniMapLocation.java b/imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesMiniMapLocation.java new file mode 100644 index 0000000..92a574b --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesMiniMapLocation.java @@ -0,0 +1,18 @@ +package imgui.extension.imnodes.flag; + + +/** + * This enum controls the minimap's location. + */ +public final class ImNodesMiniMapLocation { + private ImNodesMiniMapLocation() { + } + + public static final int BottomLeft = 0; + + public static final int BottomRight = 1; + + public static final int TopLeft = 2; + + public static final int TopRight = 3; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesPinShape.java b/imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesPinShape.java new file mode 100644 index 0000000..630aa1d --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesPinShape.java @@ -0,0 +1,22 @@ +package imgui.extension.imnodes.flag; + + +/** + * This enum controls the way attribute pins look. + */ +public final class ImNodesPinShape { + private ImNodesPinShape() { + } + + public static final int Circle = 0; + + public static final int CircleFilled = 1; + + public static final int Triangle = 2; + + public static final int TriangleFilled = 3; + + public static final int Quad = 4; + + public static final int QuadFilled = 5; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesStyleFlags.java b/imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesStyleFlags.java new file mode 100644 index 0000000..f337f1f --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesStyleFlags.java @@ -0,0 +1,22 @@ +package imgui.extension.imnodes.flag; + + +public final class ImNodesStyleFlags { + private ImNodesStyleFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Definition: {@code 1 << 0} + */ + public static final int NodeOutline = 1; + + /** + * Definition: {@code 1 << 2} + */ + public static final int GridLines = 4; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesStyleVar.java b/imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesStyleVar.java new file mode 100644 index 0000000..663b86f --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesStyleVar.java @@ -0,0 +1,42 @@ +package imgui.extension.imnodes.flag; + + +public final class ImNodesStyleVar { + private ImNodesStyleVar() { + } + + /** + * Definition: {@code 0} + */ + public static final int GridSpacing = 0; + + public static final int NodeCornerRounding = 1; + + public static final int NodePadding = 2; + + public static final int NodeBorderThickness = 3; + + public static final int LinkThickness = 4; + + public static final int LinkLineSegmentsPerLength = 5; + + public static final int LinkHoverDistance = 6; + + public static final int PinCircleRadius = 7; + + public static final int PinQuadSideLength = 8; + + public static final int PinTriangleSideLength = 9; + + public static final int PinLineThickness = 10; + + public static final int PinHoverRadius = 11; + + public static final int PinOffset = 12; + + public static final int MiniMapPadding = 13; + + public static final int MiniMapOffset = 14; + + public static final int COUNT = 15; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/implot/ImPlot.java b/imgui-binding/src/generated/java/imgui/extension/implot/ImPlot.java new file mode 100644 index 0000000..88c6190 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/implot/ImPlot.java @@ -0,0 +1,13626 @@ +package imgui.extension.implot; + +import imgui.ImDrawList; +import imgui.ImVec2; +import imgui.ImVec4; +import imgui.internal.ImGuiContext; +import imgui.type.ImBoolean; +import imgui.type.ImDouble; +import imgui.type.ImFloat; + +public final class ImPlot { + private ImPlot() { + } + + /*JNI + #include "_implot.h" + */ + + //----------------------------------------------------------------------------- + // ImPlot Context + //----------------------------------------------------------------------------- + + /** + * Creates a new ImPlot context. Call this after ImGui.createContext(). + */ + public static ImPlotContext createContext() { + return new ImPlotContext(nCreateContext()); + } + + private static native long nCreateContext(); /* + return (intptr_t)ImPlot::CreateContext(); + */ + + /** + * Destroys an ImPlot context. Call this before ImGui.destroyContext(). NULL = destroy current context. + */ + public static void destroyContext() { + nDestroyContext(); + } + + /** + * Destroys an ImPlot context. Call this before ImGui.destroyContext(). NULL = destroy current context. + */ + public static void destroyContext(final ImPlotContext ctx) { + nDestroyContext(ctx.ptr); + } + + private static native void nDestroyContext(); /* + ImPlot::DestroyContext(); + */ + + private static native void nDestroyContext(long ctx); /* + ImPlot::DestroyContext(reinterpret_cast(ctx)); + */ + + /** + * Returns the current ImPlot context. NULL if no context has ben set. + */ + public static ImPlotContext getCurrentContext() { + return new ImPlotContext(nGetCurrentContext()); + } + + private static native long nGetCurrentContext(); /* + return (intptr_t)ImPlot::GetCurrentContext(); + */ + + /** + * Sets the current ImPlot context. + */ + public static void setCurrentContext(final ImPlotContext ctx) { + nSetCurrentContext(ctx.ptr); + } + + private static native void nSetCurrentContext(long ctx); /* + ImPlot::SetCurrentContext(reinterpret_cast(ctx)); + */ + + public static void setImGuiContext(final ImGuiContext ctx) { + nSetImGuiContext(ctx.ptr); + } + + private static native void nSetImGuiContext(long ctx); /* + ImPlot::SetImGuiContext(reinterpret_cast(ctx)); + */ + + //----------------------------------------------------------------------------- + // Begin/End Plot + //----------------------------------------------------------------------------- + + // Starts a 2D plotting context. If this function returns true, EndPlot() MUST + // be called! You are encouraged to use the following convention: + // + // if (ImPlot.beginPlot(...)) { + // ImPlot.plotLine(...); + // ... + // ImPlot.endPlot(); + // } + // + // Important notes: + // + // - #titleID must be unique to the current ImGui ID scope. If you need to avoid ID + // collisions or don't want to display a title in the plot, use double hashes + // (e.g. "MyPlot##HiddenIdText" or "##NoTitle"). + // - If #xLabel and/or #yLabel are provided, axes labels will be displayed. + // - #size is the **frame** size of the plot widget, not the plot area. The default + // size of plots (i.e. when ImVec2(0,0)) can be modified in your ImPlotStyle + // (default is 400x300 px). + // - Auxiliary y-axes must be enabled with ImPlotFlags_YAxis2/3 to be displayed. + // - See ImPlotFlags and ImPlotAxisFlags for more available options. + + public static boolean beginPlot(final String titleID) { + return nBeginPlot(titleID); + } + + public static boolean beginPlot(final String titleID, final String xLabel) { + return nBeginPlot(titleID, xLabel); + } + + public static boolean beginPlot(final String titleID, final String xLabel, final String yLabel) { + return nBeginPlot(titleID, xLabel, yLabel); + } + + public static boolean beginPlot(final String titleID, final String xLabel, final String yLabel, final ImVec2 size) { + return nBeginPlot(titleID, xLabel, yLabel, size.x, size.y); + } + + public static boolean beginPlot(final String titleID, final String xLabel, final String yLabel, final float sizeX, final float sizeY) { + return nBeginPlot(titleID, xLabel, yLabel, sizeX, sizeY); + } + + public static boolean beginPlot(final String titleID, final String xLabel, final String yLabel, final ImVec2 size, final int flags) { + return nBeginPlot(titleID, xLabel, yLabel, size.x, size.y, flags); + } + + public static boolean beginPlot(final String titleID, final String xLabel, final String yLabel, final float sizeX, final float sizeY, final int flags) { + return nBeginPlot(titleID, xLabel, yLabel, sizeX, sizeY, flags); + } + + public static boolean beginPlot(final String titleID, final String xLabel, final String yLabel, final ImVec2 size, final int flags, final int xFlags) { + return nBeginPlot(titleID, xLabel, yLabel, size.x, size.y, flags, xFlags); + } + + public static boolean beginPlot(final String titleID, final String xLabel, final String yLabel, final float sizeX, final float sizeY, final int flags, final int xFlags) { + return nBeginPlot(titleID, xLabel, yLabel, sizeX, sizeY, flags, xFlags); + } + + public static boolean beginPlot(final String titleID, final String xLabel, final String yLabel, final ImVec2 size, final int flags, final int xFlags, final int yFlags) { + return nBeginPlot(titleID, xLabel, yLabel, size.x, size.y, flags, xFlags, yFlags); + } + + public static boolean beginPlot(final String titleID, final String xLabel, final String yLabel, final float sizeX, final float sizeY, final int flags, final int xFlags, final int yFlags) { + return nBeginPlot(titleID, xLabel, yLabel, sizeX, sizeY, flags, xFlags, yFlags); + } + + public static boolean beginPlot(final String titleID, final String xLabel, final String yLabel, final ImVec2 size, final int flags, final int xFlags, final int yFlags, final int y2Flags) { + return nBeginPlot(titleID, xLabel, yLabel, size.x, size.y, flags, xFlags, yFlags, y2Flags); + } + + public static boolean beginPlot(final String titleID, final String xLabel, final String yLabel, final float sizeX, final float sizeY, final int flags, final int xFlags, final int yFlags, final int y2Flags) { + return nBeginPlot(titleID, xLabel, yLabel, sizeX, sizeY, flags, xFlags, yFlags, y2Flags); + } + + public static boolean beginPlot(final String titleID, final String xLabel, final String yLabel, final ImVec2 size, final int flags, final int xFlags, final int yFlags, final int y2Flags, final int y3Flags) { + return nBeginPlot(titleID, xLabel, yLabel, size.x, size.y, flags, xFlags, yFlags, y2Flags, y3Flags); + } + + public static boolean beginPlot(final String titleID, final String xLabel, final String yLabel, final float sizeX, final float sizeY, final int flags, final int xFlags, final int yFlags, final int y2Flags, final int y3Flags) { + return nBeginPlot(titleID, xLabel, yLabel, sizeX, sizeY, flags, xFlags, yFlags, y2Flags, y3Flags); + } + + public static boolean beginPlot(final String titleID, final String xLabel, final String yLabel, final ImVec2 size, final int flags, final int xFlags, final int yFlags, final int y2Flags, final int y3Flags, final String y2Label) { + return nBeginPlot(titleID, xLabel, yLabel, size.x, size.y, flags, xFlags, yFlags, y2Flags, y3Flags, y2Label); + } + + public static boolean beginPlot(final String titleID, final String xLabel, final String yLabel, final float sizeX, final float sizeY, final int flags, final int xFlags, final int yFlags, final int y2Flags, final int y3Flags, final String y2Label) { + return nBeginPlot(titleID, xLabel, yLabel, sizeX, sizeY, flags, xFlags, yFlags, y2Flags, y3Flags, y2Label); + } + + public static boolean beginPlot(final String titleID, final String xLabel, final String yLabel, final ImVec2 size, final int flags, final int xFlags, final int yFlags, final int y2Flags, final int y3Flags, final String y2Label, final String y3Label) { + return nBeginPlot(titleID, xLabel, yLabel, size.x, size.y, flags, xFlags, yFlags, y2Flags, y3Flags, y2Label, y3Label); + } + + public static boolean beginPlot(final String titleID, final String xLabel, final String yLabel, final float sizeX, final float sizeY, final int flags, final int xFlags, final int yFlags, final int y2Flags, final int y3Flags, final String y2Label, final String y3Label) { + return nBeginPlot(titleID, xLabel, yLabel, sizeX, sizeY, flags, xFlags, yFlags, y2Flags, y3Flags, y2Label, y3Label); + } + + public static boolean beginPlot(final String titleID, final String xLabel, final String yLabel, final int flags, final int xFlags, final int yFlags, final int y2Flags, final int y3Flags, final String y2Label, final String y3Label) { + return nBeginPlot(titleID, xLabel, yLabel, flags, xFlags, yFlags, y2Flags, y3Flags, y2Label, y3Label); + } + + private static native boolean nBeginPlot(String obj_titleID); /*MANUAL + auto titleID = obj_titleID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_titleID, JNI_FALSE); + auto _result = ImPlot::BeginPlot(titleID); + if (titleID != NULL) env->ReleaseStringUTFChars(obj_titleID, titleID); + return _result; + */ + + private static native boolean nBeginPlot(String obj_titleID, String obj_xLabel); /*MANUAL + auto titleID = obj_titleID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_titleID, JNI_FALSE); + auto xLabel = obj_xLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_xLabel, JNI_FALSE); + auto _result = ImPlot::BeginPlot(titleID, xLabel); + if (titleID != NULL) env->ReleaseStringUTFChars(obj_titleID, titleID); + if (xLabel != NULL) env->ReleaseStringUTFChars(obj_xLabel, xLabel); + return _result; + */ + + private static native boolean nBeginPlot(String obj_titleID, String obj_xLabel, String obj_yLabel); /*MANUAL + auto titleID = obj_titleID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_titleID, JNI_FALSE); + auto xLabel = obj_xLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_xLabel, JNI_FALSE); + auto yLabel = obj_yLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_yLabel, JNI_FALSE); + auto _result = ImPlot::BeginPlot(titleID, xLabel, yLabel); + if (titleID != NULL) env->ReleaseStringUTFChars(obj_titleID, titleID); + if (xLabel != NULL) env->ReleaseStringUTFChars(obj_xLabel, xLabel); + if (yLabel != NULL) env->ReleaseStringUTFChars(obj_yLabel, yLabel); + return _result; + */ + + private static native boolean nBeginPlot(String obj_titleID, String obj_xLabel, String obj_yLabel, float sizeX, float sizeY); /*MANUAL + auto titleID = obj_titleID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_titleID, JNI_FALSE); + auto xLabel = obj_xLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_xLabel, JNI_FALSE); + auto yLabel = obj_yLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_yLabel, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImPlot::BeginPlot(titleID, xLabel, yLabel, size); + if (titleID != NULL) env->ReleaseStringUTFChars(obj_titleID, titleID); + if (xLabel != NULL) env->ReleaseStringUTFChars(obj_xLabel, xLabel); + if (yLabel != NULL) env->ReleaseStringUTFChars(obj_yLabel, yLabel); + return _result; + */ + + private static native boolean nBeginPlot(String obj_titleID, String obj_xLabel, String obj_yLabel, float sizeX, float sizeY, int flags); /*MANUAL + auto titleID = obj_titleID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_titleID, JNI_FALSE); + auto xLabel = obj_xLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_xLabel, JNI_FALSE); + auto yLabel = obj_yLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_yLabel, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImPlot::BeginPlot(titleID, xLabel, yLabel, size, flags); + if (titleID != NULL) env->ReleaseStringUTFChars(obj_titleID, titleID); + if (xLabel != NULL) env->ReleaseStringUTFChars(obj_xLabel, xLabel); + if (yLabel != NULL) env->ReleaseStringUTFChars(obj_yLabel, yLabel); + return _result; + */ + + private static native boolean nBeginPlot(String obj_titleID, String obj_xLabel, String obj_yLabel, float sizeX, float sizeY, int flags, int xFlags); /*MANUAL + auto titleID = obj_titleID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_titleID, JNI_FALSE); + auto xLabel = obj_xLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_xLabel, JNI_FALSE); + auto yLabel = obj_yLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_yLabel, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImPlot::BeginPlot(titleID, xLabel, yLabel, size, flags, xFlags); + if (titleID != NULL) env->ReleaseStringUTFChars(obj_titleID, titleID); + if (xLabel != NULL) env->ReleaseStringUTFChars(obj_xLabel, xLabel); + if (yLabel != NULL) env->ReleaseStringUTFChars(obj_yLabel, yLabel); + return _result; + */ + + private static native boolean nBeginPlot(String obj_titleID, String obj_xLabel, String obj_yLabel, float sizeX, float sizeY, int flags, int xFlags, int yFlags); /*MANUAL + auto titleID = obj_titleID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_titleID, JNI_FALSE); + auto xLabel = obj_xLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_xLabel, JNI_FALSE); + auto yLabel = obj_yLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_yLabel, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImPlot::BeginPlot(titleID, xLabel, yLabel, size, flags, xFlags, yFlags); + if (titleID != NULL) env->ReleaseStringUTFChars(obj_titleID, titleID); + if (xLabel != NULL) env->ReleaseStringUTFChars(obj_xLabel, xLabel); + if (yLabel != NULL) env->ReleaseStringUTFChars(obj_yLabel, yLabel); + return _result; + */ + + private static native boolean nBeginPlot(String obj_titleID, String obj_xLabel, String obj_yLabel, float sizeX, float sizeY, int flags, int xFlags, int yFlags, int y2Flags); /*MANUAL + auto titleID = obj_titleID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_titleID, JNI_FALSE); + auto xLabel = obj_xLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_xLabel, JNI_FALSE); + auto yLabel = obj_yLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_yLabel, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImPlot::BeginPlot(titleID, xLabel, yLabel, size, flags, xFlags, yFlags, y2Flags); + if (titleID != NULL) env->ReleaseStringUTFChars(obj_titleID, titleID); + if (xLabel != NULL) env->ReleaseStringUTFChars(obj_xLabel, xLabel); + if (yLabel != NULL) env->ReleaseStringUTFChars(obj_yLabel, yLabel); + return _result; + */ + + private static native boolean nBeginPlot(String obj_titleID, String obj_xLabel, String obj_yLabel, float sizeX, float sizeY, int flags, int xFlags, int yFlags, int y2Flags, int y3Flags); /*MANUAL + auto titleID = obj_titleID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_titleID, JNI_FALSE); + auto xLabel = obj_xLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_xLabel, JNI_FALSE); + auto yLabel = obj_yLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_yLabel, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImPlot::BeginPlot(titleID, xLabel, yLabel, size, flags, xFlags, yFlags, y2Flags, y3Flags); + if (titleID != NULL) env->ReleaseStringUTFChars(obj_titleID, titleID); + if (xLabel != NULL) env->ReleaseStringUTFChars(obj_xLabel, xLabel); + if (yLabel != NULL) env->ReleaseStringUTFChars(obj_yLabel, yLabel); + return _result; + */ + + private static native boolean nBeginPlot(String obj_titleID, String obj_xLabel, String obj_yLabel, float sizeX, float sizeY, int flags, int xFlags, int yFlags, int y2Flags, int y3Flags, String obj_y2Label); /*MANUAL + auto titleID = obj_titleID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_titleID, JNI_FALSE); + auto xLabel = obj_xLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_xLabel, JNI_FALSE); + auto yLabel = obj_yLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_yLabel, JNI_FALSE); + auto y2Label = obj_y2Label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_y2Label, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImPlot::BeginPlot(titleID, xLabel, yLabel, size, flags, xFlags, yFlags, y2Flags, y3Flags, y2Label); + if (titleID != NULL) env->ReleaseStringUTFChars(obj_titleID, titleID); + if (xLabel != NULL) env->ReleaseStringUTFChars(obj_xLabel, xLabel); + if (yLabel != NULL) env->ReleaseStringUTFChars(obj_yLabel, yLabel); + if (y2Label != NULL) env->ReleaseStringUTFChars(obj_y2Label, y2Label); + return _result; + */ + + private static native boolean nBeginPlot(String obj_titleID, String obj_xLabel, String obj_yLabel, float sizeX, float sizeY, int flags, int xFlags, int yFlags, int y2Flags, int y3Flags, String obj_y2Label, String obj_y3Label); /*MANUAL + auto titleID = obj_titleID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_titleID, JNI_FALSE); + auto xLabel = obj_xLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_xLabel, JNI_FALSE); + auto yLabel = obj_yLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_yLabel, JNI_FALSE); + auto y2Label = obj_y2Label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_y2Label, JNI_FALSE); + auto y3Label = obj_y3Label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_y3Label, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImPlot::BeginPlot(titleID, xLabel, yLabel, size, flags, xFlags, yFlags, y2Flags, y3Flags, y2Label, y3Label); + if (titleID != NULL) env->ReleaseStringUTFChars(obj_titleID, titleID); + if (xLabel != NULL) env->ReleaseStringUTFChars(obj_xLabel, xLabel); + if (yLabel != NULL) env->ReleaseStringUTFChars(obj_yLabel, yLabel); + if (y2Label != NULL) env->ReleaseStringUTFChars(obj_y2Label, y2Label); + if (y3Label != NULL) env->ReleaseStringUTFChars(obj_y3Label, y3Label); + return _result; + */ + + private static native boolean nBeginPlot(String obj_titleID, String obj_xLabel, String obj_yLabel, int flags, int xFlags, int yFlags, int y2Flags, int y3Flags, String obj_y2Label, String obj_y3Label); /*MANUAL + auto titleID = obj_titleID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_titleID, JNI_FALSE); + auto xLabel = obj_xLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_xLabel, JNI_FALSE); + auto yLabel = obj_yLabel == NULL ? NULL : (char*)env->GetStringUTFChars(obj_yLabel, JNI_FALSE); + auto y2Label = obj_y2Label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_y2Label, JNI_FALSE); + auto y3Label = obj_y3Label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_y3Label, JNI_FALSE); + auto _result = ImPlot::BeginPlot(titleID, xLabel, yLabel, ImVec2(-1,0), flags, xFlags, yFlags, y2Flags, y3Flags, y2Label, y3Label); + if (titleID != NULL) env->ReleaseStringUTFChars(obj_titleID, titleID); + if (xLabel != NULL) env->ReleaseStringUTFChars(obj_xLabel, xLabel); + if (yLabel != NULL) env->ReleaseStringUTFChars(obj_yLabel, yLabel); + if (y2Label != NULL) env->ReleaseStringUTFChars(obj_y2Label, y2Label); + if (y3Label != NULL) env->ReleaseStringUTFChars(obj_y3Label, y3Label); + return _result; + */ + + /** + * Only call EndPlot() if beginPlot() returns true! Typically called at the end + * of an if statement conditioned on BeginPlot(). See example in beginPlot(). + */ + public static void endPlot() { + nEndPlot(); + } + + private static native void nEndPlot(); /* + ImPlot::EndPlot(); + */ + + //----------------------------------------------------------------------------- + // Begin/EndSubplots + //----------------------------------------------------------------------------- + + // Starts a subdivided plotting context. If the function returns true, + // EndSubplots() MUST be called! Call BeginPlot/EndPlot AT MOST [rows*cols] + // times in between the begining and end of the subplot context. Plots are + // added in row major order. + // + // Example: + // + // if (BeginSubplots("My Subplot",2,3,ImVec2(800,400)) { + // for (int i = 0; i < 6; ++i) { + // if (BeginPlot(...)) { + // ImPlot::PlotLine(...); + // ... + // EndPlot(); + // } + // } + // EndSubplots(); + // } + // + // Produces: + // + // [0][1][2] + // [3][4][5] + // + // Important notes: + // + // - #title_id must be unique to the current ImGui ID scope. If you need to avoid ID + // collisions or don't want to display a title in the plot, use double hashes + // (e.g. "MyPlot##HiddenIdText" or "##NoTitle"). + // - #rows and #cols must be greater than 0. + // - #size is the size of the entire grid of subplots, not the individual plots + // - #row_ratios and #col_ratios must have AT LEAST #rows and #cols elements, + // respectively. These are the sizes of the rows and columns expressed in ratios. + // If the user adjusts the dimensions, the arrays are updated with new ratios. + // + // Important notes regarding BeginPlot from inside of BeginSubplots: + // + // - The #title_id parameter of _BeginPlot_ (see above) does NOT have to be + // unique when called inside of a subplot context. Subplot IDs are hashed + // for your convenience so you don't have call PushID or generate unique title + // strings. Simply pass an empty string to BeginPlot unless you want to title + // each subplot. + // - The #size parameter of _BeginPlot_ (see above) is ignored when inside of a + // subplot context. The actual size of the subplot will be based on the + // #size value you pass to _BeginSubplots_ and #row/#col_ratios if provided. + + public static boolean beginSubplots(final String titleID, final int rows, final int cols, final ImVec2 size) { + return nBeginSubplots(titleID, rows, cols, size.x, size.y); + } + + public static boolean beginSubplots(final String titleID, final int rows, final int cols, final float sizeX, final float sizeY) { + return nBeginSubplots(titleID, rows, cols, sizeX, sizeY); + } + + public static boolean beginSubplots(final String titleID, final int rows, final int cols, final ImVec2 size, final int flags) { + return nBeginSubplots(titleID, rows, cols, size.x, size.y, flags); + } + + public static boolean beginSubplots(final String titleID, final int rows, final int cols, final float sizeX, final float sizeY, final int flags) { + return nBeginSubplots(titleID, rows, cols, sizeX, sizeY, flags); + } + + public static boolean beginSubplots(final String titleID, final int rows, final int cols, final ImVec2 size, final int flags, final float[] rowRatios) { + return nBeginSubplots(titleID, rows, cols, size.x, size.y, flags, rowRatios); + } + + public static boolean beginSubplots(final String titleID, final int rows, final int cols, final float sizeX, final float sizeY, final int flags, final float[] rowRatios) { + return nBeginSubplots(titleID, rows, cols, sizeX, sizeY, flags, rowRatios); + } + + public static boolean beginSubplots(final String titleID, final int rows, final int cols, final ImVec2 size, final int flags, final float[] rowRatios, final float[] colRatios) { + return nBeginSubplots(titleID, rows, cols, size.x, size.y, flags, rowRatios, colRatios); + } + + public static boolean beginSubplots(final String titleID, final int rows, final int cols, final float sizeX, final float sizeY, final int flags, final float[] rowRatios, final float[] colRatios) { + return nBeginSubplots(titleID, rows, cols, sizeX, sizeY, flags, rowRatios, colRatios); + } + + public static boolean beginSubplots(final String titleID, final int rows, final int cols, final ImVec2 size, final float[] rowRatios, final float[] colRatios) { + return nBeginSubplots(titleID, rows, cols, size.x, size.y, rowRatios, colRatios); + } + + public static boolean beginSubplots(final String titleID, final int rows, final int cols, final float sizeX, final float sizeY, final float[] rowRatios, final float[] colRatios) { + return nBeginSubplots(titleID, rows, cols, sizeX, sizeY, rowRatios, colRatios); + } + + private static native boolean nBeginSubplots(String obj_titleID, int rows, int cols, float sizeX, float sizeY); /*MANUAL + auto titleID = obj_titleID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_titleID, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImPlot::BeginSubplots(titleID, rows, cols, size); + if (titleID != NULL) env->ReleaseStringUTFChars(obj_titleID, titleID); + return _result; + */ + + private static native boolean nBeginSubplots(String obj_titleID, int rows, int cols, float sizeX, float sizeY, int flags); /*MANUAL + auto titleID = obj_titleID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_titleID, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImPlot::BeginSubplots(titleID, rows, cols, size, flags); + if (titleID != NULL) env->ReleaseStringUTFChars(obj_titleID, titleID); + return _result; + */ + + private static native boolean nBeginSubplots(String obj_titleID, int rows, int cols, float sizeX, float sizeY, int flags, float[] obj_rowRatios); /*MANUAL + auto titleID = obj_titleID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_titleID, JNI_FALSE); + auto rowRatios = obj_rowRatios == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_rowRatios, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImPlot::BeginSubplots(titleID, rows, cols, size, flags, &rowRatios[0]); + if (titleID != NULL) env->ReleaseStringUTFChars(obj_titleID, titleID); + if (rowRatios != NULL) env->ReleasePrimitiveArrayCritical(obj_rowRatios, rowRatios, JNI_FALSE); + return _result; + */ + + private static native boolean nBeginSubplots(String obj_titleID, int rows, int cols, float sizeX, float sizeY, int flags, float[] obj_rowRatios, float[] obj_colRatios); /*MANUAL + auto titleID = obj_titleID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_titleID, JNI_FALSE); + auto rowRatios = obj_rowRatios == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_rowRatios, JNI_FALSE); + auto colRatios = obj_colRatios == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_colRatios, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImPlot::BeginSubplots(titleID, rows, cols, size, flags, &rowRatios[0], &colRatios[0]); + if (titleID != NULL) env->ReleaseStringUTFChars(obj_titleID, titleID); + if (rowRatios != NULL) env->ReleasePrimitiveArrayCritical(obj_rowRatios, rowRatios, JNI_FALSE); + if (colRatios != NULL) env->ReleasePrimitiveArrayCritical(obj_colRatios, colRatios, JNI_FALSE); + return _result; + */ + + private static native boolean nBeginSubplots(String obj_titleID, int rows, int cols, float sizeX, float sizeY, float[] obj_rowRatios, float[] obj_colRatios); /*MANUAL + auto titleID = obj_titleID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_titleID, JNI_FALSE); + auto rowRatios = obj_rowRatios == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_rowRatios, JNI_FALSE); + auto colRatios = obj_colRatios == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_colRatios, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImPlot::BeginSubplots(titleID, rows, cols, size, ImPlotSubplotFlags_None, &rowRatios[0], &colRatios[0]); + if (titleID != NULL) env->ReleaseStringUTFChars(obj_titleID, titleID); + if (rowRatios != NULL) env->ReleasePrimitiveArrayCritical(obj_rowRatios, rowRatios, JNI_FALSE); + if (colRatios != NULL) env->ReleasePrimitiveArrayCritical(obj_colRatios, colRatios, JNI_FALSE); + return _result; + */ + + /** + * Only call EndSubplots() if BeginSubplots() returns true! Typically called at the end + * of an if statement conditioned on BeginSublots(). See example above. + */ + public static void endSubplots() { + nEndSubplots(); + } + + private static native void nEndSubplots(); /* + ImPlot::EndSubplots(); + */ + + //----------------------------------------------------------------------------- + // Plot Items + //----------------------------------------------------------------------------- + + /*JNI + // For a proper type conversion, since C++ doesn't have a "long" type. + #define long ImS64 + #define LEN(arg) (int)env->GetArrayLength(obj_##arg) + */ + + // The template functions below are explicitly instantiated in implot_items.cpp. + // They are not intended to be used generically with custom types. You will get + // a linker error if you try! All functions support the following scalar types: + // + // float, double, ImS8, ImU8, ImS16, ImU16, ImS32, ImU32, ImS64, ImU64 + // + // + // If you need to plot custom or non-homogenous data you have a few options: + // + // 1. If your data is a simple struct/class (e.g. Vector2f), you can use striding. + // This is the most performant option if applicable. + // + // struct Vector2f { float X, Y; }; + // ... + // Vector2f data[42]; + // ImPlot::PlotLine("line", &data[0].x, &data[0].y, 42, 0, sizeof(Vector2f)); // or sizeof(float)*2 + // + // 2. Write a custom getter C function or C++ lambda and pass it and optionally your data to + // an ImPlot function post-fixed with a G (e.g. PlotScatterG). This has a slight performance + // cost, but probably not enough to worry about unless your data is very large. Examples: + // + // ImPlotPoint MyDataGetter(void* data, int idx) { + // MyData* my_data = (MyData*)data; + // ImPlotPoint p; + // p.x = my_data->GetTime(idx); + // p.y = my_data->GetValue(idx); + // return p + // } + // ... + // auto my_lambda = [](void*, int idx) { + // double t = idx / 999.0; + // return ImPlotPoint(t, 0.5+0.5*std::sin(2*PI*10*t)); + // }; + // ... + // if (ImPlot::BeginPlot("MyPlot")) { + // MyData my_data; + // ImPlot::PlotScatterG("scatter", MyDataGetter, &my_data, my_data.Size()); + // ImPlot::PlotLineG("line", my_lambda, nullptr, 1000); + // ImPlot::EndPlot(); + // } + // + // NB: All types are converted to double before plotting. You may lose information + // if you try plotting extremely large 64-bit integral types. Proceed with caution! + + // values + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final short[] values) { + nPlotLine(labelId, values); + } + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final short[] values, final double xscale) { + nPlotLine(labelId, values, xscale); + } + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final short[] values, final double xscale, final double x0) { + nPlotLine(labelId, values, xscale, x0); + } + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final short[] values, final double xscale, final double x0, final int offset) { + nPlotLine(labelId, values, xscale, x0, offset); + } + + private static native void nPlotLine(String labelId, short[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotLine(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotLine(String labelId, short[] values, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotLine(labelId, &values[0], LEN(values), xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotLine(String labelId, short[] values, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotLine(labelId, &values[0], LEN(values), xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotLine(String labelId, short[] values, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotLine(labelId, &values[0], LEN(values), xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final int[] values) { + nPlotLine(labelId, values); + } + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final int[] values, final double xscale) { + nPlotLine(labelId, values, xscale); + } + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final int[] values, final double xscale, final double x0) { + nPlotLine(labelId, values, xscale, x0); + } + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final int[] values, final double xscale, final double x0, final int offset) { + nPlotLine(labelId, values, xscale, x0, offset); + } + + private static native void nPlotLine(String labelId, int[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotLine(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotLine(String labelId, int[] values, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotLine(labelId, &values[0], LEN(values), xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotLine(String labelId, int[] values, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotLine(labelId, &values[0], LEN(values), xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotLine(String labelId, int[] values, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotLine(labelId, &values[0], LEN(values), xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final long[] values) { + nPlotLine(labelId, values); + } + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final long[] values, final double xscale) { + nPlotLine(labelId, values, xscale); + } + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final long[] values, final double xscale, final double x0) { + nPlotLine(labelId, values, xscale, x0); + } + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final long[] values, final double xscale, final double x0, final int offset) { + nPlotLine(labelId, values, xscale, x0, offset); + } + + private static native void nPlotLine(String labelId, long[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotLine(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotLine(String labelId, long[] values, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotLine(labelId, &values[0], LEN(values), xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotLine(String labelId, long[] values, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotLine(labelId, &values[0], LEN(values), xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotLine(String labelId, long[] values, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotLine(labelId, &values[0], LEN(values), xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final float[] values) { + nPlotLine(labelId, values); + } + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final float[] values, final double xscale) { + nPlotLine(labelId, values, xscale); + } + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final float[] values, final double xscale, final double x0) { + nPlotLine(labelId, values, xscale, x0); + } + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final float[] values, final double xscale, final double x0, final int offset) { + nPlotLine(labelId, values, xscale, x0, offset); + } + + private static native void nPlotLine(String labelId, float[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotLine(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotLine(String labelId, float[] values, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotLine(labelId, &values[0], LEN(values), xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotLine(String labelId, float[] values, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotLine(labelId, &values[0], LEN(values), xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotLine(String labelId, float[] values, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotLine(labelId, &values[0], LEN(values), xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final double[] values) { + nPlotLine(labelId, values); + } + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final double[] values, final double xscale) { + nPlotLine(labelId, values, xscale); + } + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final double[] values, final double xscale, final double x0) { + nPlotLine(labelId, values, xscale, x0); + } + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final double[] values, final double xscale, final double x0, final int offset) { + nPlotLine(labelId, values, xscale, x0, offset); + } + + private static native void nPlotLine(String labelId, double[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotLine(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotLine(String labelId, double[] values, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotLine(labelId, &values[0], LEN(values), xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotLine(String labelId, double[] values, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotLine(labelId, &values[0], LEN(values), xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotLine(String labelId, double[] values, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotLine(labelId, &values[0], LEN(values), xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + // xs,ys + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final short[] xs, final short[] ys) { + nPlotLine(labelId, xs, ys); + } + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final short[] xs, final short[] ys, final int offset) { + nPlotLine(labelId, xs, ys, offset); + } + + private static native void nPlotLine(String labelId, short[] xs, short[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotLine(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotLine(String labelId, short[] xs, short[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotLine(labelId, &xs[0], &ys[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final int[] xs, final int[] ys) { + nPlotLine(labelId, xs, ys); + } + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final int[] xs, final int[] ys, final int offset) { + nPlotLine(labelId, xs, ys, offset); + } + + private static native void nPlotLine(String labelId, int[] xs, int[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotLine(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotLine(String labelId, int[] xs, int[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotLine(labelId, &xs[0], &ys[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final long[] xs, final long[] ys) { + nPlotLine(labelId, xs, ys); + } + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final long[] xs, final long[] ys, final int offset) { + nPlotLine(labelId, xs, ys, offset); + } + + private static native void nPlotLine(String labelId, long[] xs, long[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotLine(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotLine(String labelId, long[] xs, long[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotLine(labelId, &xs[0], &ys[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final float[] xs, final float[] ys) { + nPlotLine(labelId, xs, ys); + } + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final float[] xs, final float[] ys, final int offset) { + nPlotLine(labelId, xs, ys, offset); + } + + private static native void nPlotLine(String labelId, float[] xs, float[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotLine(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotLine(String labelId, float[] xs, float[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotLine(labelId, &xs[0], &ys[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final double[] xs, final double[] ys) { + nPlotLine(labelId, xs, ys); + } + + /** + * Plots a standard 2D line plot. + */ + public static void plotLine(final String labelId, final double[] xs, final double[] ys, final int offset) { + nPlotLine(labelId, xs, ys, offset); + } + + private static native void nPlotLine(String labelId, double[] xs, double[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotLine(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotLine(String labelId, double[] xs, double[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotLine(labelId, &xs[0], &ys[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + // values + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final short[] values) { + nPlotScatter(labelId, values); + } + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final short[] values, final double xscale) { + nPlotScatter(labelId, values, xscale); + } + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final short[] values, final double xscale, final double x0) { + nPlotScatter(labelId, values, xscale, x0); + } + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final short[] values, final double xscale, final double x0, final int offset) { + nPlotScatter(labelId, values, xscale, x0, offset); + } + + private static native void nPlotScatter(String labelId, short[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotScatter(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotScatter(String labelId, short[] values, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotScatter(labelId, &values[0], LEN(values), xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotScatter(String labelId, short[] values, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotScatter(labelId, &values[0], LEN(values), xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotScatter(String labelId, short[] values, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotScatter(labelId, &values[0], LEN(values), xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final int[] values) { + nPlotScatter(labelId, values); + } + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final int[] values, final double xscale) { + nPlotScatter(labelId, values, xscale); + } + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final int[] values, final double xscale, final double x0) { + nPlotScatter(labelId, values, xscale, x0); + } + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final int[] values, final double xscale, final double x0, final int offset) { + nPlotScatter(labelId, values, xscale, x0, offset); + } + + private static native void nPlotScatter(String labelId, int[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotScatter(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotScatter(String labelId, int[] values, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotScatter(labelId, &values[0], LEN(values), xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotScatter(String labelId, int[] values, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotScatter(labelId, &values[0], LEN(values), xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotScatter(String labelId, int[] values, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotScatter(labelId, &values[0], LEN(values), xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final long[] values) { + nPlotScatter(labelId, values); + } + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final long[] values, final double xscale) { + nPlotScatter(labelId, values, xscale); + } + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final long[] values, final double xscale, final double x0) { + nPlotScatter(labelId, values, xscale, x0); + } + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final long[] values, final double xscale, final double x0, final int offset) { + nPlotScatter(labelId, values, xscale, x0, offset); + } + + private static native void nPlotScatter(String labelId, long[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotScatter(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotScatter(String labelId, long[] values, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotScatter(labelId, &values[0], LEN(values), xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotScatter(String labelId, long[] values, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotScatter(labelId, &values[0], LEN(values), xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotScatter(String labelId, long[] values, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotScatter(labelId, &values[0], LEN(values), xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final float[] values) { + nPlotScatter(labelId, values); + } + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final float[] values, final double xscale) { + nPlotScatter(labelId, values, xscale); + } + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final float[] values, final double xscale, final double x0) { + nPlotScatter(labelId, values, xscale, x0); + } + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final float[] values, final double xscale, final double x0, final int offset) { + nPlotScatter(labelId, values, xscale, x0, offset); + } + + private static native void nPlotScatter(String labelId, float[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotScatter(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotScatter(String labelId, float[] values, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotScatter(labelId, &values[0], LEN(values), xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotScatter(String labelId, float[] values, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotScatter(labelId, &values[0], LEN(values), xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotScatter(String labelId, float[] values, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotScatter(labelId, &values[0], LEN(values), xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final double[] values) { + nPlotScatter(labelId, values); + } + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final double[] values, final double xscale) { + nPlotScatter(labelId, values, xscale); + } + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final double[] values, final double xscale, final double x0) { + nPlotScatter(labelId, values, xscale, x0); + } + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final double[] values, final double xscale, final double x0, final int offset) { + nPlotScatter(labelId, values, xscale, x0, offset); + } + + private static native void nPlotScatter(String labelId, double[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotScatter(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotScatter(String labelId, double[] values, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotScatter(labelId, &values[0], LEN(values), xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotScatter(String labelId, double[] values, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotScatter(labelId, &values[0], LEN(values), xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotScatter(String labelId, double[] values, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotScatter(labelId, &values[0], LEN(values), xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + // xs,ys + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final short[] xs, final short[] ys) { + nPlotScatter(labelId, xs, ys); + } + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final short[] xs, final short[] ys, final int offset) { + nPlotScatter(labelId, xs, ys, offset); + } + + private static native void nPlotScatter(String labelId, short[] xs, short[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotScatter(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotScatter(String labelId, short[] xs, short[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotScatter(labelId, &xs[0], &ys[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final int[] xs, final int[] ys) { + nPlotScatter(labelId, xs, ys); + } + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final int[] xs, final int[] ys, final int offset) { + nPlotScatter(labelId, xs, ys, offset); + } + + private static native void nPlotScatter(String labelId, int[] xs, int[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotScatter(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotScatter(String labelId, int[] xs, int[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotScatter(labelId, &xs[0], &ys[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final long[] xs, final long[] ys) { + nPlotScatter(labelId, xs, ys); + } + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final long[] xs, final long[] ys, final int offset) { + nPlotScatter(labelId, xs, ys, offset); + } + + private static native void nPlotScatter(String labelId, long[] xs, long[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotScatter(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotScatter(String labelId, long[] xs, long[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotScatter(labelId, &xs[0], &ys[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final float[] xs, final float[] ys) { + nPlotScatter(labelId, xs, ys); + } + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final float[] xs, final float[] ys, final int offset) { + nPlotScatter(labelId, xs, ys, offset); + } + + private static native void nPlotScatter(String labelId, float[] xs, float[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotScatter(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotScatter(String labelId, float[] xs, float[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotScatter(labelId, &xs[0], &ys[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final double[] xs, final double[] ys) { + nPlotScatter(labelId, xs, ys); + } + + /** + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. + */ + public static void plotScatter(final String labelId, final double[] xs, final double[] ys, final int offset) { + nPlotScatter(labelId, xs, ys, offset); + } + + private static native void nPlotScatter(String labelId, double[] xs, double[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotScatter(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotScatter(String labelId, double[] xs, double[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotScatter(labelId, &xs[0], &ys[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + // values + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final short[] values) { + nPlotStairs(labelId, values); + } + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final short[] values, final double xscale) { + nPlotStairs(labelId, values, xscale); + } + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final short[] values, final double xscale, final double x0) { + nPlotStairs(labelId, values, xscale, x0); + } + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final short[] values, final double xscale, final double x0, final int offset) { + nPlotStairs(labelId, values, xscale, x0, offset); + } + + private static native void nPlotStairs(String labelId, short[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStairs(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStairs(String labelId, short[] values, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStairs(labelId, &values[0], LEN(values), xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStairs(String labelId, short[] values, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStairs(labelId, &values[0], LEN(values), xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStairs(String labelId, short[] values, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStairs(labelId, &values[0], LEN(values), xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final int[] values) { + nPlotStairs(labelId, values); + } + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final int[] values, final double xscale) { + nPlotStairs(labelId, values, xscale); + } + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final int[] values, final double xscale, final double x0) { + nPlotStairs(labelId, values, xscale, x0); + } + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final int[] values, final double xscale, final double x0, final int offset) { + nPlotStairs(labelId, values, xscale, x0, offset); + } + + private static native void nPlotStairs(String labelId, int[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStairs(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStairs(String labelId, int[] values, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStairs(labelId, &values[0], LEN(values), xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStairs(String labelId, int[] values, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStairs(labelId, &values[0], LEN(values), xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStairs(String labelId, int[] values, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStairs(labelId, &values[0], LEN(values), xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final long[] values) { + nPlotStairs(labelId, values); + } + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final long[] values, final double xscale) { + nPlotStairs(labelId, values, xscale); + } + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final long[] values, final double xscale, final double x0) { + nPlotStairs(labelId, values, xscale, x0); + } + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final long[] values, final double xscale, final double x0, final int offset) { + nPlotStairs(labelId, values, xscale, x0, offset); + } + + private static native void nPlotStairs(String labelId, long[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStairs(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStairs(String labelId, long[] values, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStairs(labelId, &values[0], LEN(values), xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStairs(String labelId, long[] values, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStairs(labelId, &values[0], LEN(values), xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStairs(String labelId, long[] values, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStairs(labelId, &values[0], LEN(values), xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final float[] values) { + nPlotStairs(labelId, values); + } + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final float[] values, final double xscale) { + nPlotStairs(labelId, values, xscale); + } + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final float[] values, final double xscale, final double x0) { + nPlotStairs(labelId, values, xscale, x0); + } + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final float[] values, final double xscale, final double x0, final int offset) { + nPlotStairs(labelId, values, xscale, x0, offset); + } + + private static native void nPlotStairs(String labelId, float[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStairs(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStairs(String labelId, float[] values, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStairs(labelId, &values[0], LEN(values), xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStairs(String labelId, float[] values, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStairs(labelId, &values[0], LEN(values), xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStairs(String labelId, float[] values, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStairs(labelId, &values[0], LEN(values), xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final double[] values) { + nPlotStairs(labelId, values); + } + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final double[] values, final double xscale) { + nPlotStairs(labelId, values, xscale); + } + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final double[] values, final double xscale, final double x0) { + nPlotStairs(labelId, values, xscale, x0); + } + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final double[] values, final double xscale, final double x0, final int offset) { + nPlotStairs(labelId, values, xscale, x0, offset); + } + + private static native void nPlotStairs(String labelId, double[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStairs(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStairs(String labelId, double[] values, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStairs(labelId, &values[0], LEN(values), xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStairs(String labelId, double[] values, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStairs(labelId, &values[0], LEN(values), xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStairs(String labelId, double[] values, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStairs(labelId, &values[0], LEN(values), xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + // xs,ys + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final short[] xs, final short[] ys) { + nPlotStairs(labelId, xs, ys); + } + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final short[] xs, final short[] ys, final int offset) { + nPlotStairs(labelId, xs, ys, offset); + } + + private static native void nPlotStairs(String labelId, short[] xs, short[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStairs(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotStairs(String labelId, short[] xs, short[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStairs(labelId, &xs[0], &ys[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final int[] xs, final int[] ys) { + nPlotStairs(labelId, xs, ys); + } + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final int[] xs, final int[] ys, final int offset) { + nPlotStairs(labelId, xs, ys, offset); + } + + private static native void nPlotStairs(String labelId, int[] xs, int[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStairs(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotStairs(String labelId, int[] xs, int[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStairs(labelId, &xs[0], &ys[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final long[] xs, final long[] ys) { + nPlotStairs(labelId, xs, ys); + } + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final long[] xs, final long[] ys, final int offset) { + nPlotStairs(labelId, xs, ys, offset); + } + + private static native void nPlotStairs(String labelId, long[] xs, long[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStairs(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotStairs(String labelId, long[] xs, long[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStairs(labelId, &xs[0], &ys[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final float[] xs, final float[] ys) { + nPlotStairs(labelId, xs, ys); + } + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final float[] xs, final float[] ys, final int offset) { + nPlotStairs(labelId, xs, ys, offset); + } + + private static native void nPlotStairs(String labelId, float[] xs, float[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStairs(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotStairs(String labelId, float[] xs, float[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStairs(labelId, &xs[0], &ys[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final double[] xs, final double[] ys) { + nPlotStairs(labelId, xs, ys); + } + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + public static void plotStairs(final String labelId, final double[] xs, final double[] ys, final int offset) { + nPlotStairs(labelId, xs, ys, offset); + } + + private static native void nPlotStairs(String labelId, double[] xs, double[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStairs(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotStairs(String labelId, double[] xs, double[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStairs(labelId, &xs[0], &ys[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + // values + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final short[] values) { + nPlotShaded(labelId, values); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final short[] values, final double yRef) { + nPlotShaded(labelId, values, yRef); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final short[] values, final double yRef, final double xscale) { + nPlotShaded(labelId, values, yRef, xscale); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final short[] values, final double yRef, final double xscale, final double x0) { + nPlotShaded(labelId, values, yRef, xscale, x0); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final short[] values, final double yRef, final double xscale, final double x0, final int offset) { + nPlotShaded(labelId, values, yRef, xscale, x0, offset); + } + + private static native void nPlotShaded(String labelId, short[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, short[] values, double yRef); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values), yRef); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, short[] values, double yRef, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values), yRef, xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, short[] values, double yRef, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values), yRef, xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, short[] values, double yRef, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values), yRef, xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final int[] values) { + nPlotShaded(labelId, values); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final int[] values, final double yRef) { + nPlotShaded(labelId, values, yRef); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final int[] values, final double yRef, final double xscale) { + nPlotShaded(labelId, values, yRef, xscale); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final int[] values, final double yRef, final double xscale, final double x0) { + nPlotShaded(labelId, values, yRef, xscale, x0); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final int[] values, final double yRef, final double xscale, final double x0, final int offset) { + nPlotShaded(labelId, values, yRef, xscale, x0, offset); + } + + private static native void nPlotShaded(String labelId, int[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, int[] values, double yRef); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values), yRef); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, int[] values, double yRef, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values), yRef, xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, int[] values, double yRef, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values), yRef, xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, int[] values, double yRef, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values), yRef, xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final long[] values) { + nPlotShaded(labelId, values); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final long[] values, final double yRef) { + nPlotShaded(labelId, values, yRef); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final long[] values, final double yRef, final double xscale) { + nPlotShaded(labelId, values, yRef, xscale); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final long[] values, final double yRef, final double xscale, final double x0) { + nPlotShaded(labelId, values, yRef, xscale, x0); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final long[] values, final double yRef, final double xscale, final double x0, final int offset) { + nPlotShaded(labelId, values, yRef, xscale, x0, offset); + } + + private static native void nPlotShaded(String labelId, long[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, long[] values, double yRef); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values), yRef); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, long[] values, double yRef, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values), yRef, xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, long[] values, double yRef, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values), yRef, xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, long[] values, double yRef, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values), yRef, xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final float[] values) { + nPlotShaded(labelId, values); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final float[] values, final double yRef) { + nPlotShaded(labelId, values, yRef); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final float[] values, final double yRef, final double xscale) { + nPlotShaded(labelId, values, yRef, xscale); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final float[] values, final double yRef, final double xscale, final double x0) { + nPlotShaded(labelId, values, yRef, xscale, x0); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final float[] values, final double yRef, final double xscale, final double x0, final int offset) { + nPlotShaded(labelId, values, yRef, xscale, x0, offset); + } + + private static native void nPlotShaded(String labelId, float[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, float[] values, double yRef); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values), yRef); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, float[] values, double yRef, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values), yRef, xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, float[] values, double yRef, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values), yRef, xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, float[] values, double yRef, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values), yRef, xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final double[] values) { + nPlotShaded(labelId, values); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final double[] values, final double yRef) { + nPlotShaded(labelId, values, yRef); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final double[] values, final double yRef, final double xscale) { + nPlotShaded(labelId, values, yRef, xscale); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final double[] values, final double yRef, final double xscale, final double x0) { + nPlotShaded(labelId, values, yRef, xscale, x0); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final double[] values, final double yRef, final double xscale, final double x0, final int offset) { + nPlotShaded(labelId, values, yRef, xscale, x0, offset); + } + + private static native void nPlotShaded(String labelId, double[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, double[] values, double yRef); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values), yRef); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, double[] values, double yRef, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values), yRef, xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, double[] values, double yRef, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values), yRef, xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, double[] values, double yRef, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotShaded(labelId, &values[0], LEN(values), yRef, xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + // xs,ys + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final short[] xs, final short[] ys) { + nPlotShaded(labelId, xs, ys); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final short[] xs, final short[] ys, final double yRef) { + nPlotShaded(labelId, xs, ys, yRef); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final short[] xs, final short[] ys, final double yRef, final int offset) { + nPlotShaded(labelId, xs, ys, yRef, offset); + } + + private static native void nPlotShaded(String labelId, short[] xs, short[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, short[] xs, short[] ys, double yRef); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys[0], LEN(xs), yRef); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, short[] xs, short[] ys, double yRef, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys[0], LEN(xs), yRef, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final int[] xs, final int[] ys) { + nPlotShaded(labelId, xs, ys); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final int[] xs, final int[] ys, final double yRef) { + nPlotShaded(labelId, xs, ys, yRef); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final int[] xs, final int[] ys, final double yRef, final int offset) { + nPlotShaded(labelId, xs, ys, yRef, offset); + } + + private static native void nPlotShaded(String labelId, int[] xs, int[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, int[] xs, int[] ys, double yRef); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys[0], LEN(xs), yRef); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, int[] xs, int[] ys, double yRef, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys[0], LEN(xs), yRef, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final long[] xs, final long[] ys) { + nPlotShaded(labelId, xs, ys); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final long[] xs, final long[] ys, final double yRef) { + nPlotShaded(labelId, xs, ys, yRef); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final long[] xs, final long[] ys, final double yRef, final int offset) { + nPlotShaded(labelId, xs, ys, yRef, offset); + } + + private static native void nPlotShaded(String labelId, long[] xs, long[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, long[] xs, long[] ys, double yRef); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys[0], LEN(xs), yRef); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, long[] xs, long[] ys, double yRef, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys[0], LEN(xs), yRef, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final float[] xs, final float[] ys) { + nPlotShaded(labelId, xs, ys); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final float[] xs, final float[] ys, final double yRef) { + nPlotShaded(labelId, xs, ys, yRef); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final float[] xs, final float[] ys, final double yRef, final int offset) { + nPlotShaded(labelId, xs, ys, yRef, offset); + } + + private static native void nPlotShaded(String labelId, float[] xs, float[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, float[] xs, float[] ys, double yRef); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys[0], LEN(xs), yRef); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, float[] xs, float[] ys, double yRef, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys[0], LEN(xs), yRef, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final double[] xs, final double[] ys) { + nPlotShaded(labelId, xs, ys); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final double[] xs, final double[] ys, final double yRef) { + nPlotShaded(labelId, xs, ys, yRef); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final double[] xs, final double[] ys, final double yRef, final int offset) { + nPlotShaded(labelId, xs, ys, yRef, offset); + } + + private static native void nPlotShaded(String labelId, double[] xs, double[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, double[] xs, double[] ys, double yRef); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys[0], LEN(xs), yRef); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, double[] xs, double[] ys, double yRef, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys[0], LEN(xs), yRef, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + // xs,ys1,ys2 + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final short[] xs, final short[] ys1, final short[] ys2) { + nPlotShaded(labelId, xs, ys1, ys2); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final short[] xs, final short[] ys1, final short[] ys2, final int offset) { + nPlotShaded(labelId, xs, ys1, ys2, offset); + } + + private static native void nPlotShaded(String labelId, short[] xs, short[] ys1, short[] ys2); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys1 = obj_ys1 == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys1, JNI_FALSE); + auto ys2 = obj_ys2 == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys2, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys1[0], &ys2[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys1 != NULL) env->ReleasePrimitiveArrayCritical(obj_ys1, ys1, JNI_FALSE); + if (ys2 != NULL) env->ReleasePrimitiveArrayCritical(obj_ys2, ys2, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, short[] xs, short[] ys1, short[] ys2, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys1 = obj_ys1 == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys1, JNI_FALSE); + auto ys2 = obj_ys2 == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys2, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys1[0], &ys2[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys1 != NULL) env->ReleasePrimitiveArrayCritical(obj_ys1, ys1, JNI_FALSE); + if (ys2 != NULL) env->ReleasePrimitiveArrayCritical(obj_ys2, ys2, JNI_FALSE); + */ + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final int[] xs, final int[] ys1, final int[] ys2) { + nPlotShaded(labelId, xs, ys1, ys2); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final int[] xs, final int[] ys1, final int[] ys2, final int offset) { + nPlotShaded(labelId, xs, ys1, ys2, offset); + } + + private static native void nPlotShaded(String labelId, int[] xs, int[] ys1, int[] ys2); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys1 = obj_ys1 == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys1, JNI_FALSE); + auto ys2 = obj_ys2 == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys2, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys1[0], &ys2[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys1 != NULL) env->ReleasePrimitiveArrayCritical(obj_ys1, ys1, JNI_FALSE); + if (ys2 != NULL) env->ReleasePrimitiveArrayCritical(obj_ys2, ys2, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, int[] xs, int[] ys1, int[] ys2, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys1 = obj_ys1 == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys1, JNI_FALSE); + auto ys2 = obj_ys2 == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys2, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys1[0], &ys2[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys1 != NULL) env->ReleasePrimitiveArrayCritical(obj_ys1, ys1, JNI_FALSE); + if (ys2 != NULL) env->ReleasePrimitiveArrayCritical(obj_ys2, ys2, JNI_FALSE); + */ + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final long[] xs, final long[] ys1, final long[] ys2) { + nPlotShaded(labelId, xs, ys1, ys2); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final long[] xs, final long[] ys1, final long[] ys2, final int offset) { + nPlotShaded(labelId, xs, ys1, ys2, offset); + } + + private static native void nPlotShaded(String labelId, long[] xs, long[] ys1, long[] ys2); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys1 = obj_ys1 == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys1, JNI_FALSE); + auto ys2 = obj_ys2 == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys2, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys1[0], &ys2[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys1 != NULL) env->ReleasePrimitiveArrayCritical(obj_ys1, ys1, JNI_FALSE); + if (ys2 != NULL) env->ReleasePrimitiveArrayCritical(obj_ys2, ys2, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, long[] xs, long[] ys1, long[] ys2, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys1 = obj_ys1 == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys1, JNI_FALSE); + auto ys2 = obj_ys2 == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys2, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys1[0], &ys2[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys1 != NULL) env->ReleasePrimitiveArrayCritical(obj_ys1, ys1, JNI_FALSE); + if (ys2 != NULL) env->ReleasePrimitiveArrayCritical(obj_ys2, ys2, JNI_FALSE); + */ + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final float[] xs, final float[] ys1, final float[] ys2) { + nPlotShaded(labelId, xs, ys1, ys2); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final float[] xs, final float[] ys1, final float[] ys2, final int offset) { + nPlotShaded(labelId, xs, ys1, ys2, offset); + } + + private static native void nPlotShaded(String labelId, float[] xs, float[] ys1, float[] ys2); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys1 = obj_ys1 == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys1, JNI_FALSE); + auto ys2 = obj_ys2 == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys2, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys1[0], &ys2[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys1 != NULL) env->ReleasePrimitiveArrayCritical(obj_ys1, ys1, JNI_FALSE); + if (ys2 != NULL) env->ReleasePrimitiveArrayCritical(obj_ys2, ys2, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, float[] xs, float[] ys1, float[] ys2, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys1 = obj_ys1 == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys1, JNI_FALSE); + auto ys2 = obj_ys2 == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys2, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys1[0], &ys2[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys1 != NULL) env->ReleasePrimitiveArrayCritical(obj_ys1, ys1, JNI_FALSE); + if (ys2 != NULL) env->ReleasePrimitiveArrayCritical(obj_ys2, ys2, JNI_FALSE); + */ + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final double[] xs, final double[] ys1, final double[] ys2) { + nPlotShaded(labelId, xs, ys1, ys2); + } + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + public static void plotShaded(final String labelId, final double[] xs, final double[] ys1, final double[] ys2, final int offset) { + nPlotShaded(labelId, xs, ys1, ys2, offset); + } + + private static native void nPlotShaded(String labelId, double[] xs, double[] ys1, double[] ys2); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys1 = obj_ys1 == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys1, JNI_FALSE); + auto ys2 = obj_ys2 == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys2, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys1[0], &ys2[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys1 != NULL) env->ReleasePrimitiveArrayCritical(obj_ys1, ys1, JNI_FALSE); + if (ys2 != NULL) env->ReleasePrimitiveArrayCritical(obj_ys2, ys2, JNI_FALSE); + */ + + private static native void nPlotShaded(String labelId, double[] xs, double[] ys1, double[] ys2, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys1 = obj_ys1 == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys1, JNI_FALSE); + auto ys2 = obj_ys2 == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys2, JNI_FALSE); + ImPlot::PlotShaded(labelId, &xs[0], &ys1[0], &ys2[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys1 != NULL) env->ReleasePrimitiveArrayCritical(obj_ys1, ys1, JNI_FALSE); + if (ys2 != NULL) env->ReleasePrimitiveArrayCritical(obj_ys2, ys2, JNI_FALSE); + */ + + // values + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final short[] values) { + nPlotBars(labelId, values); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final short[] values, final double width) { + nPlotBars(labelId, values, width); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final short[] values, final double width, final double shift) { + nPlotBars(labelId, values, width, shift); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final short[] values, final double width, final double shift, final int offset) { + nPlotBars(labelId, values, width, shift, offset); + } + + private static native void nPlotBars(String labelId, short[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBars(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, short[] values, double width); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBars(labelId, &values[0], LEN(values), width); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, short[] values, double width, double shift); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBars(labelId, &values[0], LEN(values), width, shift); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, short[] values, double width, double shift, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBars(labelId, &values[0], LEN(values), width, shift, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final int[] values) { + nPlotBars(labelId, values); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final int[] values, final double width) { + nPlotBars(labelId, values, width); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final int[] values, final double width, final double shift) { + nPlotBars(labelId, values, width, shift); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final int[] values, final double width, final double shift, final int offset) { + nPlotBars(labelId, values, width, shift, offset); + } + + private static native void nPlotBars(String labelId, int[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBars(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, int[] values, double width); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBars(labelId, &values[0], LEN(values), width); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, int[] values, double width, double shift); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBars(labelId, &values[0], LEN(values), width, shift); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, int[] values, double width, double shift, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBars(labelId, &values[0], LEN(values), width, shift, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final long[] values) { + nPlotBars(labelId, values); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final long[] values, final double width) { + nPlotBars(labelId, values, width); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final long[] values, final double width, final double shift) { + nPlotBars(labelId, values, width, shift); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final long[] values, final double width, final double shift, final int offset) { + nPlotBars(labelId, values, width, shift, offset); + } + + private static native void nPlotBars(String labelId, long[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBars(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, long[] values, double width); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBars(labelId, &values[0], LEN(values), width); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, long[] values, double width, double shift); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBars(labelId, &values[0], LEN(values), width, shift); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, long[] values, double width, double shift, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBars(labelId, &values[0], LEN(values), width, shift, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final float[] values) { + nPlotBars(labelId, values); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final float[] values, final double width) { + nPlotBars(labelId, values, width); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final float[] values, final double width, final double shift) { + nPlotBars(labelId, values, width, shift); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final float[] values, final double width, final double shift, final int offset) { + nPlotBars(labelId, values, width, shift, offset); + } + + private static native void nPlotBars(String labelId, float[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBars(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, float[] values, double width); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBars(labelId, &values[0], LEN(values), width); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, float[] values, double width, double shift); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBars(labelId, &values[0], LEN(values), width, shift); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, float[] values, double width, double shift, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBars(labelId, &values[0], LEN(values), width, shift, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final double[] values) { + nPlotBars(labelId, values); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final double[] values, final double width) { + nPlotBars(labelId, values, width); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final double[] values, final double width, final double shift) { + nPlotBars(labelId, values, width, shift); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final double[] values, final double width, final double shift, final int offset) { + nPlotBars(labelId, values, width, shift, offset); + } + + private static native void nPlotBars(String labelId, double[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBars(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, double[] values, double width); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBars(labelId, &values[0], LEN(values), width); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, double[] values, double width, double shift); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBars(labelId, &values[0], LEN(values), width, shift); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, double[] values, double width, double shift, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBars(labelId, &values[0], LEN(values), width, shift, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + // xs,ys + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final short[] xs, final short[] ys, final double width) { + nPlotBars(labelId, xs, ys, width); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final short[] xs, final short[] ys, final double width, final int offset) { + nPlotBars(labelId, xs, ys, width, offset); + } + + private static native void nPlotBars(String labelId, short[] xs, short[] ys, double width); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBars(labelId, &xs[0], &ys[0], LEN(xs), width); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, short[] xs, short[] ys, double width, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBars(labelId, &xs[0], &ys[0], LEN(xs), width, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final int[] xs, final int[] ys, final double width) { + nPlotBars(labelId, xs, ys, width); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final int[] xs, final int[] ys, final double width, final int offset) { + nPlotBars(labelId, xs, ys, width, offset); + } + + private static native void nPlotBars(String labelId, int[] xs, int[] ys, double width); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBars(labelId, &xs[0], &ys[0], LEN(xs), width); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, int[] xs, int[] ys, double width, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBars(labelId, &xs[0], &ys[0], LEN(xs), width, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final long[] xs, final long[] ys, final double width) { + nPlotBars(labelId, xs, ys, width); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final long[] xs, final long[] ys, final double width, final int offset) { + nPlotBars(labelId, xs, ys, width, offset); + } + + private static native void nPlotBars(String labelId, long[] xs, long[] ys, double width); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBars(labelId, &xs[0], &ys[0], LEN(xs), width); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, long[] xs, long[] ys, double width, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBars(labelId, &xs[0], &ys[0], LEN(xs), width, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final float[] xs, final float[] ys, final double width) { + nPlotBars(labelId, xs, ys, width); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final float[] xs, final float[] ys, final double width, final int offset) { + nPlotBars(labelId, xs, ys, width, offset); + } + + private static native void nPlotBars(String labelId, float[] xs, float[] ys, double width); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBars(labelId, &xs[0], &ys[0], LEN(xs), width); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, float[] xs, float[] ys, double width, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBars(labelId, &xs[0], &ys[0], LEN(xs), width, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final double[] xs, final double[] ys, final double width) { + nPlotBars(labelId, xs, ys, width); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final double[] xs, final double[] ys, final double width, final int offset) { + nPlotBars(labelId, xs, ys, width, offset); + } + + private static native void nPlotBars(String labelId, double[] xs, double[] ys, double width); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBars(labelId, &xs[0], &ys[0], LEN(xs), width); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, double[] xs, double[] ys, double width, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBars(labelId, &xs[0], &ys[0], LEN(xs), width, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final short[] xs, final short[] ys) { + nPlotBars(labelId, xs, ys); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final short[] xs, final short[] ys, final int offset) { + nPlotBars(labelId, xs, ys, offset); + } + + private static native void nPlotBars(String labelId, short[] xs, short[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBars(labelId, &xs[0], &ys[0], LEN(xs), 0.67); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, short[] xs, short[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBars(labelId, &xs[0], &ys[0], LEN(xs), 0.67, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final int[] xs, final int[] ys) { + nPlotBars(labelId, xs, ys); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final int[] xs, final int[] ys, final int offset) { + nPlotBars(labelId, xs, ys, offset); + } + + private static native void nPlotBars(String labelId, int[] xs, int[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBars(labelId, &xs[0], &ys[0], LEN(xs), 0.67); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, int[] xs, int[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBars(labelId, &xs[0], &ys[0], LEN(xs), 0.67, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final long[] xs, final long[] ys) { + nPlotBars(labelId, xs, ys); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final long[] xs, final long[] ys, final int offset) { + nPlotBars(labelId, xs, ys, offset); + } + + private static native void nPlotBars(String labelId, long[] xs, long[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBars(labelId, &xs[0], &ys[0], LEN(xs), 0.67); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, long[] xs, long[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBars(labelId, &xs[0], &ys[0], LEN(xs), 0.67, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final float[] xs, final float[] ys) { + nPlotBars(labelId, xs, ys); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final float[] xs, final float[] ys, final int offset) { + nPlotBars(labelId, xs, ys, offset); + } + + private static native void nPlotBars(String labelId, float[] xs, float[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBars(labelId, &xs[0], &ys[0], LEN(xs), 0.67); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, float[] xs, float[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBars(labelId, &xs[0], &ys[0], LEN(xs), 0.67, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final double[] xs, final double[] ys) { + nPlotBars(labelId, xs, ys); + } + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + public static void plotBars(final String labelId, final double[] xs, final double[] ys, final int offset) { + nPlotBars(labelId, xs, ys, offset); + } + + private static native void nPlotBars(String labelId, double[] xs, double[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBars(labelId, &xs[0], &ys[0], LEN(xs), 0.67); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotBars(String labelId, double[] xs, double[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBars(labelId, &xs[0], &ys[0], LEN(xs), 0.67, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + // values + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final short[] values) { + nPlotBarsH(labelId, values); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final short[] values, final double height) { + nPlotBarsH(labelId, values, height); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final short[] values, final double height, final double shift) { + nPlotBarsH(labelId, values, height, shift); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final short[] values, final double height, final double shift, final int offset) { + nPlotBarsH(labelId, values, height, shift, offset); + } + + private static native void nPlotBarsH(String labelId, short[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, short[] values, double height); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &values[0], LEN(values), height); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, short[] values, double height, double shift); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &values[0], LEN(values), height, shift); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, short[] values, double height, double shift, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &values[0], LEN(values), height, shift, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final int[] values) { + nPlotBarsH(labelId, values); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final int[] values, final double height) { + nPlotBarsH(labelId, values, height); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final int[] values, final double height, final double shift) { + nPlotBarsH(labelId, values, height, shift); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final int[] values, final double height, final double shift, final int offset) { + nPlotBarsH(labelId, values, height, shift, offset); + } + + private static native void nPlotBarsH(String labelId, int[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, int[] values, double height); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &values[0], LEN(values), height); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, int[] values, double height, double shift); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &values[0], LEN(values), height, shift); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, int[] values, double height, double shift, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &values[0], LEN(values), height, shift, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final long[] values) { + nPlotBarsH(labelId, values); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final long[] values, final double height) { + nPlotBarsH(labelId, values, height); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final long[] values, final double height, final double shift) { + nPlotBarsH(labelId, values, height, shift); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final long[] values, final double height, final double shift, final int offset) { + nPlotBarsH(labelId, values, height, shift, offset); + } + + private static native void nPlotBarsH(String labelId, long[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, long[] values, double height); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &values[0], LEN(values), height); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, long[] values, double height, double shift); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &values[0], LEN(values), height, shift); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, long[] values, double height, double shift, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &values[0], LEN(values), height, shift, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final float[] values) { + nPlotBarsH(labelId, values); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final float[] values, final double height) { + nPlotBarsH(labelId, values, height); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final float[] values, final double height, final double shift) { + nPlotBarsH(labelId, values, height, shift); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final float[] values, final double height, final double shift, final int offset) { + nPlotBarsH(labelId, values, height, shift, offset); + } + + private static native void nPlotBarsH(String labelId, float[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, float[] values, double height); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &values[0], LEN(values), height); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, float[] values, double height, double shift); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &values[0], LEN(values), height, shift); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, float[] values, double height, double shift, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &values[0], LEN(values), height, shift, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final double[] values) { + nPlotBarsH(labelId, values); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final double[] values, final double height) { + nPlotBarsH(labelId, values, height); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final double[] values, final double height, final double shift) { + nPlotBarsH(labelId, values, height, shift); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final double[] values, final double height, final double shift, final int offset) { + nPlotBarsH(labelId, values, height, shift, offset); + } + + private static native void nPlotBarsH(String labelId, double[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, double[] values, double height); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &values[0], LEN(values), height); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, double[] values, double height, double shift); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &values[0], LEN(values), height, shift); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, double[] values, double height, double shift, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &values[0], LEN(values), height, shift, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + // xs,ys + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final short[] xs, final short[] ys, final double height) { + nPlotBarsH(labelId, xs, ys, height); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final short[] xs, final short[] ys, final double height, final int offset) { + nPlotBarsH(labelId, xs, ys, height, offset); + } + + private static native void nPlotBarsH(String labelId, short[] xs, short[] ys, double height); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &xs[0], &ys[0], LEN(xs), height); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, short[] xs, short[] ys, double height, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &xs[0], &ys[0], LEN(xs), height, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final int[] xs, final int[] ys, final double height) { + nPlotBarsH(labelId, xs, ys, height); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final int[] xs, final int[] ys, final double height, final int offset) { + nPlotBarsH(labelId, xs, ys, height, offset); + } + + private static native void nPlotBarsH(String labelId, int[] xs, int[] ys, double height); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &xs[0], &ys[0], LEN(xs), height); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, int[] xs, int[] ys, double height, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &xs[0], &ys[0], LEN(xs), height, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final long[] xs, final long[] ys, final double height) { + nPlotBarsH(labelId, xs, ys, height); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final long[] xs, final long[] ys, final double height, final int offset) { + nPlotBarsH(labelId, xs, ys, height, offset); + } + + private static native void nPlotBarsH(String labelId, long[] xs, long[] ys, double height); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &xs[0], &ys[0], LEN(xs), height); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, long[] xs, long[] ys, double height, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &xs[0], &ys[0], LEN(xs), height, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final float[] xs, final float[] ys, final double height) { + nPlotBarsH(labelId, xs, ys, height); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final float[] xs, final float[] ys, final double height, final int offset) { + nPlotBarsH(labelId, xs, ys, height, offset); + } + + private static native void nPlotBarsH(String labelId, float[] xs, float[] ys, double height); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &xs[0], &ys[0], LEN(xs), height); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, float[] xs, float[] ys, double height, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &xs[0], &ys[0], LEN(xs), height, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final double[] xs, final double[] ys, final double height) { + nPlotBarsH(labelId, xs, ys, height); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final double[] xs, final double[] ys, final double height, final int offset) { + nPlotBarsH(labelId, xs, ys, height, offset); + } + + private static native void nPlotBarsH(String labelId, double[] xs, double[] ys, double height); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &xs[0], &ys[0], LEN(xs), height); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, double[] xs, double[] ys, double height, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &xs[0], &ys[0], LEN(xs), height, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final short[] xs, final short[] ys) { + nPlotBarsH(labelId, xs, ys); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final short[] xs, final short[] ys, final int offset) { + nPlotBarsH(labelId, xs, ys, offset); + } + + private static native void nPlotBarsH(String labelId, short[] xs, short[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &xs[0], &ys[0], LEN(xs), 0.67); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, short[] xs, short[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &xs[0], &ys[0], LEN(xs), 0.67, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final int[] xs, final int[] ys) { + nPlotBarsH(labelId, xs, ys); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final int[] xs, final int[] ys, final int offset) { + nPlotBarsH(labelId, xs, ys, offset); + } + + private static native void nPlotBarsH(String labelId, int[] xs, int[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &xs[0], &ys[0], LEN(xs), 0.67); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, int[] xs, int[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &xs[0], &ys[0], LEN(xs), 0.67, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final long[] xs, final long[] ys) { + nPlotBarsH(labelId, xs, ys); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final long[] xs, final long[] ys, final int offset) { + nPlotBarsH(labelId, xs, ys, offset); + } + + private static native void nPlotBarsH(String labelId, long[] xs, long[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &xs[0], &ys[0], LEN(xs), 0.67); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, long[] xs, long[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &xs[0], &ys[0], LEN(xs), 0.67, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final float[] xs, final float[] ys) { + nPlotBarsH(labelId, xs, ys); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final float[] xs, final float[] ys, final int offset) { + nPlotBarsH(labelId, xs, ys, offset); + } + + private static native void nPlotBarsH(String labelId, float[] xs, float[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &xs[0], &ys[0], LEN(xs), 0.67); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, float[] xs, float[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &xs[0], &ys[0], LEN(xs), 0.67, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final double[] xs, final double[] ys) { + nPlotBarsH(labelId, xs, ys); + } + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + public static void plotBarsH(final String labelId, final double[] xs, final double[] ys, final int offset) { + nPlotBarsH(labelId, xs, ys, offset); + } + + private static native void nPlotBarsH(String labelId, double[] xs, double[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &xs[0], &ys[0], LEN(xs), 0.67); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotBarsH(String labelId, double[] xs, double[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotBarsH(labelId, &xs[0], &ys[0], LEN(xs), 0.67, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBars(final String labelId, final short[] xs, final short[] ys, final short[] err) { + nPlotErrorBars(labelId, xs, ys, err); + } + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBars(final String labelId, final short[] xs, final short[] ys, final short[] err, final int offset) { + nPlotErrorBars(labelId, xs, ys, err, offset); + } + + private static native void nPlotErrorBars(String labelId, short[] xs, short[] ys, short[] err); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto err = obj_err == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_err, JNI_FALSE); + ImPlot::PlotErrorBars(labelId, &xs[0], &ys[0], &err[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (err != NULL) env->ReleasePrimitiveArrayCritical(obj_err, err, JNI_FALSE); + */ + + private static native void nPlotErrorBars(String labelId, short[] xs, short[] ys, short[] err, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto err = obj_err == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_err, JNI_FALSE); + ImPlot::PlotErrorBars(labelId, &xs[0], &ys[0], &err[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (err != NULL) env->ReleasePrimitiveArrayCritical(obj_err, err, JNI_FALSE); + */ + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBars(final String labelId, final int[] xs, final int[] ys, final int[] err) { + nPlotErrorBars(labelId, xs, ys, err); + } + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBars(final String labelId, final int[] xs, final int[] ys, final int[] err, final int offset) { + nPlotErrorBars(labelId, xs, ys, err, offset); + } + + private static native void nPlotErrorBars(String labelId, int[] xs, int[] ys, int[] err); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto err = obj_err == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_err, JNI_FALSE); + ImPlot::PlotErrorBars(labelId, &xs[0], &ys[0], &err[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (err != NULL) env->ReleasePrimitiveArrayCritical(obj_err, err, JNI_FALSE); + */ + + private static native void nPlotErrorBars(String labelId, int[] xs, int[] ys, int[] err, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto err = obj_err == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_err, JNI_FALSE); + ImPlot::PlotErrorBars(labelId, &xs[0], &ys[0], &err[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (err != NULL) env->ReleasePrimitiveArrayCritical(obj_err, err, JNI_FALSE); + */ + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBars(final String labelId, final long[] xs, final long[] ys, final long[] err) { + nPlotErrorBars(labelId, xs, ys, err); + } + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBars(final String labelId, final long[] xs, final long[] ys, final long[] err, final int offset) { + nPlotErrorBars(labelId, xs, ys, err, offset); + } + + private static native void nPlotErrorBars(String labelId, long[] xs, long[] ys, long[] err); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto err = obj_err == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_err, JNI_FALSE); + ImPlot::PlotErrorBars(labelId, &xs[0], &ys[0], &err[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (err != NULL) env->ReleasePrimitiveArrayCritical(obj_err, err, JNI_FALSE); + */ + + private static native void nPlotErrorBars(String labelId, long[] xs, long[] ys, long[] err, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto err = obj_err == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_err, JNI_FALSE); + ImPlot::PlotErrorBars(labelId, &xs[0], &ys[0], &err[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (err != NULL) env->ReleasePrimitiveArrayCritical(obj_err, err, JNI_FALSE); + */ + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBars(final String labelId, final float[] xs, final float[] ys, final float[] err) { + nPlotErrorBars(labelId, xs, ys, err); + } + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBars(final String labelId, final float[] xs, final float[] ys, final float[] err, final int offset) { + nPlotErrorBars(labelId, xs, ys, err, offset); + } + + private static native void nPlotErrorBars(String labelId, float[] xs, float[] ys, float[] err); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto err = obj_err == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_err, JNI_FALSE); + ImPlot::PlotErrorBars(labelId, &xs[0], &ys[0], &err[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (err != NULL) env->ReleasePrimitiveArrayCritical(obj_err, err, JNI_FALSE); + */ + + private static native void nPlotErrorBars(String labelId, float[] xs, float[] ys, float[] err, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto err = obj_err == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_err, JNI_FALSE); + ImPlot::PlotErrorBars(labelId, &xs[0], &ys[0], &err[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (err != NULL) env->ReleasePrimitiveArrayCritical(obj_err, err, JNI_FALSE); + */ + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBars(final String labelId, final double[] xs, final double[] ys, final double[] err) { + nPlotErrorBars(labelId, xs, ys, err); + } + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBars(final String labelId, final double[] xs, final double[] ys, final double[] err, final int offset) { + nPlotErrorBars(labelId, xs, ys, err, offset); + } + + private static native void nPlotErrorBars(String labelId, double[] xs, double[] ys, double[] err); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto err = obj_err == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_err, JNI_FALSE); + ImPlot::PlotErrorBars(labelId, &xs[0], &ys[0], &err[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (err != NULL) env->ReleasePrimitiveArrayCritical(obj_err, err, JNI_FALSE); + */ + + private static native void nPlotErrorBars(String labelId, double[] xs, double[] ys, double[] err, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto err = obj_err == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_err, JNI_FALSE); + ImPlot::PlotErrorBars(labelId, &xs[0], &ys[0], &err[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (err != NULL) env->ReleasePrimitiveArrayCritical(obj_err, err, JNI_FALSE); + */ + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBars(final String labelId, final short[] xs, final short[] ys, final short[] neg, final short[] pos) { + nPlotErrorBars(labelId, xs, ys, neg, pos); + } + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBars(final String labelId, final short[] xs, final short[] ys, final short[] neg, final short[] pos, final int offset) { + nPlotErrorBars(labelId, xs, ys, neg, pos, offset); + } + + private static native void nPlotErrorBars(String labelId, short[] xs, short[] ys, short[] neg, short[] pos); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto neg = obj_neg == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_neg, JNI_FALSE); + auto pos = obj_pos == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pos, JNI_FALSE); + ImPlot::PlotErrorBars(labelId, &xs[0], &ys[0], &neg[0], &pos[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (neg != NULL) env->ReleasePrimitiveArrayCritical(obj_neg, neg, JNI_FALSE); + if (pos != NULL) env->ReleasePrimitiveArrayCritical(obj_pos, pos, JNI_FALSE); + */ + + private static native void nPlotErrorBars(String labelId, short[] xs, short[] ys, short[] neg, short[] pos, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto neg = obj_neg == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_neg, JNI_FALSE); + auto pos = obj_pos == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pos, JNI_FALSE); + ImPlot::PlotErrorBars(labelId, &xs[0], &ys[0], &neg[0], &pos[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (neg != NULL) env->ReleasePrimitiveArrayCritical(obj_neg, neg, JNI_FALSE); + if (pos != NULL) env->ReleasePrimitiveArrayCritical(obj_pos, pos, JNI_FALSE); + */ + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBars(final String labelId, final int[] xs, final int[] ys, final int[] neg, final int[] pos) { + nPlotErrorBars(labelId, xs, ys, neg, pos); + } + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBars(final String labelId, final int[] xs, final int[] ys, final int[] neg, final int[] pos, final int offset) { + nPlotErrorBars(labelId, xs, ys, neg, pos, offset); + } + + private static native void nPlotErrorBars(String labelId, int[] xs, int[] ys, int[] neg, int[] pos); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto neg = obj_neg == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_neg, JNI_FALSE); + auto pos = obj_pos == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pos, JNI_FALSE); + ImPlot::PlotErrorBars(labelId, &xs[0], &ys[0], &neg[0], &pos[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (neg != NULL) env->ReleasePrimitiveArrayCritical(obj_neg, neg, JNI_FALSE); + if (pos != NULL) env->ReleasePrimitiveArrayCritical(obj_pos, pos, JNI_FALSE); + */ + + private static native void nPlotErrorBars(String labelId, int[] xs, int[] ys, int[] neg, int[] pos, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto neg = obj_neg == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_neg, JNI_FALSE); + auto pos = obj_pos == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pos, JNI_FALSE); + ImPlot::PlotErrorBars(labelId, &xs[0], &ys[0], &neg[0], &pos[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (neg != NULL) env->ReleasePrimitiveArrayCritical(obj_neg, neg, JNI_FALSE); + if (pos != NULL) env->ReleasePrimitiveArrayCritical(obj_pos, pos, JNI_FALSE); + */ + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBars(final String labelId, final long[] xs, final long[] ys, final long[] neg, final long[] pos) { + nPlotErrorBars(labelId, xs, ys, neg, pos); + } + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBars(final String labelId, final long[] xs, final long[] ys, final long[] neg, final long[] pos, final int offset) { + nPlotErrorBars(labelId, xs, ys, neg, pos, offset); + } + + private static native void nPlotErrorBars(String labelId, long[] xs, long[] ys, long[] neg, long[] pos); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto neg = obj_neg == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_neg, JNI_FALSE); + auto pos = obj_pos == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pos, JNI_FALSE); + ImPlot::PlotErrorBars(labelId, &xs[0], &ys[0], &neg[0], &pos[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (neg != NULL) env->ReleasePrimitiveArrayCritical(obj_neg, neg, JNI_FALSE); + if (pos != NULL) env->ReleasePrimitiveArrayCritical(obj_pos, pos, JNI_FALSE); + */ + + private static native void nPlotErrorBars(String labelId, long[] xs, long[] ys, long[] neg, long[] pos, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto neg = obj_neg == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_neg, JNI_FALSE); + auto pos = obj_pos == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pos, JNI_FALSE); + ImPlot::PlotErrorBars(labelId, &xs[0], &ys[0], &neg[0], &pos[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (neg != NULL) env->ReleasePrimitiveArrayCritical(obj_neg, neg, JNI_FALSE); + if (pos != NULL) env->ReleasePrimitiveArrayCritical(obj_pos, pos, JNI_FALSE); + */ + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBars(final String labelId, final float[] xs, final float[] ys, final float[] neg, final float[] pos) { + nPlotErrorBars(labelId, xs, ys, neg, pos); + } + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBars(final String labelId, final float[] xs, final float[] ys, final float[] neg, final float[] pos, final int offset) { + nPlotErrorBars(labelId, xs, ys, neg, pos, offset); + } + + private static native void nPlotErrorBars(String labelId, float[] xs, float[] ys, float[] neg, float[] pos); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto neg = obj_neg == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_neg, JNI_FALSE); + auto pos = obj_pos == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pos, JNI_FALSE); + ImPlot::PlotErrorBars(labelId, &xs[0], &ys[0], &neg[0], &pos[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (neg != NULL) env->ReleasePrimitiveArrayCritical(obj_neg, neg, JNI_FALSE); + if (pos != NULL) env->ReleasePrimitiveArrayCritical(obj_pos, pos, JNI_FALSE); + */ + + private static native void nPlotErrorBars(String labelId, float[] xs, float[] ys, float[] neg, float[] pos, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto neg = obj_neg == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_neg, JNI_FALSE); + auto pos = obj_pos == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pos, JNI_FALSE); + ImPlot::PlotErrorBars(labelId, &xs[0], &ys[0], &neg[0], &pos[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (neg != NULL) env->ReleasePrimitiveArrayCritical(obj_neg, neg, JNI_FALSE); + if (pos != NULL) env->ReleasePrimitiveArrayCritical(obj_pos, pos, JNI_FALSE); + */ + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBars(final String labelId, final double[] xs, final double[] ys, final double[] neg, final double[] pos) { + nPlotErrorBars(labelId, xs, ys, neg, pos); + } + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBars(final String labelId, final double[] xs, final double[] ys, final double[] neg, final double[] pos, final int offset) { + nPlotErrorBars(labelId, xs, ys, neg, pos, offset); + } + + private static native void nPlotErrorBars(String labelId, double[] xs, double[] ys, double[] neg, double[] pos); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto neg = obj_neg == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_neg, JNI_FALSE); + auto pos = obj_pos == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pos, JNI_FALSE); + ImPlot::PlotErrorBars(labelId, &xs[0], &ys[0], &neg[0], &pos[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (neg != NULL) env->ReleasePrimitiveArrayCritical(obj_neg, neg, JNI_FALSE); + if (pos != NULL) env->ReleasePrimitiveArrayCritical(obj_pos, pos, JNI_FALSE); + */ + + private static native void nPlotErrorBars(String labelId, double[] xs, double[] ys, double[] neg, double[] pos, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto neg = obj_neg == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_neg, JNI_FALSE); + auto pos = obj_pos == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pos, JNI_FALSE); + ImPlot::PlotErrorBars(labelId, &xs[0], &ys[0], &neg[0], &pos[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (neg != NULL) env->ReleasePrimitiveArrayCritical(obj_neg, neg, JNI_FALSE); + if (pos != NULL) env->ReleasePrimitiveArrayCritical(obj_pos, pos, JNI_FALSE); + */ + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBarsH(final String labelId, final short[] xs, final short[] ys, final short[] err) { + nPlotErrorBarsH(labelId, xs, ys, err); + } + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBarsH(final String labelId, final short[] xs, final short[] ys, final short[] err, final int offset) { + nPlotErrorBarsH(labelId, xs, ys, err, offset); + } + + private static native void nPlotErrorBarsH(String labelId, short[] xs, short[] ys, short[] err); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto err = obj_err == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_err, JNI_FALSE); + ImPlot::PlotErrorBarsH(labelId, &xs[0], &ys[0], &err[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (err != NULL) env->ReleasePrimitiveArrayCritical(obj_err, err, JNI_FALSE); + */ + + private static native void nPlotErrorBarsH(String labelId, short[] xs, short[] ys, short[] err, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto err = obj_err == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_err, JNI_FALSE); + ImPlot::PlotErrorBarsH(labelId, &xs[0], &ys[0], &err[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (err != NULL) env->ReleasePrimitiveArrayCritical(obj_err, err, JNI_FALSE); + */ + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBarsH(final String labelId, final int[] xs, final int[] ys, final int[] err) { + nPlotErrorBarsH(labelId, xs, ys, err); + } + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBarsH(final String labelId, final int[] xs, final int[] ys, final int[] err, final int offset) { + nPlotErrorBarsH(labelId, xs, ys, err, offset); + } + + private static native void nPlotErrorBarsH(String labelId, int[] xs, int[] ys, int[] err); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto err = obj_err == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_err, JNI_FALSE); + ImPlot::PlotErrorBarsH(labelId, &xs[0], &ys[0], &err[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (err != NULL) env->ReleasePrimitiveArrayCritical(obj_err, err, JNI_FALSE); + */ + + private static native void nPlotErrorBarsH(String labelId, int[] xs, int[] ys, int[] err, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto err = obj_err == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_err, JNI_FALSE); + ImPlot::PlotErrorBarsH(labelId, &xs[0], &ys[0], &err[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (err != NULL) env->ReleasePrimitiveArrayCritical(obj_err, err, JNI_FALSE); + */ + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBarsH(final String labelId, final long[] xs, final long[] ys, final long[] err) { + nPlotErrorBarsH(labelId, xs, ys, err); + } + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBarsH(final String labelId, final long[] xs, final long[] ys, final long[] err, final int offset) { + nPlotErrorBarsH(labelId, xs, ys, err, offset); + } + + private static native void nPlotErrorBarsH(String labelId, long[] xs, long[] ys, long[] err); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto err = obj_err == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_err, JNI_FALSE); + ImPlot::PlotErrorBarsH(labelId, &xs[0], &ys[0], &err[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (err != NULL) env->ReleasePrimitiveArrayCritical(obj_err, err, JNI_FALSE); + */ + + private static native void nPlotErrorBarsH(String labelId, long[] xs, long[] ys, long[] err, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto err = obj_err == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_err, JNI_FALSE); + ImPlot::PlotErrorBarsH(labelId, &xs[0], &ys[0], &err[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (err != NULL) env->ReleasePrimitiveArrayCritical(obj_err, err, JNI_FALSE); + */ + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBarsH(final String labelId, final float[] xs, final float[] ys, final float[] err) { + nPlotErrorBarsH(labelId, xs, ys, err); + } + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBarsH(final String labelId, final float[] xs, final float[] ys, final float[] err, final int offset) { + nPlotErrorBarsH(labelId, xs, ys, err, offset); + } + + private static native void nPlotErrorBarsH(String labelId, float[] xs, float[] ys, float[] err); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto err = obj_err == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_err, JNI_FALSE); + ImPlot::PlotErrorBarsH(labelId, &xs[0], &ys[0], &err[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (err != NULL) env->ReleasePrimitiveArrayCritical(obj_err, err, JNI_FALSE); + */ + + private static native void nPlotErrorBarsH(String labelId, float[] xs, float[] ys, float[] err, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto err = obj_err == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_err, JNI_FALSE); + ImPlot::PlotErrorBarsH(labelId, &xs[0], &ys[0], &err[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (err != NULL) env->ReleasePrimitiveArrayCritical(obj_err, err, JNI_FALSE); + */ + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBarsH(final String labelId, final double[] xs, final double[] ys, final double[] err) { + nPlotErrorBarsH(labelId, xs, ys, err); + } + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBarsH(final String labelId, final double[] xs, final double[] ys, final double[] err, final int offset) { + nPlotErrorBarsH(labelId, xs, ys, err, offset); + } + + private static native void nPlotErrorBarsH(String labelId, double[] xs, double[] ys, double[] err); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto err = obj_err == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_err, JNI_FALSE); + ImPlot::PlotErrorBarsH(labelId, &xs[0], &ys[0], &err[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (err != NULL) env->ReleasePrimitiveArrayCritical(obj_err, err, JNI_FALSE); + */ + + private static native void nPlotErrorBarsH(String labelId, double[] xs, double[] ys, double[] err, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto err = obj_err == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_err, JNI_FALSE); + ImPlot::PlotErrorBarsH(labelId, &xs[0], &ys[0], &err[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (err != NULL) env->ReleasePrimitiveArrayCritical(obj_err, err, JNI_FALSE); + */ + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBarsH(final String labelId, final short[] xs, final short[] ys, final short[] neg, final short[] pos) { + nPlotErrorBarsH(labelId, xs, ys, neg, pos); + } + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBarsH(final String labelId, final short[] xs, final short[] ys, final short[] neg, final short[] pos, final int offset) { + nPlotErrorBarsH(labelId, xs, ys, neg, pos, offset); + } + + private static native void nPlotErrorBarsH(String labelId, short[] xs, short[] ys, short[] neg, short[] pos); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto neg = obj_neg == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_neg, JNI_FALSE); + auto pos = obj_pos == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pos, JNI_FALSE); + ImPlot::PlotErrorBarsH(labelId, &xs[0], &ys[0], &neg[0], &pos[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (neg != NULL) env->ReleasePrimitiveArrayCritical(obj_neg, neg, JNI_FALSE); + if (pos != NULL) env->ReleasePrimitiveArrayCritical(obj_pos, pos, JNI_FALSE); + */ + + private static native void nPlotErrorBarsH(String labelId, short[] xs, short[] ys, short[] neg, short[] pos, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto neg = obj_neg == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_neg, JNI_FALSE); + auto pos = obj_pos == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_pos, JNI_FALSE); + ImPlot::PlotErrorBarsH(labelId, &xs[0], &ys[0], &neg[0], &pos[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (neg != NULL) env->ReleasePrimitiveArrayCritical(obj_neg, neg, JNI_FALSE); + if (pos != NULL) env->ReleasePrimitiveArrayCritical(obj_pos, pos, JNI_FALSE); + */ + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBarsH(final String labelId, final int[] xs, final int[] ys, final int[] neg, final int[] pos) { + nPlotErrorBarsH(labelId, xs, ys, neg, pos); + } + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBarsH(final String labelId, final int[] xs, final int[] ys, final int[] neg, final int[] pos, final int offset) { + nPlotErrorBarsH(labelId, xs, ys, neg, pos, offset); + } + + private static native void nPlotErrorBarsH(String labelId, int[] xs, int[] ys, int[] neg, int[] pos); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto neg = obj_neg == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_neg, JNI_FALSE); + auto pos = obj_pos == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pos, JNI_FALSE); + ImPlot::PlotErrorBarsH(labelId, &xs[0], &ys[0], &neg[0], &pos[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (neg != NULL) env->ReleasePrimitiveArrayCritical(obj_neg, neg, JNI_FALSE); + if (pos != NULL) env->ReleasePrimitiveArrayCritical(obj_pos, pos, JNI_FALSE); + */ + + private static native void nPlotErrorBarsH(String labelId, int[] xs, int[] ys, int[] neg, int[] pos, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto neg = obj_neg == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_neg, JNI_FALSE); + auto pos = obj_pos == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_pos, JNI_FALSE); + ImPlot::PlotErrorBarsH(labelId, &xs[0], &ys[0], &neg[0], &pos[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (neg != NULL) env->ReleasePrimitiveArrayCritical(obj_neg, neg, JNI_FALSE); + if (pos != NULL) env->ReleasePrimitiveArrayCritical(obj_pos, pos, JNI_FALSE); + */ + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBarsH(final String labelId, final long[] xs, final long[] ys, final long[] neg, final long[] pos) { + nPlotErrorBarsH(labelId, xs, ys, neg, pos); + } + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBarsH(final String labelId, final long[] xs, final long[] ys, final long[] neg, final long[] pos, final int offset) { + nPlotErrorBarsH(labelId, xs, ys, neg, pos, offset); + } + + private static native void nPlotErrorBarsH(String labelId, long[] xs, long[] ys, long[] neg, long[] pos); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto neg = obj_neg == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_neg, JNI_FALSE); + auto pos = obj_pos == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pos, JNI_FALSE); + ImPlot::PlotErrorBarsH(labelId, &xs[0], &ys[0], &neg[0], &pos[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (neg != NULL) env->ReleasePrimitiveArrayCritical(obj_neg, neg, JNI_FALSE); + if (pos != NULL) env->ReleasePrimitiveArrayCritical(obj_pos, pos, JNI_FALSE); + */ + + private static native void nPlotErrorBarsH(String labelId, long[] xs, long[] ys, long[] neg, long[] pos, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto neg = obj_neg == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_neg, JNI_FALSE); + auto pos = obj_pos == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pos, JNI_FALSE); + ImPlot::PlotErrorBarsH(labelId, &xs[0], &ys[0], &neg[0], &pos[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (neg != NULL) env->ReleasePrimitiveArrayCritical(obj_neg, neg, JNI_FALSE); + if (pos != NULL) env->ReleasePrimitiveArrayCritical(obj_pos, pos, JNI_FALSE); + */ + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBarsH(final String labelId, final float[] xs, final float[] ys, final float[] neg, final float[] pos) { + nPlotErrorBarsH(labelId, xs, ys, neg, pos); + } + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBarsH(final String labelId, final float[] xs, final float[] ys, final float[] neg, final float[] pos, final int offset) { + nPlotErrorBarsH(labelId, xs, ys, neg, pos, offset); + } + + private static native void nPlotErrorBarsH(String labelId, float[] xs, float[] ys, float[] neg, float[] pos); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto neg = obj_neg == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_neg, JNI_FALSE); + auto pos = obj_pos == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pos, JNI_FALSE); + ImPlot::PlotErrorBarsH(labelId, &xs[0], &ys[0], &neg[0], &pos[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (neg != NULL) env->ReleasePrimitiveArrayCritical(obj_neg, neg, JNI_FALSE); + if (pos != NULL) env->ReleasePrimitiveArrayCritical(obj_pos, pos, JNI_FALSE); + */ + + private static native void nPlotErrorBarsH(String labelId, float[] xs, float[] ys, float[] neg, float[] pos, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto neg = obj_neg == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_neg, JNI_FALSE); + auto pos = obj_pos == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_pos, JNI_FALSE); + ImPlot::PlotErrorBarsH(labelId, &xs[0], &ys[0], &neg[0], &pos[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (neg != NULL) env->ReleasePrimitiveArrayCritical(obj_neg, neg, JNI_FALSE); + if (pos != NULL) env->ReleasePrimitiveArrayCritical(obj_pos, pos, JNI_FALSE); + */ + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBarsH(final String labelId, final double[] xs, final double[] ys, final double[] neg, final double[] pos) { + nPlotErrorBarsH(labelId, xs, ys, neg, pos); + } + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + public static void plotErrorBarsH(final String labelId, final double[] xs, final double[] ys, final double[] neg, final double[] pos, final int offset) { + nPlotErrorBarsH(labelId, xs, ys, neg, pos, offset); + } + + private static native void nPlotErrorBarsH(String labelId, double[] xs, double[] ys, double[] neg, double[] pos); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto neg = obj_neg == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_neg, JNI_FALSE); + auto pos = obj_pos == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pos, JNI_FALSE); + ImPlot::PlotErrorBarsH(labelId, &xs[0], &ys[0], &neg[0], &pos[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (neg != NULL) env->ReleasePrimitiveArrayCritical(obj_neg, neg, JNI_FALSE); + if (pos != NULL) env->ReleasePrimitiveArrayCritical(obj_pos, pos, JNI_FALSE); + */ + + private static native void nPlotErrorBarsH(String labelId, double[] xs, double[] ys, double[] neg, double[] pos, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto neg = obj_neg == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_neg, JNI_FALSE); + auto pos = obj_pos == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_pos, JNI_FALSE); + ImPlot::PlotErrorBarsH(labelId, &xs[0], &ys[0], &neg[0], &pos[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + if (neg != NULL) env->ReleasePrimitiveArrayCritical(obj_neg, neg, JNI_FALSE); + if (pos != NULL) env->ReleasePrimitiveArrayCritical(obj_pos, pos, JNI_FALSE); + */ + + // values + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final short[] values) { + nPlotStems(labelId, values); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final short[] values, final double yRef) { + nPlotStems(labelId, values, yRef); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final short[] values, final double yRef, final double xscale) { + nPlotStems(labelId, values, yRef, xscale); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final short[] values, final double yRef, final double xscale, final double x0) { + nPlotStems(labelId, values, yRef, xscale, x0); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final short[] values, final double yRef, final double xscale, final double x0, final int offset) { + nPlotStems(labelId, values, yRef, xscale, x0, offset); + } + + private static native void nPlotStems(String labelId, short[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, short[] values, double yRef); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values), yRef); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, short[] values, double yRef, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values), yRef, xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, short[] values, double yRef, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values), yRef, xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, short[] values, double yRef, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values), yRef, xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final int[] values) { + nPlotStems(labelId, values); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final int[] values, final double yRef) { + nPlotStems(labelId, values, yRef); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final int[] values, final double yRef, final double xscale) { + nPlotStems(labelId, values, yRef, xscale); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final int[] values, final double yRef, final double xscale, final double x0) { + nPlotStems(labelId, values, yRef, xscale, x0); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final int[] values, final double yRef, final double xscale, final double x0, final int offset) { + nPlotStems(labelId, values, yRef, xscale, x0, offset); + } + + private static native void nPlotStems(String labelId, int[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, int[] values, double yRef); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values), yRef); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, int[] values, double yRef, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values), yRef, xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, int[] values, double yRef, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values), yRef, xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, int[] values, double yRef, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values), yRef, xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final long[] values) { + nPlotStems(labelId, values); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final long[] values, final double yRef) { + nPlotStems(labelId, values, yRef); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final long[] values, final double yRef, final double xscale) { + nPlotStems(labelId, values, yRef, xscale); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final long[] values, final double yRef, final double xscale, final double x0) { + nPlotStems(labelId, values, yRef, xscale, x0); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final long[] values, final double yRef, final double xscale, final double x0, final int offset) { + nPlotStems(labelId, values, yRef, xscale, x0, offset); + } + + private static native void nPlotStems(String labelId, long[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, long[] values, double yRef); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values), yRef); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, long[] values, double yRef, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values), yRef, xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, long[] values, double yRef, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values), yRef, xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, long[] values, double yRef, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values), yRef, xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final float[] values) { + nPlotStems(labelId, values); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final float[] values, final double yRef) { + nPlotStems(labelId, values, yRef); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final float[] values, final double yRef, final double xscale) { + nPlotStems(labelId, values, yRef, xscale); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final float[] values, final double yRef, final double xscale, final double x0) { + nPlotStems(labelId, values, yRef, xscale, x0); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final float[] values, final double yRef, final double xscale, final double x0, final int offset) { + nPlotStems(labelId, values, yRef, xscale, x0, offset); + } + + private static native void nPlotStems(String labelId, float[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, float[] values, double yRef); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values), yRef); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, float[] values, double yRef, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values), yRef, xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, float[] values, double yRef, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values), yRef, xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, float[] values, double yRef, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values), yRef, xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final double[] values) { + nPlotStems(labelId, values); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final double[] values, final double yRef) { + nPlotStems(labelId, values, yRef); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final double[] values, final double yRef, final double xscale) { + nPlotStems(labelId, values, yRef, xscale); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final double[] values, final double yRef, final double xscale, final double x0) { + nPlotStems(labelId, values, yRef, xscale, x0); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final double[] values, final double yRef, final double xscale, final double x0, final int offset) { + nPlotStems(labelId, values, yRef, xscale, x0, offset); + } + + private static native void nPlotStems(String labelId, double[] values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, double[] values, double yRef); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values), yRef); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, double[] values, double yRef, double xscale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values), yRef, xscale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, double[] values, double yRef, double xscale, double x0); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values), yRef, xscale, x0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, double[] values, double yRef, double xscale, double x0, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotStems(labelId, &values[0], LEN(values), yRef, xscale, x0, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + // xs,ys + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final short[] xs, final short[] ys) { + nPlotStems(labelId, xs, ys); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final short[] xs, final short[] ys, final double yRef) { + nPlotStems(labelId, xs, ys, yRef); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final short[] xs, final short[] ys, final double yRef, final int offset) { + nPlotStems(labelId, xs, ys, yRef, offset); + } + + private static native void nPlotStems(String labelId, short[] xs, short[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStems(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, short[] xs, short[] ys, double yRef); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStems(labelId, &xs[0], &ys[0], LEN(xs), yRef); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, short[] xs, short[] ys, double yRef, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStems(labelId, &xs[0], &ys[0], LEN(xs), yRef, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final int[] xs, final int[] ys) { + nPlotStems(labelId, xs, ys); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final int[] xs, final int[] ys, final double yRef) { + nPlotStems(labelId, xs, ys, yRef); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final int[] xs, final int[] ys, final double yRef, final int offset) { + nPlotStems(labelId, xs, ys, yRef, offset); + } + + private static native void nPlotStems(String labelId, int[] xs, int[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStems(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, int[] xs, int[] ys, double yRef); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStems(labelId, &xs[0], &ys[0], LEN(xs), yRef); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, int[] xs, int[] ys, double yRef, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStems(labelId, &xs[0], &ys[0], LEN(xs), yRef, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final long[] xs, final long[] ys) { + nPlotStems(labelId, xs, ys); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final long[] xs, final long[] ys, final double yRef) { + nPlotStems(labelId, xs, ys, yRef); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final long[] xs, final long[] ys, final double yRef, final int offset) { + nPlotStems(labelId, xs, ys, yRef, offset); + } + + private static native void nPlotStems(String labelId, long[] xs, long[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStems(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, long[] xs, long[] ys, double yRef); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStems(labelId, &xs[0], &ys[0], LEN(xs), yRef); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, long[] xs, long[] ys, double yRef, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStems(labelId, &xs[0], &ys[0], LEN(xs), yRef, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final float[] xs, final float[] ys) { + nPlotStems(labelId, xs, ys); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final float[] xs, final float[] ys, final double yRef) { + nPlotStems(labelId, xs, ys, yRef); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final float[] xs, final float[] ys, final double yRef, final int offset) { + nPlotStems(labelId, xs, ys, yRef, offset); + } + + private static native void nPlotStems(String labelId, float[] xs, float[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStems(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, float[] xs, float[] ys, double yRef); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStems(labelId, &xs[0], &ys[0], LEN(xs), yRef); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, float[] xs, float[] ys, double yRef, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStems(labelId, &xs[0], &ys[0], LEN(xs), yRef, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final double[] xs, final double[] ys) { + nPlotStems(labelId, xs, ys); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final double[] xs, final double[] ys, final double yRef) { + nPlotStems(labelId, xs, ys, yRef); + } + + /** + * Plots vertical stems. + */ + public static void plotStems(final String labelId, final double[] xs, final double[] ys, final double yRef, final int offset) { + nPlotStems(labelId, xs, ys, yRef, offset); + } + + private static native void nPlotStems(String labelId, double[] xs, double[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStems(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, double[] xs, double[] ys, double yRef); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStems(labelId, &xs[0], &ys[0], LEN(xs), yRef); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotStems(String labelId, double[] xs, double[] ys, double yRef, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotStems(labelId, &xs[0], &ys[0], LEN(xs), yRef, offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + public static void plotVLines(final String labelId, final short[] xs) { + nPlotVLines(labelId, xs); + } + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + public static void plotVLines(final String labelId, final short[] xs, final int offset) { + nPlotVLines(labelId, xs, offset); + } + + private static native void nPlotVLines(String labelId, short[] xs); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + ImPlot::PlotVLines(labelId, &xs[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + */ + + private static native void nPlotVLines(String labelId, short[] xs, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + ImPlot::PlotVLines(labelId, &xs[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + */ + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + public static void plotVLines(final String labelId, final int[] xs) { + nPlotVLines(labelId, xs); + } + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + public static void plotVLines(final String labelId, final int[] xs, final int offset) { + nPlotVLines(labelId, xs, offset); + } + + private static native void nPlotVLines(String labelId, int[] xs); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + ImPlot::PlotVLines(labelId, &xs[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + */ + + private static native void nPlotVLines(String labelId, int[] xs, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + ImPlot::PlotVLines(labelId, &xs[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + */ + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + public static void plotVLines(final String labelId, final long[] xs) { + nPlotVLines(labelId, xs); + } + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + public static void plotVLines(final String labelId, final long[] xs, final int offset) { + nPlotVLines(labelId, xs, offset); + } + + private static native void nPlotVLines(String labelId, long[] xs); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + ImPlot::PlotVLines(labelId, &xs[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + */ + + private static native void nPlotVLines(String labelId, long[] xs, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + ImPlot::PlotVLines(labelId, &xs[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + */ + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + public static void plotVLines(final String labelId, final float[] xs) { + nPlotVLines(labelId, xs); + } + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + public static void plotVLines(final String labelId, final float[] xs, final int offset) { + nPlotVLines(labelId, xs, offset); + } + + private static native void nPlotVLines(String labelId, float[] xs); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + ImPlot::PlotVLines(labelId, &xs[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + */ + + private static native void nPlotVLines(String labelId, float[] xs, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + ImPlot::PlotVLines(labelId, &xs[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + */ + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + public static void plotVLines(final String labelId, final double[] xs) { + nPlotVLines(labelId, xs); + } + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + public static void plotVLines(final String labelId, final double[] xs, final int offset) { + nPlotVLines(labelId, xs, offset); + } + + private static native void nPlotVLines(String labelId, double[] xs); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + ImPlot::PlotVLines(labelId, &xs[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + */ + + private static native void nPlotVLines(String labelId, double[] xs, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + ImPlot::PlotVLines(labelId, &xs[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + */ + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + public static void plotHLines(final String labelId, final short[] ys) { + nPlotHLines(labelId, ys); + } + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + public static void plotHLines(final String labelId, final short[] ys, final int offset) { + nPlotHLines(labelId, ys, offset); + } + + private static native void nPlotHLines(String labelId, short[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotHLines(labelId, &ys[0], LEN(ys)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotHLines(String labelId, short[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotHLines(labelId, &ys[0], LEN(ys), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + public static void plotHLines(final String labelId, final int[] ys) { + nPlotHLines(labelId, ys); + } + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + public static void plotHLines(final String labelId, final int[] ys, final int offset) { + nPlotHLines(labelId, ys, offset); + } + + private static native void nPlotHLines(String labelId, int[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotHLines(labelId, &ys[0], LEN(ys)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotHLines(String labelId, int[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotHLines(labelId, &ys[0], LEN(ys), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + public static void plotHLines(final String labelId, final long[] ys) { + nPlotHLines(labelId, ys); + } + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + public static void plotHLines(final String labelId, final long[] ys, final int offset) { + nPlotHLines(labelId, ys, offset); + } + + private static native void nPlotHLines(String labelId, long[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotHLines(labelId, &ys[0], LEN(ys)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotHLines(String labelId, long[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotHLines(labelId, &ys[0], LEN(ys), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + public static void plotHLines(final String labelId, final float[] ys) { + nPlotHLines(labelId, ys); + } + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + public static void plotHLines(final String labelId, final float[] ys, final int offset) { + nPlotHLines(labelId, ys, offset); + } + + private static native void nPlotHLines(String labelId, float[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotHLines(labelId, &ys[0], LEN(ys)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotHLines(String labelId, float[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotHLines(labelId, &ys[0], LEN(ys), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + public static void plotHLines(final String labelId, final double[] ys) { + nPlotHLines(labelId, ys); + } + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + public static void plotHLines(final String labelId, final double[] ys, final int offset) { + nPlotHLines(labelId, ys, offset); + } + + private static native void nPlotHLines(String labelId, double[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotHLines(labelId, &ys[0], LEN(ys)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotHLines(String labelId, double[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotHLines(labelId, &ys[0], LEN(ys), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final short[] values, final double x, final double y, final double radius) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final short[] values, final double x, final double y, final double radius, final boolean normalize) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, normalize); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final short[] values, final double x, final double y, final double radius, final boolean normalize, final String labelFmt) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, normalize, labelFmt); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final short[] values, final double x, final double y, final double radius, final boolean normalize, final String labelFmt, final double angle0) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, normalize, labelFmt, angle0); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final short[] values, final double x, final double y, final double radius, final String labelFmt, final double angle0) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, labelFmt, angle0); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final short[] values, final double x, final double y, final double radius, final double angle0) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, angle0); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final short[] values, final double x, final double y, final double radius, final boolean normalize, final double angle0) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, normalize, angle0); + } + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, short[] values, double x, double y, double radius); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, short[] values, double x, double y, double radius, boolean normalize); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, normalize); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, short[] values, double x, double y, double radius, boolean normalize, String labelFmt); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, normalize, labelFmt); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, short[] values, double x, double y, double radius, boolean normalize, String labelFmt, double angle0); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, normalize, labelFmt, angle0); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, short[] values, double x, double y, double radius, String labelFmt, double angle0); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, false, labelFmt, angle0); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, short[] values, double x, double y, double radius, double angle0); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, false, "%.1f", angle0); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, short[] values, double x, double y, double radius, boolean normalize, double angle0); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, normalize, "%.1f", angle0); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final int[] values, final double x, final double y, final double radius) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final int[] values, final double x, final double y, final double radius, final boolean normalize) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, normalize); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final int[] values, final double x, final double y, final double radius, final boolean normalize, final String labelFmt) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, normalize, labelFmt); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final int[] values, final double x, final double y, final double radius, final boolean normalize, final String labelFmt, final double angle0) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, normalize, labelFmt, angle0); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final int[] values, final double x, final double y, final double radius, final String labelFmt, final double angle0) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, labelFmt, angle0); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final int[] values, final double x, final double y, final double radius, final double angle0) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, angle0); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final int[] values, final double x, final double y, final double radius, final boolean normalize, final double angle0) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, normalize, angle0); + } + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, int[] values, double x, double y, double radius); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, int[] values, double x, double y, double radius, boolean normalize); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, normalize); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, int[] values, double x, double y, double radius, boolean normalize, String labelFmt); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, normalize, labelFmt); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, int[] values, double x, double y, double radius, boolean normalize, String labelFmt, double angle0); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, normalize, labelFmt, angle0); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, int[] values, double x, double y, double radius, String labelFmt, double angle0); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, false, labelFmt, angle0); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, int[] values, double x, double y, double radius, double angle0); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, false, "%.1f", angle0); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, int[] values, double x, double y, double radius, boolean normalize, double angle0); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, normalize, "%.1f", angle0); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final long[] values, final double x, final double y, final double radius) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final long[] values, final double x, final double y, final double radius, final boolean normalize) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, normalize); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final long[] values, final double x, final double y, final double radius, final boolean normalize, final String labelFmt) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, normalize, labelFmt); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final long[] values, final double x, final double y, final double radius, final boolean normalize, final String labelFmt, final double angle0) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, normalize, labelFmt, angle0); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final long[] values, final double x, final double y, final double radius, final String labelFmt, final double angle0) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, labelFmt, angle0); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final long[] values, final double x, final double y, final double radius, final double angle0) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, angle0); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final long[] values, final double x, final double y, final double radius, final boolean normalize, final double angle0) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, normalize, angle0); + } + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, long[] values, double x, double y, double radius); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, long[] values, double x, double y, double radius, boolean normalize); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, normalize); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, long[] values, double x, double y, double radius, boolean normalize, String labelFmt); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, normalize, labelFmt); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, long[] values, double x, double y, double radius, boolean normalize, String labelFmt, double angle0); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, normalize, labelFmt, angle0); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, long[] values, double x, double y, double radius, String labelFmt, double angle0); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, false, labelFmt, angle0); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, long[] values, double x, double y, double radius, double angle0); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, false, "%.1f", angle0); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, long[] values, double x, double y, double radius, boolean normalize, double angle0); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, normalize, "%.1f", angle0); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final float[] values, final double x, final double y, final double radius) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final float[] values, final double x, final double y, final double radius, final boolean normalize) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, normalize); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final float[] values, final double x, final double y, final double radius, final boolean normalize, final String labelFmt) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, normalize, labelFmt); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final float[] values, final double x, final double y, final double radius, final boolean normalize, final String labelFmt, final double angle0) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, normalize, labelFmt, angle0); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final float[] values, final double x, final double y, final double radius, final String labelFmt, final double angle0) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, labelFmt, angle0); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final float[] values, final double x, final double y, final double radius, final double angle0) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, angle0); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final float[] values, final double x, final double y, final double radius, final boolean normalize, final double angle0) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, normalize, angle0); + } + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, float[] values, double x, double y, double radius); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, float[] values, double x, double y, double radius, boolean normalize); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, normalize); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, float[] values, double x, double y, double radius, boolean normalize, String labelFmt); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, normalize, labelFmt); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, float[] values, double x, double y, double radius, boolean normalize, String labelFmt, double angle0); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, normalize, labelFmt, angle0); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, float[] values, double x, double y, double radius, String labelFmt, double angle0); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, false, labelFmt, angle0); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, float[] values, double x, double y, double radius, double angle0); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, false, "%.1f", angle0); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, float[] values, double x, double y, double radius, boolean normalize, double angle0); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, normalize, "%.1f", angle0); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final double[] values, final double x, final double y, final double radius) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final double[] values, final double x, final double y, final double radius, final boolean normalize) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, normalize); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final double[] values, final double x, final double y, final double radius, final boolean normalize, final String labelFmt) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, normalize, labelFmt); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final double[] values, final double x, final double y, final double radius, final boolean normalize, final String labelFmt, final double angle0) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, normalize, labelFmt, angle0); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final double[] values, final double x, final double y, final double radius, final String labelFmt, final double angle0) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, labelFmt, angle0); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final double[] values, final double x, final double y, final double radius, final double angle0) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, angle0); + } + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + public static void plotPieChart(final String[] labelIds, final double[] values, final double x, final double y, final double radius, final boolean normalize, final double angle0) { + nPlotPieChart(labelIds, labelIds.length, values, x, y, radius, normalize, angle0); + } + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, double[] values, double x, double y, double radius); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, double[] values, double x, double y, double radius, boolean normalize); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, normalize); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, double[] values, double x, double y, double radius, boolean normalize, String labelFmt); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, normalize, labelFmt); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, double[] values, double x, double y, double radius, boolean normalize, String labelFmt, double angle0); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, normalize, labelFmt, angle0); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, double[] values, double x, double y, double radius, String labelFmt, double angle0); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, false, labelFmt, angle0); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, double[] values, double x, double y, double radius, double angle0); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, false, "%.1f", angle0); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotPieChart(String[] obj_labelIds, int labelIdsCount, double[] values, double x, double y, double radius, boolean normalize, double angle0); /*MANUAL + const char* labelIds[labelIdsCount]; + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labelIds[i] = rawStr; + }; + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotPieChart(labelIds, &values[0], LEN(values), x, y, radius, normalize, "%.1f", angle0); + for (int i = 0; i < labelIdsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labelIds, i); + env->ReleaseStringUTFChars(str, labelIds[i]); + }; + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final short[] values, final int rows, final int cols) { + nPlotHeatmap(labelId, values, rows, cols); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final short[] values, final int rows, final int cols, final double scaleMin) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final short[] values, final int rows, final int cols, final double scaleMin, final double scaleMax) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final short[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final short[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt, final ImPlotPoint boundsMin) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt, boundsMin.x, boundsMin.y); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final short[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt, final double boundsMinX, final double boundsMinY) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt, boundsMinX, boundsMinY); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final short[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt, final ImPlotPoint boundsMin, final ImPlotPoint boundsMax) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt, boundsMin.x, boundsMin.y, boundsMax.x, boundsMax.y); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final short[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt, final double boundsMinX, final double boundsMinY, final double boundsMaxX, final double boundsMaxY) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt, boundsMinX, boundsMinY, boundsMaxX, boundsMaxY); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final short[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final ImPlotPoint boundsMin, final ImPlotPoint boundsMax) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, boundsMin.x, boundsMin.y, boundsMax.x, boundsMax.y); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final short[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final double boundsMinX, final double boundsMinY, final double boundsMaxX, final double boundsMaxY) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, boundsMinX, boundsMinY, boundsMaxX, boundsMaxY); + } + + private static native void nPlotHeatmap(String labelId, short[] values, int rows, int cols); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotHeatmap(String labelId, short[] values, int rows, int cols, double scaleMin); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotHeatmap(String labelId, short[] values, int rows, int cols, double scaleMin, double scaleMax); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotHeatmap(String labelId, short[] values, int rows, int cols, double scaleMin, double scaleMax, String labelFmt); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax, labelFmt); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotHeatmap(String labelId, short[] values, int rows, int cols, double scaleMin, double scaleMax, String labelFmt, double boundsMinX, double boundsMinY); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax, labelFmt, ImPlotPoint(boundsMinX, boundsMinY)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotHeatmap(String labelId, short[] values, int rows, int cols, double scaleMin, double scaleMax, String labelFmt, double boundsMinX, double boundsMinY, double boundsMaxX, double boundsMaxY); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax, labelFmt, ImPlotPoint(boundsMinX, boundsMinY), ImPlotPoint(boundsMaxX, boundsMaxY)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotHeatmap(String labelId, short[] values, int rows, int cols, double scaleMin, double scaleMax, double boundsMinX, double boundsMinY, double boundsMaxX, double boundsMaxY); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax, "%.1f", ImPlotPoint(boundsMinX, boundsMinY), ImPlotPoint(boundsMaxX, boundsMaxY)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final int[] values, final int rows, final int cols) { + nPlotHeatmap(labelId, values, rows, cols); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final int[] values, final int rows, final int cols, final double scaleMin) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final int[] values, final int rows, final int cols, final double scaleMin, final double scaleMax) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final int[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final int[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt, final ImPlotPoint boundsMin) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt, boundsMin.x, boundsMin.y); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final int[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt, final double boundsMinX, final double boundsMinY) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt, boundsMinX, boundsMinY); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final int[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt, final ImPlotPoint boundsMin, final ImPlotPoint boundsMax) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt, boundsMin.x, boundsMin.y, boundsMax.x, boundsMax.y); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final int[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt, final double boundsMinX, final double boundsMinY, final double boundsMaxX, final double boundsMaxY) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt, boundsMinX, boundsMinY, boundsMaxX, boundsMaxY); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final int[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final ImPlotPoint boundsMin, final ImPlotPoint boundsMax) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, boundsMin.x, boundsMin.y, boundsMax.x, boundsMax.y); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final int[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final double boundsMinX, final double boundsMinY, final double boundsMaxX, final double boundsMaxY) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, boundsMinX, boundsMinY, boundsMaxX, boundsMaxY); + } + + private static native void nPlotHeatmap(String labelId, int[] values, int rows, int cols); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotHeatmap(String labelId, int[] values, int rows, int cols, double scaleMin); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotHeatmap(String labelId, int[] values, int rows, int cols, double scaleMin, double scaleMax); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotHeatmap(String labelId, int[] values, int rows, int cols, double scaleMin, double scaleMax, String labelFmt); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax, labelFmt); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotHeatmap(String labelId, int[] values, int rows, int cols, double scaleMin, double scaleMax, String labelFmt, double boundsMinX, double boundsMinY); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax, labelFmt, ImPlotPoint(boundsMinX, boundsMinY)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotHeatmap(String labelId, int[] values, int rows, int cols, double scaleMin, double scaleMax, String labelFmt, double boundsMinX, double boundsMinY, double boundsMaxX, double boundsMaxY); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax, labelFmt, ImPlotPoint(boundsMinX, boundsMinY), ImPlotPoint(boundsMaxX, boundsMaxY)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotHeatmap(String labelId, int[] values, int rows, int cols, double scaleMin, double scaleMax, double boundsMinX, double boundsMinY, double boundsMaxX, double boundsMaxY); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax, "%.1f", ImPlotPoint(boundsMinX, boundsMinY), ImPlotPoint(boundsMaxX, boundsMaxY)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final long[] values, final int rows, final int cols) { + nPlotHeatmap(labelId, values, rows, cols); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final long[] values, final int rows, final int cols, final double scaleMin) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final long[] values, final int rows, final int cols, final double scaleMin, final double scaleMax) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final long[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final long[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt, final ImPlotPoint boundsMin) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt, boundsMin.x, boundsMin.y); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final long[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt, final double boundsMinX, final double boundsMinY) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt, boundsMinX, boundsMinY); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final long[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt, final ImPlotPoint boundsMin, final ImPlotPoint boundsMax) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt, boundsMin.x, boundsMin.y, boundsMax.x, boundsMax.y); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final long[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt, final double boundsMinX, final double boundsMinY, final double boundsMaxX, final double boundsMaxY) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt, boundsMinX, boundsMinY, boundsMaxX, boundsMaxY); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final long[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final ImPlotPoint boundsMin, final ImPlotPoint boundsMax) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, boundsMin.x, boundsMin.y, boundsMax.x, boundsMax.y); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final long[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final double boundsMinX, final double boundsMinY, final double boundsMaxX, final double boundsMaxY) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, boundsMinX, boundsMinY, boundsMaxX, boundsMaxY); + } + + private static native void nPlotHeatmap(String labelId, long[] values, int rows, int cols); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotHeatmap(String labelId, long[] values, int rows, int cols, double scaleMin); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotHeatmap(String labelId, long[] values, int rows, int cols, double scaleMin, double scaleMax); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotHeatmap(String labelId, long[] values, int rows, int cols, double scaleMin, double scaleMax, String labelFmt); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax, labelFmt); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotHeatmap(String labelId, long[] values, int rows, int cols, double scaleMin, double scaleMax, String labelFmt, double boundsMinX, double boundsMinY); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax, labelFmt, ImPlotPoint(boundsMinX, boundsMinY)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotHeatmap(String labelId, long[] values, int rows, int cols, double scaleMin, double scaleMax, String labelFmt, double boundsMinX, double boundsMinY, double boundsMaxX, double boundsMaxY); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax, labelFmt, ImPlotPoint(boundsMinX, boundsMinY), ImPlotPoint(boundsMaxX, boundsMaxY)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotHeatmap(String labelId, long[] values, int rows, int cols, double scaleMin, double scaleMax, double boundsMinX, double boundsMinY, double boundsMaxX, double boundsMaxY); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax, "%.1f", ImPlotPoint(boundsMinX, boundsMinY), ImPlotPoint(boundsMaxX, boundsMaxY)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final float[] values, final int rows, final int cols) { + nPlotHeatmap(labelId, values, rows, cols); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final float[] values, final int rows, final int cols, final double scaleMin) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final float[] values, final int rows, final int cols, final double scaleMin, final double scaleMax) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final float[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final float[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt, final ImPlotPoint boundsMin) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt, boundsMin.x, boundsMin.y); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final float[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt, final double boundsMinX, final double boundsMinY) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt, boundsMinX, boundsMinY); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final float[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt, final ImPlotPoint boundsMin, final ImPlotPoint boundsMax) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt, boundsMin.x, boundsMin.y, boundsMax.x, boundsMax.y); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final float[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt, final double boundsMinX, final double boundsMinY, final double boundsMaxX, final double boundsMaxY) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt, boundsMinX, boundsMinY, boundsMaxX, boundsMaxY); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final float[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final ImPlotPoint boundsMin, final ImPlotPoint boundsMax) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, boundsMin.x, boundsMin.y, boundsMax.x, boundsMax.y); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final float[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final double boundsMinX, final double boundsMinY, final double boundsMaxX, final double boundsMaxY) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, boundsMinX, boundsMinY, boundsMaxX, boundsMaxY); + } + + private static native void nPlotHeatmap(String labelId, float[] values, int rows, int cols); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotHeatmap(String labelId, float[] values, int rows, int cols, double scaleMin); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotHeatmap(String labelId, float[] values, int rows, int cols, double scaleMin, double scaleMax); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotHeatmap(String labelId, float[] values, int rows, int cols, double scaleMin, double scaleMax, String labelFmt); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax, labelFmt); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotHeatmap(String labelId, float[] values, int rows, int cols, double scaleMin, double scaleMax, String labelFmt, double boundsMinX, double boundsMinY); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax, labelFmt, ImPlotPoint(boundsMinX, boundsMinY)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotHeatmap(String labelId, float[] values, int rows, int cols, double scaleMin, double scaleMax, String labelFmt, double boundsMinX, double boundsMinY, double boundsMaxX, double boundsMaxY); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax, labelFmt, ImPlotPoint(boundsMinX, boundsMinY), ImPlotPoint(boundsMaxX, boundsMaxY)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotHeatmap(String labelId, float[] values, int rows, int cols, double scaleMin, double scaleMax, double boundsMinX, double boundsMinY, double boundsMaxX, double boundsMaxY); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax, "%.1f", ImPlotPoint(boundsMinX, boundsMinY), ImPlotPoint(boundsMaxX, boundsMaxY)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final double[] values, final int rows, final int cols) { + nPlotHeatmap(labelId, values, rows, cols); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final double[] values, final int rows, final int cols, final double scaleMin) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final double[] values, final int rows, final int cols, final double scaleMin, final double scaleMax) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final double[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final double[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt, final ImPlotPoint boundsMin) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt, boundsMin.x, boundsMin.y); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final double[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt, final double boundsMinX, final double boundsMinY) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt, boundsMinX, boundsMinY); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final double[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt, final ImPlotPoint boundsMin, final ImPlotPoint boundsMax) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt, boundsMin.x, boundsMin.y, boundsMax.x, boundsMax.y); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final double[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final String labelFmt, final double boundsMinX, final double boundsMinY, final double boundsMaxX, final double boundsMaxY) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, labelFmt, boundsMinX, boundsMinY, boundsMaxX, boundsMaxY); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final double[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final ImPlotPoint boundsMin, final ImPlotPoint boundsMax) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, boundsMin.x, boundsMin.y, boundsMax.x, boundsMax.y); + } + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + public static void plotHeatmap(final String labelId, final double[] values, final int rows, final int cols, final double scaleMin, final double scaleMax, final double boundsMinX, final double boundsMinY, final double boundsMaxX, final double boundsMaxY) { + nPlotHeatmap(labelId, values, rows, cols, scaleMin, scaleMax, boundsMinX, boundsMinY, boundsMaxX, boundsMaxY); + } + + private static native void nPlotHeatmap(String labelId, double[] values, int rows, int cols); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotHeatmap(String labelId, double[] values, int rows, int cols, double scaleMin); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotHeatmap(String labelId, double[] values, int rows, int cols, double scaleMin, double scaleMax); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nPlotHeatmap(String labelId, double[] values, int rows, int cols, double scaleMin, double scaleMax, String labelFmt); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax, labelFmt); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotHeatmap(String labelId, double[] values, int rows, int cols, double scaleMin, double scaleMax, String labelFmt, double boundsMinX, double boundsMinY); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax, labelFmt, ImPlotPoint(boundsMinX, boundsMinY)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotHeatmap(String labelId, double[] values, int rows, int cols, double scaleMin, double scaleMax, String labelFmt, double boundsMinX, double boundsMinY, double boundsMaxX, double boundsMaxY); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto labelFmt = obj_labelFmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelFmt, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax, labelFmt, ImPlotPoint(boundsMinX, boundsMinY), ImPlotPoint(boundsMaxX, boundsMaxY)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + if (labelFmt != NULL) env->ReleaseStringUTFChars(obj_labelFmt, labelFmt); + */ + + private static native void nPlotHeatmap(String labelId, double[] values, int rows, int cols, double scaleMin, double scaleMax, double boundsMinX, double boundsMinY, double boundsMaxX, double boundsMaxY); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::PlotHeatmap(labelId, &values[0], rows, cols, scaleMin, scaleMax, "%.1f", ImPlotPoint(boundsMinX, boundsMinY), ImPlotPoint(boundsMaxX, boundsMaxY)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final short[] values) { + return nPlotHistogram(labelId, values); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final short[] values, final int bins) { + return nPlotHistogram(labelId, values, bins); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final short[] values, final int bins, final boolean cumulative) { + return nPlotHistogram(labelId, values, bins, cumulative); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final short[] values, final int bins, final boolean cumulative, final boolean density) { + return nPlotHistogram(labelId, values, bins, cumulative, density); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final short[] values, final int bins, final boolean cumulative, final boolean density, final ImPlotRange range) { + return nPlotHistogram(labelId, values, bins, cumulative, density, range.min, range.max); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final short[] values, final int bins, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax) { + return nPlotHistogram(labelId, values, bins, cumulative, density, rangeMin, rangeMax); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final short[] values, final int bins, final boolean cumulative, final boolean density, final ImPlotRange range, final boolean outliers) { + return nPlotHistogram(labelId, values, bins, cumulative, density, range.min, range.max, outliers); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final short[] values, final int bins, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax, final boolean outliers) { + return nPlotHistogram(labelId, values, bins, cumulative, density, rangeMin, rangeMax, outliers); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final short[] values, final int bins, final boolean cumulative, final boolean density, final ImPlotRange range, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, range.min, range.max, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final short[] values, final int bins, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, rangeMin, rangeMax, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final short[] values, final boolean cumulative, final boolean density, final ImPlotRange range, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, cumulative, density, range.min, range.max, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final short[] values, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, cumulative, density, rangeMin, rangeMax, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final short[] values, final int bins, final boolean cumulative, final boolean density, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final short[] values, final int bins, final boolean cumulative, final boolean density, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final short[] values, final int bins, final boolean cumulative, final boolean density, final ImPlotRange range, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, range.min, range.max, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final short[] values, final int bins, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, rangeMin, rangeMax, barScale); + } + + private static native double nPlotHistogram(String obj_labelId, short[] obj_values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, short[] obj_values, int bins); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, short[] obj_values, int bins, boolean cumulative); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, short[] obj_values, int bins, boolean cumulative, boolean density); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, short[] obj_values, int bins, boolean cumulative, boolean density, double rangeMin, double rangeMax); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(rangeMin, rangeMax)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, short[] obj_values, int bins, boolean cumulative, boolean density, double rangeMin, double rangeMax, boolean outliers); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(rangeMin, rangeMax), outliers); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, short[] obj_values, int bins, boolean cumulative, boolean density, double rangeMin, double rangeMax, boolean outliers, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(rangeMin, rangeMax), outliers, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, short[] obj_values, boolean cumulative, boolean density, double rangeMin, double rangeMax, boolean outliers, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), ImPlotBin_Sturges, cumulative, density, ImPlotRange(rangeMin, rangeMax), outliers, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, short[] obj_values, int bins, boolean cumulative, boolean density, boolean outliers, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(), outliers, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, short[] obj_values, int bins, boolean cumulative, boolean density, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(), true, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, short[] obj_values, int bins, boolean cumulative, boolean density, double rangeMin, double rangeMax, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(rangeMin, rangeMax), true, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final int[] values) { + return nPlotHistogram(labelId, values); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final int[] values, final int bins) { + return nPlotHistogram(labelId, values, bins); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final int[] values, final int bins, final boolean cumulative) { + return nPlotHistogram(labelId, values, bins, cumulative); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final int[] values, final int bins, final boolean cumulative, final boolean density) { + return nPlotHistogram(labelId, values, bins, cumulative, density); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final int[] values, final int bins, final boolean cumulative, final boolean density, final ImPlotRange range) { + return nPlotHistogram(labelId, values, bins, cumulative, density, range.min, range.max); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final int[] values, final int bins, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax) { + return nPlotHistogram(labelId, values, bins, cumulative, density, rangeMin, rangeMax); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final int[] values, final int bins, final boolean cumulative, final boolean density, final ImPlotRange range, final boolean outliers) { + return nPlotHistogram(labelId, values, bins, cumulative, density, range.min, range.max, outliers); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final int[] values, final int bins, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax, final boolean outliers) { + return nPlotHistogram(labelId, values, bins, cumulative, density, rangeMin, rangeMax, outliers); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final int[] values, final int bins, final boolean cumulative, final boolean density, final ImPlotRange range, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, range.min, range.max, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final int[] values, final int bins, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, rangeMin, rangeMax, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final int[] values, final boolean cumulative, final boolean density, final ImPlotRange range, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, cumulative, density, range.min, range.max, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final int[] values, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, cumulative, density, rangeMin, rangeMax, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final int[] values, final int bins, final boolean cumulative, final boolean density, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final int[] values, final int bins, final boolean cumulative, final boolean density, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final int[] values, final int bins, final boolean cumulative, final boolean density, final ImPlotRange range, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, range.min, range.max, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final int[] values, final int bins, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, rangeMin, rangeMax, barScale); + } + + private static native double nPlotHistogram(String obj_labelId, int[] obj_values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, int[] obj_values, int bins); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, int[] obj_values, int bins, boolean cumulative); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, int[] obj_values, int bins, boolean cumulative, boolean density); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, int[] obj_values, int bins, boolean cumulative, boolean density, double rangeMin, double rangeMax); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(rangeMin, rangeMax)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, int[] obj_values, int bins, boolean cumulative, boolean density, double rangeMin, double rangeMax, boolean outliers); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(rangeMin, rangeMax), outliers); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, int[] obj_values, int bins, boolean cumulative, boolean density, double rangeMin, double rangeMax, boolean outliers, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(rangeMin, rangeMax), outliers, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, int[] obj_values, boolean cumulative, boolean density, double rangeMin, double rangeMax, boolean outliers, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), ImPlotBin_Sturges, cumulative, density, ImPlotRange(rangeMin, rangeMax), outliers, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, int[] obj_values, int bins, boolean cumulative, boolean density, boolean outliers, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(), outliers, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, int[] obj_values, int bins, boolean cumulative, boolean density, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(), true, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, int[] obj_values, int bins, boolean cumulative, boolean density, double rangeMin, double rangeMax, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(rangeMin, rangeMax), true, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final long[] values) { + return nPlotHistogram(labelId, values); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final long[] values, final int bins) { + return nPlotHistogram(labelId, values, bins); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final long[] values, final int bins, final boolean cumulative) { + return nPlotHistogram(labelId, values, bins, cumulative); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final long[] values, final int bins, final boolean cumulative, final boolean density) { + return nPlotHistogram(labelId, values, bins, cumulative, density); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final long[] values, final int bins, final boolean cumulative, final boolean density, final ImPlotRange range) { + return nPlotHistogram(labelId, values, bins, cumulative, density, range.min, range.max); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final long[] values, final int bins, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax) { + return nPlotHistogram(labelId, values, bins, cumulative, density, rangeMin, rangeMax); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final long[] values, final int bins, final boolean cumulative, final boolean density, final ImPlotRange range, final boolean outliers) { + return nPlotHistogram(labelId, values, bins, cumulative, density, range.min, range.max, outliers); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final long[] values, final int bins, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax, final boolean outliers) { + return nPlotHistogram(labelId, values, bins, cumulative, density, rangeMin, rangeMax, outliers); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final long[] values, final int bins, final boolean cumulative, final boolean density, final ImPlotRange range, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, range.min, range.max, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final long[] values, final int bins, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, rangeMin, rangeMax, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final long[] values, final boolean cumulative, final boolean density, final ImPlotRange range, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, cumulative, density, range.min, range.max, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final long[] values, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, cumulative, density, rangeMin, rangeMax, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final long[] values, final int bins, final boolean cumulative, final boolean density, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final long[] values, final int bins, final boolean cumulative, final boolean density, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final long[] values, final int bins, final boolean cumulative, final boolean density, final ImPlotRange range, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, range.min, range.max, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final long[] values, final int bins, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, rangeMin, rangeMax, barScale); + } + + private static native double nPlotHistogram(String obj_labelId, long[] obj_values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, long[] obj_values, int bins); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, long[] obj_values, int bins, boolean cumulative); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, long[] obj_values, int bins, boolean cumulative, boolean density); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, long[] obj_values, int bins, boolean cumulative, boolean density, double rangeMin, double rangeMax); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(rangeMin, rangeMax)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, long[] obj_values, int bins, boolean cumulative, boolean density, double rangeMin, double rangeMax, boolean outliers); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(rangeMin, rangeMax), outliers); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, long[] obj_values, int bins, boolean cumulative, boolean density, double rangeMin, double rangeMax, boolean outliers, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(rangeMin, rangeMax), outliers, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, long[] obj_values, boolean cumulative, boolean density, double rangeMin, double rangeMax, boolean outliers, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), ImPlotBin_Sturges, cumulative, density, ImPlotRange(rangeMin, rangeMax), outliers, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, long[] obj_values, int bins, boolean cumulative, boolean density, boolean outliers, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(), outliers, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, long[] obj_values, int bins, boolean cumulative, boolean density, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(), true, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, long[] obj_values, int bins, boolean cumulative, boolean density, double rangeMin, double rangeMax, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(rangeMin, rangeMax), true, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final float[] values) { + return nPlotHistogram(labelId, values); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final float[] values, final int bins) { + return nPlotHistogram(labelId, values, bins); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final float[] values, final int bins, final boolean cumulative) { + return nPlotHistogram(labelId, values, bins, cumulative); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final float[] values, final int bins, final boolean cumulative, final boolean density) { + return nPlotHistogram(labelId, values, bins, cumulative, density); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final float[] values, final int bins, final boolean cumulative, final boolean density, final ImPlotRange range) { + return nPlotHistogram(labelId, values, bins, cumulative, density, range.min, range.max); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final float[] values, final int bins, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax) { + return nPlotHistogram(labelId, values, bins, cumulative, density, rangeMin, rangeMax); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final float[] values, final int bins, final boolean cumulative, final boolean density, final ImPlotRange range, final boolean outliers) { + return nPlotHistogram(labelId, values, bins, cumulative, density, range.min, range.max, outliers); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final float[] values, final int bins, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax, final boolean outliers) { + return nPlotHistogram(labelId, values, bins, cumulative, density, rangeMin, rangeMax, outliers); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final float[] values, final int bins, final boolean cumulative, final boolean density, final ImPlotRange range, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, range.min, range.max, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final float[] values, final int bins, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, rangeMin, rangeMax, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final float[] values, final boolean cumulative, final boolean density, final ImPlotRange range, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, cumulative, density, range.min, range.max, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final float[] values, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, cumulative, density, rangeMin, rangeMax, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final float[] values, final int bins, final boolean cumulative, final boolean density, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final float[] values, final int bins, final boolean cumulative, final boolean density, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final float[] values, final int bins, final boolean cumulative, final boolean density, final ImPlotRange range, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, range.min, range.max, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final float[] values, final int bins, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, rangeMin, rangeMax, barScale); + } + + private static native double nPlotHistogram(String obj_labelId, float[] obj_values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, float[] obj_values, int bins); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, float[] obj_values, int bins, boolean cumulative); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, float[] obj_values, int bins, boolean cumulative, boolean density); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, float[] obj_values, int bins, boolean cumulative, boolean density, double rangeMin, double rangeMax); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(rangeMin, rangeMax)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, float[] obj_values, int bins, boolean cumulative, boolean density, double rangeMin, double rangeMax, boolean outliers); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(rangeMin, rangeMax), outliers); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, float[] obj_values, int bins, boolean cumulative, boolean density, double rangeMin, double rangeMax, boolean outliers, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(rangeMin, rangeMax), outliers, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, float[] obj_values, boolean cumulative, boolean density, double rangeMin, double rangeMax, boolean outliers, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), ImPlotBin_Sturges, cumulative, density, ImPlotRange(rangeMin, rangeMax), outliers, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, float[] obj_values, int bins, boolean cumulative, boolean density, boolean outliers, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(), outliers, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, float[] obj_values, int bins, boolean cumulative, boolean density, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(), true, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, float[] obj_values, int bins, boolean cumulative, boolean density, double rangeMin, double rangeMax, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(rangeMin, rangeMax), true, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final double[] values) { + return nPlotHistogram(labelId, values); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final double[] values, final int bins) { + return nPlotHistogram(labelId, values, bins); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final double[] values, final int bins, final boolean cumulative) { + return nPlotHistogram(labelId, values, bins, cumulative); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final double[] values, final int bins, final boolean cumulative, final boolean density) { + return nPlotHistogram(labelId, values, bins, cumulative, density); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final double[] values, final int bins, final boolean cumulative, final boolean density, final ImPlotRange range) { + return nPlotHistogram(labelId, values, bins, cumulative, density, range.min, range.max); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final double[] values, final int bins, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax) { + return nPlotHistogram(labelId, values, bins, cumulative, density, rangeMin, rangeMax); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final double[] values, final int bins, final boolean cumulative, final boolean density, final ImPlotRange range, final boolean outliers) { + return nPlotHistogram(labelId, values, bins, cumulative, density, range.min, range.max, outliers); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final double[] values, final int bins, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax, final boolean outliers) { + return nPlotHistogram(labelId, values, bins, cumulative, density, rangeMin, rangeMax, outliers); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final double[] values, final int bins, final boolean cumulative, final boolean density, final ImPlotRange range, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, range.min, range.max, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final double[] values, final int bins, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, rangeMin, rangeMax, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final double[] values, final boolean cumulative, final boolean density, final ImPlotRange range, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, cumulative, density, range.min, range.max, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final double[] values, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, cumulative, density, rangeMin, rangeMax, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final double[] values, final int bins, final boolean cumulative, final boolean density, final boolean outliers, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, outliers, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final double[] values, final int bins, final boolean cumulative, final boolean density, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final double[] values, final int bins, final boolean cumulative, final boolean density, final ImPlotRange range, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, range.min, range.max, barScale); + } + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram(final String labelId, final double[] values, final int bins, final boolean cumulative, final boolean density, final double rangeMin, final double rangeMax, final double barScale) { + return nPlotHistogram(labelId, values, bins, cumulative, density, rangeMin, rangeMax, barScale); + } + + private static native double nPlotHistogram(String obj_labelId, double[] obj_values); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, double[] obj_values, int bins); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, double[] obj_values, int bins, boolean cumulative); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, double[] obj_values, int bins, boolean cumulative, boolean density); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, double[] obj_values, int bins, boolean cumulative, boolean density, double rangeMin, double rangeMax); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(rangeMin, rangeMax)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, double[] obj_values, int bins, boolean cumulative, boolean density, double rangeMin, double rangeMax, boolean outliers); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(rangeMin, rangeMax), outliers); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, double[] obj_values, int bins, boolean cumulative, boolean density, double rangeMin, double rangeMax, boolean outliers, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(rangeMin, rangeMax), outliers, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, double[] obj_values, boolean cumulative, boolean density, double rangeMin, double rangeMax, boolean outliers, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), ImPlotBin_Sturges, cumulative, density, ImPlotRange(rangeMin, rangeMax), outliers, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, double[] obj_values, int bins, boolean cumulative, boolean density, boolean outliers, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(), outliers, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, double[] obj_values, int bins, boolean cumulative, boolean density, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(), true, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram(String obj_labelId, double[] obj_values, int bins, boolean cumulative, boolean density, double rangeMin, double rangeMax, double barScale); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + auto _result = ImPlot::PlotHistogram(labelId, &values[0], LEN(values), bins, cumulative, density, ImPlotRange(rangeMin, rangeMax), true, barScale); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + return _result; + */ + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final short[] xs, final short[] ys) { + return nPlotHistogram2D(labelId, xs, ys); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final short[] xs, final short[] ys, final int xBins) { + return nPlotHistogram2D(labelId, xs, ys, xBins); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final short[] xs, final short[] ys, final int xBins, final int yBins) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final short[] xs, final short[] ys, final int xBins, final int yBins, final boolean density) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final short[] xs, final short[] ys, final int xBins, final int yBins, final boolean density, final ImPlotLimits range) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, range.x.min, range.y.min, range.x.max, range.y.max); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final short[] xs, final short[] ys, final int xBins, final int yBins, final boolean density, final double rangeMinX, final double rangeMinY, final double rangeMaxX, final double rangeMaxY) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, rangeMinX, rangeMinY, rangeMaxX, rangeMaxY); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final short[] xs, final short[] ys, final int xBins, final int yBins, final boolean density, final ImPlotLimits range, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, range.x.min, range.y.min, range.x.max, range.y.max, outliers); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final short[] xs, final short[] ys, final int xBins, final int yBins, final boolean density, final double rangeMinX, final double rangeMinY, final double rangeMaxX, final double rangeMaxY, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, rangeMinX, rangeMinY, rangeMaxX, rangeMaxY, outliers); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final short[] xs, final short[] ys, final int xBins, final int yBins, final ImPlotLimits range, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, range.x.min, range.y.min, range.x.max, range.y.max, outliers); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final short[] xs, final short[] ys, final int xBins, final int yBins, final double rangeMinX, final double rangeMinY, final double rangeMaxX, final double rangeMaxY, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, rangeMinX, rangeMinY, rangeMaxX, rangeMaxY, outliers); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final short[] xs, final short[] ys, final int xBins, final int yBins, final boolean density, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, outliers); + } + + private static native double nPlotHistogram2D(String obj_labelId, short[] obj_xs, short[] obj_ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, short[] obj_xs, short[] obj_ys, int xBins); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, short[] obj_xs, short[] obj_ys, int xBins, int yBins); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, short[] obj_xs, short[] obj_ys, int xBins, int yBins, boolean density); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, density); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, short[] obj_xs, short[] obj_ys, int xBins, int yBins, boolean density, double rangeMinX, double rangeMinY, double rangeMaxX, double rangeMaxY); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, density, ImPlotLimits(rangeMinX, rangeMinY, rangeMaxX, rangeMaxY)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, short[] obj_xs, short[] obj_ys, int xBins, int yBins, boolean density, double rangeMinX, double rangeMinY, double rangeMaxX, double rangeMaxY, boolean outliers); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, density, ImPlotLimits(rangeMinX, rangeMinY, rangeMaxX, rangeMaxY), outliers); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, short[] obj_xs, short[] obj_ys, int xBins, int yBins, double rangeMinX, double rangeMinY, double rangeMaxX, double rangeMaxY, boolean outliers); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, false, ImPlotLimits(rangeMinX, rangeMinY, rangeMaxX, rangeMaxY), outliers); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, short[] obj_xs, short[] obj_ys, int xBins, int yBins, boolean density, boolean outliers); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, density, ImPlotLimits(), outliers); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final int[] xs, final int[] ys) { + return nPlotHistogram2D(labelId, xs, ys); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final int[] xs, final int[] ys, final int xBins) { + return nPlotHistogram2D(labelId, xs, ys, xBins); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final int[] xs, final int[] ys, final int xBins, final int yBins) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final int[] xs, final int[] ys, final int xBins, final int yBins, final boolean density) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final int[] xs, final int[] ys, final int xBins, final int yBins, final boolean density, final ImPlotLimits range) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, range.x.min, range.y.min, range.x.max, range.y.max); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final int[] xs, final int[] ys, final int xBins, final int yBins, final boolean density, final double rangeMinX, final double rangeMinY, final double rangeMaxX, final double rangeMaxY) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, rangeMinX, rangeMinY, rangeMaxX, rangeMaxY); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final int[] xs, final int[] ys, final int xBins, final int yBins, final boolean density, final ImPlotLimits range, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, range.x.min, range.y.min, range.x.max, range.y.max, outliers); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final int[] xs, final int[] ys, final int xBins, final int yBins, final boolean density, final double rangeMinX, final double rangeMinY, final double rangeMaxX, final double rangeMaxY, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, rangeMinX, rangeMinY, rangeMaxX, rangeMaxY, outliers); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final int[] xs, final int[] ys, final int xBins, final int yBins, final ImPlotLimits range, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, range.x.min, range.y.min, range.x.max, range.y.max, outliers); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final int[] xs, final int[] ys, final int xBins, final int yBins, final double rangeMinX, final double rangeMinY, final double rangeMaxX, final double rangeMaxY, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, rangeMinX, rangeMinY, rangeMaxX, rangeMaxY, outliers); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final int[] xs, final int[] ys, final int xBins, final int yBins, final boolean density, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, outliers); + } + + private static native double nPlotHistogram2D(String obj_labelId, int[] obj_xs, int[] obj_ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, int[] obj_xs, int[] obj_ys, int xBins); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, int[] obj_xs, int[] obj_ys, int xBins, int yBins); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, int[] obj_xs, int[] obj_ys, int xBins, int yBins, boolean density); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, density); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, int[] obj_xs, int[] obj_ys, int xBins, int yBins, boolean density, double rangeMinX, double rangeMinY, double rangeMaxX, double rangeMaxY); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, density, ImPlotLimits(rangeMinX, rangeMinY, rangeMaxX, rangeMaxY)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, int[] obj_xs, int[] obj_ys, int xBins, int yBins, boolean density, double rangeMinX, double rangeMinY, double rangeMaxX, double rangeMaxY, boolean outliers); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, density, ImPlotLimits(rangeMinX, rangeMinY, rangeMaxX, rangeMaxY), outliers); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, int[] obj_xs, int[] obj_ys, int xBins, int yBins, double rangeMinX, double rangeMinY, double rangeMaxX, double rangeMaxY, boolean outliers); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, false, ImPlotLimits(rangeMinX, rangeMinY, rangeMaxX, rangeMaxY), outliers); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, int[] obj_xs, int[] obj_ys, int xBins, int yBins, boolean density, boolean outliers); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, density, ImPlotLimits(), outliers); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final long[] xs, final long[] ys) { + return nPlotHistogram2D(labelId, xs, ys); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final long[] xs, final long[] ys, final int xBins) { + return nPlotHistogram2D(labelId, xs, ys, xBins); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final long[] xs, final long[] ys, final int xBins, final int yBins) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final long[] xs, final long[] ys, final int xBins, final int yBins, final boolean density) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final long[] xs, final long[] ys, final int xBins, final int yBins, final boolean density, final ImPlotLimits range) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, range.x.min, range.y.min, range.x.max, range.y.max); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final long[] xs, final long[] ys, final int xBins, final int yBins, final boolean density, final double rangeMinX, final double rangeMinY, final double rangeMaxX, final double rangeMaxY) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, rangeMinX, rangeMinY, rangeMaxX, rangeMaxY); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final long[] xs, final long[] ys, final int xBins, final int yBins, final boolean density, final ImPlotLimits range, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, range.x.min, range.y.min, range.x.max, range.y.max, outliers); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final long[] xs, final long[] ys, final int xBins, final int yBins, final boolean density, final double rangeMinX, final double rangeMinY, final double rangeMaxX, final double rangeMaxY, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, rangeMinX, rangeMinY, rangeMaxX, rangeMaxY, outliers); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final long[] xs, final long[] ys, final int xBins, final int yBins, final ImPlotLimits range, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, range.x.min, range.y.min, range.x.max, range.y.max, outliers); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final long[] xs, final long[] ys, final int xBins, final int yBins, final double rangeMinX, final double rangeMinY, final double rangeMaxX, final double rangeMaxY, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, rangeMinX, rangeMinY, rangeMaxX, rangeMaxY, outliers); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final long[] xs, final long[] ys, final int xBins, final int yBins, final boolean density, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, outliers); + } + + private static native double nPlotHistogram2D(String obj_labelId, long[] obj_xs, long[] obj_ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, long[] obj_xs, long[] obj_ys, int xBins); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, long[] obj_xs, long[] obj_ys, int xBins, int yBins); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, long[] obj_xs, long[] obj_ys, int xBins, int yBins, boolean density); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, density); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, long[] obj_xs, long[] obj_ys, int xBins, int yBins, boolean density, double rangeMinX, double rangeMinY, double rangeMaxX, double rangeMaxY); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, density, ImPlotLimits(rangeMinX, rangeMinY, rangeMaxX, rangeMaxY)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, long[] obj_xs, long[] obj_ys, int xBins, int yBins, boolean density, double rangeMinX, double rangeMinY, double rangeMaxX, double rangeMaxY, boolean outliers); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, density, ImPlotLimits(rangeMinX, rangeMinY, rangeMaxX, rangeMaxY), outliers); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, long[] obj_xs, long[] obj_ys, int xBins, int yBins, double rangeMinX, double rangeMinY, double rangeMaxX, double rangeMaxY, boolean outliers); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, false, ImPlotLimits(rangeMinX, rangeMinY, rangeMaxX, rangeMaxY), outliers); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, long[] obj_xs, long[] obj_ys, int xBins, int yBins, boolean density, boolean outliers); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, density, ImPlotLimits(), outliers); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final float[] xs, final float[] ys) { + return nPlotHistogram2D(labelId, xs, ys); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final float[] xs, final float[] ys, final int xBins) { + return nPlotHistogram2D(labelId, xs, ys, xBins); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final float[] xs, final float[] ys, final int xBins, final int yBins) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final float[] xs, final float[] ys, final int xBins, final int yBins, final boolean density) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final float[] xs, final float[] ys, final int xBins, final int yBins, final boolean density, final ImPlotLimits range) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, range.x.min, range.y.min, range.x.max, range.y.max); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final float[] xs, final float[] ys, final int xBins, final int yBins, final boolean density, final double rangeMinX, final double rangeMinY, final double rangeMaxX, final double rangeMaxY) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, rangeMinX, rangeMinY, rangeMaxX, rangeMaxY); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final float[] xs, final float[] ys, final int xBins, final int yBins, final boolean density, final ImPlotLimits range, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, range.x.min, range.y.min, range.x.max, range.y.max, outliers); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final float[] xs, final float[] ys, final int xBins, final int yBins, final boolean density, final double rangeMinX, final double rangeMinY, final double rangeMaxX, final double rangeMaxY, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, rangeMinX, rangeMinY, rangeMaxX, rangeMaxY, outliers); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final float[] xs, final float[] ys, final int xBins, final int yBins, final ImPlotLimits range, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, range.x.min, range.y.min, range.x.max, range.y.max, outliers); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final float[] xs, final float[] ys, final int xBins, final int yBins, final double rangeMinX, final double rangeMinY, final double rangeMaxX, final double rangeMaxY, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, rangeMinX, rangeMinY, rangeMaxX, rangeMaxY, outliers); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final float[] xs, final float[] ys, final int xBins, final int yBins, final boolean density, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, outliers); + } + + private static native double nPlotHistogram2D(String obj_labelId, float[] obj_xs, float[] obj_ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, float[] obj_xs, float[] obj_ys, int xBins); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, float[] obj_xs, float[] obj_ys, int xBins, int yBins); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, float[] obj_xs, float[] obj_ys, int xBins, int yBins, boolean density); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, density); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, float[] obj_xs, float[] obj_ys, int xBins, int yBins, boolean density, double rangeMinX, double rangeMinY, double rangeMaxX, double rangeMaxY); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, density, ImPlotLimits(rangeMinX, rangeMinY, rangeMaxX, rangeMaxY)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, float[] obj_xs, float[] obj_ys, int xBins, int yBins, boolean density, double rangeMinX, double rangeMinY, double rangeMaxX, double rangeMaxY, boolean outliers); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, density, ImPlotLimits(rangeMinX, rangeMinY, rangeMaxX, rangeMaxY), outliers); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, float[] obj_xs, float[] obj_ys, int xBins, int yBins, double rangeMinX, double rangeMinY, double rangeMaxX, double rangeMaxY, boolean outliers); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, false, ImPlotLimits(rangeMinX, rangeMinY, rangeMaxX, rangeMaxY), outliers); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, float[] obj_xs, float[] obj_ys, int xBins, int yBins, boolean density, boolean outliers); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, density, ImPlotLimits(), outliers); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final double[] xs, final double[] ys) { + return nPlotHistogram2D(labelId, xs, ys); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final double[] xs, final double[] ys, final int xBins) { + return nPlotHistogram2D(labelId, xs, ys, xBins); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final double[] xs, final double[] ys, final int xBins, final int yBins) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final double[] xs, final double[] ys, final int xBins, final int yBins, final boolean density) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final double[] xs, final double[] ys, final int xBins, final int yBins, final boolean density, final ImPlotLimits range) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, range.x.min, range.y.min, range.x.max, range.y.max); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final double[] xs, final double[] ys, final int xBins, final int yBins, final boolean density, final double rangeMinX, final double rangeMinY, final double rangeMaxX, final double rangeMaxY) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, rangeMinX, rangeMinY, rangeMaxX, rangeMaxY); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final double[] xs, final double[] ys, final int xBins, final int yBins, final boolean density, final ImPlotLimits range, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, range.x.min, range.y.min, range.x.max, range.y.max, outliers); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final double[] xs, final double[] ys, final int xBins, final int yBins, final boolean density, final double rangeMinX, final double rangeMinY, final double rangeMaxX, final double rangeMaxY, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, rangeMinX, rangeMinY, rangeMaxX, rangeMaxY, outliers); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final double[] xs, final double[] ys, final int xBins, final int yBins, final ImPlotLimits range, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, range.x.min, range.y.min, range.x.max, range.y.max, outliers); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final double[] xs, final double[] ys, final int xBins, final int yBins, final double rangeMinX, final double rangeMinY, final double rangeMaxX, final double rangeMaxY, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, rangeMinX, rangeMinY, rangeMaxX, rangeMaxY, outliers); + } + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + public static double plotHistogram2D(final String labelId, final double[] xs, final double[] ys, final int xBins, final int yBins, final boolean density, final boolean outliers) { + return nPlotHistogram2D(labelId, xs, ys, xBins, yBins, density, outliers); + } + + private static native double nPlotHistogram2D(String obj_labelId, double[] obj_xs, double[] obj_ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, double[] obj_xs, double[] obj_ys, int xBins); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, double[] obj_xs, double[] obj_ys, int xBins, int yBins); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, double[] obj_xs, double[] obj_ys, int xBins, int yBins, boolean density); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, density); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, double[] obj_xs, double[] obj_ys, int xBins, int yBins, boolean density, double rangeMinX, double rangeMinY, double rangeMaxX, double rangeMaxY); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, density, ImPlotLimits(rangeMinX, rangeMinY, rangeMaxX, rangeMaxY)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, double[] obj_xs, double[] obj_ys, int xBins, int yBins, boolean density, double rangeMinX, double rangeMinY, double rangeMaxX, double rangeMaxY, boolean outliers); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, density, ImPlotLimits(rangeMinX, rangeMinY, rangeMaxX, rangeMaxY), outliers); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, double[] obj_xs, double[] obj_ys, int xBins, int yBins, double rangeMinX, double rangeMinY, double rangeMaxX, double rangeMaxY, boolean outliers); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, false, ImPlotLimits(rangeMinX, rangeMinY, rangeMaxX, rangeMaxY), outliers); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + private static native double nPlotHistogram2D(String obj_labelId, double[] obj_xs, double[] obj_ys, int xBins, int yBins, boolean density, boolean outliers); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + auto _result = ImPlot::PlotHistogram2D(labelId, &xs[0], &ys[0], LEN(xs), xBins, yBins, density, ImPlotLimits(), outliers); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + return _result; + */ + + /** + * Plots digital data. Digital plots do not respond to y drag or zoom, and are always referenced to the bottom of the plot. + */ + public static void plotDigital(final String labelId, final short[] xs, final short[] ys) { + nPlotDigital(labelId, xs, ys); + } + + /** + * Plots digital data. Digital plots do not respond to y drag or zoom, and are always referenced to the bottom of the plot. + */ + public static void plotDigital(final String labelId, final short[] xs, final short[] ys, final int offset) { + nPlotDigital(labelId, xs, ys, offset); + } + + private static native void nPlotDigital(String labelId, short[] xs, short[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotDigital(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotDigital(String labelId, short[] xs, short[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotDigital(labelId, &xs[0], &ys[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots digital data. Digital plots do not respond to y drag or zoom, and are always referenced to the bottom of the plot. + */ + public static void plotDigital(final String labelId, final int[] xs, final int[] ys) { + nPlotDigital(labelId, xs, ys); + } + + /** + * Plots digital data. Digital plots do not respond to y drag or zoom, and are always referenced to the bottom of the plot. + */ + public static void plotDigital(final String labelId, final int[] xs, final int[] ys, final int offset) { + nPlotDigital(labelId, xs, ys, offset); + } + + private static native void nPlotDigital(String labelId, int[] xs, int[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotDigital(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotDigital(String labelId, int[] xs, int[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotDigital(labelId, &xs[0], &ys[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots digital data. Digital plots do not respond to y drag or zoom, and are always referenced to the bottom of the plot. + */ + public static void plotDigital(final String labelId, final long[] xs, final long[] ys) { + nPlotDigital(labelId, xs, ys); + } + + /** + * Plots digital data. Digital plots do not respond to y drag or zoom, and are always referenced to the bottom of the plot. + */ + public static void plotDigital(final String labelId, final long[] xs, final long[] ys, final int offset) { + nPlotDigital(labelId, xs, ys, offset); + } + + private static native void nPlotDigital(String labelId, long[] xs, long[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotDigital(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotDigital(String labelId, long[] xs, long[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotDigital(labelId, &xs[0], &ys[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots digital data. Digital plots do not respond to y drag or zoom, and are always referenced to the bottom of the plot. + */ + public static void plotDigital(final String labelId, final float[] xs, final float[] ys) { + nPlotDigital(labelId, xs, ys); + } + + /** + * Plots digital data. Digital plots do not respond to y drag or zoom, and are always referenced to the bottom of the plot. + */ + public static void plotDigital(final String labelId, final float[] xs, final float[] ys, final int offset) { + nPlotDigital(labelId, xs, ys, offset); + } + + private static native void nPlotDigital(String labelId, float[] xs, float[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotDigital(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotDigital(String labelId, float[] xs, float[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotDigital(labelId, &xs[0], &ys[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots digital data. Digital plots do not respond to y drag or zoom, and are always referenced to the bottom of the plot. + */ + public static void plotDigital(final String labelId, final double[] xs, final double[] ys) { + nPlotDigital(labelId, xs, ys); + } + + /** + * Plots digital data. Digital plots do not respond to y drag or zoom, and are always referenced to the bottom of the plot. + */ + public static void plotDigital(final String labelId, final double[] xs, final double[] ys, final int offset) { + nPlotDigital(labelId, xs, ys, offset); + } + + private static native void nPlotDigital(String labelId, double[] xs, double[] ys); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotDigital(labelId, &xs[0], &ys[0], LEN(xs)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + private static native void nPlotDigital(String labelId, double[] xs, double[] ys, int offset); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto xs = obj_xs == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xs, JNI_FALSE); + auto ys = obj_ys == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_ys, JNI_FALSE); + ImPlot::PlotDigital(labelId, &xs[0], &ys[0], LEN(xs), offset); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + if (xs != NULL) env->ReleasePrimitiveArrayCritical(obj_xs, xs, JNI_FALSE); + if (ys != NULL) env->ReleasePrimitiveArrayCritical(obj_ys, ys, JNI_FALSE); + */ + + /** + * Plots an axis-aligned image. #bounds_min/bounds_max are in plot coordinates (y-up) and #uv0/uv1 are in texture coordinates (y-down). + */ + public static void plotImage(final String labelId, final int userTextureId, final ImPlotPoint boundsMin, final ImPlotPoint boundsMax) { + nPlotImage(labelId, userTextureId, boundsMin.x, boundsMin.y, boundsMax.x, boundsMax.y); + } + + /** + * Plots an axis-aligned image. #bounds_min/bounds_max are in plot coordinates (y-up) and #uv0/uv1 are in texture coordinates (y-down). + */ + public static void plotImage(final String labelId, final int userTextureId, final double boundsMinX, final double boundsMinY, final double boundsMaxX, final double boundsMaxY) { + nPlotImage(labelId, userTextureId, boundsMinX, boundsMinY, boundsMaxX, boundsMaxY); + } + + /** + * Plots an axis-aligned image. #bounds_min/bounds_max are in plot coordinates (y-up) and #uv0/uv1 are in texture coordinates (y-down). + */ + public static void plotImage(final String labelId, final int userTextureId, final ImPlotPoint boundsMin, final ImPlotPoint boundsMax, final ImVec2 uv0) { + nPlotImage(labelId, userTextureId, boundsMin.x, boundsMin.y, boundsMax.x, boundsMax.y, uv0.x, uv0.y); + } + + /** + * Plots an axis-aligned image. #bounds_min/bounds_max are in plot coordinates (y-up) and #uv0/uv1 are in texture coordinates (y-down). + */ + public static void plotImage(final String labelId, final int userTextureId, final ImPlotPoint boundsMin, final ImPlotPoint boundsMax, final float uv0X, final float uv0Y) { + nPlotImage(labelId, userTextureId, boundsMin.x, boundsMin.y, boundsMax.x, boundsMax.y, uv0X, uv0Y); + } + + /** + * Plots an axis-aligned image. #bounds_min/bounds_max are in plot coordinates (y-up) and #uv0/uv1 are in texture coordinates (y-down). + */ + public static void plotImage(final String labelId, final int userTextureId, final double boundsMinX, final double boundsMinY, final double boundsMaxX, final double boundsMaxY, final ImVec2 uv0) { + nPlotImage(labelId, userTextureId, boundsMinX, boundsMinY, boundsMaxX, boundsMaxY, uv0.x, uv0.y); + } + + /** + * Plots an axis-aligned image. #bounds_min/bounds_max are in plot coordinates (y-up) and #uv0/uv1 are in texture coordinates (y-down). + */ + public static void plotImage(final String labelId, final int userTextureId, final ImPlotPoint boundsMin, final ImPlotPoint boundsMax, final ImVec2 uv0, final ImVec2 uv1) { + nPlotImage(labelId, userTextureId, boundsMin.x, boundsMin.y, boundsMax.x, boundsMax.y, uv0.x, uv0.y, uv1.x, uv1.y); + } + + /** + * Plots an axis-aligned image. #bounds_min/bounds_max are in plot coordinates (y-up) and #uv0/uv1 are in texture coordinates (y-down). + */ + public static void plotImage(final String labelId, final int userTextureId, final ImPlotPoint boundsMin, final ImPlotPoint boundsMax, final float uv0X, final float uv0Y, final float uv1X, final float uv1Y) { + nPlotImage(labelId, userTextureId, boundsMin.x, boundsMin.y, boundsMax.x, boundsMax.y, uv0X, uv0Y, uv1X, uv1Y); + } + + /** + * Plots an axis-aligned image. #bounds_min/bounds_max are in plot coordinates (y-up) and #uv0/uv1 are in texture coordinates (y-down). + */ + public static void plotImage(final String labelId, final int userTextureId, final double boundsMinX, final double boundsMinY, final double boundsMaxX, final double boundsMaxY, final ImVec2 uv0, final ImVec2 uv1) { + nPlotImage(labelId, userTextureId, boundsMinX, boundsMinY, boundsMaxX, boundsMaxY, uv0.x, uv0.y, uv1.x, uv1.y); + } + + /** + * Plots an axis-aligned image. #bounds_min/bounds_max are in plot coordinates (y-up) and #uv0/uv1 are in texture coordinates (y-down). + */ + public static void plotImage(final String labelId, final int userTextureId, final ImPlotPoint boundsMin, final ImPlotPoint boundsMax, final ImVec2 uv0, final ImVec2 uv1, final ImVec4 tintCol) { + nPlotImage(labelId, userTextureId, boundsMin.x, boundsMin.y, boundsMax.x, boundsMax.y, uv0.x, uv0.y, uv1.x, uv1.y, tintCol.x, tintCol.y, tintCol.z, tintCol.w); + } + + /** + * Plots an axis-aligned image. #bounds_min/bounds_max are in plot coordinates (y-up) and #uv0/uv1 are in texture coordinates (y-down). + */ + public static void plotImage(final String labelId, final int userTextureId, final ImPlotPoint boundsMin, final ImPlotPoint boundsMax, final float uv0X, final float uv0Y, final float uv1X, final float uv1Y, final float tintColX, final float tintColY, final float tintColZ, final float tintColW) { + nPlotImage(labelId, userTextureId, boundsMin.x, boundsMin.y, boundsMax.x, boundsMax.y, uv0X, uv0Y, uv1X, uv1Y, tintColX, tintColY, tintColZ, tintColW); + } + + /** + * Plots an axis-aligned image. #bounds_min/bounds_max are in plot coordinates (y-up) and #uv0/uv1 are in texture coordinates (y-down). + */ + public static void plotImage(final String labelId, final int userTextureId, final double boundsMinX, final double boundsMinY, final double boundsMaxX, final double boundsMaxY, final ImVec2 uv0, final ImVec2 uv1, final ImVec4 tintCol) { + nPlotImage(labelId, userTextureId, boundsMinX, boundsMinY, boundsMaxX, boundsMaxY, uv0.x, uv0.y, uv1.x, uv1.y, tintCol.x, tintCol.y, tintCol.z, tintCol.w); + } + + private static native void nPlotImage(String labelId, int userTextureId, double boundsMinX, double boundsMinY, double boundsMaxX, double boundsMaxY); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + ImPlot::PlotImage(labelId, (ImTextureID)(intptr_t)userTextureId, ImPlotPoint(boundsMinX, boundsMinY), ImPlotPoint(boundsMaxX, boundsMaxY)); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + */ + + private static native void nPlotImage(String labelId, int userTextureId, double boundsMinX, double boundsMinY, double boundsMaxX, double boundsMaxY, float uv0X, float uv0Y); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + ImVec2 uv0 = ImVec2(uv0X, uv0Y); + ImPlot::PlotImage(labelId, (ImTextureID)(intptr_t)userTextureId, ImPlotPoint(boundsMinX, boundsMinY), ImPlotPoint(boundsMaxX, boundsMaxY), uv0); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + */ + + private static native void nPlotImage(String labelId, int userTextureId, double boundsMinX, double boundsMinY, double boundsMaxX, double boundsMaxY, float uv0X, float uv0Y, float uv1X, float uv1Y); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + ImVec2 uv0 = ImVec2(uv0X, uv0Y); + ImVec2 uv1 = ImVec2(uv1X, uv1Y); + ImPlot::PlotImage(labelId, (ImTextureID)(intptr_t)userTextureId, ImPlotPoint(boundsMinX, boundsMinY), ImPlotPoint(boundsMaxX, boundsMaxY), uv0, uv1); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + */ + + private static native void nPlotImage(String labelId, int userTextureId, double boundsMinX, double boundsMinY, double boundsMaxX, double boundsMaxY, float uv0X, float uv0Y, float uv1X, float uv1Y, float tintColX, float tintColY, float tintColZ, float tintColW); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + ImVec2 uv0 = ImVec2(uv0X, uv0Y); + ImVec2 uv1 = ImVec2(uv1X, uv1Y); + ImVec4 tintCol = ImVec4(tintColX, tintColY, tintColZ, tintColW); + ImPlot::PlotImage(labelId, (ImTextureID)(intptr_t)userTextureId, ImPlotPoint(boundsMinX, boundsMinY), ImPlotPoint(boundsMaxX, boundsMaxY), uv0, uv1, tintCol); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + */ + + /** + * Plots a centered text label at point x,y with an optional pixel offset. Text color can be changed with ImPlot::PushStyleColor(ImPlotCol_InlayText, ...). + */ + public static void plotText(final String text, final double x, final double y) { + nPlotText(text, x, y); + } + + /** + * Plots a centered text label at point x,y with an optional pixel offset. Text color can be changed with ImPlot::PushStyleColor(ImPlotCol_InlayText, ...). + */ + public static void plotText(final String text, final double x, final double y, final boolean vertical) { + nPlotText(text, x, y, vertical); + } + + /** + * Plots a centered text label at point x,y with an optional pixel offset. Text color can be changed with ImPlot::PushStyleColor(ImPlotCol_InlayText, ...). + */ + public static void plotText(final String text, final double x, final double y, final boolean vertical, final ImVec2 pixOffset) { + nPlotText(text, x, y, vertical, pixOffset.x, pixOffset.y); + } + + /** + * Plots a centered text label at point x,y with an optional pixel offset. Text color can be changed with ImPlot::PushStyleColor(ImPlotCol_InlayText, ...). + */ + public static void plotText(final String text, final double x, final double y, final boolean vertical, final float pixOffsetX, final float pixOffsetY) { + nPlotText(text, x, y, vertical, pixOffsetX, pixOffsetY); + } + + /** + * Plots a centered text label at point x,y with an optional pixel offset. Text color can be changed with ImPlot::PushStyleColor(ImPlotCol_InlayText, ...). + */ + public static void plotText(final String text, final double x, final double y, final ImVec2 pixOffset) { + nPlotText(text, x, y, pixOffset.x, pixOffset.y); + } + + /** + * Plots a centered text label at point x,y with an optional pixel offset. Text color can be changed with ImPlot::PushStyleColor(ImPlotCol_InlayText, ...). + */ + public static void plotText(final String text, final double x, final double y, final float pixOffsetX, final float pixOffsetY) { + nPlotText(text, x, y, pixOffsetX, pixOffsetY); + } + + private static native void nPlotText(String text, double x, double y); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + ImPlot::PlotText(text, x, y); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + */ + + private static native void nPlotText(String text, double x, double y, boolean vertical); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + ImPlot::PlotText(text, x, y, vertical); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + */ + + private static native void nPlotText(String text, double x, double y, boolean vertical, float pixOffsetX, float pixOffsetY); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + ImVec2 pixOffset = ImVec2(pixOffsetX, pixOffsetY); + ImPlot::PlotText(text, x, y, vertical, pixOffset); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + */ + + private static native void nPlotText(String text, double x, double y, float pixOffsetX, float pixOffsetY); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + ImVec2 pixOffset = ImVec2(pixOffsetX, pixOffsetY); + ImPlot::PlotText(text, x, y, false, pixOffset); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + */ + + /** + * Plots a dummy item (i.e. adds a legend entry colored by ImPlotCol_Line) + */ + public static void plotDummy(final String labelID) { + nPlotDummy(labelID); + } + + private static native void nPlotDummy(String labelID); /*MANUAL + auto labelID = obj_labelID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelID, JNI_FALSE); + ImPlot::PlotDummy(labelID); + if (labelID != NULL) env->ReleaseStringUTFChars(obj_labelID, labelID); + */ + + /*JNI + #undef LEN + #undef long + */ + + //----------------------------------------------------------------------------- + // Plot Utils + //----------------------------------------------------------------------------- + + /** + * Set the axes range limits of the next plot. Call right before BeginPlot(). If ImGuiCond_Always is used, the axes limits will be locked. + */ + public static void setNextPlotLimits(final double xMin, final double xMax, final double yMin, final double yMax) { + nSetNextPlotLimits(xMin, xMax, yMin, yMax); + } + + /** + * Set the axes range limits of the next plot. Call right before BeginPlot(). If ImGuiCond_Always is used, the axes limits will be locked. + */ + public static void setNextPlotLimits(final double xMin, final double xMax, final double yMin, final double yMax, final int cond) { + nSetNextPlotLimits(xMin, xMax, yMin, yMax, cond); + } + + private static native void nSetNextPlotLimits(double xMin, double xMax, double yMin, double yMax); /* + ImPlot::SetNextPlotLimits(xMin, xMax, yMin, yMax); + */ + + private static native void nSetNextPlotLimits(double xMin, double xMax, double yMin, double yMax, int cond); /* + ImPlot::SetNextPlotLimits(xMin, xMax, yMin, yMax, cond); + */ + + /** + * Set the X axis range limits of the next plot. Call right before BeginPlot(). If ImGuiCond_Always is used, the X axis limits will be locked. + */ + public static void setNextPlotLimitsX(final double xMin, final double xMax) { + nSetNextPlotLimitsX(xMin, xMax); + } + + /** + * Set the X axis range limits of the next plot. Call right before BeginPlot(). If ImGuiCond_Always is used, the X axis limits will be locked. + */ + public static void setNextPlotLimitsX(final double xMin, final double xMax, final int cond) { + nSetNextPlotLimitsX(xMin, xMax, cond); + } + + private static native void nSetNextPlotLimitsX(double xMin, double xMax); /* + ImPlot::SetNextPlotLimitsX(xMin, xMax); + */ + + private static native void nSetNextPlotLimitsX(double xMin, double xMax, int cond); /* + ImPlot::SetNextPlotLimitsX(xMin, xMax, cond); + */ + + /** + * Set the Y axis range limits of the next plot. Call right before BeginPlot(). If ImGuiCond_Always is used, the Y axis limits will be locked. + */ + public static void setNextPlotLimitsY(final double yMin, final double yMax) { + nSetNextPlotLimitsY(yMin, yMax); + } + + /** + * Set the Y axis range limits of the next plot. Call right before BeginPlot(). If ImGuiCond_Always is used, the Y axis limits will be locked. + */ + public static void setNextPlotLimitsY(final double yMin, final double yMax, final int cond) { + nSetNextPlotLimitsY(yMin, yMax, cond); + } + + private static native void nSetNextPlotLimitsY(double yMin, double yMax); /* + ImPlot::SetNextPlotLimitsY(yMin, yMax); + */ + + private static native void nSetNextPlotLimitsY(double yMin, double yMax, int cond); /* + ImPlot::SetNextPlotLimitsY(yMin, yMax, cond); + */ + + /** + * Links the next plot limits to external values. Set to NULL for no linkage. The pointer data must remain valid until the matching call to EndPlot. + */ + public static void linkNextPlotLimits(final ImDouble xMin, final ImDouble xMax, final ImDouble yMin, final ImDouble yMax) { + nLinkNextPlotLimits(xMin != null ? xMin.getData() : null, xMax != null ? xMax.getData() : null, yMin != null ? yMin.getData() : null, yMax != null ? yMax.getData() : null); + } + + /** + * Links the next plot limits to external values. Set to NULL for no linkage. The pointer data must remain valid until the matching call to EndPlot. + */ + public static void linkNextPlotLimits(final ImDouble xMin, final ImDouble xMax, final ImDouble yMin, final ImDouble yMax, final ImDouble yMin2) { + nLinkNextPlotLimits(xMin != null ? xMin.getData() : null, xMax != null ? xMax.getData() : null, yMin != null ? yMin.getData() : null, yMax != null ? yMax.getData() : null, yMin2 != null ? yMin2.getData() : null); + } + + /** + * Links the next plot limits to external values. Set to NULL for no linkage. The pointer data must remain valid until the matching call to EndPlot. + */ + public static void linkNextPlotLimits(final ImDouble xMin, final ImDouble xMax, final ImDouble yMin, final ImDouble yMax, final ImDouble yMin2, final ImDouble yMax2) { + nLinkNextPlotLimits(xMin != null ? xMin.getData() : null, xMax != null ? xMax.getData() : null, yMin != null ? yMin.getData() : null, yMax != null ? yMax.getData() : null, yMin2 != null ? yMin2.getData() : null, yMax2 != null ? yMax2.getData() : null); + } + + /** + * Links the next plot limits to external values. Set to NULL for no linkage. The pointer data must remain valid until the matching call to EndPlot. + */ + public static void linkNextPlotLimits(final ImDouble xMin, final ImDouble xMax, final ImDouble yMin, final ImDouble yMax, final ImDouble yMin2, final ImDouble yMax2, final ImDouble yMin3) { + nLinkNextPlotLimits(xMin != null ? xMin.getData() : null, xMax != null ? xMax.getData() : null, yMin != null ? yMin.getData() : null, yMax != null ? yMax.getData() : null, yMin2 != null ? yMin2.getData() : null, yMax2 != null ? yMax2.getData() : null, yMin3 != null ? yMin3.getData() : null); + } + + /** + * Links the next plot limits to external values. Set to NULL for no linkage. The pointer data must remain valid until the matching call to EndPlot. + */ + public static void linkNextPlotLimits(final ImDouble xMin, final ImDouble xMax, final ImDouble yMin, final ImDouble yMax, final ImDouble yMin2, final ImDouble yMax2, final ImDouble yMin3, final ImDouble yMax3) { + nLinkNextPlotLimits(xMin != null ? xMin.getData() : null, xMax != null ? xMax.getData() : null, yMin != null ? yMin.getData() : null, yMax != null ? yMax.getData() : null, yMin2 != null ? yMin2.getData() : null, yMax2 != null ? yMax2.getData() : null, yMin3 != null ? yMin3.getData() : null, yMax3 != null ? yMax3.getData() : null); + } + + private static native void nLinkNextPlotLimits(double[] xMin, double[] xMax, double[] yMin, double[] yMax); /*MANUAL + auto xMin = obj_xMin == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xMin, JNI_FALSE); + auto xMax = obj_xMax == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xMax, JNI_FALSE); + auto yMin = obj_yMin == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yMin, JNI_FALSE); + auto yMax = obj_yMax == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yMax, JNI_FALSE); + ImPlot::LinkNextPlotLimits((xMin != NULL ? &xMin[0] : NULL), (xMax != NULL ? &xMax[0] : NULL), (yMin != NULL ? &yMin[0] : NULL), (yMax != NULL ? &yMax[0] : NULL)); + if (xMin != NULL) env->ReleasePrimitiveArrayCritical(obj_xMin, xMin, JNI_FALSE); + if (xMax != NULL) env->ReleasePrimitiveArrayCritical(obj_xMax, xMax, JNI_FALSE); + if (yMin != NULL) env->ReleasePrimitiveArrayCritical(obj_yMin, yMin, JNI_FALSE); + if (yMax != NULL) env->ReleasePrimitiveArrayCritical(obj_yMax, yMax, JNI_FALSE); + */ + + private static native void nLinkNextPlotLimits(double[] xMin, double[] xMax, double[] yMin, double[] yMax, double[] yMin2); /*MANUAL + auto xMin = obj_xMin == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xMin, JNI_FALSE); + auto xMax = obj_xMax == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xMax, JNI_FALSE); + auto yMin = obj_yMin == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yMin, JNI_FALSE); + auto yMax = obj_yMax == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yMax, JNI_FALSE); + auto yMin2 = obj_yMin2 == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yMin2, JNI_FALSE); + ImPlot::LinkNextPlotLimits((xMin != NULL ? &xMin[0] : NULL), (xMax != NULL ? &xMax[0] : NULL), (yMin != NULL ? &yMin[0] : NULL), (yMax != NULL ? &yMax[0] : NULL), (yMin2 != NULL ? &yMin2[0] : NULL)); + if (xMin != NULL) env->ReleasePrimitiveArrayCritical(obj_xMin, xMin, JNI_FALSE); + if (xMax != NULL) env->ReleasePrimitiveArrayCritical(obj_xMax, xMax, JNI_FALSE); + if (yMin != NULL) env->ReleasePrimitiveArrayCritical(obj_yMin, yMin, JNI_FALSE); + if (yMax != NULL) env->ReleasePrimitiveArrayCritical(obj_yMax, yMax, JNI_FALSE); + if (yMin2 != NULL) env->ReleasePrimitiveArrayCritical(obj_yMin2, yMin2, JNI_FALSE); + */ + + private static native void nLinkNextPlotLimits(double[] xMin, double[] xMax, double[] yMin, double[] yMax, double[] yMin2, double[] yMax2); /*MANUAL + auto xMin = obj_xMin == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xMin, JNI_FALSE); + auto xMax = obj_xMax == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xMax, JNI_FALSE); + auto yMin = obj_yMin == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yMin, JNI_FALSE); + auto yMax = obj_yMax == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yMax, JNI_FALSE); + auto yMin2 = obj_yMin2 == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yMin2, JNI_FALSE); + auto yMax2 = obj_yMax2 == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yMax2, JNI_FALSE); + ImPlot::LinkNextPlotLimits((xMin != NULL ? &xMin[0] : NULL), (xMax != NULL ? &xMax[0] : NULL), (yMin != NULL ? &yMin[0] : NULL), (yMax != NULL ? &yMax[0] : NULL), (yMin2 != NULL ? &yMin2[0] : NULL), (yMax2 != NULL ? &yMax2[0] : NULL)); + if (xMin != NULL) env->ReleasePrimitiveArrayCritical(obj_xMin, xMin, JNI_FALSE); + if (xMax != NULL) env->ReleasePrimitiveArrayCritical(obj_xMax, xMax, JNI_FALSE); + if (yMin != NULL) env->ReleasePrimitiveArrayCritical(obj_yMin, yMin, JNI_FALSE); + if (yMax != NULL) env->ReleasePrimitiveArrayCritical(obj_yMax, yMax, JNI_FALSE); + if (yMin2 != NULL) env->ReleasePrimitiveArrayCritical(obj_yMin2, yMin2, JNI_FALSE); + if (yMax2 != NULL) env->ReleasePrimitiveArrayCritical(obj_yMax2, yMax2, JNI_FALSE); + */ + + private static native void nLinkNextPlotLimits(double[] xMin, double[] xMax, double[] yMin, double[] yMax, double[] yMin2, double[] yMax2, double[] yMin3); /*MANUAL + auto xMin = obj_xMin == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xMin, JNI_FALSE); + auto xMax = obj_xMax == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xMax, JNI_FALSE); + auto yMin = obj_yMin == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yMin, JNI_FALSE); + auto yMax = obj_yMax == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yMax, JNI_FALSE); + auto yMin2 = obj_yMin2 == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yMin2, JNI_FALSE); + auto yMax2 = obj_yMax2 == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yMax2, JNI_FALSE); + auto yMin3 = obj_yMin3 == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yMin3, JNI_FALSE); + ImPlot::LinkNextPlotLimits((xMin != NULL ? &xMin[0] : NULL), (xMax != NULL ? &xMax[0] : NULL), (yMin != NULL ? &yMin[0] : NULL), (yMax != NULL ? &yMax[0] : NULL), (yMin2 != NULL ? &yMin2[0] : NULL), (yMax2 != NULL ? &yMax2[0] : NULL), (yMin3 != NULL ? &yMin3[0] : NULL)); + if (xMin != NULL) env->ReleasePrimitiveArrayCritical(obj_xMin, xMin, JNI_FALSE); + if (xMax != NULL) env->ReleasePrimitiveArrayCritical(obj_xMax, xMax, JNI_FALSE); + if (yMin != NULL) env->ReleasePrimitiveArrayCritical(obj_yMin, yMin, JNI_FALSE); + if (yMax != NULL) env->ReleasePrimitiveArrayCritical(obj_yMax, yMax, JNI_FALSE); + if (yMin2 != NULL) env->ReleasePrimitiveArrayCritical(obj_yMin2, yMin2, JNI_FALSE); + if (yMax2 != NULL) env->ReleasePrimitiveArrayCritical(obj_yMax2, yMax2, JNI_FALSE); + if (yMin3 != NULL) env->ReleasePrimitiveArrayCritical(obj_yMin3, yMin3, JNI_FALSE); + */ + + private static native void nLinkNextPlotLimits(double[] xMin, double[] xMax, double[] yMin, double[] yMax, double[] yMin2, double[] yMax2, double[] yMin3, double[] yMax3); /*MANUAL + auto xMin = obj_xMin == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xMin, JNI_FALSE); + auto xMax = obj_xMax == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xMax, JNI_FALSE); + auto yMin = obj_yMin == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yMin, JNI_FALSE); + auto yMax = obj_yMax == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yMax, JNI_FALSE); + auto yMin2 = obj_yMin2 == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yMin2, JNI_FALSE); + auto yMax2 = obj_yMax2 == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yMax2, JNI_FALSE); + auto yMin3 = obj_yMin3 == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yMin3, JNI_FALSE); + auto yMax3 = obj_yMax3 == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yMax3, JNI_FALSE); + ImPlot::LinkNextPlotLimits((xMin != NULL ? &xMin[0] : NULL), (xMax != NULL ? &xMax[0] : NULL), (yMin != NULL ? &yMin[0] : NULL), (yMax != NULL ? &yMax[0] : NULL), (yMin2 != NULL ? &yMin2[0] : NULL), (yMax2 != NULL ? &yMax2[0] : NULL), (yMin3 != NULL ? &yMin3[0] : NULL), (yMax3 != NULL ? &yMax3[0] : NULL)); + if (xMin != NULL) env->ReleasePrimitiveArrayCritical(obj_xMin, xMin, JNI_FALSE); + if (xMax != NULL) env->ReleasePrimitiveArrayCritical(obj_xMax, xMax, JNI_FALSE); + if (yMin != NULL) env->ReleasePrimitiveArrayCritical(obj_yMin, yMin, JNI_FALSE); + if (yMax != NULL) env->ReleasePrimitiveArrayCritical(obj_yMax, yMax, JNI_FALSE); + if (yMin2 != NULL) env->ReleasePrimitiveArrayCritical(obj_yMin2, yMin2, JNI_FALSE); + if (yMax2 != NULL) env->ReleasePrimitiveArrayCritical(obj_yMax2, yMax2, JNI_FALSE); + if (yMin3 != NULL) env->ReleasePrimitiveArrayCritical(obj_yMin3, yMin3, JNI_FALSE); + if (yMax3 != NULL) env->ReleasePrimitiveArrayCritical(obj_yMax3, yMax3, JNI_FALSE); + */ + + /** + * Fits the next plot axes to all plotted data if they are unlocked (equivalent to double-clicks). + */ + public static void fitNextPlotAxes() { + nFitNextPlotAxes(); + } + + /** + * Fits the next plot axes to all plotted data if they are unlocked (equivalent to double-clicks). + */ + public static void fitNextPlotAxes(final boolean x) { + nFitNextPlotAxes(x); + } + + /** + * Fits the next plot axes to all plotted data if they are unlocked (equivalent to double-clicks). + */ + public static void fitNextPlotAxes(final boolean x, final boolean y) { + nFitNextPlotAxes(x, y); + } + + /** + * Fits the next plot axes to all plotted data if they are unlocked (equivalent to double-clicks). + */ + public static void fitNextPlotAxes(final boolean x, final boolean y, final boolean y2) { + nFitNextPlotAxes(x, y, y2); + } + + /** + * Fits the next plot axes to all plotted data if they are unlocked (equivalent to double-clicks). + */ + public static void fitNextPlotAxes(final boolean x, final boolean y, final boolean y2, final boolean y3) { + nFitNextPlotAxes(x, y, y2, y3); + } + + private static native void nFitNextPlotAxes(); /* + ImPlot::FitNextPlotAxes(); + */ + + private static native void nFitNextPlotAxes(boolean x); /* + ImPlot::FitNextPlotAxes(x); + */ + + private static native void nFitNextPlotAxes(boolean x, boolean y); /* + ImPlot::FitNextPlotAxes(x, y); + */ + + private static native void nFitNextPlotAxes(boolean x, boolean y, boolean y2); /* + ImPlot::FitNextPlotAxes(x, y, y2); + */ + + private static native void nFitNextPlotAxes(boolean x, boolean y, boolean y2, boolean y3); /* + ImPlot::FitNextPlotAxes(x, y, y2, y3); + */ + + /** + * Set the X axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksX(final double[] values, final int nTicks) { + nSetNextPlotTicksX(values, nTicks); + } + + /** + * Set the X axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksX(final double[] values, final int nTicks, final String[] labels) { + nSetNextPlotTicksX(values, nTicks, labels, labels.length); + } + + /** + * Set the X axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksX(final double[] values, final int nTicks, final String[] labels, final boolean keepDefault) { + nSetNextPlotTicksX(values, nTicks, labels, labels.length, keepDefault); + } + + /** + * Set the X axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksX(final double[] values, final int nTicks, final boolean keepDefault) { + nSetNextPlotTicksX(values, nTicks, keepDefault); + } + + private static native void nSetNextPlotTicksX(double[] values, int nTicks); /*MANUAL + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::SetNextPlotTicksX(&values[0], nTicks); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nSetNextPlotTicksX(double[] values, int nTicks, String[] obj_labels, int labelsCount); /*MANUAL + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + const char* labels[labelsCount]; + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labels[i] = rawStr; + }; + ImPlot::SetNextPlotTicksX(&values[0], nTicks, labels); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + env->ReleaseStringUTFChars(str, labels[i]); + }; + */ + + private static native void nSetNextPlotTicksX(double[] values, int nTicks, String[] obj_labels, int labelsCount, boolean keepDefault); /*MANUAL + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + const char* labels[labelsCount]; + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labels[i] = rawStr; + }; + ImPlot::SetNextPlotTicksX(&values[0], nTicks, labels, keepDefault); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + env->ReleaseStringUTFChars(str, labels[i]); + }; + */ + + private static native void nSetNextPlotTicksX(double[] values, int nTicks, boolean keepDefault); /*MANUAL + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::SetNextPlotTicksX(&values[0], nTicks, NULL, keepDefault); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + /** + * Set the X axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksX(final double xMin, final double xMax, final int nTicks) { + nSetNextPlotTicksX(xMin, xMax, nTicks); + } + + /** + * Set the X axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksX(final double xMin, final double xMax, final int nTicks, final String[] labels) { + nSetNextPlotTicksX(xMin, xMax, nTicks, labels, labels.length); + } + + /** + * Set the X axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksX(final double xMin, final double xMax, final int nTicks, final String[] labels, final boolean keepDefault) { + nSetNextPlotTicksX(xMin, xMax, nTicks, labels, labels.length, keepDefault); + } + + /** + * Set the X axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksX(final double xMin, final double xMax, final int nTicks, final boolean keepDefault) { + nSetNextPlotTicksX(xMin, xMax, nTicks, keepDefault); + } + + private static native void nSetNextPlotTicksX(double xMin, double xMax, int nTicks); /* + ImPlot::SetNextPlotTicksX(xMin, xMax, nTicks); + */ + + private static native void nSetNextPlotTicksX(double xMin, double xMax, int nTicks, String[] obj_labels, int labelsCount); /*MANUAL + const char* labels[labelsCount]; + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labels[i] = rawStr; + }; + ImPlot::SetNextPlotTicksX(xMin, xMax, nTicks, labels); + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + env->ReleaseStringUTFChars(str, labels[i]); + }; + */ + + private static native void nSetNextPlotTicksX(double xMin, double xMax, int nTicks, String[] obj_labels, int labelsCount, boolean keepDefault); /*MANUAL + const char* labels[labelsCount]; + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labels[i] = rawStr; + }; + ImPlot::SetNextPlotTicksX(xMin, xMax, nTicks, labels, keepDefault); + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + env->ReleaseStringUTFChars(str, labels[i]); + }; + */ + + private static native void nSetNextPlotTicksX(double xMin, double xMax, int nTicks, boolean keepDefault); /* + ImPlot::SetNextPlotTicksX(xMin, xMax, nTicks, NULL, keepDefault); + */ + + /** + * Set the Y axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksY(final double[] values, final int nTicks) { + nSetNextPlotTicksY(values, nTicks); + } + + /** + * Set the Y axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksY(final double[] values, final int nTicks, final String[] labels) { + nSetNextPlotTicksY(values, nTicks, labels, labels.length); + } + + /** + * Set the Y axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksY(final double[] values, final int nTicks, final String[] labels, final boolean keepDefault) { + nSetNextPlotTicksY(values, nTicks, labels, labels.length, keepDefault); + } + + /** + * Set the Y axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksY(final double[] values, final int nTicks, final String[] labels, final boolean keepDefault, final int yAxis) { + nSetNextPlotTicksY(values, nTicks, labels, labels.length, keepDefault, yAxis); + } + + /** + * Set the Y axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksY(final double[] values, final int nTicks, final boolean keepDefault, final int yAxis) { + nSetNextPlotTicksY(values, nTicks, keepDefault, yAxis); + } + + /** + * Set the Y axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksY(final double[] values, final int nTicks, final int yAxis) { + nSetNextPlotTicksY(values, nTicks, yAxis); + } + + /** + * Set the Y axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksY(final double[] values, final int nTicks, final String[] labels, final int yAxis) { + nSetNextPlotTicksY(values, nTicks, labels, labels.length, yAxis); + } + + private static native void nSetNextPlotTicksY(double[] values, int nTicks); /*MANUAL + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::SetNextPlotTicksY(&values[0], nTicks); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nSetNextPlotTicksY(double[] values, int nTicks, String[] obj_labels, int labelsCount); /*MANUAL + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + const char* labels[labelsCount]; + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labels[i] = rawStr; + }; + ImPlot::SetNextPlotTicksY(&values[0], nTicks, labels); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + env->ReleaseStringUTFChars(str, labels[i]); + }; + */ + + private static native void nSetNextPlotTicksY(double[] values, int nTicks, String[] obj_labels, int labelsCount, boolean keepDefault); /*MANUAL + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + const char* labels[labelsCount]; + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labels[i] = rawStr; + }; + ImPlot::SetNextPlotTicksY(&values[0], nTicks, labels, keepDefault); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + env->ReleaseStringUTFChars(str, labels[i]); + }; + */ + + private static native void nSetNextPlotTicksY(double[] values, int nTicks, String[] obj_labels, int labelsCount, boolean keepDefault, int yAxis); /*MANUAL + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + const char* labels[labelsCount]; + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labels[i] = rawStr; + }; + ImPlot::SetNextPlotTicksY(&values[0], nTicks, labels, keepDefault, yAxis); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + env->ReleaseStringUTFChars(str, labels[i]); + }; + */ + + private static native void nSetNextPlotTicksY(double[] values, int nTicks, boolean keepDefault, int yAxis); /*MANUAL + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::SetNextPlotTicksY(&values[0], nTicks, NULL, keepDefault, yAxis); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nSetNextPlotTicksY(double[] values, int nTicks, int yAxis); /*MANUAL + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + ImPlot::SetNextPlotTicksY(&values[0], nTicks, NULL, false, yAxis); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + */ + + private static native void nSetNextPlotTicksY(double[] values, int nTicks, String[] obj_labels, int labelsCount, int yAxis); /*MANUAL + auto values = obj_values == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_values, JNI_FALSE); + const char* labels[labelsCount]; + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labels[i] = rawStr; + }; + ImPlot::SetNextPlotTicksY(&values[0], nTicks, labels, false, yAxis); + if (values != NULL) env->ReleasePrimitiveArrayCritical(obj_values, values, JNI_FALSE); + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + env->ReleaseStringUTFChars(str, labels[i]); + }; + */ + + /** + * Set the Y axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksY(final double yMin, final double yMax, final int nTicks) { + nSetNextPlotTicksY(yMin, yMax, nTicks); + } + + /** + * Set the Y axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksY(final double yMin, final double yMax, final int nTicks, final String[] labels) { + nSetNextPlotTicksY(yMin, yMax, nTicks, labels, labels.length); + } + + /** + * Set the Y axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksY(final double yMin, final double yMax, final int nTicks, final String[] labels, final boolean keepDefault) { + nSetNextPlotTicksY(yMin, yMax, nTicks, labels, labels.length, keepDefault); + } + + /** + * Set the Y axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksY(final double yMin, final double yMax, final int nTicks, final String[] labels, final boolean keepDefault, final int yAxis) { + nSetNextPlotTicksY(yMin, yMax, nTicks, labels, labels.length, keepDefault, yAxis); + } + + /** + * Set the Y axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksY(final double yMin, final double yMax, final int nTicks, final boolean keepDefault, final int yAxis) { + nSetNextPlotTicksY(yMin, yMax, nTicks, keepDefault, yAxis); + } + + /** + * Set the Y axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksY(final double yMin, final double yMax, final int nTicks, final int yAxis) { + nSetNextPlotTicksY(yMin, yMax, nTicks, yAxis); + } + + /** + * Set the Y axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. + */ + public static void setNextPlotTicksY(final double yMin, final double yMax, final int nTicks, final String[] labels, final int yAxis) { + nSetNextPlotTicksY(yMin, yMax, nTicks, labels, labels.length, yAxis); + } + + private static native void nSetNextPlotTicksY(double yMin, double yMax, int nTicks); /* + ImPlot::SetNextPlotTicksY(yMin, yMax, nTicks); + */ + + private static native void nSetNextPlotTicksY(double yMin, double yMax, int nTicks, String[] obj_labels, int labelsCount); /*MANUAL + const char* labels[labelsCount]; + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labels[i] = rawStr; + }; + ImPlot::SetNextPlotTicksY(yMin, yMax, nTicks, labels); + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + env->ReleaseStringUTFChars(str, labels[i]); + }; + */ + + private static native void nSetNextPlotTicksY(double yMin, double yMax, int nTicks, String[] obj_labels, int labelsCount, boolean keepDefault); /*MANUAL + const char* labels[labelsCount]; + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labels[i] = rawStr; + }; + ImPlot::SetNextPlotTicksY(yMin, yMax, nTicks, labels, keepDefault); + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + env->ReleaseStringUTFChars(str, labels[i]); + }; + */ + + private static native void nSetNextPlotTicksY(double yMin, double yMax, int nTicks, String[] obj_labels, int labelsCount, boolean keepDefault, int yAxis); /*MANUAL + const char* labels[labelsCount]; + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labels[i] = rawStr; + }; + ImPlot::SetNextPlotTicksY(yMin, yMax, nTicks, labels, keepDefault, yAxis); + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + env->ReleaseStringUTFChars(str, labels[i]); + }; + */ + + private static native void nSetNextPlotTicksY(double yMin, double yMax, int nTicks, boolean keepDefault, int yAxis); /* + ImPlot::SetNextPlotTicksY(yMin, yMax, nTicks, NULL, keepDefault, yAxis); + */ + + private static native void nSetNextPlotTicksY(double yMin, double yMax, int nTicks, int yAxis); /* + ImPlot::SetNextPlotTicksY(yMin, yMax, nTicks, NULL, false, yAxis); + */ + + private static native void nSetNextPlotTicksY(double yMin, double yMax, int nTicks, String[] obj_labels, int labelsCount, int yAxis); /*MANUAL + const char* labels[labelsCount]; + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + labels[i] = rawStr; + }; + ImPlot::SetNextPlotTicksY(yMin, yMax, nTicks, labels, false, yAxis); + for (int i = 0; i < labelsCount; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_labels, i); + env->ReleaseStringUTFChars(str, labels[i]); + }; + */ + + /** + * Set the format for numeric X axis labels (default="%g"). Formated values will be doubles (i.e. don't supply %d, %i, etc.). Not applicable if ImPlotAxisFlags_Time enabled. + */ + public static void setNextPlotFormatX(final String fmt) { + nSetNextPlotFormatX(fmt); + } + + private static native void nSetNextPlotFormatX(String fmt); /*MANUAL + auto fmt = obj_fmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_fmt, JNI_FALSE); + ImPlot::SetNextPlotFormatX(fmt); + if (fmt != NULL) env->ReleaseStringUTFChars(obj_fmt, fmt); + */ + + /** + * Set the format for numeric Y axis labels (default="%g"). Formated values will be doubles (i.e. don't supply %d, %i, etc.). + */ + public static void setNextPlotFormatY(final String fmt) { + nSetNextPlotFormatY(fmt); + } + + /** + * Set the format for numeric Y axis labels (default="%g"). Formated values will be doubles (i.e. don't supply %d, %i, etc.). + */ + public static void setNextPlotFormatY(final String fmt, final int yAxis) { + nSetNextPlotFormatY(fmt, yAxis); + } + + private static native void nSetNextPlotFormatY(String fmt); /*MANUAL + auto fmt = obj_fmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_fmt, JNI_FALSE); + ImPlot::SetNextPlotFormatY(fmt); + if (fmt != NULL) env->ReleaseStringUTFChars(obj_fmt, fmt); + */ + + private static native void nSetNextPlotFormatY(String fmt, int yAxis); /*MANUAL + auto fmt = obj_fmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_fmt, JNI_FALSE); + ImPlot::SetNextPlotFormatY(fmt, yAxis); + if (fmt != NULL) env->ReleaseStringUTFChars(obj_fmt, fmt); + */ + + /** + * Select which Y axis will be used for subsequent plot elements. The default is ImPlotYAxis_1, or the first (left) Y axis. Enable 2nd and 3rd axes with ImPlotFlags_YAxisX. + */ + public static void setPlotYAxis(final int yAxis) { + nSetPlotYAxis(yAxis); + } + + private static native void nSetPlotYAxis(int yAxis); /* + ImPlot::SetPlotYAxis(yAxis); + */ + + /** + * Hides the next plot item. Use ImGuiCond.Always if you need to forcefully set this every frame (default ImGuiCond.Once). + */ + public static void hideNextItem() { + nHideNextItem(); + } + + /** + * Hides the next plot item. Use ImGuiCond.Always if you need to forcefully set this every frame (default ImGuiCond.Once). + */ + public static void hideNextItem(final boolean hidden) { + nHideNextItem(hidden); + } + + /** + * Hides the next plot item. Use ImGuiCond.Always if you need to forcefully set this every frame (default ImGuiCond.Once). + */ + public static void hideNextItem(final boolean hidden, final int cond) { + nHideNextItem(hidden, cond); + } + + /** + * Hides the next plot item. Use ImGuiCond.Always if you need to forcefully set this every frame (default ImGuiCond.Once). + */ + public static void hideNextItem(final int cond) { + nHideNextItem(cond); + } + + private static native void nHideNextItem(); /* + ImPlot::HideNextItem(); + */ + + private static native void nHideNextItem(boolean hidden); /* + ImPlot::HideNextItem(hidden); + */ + + private static native void nHideNextItem(boolean hidden, int cond); /* + ImPlot::HideNextItem(hidden, cond); + */ + + private static native void nHideNextItem(int cond); /* + ImPlot::HideNextItem(true, cond); + */ + + /** + * Convert pixels to a position in the current plot's coordinate system. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static ImPlotPoint pixelsToPlot(final ImVec2 pix) { + final ImPlotPoint dst = new ImPlotPoint(); + nPixelsToPlot(dst, pix.x, pix.y); + return dst; + } + + /** + * Convert pixels to a position in the current plot's coordinate system. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static ImPlotPoint pixelsToPlot(final float pixX, final float pixY) { + final ImPlotPoint dst = new ImPlotPoint(); + nPixelsToPlot(dst, pixX, pixY); + return dst; + } + + /** + * Convert pixels to a position in the current plot's coordinate system. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static void pixelsToPlot(final ImPlotPoint dst, final ImVec2 pix) { + nPixelsToPlot(dst, pix.x, pix.y); + } + + /** + * Convert pixels to a position in the current plot's coordinate system. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static ImPlotPoint pixelsToPlot(final ImVec2 pix, final int yAxis) { + final ImPlotPoint dst = new ImPlotPoint(); + nPixelsToPlot(dst, pix.x, pix.y, yAxis); + return dst; + } + + /** + * Convert pixels to a position in the current plot's coordinate system. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static ImPlotPoint pixelsToPlot(final float pixX, final float pixY, final int yAxis) { + final ImPlotPoint dst = new ImPlotPoint(); + nPixelsToPlot(dst, pixX, pixY, yAxis); + return dst; + } + + /** + * Convert pixels to a position in the current plot's coordinate system. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static void pixelsToPlot(final ImPlotPoint dst, final ImVec2 pix, final int yAxis) { + nPixelsToPlot(dst, pix.x, pix.y, yAxis); + } + + private static native void nPixelsToPlot(ImPlotPoint dst, float pixX, float pixY); /*MANUAL + ImVec2 pix = ImVec2(pixX, pixY); + Jni::ImPlotPointCpy(env, ImPlot::PixelsToPlot(pix), dst); + */ + + private static native void nPixelsToPlot(ImPlotPoint dst, float pixX, float pixY, int yAxis); /*MANUAL + ImVec2 pix = ImVec2(pixX, pixY); + Jni::ImPlotPointCpy(env, ImPlot::PixelsToPlot(pix, yAxis), dst); + */ + + /** + * Convert a position in the current plot's coordinate system to pixels. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static ImVec2 plotToPixels(final ImPlotPoint plt) { + final ImVec2 dst = new ImVec2(); + nPlotToPixels(dst, plt.x, plt.y); + return dst; + } + + /** + * Convert a position in the current plot's coordinate system to pixels. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static ImVec2 plotToPixels(final double pltX, final double pltY) { + final ImVec2 dst = new ImVec2(); + nPlotToPixels(dst, pltX, pltY); + return dst; + } + + /** + * Convert a position in the current plot's coordinate system to pixels. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static float plotToPixelsX(final ImPlotPoint plt) { + return nPlotToPixelsX(plt.x, plt.y); + } + + /** + * Convert a position in the current plot's coordinate system to pixels. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static float plotToPixelsY(final ImPlotPoint plt) { + return nPlotToPixelsY(plt.x, plt.y); + } + + /** + * Convert a position in the current plot's coordinate system to pixels. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static void plotToPixels(final ImVec2 dst, final ImPlotPoint plt) { + nPlotToPixels(dst, plt.x, plt.y); + } + + /** + * Convert a position in the current plot's coordinate system to pixels. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static ImVec2 plotToPixels(final ImPlotPoint plt, final int yAxis) { + final ImVec2 dst = new ImVec2(); + nPlotToPixels(dst, plt.x, plt.y, yAxis); + return dst; + } + + /** + * Convert a position in the current plot's coordinate system to pixels. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static ImVec2 plotToPixels(final double pltX, final double pltY, final int yAxis) { + final ImVec2 dst = new ImVec2(); + nPlotToPixels(dst, pltX, pltY, yAxis); + return dst; + } + + /** + * Convert a position in the current plot's coordinate system to pixels. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static float plotToPixelsX(final ImPlotPoint plt, final int yAxis) { + return nPlotToPixelsX(plt.x, plt.y, yAxis); + } + + /** + * Convert a position in the current plot's coordinate system to pixels. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static float plotToPixelsY(final ImPlotPoint plt, final int yAxis) { + return nPlotToPixelsY(plt.x, plt.y, yAxis); + } + + /** + * Convert a position in the current plot's coordinate system to pixels. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static void plotToPixels(final ImVec2 dst, final ImPlotPoint plt, final int yAxis) { + nPlotToPixels(dst, plt.x, plt.y, yAxis); + } + + private static native void nPlotToPixels(ImVec2 dst, double pltX, double pltY); /* + Jni::ImVec2Cpy(env, ImPlot::PlotToPixels(ImPlotPoint(pltX, pltY)), dst); + */ + + private static native float nPlotToPixelsX(double pltX, double pltY); /* + return ImPlot::PlotToPixels(ImPlotPoint(pltX, pltY)).x; + */ + + private static native float nPlotToPixelsY(double pltX, double pltY); /* + return ImPlot::PlotToPixels(ImPlotPoint(pltX, pltY)).y; + */ + + private static native void nPlotToPixels(ImVec2 dst, double pltX, double pltY, int yAxis); /* + Jni::ImVec2Cpy(env, ImPlot::PlotToPixels(ImPlotPoint(pltX, pltY), yAxis), dst); + */ + + private static native float nPlotToPixelsX(double pltX, double pltY, int yAxis); /* + return ImPlot::PlotToPixels(ImPlotPoint(pltX, pltY), yAxis).x; + */ + + private static native float nPlotToPixelsY(double pltX, double pltY, int yAxis); /* + return ImPlot::PlotToPixels(ImPlotPoint(pltX, pltY), yAxis).y; + */ + + /** + * Get the current Plot position (top-left) in pixels. + */ + public static ImVec2 getPlotPos() { + final ImVec2 dst = new ImVec2(); + nGetPlotPos(dst); + return dst; + } + + /** + * Get the current Plot position (top-left) in pixels. + */ + public static float getPlotPosX() { + return nGetPlotPosX(); + } + + /** + * Get the current Plot position (top-left) in pixels. + */ + public static float getPlotPosY() { + return nGetPlotPosY(); + } + + /** + * Get the current Plot position (top-left) in pixels. + */ + public static void getPlotPos(final ImVec2 dst) { + nGetPlotPos(dst); + } + + private static native void nGetPlotPos(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ImPlot::GetPlotPos(), dst); + */ + + private static native float nGetPlotPosX(); /* + return ImPlot::GetPlotPos().x; + */ + + private static native float nGetPlotPosY(); /* + return ImPlot::GetPlotPos().y; + */ + + /** + * Get the current Plot size in pixels. + */ + public static ImVec2 getPlotSize() { + final ImVec2 dst = new ImVec2(); + nGetPlotSize(dst); + return dst; + } + + /** + * Get the current Plot size in pixels. + */ + public static float getPlotSizeX() { + return nGetPlotSizeX(); + } + + /** + * Get the current Plot size in pixels. + */ + public static float getPlotSizeY() { + return nGetPlotSizeY(); + } + + /** + * Get the current Plot size in pixels. + */ + public static void getPlotSize(final ImVec2 dst) { + nGetPlotSize(dst); + } + + private static native void nGetPlotSize(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ImPlot::GetPlotSize(), dst); + */ + + private static native float nGetPlotSizeX(); /* + return ImPlot::GetPlotSize().x; + */ + + private static native float nGetPlotSizeY(); /* + return ImPlot::GetPlotSize().y; + */ + + /** + * Returns true if the plot area in the current plot is hovered. + */ + public static boolean isPlotHovered() { + return nIsPlotHovered(); + } + + private static native boolean nIsPlotHovered(); /* + return ImPlot::IsPlotHovered(); + */ + + /** + * Returns true if the XAxis plot area in the current plot is hovered. + */ + public static boolean isPlotXAxisHovered() { + return nIsPlotXAxisHovered(); + } + + private static native boolean nIsPlotXAxisHovered(); /* + return ImPlot::IsPlotXAxisHovered(); + */ + + /** + * Returns true if the YAxis[n] plot area in the current plot is hovered. + */ + public static boolean isPlotYAxisHovered() { + return nIsPlotYAxisHovered(); + } + + /** + * Returns true if the YAxis[n] plot area in the current plot is hovered. + */ + public static boolean isPlotYAxisHovered(final int yAxis) { + return nIsPlotYAxisHovered(yAxis); + } + + private static native boolean nIsPlotYAxisHovered(); /* + return ImPlot::IsPlotYAxisHovered(); + */ + + private static native boolean nIsPlotYAxisHovered(int yAxis); /* + return ImPlot::IsPlotYAxisHovered(yAxis); + */ + + /** + * Returns the mouse position in x,y coordinates of the current plot. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static ImPlotPoint getPlotMousePos() { + final ImPlotPoint dst = new ImPlotPoint(); + nGetPlotMousePos(dst); + return dst; + } + + /** + * Returns the mouse position in x,y coordinates of the current plot. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static void getPlotMousePos(final ImPlotPoint dst) { + nGetPlotMousePos(dst); + } + + /** + * Returns the mouse position in x,y coordinates of the current plot. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static ImPlotPoint getPlotMousePos(final int yAxis) { + final ImPlotPoint dst = new ImPlotPoint(); + nGetPlotMousePos(dst, yAxis); + return dst; + } + + /** + * Returns the mouse position in x,y coordinates of the current plot. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static void getPlotMousePos(final ImPlotPoint dst, final int yAxis) { + nGetPlotMousePos(dst, yAxis); + } + + private static native void nGetPlotMousePos(ImPlotPoint dst); /* + Jni::ImPlotPointCpy(env, ImPlot::GetPlotMousePos(), dst); + */ + + private static native void nGetPlotMousePos(ImPlotPoint dst, int yAxis); /* + Jni::ImPlotPointCpy(env, ImPlot::GetPlotMousePos(yAxis), dst); + */ + + /** + * Returns the current plot axis range. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static ImPlotLimits getPlotLimits() { + final ImPlotLimits dst = new ImPlotLimits(); + nGetPlotLimits(dst); + return dst; + } + + /** + * Returns the current plot axis range. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static void getPlotLimits(final ImPlotLimits dst) { + nGetPlotLimits(dst); + } + + /** + * Returns the current plot axis range. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static ImPlotLimits getPlotLimits(final int yAxis) { + final ImPlotLimits dst = new ImPlotLimits(); + nGetPlotLimits(dst, yAxis); + return dst; + } + + /** + * Returns the current plot axis range. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). + */ + public static void getPlotLimits(final ImPlotLimits dst, final int yAxis) { + nGetPlotLimits(dst, yAxis); + } + + private static native void nGetPlotLimits(ImPlotLimits dst); /* + Jni::ImPlotLimitsCpy(env, ImPlot::GetPlotLimits(), dst); + */ + + private static native void nGetPlotLimits(ImPlotLimits dst, int yAxis); /* + Jni::ImPlotLimitsCpy(env, ImPlot::GetPlotLimits(yAxis), dst); + */ + + /** + * Returns true if the current plot is being box selected. + */ + public static boolean isPlotSelected() { + return nIsPlotSelected(); + } + + private static native boolean nIsPlotSelected(); /* + return ImPlot::IsPlotSelected(); + */ + + /** + * Returns the current plot box selection bounds. + */ + public static ImPlotLimits getPlotSelection() { + final ImPlotLimits dst = new ImPlotLimits(); + nGetPlotSelection(dst); + return dst; + } + + /** + * Returns the current plot box selection bounds. + */ + public static void getPlotSelection(final ImPlotLimits dst) { + nGetPlotSelection(dst); + } + + /** + * Returns the current plot box selection bounds. + */ + public static ImPlotLimits getPlotSelection(final int yAxis) { + final ImPlotLimits dst = new ImPlotLimits(); + nGetPlotSelection(dst, yAxis); + return dst; + } + + /** + * Returns the current plot box selection bounds. + */ + public static void getPlotSelection(final ImPlotLimits dst, final int yAxis) { + nGetPlotSelection(dst, yAxis); + } + + private static native void nGetPlotSelection(ImPlotLimits dst); /* + Jni::ImPlotLimitsCpy(env, ImPlot::GetPlotSelection(), dst); + */ + + private static native void nGetPlotSelection(ImPlotLimits dst, int yAxis); /* + Jni::ImPlotLimitsCpy(env, ImPlot::GetPlotSelection(yAxis), dst); + */ + + /** + * Returns true if the current plot is being queried or has an active query. Query must be enabled with ImPlotFlags_Query. + */ + public static boolean isPlotQueried() { + return nIsPlotQueried(); + } + + private static native boolean nIsPlotQueried(); /* + return ImPlot::IsPlotQueried(); + */ + + /** + * Returns the current plot query bounds. Query must be enabled with ImPlotFlags_Query. + */ + public static ImPlotLimits getPlotQuery() { + final ImPlotLimits dst = new ImPlotLimits(); + nGetPlotQuery(dst); + return dst; + } + + /** + * Returns the current plot query bounds. Query must be enabled with ImPlotFlags_Query. + */ + public static void getPlotQuery(final ImPlotLimits dst) { + nGetPlotQuery(dst); + } + + /** + * Returns the current plot query bounds. Query must be enabled with ImPlotFlags_Query. + */ + public static ImPlotLimits getPlotQuery(final int yAxis) { + final ImPlotLimits dst = new ImPlotLimits(); + nGetPlotQuery(dst, yAxis); + return dst; + } + + /** + * Returns the current plot query bounds. Query must be enabled with ImPlotFlags_Query. + */ + public static void getPlotQuery(final ImPlotLimits dst, final int yAxis) { + nGetPlotQuery(dst, yAxis); + } + + private static native void nGetPlotQuery(ImPlotLimits dst); /* + Jni::ImPlotLimitsCpy(env, ImPlot::GetPlotQuery(), dst); + */ + + private static native void nGetPlotQuery(ImPlotLimits dst, int yAxis); /* + Jni::ImPlotLimitsCpy(env, ImPlot::GetPlotQuery(yAxis), dst); + */ + + /** + * Set the current plot query bounds. Query must be enabled with ImPlotFlags_Query. + */ + public static void setPlotQuery(final ImPlotLimits query) { + nSetPlotQuery(query.x.min, query.y.min, query.x.max, query.y.max); + } + + /** + * Set the current plot query bounds. Query must be enabled with ImPlotFlags_Query. + */ + public static void setPlotQuery(final double queryMinX, final double queryMinY, final double queryMaxX, final double queryMaxY) { + nSetPlotQuery(queryMinX, queryMinY, queryMaxX, queryMaxY); + } + + /** + * Set the current plot query bounds. Query must be enabled with ImPlotFlags_Query. + */ + public static void setPlotQuery(final ImPlotLimits query, final int yAxis) { + nSetPlotQuery(query.x.min, query.y.min, query.x.max, query.y.max, yAxis); + } + + /** + * Set the current plot query bounds. Query must be enabled with ImPlotFlags_Query. + */ + public static void setPlotQuery(final double queryMinX, final double queryMinY, final double queryMaxX, final double queryMaxY, final int yAxis) { + nSetPlotQuery(queryMinX, queryMinY, queryMaxX, queryMaxY, yAxis); + } + + private static native void nSetPlotQuery(double queryMinX, double queryMinY, double queryMaxX, double queryMaxY); /* + ImPlot::SetPlotQuery(ImPlotLimits(queryMinX, queryMinY, queryMaxX, queryMaxY)); + */ + + private static native void nSetPlotQuery(double queryMinX, double queryMinY, double queryMaxX, double queryMaxY, int yAxis); /* + ImPlot::SetPlotQuery(ImPlotLimits(queryMinX, queryMinY, queryMaxX, queryMaxY), yAxis); + */ + + /** + * Returns true if the bounding frame of a subplot is hovered + */ + public static boolean isSubplotsHovered() { + return nIsSubplotsHovered(); + } + + private static native boolean nIsSubplotsHovered(); /* + return ImPlot::IsSubplotsHovered(); + */ + + //----------------------------------------------------------------------------- + // Aligned Plots + //----------------------------------------------------------------------------- + + // Consider using Begin/EndSubplots first. They are more feature rich and + // accomplish the same behaviour by default. The functions below offer lower + // level control of plot alignment. + + /** + * Align axis padding over multiple plots in a single row or column. If this function returns true, EndAlignedPlots() must be called. #group_id must be unique. + */ + public static boolean beginAlignedPlots(final String groupId) { + return nBeginAlignedPlots(groupId); + } + + /** + * Align axis padding over multiple plots in a single row or column. If this function returns true, EndAlignedPlots() must be called. #group_id must be unique. + */ + public static boolean beginAlignedPlots(final String groupId, final int orientation) { + return nBeginAlignedPlots(groupId, orientation); + } + + private static native boolean nBeginAlignedPlots(String obj_groupId); /*MANUAL + auto groupId = obj_groupId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_groupId, JNI_FALSE); + auto _result = ImPlot::BeginAlignedPlots(groupId); + if (groupId != NULL) env->ReleaseStringUTFChars(obj_groupId, groupId); + return _result; + */ + + private static native boolean nBeginAlignedPlots(String obj_groupId, int orientation); /*MANUAL + auto groupId = obj_groupId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_groupId, JNI_FALSE); + auto _result = ImPlot::BeginAlignedPlots(groupId, orientation); + if (groupId != NULL) env->ReleaseStringUTFChars(obj_groupId, groupId); + return _result; + */ + + /** + * Only call EndAlignedPlots() if BeginAlignedPlots() returns true! + */ + public static void endAlignedPlots() { + nEndAlignedPlots(); + } + + private static native void nEndAlignedPlots(); /* + ImPlot::EndAlignedPlots(); + */ + + //----------------------------------------------------------------------------- + // Plot Tools + //----------------------------------------------------------------------------- + + /** + * Shows an annotation callout at a chosen point. + */ + public static void annotate(final double x, final double y, final ImVec2 pixOffset, final String fmt) { + nAnnotate(x, y, pixOffset.x, pixOffset.y, fmt); + } + + /** + * Shows an annotation callout at a chosen point. + */ + public static void annotate(final double x, final double y, final float pixOffsetX, final float pixOffsetY, final String fmt) { + nAnnotate(x, y, pixOffsetX, pixOffsetY, fmt); + } + + private static native void nAnnotate(double x, double y, float pixOffsetX, float pixOffsetY, String fmt); /*MANUAL + auto fmt = obj_fmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_fmt, JNI_FALSE); + ImVec2 pixOffset = ImVec2(pixOffsetX, pixOffsetY); + ImPlot::Annotate(x, y, pixOffset, fmt, NULL); + if (fmt != NULL) env->ReleaseStringUTFChars(obj_fmt, fmt); + */ + + /** + * Shows an annotation callout at a chosen point. + */ + public static void annotate(final double x, final double y, final ImVec2 pixOffset, final ImVec4 color, final String fmt) { + nAnnotate(x, y, pixOffset.x, pixOffset.y, color.x, color.y, color.z, color.w, fmt); + } + + /** + * Shows an annotation callout at a chosen point. + */ + public static void annotate(final double x, final double y, final float pixOffsetX, final float pixOffsetY, final float colorX, final float colorY, final float colorZ, final float colorW, final String fmt) { + nAnnotate(x, y, pixOffsetX, pixOffsetY, colorX, colorY, colorZ, colorW, fmt); + } + + private static native void nAnnotate(double x, double y, float pixOffsetX, float pixOffsetY, float colorX, float colorY, float colorZ, float colorW, String fmt); /*MANUAL + auto fmt = obj_fmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_fmt, JNI_FALSE); + ImVec2 pixOffset = ImVec2(pixOffsetX, pixOffsetY); + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + ImPlot::Annotate(x, y, pixOffset, color, fmt, NULL); + if (fmt != NULL) env->ReleaseStringUTFChars(obj_fmt, fmt); + */ + + /** + * Same as above, but the annotation will always be clamped to stay inside the plot area. + */ + public static void annotateClamped(final double x, final double y, final ImVec2 pixOffset, final String fmt) { + nAnnotateClamped(x, y, pixOffset.x, pixOffset.y, fmt); + } + + /** + * Same as above, but the annotation will always be clamped to stay inside the plot area. + */ + public static void annotateClamped(final double x, final double y, final float pixOffsetX, final float pixOffsetY, final String fmt) { + nAnnotateClamped(x, y, pixOffsetX, pixOffsetY, fmt); + } + + private static native void nAnnotateClamped(double x, double y, float pixOffsetX, float pixOffsetY, String fmt); /*MANUAL + auto fmt = obj_fmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_fmt, JNI_FALSE); + ImVec2 pixOffset = ImVec2(pixOffsetX, pixOffsetY); + ImPlot::AnnotateClamped(x, y, pixOffset, fmt, NULL); + if (fmt != NULL) env->ReleaseStringUTFChars(obj_fmt, fmt); + */ + + /** + * Same as above, but the annotation will always be clamped to stay inside the plot area. + */ + public static void annotateClamped(final double x, final double y, final ImVec2 pixOffset, final ImVec4 color, final String fmt) { + nAnnotateClamped(x, y, pixOffset.x, pixOffset.y, color.x, color.y, color.z, color.w, fmt); + } + + /** + * Same as above, but the annotation will always be clamped to stay inside the plot area. + */ + public static void annotateClamped(final double x, final double y, final float pixOffsetX, final float pixOffsetY, final float colorX, final float colorY, final float colorZ, final float colorW, final String fmt) { + nAnnotateClamped(x, y, pixOffsetX, pixOffsetY, colorX, colorY, colorZ, colorW, fmt); + } + + private static native void nAnnotateClamped(double x, double y, float pixOffsetX, float pixOffsetY, float colorX, float colorY, float colorZ, float colorW, String fmt); /*MANUAL + auto fmt = obj_fmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_fmt, JNI_FALSE); + ImVec2 pixOffset = ImVec2(pixOffsetX, pixOffsetY); + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + ImPlot::AnnotateClamped(x, y, pixOffset, color, fmt, NULL); + if (fmt != NULL) env->ReleaseStringUTFChars(obj_fmt, fmt); + */ + + /** + * Shows a draggable vertical guide line at an x-value. #col defaults to ImGuiCol_Text. + */ + public static boolean dragLineX(final String id, final ImDouble xValue) { + return nDragLineX(id, xValue != null ? xValue.getData() : null); + } + + /** + * Shows a draggable vertical guide line at an x-value. #col defaults to ImGuiCol_Text. + */ + public static boolean dragLineX(final String id, final ImDouble xValue, final boolean showLabel) { + return nDragLineX(id, xValue != null ? xValue.getData() : null, showLabel); + } + + /** + * Shows a draggable vertical guide line at an x-value. #col defaults to ImGuiCol_Text. + */ + public static boolean dragLineX(final String id, final ImDouble xValue, final boolean showLabel, final ImVec4 color) { + return nDragLineX(id, xValue != null ? xValue.getData() : null, showLabel, color.x, color.y, color.z, color.w); + } + + /** + * Shows a draggable vertical guide line at an x-value. #col defaults to ImGuiCol_Text. + */ + public static boolean dragLineX(final String id, final ImDouble xValue, final boolean showLabel, final float colorX, final float colorY, final float colorZ, final float colorW) { + return nDragLineX(id, xValue != null ? xValue.getData() : null, showLabel, colorX, colorY, colorZ, colorW); + } + + /** + * Shows a draggable vertical guide line at an x-value. #col defaults to ImGuiCol_Text. + */ + public static boolean dragLineX(final String id, final ImDouble xValue, final boolean showLabel, final ImVec4 color, final float thickness) { + return nDragLineX(id, xValue != null ? xValue.getData() : null, showLabel, color.x, color.y, color.z, color.w, thickness); + } + + /** + * Shows a draggable vertical guide line at an x-value. #col defaults to ImGuiCol_Text. + */ + public static boolean dragLineX(final String id, final ImDouble xValue, final boolean showLabel, final float colorX, final float colorY, final float colorZ, final float colorW, final float thickness) { + return nDragLineX(id, xValue != null ? xValue.getData() : null, showLabel, colorX, colorY, colorZ, colorW, thickness); + } + + /** + * Shows a draggable vertical guide line at an x-value. #col defaults to ImGuiCol_Text. + */ + public static boolean dragLineX(final String id, final ImDouble xValue, final ImVec4 color, final float thickness) { + return nDragLineX(id, xValue != null ? xValue.getData() : null, color.x, color.y, color.z, color.w, thickness); + } + + /** + * Shows a draggable vertical guide line at an x-value. #col defaults to ImGuiCol_Text. + */ + public static boolean dragLineX(final String id, final ImDouble xValue, final float colorX, final float colorY, final float colorZ, final float colorW, final float thickness) { + return nDragLineX(id, xValue != null ? xValue.getData() : null, colorX, colorY, colorZ, colorW, thickness); + } + + /** + * Shows a draggable vertical guide line at an x-value. #col defaults to ImGuiCol_Text. + */ + public static boolean dragLineX(final String id, final ImDouble xValue, final float thickness) { + return nDragLineX(id, xValue != null ? xValue.getData() : null, thickness); + } + + /** + * Shows a draggable vertical guide line at an x-value. #col defaults to ImGuiCol_Text. + */ + public static boolean dragLineX(final String id, final ImDouble xValue, final boolean showLabel, final float thickness) { + return nDragLineX(id, xValue != null ? xValue.getData() : null, showLabel, thickness); + } + + private static native boolean nDragLineX(String obj_id, double[] obj_xValue); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto xValue = obj_xValue == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xValue, JNI_FALSE); + auto _result = ImPlot::DragLineX(id, (xValue != NULL ? &xValue[0] : NULL)); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + if (xValue != NULL) env->ReleasePrimitiveArrayCritical(obj_xValue, xValue, JNI_FALSE); + return _result; + */ + + private static native boolean nDragLineX(String obj_id, double[] obj_xValue, boolean showLabel); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto xValue = obj_xValue == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xValue, JNI_FALSE); + auto _result = ImPlot::DragLineX(id, (xValue != NULL ? &xValue[0] : NULL), showLabel); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + if (xValue != NULL) env->ReleasePrimitiveArrayCritical(obj_xValue, xValue, JNI_FALSE); + return _result; + */ + + private static native boolean nDragLineX(String obj_id, double[] obj_xValue, boolean showLabel, float colorX, float colorY, float colorZ, float colorW); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto xValue = obj_xValue == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xValue, JNI_FALSE); + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + auto _result = ImPlot::DragLineX(id, (xValue != NULL ? &xValue[0] : NULL), showLabel, color); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + if (xValue != NULL) env->ReleasePrimitiveArrayCritical(obj_xValue, xValue, JNI_FALSE); + return _result; + */ + + private static native boolean nDragLineX(String obj_id, double[] obj_xValue, boolean showLabel, float colorX, float colorY, float colorZ, float colorW, float thickness); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto xValue = obj_xValue == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xValue, JNI_FALSE); + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + auto _result = ImPlot::DragLineX(id, (xValue != NULL ? &xValue[0] : NULL), showLabel, color, thickness); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + if (xValue != NULL) env->ReleasePrimitiveArrayCritical(obj_xValue, xValue, JNI_FALSE); + return _result; + */ + + private static native boolean nDragLineX(String obj_id, double[] obj_xValue, float colorX, float colorY, float colorZ, float colorW, float thickness); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto xValue = obj_xValue == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xValue, JNI_FALSE); + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + auto _result = ImPlot::DragLineX(id, (xValue != NULL ? &xValue[0] : NULL), true, color, thickness); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + if (xValue != NULL) env->ReleasePrimitiveArrayCritical(obj_xValue, xValue, JNI_FALSE); + return _result; + */ + + private static native boolean nDragLineX(String obj_id, double[] obj_xValue, float thickness); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto xValue = obj_xValue == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xValue, JNI_FALSE); + auto _result = ImPlot::DragLineX(id, (xValue != NULL ? &xValue[0] : NULL), true, IMPLOT_AUTO_COL, thickness); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + if (xValue != NULL) env->ReleasePrimitiveArrayCritical(obj_xValue, xValue, JNI_FALSE); + return _result; + */ + + private static native boolean nDragLineX(String obj_id, double[] obj_xValue, boolean showLabel, float thickness); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto xValue = obj_xValue == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_xValue, JNI_FALSE); + auto _result = ImPlot::DragLineX(id, (xValue != NULL ? &xValue[0] : NULL), showLabel, IMPLOT_AUTO_COL, thickness); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + if (xValue != NULL) env->ReleasePrimitiveArrayCritical(obj_xValue, xValue, JNI_FALSE); + return _result; + */ + + /** + * Shows a draggable horizontal guide line at a y-value. #col defaults to ImGuiCol_Text. + */ + public static boolean dragLineY(final String id, final ImDouble yValue) { + return nDragLineY(id, yValue != null ? yValue.getData() : null); + } + + /** + * Shows a draggable horizontal guide line at a y-value. #col defaults to ImGuiCol_Text. + */ + public static boolean dragLineY(final String id, final ImDouble yValue, final boolean showLabel) { + return nDragLineY(id, yValue != null ? yValue.getData() : null, showLabel); + } + + /** + * Shows a draggable horizontal guide line at a y-value. #col defaults to ImGuiCol_Text. + */ + public static boolean dragLineY(final String id, final ImDouble yValue, final boolean showLabel, final ImVec4 color) { + return nDragLineY(id, yValue != null ? yValue.getData() : null, showLabel, color.x, color.y, color.z, color.w); + } + + /** + * Shows a draggable horizontal guide line at a y-value. #col defaults to ImGuiCol_Text. + */ + public static boolean dragLineY(final String id, final ImDouble yValue, final boolean showLabel, final float colorX, final float colorY, final float colorZ, final float colorW) { + return nDragLineY(id, yValue != null ? yValue.getData() : null, showLabel, colorX, colorY, colorZ, colorW); + } + + /** + * Shows a draggable horizontal guide line at a y-value. #col defaults to ImGuiCol_Text. + */ + public static boolean dragLineY(final String id, final ImDouble yValue, final boolean showLabel, final ImVec4 color, final float thickness) { + return nDragLineY(id, yValue != null ? yValue.getData() : null, showLabel, color.x, color.y, color.z, color.w, thickness); + } + + /** + * Shows a draggable horizontal guide line at a y-value. #col defaults to ImGuiCol_Text. + */ + public static boolean dragLineY(final String id, final ImDouble yValue, final boolean showLabel, final float colorX, final float colorY, final float colorZ, final float colorW, final float thickness) { + return nDragLineY(id, yValue != null ? yValue.getData() : null, showLabel, colorX, colorY, colorZ, colorW, thickness); + } + + /** + * Shows a draggable horizontal guide line at a y-value. #col defaults to ImGuiCol_Text. + */ + public static boolean dragLineY(final String id, final ImDouble yValue, final ImVec4 color, final float thickness) { + return nDragLineY(id, yValue != null ? yValue.getData() : null, color.x, color.y, color.z, color.w, thickness); + } + + /** + * Shows a draggable horizontal guide line at a y-value. #col defaults to ImGuiCol_Text. + */ + public static boolean dragLineY(final String id, final ImDouble yValue, final float colorX, final float colorY, final float colorZ, final float colorW, final float thickness) { + return nDragLineY(id, yValue != null ? yValue.getData() : null, colorX, colorY, colorZ, colorW, thickness); + } + + /** + * Shows a draggable horizontal guide line at a y-value. #col defaults to ImGuiCol_Text. + */ + public static boolean dragLineY(final String id, final ImDouble yValue, final float thickness) { + return nDragLineY(id, yValue != null ? yValue.getData() : null, thickness); + } + + /** + * Shows a draggable horizontal guide line at a y-value. #col defaults to ImGuiCol_Text. + */ + public static boolean dragLineY(final String id, final ImDouble yValue, final boolean showLabel, final float thickness) { + return nDragLineY(id, yValue != null ? yValue.getData() : null, showLabel, thickness); + } + + private static native boolean nDragLineY(String obj_id, double[] obj_yValue); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto yValue = obj_yValue == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yValue, JNI_FALSE); + auto _result = ImPlot::DragLineY(id, (yValue != NULL ? &yValue[0] : NULL)); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + if (yValue != NULL) env->ReleasePrimitiveArrayCritical(obj_yValue, yValue, JNI_FALSE); + return _result; + */ + + private static native boolean nDragLineY(String obj_id, double[] obj_yValue, boolean showLabel); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto yValue = obj_yValue == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yValue, JNI_FALSE); + auto _result = ImPlot::DragLineY(id, (yValue != NULL ? &yValue[0] : NULL), showLabel); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + if (yValue != NULL) env->ReleasePrimitiveArrayCritical(obj_yValue, yValue, JNI_FALSE); + return _result; + */ + + private static native boolean nDragLineY(String obj_id, double[] obj_yValue, boolean showLabel, float colorX, float colorY, float colorZ, float colorW); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto yValue = obj_yValue == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yValue, JNI_FALSE); + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + auto _result = ImPlot::DragLineY(id, (yValue != NULL ? &yValue[0] : NULL), showLabel, color); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + if (yValue != NULL) env->ReleasePrimitiveArrayCritical(obj_yValue, yValue, JNI_FALSE); + return _result; + */ + + private static native boolean nDragLineY(String obj_id, double[] obj_yValue, boolean showLabel, float colorX, float colorY, float colorZ, float colorW, float thickness); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto yValue = obj_yValue == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yValue, JNI_FALSE); + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + auto _result = ImPlot::DragLineY(id, (yValue != NULL ? &yValue[0] : NULL), showLabel, color, thickness); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + if (yValue != NULL) env->ReleasePrimitiveArrayCritical(obj_yValue, yValue, JNI_FALSE); + return _result; + */ + + private static native boolean nDragLineY(String obj_id, double[] obj_yValue, float colorX, float colorY, float colorZ, float colorW, float thickness); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto yValue = obj_yValue == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yValue, JNI_FALSE); + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + auto _result = ImPlot::DragLineY(id, (yValue != NULL ? &yValue[0] : NULL), true, color, thickness); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + if (yValue != NULL) env->ReleasePrimitiveArrayCritical(obj_yValue, yValue, JNI_FALSE); + return _result; + */ + + private static native boolean nDragLineY(String obj_id, double[] obj_yValue, float thickness); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto yValue = obj_yValue == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yValue, JNI_FALSE); + auto _result = ImPlot::DragLineY(id, (yValue != NULL ? &yValue[0] : NULL), true, IMPLOT_AUTO_COL, thickness); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + if (yValue != NULL) env->ReleasePrimitiveArrayCritical(obj_yValue, yValue, JNI_FALSE); + return _result; + */ + + private static native boolean nDragLineY(String obj_id, double[] obj_yValue, boolean showLabel, float thickness); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto yValue = obj_yValue == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_yValue, JNI_FALSE); + auto _result = ImPlot::DragLineY(id, (yValue != NULL ? &yValue[0] : NULL), showLabel, IMPLOT_AUTO_COL, thickness); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + if (yValue != NULL) env->ReleasePrimitiveArrayCritical(obj_yValue, yValue, JNI_FALSE); + return _result; + */ + + /** + * Shows a draggable point at x,y. #col defaults to ImGuiCol_Text. + */ + public static boolean dragPoint(final String id, final ImDouble x, final ImDouble y) { + return nDragPoint(id, x != null ? x.getData() : null, y != null ? y.getData() : null); + } + + /** + * Shows a draggable point at x,y. #col defaults to ImGuiCol_Text. + */ + public static boolean dragPoint(final String id, final ImDouble x, final ImDouble y, final boolean showLabel) { + return nDragPoint(id, x != null ? x.getData() : null, y != null ? y.getData() : null, showLabel); + } + + /** + * Shows a draggable point at x,y. #col defaults to ImGuiCol_Text. + */ + public static boolean dragPoint(final String id, final ImDouble x, final ImDouble y, final boolean showLabel, final ImVec4 color) { + return nDragPoint(id, x != null ? x.getData() : null, y != null ? y.getData() : null, showLabel, color.x, color.y, color.z, color.w); + } + + /** + * Shows a draggable point at x,y. #col defaults to ImGuiCol_Text. + */ + public static boolean dragPoint(final String id, final ImDouble x, final ImDouble y, final boolean showLabel, final float colorX, final float colorY, final float colorZ, final float colorW) { + return nDragPoint(id, x != null ? x.getData() : null, y != null ? y.getData() : null, showLabel, colorX, colorY, colorZ, colorW); + } + + /** + * Shows a draggable point at x,y. #col defaults to ImGuiCol_Text. + */ + public static boolean dragPoint(final String id, final ImDouble x, final ImDouble y, final boolean showLabel, final ImVec4 color, final float radius) { + return nDragPoint(id, x != null ? x.getData() : null, y != null ? y.getData() : null, showLabel, color.x, color.y, color.z, color.w, radius); + } + + /** + * Shows a draggable point at x,y. #col defaults to ImGuiCol_Text. + */ + public static boolean dragPoint(final String id, final ImDouble x, final ImDouble y, final boolean showLabel, final float colorX, final float colorY, final float colorZ, final float colorW, final float radius) { + return nDragPoint(id, x != null ? x.getData() : null, y != null ? y.getData() : null, showLabel, colorX, colorY, colorZ, colorW, radius); + } + + /** + * Shows a draggable point at x,y. #col defaults to ImGuiCol_Text. + */ + public static boolean dragPoint(final String id, final ImDouble x, final ImDouble y, final ImVec4 color, final float radius) { + return nDragPoint(id, x != null ? x.getData() : null, y != null ? y.getData() : null, color.x, color.y, color.z, color.w, radius); + } + + /** + * Shows a draggable point at x,y. #col defaults to ImGuiCol_Text. + */ + public static boolean dragPoint(final String id, final ImDouble x, final ImDouble y, final float colorX, final float colorY, final float colorZ, final float colorW, final float radius) { + return nDragPoint(id, x != null ? x.getData() : null, y != null ? y.getData() : null, colorX, colorY, colorZ, colorW, radius); + } + + /** + * Shows a draggable point at x,y. #col defaults to ImGuiCol_Text. + */ + public static boolean dragPoint(final String id, final ImDouble x, final ImDouble y, final float radius) { + return nDragPoint(id, x != null ? x.getData() : null, y != null ? y.getData() : null, radius); + } + + /** + * Shows a draggable point at x,y. #col defaults to ImGuiCol_Text. + */ + public static boolean dragPoint(final String id, final ImDouble x, final ImDouble y, final boolean showLabel, final float radius) { + return nDragPoint(id, x != null ? x.getData() : null, y != null ? y.getData() : null, showLabel, radius); + } + + private static native boolean nDragPoint(String obj_id, double[] obj_x, double[] obj_y); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto x = obj_x == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_x, JNI_FALSE); + auto y = obj_y == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_y, JNI_FALSE); + auto _result = ImPlot::DragPoint(id, (x != NULL ? &x[0] : NULL), (y != NULL ? &y[0] : NULL)); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + if (x != NULL) env->ReleasePrimitiveArrayCritical(obj_x, x, JNI_FALSE); + if (y != NULL) env->ReleasePrimitiveArrayCritical(obj_y, y, JNI_FALSE); + return _result; + */ + + private static native boolean nDragPoint(String obj_id, double[] obj_x, double[] obj_y, boolean showLabel); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto x = obj_x == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_x, JNI_FALSE); + auto y = obj_y == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_y, JNI_FALSE); + auto _result = ImPlot::DragPoint(id, (x != NULL ? &x[0] : NULL), (y != NULL ? &y[0] : NULL), showLabel); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + if (x != NULL) env->ReleasePrimitiveArrayCritical(obj_x, x, JNI_FALSE); + if (y != NULL) env->ReleasePrimitiveArrayCritical(obj_y, y, JNI_FALSE); + return _result; + */ + + private static native boolean nDragPoint(String obj_id, double[] obj_x, double[] obj_y, boolean showLabel, float colorX, float colorY, float colorZ, float colorW); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto x = obj_x == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_x, JNI_FALSE); + auto y = obj_y == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_y, JNI_FALSE); + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + auto _result = ImPlot::DragPoint(id, (x != NULL ? &x[0] : NULL), (y != NULL ? &y[0] : NULL), showLabel, color); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + if (x != NULL) env->ReleasePrimitiveArrayCritical(obj_x, x, JNI_FALSE); + if (y != NULL) env->ReleasePrimitiveArrayCritical(obj_y, y, JNI_FALSE); + return _result; + */ + + private static native boolean nDragPoint(String obj_id, double[] obj_x, double[] obj_y, boolean showLabel, float colorX, float colorY, float colorZ, float colorW, float radius); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto x = obj_x == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_x, JNI_FALSE); + auto y = obj_y == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_y, JNI_FALSE); + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + auto _result = ImPlot::DragPoint(id, (x != NULL ? &x[0] : NULL), (y != NULL ? &y[0] : NULL), showLabel, color, radius); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + if (x != NULL) env->ReleasePrimitiveArrayCritical(obj_x, x, JNI_FALSE); + if (y != NULL) env->ReleasePrimitiveArrayCritical(obj_y, y, JNI_FALSE); + return _result; + */ + + private static native boolean nDragPoint(String obj_id, double[] obj_x, double[] obj_y, float colorX, float colorY, float colorZ, float colorW, float radius); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto x = obj_x == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_x, JNI_FALSE); + auto y = obj_y == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_y, JNI_FALSE); + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + auto _result = ImPlot::DragPoint(id, (x != NULL ? &x[0] : NULL), (y != NULL ? &y[0] : NULL), true, color, radius); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + if (x != NULL) env->ReleasePrimitiveArrayCritical(obj_x, x, JNI_FALSE); + if (y != NULL) env->ReleasePrimitiveArrayCritical(obj_y, y, JNI_FALSE); + return _result; + */ + + private static native boolean nDragPoint(String obj_id, double[] obj_x, double[] obj_y, float radius); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto x = obj_x == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_x, JNI_FALSE); + auto y = obj_y == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_y, JNI_FALSE); + auto _result = ImPlot::DragPoint(id, (x != NULL ? &x[0] : NULL), (y != NULL ? &y[0] : NULL), true, IMPLOT_AUTO_COL, radius); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + if (x != NULL) env->ReleasePrimitiveArrayCritical(obj_x, x, JNI_FALSE); + if (y != NULL) env->ReleasePrimitiveArrayCritical(obj_y, y, JNI_FALSE); + return _result; + */ + + private static native boolean nDragPoint(String obj_id, double[] obj_x, double[] obj_y, boolean showLabel, float radius); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + auto x = obj_x == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_x, JNI_FALSE); + auto y = obj_y == NULL ? NULL : (double*)env->GetPrimitiveArrayCritical(obj_y, JNI_FALSE); + auto _result = ImPlot::DragPoint(id, (x != NULL ? &x[0] : NULL), (y != NULL ? &y[0] : NULL), showLabel, IMPLOT_AUTO_COL, radius); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + if (x != NULL) env->ReleasePrimitiveArrayCritical(obj_x, x, JNI_FALSE); + if (y != NULL) env->ReleasePrimitiveArrayCritical(obj_y, y, JNI_FALSE); + return _result; + */ + + //----------------------------------------------------------------------------- + // Legend Utils and Tools + //----------------------------------------------------------------------------- + + /** + * Set the location of the current plot's legend + */ + public static void setLegendLocation(final int location) { + nSetLegendLocation(location); + } + + /** + * Set the location of the current plot's legend + */ + public static void setLegendLocation(final int location, final int orientation) { + nSetLegendLocation(location, orientation); + } + + /** + * Set the location of the current plot's legend + */ + public static void setLegendLocation(final int location, final int orientation, final boolean outside) { + nSetLegendLocation(location, orientation, outside); + } + + /** + * Set the location of the current plot's legend + */ + public static void setLegendLocation(final int location, final boolean outside) { + nSetLegendLocation(location, outside); + } + + private static native void nSetLegendLocation(int location); /* + ImPlot::SetLegendLocation(location); + */ + + private static native void nSetLegendLocation(int location, int orientation); /* + ImPlot::SetLegendLocation(location, orientation); + */ + + private static native void nSetLegendLocation(int location, int orientation, boolean outside); /* + ImPlot::SetLegendLocation(location, orientation, outside); + */ + + private static native void nSetLegendLocation(int location, boolean outside); /* + ImPlot::SetLegendLocation(location, ImPlotOrientation_Vertical, outside); + */ + + /** + * Set the location of the current plot's mouse position text + */ + public static void setMousePosLocation(final int location) { + nSetMousePosLocation(location); + } + + private static native void nSetMousePosLocation(int location); /* + ImPlot::SetMousePosLocation(location); + */ + + /** + * Returns true if a plot item legend entry is hovered. + */ + public static boolean isLegendEntryHovered(final String labelId) { + return nIsLegendEntryHovered(labelId); + } + + private static native boolean nIsLegendEntryHovered(String obj_labelId); /*MANUAL + auto labelId = obj_labelId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelId, JNI_FALSE); + auto _result = ImPlot::IsLegendEntryHovered(labelId); + if (labelId != NULL) env->ReleaseStringUTFChars(obj_labelId, labelId); + return _result; + */ + + /** + * Begin a popup for a legend entry. + */ + public static boolean beginLegendPopup(final String labelID) { + return nBeginLegendPopup(labelID); + } + + /** + * Begin a popup for a legend entry. + */ + public static boolean beginLegendPopup(final String labelID, final int mouseButton) { + return nBeginLegendPopup(labelID, mouseButton); + } + + private static native boolean nBeginLegendPopup(String obj_labelID); /*MANUAL + auto labelID = obj_labelID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelID, JNI_FALSE); + auto _result = ImPlot::BeginLegendPopup(labelID); + if (labelID != NULL) env->ReleaseStringUTFChars(obj_labelID, labelID); + return _result; + */ + + private static native boolean nBeginLegendPopup(String obj_labelID, int mouseButton); /*MANUAL + auto labelID = obj_labelID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelID, JNI_FALSE); + auto _result = ImPlot::BeginLegendPopup(labelID, mouseButton); + if (labelID != NULL) env->ReleaseStringUTFChars(obj_labelID, labelID); + return _result; + */ + + /** + * End a popup for a legend entry. + */ + public static void endLegendPopup() { + nEndLegendPopup(); + } + + private static native void nEndLegendPopup(); /* + ImPlot::EndLegendPopup(); + */ + + //----------------------------------------------------------------------------- + // Drag and Drop Utils + //----------------------------------------------------------------------------- + + /** + * Turns the current plot's plotting area into a drag and drop target. Don't forget to call EndDragDropTarget! + */ + public static boolean beginDragDropTarget() { + return nBeginDragDropTarget(); + } + + private static native boolean nBeginDragDropTarget(); /* + return ImPlot::BeginDragDropTarget(); + */ + + /** + * Turns the current plot's X-axis into a drag and drop target. Don't forget to call EndDragDropTarget! + */ + public static boolean beginDragDropTargetX() { + return nBeginDragDropTargetX(); + } + + private static native boolean nBeginDragDropTargetX(); /* + return ImPlot::BeginDragDropTargetX(); + */ + + /** + * Turns the current plot's Y-Axis into a drag and drop target. Don't forget to call EndDragDropTarget! + */ + public static boolean beginDragDropTargetY() { + return nBeginDragDropTargetY(); + } + + /** + * Turns the current plot's Y-Axis into a drag and drop target. Don't forget to call EndDragDropTarget! + */ + public static boolean beginDragDropTargetY(final int yAxis) { + return nBeginDragDropTargetY(yAxis); + } + + private static native boolean nBeginDragDropTargetY(); /* + return ImPlot::BeginDragDropTargetY(); + */ + + private static native boolean nBeginDragDropTargetY(int yAxis); /* + return ImPlot::BeginDragDropTargetY(yAxis); + */ + + /** + * Turns the current plot's legend into a drag and drop target. Don't forget to call EndDragDropTarget! + */ + public static boolean beginDragDropTargetLegend() { + return nBeginDragDropTargetLegend(); + } + + private static native boolean nBeginDragDropTargetLegend(); /* + return ImPlot::BeginDragDropTargetLegend(); + */ + + /** + * Ends a drag and drop target. + */ + public static void endDragDropTarget() { + nEndDragDropTarget(); + } + + private static native void nEndDragDropTarget(); /* + ImPlot::EndDragDropTarget(); + */ + + // NB: By default, plot and axes drag and drop *sources* require holding the Ctrl modifier to initiate the drag. + // You can change the modifier if desired. If ImGuiKeyModFlags_None is provided, the axes will be locked from panning. + + /** + * Turns the current plot's plotting area into a drag and drop source. Don't forget to call EndDragDropSource! + */ + public static boolean beginDragDropSource() { + return nBeginDragDropSource(); + } + + /** + * Turns the current plot's plotting area into a drag and drop source. Don't forget to call EndDragDropSource! + */ + public static boolean beginDragDropSource(final int keyMods) { + return nBeginDragDropSource(keyMods); + } + + /** + * Turns the current plot's plotting area into a drag and drop source. Don't forget to call EndDragDropSource! + */ + public static boolean beginDragDropSource(final int keyMods, final int dragDropFlags) { + return nBeginDragDropSource(keyMods, dragDropFlags); + } + + private static native boolean nBeginDragDropSource(); /* + return ImPlot::BeginDragDropSource(); + */ + + private static native boolean nBeginDragDropSource(int keyMods); /* + return ImPlot::BeginDragDropSource(keyMods); + */ + + private static native boolean nBeginDragDropSource(int keyMods, int dragDropFlags); /* + return ImPlot::BeginDragDropSource(keyMods, dragDropFlags); + */ + + /** + * Turns the current plot's X-axis into a drag and drop source. Don't forget to call EndDragDropSource! + */ + public static boolean beginDragDropSourceX() { + return nBeginDragDropSourceX(); + } + + /** + * Turns the current plot's X-axis into a drag and drop source. Don't forget to call EndDragDropSource! + */ + public static boolean beginDragDropSourceX(final int keyMods) { + return nBeginDragDropSourceX(keyMods); + } + + /** + * Turns the current plot's X-axis into a drag and drop source. Don't forget to call EndDragDropSource! + */ + public static boolean beginDragDropSourceX(final int keyMods, final int dragDropFlags) { + return nBeginDragDropSourceX(keyMods, dragDropFlags); + } + + private static native boolean nBeginDragDropSourceX(); /* + return ImPlot::BeginDragDropSourceX(); + */ + + private static native boolean nBeginDragDropSourceX(int keyMods); /* + return ImPlot::BeginDragDropSourceX(keyMods); + */ + + private static native boolean nBeginDragDropSourceX(int keyMods, int dragDropFlags); /* + return ImPlot::BeginDragDropSourceX(keyMods, dragDropFlags); + */ + + /** + * Turns the current plot's Y-axis into a drag and drop source. Don't forget to call EndDragDropSource! + */ + public static boolean beginDragDropSourceY() { + return nBeginDragDropSourceY(); + } + + /** + * Turns the current plot's Y-axis into a drag and drop source. Don't forget to call EndDragDropSource! + */ + public static boolean beginDragDropSourceY(final int yAxis) { + return nBeginDragDropSourceY(yAxis); + } + + /** + * Turns the current plot's Y-axis into a drag and drop source. Don't forget to call EndDragDropSource! + */ + public static boolean beginDragDropSourceY(final int yAxis, final int keyMods) { + return nBeginDragDropSourceY(yAxis, keyMods); + } + + /** + * Turns the current plot's Y-axis into a drag and drop source. Don't forget to call EndDragDropSource! + */ + public static boolean beginDragDropSourceY(final int yAxis, final int keyMods, final int dragDropFlags) { + return nBeginDragDropSourceY(yAxis, keyMods, dragDropFlags); + } + + private static native boolean nBeginDragDropSourceY(); /* + return ImPlot::BeginDragDropSourceY(); + */ + + private static native boolean nBeginDragDropSourceY(int yAxis); /* + return ImPlot::BeginDragDropSourceY(yAxis); + */ + + private static native boolean nBeginDragDropSourceY(int yAxis, int keyMods); /* + return ImPlot::BeginDragDropSourceY(yAxis, keyMods); + */ + + private static native boolean nBeginDragDropSourceY(int yAxis, int keyMods, int dragDropFlags); /* + return ImPlot::BeginDragDropSourceY(yAxis, keyMods, dragDropFlags); + */ + + /** + * Turns an item in the current plot's legend into drag and drop source. Don't forget to call EndDragDropSource! + */ + public static boolean beginDragDropSourceItem(final String labelID) { + return nBeginDragDropSourceItem(labelID); + } + + /** + * Turns an item in the current plot's legend into drag and drop source. Don't forget to call EndDragDropSource! + */ + public static boolean beginDragDropSourceItem(final String labelID, final int dragDropFlags) { + return nBeginDragDropSourceItem(labelID, dragDropFlags); + } + + private static native boolean nBeginDragDropSourceItem(String obj_labelID); /*MANUAL + auto labelID = obj_labelID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelID, JNI_FALSE); + auto _result = ImPlot::BeginDragDropSourceItem(labelID); + if (labelID != NULL) env->ReleaseStringUTFChars(obj_labelID, labelID); + return _result; + */ + + private static native boolean nBeginDragDropSourceItem(String obj_labelID, int dragDropFlags); /*MANUAL + auto labelID = obj_labelID == NULL ? NULL : (char*)env->GetStringUTFChars(obj_labelID, JNI_FALSE); + auto _result = ImPlot::BeginDragDropSourceItem(labelID, dragDropFlags); + if (labelID != NULL) env->ReleaseStringUTFChars(obj_labelID, labelID); + return _result; + */ + + /** + * Ends a drag and drop source. + */ + public static void endDragDropSource() { + nEndDragDropSource(); + } + + private static native void nEndDragDropSource(); /* + ImPlot::EndDragDropSource(); + */ + + //----------------------------------------------------------------------------- + // Plot and Item Styling + //----------------------------------------------------------------------------- + + // Styling colors in ImPlot works similarly to styling colors in ImGui, but + // with one important difference. Like ImGui, all style colors are stored in an + // indexable array in ImPlotStyle. You can permanently modify these values through + // GetStyle().Colors, or temporarily modify them with Push/Pop functions below. + // However, by default all style colors in ImPlot default to a special color + // IMPLOT_AUTO_COL. The behavior of this color depends upon the style color to + // which it as applied: + // + // 1) For style colors associated with plot items (e.g. ImPlotCol_Line), + // IMPLOT_AUTO_COL tells ImPlot to color the item with the next unused + // color in the current colormap. Thus, every item will have a different + // color up to the number of colors in the colormap, at which point the + // colormap will roll over. For most use cases, you should not need to + // set these style colors to anything but IMPLOT_COL_AUTO; you are + // probably better off changing the current colormap. However, if you + // need to explicitly color a particular item you may either Push/Pop + // the style color around the item in question, or use the SetNextXXXStyle + // API below. If you permanently set one of these style colors to a specific + // color, or forget to call Pop, then all subsequent items will be styled + // with the color you set. + // + // 2) For style colors associated with plot styling (e.g. ImPlotCol_PlotBg), + // IMPLOT_AUTO_COL tells ImPlot to set that color from color data in your + // **ImGuiStyle**. The ImGuiCol_ that these style colors default to are + // detailed above, and in general have been mapped to produce plots visually + // consistent with your current ImGui style. Of course, you are free to + // manually set these colors to whatever you like, and further can Push/Pop + // them around individual plots for plot-specific styling (e.g. coloring axes). + + private static final ImPlotStyle _GETSTYLE_1 = new ImPlotStyle(0); + + /** + * Provides access to plot style structure for permanant modifications to colors, sizes, etc. + */ + public static ImPlotStyle getStyle() { + _GETSTYLE_1.ptr = nGetStyle(); + return _GETSTYLE_1; + } + + private static native long nGetStyle(); /* + return (intptr_t)&ImPlot::GetStyle(); + */ + + /** + * Style plot colors for current ImGui style (default). + */ + public static void styleColorsAuto() { + nStyleColorsAuto(); + } + + /** + * Style plot colors for current ImGui style (default). + */ + public static void styleColorsAuto(final ImPlotStyle dst) { + nStyleColorsAuto(dst.ptr); + } + + private static native void nStyleColorsAuto(); /* + ImPlot::StyleColorsAuto(); + */ + + private static native void nStyleColorsAuto(long dst); /* + ImPlot::StyleColorsAuto(reinterpret_cast(dst)); + */ + + /** + * Style plot colors for ImGui "Classic". + */ + public static void styleColorsClassic() { + nStyleColorsClassic(); + } + + /** + * Style plot colors for ImGui "Classic". + */ + public static void styleColorsClassic(final ImPlotStyle dst) { + nStyleColorsClassic(dst.ptr); + } + + private static native void nStyleColorsClassic(); /* + ImPlot::StyleColorsClassic(); + */ + + private static native void nStyleColorsClassic(long dst); /* + ImPlot::StyleColorsClassic(reinterpret_cast(dst)); + */ + + /** + * Style plot colors for ImGui "Dark". + */ + public static void styleColorsDark() { + nStyleColorsDark(); + } + + /** + * Style plot colors for ImGui "Dark". + */ + public static void styleColorsDark(final ImPlotStyle dst) { + nStyleColorsDark(dst.ptr); + } + + private static native void nStyleColorsDark(); /* + ImPlot::StyleColorsDark(); + */ + + private static native void nStyleColorsDark(long dst); /* + ImPlot::StyleColorsDark(reinterpret_cast(dst)); + */ + + /** + * Style plot colors for ImGui "Light". + */ + public static void styleColorsLight() { + nStyleColorsLight(); + } + + /** + * Style plot colors for ImGui "Light". + */ + public static void styleColorsLight(final ImPlotStyle dst) { + nStyleColorsLight(dst.ptr); + } + + private static native void nStyleColorsLight(); /* + ImPlot::StyleColorsLight(); + */ + + private static native void nStyleColorsLight(long dst); /* + ImPlot::StyleColorsLight(reinterpret_cast(dst)); + */ + + // Use PushStyleX to temporarily modify your ImPlotStyle. The modification + // will last until the matching call to PopStyleX. You MUST call a pop for + // every push, otherwise you will leak memory! This behaves just like ImGui. + + /** + * Temporarily modify a style color. Don't forget to call PopStyleColor! + */ + public static native void pushStyleColor(int idx, long col); /* + ImPlot::PushStyleColor(idx, col); + */ + + /** + * Temporarily modify a style color. Don't forget to call PopStyleColor! + */ + public static void pushStyleColor(final int idx, final int col) { + nPushStyleColor(idx, col); + } + + private static native void nPushStyleColor(int idx, int col); /* + ImPlot::PushStyleColor(idx, static_cast(col)); + */ + + /** + * Temporarily modify a style color. Don't forget to call PopStyleColor! + */ + public static void pushStyleColor(final int idx, final ImVec4 col) { + nPushStyleColor(idx, col.x, col.y, col.z, col.w); + } + + /** + * Temporarily modify a style color. Don't forget to call PopStyleColor! + */ + public static void pushStyleColor(final int idx, final float colX, final float colY, final float colZ, final float colW) { + nPushStyleColor(idx, colX, colY, colZ, colW); + } + + private static native void nPushStyleColor(int idx, float colX, float colY, float colZ, float colW); /*MANUAL + ImVec4 col = ImVec4(colX, colY, colZ, colW); + ImPlot::PushStyleColor(idx, col); + */ + + public static void popStyleColor() { + nPopStyleColor(); + } + + public static void popStyleColor(final int count) { + nPopStyleColor(count); + } + + private static native void nPopStyleColor(); /* + ImPlot::PopStyleColor(); + */ + + private static native void nPopStyleColor(int count); /* + ImPlot::PopStyleColor(count); + */ + + /** + * Temporarily modify a style variable of float type. Don't forget to call PopStyleVar! + */ + public static void pushStyleVar(final int idx, final float val) { + nPushStyleVar(idx, val); + } + + private static native void nPushStyleVar(int idx, float val); /* + ImPlot::PushStyleVar(idx, static_cast(val)); + */ + + /** + * Temporarily modify a style variable of int type. Don't forget to call PopStyleVar! + */ + public static void pushStyleVar(final int idx, final int val) { + nPushStyleVar(idx, val); + } + + private static native void nPushStyleVar(int idx, int val); /* + ImPlot::PushStyleVar(idx, static_cast(val)); + */ + + /** + * Temporarily modify a style variable of ImVec2 type. Don't forget to call PopStyleVar! + */ + public static void pushStyleVar(final int idx, final ImVec2 val) { + nPushStyleVar(idx, val.x, val.y); + } + + /** + * Temporarily modify a style variable of ImVec2 type. Don't forget to call PopStyleVar! + */ + public static void pushStyleVar(final int idx, final float valX, final float valY) { + nPushStyleVar(idx, valX, valY); + } + + private static native void nPushStyleVar(int idx, float valX, float valY); /*MANUAL + ImVec2 val = ImVec2(valX, valY); + ImPlot::PushStyleVar(idx, val); + */ + /** + * Undo temporary style variable modification(s). Undo multiple pushes at once by increasing count. + */ + public static void popStyleVar() { + nPopStyleVar(); + } + + /** + * Undo temporary style variable modification(s). Undo multiple pushes at once by increasing count. + */ + public static void popStyleVar(final int count) { + nPopStyleVar(count); + } + + private static native void nPopStyleVar(); /* + ImPlot::PopStyleVar(); + */ + + private static native void nPopStyleVar(int count); /* + ImPlot::PopStyleVar(count); + */ + + /** + * Set the line color and weight for the next item only. + */ + public static void setNextLineStyle() { + nSetNextLineStyle(); + } + + /** + * Set the line color and weight for the next item only. + */ + public static void setNextLineStyle(final ImVec4 col) { + nSetNextLineStyle(col.x, col.y, col.z, col.w); + } + + /** + * Set the line color and weight for the next item only. + */ + public static void setNextLineStyle(final float colX, final float colY, final float colZ, final float colW) { + nSetNextLineStyle(colX, colY, colZ, colW); + } + + /** + * Set the line color and weight for the next item only. + */ + public static void setNextLineStyle(final ImVec4 col, final float weight) { + nSetNextLineStyle(col.x, col.y, col.z, col.w, weight); + } + + /** + * Set the line color and weight for the next item only. + */ + public static void setNextLineStyle(final float colX, final float colY, final float colZ, final float colW, final float weight) { + nSetNextLineStyle(colX, colY, colZ, colW, weight); + } + + /** + * Set the line color and weight for the next item only. + */ + public static void setNextLineStyle(final float weight) { + nSetNextLineStyle(weight); + } + + private static native void nSetNextLineStyle(); /* + ImPlot::SetNextLineStyle(); + */ + + private static native void nSetNextLineStyle(float colX, float colY, float colZ, float colW); /*MANUAL + ImVec4 col = ImVec4(colX, colY, colZ, colW); + ImPlot::SetNextLineStyle(col); + */ + + private static native void nSetNextLineStyle(float colX, float colY, float colZ, float colW, float weight); /*MANUAL + ImVec4 col = ImVec4(colX, colY, colZ, colW); + ImPlot::SetNextLineStyle(col, weight); + */ + + private static native void nSetNextLineStyle(float weight); /* + ImPlot::SetNextLineStyle(IMPLOT_AUTO_COL, weight); + */ + + /** + * Set the fill color for the next item only. + */ + public static void setNextFillStyle() { + nSetNextFillStyle(); + } + + /** + * Set the fill color for the next item only. + */ + public static void setNextFillStyle(final ImVec4 col) { + nSetNextFillStyle(col.x, col.y, col.z, col.w); + } + + /** + * Set the fill color for the next item only. + */ + public static void setNextFillStyle(final float colX, final float colY, final float colZ, final float colW) { + nSetNextFillStyle(colX, colY, colZ, colW); + } + + /** + * Set the fill color for the next item only. + */ + public static void setNextFillStyle(final ImVec4 col, final float alphaMod) { + nSetNextFillStyle(col.x, col.y, col.z, col.w, alphaMod); + } + + /** + * Set the fill color for the next item only. + */ + public static void setNextFillStyle(final float colX, final float colY, final float colZ, final float colW, final float alphaMod) { + nSetNextFillStyle(colX, colY, colZ, colW, alphaMod); + } + + /** + * Set the fill color for the next item only. + */ + public static void setNextFillStyle(final float alphaMod) { + nSetNextFillStyle(alphaMod); + } + + private static native void nSetNextFillStyle(); /* + ImPlot::SetNextFillStyle(); + */ + + private static native void nSetNextFillStyle(float colX, float colY, float colZ, float colW); /*MANUAL + ImVec4 col = ImVec4(colX, colY, colZ, colW); + ImPlot::SetNextFillStyle(col); + */ + + private static native void nSetNextFillStyle(float colX, float colY, float colZ, float colW, float alphaMod); /*MANUAL + ImVec4 col = ImVec4(colX, colY, colZ, colW); + ImPlot::SetNextFillStyle(col, alphaMod); + */ + + private static native void nSetNextFillStyle(float alphaMod); /* + ImPlot::SetNextFillStyle(IMPLOT_AUTO_COL, alphaMod); + */ + + /** + * Set the marker style for the next item only. + */ + public static void setNextMarkerStyle() { + nSetNextMarkerStyle(); + } + + /** + * Set the marker style for the next item only. + */ + public static void setNextMarkerStyle(final int marker) { + nSetNextMarkerStyle(marker); + } + + /** + * Set the marker style for the next item only. + */ + public static void setNextMarkerStyle(final int marker, final float size) { + nSetNextMarkerStyle(marker, size); + } + + /** + * Set the marker style for the next item only. + */ + public static void setNextMarkerStyle(final int marker, final float size, final ImVec4 fill) { + nSetNextMarkerStyle(marker, size, fill.x, fill.y, fill.z, fill.w); + } + + /** + * Set the marker style for the next item only. + */ + public static void setNextMarkerStyle(final int marker, final float size, final float fillX, final float fillY, final float fillZ, final float fillW) { + nSetNextMarkerStyle(marker, size, fillX, fillY, fillZ, fillW); + } + + /** + * Set the marker style for the next item only. + */ + public static void setNextMarkerStyle(final int marker, final float size, final ImVec4 fill, final float weight) { + nSetNextMarkerStyle(marker, size, fill.x, fill.y, fill.z, fill.w, weight); + } + + /** + * Set the marker style for the next item only. + */ + public static void setNextMarkerStyle(final int marker, final float size, final float fillX, final float fillY, final float fillZ, final float fillW, final float weight) { + nSetNextMarkerStyle(marker, size, fillX, fillY, fillZ, fillW, weight); + } + + /** + * Set the marker style for the next item only. + */ + public static void setNextMarkerStyle(final int marker, final float size, final ImVec4 fill, final float weight, final ImVec4 outline) { + nSetNextMarkerStyle(marker, size, fill.x, fill.y, fill.z, fill.w, weight, outline.x, outline.y, outline.z, outline.w); + } + + /** + * Set the marker style for the next item only. + */ + public static void setNextMarkerStyle(final int marker, final float size, final float fillX, final float fillY, final float fillZ, final float fillW, final float weight, final float outlineX, final float outlineY, final float outlineZ, final float outlineW) { + nSetNextMarkerStyle(marker, size, fillX, fillY, fillZ, fillW, weight, outlineX, outlineY, outlineZ, outlineW); + } + + /** + * Set the marker style for the next item only. + */ + public static void setNextMarkerStyle(final int marker, final float size, final ImVec4 fill, final ImVec4 outline) { + nSetNextMarkerStyle(marker, size, fill.x, fill.y, fill.z, fill.w, outline.x, outline.y, outline.z, outline.w); + } + + /** + * Set the marker style for the next item only. + */ + public static void setNextMarkerStyle(final int marker, final float size, final float fillX, final float fillY, final float fillZ, final float fillW, final float outlineX, final float outlineY, final float outlineZ, final float outlineW) { + nSetNextMarkerStyle(marker, size, fillX, fillY, fillZ, fillW, outlineX, outlineY, outlineZ, outlineW); + } + + private static native void nSetNextMarkerStyle(); /* + ImPlot::SetNextMarkerStyle(); + */ + + private static native void nSetNextMarkerStyle(int marker); /* + ImPlot::SetNextMarkerStyle(marker); + */ + + private static native void nSetNextMarkerStyle(int marker, float size); /* + ImPlot::SetNextMarkerStyle(marker, size); + */ + + private static native void nSetNextMarkerStyle(int marker, float size, float fillX, float fillY, float fillZ, float fillW); /*MANUAL + ImVec4 fill = ImVec4(fillX, fillY, fillZ, fillW); + ImPlot::SetNextMarkerStyle(marker, size, fill); + */ + + private static native void nSetNextMarkerStyle(int marker, float size, float fillX, float fillY, float fillZ, float fillW, float weight); /*MANUAL + ImVec4 fill = ImVec4(fillX, fillY, fillZ, fillW); + ImPlot::SetNextMarkerStyle(marker, size, fill, weight); + */ + + private static native void nSetNextMarkerStyle(int marker, float size, float fillX, float fillY, float fillZ, float fillW, float weight, float outlineX, float outlineY, float outlineZ, float outlineW); /*MANUAL + ImVec4 fill = ImVec4(fillX, fillY, fillZ, fillW); + ImVec4 outline = ImVec4(outlineX, outlineY, outlineZ, outlineW); + ImPlot::SetNextMarkerStyle(marker, size, fill, weight, outline); + */ + + private static native void nSetNextMarkerStyle(int marker, float size, float fillX, float fillY, float fillZ, float fillW, float outlineX, float outlineY, float outlineZ, float outlineW); /*MANUAL + ImVec4 fill = ImVec4(fillX, fillY, fillZ, fillW); + ImVec4 outline = ImVec4(outlineX, outlineY, outlineZ, outlineW); + ImPlot::SetNextMarkerStyle(marker, size, fill, IMPLOT_AUTO, outline); + */ + + /** + * Set the error bar style for the next item only. + */ + public static void setNextErrorBarStyle() { + nSetNextErrorBarStyle(); + } + + /** + * Set the error bar style for the next item only. + */ + public static void setNextErrorBarStyle(final ImVec4 col) { + nSetNextErrorBarStyle(col.x, col.y, col.z, col.w); + } + + /** + * Set the error bar style for the next item only. + */ + public static void setNextErrorBarStyle(final float colX, final float colY, final float colZ, final float colW) { + nSetNextErrorBarStyle(colX, colY, colZ, colW); + } + + /** + * Set the error bar style for the next item only. + */ + public static void setNextErrorBarStyle(final ImVec4 col, final float size) { + nSetNextErrorBarStyle(col.x, col.y, col.z, col.w, size); + } + + /** + * Set the error bar style for the next item only. + */ + public static void setNextErrorBarStyle(final float colX, final float colY, final float colZ, final float colW, final float size) { + nSetNextErrorBarStyle(colX, colY, colZ, colW, size); + } + + /** + * Set the error bar style for the next item only. + */ + public static void setNextErrorBarStyle(final ImVec4 col, final float size, final float weight) { + nSetNextErrorBarStyle(col.x, col.y, col.z, col.w, size, weight); + } + + /** + * Set the error bar style for the next item only. + */ + public static void setNextErrorBarStyle(final float colX, final float colY, final float colZ, final float colW, final float size, final float weight) { + nSetNextErrorBarStyle(colX, colY, colZ, colW, size, weight); + } + + /** + * Set the error bar style for the next item only. + */ + public static void setNextErrorBarStyle(final float size, final float weight) { + nSetNextErrorBarStyle(size, weight); + } + + private static native void nSetNextErrorBarStyle(); /* + ImPlot::SetNextErrorBarStyle(); + */ + + private static native void nSetNextErrorBarStyle(float colX, float colY, float colZ, float colW); /*MANUAL + ImVec4 col = ImVec4(colX, colY, colZ, colW); + ImPlot::SetNextErrorBarStyle(col); + */ + + private static native void nSetNextErrorBarStyle(float colX, float colY, float colZ, float colW, float size); /*MANUAL + ImVec4 col = ImVec4(colX, colY, colZ, colW); + ImPlot::SetNextErrorBarStyle(col, size); + */ + + private static native void nSetNextErrorBarStyle(float colX, float colY, float colZ, float colW, float size, float weight); /*MANUAL + ImVec4 col = ImVec4(colX, colY, colZ, colW); + ImPlot::SetNextErrorBarStyle(col, size, weight); + */ + + private static native void nSetNextErrorBarStyle(float size, float weight); /* + ImPlot::SetNextErrorBarStyle(IMPLOT_AUTO_COL, size, weight); + */ + + /** + * Gets the last item primary color (i.e. its legend icon color) + */ + public static ImVec4 getLastItemColor() { + final ImVec4 dst = new ImVec4(); + nGetLastItemColor(dst); + return dst; + } + + /** + * Gets the last item primary color (i.e. its legend icon color) + */ + public static float getLastItemColorX() { + return nGetLastItemColorX(); + } + + /** + * Gets the last item primary color (i.e. its legend icon color) + */ + public static float getLastItemColorY() { + return nGetLastItemColorY(); + } + + /** + * Gets the last item primary color (i.e. its legend icon color) + */ + public static float getLastItemColorZ() { + return nGetLastItemColorZ(); + } + + /** + * Gets the last item primary color (i.e. its legend icon color) + */ + public static float getLastItemColorW() { + return nGetLastItemColorW(); + } + + /** + * Gets the last item primary color (i.e. its legend icon color) + */ + public static void getLastItemColor(final ImVec4 dst) { + nGetLastItemColor(dst); + } + + private static native void nGetLastItemColor(ImVec4 dst); /* + Jni::ImVec4Cpy(env, ImPlot::GetLastItemColor(), dst); + */ + + private static native float nGetLastItemColorX(); /* + return ImPlot::GetLastItemColor().x; + */ + + private static native float nGetLastItemColorY(); /* + return ImPlot::GetLastItemColor().y; + */ + + private static native float nGetLastItemColorZ(); /* + return ImPlot::GetLastItemColor().z; + */ + + private static native float nGetLastItemColorW(); /* + return ImPlot::GetLastItemColor().w; + */ + + /** + * Returns the string name for an ImPlotCol. + */ + public static String getStyleColorName(final int idx) { + return nGetStyleColorName(idx); + } + + private static native String nGetStyleColorName(int idx); /* + return env->NewStringUTF(ImPlot::GetStyleColorName(idx)); + */ + + /** + * Returns the null terminated string name for an ImPlotMarker. + */ + public static String getMarkerName(final int idx) { + return nGetMarkerName(idx); + } + + private static native String nGetMarkerName(int idx); /* + return env->NewStringUTF(ImPlot::GetMarkerName(idx)); + */ + + //----------------------------------------------------------------------------- + // Colormaps + //----------------------------------------------------------------------------- + + // Item styling is based on colormaps when the relevant ImPlotCol_XXX is set to + // IMPLOT_AUTO_COL (default). Several built-in colormaps are available. You can + // add and then push/pop your own colormaps as well. To permanently set a colormap, + // modify the Colormap index member of your ImPlotStyle. + + // Colormap data will be ignored and a custom color will be used if you have done one of the following: + // 1) Modified an item style color in your ImPlotStyle to anything other than IMPLOT_AUTO_COL. + // 2) Pushed an item style color using PushStyleColor(). + // 3) Set the next item style with a SetNextXXXStyle function. + + // Add a new colormap. The color data will be copied. The colormap can be used by pushing either the returned index or the + // string name with PushColormap. The colormap name must be unique and the size must be greater than 1. You will receive + // an assert otherwise! By default colormaps are considered to be qualitative (i.e. discrete). If you want to create a + // continuous colormap, set #qual=false. This will treat the colors you provide as keys, and ImPlot will build a linearly + // interpolated lookup table. The memory footprint of this table will be exactly ((size-1)*255+1)*4 bytes. + + public static int addColormap(final String name, final ImVec4[] cols) { + return nAddColormap(name, cols); + } + + public static int addColormap(final String name, final ImVec4[] cols, final boolean qual) { + return nAddColormap(name, cols, qual); + } + + private static native int nAddColormap(String obj_name, ImVec4[] obj_cols); /*MANUAL + auto name = obj_name == NULL ? NULL : (char*)env->GetStringUTFChars(obj_name, JNI_FALSE); + int colsLength = env->GetArrayLength(obj_cols); + ImVec4 cols[colsLength]; + for (int i = 0; i < colsLength; i++) { + jobject src = env->GetObjectArrayElement(obj_cols, i); + ImVec4 dst; + Jni::ImVec4Cpy(env, src, &dst); + cols[i] = dst; + }; + auto _result = ImPlot::AddColormap(name, cols, env->GetArrayLength(obj_cols)); + if (name != NULL) env->ReleaseStringUTFChars(obj_name, name); + return _result; + */ + + private static native int nAddColormap(String obj_name, ImVec4[] obj_cols, boolean qual); /*MANUAL + auto name = obj_name == NULL ? NULL : (char*)env->GetStringUTFChars(obj_name, JNI_FALSE); + int colsLength = env->GetArrayLength(obj_cols); + ImVec4 cols[colsLength]; + for (int i = 0; i < colsLength; i++) { + jobject src = env->GetObjectArrayElement(obj_cols, i); + ImVec4 dst; + Jni::ImVec4Cpy(env, src, &dst); + cols[i] = dst; + }; + auto _result = ImPlot::AddColormap(name, cols, env->GetArrayLength(obj_cols), qual); + if (name != NULL) env->ReleaseStringUTFChars(obj_name, name); + return _result; + */ + + public static int addColormap(final String name, final int[] cols) { + return nAddColormap(name, cols); + } + + public static int addColormap(final String name, final int[] cols, final boolean qual) { + return nAddColormap(name, cols, qual); + } + + private static native int nAddColormap(String obj_name, int[] obj_cols); /*MANUAL + auto name = obj_name == NULL ? NULL : (char*)env->GetStringUTFChars(obj_name, JNI_FALSE); + auto cols = obj_cols == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_cols, JNI_FALSE); + auto _result = ImPlot::AddColormap(name, reinterpret_cast(&cols[0]), env->GetArrayLength(obj_cols)); + if (name != NULL) env->ReleaseStringUTFChars(obj_name, name); + if (cols != NULL) env->ReleasePrimitiveArrayCritical(obj_cols, cols, JNI_FALSE); + return _result; + */ + + private static native int nAddColormap(String obj_name, int[] obj_cols, boolean qual); /*MANUAL + auto name = obj_name == NULL ? NULL : (char*)env->GetStringUTFChars(obj_name, JNI_FALSE); + auto cols = obj_cols == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_cols, JNI_FALSE); + auto _result = ImPlot::AddColormap(name, reinterpret_cast(&cols[0]), env->GetArrayLength(obj_cols), qual); + if (name != NULL) env->ReleaseStringUTFChars(obj_name, name); + if (cols != NULL) env->ReleasePrimitiveArrayCritical(obj_cols, cols, JNI_FALSE); + return _result; + */ + + /** + * Returns the number of available colormaps (i.e. the built-in + user-added count). + */ + public static int getColormapCount() { + return nGetColormapCount(); + } + + private static native int nGetColormapCount(); /* + return ImPlot::GetColormapCount(); + */ + + /** + * Returns a string name for a colormap given an index. + */ + public static String getColormapName(final int cmap) { + return nGetColormapName(cmap); + } + + private static native String nGetColormapName(int cmap); /* + return env->NewStringUTF(ImPlot::GetColormapName(cmap)); + */ + + /** + * Returns an index number for a colormap given a valid string name. Returns -1 if the name is invalid. + */ + public static int getColormapIndex(final String name) { + return nGetColormapIndex(name); + } + + private static native int nGetColormapIndex(String obj_name); /*MANUAL + auto name = obj_name == NULL ? NULL : (char*)env->GetStringUTFChars(obj_name, JNI_FALSE); + auto _result = ImPlot::GetColormapIndex(name); + if (name != NULL) env->ReleaseStringUTFChars(obj_name, name); + return _result; + */ + + /** + * Temporarily switch to one of the built-in (i.e. ImPlotColormap_XXX) or user-added colormaps (i.e. a return value of AddColormap). Don't forget to call PopColormap! + */ + public static void pushColormap(final int cmap) { + nPushColormap(cmap); + } + + private static native void nPushColormap(int cmap); /* + ImPlot::PushColormap(cmap); + */ + + /** + * Push a colormap by string name. Use built-in names such as "Default", "Deep", "Jet", etc. or a string you provided to AddColormap. Don't forget to call PopColormap! + */ + public static void pushColormap(final String name) { + nPushColormap(name); + } + + private static native void nPushColormap(String name); /*MANUAL + auto name = obj_name == NULL ? NULL : (char*)env->GetStringUTFChars(obj_name, JNI_FALSE); + ImPlot::PushColormap(name); + if (name != NULL) env->ReleaseStringUTFChars(obj_name, name); + */ + + /** + * Undo temporary colormap modification(s). Undo multiple pushes at once by increasing count. + */ + public static void popColormap() { + nPopColormap(); + } + + /** + * Undo temporary colormap modification(s). Undo multiple pushes at once by increasing count. + */ + public static void popColormap(final int count) { + nPopColormap(count); + } + + private static native void nPopColormap(); /* + ImPlot::PopColormap(); + */ + + private static native void nPopColormap(int count); /* + ImPlot::PopColormap(count); + */ + + /** + * Returns the next color from the current colormap and advances the colormap for the current plot. + * Can also be used with no return value to skip colors if desired. You need to call this between Begin/EndPlot! + */ + public static ImVec4 nextColormapColor() { + final ImVec4 dst = new ImVec4(); + nNextColormapColor(dst); + return dst; + } + + /** + * Returns the next color from the current colormap and advances the colormap for the current plot. + * Can also be used with no return value to skip colors if desired. You need to call this between Begin/EndPlot! + */ + public static float nextColormapColorX() { + return nNextColormapColorX(); + } + + /** + * Returns the next color from the current colormap and advances the colormap for the current plot. + * Can also be used with no return value to skip colors if desired. You need to call this between Begin/EndPlot! + */ + public static float nextColormapColorY() { + return nNextColormapColorY(); + } + + /** + * Returns the next color from the current colormap and advances the colormap for the current plot. + * Can also be used with no return value to skip colors if desired. You need to call this between Begin/EndPlot! + */ + public static float nextColormapColorZ() { + return nNextColormapColorZ(); + } + + /** + * Returns the next color from the current colormap and advances the colormap for the current plot. + * Can also be used with no return value to skip colors if desired. You need to call this between Begin/EndPlot! + */ + public static float nextColormapColorW() { + return nNextColormapColorW(); + } + + /** + * Returns the next color from the current colormap and advances the colormap for the current plot. + * Can also be used with no return value to skip colors if desired. You need to call this between Begin/EndPlot! + */ + public static void nextColormapColor(final ImVec4 dst) { + nNextColormapColor(dst); + } + + private static native void nNextColormapColor(ImVec4 dst); /* + Jni::ImVec4Cpy(env, ImPlot::NextColormapColor(), dst); + */ + + private static native float nNextColormapColorX(); /* + return ImPlot::NextColormapColor().x; + */ + + private static native float nNextColormapColorY(); /* + return ImPlot::NextColormapColor().y; + */ + + private static native float nNextColormapColorZ(); /* + return ImPlot::NextColormapColor().z; + */ + + private static native float nNextColormapColorW(); /* + return ImPlot::NextColormapColor().w; + */ + + /** + * Returns the size of a colormap. + */ + public static int getColormapSize() { + return nGetColormapSize(); + } + + /** + * Returns the size of a colormap. + */ + public static int getColormapSize(final int cmap) { + return nGetColormapSize(cmap); + } + + private static native int nGetColormapSize(); /* + return ImPlot::GetColormapSize(); + */ + + private static native int nGetColormapSize(int cmap); /* + return ImPlot::GetColormapSize(cmap); + */ + + /** + * Returns a color from a colormap given an index {@code >=} 0 (modulo will be performed). + */ + public static ImVec4 getColormapColor(final int idx) { + final ImVec4 dst = new ImVec4(); + nGetColormapColor(dst, idx); + return dst; + } + + /** + * Returns a color from a colormap given an index {@code >=} 0 (modulo will be performed). + */ + public static float getColormapColorX(final int idx) { + return nGetColormapColorX(idx); + } + + /** + * Returns a color from a colormap given an index {@code >=} 0 (modulo will be performed). + */ + public static float getColormapColorY(final int idx) { + return nGetColormapColorY(idx); + } + + /** + * Returns a color from a colormap given an index {@code >=} 0 (modulo will be performed). + */ + public static float getColormapColorZ(final int idx) { + return nGetColormapColorZ(idx); + } + + /** + * Returns a color from a colormap given an index {@code >=} 0 (modulo will be performed). + */ + public static float getColormapColorW(final int idx) { + return nGetColormapColorW(idx); + } + + /** + * Returns a color from a colormap given an index {@code >=} 0 (modulo will be performed). + */ + public static void getColormapColor(final ImVec4 dst, final int idx) { + nGetColormapColor(dst, idx); + } + + /** + * Returns a color from a colormap given an index {@code >=} 0 (modulo will be performed). + */ + public static ImVec4 getColormapColor(final int idx, final int cmap) { + final ImVec4 dst = new ImVec4(); + nGetColormapColor(dst, idx, cmap); + return dst; + } + + /** + * Returns a color from a colormap given an index {@code >=} 0 (modulo will be performed). + */ + public static float getColormapColorX(final int idx, final int cmap) { + return nGetColormapColorX(idx, cmap); + } + + /** + * Returns a color from a colormap given an index {@code >=} 0 (modulo will be performed). + */ + public static float getColormapColorY(final int idx, final int cmap) { + return nGetColormapColorY(idx, cmap); + } + + /** + * Returns a color from a colormap given an index {@code >=} 0 (modulo will be performed). + */ + public static float getColormapColorZ(final int idx, final int cmap) { + return nGetColormapColorZ(idx, cmap); + } + + /** + * Returns a color from a colormap given an index {@code >=} 0 (modulo will be performed). + */ + public static float getColormapColorW(final int idx, final int cmap) { + return nGetColormapColorW(idx, cmap); + } + + /** + * Returns a color from a colormap given an index {@code >=} 0 (modulo will be performed). + */ + public static void getColormapColor(final ImVec4 dst, final int idx, final int cmap) { + nGetColormapColor(dst, idx, cmap); + } + + private static native void nGetColormapColor(ImVec4 dst, int idx); /* + Jni::ImVec4Cpy(env, ImPlot::GetColormapColor(idx), dst); + */ + + private static native float nGetColormapColorX(int idx); /* + return ImPlot::GetColormapColor(idx).x; + */ + + private static native float nGetColormapColorY(int idx); /* + return ImPlot::GetColormapColor(idx).y; + */ + + private static native float nGetColormapColorZ(int idx); /* + return ImPlot::GetColormapColor(idx).z; + */ + + private static native float nGetColormapColorW(int idx); /* + return ImPlot::GetColormapColor(idx).w; + */ + + private static native void nGetColormapColor(ImVec4 dst, int idx, int cmap); /* + Jni::ImVec4Cpy(env, ImPlot::GetColormapColor(idx, cmap), dst); + */ + + private static native float nGetColormapColorX(int idx, int cmap); /* + return ImPlot::GetColormapColor(idx, cmap).x; + */ + + private static native float nGetColormapColorY(int idx, int cmap); /* + return ImPlot::GetColormapColor(idx, cmap).y; + */ + + private static native float nGetColormapColorZ(int idx, int cmap); /* + return ImPlot::GetColormapColor(idx, cmap).z; + */ + + private static native float nGetColormapColorW(int idx, int cmap); /* + return ImPlot::GetColormapColor(idx, cmap).w; + */ + + /** + * Sample a color from a colormap given t between 0 and 1 + */ + public static ImVec4 sampleColormap(final float t) { + final ImVec4 dst = new ImVec4(); + nSampleColormap(dst, t); + return dst; + } + + /** + * Sample a color from a colormap given t between 0 and 1 + */ + public static float sampleColormapX(final float t) { + return nSampleColormapX(t); + } + + /** + * Sample a color from a colormap given t between 0 and 1 + */ + public static float sampleColormapY(final float t) { + return nSampleColormapY(t); + } + + /** + * Sample a color from a colormap given t between 0 and 1 + */ + public static float sampleColormapZ(final float t) { + return nSampleColormapZ(t); + } + + /** + * Sample a color from a colormap given t between 0 and 1 + */ + public static float sampleColormapW(final float t) { + return nSampleColormapW(t); + } + + /** + * Sample a color from a colormap given t between 0 and 1 + */ + public static void sampleColormap(final ImVec4 dst, final float t) { + nSampleColormap(dst, t); + } + + /** + * Sample a color from a colormap given t between 0 and 1 + */ + public static ImVec4 sampleColormap(final float t, final int cmap) { + final ImVec4 dst = new ImVec4(); + nSampleColormap(dst, t, cmap); + return dst; + } + + /** + * Sample a color from a colormap given t between 0 and 1 + */ + public static float sampleColormapX(final float t, final int cmap) { + return nSampleColormapX(t, cmap); + } + + /** + * Sample a color from a colormap given t between 0 and 1 + */ + public static float sampleColormapY(final float t, final int cmap) { + return nSampleColormapY(t, cmap); + } + + /** + * Sample a color from a colormap given t between 0 and 1 + */ + public static float sampleColormapZ(final float t, final int cmap) { + return nSampleColormapZ(t, cmap); + } + + /** + * Sample a color from a colormap given t between 0 and 1 + */ + public static float sampleColormapW(final float t, final int cmap) { + return nSampleColormapW(t, cmap); + } + + /** + * Sample a color from a colormap given t between 0 and 1 + */ + public static void sampleColormap(final ImVec4 dst, final float t, final int cmap) { + nSampleColormap(dst, t, cmap); + } + + private static native void nSampleColormap(ImVec4 dst, float t); /* + Jni::ImVec4Cpy(env, ImPlot::SampleColormap(t), dst); + */ + + private static native float nSampleColormapX(float t); /* + return ImPlot::SampleColormap(t).x; + */ + + private static native float nSampleColormapY(float t); /* + return ImPlot::SampleColormap(t).y; + */ + + private static native float nSampleColormapZ(float t); /* + return ImPlot::SampleColormap(t).z; + */ + + private static native float nSampleColormapW(float t); /* + return ImPlot::SampleColormap(t).w; + */ + + private static native void nSampleColormap(ImVec4 dst, float t, int cmap); /* + Jni::ImVec4Cpy(env, ImPlot::SampleColormap(t, cmap), dst); + */ + + private static native float nSampleColormapX(float t, int cmap); /* + return ImPlot::SampleColormap(t, cmap).x; + */ + + private static native float nSampleColormapY(float t, int cmap); /* + return ImPlot::SampleColormap(t, cmap).y; + */ + + private static native float nSampleColormapZ(float t, int cmap); /* + return ImPlot::SampleColormap(t, cmap).z; + */ + + private static native float nSampleColormapW(float t, int cmap); /* + return ImPlot::SampleColormap(t, cmap).w; + */ + + /** + * Shows a vertical color scale with linear spaced ticks using the specified color map. Use double hashes to hide label (e.g. "##NoLabel"). + */ + public static void colormapScale(final String label, final double scaleMin, final double scaleMax) { + nColormapScale(label, scaleMin, scaleMax); + } + + /** + * Shows a vertical color scale with linear spaced ticks using the specified color map. Use double hashes to hide label (e.g. "##NoLabel"). + */ + public static void colormapScale(final String label, final double scaleMin, final double scaleMax, final ImVec2 size) { + nColormapScale(label, scaleMin, scaleMax, size.x, size.y); + } + + /** + * Shows a vertical color scale with linear spaced ticks using the specified color map. Use double hashes to hide label (e.g. "##NoLabel"). + */ + public static void colormapScale(final String label, final double scaleMin, final double scaleMax, final float sizeX, final float sizeY) { + nColormapScale(label, scaleMin, scaleMax, sizeX, sizeY); + } + + /** + * Shows a vertical color scale with linear spaced ticks using the specified color map. Use double hashes to hide label (e.g. "##NoLabel"). + */ + public static void colormapScale(final String label, final double scaleMin, final double scaleMax, final ImVec2 size, final int cmap) { + nColormapScale(label, scaleMin, scaleMax, size.x, size.y, cmap); + } + + /** + * Shows a vertical color scale with linear spaced ticks using the specified color map. Use double hashes to hide label (e.g. "##NoLabel"). + */ + public static void colormapScale(final String label, final double scaleMin, final double scaleMax, final float sizeX, final float sizeY, final int cmap) { + nColormapScale(label, scaleMin, scaleMax, sizeX, sizeY, cmap); + } + + /** + * Shows a vertical color scale with linear spaced ticks using the specified color map. Use double hashes to hide label (e.g. "##NoLabel"). + */ + public static void colormapScale(final String label, final double scaleMin, final double scaleMax, final ImVec2 size, final int cmap, final String fmt) { + nColormapScale(label, scaleMin, scaleMax, size.x, size.y, cmap, fmt); + } + + /** + * Shows a vertical color scale with linear spaced ticks using the specified color map. Use double hashes to hide label (e.g. "##NoLabel"). + */ + public static void colormapScale(final String label, final double scaleMin, final double scaleMax, final float sizeX, final float sizeY, final int cmap, final String fmt) { + nColormapScale(label, scaleMin, scaleMax, sizeX, sizeY, cmap, fmt); + } + + /** + * Shows a vertical color scale with linear spaced ticks using the specified color map. Use double hashes to hide label (e.g. "##NoLabel"). + */ + public static void colormapScale(final String label, final double scaleMin, final double scaleMax, final int cmap, final String fmt) { + nColormapScale(label, scaleMin, scaleMax, cmap, fmt); + } + + /** + * Shows a vertical color scale with linear spaced ticks using the specified color map. Use double hashes to hide label (e.g. "##NoLabel"). + */ + public static void colormapScale(final String label, final double scaleMin, final double scaleMax, final String fmt) { + nColormapScale(label, scaleMin, scaleMax, fmt); + } + + /** + * Shows a vertical color scale with linear spaced ticks using the specified color map. Use double hashes to hide label (e.g. "##NoLabel"). + */ + public static void colormapScale(final String label, final double scaleMin, final double scaleMax, final ImVec2 size, final String fmt) { + nColormapScale(label, scaleMin, scaleMax, size.x, size.y, fmt); + } + + /** + * Shows a vertical color scale with linear spaced ticks using the specified color map. Use double hashes to hide label (e.g. "##NoLabel"). + */ + public static void colormapScale(final String label, final double scaleMin, final double scaleMax, final float sizeX, final float sizeY, final String fmt) { + nColormapScale(label, scaleMin, scaleMax, sizeX, sizeY, fmt); + } + + private static native void nColormapScale(String label, double scaleMin, double scaleMax); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + ImPlot::ColormapScale(label, scaleMin, scaleMax); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + */ + + private static native void nColormapScale(String label, double scaleMin, double scaleMax, float sizeX, float sizeY); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + ImPlot::ColormapScale(label, scaleMin, scaleMax, size); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + */ + + private static native void nColormapScale(String label, double scaleMin, double scaleMax, float sizeX, float sizeY, int cmap); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + ImPlot::ColormapScale(label, scaleMin, scaleMax, size, cmap); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + */ + + private static native void nColormapScale(String label, double scaleMin, double scaleMax, float sizeX, float sizeY, int cmap, String fmt); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto fmt = obj_fmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_fmt, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + ImPlot::ColormapScale(label, scaleMin, scaleMax, size, cmap, fmt); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (fmt != NULL) env->ReleaseStringUTFChars(obj_fmt, fmt); + */ + + private static native void nColormapScale(String label, double scaleMin, double scaleMax, int cmap, String fmt); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto fmt = obj_fmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_fmt, JNI_FALSE); + ImPlot::ColormapScale(label, scaleMin, scaleMax, ImVec2(0,0), cmap, fmt); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (fmt != NULL) env->ReleaseStringUTFChars(obj_fmt, fmt); + */ + + private static native void nColormapScale(String label, double scaleMin, double scaleMax, String fmt); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto fmt = obj_fmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_fmt, JNI_FALSE); + ImPlot::ColormapScale(label, scaleMin, scaleMax, ImVec2(0,0), IMPLOT_AUTO, fmt); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (fmt != NULL) env->ReleaseStringUTFChars(obj_fmt, fmt); + */ + + private static native void nColormapScale(String label, double scaleMin, double scaleMax, float sizeX, float sizeY, String fmt); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto fmt = obj_fmt == NULL ? NULL : (char*)env->GetStringUTFChars(obj_fmt, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + ImPlot::ColormapScale(label, scaleMin, scaleMax, size, IMPLOT_AUTO, fmt); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (fmt != NULL) env->ReleaseStringUTFChars(obj_fmt, fmt); + */ + + /** + * Shows a horizontal slider with a colormap gradient background. + * TODO: support our argument + */ + public static boolean colormapSlider(final String label, final ImFloat t) { + return nColormapSlider(label, t != null ? t.getData() : null); + } + + /** + * Shows a horizontal slider with a colormap gradient background. + * TODO: support our argument + */ + public static boolean colormapSlider(final String label, final ImFloat t, final String format) { + return nColormapSlider(label, t != null ? t.getData() : null, format); + } + + /** + * Shows a horizontal slider with a colormap gradient background. + * TODO: support our argument + */ + public static boolean colormapSlider(final String label, final ImFloat t, final String format, final int cmap) { + return nColormapSlider(label, t != null ? t.getData() : null, format, cmap); + } + + /** + * Shows a horizontal slider with a colormap gradient background. + * TODO: support our argument + */ + public static boolean colormapSlider(final String label, final ImFloat t, final int cmap) { + return nColormapSlider(label, t != null ? t.getData() : null, cmap); + } + + private static native boolean nColormapSlider(String obj_label, float[] obj_t); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto t = obj_t == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_t, JNI_FALSE); + auto _result = ImPlot::ColormapSlider(label, (t != NULL ? &t[0] : NULL), NULL); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (t != NULL) env->ReleasePrimitiveArrayCritical(obj_t, t, JNI_FALSE); + return _result; + */ + + private static native boolean nColormapSlider(String obj_label, float[] obj_t, String obj_format); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto t = obj_t == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_t, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImPlot::ColormapSlider(label, (t != NULL ? &t[0] : NULL), NULL, format); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (t != NULL) env->ReleasePrimitiveArrayCritical(obj_t, t, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nColormapSlider(String obj_label, float[] obj_t, String obj_format, int cmap); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto t = obj_t == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_t, JNI_FALSE); + auto format = obj_format == NULL ? NULL : (char*)env->GetStringUTFChars(obj_format, JNI_FALSE); + auto _result = ImPlot::ColormapSlider(label, (t != NULL ? &t[0] : NULL), NULL, format, cmap); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (t != NULL) env->ReleasePrimitiveArrayCritical(obj_t, t, JNI_FALSE); + if (format != NULL) env->ReleaseStringUTFChars(obj_format, format); + return _result; + */ + + private static native boolean nColormapSlider(String obj_label, float[] obj_t, int cmap); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto t = obj_t == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_t, JNI_FALSE); + auto _result = ImPlot::ColormapSlider(label, (t != NULL ? &t[0] : NULL), NULL, "", cmap); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + if (t != NULL) env->ReleasePrimitiveArrayCritical(obj_t, t, JNI_FALSE); + return _result; + */ + + /** + * Shows a button with a colormap gradient brackground. + */ + public static boolean colormapButton(final String label) { + return nColormapButton(label); + } + + /** + * Shows a button with a colormap gradient brackground. + */ + public static boolean colormapButton(final String label, final ImVec2 size) { + return nColormapButton(label, size.x, size.y); + } + + /** + * Shows a button with a colormap gradient brackground. + */ + public static boolean colormapButton(final String label, final float sizeX, final float sizeY) { + return nColormapButton(label, sizeX, sizeY); + } + + /** + * Shows a button with a colormap gradient brackground. + */ + public static boolean colormapButton(final String label, final ImVec2 size, final int cmap) { + return nColormapButton(label, size.x, size.y, cmap); + } + + /** + * Shows a button with a colormap gradient brackground. + */ + public static boolean colormapButton(final String label, final float sizeX, final float sizeY, final int cmap) { + return nColormapButton(label, sizeX, sizeY, cmap); + } + + /** + * Shows a button with a colormap gradient brackground. + */ + public static boolean colormapButton(final String label, final int cmap) { + return nColormapButton(label, cmap); + } + + private static native boolean nColormapButton(String obj_label); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImPlot::ColormapButton(label); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + private static native boolean nColormapButton(String obj_label, float sizeX, float sizeY); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImPlot::ColormapButton(label, size); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + private static native boolean nColormapButton(String obj_label, float sizeX, float sizeY, int cmap); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImPlot::ColormapButton(label, size, cmap); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + private static native boolean nColormapButton(String obj_label, int cmap); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImPlot::ColormapButton(label, ImVec2(0,0), cmap); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + /** + * When items in a plot sample their color from a colormap, the color is cached and does not change + * unless explicitly overriden. Therefore, if you change the colormap after the item has already been plotted, + * item colors will NOT update. If you need item colors to resample the new colormap, then use this + * function to bust the cached colors. If #plot_title_id is NULL, then every item in EVERY existing plot + * will be cache busted. Otherwise only the plot specified by #plot_title_id will be busted. For the + * latter, this function must be called in the same ImGui ID scope that the plot is in. You should rarely if ever + * need this function, but it is available for applications that require runtime colormap swaps (e.g. Heatmaps demo). + */ + public static void bustColorCache() { + nBustColorCache(); + } + + /** + * When items in a plot sample their color from a colormap, the color is cached and does not change + * unless explicitly overriden. Therefore, if you change the colormap after the item has already been plotted, + * item colors will NOT update. If you need item colors to resample the new colormap, then use this + * function to bust the cached colors. If #plot_title_id is NULL, then every item in EVERY existing plot + * will be cache busted. Otherwise only the plot specified by #plot_title_id will be busted. For the + * latter, this function must be called in the same ImGui ID scope that the plot is in. You should rarely if ever + * need this function, but it is available for applications that require runtime colormap swaps (e.g. Heatmaps demo). + */ + public static void bustColorCache(final String plotTitleId) { + nBustColorCache(plotTitleId); + } + + private static native void nBustColorCache(); /* + ImPlot::BustColorCache(); + */ + + private static native void nBustColorCache(String plotTitleId); /*MANUAL + auto plotTitleId = obj_plotTitleId == NULL ? NULL : (char*)env->GetStringUTFChars(obj_plotTitleId, JNI_FALSE); + ImPlot::BustColorCache(plotTitleId); + if (plotTitleId != NULL) env->ReleaseStringUTFChars(obj_plotTitleId, plotTitleId); + */ + + //----------------------------------------------------------------------------- + // Miscellaneous + //----------------------------------------------------------------------------- + + // Render icons similar to those that appear in legends (nifty for data lists). + + public static void itemIcon(final ImVec4 col) { + nItemIcon(col.x, col.y, col.z, col.w); + } + + public static void itemIcon(final float colX, final float colY, final float colZ, final float colW) { + nItemIcon(colX, colY, colZ, colW); + } + + private static native void nItemIcon(float colX, float colY, float colZ, float colW); /*MANUAL + ImVec4 col = ImVec4(colX, colY, colZ, colW); + ImPlot::ItemIcon(col); + */ + + public static void itemIcon(final int col) { + nItemIcon(col); + } + + private static native void nItemIcon(int col); /* + ImPlot::ItemIcon(static_cast(col)); + */ + + public static void colormapIcon(final int cmap) { + nColormapIcon(cmap); + } + + private static native void nColormapIcon(int cmap); /* + ImPlot::ColormapIcon(cmap); + */ + + /** + * Get the plot draw list for custom rendering to the current plot area. Call between Begin/EndPlot. + */ + public static ImDrawList getPlotDrawList() { + return new ImDrawList(nGetPlotDrawList()); + } + + private static native long nGetPlotDrawList(); /* + return (intptr_t)ImPlot::GetPlotDrawList(); + */ + + /** + * Push clip rect for rendering to current plot area. The rect can be expanded or contracted by #expand pixels. Call between Begin/EndPlot. + */ + public static void pushPlotClipRect() { + nPushPlotClipRect(); + } + + /** + * Push clip rect for rendering to current plot area. The rect can be expanded or contracted by #expand pixels. Call between Begin/EndPlot. + */ + public static void pushPlotClipRect(final float expand) { + nPushPlotClipRect(expand); + } + + private static native void nPushPlotClipRect(); /* + ImPlot::PushPlotClipRect(); + */ + + private static native void nPushPlotClipRect(float expand); /* + ImPlot::PushPlotClipRect(expand); + */ + + /** + * Pop plot clip rect. Call between Begin/EndPlot. + */ + public static void popPlotClipRect() { + nPopPlotClipRect(); + } + + private static native void nPopPlotClipRect(); /* + ImPlot::PopPlotClipRect(); + */ + + /** + * Shows ImPlot style selector dropdown menu. + */ + public static boolean showStyleSelector(final String label) { + return nShowStyleSelector(label); + } + + private static native boolean nShowStyleSelector(String obj_label); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImPlot::ShowStyleSelector(label); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + /** + * Shows ImPlot colormap selector dropdown menu. + */ + public static boolean showColormapSelector(final String label) { + return nShowColormapSelector(label); + } + + private static native boolean nShowColormapSelector(String obj_label); /*MANUAL + auto label = obj_label == NULL ? NULL : (char*)env->GetStringUTFChars(obj_label, JNI_FALSE); + auto _result = ImPlot::ShowColormapSelector(label); + if (label != NULL) env->ReleaseStringUTFChars(obj_label, label); + return _result; + */ + + /** + * Shows ImPlot style editor block (not a window). + */ + public static void showStyleEditor() { + nShowStyleEditor(); + } + + /** + * Shows ImPlot style editor block (not a window). + */ + public static void showStyleEditor(final ImPlotStyle ref) { + nShowStyleEditor(ref.ptr); + } + + private static native void nShowStyleEditor(); /* + ImPlot::ShowStyleEditor(); + */ + + private static native void nShowStyleEditor(long ref); /* + ImPlot::ShowStyleEditor(reinterpret_cast(ref)); + */ + + /** + * Add basic help/info block for end users (not a window). + */ + public static void showUserGuide() { + nShowUserGuide(); + } + + private static native void nShowUserGuide(); /* + ImPlot::ShowUserGuide(); + */ + + /** + * Shows ImPlot metrics/debug information window. + */ + public static void showMetricsWindow() { + nShowMetricsWindow(); + } + + /** + * Shows ImPlot metrics/debug information window. + */ + public static void showMetricsWindow(final ImBoolean pOpen) { + nShowMetricsWindow(pOpen != null ? pOpen.getData() : null); + } + + private static native void nShowMetricsWindow(); /* + ImPlot::ShowMetricsWindow(); + */ + + private static native void nShowMetricsWindow(boolean[] pOpen); /*MANUAL + auto pOpen = obj_pOpen == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_pOpen, JNI_FALSE); + ImPlot::ShowMetricsWindow((pOpen != NULL ? &pOpen[0] : NULL)); + if (pOpen != NULL) env->ReleasePrimitiveArrayCritical(obj_pOpen, pOpen, JNI_FALSE); + */ + + //----------------------------------------------------------------------------- + // Demo + //----------------------------------------------------------------------------- + + /** + * Shows the ImPlot demo window. + */ + public static void showDemoWindow() { + nShowDemoWindow(); + } + + /** + * Shows the ImPlot demo window. + */ + public static void showDemoWindow(final ImBoolean pOpen) { + nShowDemoWindow(pOpen != null ? pOpen.getData() : null); + } + + private static native void nShowDemoWindow(); /* + ImPlot::ShowDemoWindow(); + */ + + private static native void nShowDemoWindow(boolean[] pOpen); /*MANUAL + auto pOpen = obj_pOpen == NULL ? NULL : (bool*)env->GetPrimitiveArrayCritical(obj_pOpen, JNI_FALSE); + ImPlot::ShowDemoWindow((pOpen != NULL ? &pOpen[0] : NULL)); + if (pOpen != NULL) env->ReleasePrimitiveArrayCritical(obj_pOpen, pOpen, JNI_FALSE); + */ +} diff --git a/imgui-binding/src/generated/java/imgui/extension/implot/ImPlotContext.java b/imgui-binding/src/generated/java/imgui/extension/implot/ImPlotContext.java new file mode 100644 index 0000000..f33be96 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/implot/ImPlotContext.java @@ -0,0 +1,9 @@ +package imgui.extension.implot; + +import imgui.binding.ImGuiStruct; + +public final class ImPlotContext extends ImGuiStruct { + public ImPlotContext(final long ptr) { + super(ptr); + } +} diff --git a/imgui-binding/src/generated/java/imgui/extension/implot/ImPlotLimits.java b/imgui-binding/src/generated/java/imgui/extension/implot/ImPlotLimits.java new file mode 100644 index 0000000..0928e3c --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/implot/ImPlotLimits.java @@ -0,0 +1,93 @@ +package imgui.extension.implot; + +import imgui.ImVec2; + +import java.util.Objects; + +public final class ImPlotLimits implements Cloneable { + public final ImPlotRange x = new ImPlotRange(); + public final ImPlotRange y = new ImPlotRange(); + + public ImPlotLimits() { + } + + public ImPlotLimits(final double xMin, final double yMin, final double xMax, final double yMax) { + set(xMin, yMin, xMax, yMax); + } + + public ImPlotLimits(final ImVec2 min, final ImVec2 max) { + set(min, max); + } + + public ImPlotLimits(final ImPlotLimits value) { + set(value); + } + + public boolean contains(final double x, final double y) { + return this.x.contains(x) && this.y.contains(y); + } + + public boolean contains(final ImPlotPoint value) { + return contains(value.x, value.y); + } + + public ImPlotPoint min() { + return new ImPlotPoint(x.min, y.min); + } + + public ImPlotPoint max() { + return new ImPlotPoint(x.max, y.max); + } + + public void set(final double xMin, final double yMin, final double xMax, final double yMax) { + this.x.min = xMin; + this.x.max = xMax; + this.y.min = yMin; + this.y.max = yMax; + } + + public void set(final ImVec2 min, final ImVec2 max) { + set(min.x, min.y, max.x, max.y); + } + + public void set(final ImPlotRange x, final ImPlotRange y) { + set(x.min, y.min, x.max, y.max); + } + + public void set(final ImPlotLimits value) { + set(value.x, value.y); + } + + @Override + public String toString() { + return "ImPlotLimits{" + + "x=" + x + + ", y=" + y + + '}'; + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + + if (o == null || getClass() != o.getClass()) { + return false; + } + + final ImPlotLimits imPlotLimits = (ImPlotLimits) o; + return Objects.equals(x, imPlotLimits.x) && Objects.equals(y, imPlotLimits.y); + } + + @Override + public int hashCode() { + return Objects.hash(x, y); + } + + @Override + @SuppressWarnings("MethodDoesntCallSuperMethod") + public ImPlotLimits clone() { + return new ImPlotLimits(this); + } +} diff --git a/imgui-binding/src/generated/java/imgui/extension/implot/ImPlotPoint.java b/imgui-binding/src/generated/java/imgui/extension/implot/ImPlotPoint.java new file mode 100644 index 0000000..1809962 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/implot/ImPlotPoint.java @@ -0,0 +1,100 @@ +package imgui.extension.implot; + +import imgui.ImVec2; + +import java.util.Objects; + +public final class ImPlotPoint implements Cloneable { + public double x; + public double y; + + public ImPlotPoint() { + } + + public ImPlotPoint(final double x, final double y) { + set(x, y); + } + + public ImPlotPoint(final ImVec2 value) { + set(value.x, value.y); + } + + public ImPlotPoint(final ImPlotPoint value) { + set(value.x, value.y); + } + + public ImPlotPoint set(final double x, final double y) { + this.x = x; + this.y = y; + return this; + } + + public ImPlotPoint set(final ImPlotPoint value) { + return set(value.x, value.y); + } + + public ImPlotPoint set(final ImVec2 value) { + return set(value.x, value.y); + } + + public ImPlotPoint plus(final double x, final double y) { + this.x += x; + this.y += y; + return this; + } + + public ImPlotPoint plus(final ImPlotPoint value) { + return plus(value.x, value.y); + } + + public ImPlotPoint minus(final double x, final double y) { + this.x -= x; + this.y -= y; + return this; + } + + public ImPlotPoint minus(final ImPlotPoint value) { + return minus(value.x, value.y); + } + + public ImPlotPoint times(final double x, final double y) { + this.x *= x; + this.y *= y; + return this; + } + + public ImPlotPoint times(final ImPlotPoint value) { + return times(value.x, value.y); + } + + @Override + public String toString() { + return "ImPlotPoint{" + + "x=" + x + + ", y=" + y + + '}'; + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final ImPlotPoint imPlotPoint = (ImPlotPoint) o; + return Double.compare(imPlotPoint.x, x) == 0 && Double.compare(imPlotPoint.y, y) == 0; + } + + @Override + public int hashCode() { + return Objects.hash(x, y); + } + + @Override + @SuppressWarnings("MethodDoesntCallSuperMethod") + public ImPlotPoint clone() { + return new ImPlotPoint(this); + } +} diff --git a/imgui-binding/src/generated/java/imgui/extension/implot/ImPlotRange.java b/imgui-binding/src/generated/java/imgui/extension/implot/ImPlotRange.java new file mode 100644 index 0000000..cf6ee50 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/implot/ImPlotRange.java @@ -0,0 +1,98 @@ +package imgui.extension.implot; + +import java.util.Objects; + +public final class ImPlotRange implements Cloneable { + public double min; + public double max; + + public ImPlotRange() { + } + + public ImPlotRange(final double min, final double max) { + set(min, max); + } + + public ImPlotRange(final ImPlotRange value) { + set(value.min, value.max); + } + + public boolean contains(final double value) { + return value >= min && value <= max; + } + + public double size() { + return max - min; + } + + public ImPlotRange set(final double min, final double max) { + this.min = min; + this.max = max; + return this; + } + + public ImPlotRange set(final ImPlotRange value) { + return set(value.min, value.max); + } + + public ImPlotRange plus(final double min, final double max) { + this.min += min; + this.max += max; + return this; + } + + public ImPlotRange plus(final ImPlotRange value) { + return plus(value.min, value.max); + } + + public ImPlotRange minus(final double min, final double max) { + this.min -= min; + this.max -= max; + return this; + } + + public ImPlotRange minus(final ImPlotRange value) { + return minus(value.min, value.max); + } + + public ImPlotRange times(final double min, final double max) { + this.min *= min; + this.max *= max; + return this; + } + + public ImPlotRange times(final ImPlotRange value) { + return times(value.min, value.max); + } + + @Override + public String toString() { + return "ImPlotRange{" + + "min=" + min + + ", max=" + max + + '}'; + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final ImPlotRange ImPlotRange = (ImPlotRange) o; + return Double.compare(ImPlotRange.min, min) == 0 && Double.compare(ImPlotRange.max, max) == 0; + } + + @Override + public int hashCode() { + return Objects.hash(min, max); + } + + @Override + @SuppressWarnings("MethodDoesntCallSuperMethod") + public ImPlotRange clone() { + return new ImPlotRange(this); + } +} diff --git a/imgui-binding/src/generated/java/imgui/extension/implot/ImPlotStyle.java b/imgui-binding/src/generated/java/imgui/extension/implot/ImPlotStyle.java new file mode 100644 index 0000000..8da2d18 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/implot/ImPlotStyle.java @@ -0,0 +1,992 @@ +package imgui.extension.implot; + +import imgui.ImVec2; +import imgui.ImVec4; +import imgui.binding.ImGuiStructDestroyable; + +public final class ImPlotStyle extends ImGuiStructDestroyable { + public ImPlotStyle() { + } + + public ImPlotStyle(final long ptr) { + super(ptr); + } + + @Override + protected long create() { + return nCreate(); + } + + /*JNI + #include "_implot.h" + #define THIS ((ImPlotStyle*)STRUCT_PTR) + */ + + private native long nCreate(); /* + return (intptr_t)(new ImPlotStyle()); + */ + + public float getLineWeight() { + return nGetLineWeight(); + } + + public void setLineWeight(final float value) { + nSetLineWeight(value); + } + + private native float nGetLineWeight(); /* + return THIS->LineWeight; + */ + + private native void nSetLineWeight(float value); /* + THIS->LineWeight = value; + */ + + public int getMarker() { + return nGetMarker(); + } + + public void setMarker(final int value) { + nSetMarker(value); + } + + private native int nGetMarker(); /* + return THIS->Marker; + */ + + private native void nSetMarker(int value); /* + THIS->Marker = value; + */ + + public float getMarkerSize() { + return nGetMarkerSize(); + } + + public void setMarkerSize(final float value) { + nSetMarkerSize(value); + } + + private native float nGetMarkerSize(); /* + return THIS->MarkerSize; + */ + + private native void nSetMarkerSize(float value); /* + THIS->MarkerSize = value; + */ + + public float getMarkerWeight() { + return nGetMarkerWeight(); + } + + public void setMarkerWeight(final float value) { + nSetMarkerWeight(value); + } + + private native float nGetMarkerWeight(); /* + return THIS->MarkerWeight; + */ + + private native void nSetMarkerWeight(float value); /* + THIS->MarkerWeight = value; + */ + + public float getFillAlpha() { + return nGetFillAlpha(); + } + + public void setFillAlpha(final float value) { + nSetFillAlpha(value); + } + + private native float nGetFillAlpha(); /* + return THIS->FillAlpha; + */ + + private native void nSetFillAlpha(float value); /* + THIS->FillAlpha = value; + */ + + public float getErrorBarSize() { + return nGetErrorBarSize(); + } + + public void setErrorBarSize(final float value) { + nSetErrorBarSize(value); + } + + private native float nGetErrorBarSize(); /* + return THIS->ErrorBarSize; + */ + + private native void nSetErrorBarSize(float value); /* + THIS->ErrorBarSize = value; + */ + + public float getErrorBarWeight() { + return nGetErrorBarWeight(); + } + + public void setErrorBarWeight(final float value) { + nSetErrorBarWeight(value); + } + + private native float nGetErrorBarWeight(); /* + return THIS->ErrorBarWeight; + */ + + private native void nSetErrorBarWeight(float value); /* + THIS->ErrorBarWeight = value; + */ + + public float getDigitalBitHeight() { + return nGetDigitalBitHeight(); + } + + public void setDigitalBitHeight(final float value) { + nSetDigitalBitHeight(value); + } + + private native float nGetDigitalBitHeight(); /* + return THIS->DigitalBitHeight; + */ + + private native void nSetDigitalBitHeight(float value); /* + THIS->DigitalBitHeight = value; + */ + + public float getDigitalBitGap() { + return nGetDigitalBitGap(); + } + + public void setDigitalBitGap(final float value) { + nSetDigitalBitGap(value); + } + + private native float nGetDigitalBitGap(); /* + return THIS->DigitalBitGap; + */ + + private native void nSetDigitalBitGap(float value); /* + THIS->DigitalBitGap = value; + */ + + public float getPlotBorderSize() { + return nGetPlotBorderSize(); + } + + public void setPlotBorderSize(final float value) { + nSetPlotBorderSize(value); + } + + private native float nGetPlotBorderSize(); /* + return THIS->PlotBorderSize; + */ + + private native void nSetPlotBorderSize(float value); /* + THIS->PlotBorderSize = value; + */ + + public float getMinorAlpha() { + return nGetMinorAlpha(); + } + + public void setMinorAlpha(final float value) { + nSetMinorAlpha(value); + } + + private native float nGetMinorAlpha(); /* + return THIS->MinorAlpha; + */ + + private native void nSetMinorAlpha(float value); /* + THIS->MinorAlpha = value; + */ + + public ImVec2 getMajorTickLen() { + final ImVec2 dst = new ImVec2(); + nGetMajorTickLen(dst); + return dst; + } + + public float getMajorTickLenX() { + return nGetMajorTickLenX(); + } + + public float getMajorTickLenY() { + return nGetMajorTickLenY(); + } + + public void getMajorTickLen(final ImVec2 dst) { + nGetMajorTickLen(dst); + } + + public void setMajorTickLen(final ImVec2 value) { + nSetMajorTickLen(value.x, value.y); + } + + public void setMajorTickLen(final float valueX, final float valueY) { + nSetMajorTickLen(valueX, valueY); + } + + private native void nGetMajorTickLen(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->MajorTickLen, dst); + */ + + private native float nGetMajorTickLenX(); /* + return THIS->MajorTickLen.x; + */ + + private native float nGetMajorTickLenY(); /* + return THIS->MajorTickLen.y; + */ + + private native void nSetMajorTickLen(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->MajorTickLen = value; + */ + + public ImVec2 getMinorTickLen() { + final ImVec2 dst = new ImVec2(); + nGetMinorTickLen(dst); + return dst; + } + + public float getMinorTickLenX() { + return nGetMinorTickLenX(); + } + + public float getMinorTickLenY() { + return nGetMinorTickLenY(); + } + + public void getMinorTickLen(final ImVec2 dst) { + nGetMinorTickLen(dst); + } + + public void setMinorTickLen(final ImVec2 value) { + nSetMinorTickLen(value.x, value.y); + } + + public void setMinorTickLen(final float valueX, final float valueY) { + nSetMinorTickLen(valueX, valueY); + } + + private native void nGetMinorTickLen(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->MinorTickLen, dst); + */ + + private native float nGetMinorTickLenX(); /* + return THIS->MinorTickLen.x; + */ + + private native float nGetMinorTickLenY(); /* + return THIS->MinorTickLen.y; + */ + + private native void nSetMinorTickLen(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->MinorTickLen = value; + */ + + public ImVec2 getMajorTickSize() { + final ImVec2 dst = new ImVec2(); + nGetMajorTickSize(dst); + return dst; + } + + public float getMajorTickSizeX() { + return nGetMajorTickSizeX(); + } + + public float getMajorTickSizeY() { + return nGetMajorTickSizeY(); + } + + public void getMajorTickSize(final ImVec2 dst) { + nGetMajorTickSize(dst); + } + + public void setMajorTickSize(final ImVec2 value) { + nSetMajorTickSize(value.x, value.y); + } + + public void setMajorTickSize(final float valueX, final float valueY) { + nSetMajorTickSize(valueX, valueY); + } + + private native void nGetMajorTickSize(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->MajorTickSize, dst); + */ + + private native float nGetMajorTickSizeX(); /* + return THIS->MajorTickSize.x; + */ + + private native float nGetMajorTickSizeY(); /* + return THIS->MajorTickSize.y; + */ + + private native void nSetMajorTickSize(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->MajorTickSize = value; + */ + + public ImVec2 getMinorTickSize() { + final ImVec2 dst = new ImVec2(); + nGetMinorTickSize(dst); + return dst; + } + + public float getMinorTickSizeX() { + return nGetMinorTickSizeX(); + } + + public float getMinorTickSizeY() { + return nGetMinorTickSizeY(); + } + + public void getMinorTickSize(final ImVec2 dst) { + nGetMinorTickSize(dst); + } + + public void setMinorTickSize(final ImVec2 value) { + nSetMinorTickSize(value.x, value.y); + } + + public void setMinorTickSize(final float valueX, final float valueY) { + nSetMinorTickSize(valueX, valueY); + } + + private native void nGetMinorTickSize(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->MinorTickSize, dst); + */ + + private native float nGetMinorTickSizeX(); /* + return THIS->MinorTickSize.x; + */ + + private native float nGetMinorTickSizeY(); /* + return THIS->MinorTickSize.y; + */ + + private native void nSetMinorTickSize(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->MinorTickSize = value; + */ + + public ImVec2 getMajorGridSize() { + final ImVec2 dst = new ImVec2(); + nGetMajorGridSize(dst); + return dst; + } + + public float getMajorGridSizeX() { + return nGetMajorGridSizeX(); + } + + public float getMajorGridSizeY() { + return nGetMajorGridSizeY(); + } + + public void getMajorGridSize(final ImVec2 dst) { + nGetMajorGridSize(dst); + } + + public void setMajorGridSize(final ImVec2 value) { + nSetMajorGridSize(value.x, value.y); + } + + public void setMajorGridSize(final float valueX, final float valueY) { + nSetMajorGridSize(valueX, valueY); + } + + private native void nGetMajorGridSize(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->MajorGridSize, dst); + */ + + private native float nGetMajorGridSizeX(); /* + return THIS->MajorGridSize.x; + */ + + private native float nGetMajorGridSizeY(); /* + return THIS->MajorGridSize.y; + */ + + private native void nSetMajorGridSize(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->MajorGridSize = value; + */ + + public ImVec2 getMinorGridSize() { + final ImVec2 dst = new ImVec2(); + nGetMinorGridSize(dst); + return dst; + } + + public float getMinorGridSizeX() { + return nGetMinorGridSizeX(); + } + + public float getMinorGridSizeY() { + return nGetMinorGridSizeY(); + } + + public void getMinorGridSize(final ImVec2 dst) { + nGetMinorGridSize(dst); + } + + public void setMinorGridSize(final ImVec2 value) { + nSetMinorGridSize(value.x, value.y); + } + + public void setMinorGridSize(final float valueX, final float valueY) { + nSetMinorGridSize(valueX, valueY); + } + + private native void nGetMinorGridSize(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->MinorGridSize, dst); + */ + + private native float nGetMinorGridSizeX(); /* + return THIS->MinorGridSize.x; + */ + + private native float nGetMinorGridSizeY(); /* + return THIS->MinorGridSize.y; + */ + + private native void nSetMinorGridSize(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->MinorGridSize = value; + */ + + public ImVec2 getPlotPadding() { + final ImVec2 dst = new ImVec2(); + nGetPlotPadding(dst); + return dst; + } + + public float getPlotPaddingX() { + return nGetPlotPaddingX(); + } + + public float getPlotPaddingY() { + return nGetPlotPaddingY(); + } + + public void getPlotPadding(final ImVec2 dst) { + nGetPlotPadding(dst); + } + + public void setPlotPadding(final ImVec2 value) { + nSetPlotPadding(value.x, value.y); + } + + public void setPlotPadding(final float valueX, final float valueY) { + nSetPlotPadding(valueX, valueY); + } + + private native void nGetPlotPadding(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->PlotPadding, dst); + */ + + private native float nGetPlotPaddingX(); /* + return THIS->PlotPadding.x; + */ + + private native float nGetPlotPaddingY(); /* + return THIS->PlotPadding.y; + */ + + private native void nSetPlotPadding(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->PlotPadding = value; + */ + + public ImVec2 getLabelPadding() { + final ImVec2 dst = new ImVec2(); + nGetLabelPadding(dst); + return dst; + } + + public float getLabelPaddingX() { + return nGetLabelPaddingX(); + } + + public float getLabelPaddingY() { + return nGetLabelPaddingY(); + } + + public void getLabelPadding(final ImVec2 dst) { + nGetLabelPadding(dst); + } + + public void setLabelPadding(final ImVec2 value) { + nSetLabelPadding(value.x, value.y); + } + + public void setLabelPadding(final float valueX, final float valueY) { + nSetLabelPadding(valueX, valueY); + } + + private native void nGetLabelPadding(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->LabelPadding, dst); + */ + + private native float nGetLabelPaddingX(); /* + return THIS->LabelPadding.x; + */ + + private native float nGetLabelPaddingY(); /* + return THIS->LabelPadding.y; + */ + + private native void nSetLabelPadding(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->LabelPadding = value; + */ + + public ImVec2 getLegendPadding() { + final ImVec2 dst = new ImVec2(); + nGetLegendPadding(dst); + return dst; + } + + public float getLegendPaddingX() { + return nGetLegendPaddingX(); + } + + public float getLegendPaddingY() { + return nGetLegendPaddingY(); + } + + public void getLegendPadding(final ImVec2 dst) { + nGetLegendPadding(dst); + } + + public void setLegendPadding(final ImVec2 value) { + nSetLegendPadding(value.x, value.y); + } + + public void setLegendPadding(final float valueX, final float valueY) { + nSetLegendPadding(valueX, valueY); + } + + private native void nGetLegendPadding(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->LegendPadding, dst); + */ + + private native float nGetLegendPaddingX(); /* + return THIS->LegendPadding.x; + */ + + private native float nGetLegendPaddingY(); /* + return THIS->LegendPadding.y; + */ + + private native void nSetLegendPadding(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->LegendPadding = value; + */ + + public ImVec2 getLegendInnerPadding() { + final ImVec2 dst = new ImVec2(); + nGetLegendInnerPadding(dst); + return dst; + } + + public float getLegendInnerPaddingX() { + return nGetLegendInnerPaddingX(); + } + + public float getLegendInnerPaddingY() { + return nGetLegendInnerPaddingY(); + } + + public void getLegendInnerPadding(final ImVec2 dst) { + nGetLegendInnerPadding(dst); + } + + public void setLegendInnerPadding(final ImVec2 value) { + nSetLegendInnerPadding(value.x, value.y); + } + + public void setLegendInnerPadding(final float valueX, final float valueY) { + nSetLegendInnerPadding(valueX, valueY); + } + + private native void nGetLegendInnerPadding(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->LegendInnerPadding, dst); + */ + + private native float nGetLegendInnerPaddingX(); /* + return THIS->LegendInnerPadding.x; + */ + + private native float nGetLegendInnerPaddingY(); /* + return THIS->LegendInnerPadding.y; + */ + + private native void nSetLegendInnerPadding(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->LegendInnerPadding = value; + */ + + public ImVec2 getLegendSpacing() { + final ImVec2 dst = new ImVec2(); + nGetLegendSpacing(dst); + return dst; + } + + public float getLegendSpacingX() { + return nGetLegendSpacingX(); + } + + public float getLegendSpacingY() { + return nGetLegendSpacingY(); + } + + public void getLegendSpacing(final ImVec2 dst) { + nGetLegendSpacing(dst); + } + + public void setLegendSpacing(final ImVec2 value) { + nSetLegendSpacing(value.x, value.y); + } + + public void setLegendSpacing(final float valueX, final float valueY) { + nSetLegendSpacing(valueX, valueY); + } + + private native void nGetLegendSpacing(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->LegendSpacing, dst); + */ + + private native float nGetLegendSpacingX(); /* + return THIS->LegendSpacing.x; + */ + + private native float nGetLegendSpacingY(); /* + return THIS->LegendSpacing.y; + */ + + private native void nSetLegendSpacing(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->LegendSpacing = value; + */ + + public ImVec2 getMousePosPadding() { + final ImVec2 dst = new ImVec2(); + nGetMousePosPadding(dst); + return dst; + } + + public float getMousePosPaddingX() { + return nGetMousePosPaddingX(); + } + + public float getMousePosPaddingY() { + return nGetMousePosPaddingY(); + } + + public void getMousePosPadding(final ImVec2 dst) { + nGetMousePosPadding(dst); + } + + public void setMousePosPadding(final ImVec2 value) { + nSetMousePosPadding(value.x, value.y); + } + + public void setMousePosPadding(final float valueX, final float valueY) { + nSetMousePosPadding(valueX, valueY); + } + + private native void nGetMousePosPadding(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->MousePosPadding, dst); + */ + + private native float nGetMousePosPaddingX(); /* + return THIS->MousePosPadding.x; + */ + + private native float nGetMousePosPaddingY(); /* + return THIS->MousePosPadding.y; + */ + + private native void nSetMousePosPadding(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->MousePosPadding = value; + */ + + public ImVec2 getAnnotationPadding() { + final ImVec2 dst = new ImVec2(); + nGetAnnotationPadding(dst); + return dst; + } + + public float getAnnotationPaddingX() { + return nGetAnnotationPaddingX(); + } + + public float getAnnotationPaddingY() { + return nGetAnnotationPaddingY(); + } + + public void getAnnotationPadding(final ImVec2 dst) { + nGetAnnotationPadding(dst); + } + + public void setAnnotationPadding(final ImVec2 value) { + nSetAnnotationPadding(value.x, value.y); + } + + public void setAnnotationPadding(final float valueX, final float valueY) { + nSetAnnotationPadding(valueX, valueY); + } + + private native void nGetAnnotationPadding(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->AnnotationPadding, dst); + */ + + private native float nGetAnnotationPaddingX(); /* + return THIS->AnnotationPadding.x; + */ + + private native float nGetAnnotationPaddingY(); /* + return THIS->AnnotationPadding.y; + */ + + private native void nSetAnnotationPadding(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->AnnotationPadding = value; + */ + + public ImVec2 getFitPadding() { + final ImVec2 dst = new ImVec2(); + nGetFitPadding(dst); + return dst; + } + + public float getFitPaddingX() { + return nGetFitPaddingX(); + } + + public float getFitPaddingY() { + return nGetFitPaddingY(); + } + + public void getFitPadding(final ImVec2 dst) { + nGetFitPadding(dst); + } + + public void setFitPadding(final ImVec2 value) { + nSetFitPadding(value.x, value.y); + } + + public void setFitPadding(final float valueX, final float valueY) { + nSetFitPadding(valueX, valueY); + } + + private native void nGetFitPadding(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->FitPadding, dst); + */ + + private native float nGetFitPaddingX(); /* + return THIS->FitPadding.x; + */ + + private native float nGetFitPaddingY(); /* + return THIS->FitPadding.y; + */ + + private native void nSetFitPadding(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->FitPadding = value; + */ + + public ImVec2 getPlotDefaultSize() { + final ImVec2 dst = new ImVec2(); + nGetPlotDefaultSize(dst); + return dst; + } + + public float getPlotDefaultSizeX() { + return nGetPlotDefaultSizeX(); + } + + public float getPlotDefaultSizeY() { + return nGetPlotDefaultSizeY(); + } + + public void getPlotDefaultSize(final ImVec2 dst) { + nGetPlotDefaultSize(dst); + } + + public void setPlotDefaultSize(final ImVec2 value) { + nSetPlotDefaultSize(value.x, value.y); + } + + public void setPlotDefaultSize(final float valueX, final float valueY) { + nSetPlotDefaultSize(valueX, valueY); + } + + private native void nGetPlotDefaultSize(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->PlotDefaultSize, dst); + */ + + private native float nGetPlotDefaultSizeX(); /* + return THIS->PlotDefaultSize.x; + */ + + private native float nGetPlotDefaultSizeY(); /* + return THIS->PlotDefaultSize.y; + */ + + private native void nSetPlotDefaultSize(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->PlotDefaultSize = value; + */ + + public ImVec2 getPlotMinSize() { + final ImVec2 dst = new ImVec2(); + nGetPlotMinSize(dst); + return dst; + } + + public float getPlotMinSizeX() { + return nGetPlotMinSizeX(); + } + + public float getPlotMinSizeY() { + return nGetPlotMinSizeY(); + } + + public void getPlotMinSize(final ImVec2 dst) { + nGetPlotMinSize(dst); + } + + public void setPlotMinSize(final ImVec2 value) { + nSetPlotMinSize(value.x, value.y); + } + + public void setPlotMinSize(final float valueX, final float valueY) { + nSetPlotMinSize(valueX, valueY); + } + + private native void nGetPlotMinSize(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->PlotMinSize, dst); + */ + + private native float nGetPlotMinSizeX(); /* + return THIS->PlotMinSize.x; + */ + + private native float nGetPlotMinSizeY(); /* + return THIS->PlotMinSize.y; + */ + + private native void nSetPlotMinSize(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->PlotMinSize = value; + */ + + public ImVec4[] getColors() { + return nGetColors(); + } + + public void setColors(final ImVec4[] value) { + nSetColors(value); + } + + private native ImVec4[] nGetColors(); /* + return Jni::NewImVec4Array(env, THIS->Colors, ImPlotCol_COUNT); + */ + + private native void nSetColors(ImVec4[] value); /* + Jni::ImVec4ArrayCpy(env, value, THIS->Colors, ImPlotCol_COUNT); + */ + + public int getColormap() { + return nGetColormap(); + } + + public void setColormap(final int value) { + nSetColormap(value); + } + + private native int nGetColormap(); /* + return THIS->Colormap; + */ + + private native void nSetColormap(int value); /* + THIS->Colormap = value; + */ + + public boolean getAntiAliasedLines() { + return nGetAntiAliasedLines(); + } + + public void setAntiAliasedLines(final boolean value) { + nSetAntiAliasedLines(value); + } + + private native boolean nGetAntiAliasedLines(); /* + return THIS->AntiAliasedLines; + */ + + private native void nSetAntiAliasedLines(boolean value); /* + THIS->AntiAliasedLines = value; + */ + + public boolean getUseLocalTime() { + return nGetUseLocalTime(); + } + + public void setUseLocalTime(final boolean value) { + nSetUseLocalTime(value); + } + + private native boolean nGetUseLocalTime(); /* + return THIS->UseLocalTime; + */ + + private native void nSetUseLocalTime(boolean value); /* + THIS->UseLocalTime = value; + */ + + public boolean getUseISO8601() { + return nGetUseISO8601(); + } + + public void setUseISO8601(final boolean value) { + nSetUseISO8601(value); + } + + private native boolean nGetUseISO8601(); /* + return THIS->UseISO8601; + */ + + private native void nSetUseISO8601(boolean value); /* + THIS->UseISO8601 = value; + */ + + public boolean getUse24HourClock() { + return nGetUse24HourClock(); + } + + public void setUse24HourClock(final boolean value) { + nSetUse24HourClock(value); + } + + private native boolean nGetUse24HourClock(); /* + return THIS->Use24HourClock; + */ + + private native void nSetUse24HourClock(boolean value); /* + THIS->Use24HourClock = value; + */ + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotAxisFlags.java b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotAxisFlags.java new file mode 100644 index 0000000..97296d0 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotAxisFlags.java @@ -0,0 +1,115 @@ +package imgui.extension.implot.flag; + + +public final class ImPlotAxisFlags { + private ImPlotAxisFlags() { + } + + /** + * default + * + *

Definition: {@code 0} + */ + public static final int None = 0; + + /** + * the axis label will not be displayed (axis labels also hidden if the supplied string name is NULL) + * + *

Definition: {@code 1 << 0} + */ + public static final int NoLabel = 1; + + /** + * no grid lines will be displayed + * + *

Definition: {@code 1 << 1} + */ + public static final int NoGridLines = 2; + + /** + * no tick marks will be displayed + * + *

Definition: {@code 1 << 2} + */ + public static final int NoTickMarks = 4; + + /** + * no text labels will be displayed + * + *

Definition: {@code 1 << 3} + */ + public static final int NoTickLabels = 8; + + /** + * grid lines will be displayed in the foreground (i.e. on top of data) in stead of the background + * + *

Definition: {@code 1 << 4} + */ + public static final int Foreground = 16; + + /** + * a logartithmic (base 10) axis scale will be used (mutually exclusive with ImPlotAxisFlags_Time) + * + *

Definition: {@code 1 << 5} + */ + public static final int LogScale = 32; + + /** + * axis will display date/time formatted labels (mutually exclusive with ImPlotAxisFlags_LogScale) + * + *

Definition: {@code 1 << 6} + */ + public static final int Time = 64; + + /** + * the axis will be inverted + * + *

Definition: {@code 1 << 7} + */ + public static final int Invert = 128; + + /** + * axis will not be initially fit to data extents on the first rendered frame (also the case if SetNextPlotLimits explicitly called) + * + *

Definition: {@code 1 << 8} + */ + public static final int NoInitialFit = 256; + + /** + * axis will be auto-fitting to data extents + * + *

Definition: {@code 1 << 9} + */ + public static final int AutoFit = 512; + + /** + * axis will only fit points if the point is in the visible range of the **orthoganol** axis + * + *

Definition: {@code 1 << 10} + */ + public static final int RangeFit = 1024; + + /** + * the axis minimum value will be locked when panning/zooming + * + *

Definition: {@code 1 << 11} + */ + public static final int LockMin = 2048; + + /** + * the axis maximum value will be locked when panning/zooming + * + *

Definition: {@code 1 << 12} + */ + public static final int LockMax = 4096; + + /** + * Definition: {@code ImPlotAxisFlags_LockMin | ImPlotAxisFlags_LockMax} + */ + public static final int Lock = 6144; + + /** + * Definition: {@code ImPlotAxisFlags_NoLabel | ImPlotAxisFlags_NoGridLines | ImPlotAxisFlags_NoTickMarks | ImPlotAxisFlags_NoTickLabels} + */ + public static final int NoDecorations = 15; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotBin.java b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotBin.java new file mode 100644 index 0000000..9c5613f --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotBin.java @@ -0,0 +1,35 @@ +package imgui.extension.implot.flag; + + +public final class ImPlotBin { + private ImPlotBin() { + } + + /** + * k = sqrt(n) + * + *

Definition: {@code -1} + */ + public static final int Sqrt = -1; + + /** + * k = 1 + log2(n) + * + *

Definition: {@code -2} + */ + public static final int Sturges = -2; + + /** + * k = 2 * cbrt(n) + * + *

Definition: {@code -3} + */ + public static final int Rice = -3; + + /** + * w = 3.49 * sigma / cbrt(n) + * + *

Definition: {@code -4} + */ + public static final int Scott = -4; +} 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 new file mode 100644 index 0000000..d3f597a --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotCol.java @@ -0,0 +1,129 @@ +package imgui.extension.implot.flag; + + +public final class ImPlotCol { + private ImPlotCol() { + } + + /** + * plot line/outline color (defaults to next unused color in current colormap) + */ + public static final int Line = 0; + + /** + * plot fill color for bars (defaults to the current line color) + */ + public static final int Fill = 1; + + /** + * marker outline color (defaults to the current line color) + */ + public static final int MarkerOutline = 2; + + /** + * marker fill color (defaults to the current line color) + */ + public static final int MarkerFill = 3; + + /** + * error bar color (defaults to ImGuiCol_Text) + */ + public static final int ErrorBar = 4; + + /** + * plot frame background color (defaults to ImGuiCol_FrameBg) + */ + public static final int FrameBg = 5; + + /** + * plot area background color (defaults to ImGuiCol_WindowBg) + */ + public static final int PlotBg = 6; + + /** + * plot area border color (defaults to ImGuiCol_Border) + */ + public static final int PlotBorder = 7; + + /** + * legend background color (defaults to ImGuiCol_PopupBg) + */ + public static final int LegendBg = 8; + + /** + * legend border color (defaults to ImPlotCol_PlotBorder) + */ + public static final int LegendBorder = 9; + + /** + * legend text color (defaults to ImPlotCol_InlayText) + */ + public static final int LegendText = 10; + + /** + * plot title text color (defaults to ImGuiCol_Text) + */ + public static final int TitleText = 11; + + /** + * color of text appearing inside of plots (defaults to ImGuiCol_Text) + */ + public static final int InlayText = 12; + + /** + * x-axis label and tick lables color (defaults to ImGuiCol_Text) + */ + public static final int XAxis = 13; + + /** + * x-axis grid color (defaults to 25% ImPlotCol_XAxis) + */ + public static final int XAxisGrid = 14; + + /** + * y-axis label and tick labels color (defaults to ImGuiCol_Text) + */ + public static final int YAxis = 15; + + /** + * y-axis grid color (defaults to 25% ImPlotCol_YAxis) + */ + public static final int YAxisGrid = 16; + + /** + * 2nd y-axis label and tick labels color (defaults to ImGuiCol_Text) + */ + public static final int YAxis2 = 17; + + /** + * 2nd y-axis grid/label color (defaults to 25% ImPlotCol_YAxis2) + */ + public static final int YAxisGrid2 = 18; + + /** + * 3rd y-axis label and tick labels color (defaults to ImGuiCol_Text) + */ + public static final int YAxis3 = 19; + + /** + * 3rd y-axis grid/label color (defaults to 25% ImPlotCol_YAxis3) + */ + public static final int YAxisGrid3 = 20; + + /** + * box-selection color (defaults to yellow) + */ + public static final int Selection = 21; + + /** + * box-query color (defaults to green) + */ + public static final int Query = 22; + + /** + * crosshairs color (defaults to ImPlotCol_PlotBorder) + */ + public static final int Crosshairs = 23; + + public static final int COUNT = 24; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotColormap.java b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotColormap.java new file mode 100644 index 0000000..74945f4 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotColormap.java @@ -0,0 +1,119 @@ +package imgui.extension.implot.flag; + + +public final class ImPlotColormap { + private ImPlotColormap() { + } + + /** + * a.k.a. seaborn deep (qual=true, n=10) (default) + * + *

Definition: {@code 0} + */ + public static final int Deep = 0; + + /** + * a.k.a. matplotlib "Set1" (qual=true, n=9 ) + * + *

Definition: {@code 1} + */ + public static final int Dark = 1; + + /** + * a.k.a. matplotlib "Pastel1" (qual=true, n=9 ) + * + *

Definition: {@code 2} + */ + public static final int Pastel = 2; + + /** + * a.k.a. matplotlib "Paired" (qual=true, n=12) + * + *

Definition: {@code 3} + */ + public static final int Paired = 3; + + /** + * a.k.a. matplotlib "viridis" (qual=false, n=11) + * + *

Definition: {@code 4} + */ + public static final int Viridis = 4; + + /** + * a.k.a. matplotlib "plasma" (qual=false, n=11) + * + *

Definition: {@code 5} + */ + public static final int Plasma = 5; + + /** + * a.k.a. matplotlib/MATLAB "hot" (qual=false, n=11) + * + *

Definition: {@code 6} + */ + public static final int Hot = 6; + + /** + * a.k.a. matplotlib/MATLAB "cool" (qual=false, n=11) + * + *

Definition: {@code 7} + */ + public static final int Cool = 7; + + /** + * a.k.a. matplotlib/MATLAB "pink" (qual=false, n=11) + * + *

Definition: {@code 8} + */ + public static final int Pink = 8; + + /** + * a.k.a. MATLAB "jet" (qual=false, n=11) + * + *

Definition: {@code 9} + */ + public static final int Jet = 9; + + /** + * a.k.a. matplotlib "twilight" (qual=false, n=11) + * + *

Definition: {@code 10} + */ + public static final int Twilight = 10; + + /** + * red/blue, Color Brewer (qual=false, n=11) + * + *

Definition: {@code 11} + */ + public static final int RdBu = 11; + + /** + * brown/blue-green, Color Brewer (qual=false, n=11) + * + *

Definition: {@code 12} + */ + public static final int BrBG = 12; + + /** + * pink/yellow-green, Color Brewer (qual=false, n=11) + * + *

Definition: {@code 13} + */ + public static final int PiYG = 13; + + /** + * color spectrum, Color Brewer (qual=false, n=11) + * + *

Definition: {@code 14} + */ + public static final int Spectral = 14; + + /** + * white/black (qual=false, n=2 ) + * + *

Definition: {@code 15} + */ + public static final int Greys = 15; +} 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 new file mode 100644 index 0000000..fcf31e2 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotFlags.java @@ -0,0 +1,110 @@ +package imgui.extension.implot.flag; + + +public final class ImPlotFlags { + private ImPlotFlags() { + } + + /** + * default + * + *

Definition: {@code 0} + */ + 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") + * + *

Definition: {@code 1 << 0} + */ + public static final int NoTitle = 1; + + /** + * the legend will not be displayed + * + *

Definition: {@code 1 << 1} + */ + public static final int NoLegend = 2; + + /** + * the user will not be able to open context menus with right-click + * + *

Definition: {@code 1 << 2} + */ + public static final int NoMenus = 4; + + /** + * the user will not be able to box-select with right-click drag + * + *

Definition: {@code 1 << 3} + */ + public static final int NoBoxSelect = 8; + + /** + * the mouse position, in plot coordinates, will not be displayed inside of the plot + * + *

Definition: {@code 1 << 4} + */ + public static final int NoMousePos = 16; + + /** + * plot items will not be highlighted when their legend entry is hovered + * + *

Definition: {@code 1 << 5} + */ + public static final int NoHighlight = 32; + + /** + * a child window region will not be used to capture mouse scroll (can boost performance for single ImGui window applications) + * + *

Definition: {@code 1 << 6} + */ + public static final int NoChild = 64; + + /** + * primary x and y axes will be constrained to have the same units/pixel (does not apply to auxiliary y-axes) + * + *

Definition: {@code 1 << 7} + */ + public static final int Equal = 128; + + /** + * enable a 2nd y-axis on the right side + * + *

Definition: {@code 1 << 8} + */ + public static final int YAxis2 = 256; + + /** + * enable a 3rd y-axis on the right side + * + *

Definition: {@code 1 << 9} + */ + public static final int YAxis3 = 512; + + /** + * the user will be able to draw query rects with middle-mouse or CTRL + right-click drag + * + *

Definition: {@code 1 << 10} + */ + public static final int Query = 1024; + + /** + * the default mouse cursor will be replaced with a crosshair when hovered + * + *

Definition: {@code 1 << 11} + */ + public static final int Crosshairs = 2048; + + /** + * plot lines will be software anti-aliased (not recommended for high density plots, prefer MSAA) + * + *

Definition: {@code 1 << 12} + */ + public static final int AntiAliased = 4096; + + /** + * Definition: {@code ImPlotFlags_NoTitle | ImPlotFlags_NoLegend | ImPlotFlags_NoMenus | ImPlotFlags_NoBoxSelect | ImPlotFlags_NoMousePos} + */ + public static final int CanvasOnly = 31; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotLocation.java b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotLocation.java new file mode 100644 index 0000000..274b63d --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotLocation.java @@ -0,0 +1,70 @@ +package imgui.extension.implot.flag; + + +public final class ImPlotLocation { + private ImPlotLocation() { + } + + /** + * center-center + * + *

Definition: {@code 0} + */ + public static final int Center = 0; + + /** + * top-center + * + *

Definition: {@code 1 << 0} + */ + public static final int North = 1; + + /** + * bottom-center + * + *

Definition: {@code 1 << 1} + */ + public static final int South = 2; + + /** + * center-left + * + *

Definition: {@code 1 << 2} + */ + public static final int West = 4; + + /** + * center-right + * + *

Definition: {@code 1 << 3} + */ + public static final int East = 8; + + /** + * top-left + * + *

Definition: {@code ImPlotLocation_North | ImPlotLocation_West} + */ + public static final int NorthWest = 5; + + /** + * top-right + * + *

Definition: {@code ImPlotLocation_North | ImPlotLocation_East} + */ + public static final int NorthEast = 9; + + /** + * bottom-left + * + *

Definition: {@code ImPlotLocation_South | ImPlotLocation_West} + */ + public static final int SouthWest = 6; + + /** + * bottom-right + * + *

Definition: {@code ImPlotLocation_South | ImPlotLocation_East} + */ + public static final int SouthEast = 10; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotMarker.java b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotMarker.java new file mode 100644 index 0000000..9eb1ad1 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotMarker.java @@ -0,0 +1,66 @@ +package imgui.extension.implot.flag; + + +public final class ImPlotMarker { + private ImPlotMarker() { + } + + /** + * no marker + * + *

Definition: {@code -1} + */ + public static final int None = -1; + + /** + * a circle marker + */ + public static final int Circle = 0; + + /** + * a square maker + */ + public static final int Square = 1; + + /** + * a diamond marker + */ + public static final int Diamond = 2; + + /** + * an upward-pointing triangle marker + */ + public static final int Up = 3; + + /** + * an downward-pointing triangle marker + */ + public static final int Down = 4; + + /** + * an leftward-pointing triangle marker + */ + public static final int Left = 5; + + /** + * an rightward-pointing triangle marker + */ + public static final int Right = 6; + + /** + * a cross marker (not fillable) + */ + public static final int Cross = 7; + + /** + * a plus marker (not fillable) + */ + public static final int Plus = 8; + + /** + * a asterisk marker (not fillable) + */ + public static final int Asterisk = 9; + + public static final int COUNT = 10; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotOrientation.java b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotOrientation.java new file mode 100644 index 0000000..3b67f3e --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotOrientation.java @@ -0,0 +1,17 @@ +package imgui.extension.implot.flag; + + +public final class ImPlotOrientation { + private ImPlotOrientation() { + } + + /** + * left/right + */ + public static final int Horizontal = 0; + + /** + * up/down + */ + public static final int Vertical = 1; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotStyleVar.java b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotStyleVar.java new file mode 100644 index 0000000..8d1ebd4 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotStyleVar.java @@ -0,0 +1,144 @@ +package imgui.extension.implot.flag; + + +public final class ImPlotStyleVar { + private ImPlotStyleVar() { + } + + /** + * float, plot item line weight in pixels + */ + public static final int LineWeight = 0; + + /** + * int, marker specification + */ + public static final int Marker = 1; + + /** + * float, marker size in pixels (roughly the marker's "radius") + */ + public static final int MarkerSize = 2; + + /** + * float, plot outline weight of markers in pixels + */ + public static final int MarkerWeight = 3; + + /** + * float, alpha modifier applied to all plot item fills + */ + public static final int FillAlpha = 4; + + /** + * float, error bar whisker width in pixels + */ + public static final int ErrorBarSize = 5; + + /** + * float, error bar whisker weight in pixels + */ + public static final int ErrorBarWeight = 6; + + /** + * float, digital channels bit height (at 1) in pixels + */ + public static final int DigitalBitHeight = 7; + + /** + * float, digital channels bit padding gap in pixels + */ + public static final int DigitalBitGap = 8; + + /** + * float, thickness of border around plot area + */ + public static final int PlotBorderSize = 9; + + /** + * float, alpha multiplier applied to minor axis grid lines + */ + public static final int MinorAlpha = 10; + + /** + * ImVec2, major tick lengths for X and Y axes + */ + public static final int MajorTickLen = 11; + + /** + * ImVec2, minor tick lengths for X and Y axes + */ + public static final int MinorTickLen = 12; + + /** + * ImVec2, line thickness of major ticks + */ + public static final int MajorTickSize = 13; + + /** + * ImVec2, line thickness of minor ticks + */ + public static final int MinorTickSize = 14; + + /** + * ImVec2, line thickness of major grid lines + */ + public static final int MajorGridSize = 15; + + /** + * ImVec2, line thickness of minor grid lines + */ + public static final int MinorGridSize = 16; + + /** + * ImVec2, padding between widget frame and plot area, labels, or outside legends (i.e. main padding) + */ + public static final int PlotPadding = 17; + + /** + * ImVec2, padding between axes labels, tick labels, and plot edge + */ + public static final int LabelPadding = 18; + + /** + * ImVec2, legend padding from plot edges + */ + public static final int LegendPadding = 19; + + /** + * ImVec2, legend inner padding from legend edges + */ + public static final int LegendInnerPadding = 20; + + /** + * ImVec2, spacing between legend entries + */ + public static final int LegendSpacing = 21; + + /** + * ImVec2, padding between plot edge and interior info text + */ + public static final int MousePosPadding = 22; + + /** + * ImVec2, text padding around annotation labels + */ + public static final int AnnotationPadding = 23; + + /** + * ImVec2, additional fit padding as a percentage of the fit extents (e.g. ImVec2(0.1f,0.1f) adds 10% to the fit extents of X and Y) + */ + public static final int FitPadding = 24; + + /** + * ImVec2, default size used when ImVec2(0,0) is passed to BeginPlot + */ + public static final int PlotDefaultSize = 25; + + /** + * ImVec2, minimum size plot frame can be when shrunk + */ + public static final int PlotMinSize = 26; + + public static final int COUNT = 27; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotYAxis.java b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotYAxis.java new file mode 100644 index 0000000..5bb84ed --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotYAxis.java @@ -0,0 +1,28 @@ +package imgui.extension.implot.flag; + + +public final class ImPlotYAxis { + private ImPlotYAxis() { + } + + /** + * left (default) + * + *

Definition: {@code 0} + */ + public static final int YAxis_1 = 0; + + /** + * first on right side + * + *

Definition: {@code 1} + */ + public static final int YAxis_2 = 1; + + /** + * second on right side + * + *

Definition: {@code 2} + */ + public static final int YAxis_3 = 2; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/memedit/MemoryEditor.java b/imgui-binding/src/generated/java/imgui/extension/memedit/MemoryEditor.java new file mode 100644 index 0000000..e5167c1 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/memedit/MemoryEditor.java @@ -0,0 +1,312 @@ +package imgui.extension.memedit; + +import imgui.binding.ImGuiStructDestroyable; + +/** + * ImGui Club Memory Editor extension for ImGui + * Repo: https://github.com/ocornut/imgui_club + */ +public final class MemoryEditor extends ImGuiStructDestroyable { + public MemoryEditor() { + } + + public MemoryEditor(final long ptr) { + super(ptr); + } + + @Override + protected long create() { + return nCreate(); + } + + /*JNI + #include "_memedit.h" + #define THIS ((MemoryEditor*)STRUCT_PTR) + #define MemoryEditorSizes MemoryEditor::Sizes + */ + + private native long nCreate(); /* + return (intptr_t)(new MemoryEditor()); + */ + + public boolean getOpen() { + return nGetOpen(); + } + + public void setOpen(final boolean value) { + nSetOpen(value); + } + + private native boolean nGetOpen(); /* + return THIS->Open; + */ + + private native void nSetOpen(boolean value); /* + THIS->Open = value; + */ + + public boolean getReadOnly() { + return nGetReadOnly(); + } + + public void setReadOnly(final boolean value) { + nSetReadOnly(value); + } + + private native boolean nGetReadOnly(); /* + return THIS->ReadOnly; + */ + + private native void nSetReadOnly(boolean value); /* + THIS->ReadOnly = value; + */ + + public int getCols() { + return nGetCols(); + } + + public void setCols(final int value) { + nSetCols(value); + } + + private native int nGetCols(); /* + return THIS->Cols; + */ + + private native void nSetCols(int value); /* + THIS->Cols = value; + */ + + public boolean getOptShowOptions() { + return nGetOptShowOptions(); + } + + public void setOptShowOptions(final boolean value) { + nSetOptShowOptions(value); + } + + private native boolean nGetOptShowOptions(); /* + return THIS->OptShowOptions; + */ + + private native void nSetOptShowOptions(boolean value); /* + THIS->OptShowOptions = value; + */ + + public boolean getOptShowDataPreview() { + return nGetOptShowDataPreview(); + } + + public void setOptShowDataPreview(final boolean value) { + nSetOptShowDataPreview(value); + } + + private native boolean nGetOptShowDataPreview(); /* + return THIS->OptShowDataPreview; + */ + + private native void nSetOptShowDataPreview(boolean value); /* + THIS->OptShowDataPreview = value; + */ + + public boolean getOptShowHexII() { + return nGetOptShowHexII(); + } + + public void setOptShowHexII(final boolean value) { + nSetOptShowHexII(value); + } + + private native boolean nGetOptShowHexII(); /* + return THIS->OptShowHexII; + */ + + private native void nSetOptShowHexII(boolean value); /* + THIS->OptShowHexII = value; + */ + + public boolean getOptShowAscii() { + return nGetOptShowAscii(); + } + + public void setOptShowAscii(final boolean value) { + nSetOptShowAscii(value); + } + + private native boolean nGetOptShowAscii(); /* + return THIS->OptShowAscii; + */ + + private native void nSetOptShowAscii(boolean value); /* + THIS->OptShowAscii = value; + */ + + public boolean getOptGreyOutZeroes() { + return nGetOptGreyOutZeroes(); + } + + public void setOptGreyOutZeroes(final boolean value) { + nSetOptGreyOutZeroes(value); + } + + private native boolean nGetOptGreyOutZeroes(); /* + return THIS->OptGreyOutZeroes; + */ + + private native void nSetOptGreyOutZeroes(boolean value); /* + THIS->OptGreyOutZeroes = value; + */ + + public boolean getOptUpperCaseHex() { + return nGetOptUpperCaseHex(); + } + + public void setOptUpperCaseHex(final boolean value) { + nSetOptUpperCaseHex(value); + } + + private native boolean nGetOptUpperCaseHex(); /* + return THIS->OptUpperCaseHex; + */ + + private native void nSetOptUpperCaseHex(boolean value); /* + THIS->OptUpperCaseHex = value; + */ + + public int getOptMidColsCount() { + return nGetOptMidColsCount(); + } + + public void setOptMidColsCount(final int value) { + nSetOptMidColsCount(value); + } + + private native int nGetOptMidColsCount(); /* + return THIS->OptMidColsCount; + */ + + private native void nSetOptMidColsCount(int value); /* + THIS->OptMidColsCount = value; + */ + + public int getOptAddrDigitsCount() { + return nGetOptAddrDigitsCount(); + } + + public void setOptAddrDigitsCount(final int value) { + nSetOptAddrDigitsCount(value); + } + + private native int nGetOptAddrDigitsCount(); /* + return THIS->OptAddrDigitsCount; + */ + + private native void nSetOptAddrDigitsCount(int value); /* + THIS->OptAddrDigitsCount = value; + */ + + public float getOptFooterExtraHeight() { + return nGetOptFooterExtraHeight(); + } + + public void setOptFooterExtraHeight(final float value) { + nSetOptFooterExtraHeight(value); + } + + private native float nGetOptFooterExtraHeight(); /* + return THIS->OptFooterExtraHeight; + */ + + private native void nSetOptFooterExtraHeight(float value); /* + THIS->OptFooterExtraHeight = value; + */ + + public int getHighlightColor() { + return nGetHighlightColor(); + } + + public void setHighlightColor(final int value) { + nSetHighlightColor(value); + } + + private native int nGetHighlightColor(); /* + return THIS->HighlightColor; + */ + + private native void nSetHighlightColor(int value); /* + THIS->HighlightColor = value; + */ + + public void gotoAddrAndHighlight(final long addrMin, final long addrMax) { + nGotoAddrAndHighlight(addrMin, addrMax); + } + + private native void nGotoAddrAndHighlight(long addrMin, long addrMax); /* + THIS->GotoAddrAndHighlight(addrMin, addrMax); + */ + + public void calcSizes(final MemoryEditorSizes s, final long memSize, final long baseDisplayAddr) { + nCalcSizes(s.ptr, memSize, baseDisplayAddr); + } + + private native void nCalcSizes(long s, long memSize, long baseDisplayAddr); /* + THIS->CalcSizes(*reinterpret_cast(s), memSize, baseDisplayAddr); + */ + + public void drawWindow(final String title, final long memData, final long memSize) { + nDrawWindow(title, memData, memSize); + } + + public void drawWindow(final String title, final long memData, final long memSize, final long baseDisplayAddr) { + nDrawWindow(title, memData, memSize, baseDisplayAddr); + } + + private native void nDrawWindow(String title, long memData, long memSize); /*MANUAL + auto title = obj_title == NULL ? NULL : (char*)env->GetStringUTFChars(obj_title, JNI_FALSE); + THIS->DrawWindow(title, reinterpret_cast(memData), memSize); + if (title != NULL) env->ReleaseStringUTFChars(obj_title, title); + */ + + private native void nDrawWindow(String title, long memData, long memSize, long baseDisplayAddr); /*MANUAL + auto title = obj_title == NULL ? NULL : (char*)env->GetStringUTFChars(obj_title, JNI_FALSE); + THIS->DrawWindow(title, reinterpret_cast(memData), memSize, baseDisplayAddr); + if (title != NULL) env->ReleaseStringUTFChars(obj_title, title); + */ + + public void drawContents(final long memData, final long memSize) { + nDrawContents(memData, memSize); + } + + public void drawContents(final long memData, final long memSize, final long baseDisplayAddr) { + nDrawContents(memData, memSize, baseDisplayAddr); + } + + private native void nDrawContents(long memData, long memSize); /* + THIS->DrawContents(reinterpret_cast(memData), memSize); + */ + + private native void nDrawContents(long memData, long memSize, long baseDisplayAddr); /* + THIS->DrawContents(reinterpret_cast(memData), memSize, baseDisplayAddr); + */ + + public void drawOptionsLine(final MemoryEditorSizes s, final long memData, final long memSize, final long baseDisplayAddr) { + nDrawOptionsLine(s.ptr, memData, memSize, baseDisplayAddr); + } + + private native void nDrawOptionsLine(long s, long memData, long memSize, long baseDisplayAddr); /* + THIS->DrawOptionsLine(*reinterpret_cast(s), reinterpret_cast(memData), memSize, baseDisplayAddr); + */ + + public void drawPreviewLine(final MemoryEditorSizes s, final long memDataVoid, final long memSize, final long baseDisplayAddr) { + nDrawPreviewLine(s.ptr, memDataVoid, memSize, baseDisplayAddr); + } + + private native void nDrawPreviewLine(long s, long memDataVoid, long memSize, long baseDisplayAddr); /* + THIS->DrawPreviewLine(*reinterpret_cast(s), reinterpret_cast(memDataVoid), memSize, baseDisplayAddr); + */ + + /*JNI + #undef MemoryEditorSizes + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/extension/memedit/MemoryEditorSizes.java b/imgui-binding/src/generated/java/imgui/extension/memedit/MemoryEditorSizes.java new file mode 100644 index 0000000..84a2c38 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/memedit/MemoryEditorSizes.java @@ -0,0 +1,190 @@ +package imgui.extension.memedit; + +import imgui.binding.ImGuiStructDestroyable; + +public final class MemoryEditorSizes extends ImGuiStructDestroyable { + public MemoryEditorSizes() { + } + + public MemoryEditorSizes(final long ptr) { + super(ptr); + } + + @Override + protected long create() { + return nCreate(); + } + + /*JNI + #include "_memedit.h" + #define THIS ((MemoryEditor::Sizes*)STRUCT_PTR) + */ + + private native long nCreate(); /* + return (intptr_t)(new MemoryEditor::Sizes()); + */ + + public int getAddrDigitsCount() { + return nGetAddrDigitsCount(); + } + + public void setAddrDigitsCount(final int value) { + nSetAddrDigitsCount(value); + } + + private native int nGetAddrDigitsCount(); /* + return THIS->AddrDigitsCount; + */ + + private native void nSetAddrDigitsCount(int value); /* + THIS->AddrDigitsCount = value; + */ + + public float getLineHeight() { + return nGetLineHeight(); + } + + public void setLineHeight(final float value) { + nSetLineHeight(value); + } + + private native float nGetLineHeight(); /* + return THIS->LineHeight; + */ + + private native void nSetLineHeight(float value); /* + THIS->LineHeight = value; + */ + + public float getGlyphWidth() { + return nGetGlyphWidth(); + } + + public void setGlyphWidth(final float value) { + nSetGlyphWidth(value); + } + + private native float nGetGlyphWidth(); /* + return THIS->GlyphWidth; + */ + + private native void nSetGlyphWidth(float value); /* + THIS->GlyphWidth = value; + */ + + public float getHexCellWidth() { + return nGetHexCellWidth(); + } + + public void setHexCellWidth(final float value) { + nSetHexCellWidth(value); + } + + private native float nGetHexCellWidth(); /* + return THIS->HexCellWidth; + */ + + private native void nSetHexCellWidth(float value); /* + THIS->HexCellWidth = value; + */ + + public float getSpacingBetweenMidCols() { + return nGetSpacingBetweenMidCols(); + } + + public void setSpacingBetweenMidCols(final float value) { + nSetSpacingBetweenMidCols(value); + } + + private native float nGetSpacingBetweenMidCols(); /* + return THIS->SpacingBetweenMidCols; + */ + + private native void nSetSpacingBetweenMidCols(float value); /* + THIS->SpacingBetweenMidCols = value; + */ + + public float getPosHexStart() { + return nGetPosHexStart(); + } + + public void setPosHexStart(final float value) { + nSetPosHexStart(value); + } + + private native float nGetPosHexStart(); /* + return THIS->PosHexStart; + */ + + private native void nSetPosHexStart(float value); /* + THIS->PosHexStart = value; + */ + + public float getPosHexEnd() { + return nGetPosHexEnd(); + } + + public void setPosHexEnd(final float value) { + nSetPosHexEnd(value); + } + + private native float nGetPosHexEnd(); /* + return THIS->PosHexEnd; + */ + + private native void nSetPosHexEnd(float value); /* + THIS->PosHexEnd = value; + */ + + public float getPosAsciiStart() { + return nGetPosAsciiStart(); + } + + public void setPosAsciiStart(final float value) { + nSetPosAsciiStart(value); + } + + private native float nGetPosAsciiStart(); /* + return THIS->PosAsciiStart; + */ + + private native void nSetPosAsciiStart(float value); /* + THIS->PosAsciiStart = value; + */ + + public float getPosAsciiEnd() { + return nGetPosAsciiEnd(); + } + + public void setPosAsciiEnd(final float value) { + nSetPosAsciiEnd(value); + } + + private native float nGetPosAsciiEnd(); /* + return THIS->PosAsciiEnd; + */ + + private native void nSetPosAsciiEnd(float value); /* + THIS->PosAsciiEnd = value; + */ + + public float getWindowWidth() { + return nGetWindowWidth(); + } + + public void setWindowWidth(final float value) { + nSetWindowWidth(value); + } + + private native float nGetWindowWidth(); /* + return THIS->WindowWidth; + */ + + private native void nSetWindowWidth(float value); /* + THIS->WindowWidth = value; + */ + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/extension/nodeditor/NodeEditor.java b/imgui-binding/src/generated/java/imgui/extension/nodeditor/NodeEditor.java new file mode 100644 index 0000000..fa22703 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/nodeditor/NodeEditor.java @@ -0,0 +1,1534 @@ +package imgui.extension.nodeditor; + +import imgui.ImDrawList; +import imgui.ImVec2; +import imgui.ImVec4; +import imgui.type.ImLong; + +/** + * Bindings for Imgui Node Editor (https://github.com/thedmd/imgui-node-editor) + * Original library author - Michał Cichoń (https://github.com/thedmd) + *

+ * An implementation of node editor with ImGui-like API. + * Project purpose is to serve as a basis for more complex solutions like blueprint editors. + *

+ * Refer to the library's Github page for examples and support + *

+ * Before you can start drawing editor you have to create ImNodeEditorContext + * (either by invoking constructor directly or using ImNodeEditor.createEditor()) and switch + * current editor via ImNodeEditor.setCurrentEditor(NodeEditorContext) + *

+ * Binding notice: instead of special types for ids of nodes, links and pins which used in native library + * we use longs to reduce boilerplate and garbage production + */ +public final class NodeEditor { + private NodeEditor() { + } + + /*JNI + #include "_nodeeditor.h" + #define NodeEditorConfig ax::NodeEditor::Config + #define NodeEditorStyle ax::NodeEditor::Style + #define NodeEditorContext ax::NodeEditor::EditorContext + */ + + public static void setCurrentEditor(final NodeEditorContext ctx) { + nSetCurrentEditor(ctx.ptr); + } + + private static native void nSetCurrentEditor(long ctx); /* + ax::NodeEditor::SetCurrentEditor(reinterpret_cast(ctx)); + */ + + public static NodeEditorContext getCurrentEditor() { + return new NodeEditorContext(nGetCurrentEditor()); + } + + private static native long nGetCurrentEditor(); /* + return (intptr_t)ax::NodeEditor::GetCurrentEditor(); + */ + + public static NodeEditorContext createEditor() { + return new NodeEditorContext(nCreateEditor()); + } + + public static NodeEditorContext createEditor(final NodeEditorConfig config) { + return new NodeEditorContext(nCreateEditor(config.ptr)); + } + + private static native long nCreateEditor(); /* + return (intptr_t)ax::NodeEditor::CreateEditor(); + */ + + private static native long nCreateEditor(long config); /* + return (intptr_t)ax::NodeEditor::CreateEditor(reinterpret_cast(config)); + */ + + public static void destroyEditor(final NodeEditorContext ctx) { + nDestroyEditor(ctx.ptr); + } + + private static native void nDestroyEditor(long ctx); /* + ax::NodeEditor::DestroyEditor(reinterpret_cast(ctx)); + */ + + private static final NodeEditorStyle _GETSTYLE_1 = new NodeEditorStyle(0); + + public static NodeEditorStyle getStyle() { + _GETSTYLE_1.ptr = nGetStyle(); + return _GETSTYLE_1; + } + + private static native long nGetStyle(); /* + return (intptr_t)&ax::NodeEditor::GetStyle(); + */ + + public static String getStyleColorName(final int colorIndex) { + return nGetStyleColorName(colorIndex); + } + + private static native String nGetStyleColorName(int colorIndex); /* + return env->NewStringUTF(ax::NodeEditor::GetStyleColorName(static_cast(colorIndex))); + */ + + public static void pushStyleColor(final int colorIndex, final ImVec4 color) { + nPushStyleColor(colorIndex, color.x, color.y, color.z, color.w); + } + + public static void pushStyleColor(final int colorIndex, final float colorX, final float colorY, final float colorZ, final float colorW) { + nPushStyleColor(colorIndex, colorX, colorY, colorZ, colorW); + } + + private static native void nPushStyleColor(int colorIndex, float colorX, float colorY, float colorZ, float colorW); /*MANUAL + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + ax::NodeEditor::PushStyleColor(static_cast(colorIndex), color); + */ + + public static void popStyleColor() { + nPopStyleColor(); + } + + public static void popStyleColor(final int count) { + nPopStyleColor(count); + } + + private static native void nPopStyleColor(); /* + ax::NodeEditor::PopStyleColor(); + */ + + private static native void nPopStyleColor(int count); /* + ax::NodeEditor::PopStyleColor(count); + */ + + public static void pushStyleVar(final int varIndex, final float value) { + nPushStyleVar(varIndex, value); + } + + private static native void nPushStyleVar(int varIndex, float value); /* + ax::NodeEditor::PushStyleVar(static_cast(varIndex), value); + */ + + public static void pushStyleVar(final int varIndex, final ImVec2 value) { + nPushStyleVar(varIndex, value.x, value.y); + } + + public static void pushStyleVar(final int varIndex, final float valueX, final float valueY) { + nPushStyleVar(varIndex, valueX, valueY); + } + + private static native void nPushStyleVar(int varIndex, float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + ax::NodeEditor::PushStyleVar(static_cast(varIndex), value); + */ + + public static void pushStyleVar(final int varIndex, final ImVec4 value) { + nPushStyleVar(varIndex, value.x, value.y, value.z, value.w); + } + + public static void pushStyleVar(final int varIndex, final float valueX, final float valueY, final float valueZ, final float valueW) { + nPushStyleVar(varIndex, valueX, valueY, valueZ, valueW); + } + + private static native void nPushStyleVar(int varIndex, float valueX, float valueY, float valueZ, float valueW); /*MANUAL + ImVec4 value = ImVec4(valueX, valueY, valueZ, valueW); + ax::NodeEditor::PushStyleVar(static_cast(varIndex), value); + */ + + public static void popStyleVar() { + nPopStyleVar(); + } + + public static void popStyleVar(final int count) { + nPopStyleVar(count); + } + + private static native void nPopStyleVar(); /* + ax::NodeEditor::PopStyleVar(); + */ + + private static native void nPopStyleVar(int count); /* + ax::NodeEditor::PopStyleVar(count); + */ + + public static void begin(final String id) { + nBegin(id); + } + + public static void begin(final String id, final ImVec2 size) { + nBegin(id, size.x, size.y); + } + + public static void begin(final String id, final float sizeX, final float sizeY) { + nBegin(id, sizeX, sizeY); + } + + private static native void nBegin(String id); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + ax::NodeEditor::Begin(id); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + */ + + private static native void nBegin(String id, float sizeX, float sizeY); /*MANUAL + auto id = obj_id == NULL ? NULL : (char*)env->GetStringUTFChars(obj_id, JNI_FALSE); + ImVec2 size = ImVec2(sizeX, sizeY); + ax::NodeEditor::Begin(id, size); + if (id != NULL) env->ReleaseStringUTFChars(obj_id, id); + */ + + public static void end() { + nEnd(); + } + + private static native void nEnd(); /* + ax::NodeEditor::End(); + */ + + public static void beginNode(final long id) { + nBeginNode(id); + } + + private static native void nBeginNode(long id); /* + ax::NodeEditor::BeginNode(id); + */ + + public static void beginPin(final long id, final int kind) { + nBeginPin(id, kind); + } + + private static native void nBeginPin(long id, int kind); /* + ax::NodeEditor::BeginPin(id, static_cast(kind)); + */ + + public static void pinRect(final ImVec2 a, final ImVec2 b) { + nPinRect(a.x, a.y, b.x, b.y); + } + + public static void pinRect(final float aX, final float aY, final float bX, final float bY) { + nPinRect(aX, aY, bX, bY); + } + + private static native void nPinRect(float aX, float aY, float bX, float bY); /*MANUAL + ImVec2 a = ImVec2(aX, aY); + ImVec2 b = ImVec2(bX, bY); + ax::NodeEditor::PinRect(a, b); + */ + + public static void pinPivotRect(final ImVec2 a, final ImVec2 b) { + nPinPivotRect(a.x, a.y, b.x, b.y); + } + + public static void pinPivotRect(final float aX, final float aY, final float bX, final float bY) { + nPinPivotRect(aX, aY, bX, bY); + } + + private static native void nPinPivotRect(float aX, float aY, float bX, float bY); /*MANUAL + ImVec2 a = ImVec2(aX, aY); + ImVec2 b = ImVec2(bX, bY); + ax::NodeEditor::PinPivotRect(a, b); + */ + + public static void pinPivotSize(final ImVec2 size) { + nPinPivotSize(size.x, size.y); + } + + public static void pinPivotSize(final float sizeX, final float sizeY) { + nPinPivotSize(sizeX, sizeY); + } + + private static native void nPinPivotSize(float sizeX, float sizeY); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + ax::NodeEditor::PinPivotSize(size); + */ + + public static void pinPivotScale(final ImVec2 scale) { + nPinPivotScale(scale.x, scale.y); + } + + public static void pinPivotScale(final float scaleX, final float scaleY) { + nPinPivotScale(scaleX, scaleY); + } + + private static native void nPinPivotScale(float scaleX, float scaleY); /*MANUAL + ImVec2 scale = ImVec2(scaleX, scaleY); + ax::NodeEditor::PinPivotScale(scale); + */ + + public static void pinPivotAlignment(final ImVec2 alignment) { + nPinPivotAlignment(alignment.x, alignment.y); + } + + public static void pinPivotAlignment(final float alignmentX, final float alignmentY) { + nPinPivotAlignment(alignmentX, alignmentY); + } + + private static native void nPinPivotAlignment(float alignmentX, float alignmentY); /*MANUAL + ImVec2 alignment = ImVec2(alignmentX, alignmentY); + ax::NodeEditor::PinPivotAlignment(alignment); + */ + + public static void endPin() { + nEndPin(); + } + + private static native void nEndPin(); /* + ax::NodeEditor::EndPin(); + */ + + public static void group(final ImVec2 size) { + nGroup(size.x, size.y); + } + + public static void group(final float sizeX, final float sizeY) { + nGroup(sizeX, sizeY); + } + + private static native void nGroup(float sizeX, float sizeY); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + ax::NodeEditor::Group(size); + */ + + public static void endNode() { + nEndNode(); + } + + private static native void nEndNode(); /* + ax::NodeEditor::EndNode(); + */ + + public static boolean beginGroupHint(final long nodeId) { + return nBeginGroupHint(nodeId); + } + + private static native boolean nBeginGroupHint(long nodeId); /* + return ax::NodeEditor::BeginGroupHint(nodeId); + */ + + public static ImVec2 getGroupMin() { + final ImVec2 dst = new ImVec2(); + nGetGroupMin(dst); + return dst; + } + + public static float getGroupMinX() { + return nGetGroupMinX(); + } + + public static float getGroupMinY() { + return nGetGroupMinY(); + } + + public static void getGroupMin(final ImVec2 dst) { + nGetGroupMin(dst); + } + + private static native void nGetGroupMin(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ax::NodeEditor::GetGroupMin(), dst); + */ + + private static native float nGetGroupMinX(); /* + return ax::NodeEditor::GetGroupMin().x; + */ + + private static native float nGetGroupMinY(); /* + return ax::NodeEditor::GetGroupMin().y; + */ + + public static ImVec2 getGroupMax() { + final ImVec2 dst = new ImVec2(); + nGetGroupMax(dst); + return dst; + } + + public static float getGroupMaxX() { + return nGetGroupMaxX(); + } + + public static float getGroupMaxY() { + return nGetGroupMaxY(); + } + + public static void getGroupMax(final ImVec2 dst) { + nGetGroupMax(dst); + } + + private static native void nGetGroupMax(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ax::NodeEditor::GetGroupMax(), dst); + */ + + private static native float nGetGroupMaxX(); /* + return ax::NodeEditor::GetGroupMax().x; + */ + + private static native float nGetGroupMaxY(); /* + return ax::NodeEditor::GetGroupMax().y; + */ + + private static final ImDrawList _GETHINTFOREGROUNDDRAWLIST_1 = new ImDrawList(0); + + public static ImDrawList getHintForegroundDrawList() { + _GETHINTFOREGROUNDDRAWLIST_1.ptr = nGetHintForegroundDrawList(); + return _GETHINTFOREGROUNDDRAWLIST_1; + } + + private static native long nGetHintForegroundDrawList(); /* + return (intptr_t)ax::NodeEditor::GetHintForegroundDrawList(); + */ + + private static final ImDrawList _GETHINTBACKGROUNDDRAWLIST_1 = new ImDrawList(0); + + public static ImDrawList getHintBackgroundDrawList() { + _GETHINTBACKGROUNDDRAWLIST_1.ptr = nGetHintBackgroundDrawList(); + return _GETHINTBACKGROUNDDRAWLIST_1; + } + + private static native long nGetHintBackgroundDrawList(); /* + return (intptr_t)ax::NodeEditor::GetHintBackgroundDrawList(); + */ + + public static void endGroupHint() { + nEndGroupHint(); + } + + private static native void nEndGroupHint(); /* + ax::NodeEditor::EndGroupHint(); + */ + + private static final ImDrawList _GETNODEBACKGROUNDDRAWLIST_1040171299 = new ImDrawList(0); + + public static ImDrawList getNodeBackgroundDrawList(final long nodeId) { + _GETNODEBACKGROUNDDRAWLIST_1040171299.ptr = nGetNodeBackgroundDrawList(nodeId); + return _GETNODEBACKGROUNDDRAWLIST_1040171299; + } + + private static native long nGetNodeBackgroundDrawList(long nodeId); /* + return (intptr_t)ax::NodeEditor::GetNodeBackgroundDrawList(nodeId); + */ + + public static boolean link(final long id, final long startPinId, final long endPinId) { + return nLink(id, startPinId, endPinId); + } + + public static boolean link(final long id, final long startPinId, final long endPinId, final ImVec4 color) { + return nLink(id, startPinId, endPinId, color.x, color.y, color.z, color.w); + } + + public static boolean link(final long id, final long startPinId, final long endPinId, final float colorX, final float colorY, final float colorZ, final float colorW) { + return nLink(id, startPinId, endPinId, colorX, colorY, colorZ, colorW); + } + + public static boolean link(final long id, final long startPinId, final long endPinId, final ImVec4 color, final float thickness) { + return nLink(id, startPinId, endPinId, color.x, color.y, color.z, color.w, thickness); + } + + public static boolean link(final long id, final long startPinId, final long endPinId, final float colorX, final float colorY, final float colorZ, final float colorW, final float thickness) { + return nLink(id, startPinId, endPinId, colorX, colorY, colorZ, colorW, thickness); + } + + public static boolean link(final long id, final long startPinId, final long endPinId, final float thickness) { + return nLink(id, startPinId, endPinId, thickness); + } + + private static native boolean nLink(long id, long startPinId, long endPinId); /* + return ax::NodeEditor::Link(id, startPinId, endPinId); + */ + + private static native boolean nLink(long id, long startPinId, long endPinId, float colorX, float colorY, float colorZ, float colorW); /*MANUAL + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + auto _result = ax::NodeEditor::Link(id, startPinId, endPinId, color); + return _result; + */ + + private static native boolean nLink(long id, long startPinId, long endPinId, float colorX, float colorY, float colorZ, float colorW, float thickness); /*MANUAL + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + auto _result = ax::NodeEditor::Link(id, startPinId, endPinId, color, thickness); + return _result; + */ + + private static native boolean nLink(long id, long startPinId, long endPinId, float thickness); /* + return ax::NodeEditor::Link(id, startPinId, endPinId, ImVec4(1,1,1,1), thickness); + */ + + public static void flow(final long linkId) { + nFlow(linkId); + } + + public static void flow(final long linkId, final int direction) { + nFlow(linkId, direction); + } + + private static native void nFlow(long linkId); /* + ax::NodeEditor::Flow(linkId); + */ + + private static native void nFlow(long linkId, int direction); /* + ax::NodeEditor::Flow(linkId, static_cast(direction)); + */ + + public static boolean beginCreate() { + return nBeginCreate(); + } + + public static boolean beginCreate(final ImVec4 color) { + return nBeginCreate(color.x, color.y, color.z, color.w); + } + + public static boolean beginCreate(final float colorX, final float colorY, final float colorZ, final float colorW) { + return nBeginCreate(colorX, colorY, colorZ, colorW); + } + + public static boolean beginCreate(final ImVec4 color, final float thickness) { + return nBeginCreate(color.x, color.y, color.z, color.w, thickness); + } + + public static boolean beginCreate(final float colorX, final float colorY, final float colorZ, final float colorW, final float thickness) { + return nBeginCreate(colorX, colorY, colorZ, colorW, thickness); + } + + public static boolean beginCreate(final float thickness) { + return nBeginCreate(thickness); + } + + private static native boolean nBeginCreate(); /* + return ax::NodeEditor::BeginCreate(); + */ + + private static native boolean nBeginCreate(float colorX, float colorY, float colorZ, float colorW); /*MANUAL + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + auto _result = ax::NodeEditor::BeginCreate(color); + return _result; + */ + + private static native boolean nBeginCreate(float colorX, float colorY, float colorZ, float colorW, float thickness); /*MANUAL + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + auto _result = ax::NodeEditor::BeginCreate(color, thickness); + return _result; + */ + + private static native boolean nBeginCreate(float thickness); /* + return ax::NodeEditor::BeginCreate(ImVec4(1,1,1,1), thickness); + */ + + public static boolean queryNewLink(final ImLong startId, final ImLong endId) { + return nQueryNewLink(startId != null ? startId.getData() : null, endId != null ? endId.getData() : null); + } + + private static native boolean nQueryNewLink(long[] obj_startId, long[] obj_endId); /*MANUAL + auto startId = obj_startId == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_startId, JNI_FALSE); + auto endId = obj_endId == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_endId, JNI_FALSE); + auto _result = ax::NodeEditor::QueryNewLink(reinterpret_cast((startId != NULL ? &startId[0] : NULL)), reinterpret_cast((endId != NULL ? &endId[0] : NULL))); + if (startId != NULL) env->ReleasePrimitiveArrayCritical(obj_startId, startId, JNI_FALSE); + if (endId != NULL) env->ReleasePrimitiveArrayCritical(obj_endId, endId, JNI_FALSE); + return _result; + */ + + public static boolean queryNewLink(final ImLong startId, final ImLong endId, final ImVec4 color) { + return nQueryNewLink(startId != null ? startId.getData() : null, endId != null ? endId.getData() : null, color.x, color.y, color.z, color.w); + } + + public static boolean queryNewLink(final ImLong startId, final ImLong endId, final float colorX, final float colorY, final float colorZ, final float colorW) { + return nQueryNewLink(startId != null ? startId.getData() : null, endId != null ? endId.getData() : null, colorX, colorY, colorZ, colorW); + } + + public static boolean queryNewLink(final ImLong startId, final ImLong endId, final ImVec4 color, final float thickness) { + return nQueryNewLink(startId != null ? startId.getData() : null, endId != null ? endId.getData() : null, color.x, color.y, color.z, color.w, thickness); + } + + public static boolean queryNewLink(final ImLong startId, final ImLong endId, final float colorX, final float colorY, final float colorZ, final float colorW, final float thickness) { + return nQueryNewLink(startId != null ? startId.getData() : null, endId != null ? endId.getData() : null, colorX, colorY, colorZ, colorW, thickness); + } + + private static native boolean nQueryNewLink(long[] obj_startId, long[] obj_endId, float colorX, float colorY, float colorZ, float colorW); /*MANUAL + auto startId = obj_startId == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_startId, JNI_FALSE); + auto endId = obj_endId == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_endId, JNI_FALSE); + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + auto _result = ax::NodeEditor::QueryNewLink(reinterpret_cast((startId != NULL ? &startId[0] : NULL)), reinterpret_cast((endId != NULL ? &endId[0] : NULL)), color); + if (startId != NULL) env->ReleasePrimitiveArrayCritical(obj_startId, startId, JNI_FALSE); + if (endId != NULL) env->ReleasePrimitiveArrayCritical(obj_endId, endId, JNI_FALSE); + return _result; + */ + + private static native boolean nQueryNewLink(long[] obj_startId, long[] obj_endId, float colorX, float colorY, float colorZ, float colorW, float thickness); /*MANUAL + auto startId = obj_startId == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_startId, JNI_FALSE); + auto endId = obj_endId == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_endId, JNI_FALSE); + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + auto _result = ax::NodeEditor::QueryNewLink(reinterpret_cast((startId != NULL ? &startId[0] : NULL)), reinterpret_cast((endId != NULL ? &endId[0] : NULL)), color, thickness); + if (startId != NULL) env->ReleasePrimitiveArrayCritical(obj_startId, startId, JNI_FALSE); + if (endId != NULL) env->ReleasePrimitiveArrayCritical(obj_endId, endId, JNI_FALSE); + return _result; + */ + + public static boolean queryNewNode(final ImLong pinId) { + return nQueryNewNode(pinId != null ? pinId.getData() : null); + } + + private static native boolean nQueryNewNode(long[] obj_pinId); /*MANUAL + auto pinId = obj_pinId == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pinId, JNI_FALSE); + auto _result = ax::NodeEditor::QueryNewNode(reinterpret_cast((pinId != NULL ? &pinId[0] : NULL))); + if (pinId != NULL) env->ReleasePrimitiveArrayCritical(obj_pinId, pinId, JNI_FALSE); + return _result; + */ + + public static boolean queryNewNode(final ImLong pinId, final ImVec4 color) { + return nQueryNewNode(pinId != null ? pinId.getData() : null, color.x, color.y, color.z, color.w); + } + + public static boolean queryNewNode(final ImLong pinId, final float colorX, final float colorY, final float colorZ, final float colorW) { + return nQueryNewNode(pinId != null ? pinId.getData() : null, colorX, colorY, colorZ, colorW); + } + + public static boolean queryNewNode(final ImLong pinId, final ImVec4 color, final float thickness) { + return nQueryNewNode(pinId != null ? pinId.getData() : null, color.x, color.y, color.z, color.w, thickness); + } + + public static boolean queryNewNode(final ImLong pinId, final float colorX, final float colorY, final float colorZ, final float colorW, final float thickness) { + return nQueryNewNode(pinId != null ? pinId.getData() : null, colorX, colorY, colorZ, colorW, thickness); + } + + private static native boolean nQueryNewNode(long[] obj_pinId, float colorX, float colorY, float colorZ, float colorW); /*MANUAL + auto pinId = obj_pinId == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pinId, JNI_FALSE); + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + auto _result = ax::NodeEditor::QueryNewNode(reinterpret_cast((pinId != NULL ? &pinId[0] : NULL)), color); + if (pinId != NULL) env->ReleasePrimitiveArrayCritical(obj_pinId, pinId, JNI_FALSE); + return _result; + */ + + private static native boolean nQueryNewNode(long[] obj_pinId, float colorX, float colorY, float colorZ, float colorW, float thickness); /*MANUAL + auto pinId = obj_pinId == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pinId, JNI_FALSE); + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + auto _result = ax::NodeEditor::QueryNewNode(reinterpret_cast((pinId != NULL ? &pinId[0] : NULL)), color, thickness); + if (pinId != NULL) env->ReleasePrimitiveArrayCritical(obj_pinId, pinId, JNI_FALSE); + return _result; + */ + + public static boolean acceptNewItem() { + return nAcceptNewItem(); + } + + private static native boolean nAcceptNewItem(); /* + return ax::NodeEditor::AcceptNewItem(); + */ + + public static boolean acceptNewItem(final ImVec4 color) { + return nAcceptNewItem(color.x, color.y, color.z, color.w); + } + + public static boolean acceptNewItem(final float colorX, final float colorY, final float colorZ, final float colorW) { + return nAcceptNewItem(colorX, colorY, colorZ, colorW); + } + + public static boolean acceptNewItem(final ImVec4 color, final float thickness) { + return nAcceptNewItem(color.x, color.y, color.z, color.w, thickness); + } + + public static boolean acceptNewItem(final float colorX, final float colorY, final float colorZ, final float colorW, final float thickness) { + return nAcceptNewItem(colorX, colorY, colorZ, colorW, thickness); + } + + private static native boolean nAcceptNewItem(float colorX, float colorY, float colorZ, float colorW); /*MANUAL + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + auto _result = ax::NodeEditor::AcceptNewItem(color); + return _result; + */ + + private static native boolean nAcceptNewItem(float colorX, float colorY, float colorZ, float colorW, float thickness); /*MANUAL + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + auto _result = ax::NodeEditor::AcceptNewItem(color, thickness); + return _result; + */ + + public static void rejectNewItem() { + nRejectNewItem(); + } + + private static native void nRejectNewItem(); /* + ax::NodeEditor::RejectNewItem(); + */ + + public static void rejectNewItem(final ImVec4 color) { + nRejectNewItem(color.x, color.y, color.z, color.w); + } + + public static void rejectNewItem(final float colorX, final float colorY, final float colorZ, final float colorW) { + nRejectNewItem(colorX, colorY, colorZ, colorW); + } + + public static void rejectNewItem(final ImVec4 color, final float thickness) { + nRejectNewItem(color.x, color.y, color.z, color.w, thickness); + } + + public static void rejectNewItem(final float colorX, final float colorY, final float colorZ, final float colorW, final float thickness) { + nRejectNewItem(colorX, colorY, colorZ, colorW, thickness); + } + + private static native void nRejectNewItem(float colorX, float colorY, float colorZ, float colorW); /*MANUAL + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + ax::NodeEditor::RejectNewItem(color); + */ + + private static native void nRejectNewItem(float colorX, float colorY, float colorZ, float colorW, float thickness); /*MANUAL + ImVec4 color = ImVec4(colorX, colorY, colorZ, colorW); + ax::NodeEditor::RejectNewItem(color, thickness); + */ + + public static void endCreate() { + nEndCreate(); + } + + private static native void nEndCreate(); /* + ax::NodeEditor::EndCreate(); + */ + + public static boolean beginDelete() { + return nBeginDelete(); + } + + private static native boolean nBeginDelete(); /* + return ax::NodeEditor::BeginDelete(); + */ + + public static boolean queryDeletedLink(final ImLong linkId) { + return nQueryDeletedLink(linkId != null ? linkId.getData() : null); + } + + public static boolean queryDeletedLink(final ImLong linkId, final ImLong startId) { + return nQueryDeletedLink(linkId != null ? linkId.getData() : null, startId != null ? startId.getData() : null); + } + + public static boolean queryDeletedLink(final ImLong linkId, final ImLong startId, final ImLong endId) { + return nQueryDeletedLink(linkId != null ? linkId.getData() : null, startId != null ? startId.getData() : null, endId != null ? endId.getData() : null); + } + + private static native boolean nQueryDeletedLink(long[] obj_linkId); /*MANUAL + auto linkId = obj_linkId == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_linkId, JNI_FALSE); + auto _result = ax::NodeEditor::QueryDeletedLink(reinterpret_cast((linkId != NULL ? &linkId[0] : NULL))); + if (linkId != NULL) env->ReleasePrimitiveArrayCritical(obj_linkId, linkId, JNI_FALSE); + return _result; + */ + + private static native boolean nQueryDeletedLink(long[] obj_linkId, long[] obj_startId); /*MANUAL + auto linkId = obj_linkId == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_linkId, JNI_FALSE); + auto startId = obj_startId == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_startId, JNI_FALSE); + auto _result = ax::NodeEditor::QueryDeletedLink(reinterpret_cast((linkId != NULL ? &linkId[0] : NULL)), reinterpret_cast((startId != NULL ? &startId[0] : NULL))); + if (linkId != NULL) env->ReleasePrimitiveArrayCritical(obj_linkId, linkId, JNI_FALSE); + if (startId != NULL) env->ReleasePrimitiveArrayCritical(obj_startId, startId, JNI_FALSE); + return _result; + */ + + private static native boolean nQueryDeletedLink(long[] obj_linkId, long[] obj_startId, long[] obj_endId); /*MANUAL + auto linkId = obj_linkId == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_linkId, JNI_FALSE); + auto startId = obj_startId == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_startId, JNI_FALSE); + auto endId = obj_endId == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_endId, JNI_FALSE); + auto _result = ax::NodeEditor::QueryDeletedLink(reinterpret_cast((linkId != NULL ? &linkId[0] : NULL)), reinterpret_cast((startId != NULL ? &startId[0] : NULL)), reinterpret_cast((endId != NULL ? &endId[0] : NULL))); + if (linkId != NULL) env->ReleasePrimitiveArrayCritical(obj_linkId, linkId, JNI_FALSE); + if (startId != NULL) env->ReleasePrimitiveArrayCritical(obj_startId, startId, JNI_FALSE); + if (endId != NULL) env->ReleasePrimitiveArrayCritical(obj_endId, endId, JNI_FALSE); + return _result; + */ + + public static boolean queryDeletedNode(final ImLong nodeId) { + return nQueryDeletedNode(nodeId != null ? nodeId.getData() : null); + } + + private static native boolean nQueryDeletedNode(long[] obj_nodeId); /*MANUAL + auto nodeId = obj_nodeId == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_nodeId, JNI_FALSE); + auto _result = ax::NodeEditor::QueryDeletedNode(reinterpret_cast((nodeId != NULL ? &nodeId[0] : NULL))); + if (nodeId != NULL) env->ReleasePrimitiveArrayCritical(obj_nodeId, nodeId, JNI_FALSE); + return _result; + */ + + public static boolean acceptDeletedItem() { + return nAcceptDeletedItem(); + } + + public static boolean acceptDeletedItem(final boolean deleteDependencies) { + return nAcceptDeletedItem(deleteDependencies); + } + + private static native boolean nAcceptDeletedItem(); /* + return ax::NodeEditor::AcceptDeletedItem(); + */ + + private static native boolean nAcceptDeletedItem(boolean deleteDependencies); /* + return ax::NodeEditor::AcceptDeletedItem(deleteDependencies); + */ + + public static void rejectDeletedItem() { + nRejectDeletedItem(); + } + + private static native void nRejectDeletedItem(); /* + ax::NodeEditor::RejectDeletedItem(); + */ + + public static void endDelete() { + nEndDelete(); + } + + private static native void nEndDelete(); /* + ax::NodeEditor::EndDelete(); + */ + + public static void setNodePosition(final long nodeId, final ImVec2 editorPosition) { + nSetNodePosition(nodeId, editorPosition.x, editorPosition.y); + } + + public static void setNodePosition(final long nodeId, final float editorPositionX, final float editorPositionY) { + nSetNodePosition(nodeId, editorPositionX, editorPositionY); + } + + private static native void nSetNodePosition(long nodeId, float editorPositionX, float editorPositionY); /*MANUAL + ImVec2 editorPosition = ImVec2(editorPositionX, editorPositionY); + ax::NodeEditor::SetNodePosition(nodeId, editorPosition); + */ + + public static void setGroupSize(final long nodeId, final ImVec2 size) { + nSetGroupSize(nodeId, size.x, size.y); + } + + public static void setGroupSize(final long nodeId, final float sizeX, final float sizeY) { + nSetGroupSize(nodeId, sizeX, sizeY); + } + + private static native void nSetGroupSize(long nodeId, float sizeX, float sizeY); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + ax::NodeEditor::SetGroupSize(nodeId, size); + */ + + public static ImVec2 getNodePosition(final long nodeId) { + final ImVec2 dst = new ImVec2(); + nGetNodePosition(dst, nodeId); + return dst; + } + + public static float getNodePositionX(final long nodeId) { + return nGetNodePositionX(nodeId); + } + + public static float getNodePositionY(final long nodeId) { + return nGetNodePositionY(nodeId); + } + + public static void getNodePosition(final ImVec2 dst, final long nodeId) { + nGetNodePosition(dst, nodeId); + } + + private static native void nGetNodePosition(ImVec2 dst, long nodeId); /* + Jni::ImVec2Cpy(env, ax::NodeEditor::GetNodePosition(nodeId), dst); + */ + + private static native float nGetNodePositionX(long nodeId); /* + return ax::NodeEditor::GetNodePosition(nodeId).x; + */ + + private static native float nGetNodePositionY(long nodeId); /* + return ax::NodeEditor::GetNodePosition(nodeId).y; + */ + + public static ImVec2 getNodeSize(final long nodeId) { + final ImVec2 dst = new ImVec2(); + nGetNodeSize(dst, nodeId); + return dst; + } + + public static float getNodeSizeX(final long nodeId) { + return nGetNodeSizeX(nodeId); + } + + public static float getNodeSizeY(final long nodeId) { + return nGetNodeSizeY(nodeId); + } + + public static void getNodeSize(final ImVec2 dst, final long nodeId) { + nGetNodeSize(dst, nodeId); + } + + private static native void nGetNodeSize(ImVec2 dst, long nodeId); /* + Jni::ImVec2Cpy(env, ax::NodeEditor::GetNodeSize(nodeId), dst); + */ + + private static native float nGetNodeSizeX(long nodeId); /* + return ax::NodeEditor::GetNodeSize(nodeId).x; + */ + + private static native float nGetNodeSizeY(long nodeId); /* + return ax::NodeEditor::GetNodeSize(nodeId).y; + */ + + public static void centerNodeOnScreen(final long nodeId) { + nCenterNodeOnScreen(nodeId); + } + + private static native void nCenterNodeOnScreen(long nodeId); /* + ax::NodeEditor::CenterNodeOnScreen(nodeId); + */ + + public static void setNodeZPosition(final long nodeId, final float z) { + nSetNodeZPosition(nodeId, z); + } + + private static native void nSetNodeZPosition(long nodeId, float z); /* + ax::NodeEditor::SetNodeZPosition(nodeId, z); + */ + + public static float getNodeZPosition(final long nodeId) { + return nGetNodeZPosition(nodeId); + } + + private static native float nGetNodeZPosition(long nodeId); /* + return ax::NodeEditor::GetNodeZPosition(nodeId); + */ + + public static void restoreNodeState(final long nodeId) { + nRestoreNodeState(nodeId); + } + + private static native void nRestoreNodeState(long nodeId); /* + ax::NodeEditor::RestoreNodeState(nodeId); + */ + + public static void suspend() { + nSuspend(); + } + + private static native void nSuspend(); /* + ax::NodeEditor::Suspend(); + */ + + public static void resume() { + nResume(); + } + + private static native void nResume(); /* + ax::NodeEditor::Resume(); + */ + + public static boolean isSuspended() { + return nIsSuspended(); + } + + private static native boolean nIsSuspended(); /* + return ax::NodeEditor::IsSuspended(); + */ + + public static boolean isActive() { + return nIsActive(); + } + + private static native boolean nIsActive(); /* + return ax::NodeEditor::IsActive(); + */ + + public static boolean hasSelectionChanged() { + return nHasSelectionChanged(); + } + + private static native boolean nHasSelectionChanged(); /* + return ax::NodeEditor::HasSelectionChanged(); + */ + + public static int getSelectedObjectCount() { + return nGetSelectedObjectCount(); + } + + private static native int nGetSelectedObjectCount(); /* + return ax::NodeEditor::GetSelectedObjectCount(); + */ + + public static int getSelectedNodes(final long[] nodes, final int size) { + return nGetSelectedNodes(nodes, size); + } + + private static native int nGetSelectedNodes(long[] obj_nodes, int size); /*MANUAL + auto nodes = obj_nodes == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_nodes, JNI_FALSE); + auto _result = ax::NodeEditor::GetSelectedNodes(reinterpret_cast(&nodes[0]), size); + if (nodes != NULL) env->ReleasePrimitiveArrayCritical(obj_nodes, nodes, JNI_FALSE); + return _result; + */ + + public static int getSelectedLinks(final long[] links, final int size) { + return nGetSelectedLinks(links, size); + } + + private static native int nGetSelectedLinks(long[] obj_links, int size); /*MANUAL + auto links = obj_links == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_links, JNI_FALSE); + auto _result = ax::NodeEditor::GetSelectedLinks(reinterpret_cast(&links[0]), size); + if (links != NULL) env->ReleasePrimitiveArrayCritical(obj_links, links, JNI_FALSE); + return _result; + */ + + public static boolean isNodeSelected(final long nodeId) { + return nIsNodeSelected(nodeId); + } + + private static native boolean nIsNodeSelected(long nodeId); /* + return ax::NodeEditor::IsNodeSelected(nodeId); + */ + + public static boolean isLinkSelected(final long linkId) { + return nIsLinkSelected(linkId); + } + + private static native boolean nIsLinkSelected(long linkId); /* + return ax::NodeEditor::IsLinkSelected(linkId); + */ + + public static void clearSelection() { + nClearSelection(); + } + + private static native void nClearSelection(); /* + ax::NodeEditor::ClearSelection(); + */ + + public static void selectNode(final long nodeId) { + nSelectNode(nodeId); + } + + public static void selectNode(final long nodeId, final boolean append) { + nSelectNode(nodeId, append); + } + + private static native void nSelectNode(long nodeId); /* + ax::NodeEditor::SelectNode(nodeId); + */ + + private static native void nSelectNode(long nodeId, boolean append); /* + ax::NodeEditor::SelectNode(nodeId, append); + */ + + public static void selectLink(final long linkId) { + nSelectLink(linkId); + } + + public static void selectLink(final long linkId, final boolean append) { + nSelectLink(linkId, append); + } + + private static native void nSelectLink(long linkId); /* + ax::NodeEditor::SelectLink(linkId); + */ + + private static native void nSelectLink(long linkId, boolean append); /* + ax::NodeEditor::SelectLink(linkId, append); + */ + + public static void deselectNode(final long nodeId) { + nDeselectNode(nodeId); + } + + private static native void nDeselectNode(long nodeId); /* + ax::NodeEditor::DeselectNode(nodeId); + */ + + public static void deselectLink(final long linkId) { + nDeselectLink(linkId); + } + + private static native void nDeselectLink(long linkId); /* + ax::NodeEditor::DeselectLink(linkId); + */ + + public static boolean deleteNode(final long nodeId) { + return nDeleteNode(nodeId); + } + + private static native boolean nDeleteNode(long nodeId); /* + return ax::NodeEditor::DeleteNode(nodeId); + */ + + public static boolean deleteLink(final long linkId) { + return nDeleteLink(linkId); + } + + private static native boolean nDeleteLink(long linkId); /* + return ax::NodeEditor::DeleteLink(linkId); + */ + + public static boolean hasAnyLinksNode(final long nodeId) { + return nHasAnyLinksNode(nodeId); + } + + private static native boolean nHasAnyLinksNode(long nodeId); /* + return ax::NodeEditor::HasAnyLinks(static_cast(nodeId)); + */ + + public static boolean hasAnyLinksPin(final long pinId) { + return nHasAnyLinksPin(pinId); + } + + private static native boolean nHasAnyLinksPin(long pinId); /* + return ax::NodeEditor::HasAnyLinks(static_cast(pinId)); + */ + + public static int breakLinksNode(final long nodeId) { + return nBreakLinksNode(nodeId); + } + + private static native int nBreakLinksNode(long nodeId); /* + return ax::NodeEditor::BreakLinks(static_cast(nodeId)); + */ + + public static int breakLinksPin(final long pinId) { + return nBreakLinksPin(pinId); + } + + private static native int nBreakLinksPin(long pinId); /* + return ax::NodeEditor::BreakLinks(static_cast(pinId)); + */ + + public static void navigateToContent() { + nNavigateToContent(); + } + + public static void navigateToContent(final float duration) { + nNavigateToContent(duration); + } + + private static native void nNavigateToContent(); /* + ax::NodeEditor::NavigateToContent(); + */ + + private static native void nNavigateToContent(float duration); /* + ax::NodeEditor::NavigateToContent(duration); + */ + + public static void navigateToSelection() { + nNavigateToSelection(); + } + + public static void navigateToSelection(final boolean zoomIn) { + nNavigateToSelection(zoomIn); + } + + public static void navigateToSelection(final boolean zoomIn, final float duration) { + nNavigateToSelection(zoomIn, duration); + } + + public static void navigateToSelection(final float duration) { + nNavigateToSelection(duration); + } + + private static native void nNavigateToSelection(); /* + ax::NodeEditor::NavigateToSelection(); + */ + + private static native void nNavigateToSelection(boolean zoomIn); /* + ax::NodeEditor::NavigateToSelection(zoomIn); + */ + + private static native void nNavigateToSelection(boolean zoomIn, float duration); /* + ax::NodeEditor::NavigateToSelection(zoomIn, duration); + */ + + private static native void nNavigateToSelection(float duration); /* + ax::NodeEditor::NavigateToSelection(false, duration); + */ + + public static boolean showNodeContextMenu(final ImLong nodeId) { + return nShowNodeContextMenu(nodeId != null ? nodeId.getData() : null); + } + + private static native boolean nShowNodeContextMenu(long[] obj_nodeId); /*MANUAL + auto nodeId = obj_nodeId == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_nodeId, JNI_FALSE); + auto _result = ax::NodeEditor::ShowNodeContextMenu(reinterpret_cast((nodeId != NULL ? &nodeId[0] : NULL))); + if (nodeId != NULL) env->ReleasePrimitiveArrayCritical(obj_nodeId, nodeId, JNI_FALSE); + return _result; + */ + + public static boolean showPinContextMenu(final ImLong pinId) { + return nShowPinContextMenu(pinId != null ? pinId.getData() : null); + } + + private static native boolean nShowPinContextMenu(long[] obj_pinId); /*MANUAL + auto pinId = obj_pinId == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_pinId, JNI_FALSE); + auto _result = ax::NodeEditor::ShowPinContextMenu(reinterpret_cast((pinId != NULL ? &pinId[0] : NULL))); + if (pinId != NULL) env->ReleasePrimitiveArrayCritical(obj_pinId, pinId, JNI_FALSE); + return _result; + */ + + public static boolean showLinkContextMenu(final ImLong linkId) { + return nShowLinkContextMenu(linkId != null ? linkId.getData() : null); + } + + private static native boolean nShowLinkContextMenu(long[] obj_linkId); /*MANUAL + auto linkId = obj_linkId == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_linkId, JNI_FALSE); + auto _result = ax::NodeEditor::ShowLinkContextMenu(reinterpret_cast((linkId != NULL ? &linkId[0] : NULL))); + if (linkId != NULL) env->ReleasePrimitiveArrayCritical(obj_linkId, linkId, JNI_FALSE); + return _result; + */ + + public static native long getNodeWithContextMenu(); /* + ax::NodeEditor::NodeId id; + return ax::NodeEditor::ShowNodeContextMenu(&id) ? (intptr_t)(uintptr_t)id : -1; + */ + + public static native long getPinWithContextMenu(); /* + ax::NodeEditor::PinId id; + return ax::NodeEditor::ShowPinContextMenu(&id) ? (intptr_t)(uintptr_t)id : -1; + */ + + public static native long getLinkWithContextMenu(); /* + ax::NodeEditor::LinkId id; + return ax::NodeEditor::ShowLinkContextMenu(&id) ? (intptr_t)(uintptr_t)id : -1; + */ + + public static boolean showBackgroundContextMenu() { + return nShowBackgroundContextMenu(); + } + + private static native boolean nShowBackgroundContextMenu(); /* + return ax::NodeEditor::ShowBackgroundContextMenu(); + */ + + public static void enableShortcuts(final boolean enable) { + nEnableShortcuts(enable); + } + + private static native void nEnableShortcuts(boolean enable); /* + ax::NodeEditor::EnableShortcuts(enable); + */ + + public static boolean areShortcutsEnabled() { + return nAreShortcutsEnabled(); + } + + private static native boolean nAreShortcutsEnabled(); /* + return ax::NodeEditor::AreShortcutsEnabled(); + */ + + public static boolean beginShortcut() { + return nBeginShortcut(); + } + + private static native boolean nBeginShortcut(); /* + return ax::NodeEditor::BeginShortcut(); + */ + + public static boolean acceptCut() { + return nAcceptCut(); + } + + private static native boolean nAcceptCut(); /* + return ax::NodeEditor::AcceptCut(); + */ + + public static boolean acceptCopy() { + return nAcceptCopy(); + } + + private static native boolean nAcceptCopy(); /* + return ax::NodeEditor::AcceptCopy(); + */ + + public static boolean acceptPaste() { + return nAcceptPaste(); + } + + private static native boolean nAcceptPaste(); /* + return ax::NodeEditor::AcceptPaste(); + */ + + public static boolean acceptDuplicate() { + return nAcceptDuplicate(); + } + + private static native boolean nAcceptDuplicate(); /* + return ax::NodeEditor::AcceptDuplicate(); + */ + + public static boolean acceptCreateNode() { + return nAcceptCreateNode(); + } + + private static native boolean nAcceptCreateNode(); /* + return ax::NodeEditor::AcceptCreateNode(); + */ + + public static int getActionContextSize() { + return nGetActionContextSize(); + } + + private static native int nGetActionContextSize(); /* + return ax::NodeEditor::GetActionContextSize(); + */ + + public static int getActionContextNodes(final long[] nodes, final int size) { + return nGetActionContextNodes(nodes, size); + } + + private static native int nGetActionContextNodes(long[] obj_nodes, int size); /*MANUAL + auto nodes = obj_nodes == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_nodes, JNI_FALSE); + auto _result = ax::NodeEditor::GetActionContextNodes(reinterpret_cast(&nodes[0]), size); + if (nodes != NULL) env->ReleasePrimitiveArrayCritical(obj_nodes, nodes, JNI_FALSE); + return _result; + */ + + public static int getActionContextLinks(final long[] links, final int size) { + return nGetActionContextLinks(links, size); + } + + private static native int nGetActionContextLinks(long[] obj_links, int size); /*MANUAL + auto links = obj_links == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_links, JNI_FALSE); + auto _result = ax::NodeEditor::GetActionContextLinks(reinterpret_cast(&links[0]), size); + if (links != NULL) env->ReleasePrimitiveArrayCritical(obj_links, links, JNI_FALSE); + return _result; + */ + + public static void endShortcut() { + nEndShortcut(); + } + + private static native void nEndShortcut(); /* + ax::NodeEditor::EndShortcut(); + */ + + public static float getCurrentZoom() { + return nGetCurrentZoom(); + } + + private static native float nGetCurrentZoom(); /* + return ax::NodeEditor::GetCurrentZoom(); + */ + + public static long getHoveredNode() { + return nGetHoveredNode(); + } + + private static native long nGetHoveredNode(); /* + return (intptr_t)(uintptr_t)ax::NodeEditor::GetHoveredNode(); + */ + + public static long getHoveredPin() { + return nGetHoveredPin(); + } + + private static native long nGetHoveredPin(); /* + return (intptr_t)(uintptr_t)ax::NodeEditor::GetHoveredPin(); + */ + + public static long getHoveredLink() { + return nGetHoveredLink(); + } + + private static native long nGetHoveredLink(); /* + return (intptr_t)(uintptr_t)ax::NodeEditor::GetHoveredLink(); + */ + + public static long getDoubleClickedNode() { + return nGetDoubleClickedNode(); + } + + private static native long nGetDoubleClickedNode(); /* + return (intptr_t)(uintptr_t)ax::NodeEditor::GetDoubleClickedNode(); + */ + + public static long getDoubleClickedPin() { + return nGetDoubleClickedPin(); + } + + private static native long nGetDoubleClickedPin(); /* + return (intptr_t)(uintptr_t)ax::NodeEditor::GetDoubleClickedPin(); + */ + + public static long getDoubleClickedLink() { + return nGetDoubleClickedLink(); + } + + private static native long nGetDoubleClickedLink(); /* + return (intptr_t)(uintptr_t)ax::NodeEditor::GetDoubleClickedLink(); + */ + + public static boolean isBackgroundClicked() { + return nIsBackgroundClicked(); + } + + private static native boolean nIsBackgroundClicked(); /* + return ax::NodeEditor::IsBackgroundClicked(); + */ + + public static boolean isBackgroundDoubleClicked() { + return nIsBackgroundDoubleClicked(); + } + + private static native boolean nIsBackgroundDoubleClicked(); /* + return ax::NodeEditor::IsBackgroundDoubleClicked(); + */ + + public static boolean getLinkPins(final long linkId, final ImLong startPinId, final ImLong endPinId) { + return nGetLinkPins(linkId, startPinId != null ? startPinId.getData() : null, endPinId != null ? endPinId.getData() : null); + } + + private static native boolean nGetLinkPins(long linkId, long[] obj_startPinId, long[] obj_endPinId); /*MANUAL + auto startPinId = obj_startPinId == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_startPinId, JNI_FALSE); + auto endPinId = obj_endPinId == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_endPinId, JNI_FALSE); + auto _result = ax::NodeEditor::GetLinkPins(static_cast(linkId), reinterpret_cast((startPinId != NULL ? &startPinId[0] : NULL)), reinterpret_cast((endPinId != NULL ? &endPinId[0] : NULL))); + if (startPinId != NULL) env->ReleasePrimitiveArrayCritical(obj_startPinId, startPinId, JNI_FALSE); + if (endPinId != NULL) env->ReleasePrimitiveArrayCritical(obj_endPinId, endPinId, JNI_FALSE); + return _result; + */ + + public static boolean pinHadAnyLinks(final long pinId) { + return nPinHadAnyLinks(pinId); + } + + private static native boolean nPinHadAnyLinks(long pinId); /* + return ax::NodeEditor::PinHadAnyLinks(static_cast(pinId)); + */ + + public static ImVec2 getScreenSize() { + final ImVec2 dst = new ImVec2(); + nGetScreenSize(dst); + return dst; + } + + public static float getScreenSizeX() { + return nGetScreenSizeX(); + } + + public static float getScreenSizeY() { + return nGetScreenSizeY(); + } + + public static void getScreenSize(final ImVec2 dst) { + nGetScreenSize(dst); + } + + private static native void nGetScreenSize(ImVec2 dst); /* + Jni::ImVec2Cpy(env, ax::NodeEditor::GetScreenSize(), dst); + */ + + private static native float nGetScreenSizeX(); /* + return ax::NodeEditor::GetScreenSize().x; + */ + + private static native float nGetScreenSizeY(); /* + return ax::NodeEditor::GetScreenSize().y; + */ + + public static ImVec2 screenToCanvas(final ImVec2 pos) { + final ImVec2 dst = new ImVec2(); + nScreenToCanvas(dst, pos.x, pos.y); + return dst; + } + + public static ImVec2 screenToCanvas(final float posX, final float posY) { + final ImVec2 dst = new ImVec2(); + nScreenToCanvas(dst, posX, posY); + return dst; + } + + public static float screenToCanvasX(final ImVec2 pos) { + return nScreenToCanvasX(pos.x, pos.y); + } + + public static float screenToCanvasY(final ImVec2 pos) { + return nScreenToCanvasY(pos.x, pos.y); + } + + public static void screenToCanvas(final ImVec2 dst, final ImVec2 pos) { + nScreenToCanvas(dst, pos.x, pos.y); + } + + private static native void nScreenToCanvas(ImVec2 dst, float posX, float posY); /*MANUAL + ImVec2 pos = ImVec2(posX, posY); + Jni::ImVec2Cpy(env, ax::NodeEditor::ScreenToCanvas(pos), dst); + */ + + private static native float nScreenToCanvasX(float posX, float posY); /*MANUAL + ImVec2 pos = ImVec2(posX, posY); + auto _result = ax::NodeEditor::ScreenToCanvas(pos).x; + return _result; + */ + + private static native float nScreenToCanvasY(float posX, float posY); /*MANUAL + ImVec2 pos = ImVec2(posX, posY); + auto _result = ax::NodeEditor::ScreenToCanvas(pos).y; + return _result; + */ + + public static ImVec2 canvasToScreen(final ImVec2 pos) { + final ImVec2 dst = new ImVec2(); + nCanvasToScreen(dst, pos.x, pos.y); + return dst; + } + + public static ImVec2 canvasToScreen(final float posX, final float posY) { + final ImVec2 dst = new ImVec2(); + nCanvasToScreen(dst, posX, posY); + return dst; + } + + public static float canvasToScreenX(final ImVec2 pos) { + return nCanvasToScreenX(pos.x, pos.y); + } + + public static float canvasToScreenY(final ImVec2 pos) { + return nCanvasToScreenY(pos.x, pos.y); + } + + public static void canvasToScreen(final ImVec2 dst, final ImVec2 pos) { + nCanvasToScreen(dst, pos.x, pos.y); + } + + private static native void nCanvasToScreen(ImVec2 dst, float posX, float posY); /*MANUAL + ImVec2 pos = ImVec2(posX, posY); + Jni::ImVec2Cpy(env, ax::NodeEditor::CanvasToScreen(pos), dst); + */ + + private static native float nCanvasToScreenX(float posX, float posY); /*MANUAL + ImVec2 pos = ImVec2(posX, posY); + auto _result = ax::NodeEditor::CanvasToScreen(pos).x; + return _result; + */ + + private static native float nCanvasToScreenY(float posX, float posY); /*MANUAL + ImVec2 pos = ImVec2(posX, posY); + auto _result = ax::NodeEditor::CanvasToScreen(pos).y; + return _result; + */ + + public static int getNodeCount() { + return nGetNodeCount(); + } + + private static native int nGetNodeCount(); /* + return ax::NodeEditor::GetNodeCount(); + */ + + public static int getOrderedNodeIds(final long[] nodes, final int size) { + return nGetOrderedNodeIds(nodes, size); + } + + private static native int nGetOrderedNodeIds(long[] obj_nodes, int size); /*MANUAL + auto nodes = obj_nodes == NULL ? NULL : (long*)env->GetPrimitiveArrayCritical(obj_nodes, JNI_FALSE); + auto _result = ax::NodeEditor::GetOrderedNodeIds(reinterpret_cast(&nodes[0]), size); + if (nodes != NULL) env->ReleasePrimitiveArrayCritical(obj_nodes, nodes, JNI_FALSE); + return _result; + */ + + /*JNI + #undef NodeEditorConfig + #undef NodeEditorStyle + #undef NodeEditorContext + */ +} diff --git a/imgui-binding/src/generated/java/imgui/extension/nodeditor/NodeEditorConfig.java b/imgui-binding/src/generated/java/imgui/extension/nodeditor/NodeEditorConfig.java new file mode 100644 index 0000000..07a578d --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/nodeditor/NodeEditorConfig.java @@ -0,0 +1,105 @@ +package imgui.extension.nodeditor; + +import imgui.binding.ImGuiStructDestroyable; + +public final class NodeEditorConfig extends ImGuiStructDestroyable { + @Override + protected long create() { + return nCreate(); + } + + /*JNI + #include "_nodeeditor.h" + #define THIS ((ax::NodeEditor::Config*)STRUCT_PTR) + */ + + private native long nCreate(); /* + return (intptr_t)(new ax::NodeEditor::Config()); + */ + + public String getSettingsFile() { + return nGetSettingsFile(); + } + + public void setSettingsFile(final String value) { + nSetSettingsFile(value); + } + + private native String nGetSettingsFile(); /* + return env->NewStringUTF(THIS->SettingsFile); + */ + + private native void nSetSettingsFile(String value); /*MANUAL + auto value = obj_value == NULL ? NULL : (char*)env->GetStringUTFChars(obj_value, JNI_FALSE); + THIS->SettingsFile = value; + if (value != NULL) env->ReleaseStringUTFChars(obj_value, value); + */ + + public int getDragButtonIndex() { + return nGetDragButtonIndex(); + } + + public void setDragButtonIndex(final int value) { + nSetDragButtonIndex(value); + } + + private native int nGetDragButtonIndex(); /* + return THIS->DragButtonIndex; + */ + + private native void nSetDragButtonIndex(int value); /* + THIS->DragButtonIndex = value; + */ + + public int getSelectButtonIndex() { + return nGetSelectButtonIndex(); + } + + public void setSelectButtonIndex(final int value) { + nSetSelectButtonIndex(value); + } + + private native int nGetSelectButtonIndex(); /* + return THIS->SelectButtonIndex; + */ + + private native void nSetSelectButtonIndex(int value); /* + THIS->SelectButtonIndex = value; + */ + + public int getNavigateButtonIndex() { + return nGetNavigateButtonIndex(); + } + + public void setNavigateButtonIndex(final int value) { + nSetNavigateButtonIndex(value); + } + + private native int nGetNavigateButtonIndex(); /* + return THIS->NavigateButtonIndex; + */ + + private native void nSetNavigateButtonIndex(int value); /* + THIS->NavigateButtonIndex = value; + */ + + public int getContextMenuButtonIndex() { + return nGetContextMenuButtonIndex(); + } + + public void setContextMenuButtonIndex(final int value) { + nSetContextMenuButtonIndex(value); + } + + private native int nGetContextMenuButtonIndex(); /* + return THIS->ContextMenuButtonIndex; + */ + + private native void nSetContextMenuButtonIndex(int value); /* + THIS->ContextMenuButtonIndex = value; + */ + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/extension/nodeditor/NodeEditorContext.java b/imgui-binding/src/generated/java/imgui/extension/nodeditor/NodeEditorContext.java new file mode 100644 index 0000000..6777acc --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/nodeditor/NodeEditorContext.java @@ -0,0 +1,9 @@ +package imgui.extension.nodeditor; + +import imgui.binding.ImGuiStruct; + +public final class NodeEditorContext extends ImGuiStruct { + public NodeEditorContext(final long ptr) { + super(ptr); + } +} diff --git a/imgui-binding/src/generated/java/imgui/extension/nodeditor/NodeEditorStyle.java b/imgui-binding/src/generated/java/imgui/extension/nodeditor/NodeEditorStyle.java new file mode 100644 index 0000000..184e79d --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/nodeditor/NodeEditorStyle.java @@ -0,0 +1,582 @@ +package imgui.extension.nodeditor; + +import imgui.ImVec2; +import imgui.ImVec4; +import imgui.binding.ImGuiStruct; + +public final class NodeEditorStyle extends ImGuiStruct { + public NodeEditorStyle(final long ptr) { + super(ptr); + } + + /*JNI + #include "_nodeeditor.h" + #define THIS ((ax::NodeEditor::Style*)STRUCT_PTR) + */ + + public ImVec4 getNodePadding() { + final ImVec4 dst = new ImVec4(); + nGetNodePadding(dst); + return dst; + } + + public float getNodePaddingX() { + return nGetNodePaddingX(); + } + + public float getNodePaddingY() { + return nGetNodePaddingY(); + } + + public float getNodePaddingZ() { + return nGetNodePaddingZ(); + } + + public float getNodePaddingW() { + return nGetNodePaddingW(); + } + + public void getNodePadding(final ImVec4 dst) { + nGetNodePadding(dst); + } + + public void setNodePadding(final ImVec4 value) { + nSetNodePadding(value.x, value.y, value.z, value.w); + } + + public void setNodePadding(final float valueX, final float valueY, final float valueZ, final float valueW) { + nSetNodePadding(valueX, valueY, valueZ, valueW); + } + + private native void nGetNodePadding(ImVec4 dst); /* + Jni::ImVec4Cpy(env, THIS->NodePadding, dst); + */ + + private native float nGetNodePaddingX(); /* + return THIS->NodePadding.x; + */ + + private native float nGetNodePaddingY(); /* + return THIS->NodePadding.y; + */ + + private native float nGetNodePaddingZ(); /* + return THIS->NodePadding.z; + */ + + private native float nGetNodePaddingW(); /* + return THIS->NodePadding.w; + */ + + private native void nSetNodePadding(float valueX, float valueY, float valueZ, float valueW); /*MANUAL + ImVec4 value = ImVec4(valueX, valueY, valueZ, valueW); + THIS->NodePadding = value; + */ + + public float getNodeRounding() { + return nGetNodeRounding(); + } + + public void setNodeRounding(final float value) { + nSetNodeRounding(value); + } + + private native float nGetNodeRounding(); /* + return THIS->NodeRounding; + */ + + private native void nSetNodeRounding(float value); /* + THIS->NodeRounding = value; + */ + + public float getNodeBorderWidth() { + return nGetNodeBorderWidth(); + } + + public void setNodeBorderWidth(final float value) { + nSetNodeBorderWidth(value); + } + + private native float nGetNodeBorderWidth(); /* + return THIS->NodeBorderWidth; + */ + + private native void nSetNodeBorderWidth(float value); /* + THIS->NodeBorderWidth = value; + */ + + public float getHoveredNodeBorderWidth() { + return nGetHoveredNodeBorderWidth(); + } + + public void setHoveredNodeBorderWidth(final float value) { + nSetHoveredNodeBorderWidth(value); + } + + private native float nGetHoveredNodeBorderWidth(); /* + return THIS->HoveredNodeBorderWidth; + */ + + private native void nSetHoveredNodeBorderWidth(float value); /* + THIS->HoveredNodeBorderWidth = value; + */ + + public float getSelectedNodeBorderWidth() { + return nGetSelectedNodeBorderWidth(); + } + + public void setSelectedNodeBorderWidth(final float value) { + nSetSelectedNodeBorderWidth(value); + } + + private native float nGetSelectedNodeBorderWidth(); /* + return THIS->SelectedNodeBorderWidth; + */ + + private native void nSetSelectedNodeBorderWidth(float value); /* + THIS->SelectedNodeBorderWidth = value; + */ + + public float getPinRounding() { + return nGetPinRounding(); + } + + public void setPinRounding(final float value) { + nSetPinRounding(value); + } + + private native float nGetPinRounding(); /* + return THIS->PinRounding; + */ + + private native void nSetPinRounding(float value); /* + THIS->PinRounding = value; + */ + + public float getPinBorderWidth() { + return nGetPinBorderWidth(); + } + + public void setPinBorderWidth(final float value) { + nSetPinBorderWidth(value); + } + + private native float nGetPinBorderWidth(); /* + return THIS->PinBorderWidth; + */ + + private native void nSetPinBorderWidth(float value); /* + THIS->PinBorderWidth = value; + */ + + public float getLinkStrength() { + return nGetLinkStrength(); + } + + public void setLinkStrength(final float value) { + nSetLinkStrength(value); + } + + private native float nGetLinkStrength(); /* + return THIS->LinkStrength; + */ + + private native void nSetLinkStrength(float value); /* + THIS->LinkStrength = value; + */ + + public ImVec2 getSourceDirection() { + final ImVec2 dst = new ImVec2(); + nGetSourceDirection(dst); + return dst; + } + + public float getSourceDirectionX() { + return nGetSourceDirectionX(); + } + + public float getSourceDirectionY() { + return nGetSourceDirectionY(); + } + + public void getSourceDirection(final ImVec2 dst) { + nGetSourceDirection(dst); + } + + public void setSourceDirection(final ImVec2 value) { + nSetSourceDirection(value.x, value.y); + } + + public void setSourceDirection(final float valueX, final float valueY) { + nSetSourceDirection(valueX, valueY); + } + + private native void nGetSourceDirection(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->SourceDirection, dst); + */ + + private native float nGetSourceDirectionX(); /* + return THIS->SourceDirection.x; + */ + + private native float nGetSourceDirectionY(); /* + return THIS->SourceDirection.y; + */ + + private native void nSetSourceDirection(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->SourceDirection = value; + */ + + public ImVec2 getTargetDirection() { + final ImVec2 dst = new ImVec2(); + nGetTargetDirection(dst); + return dst; + } + + public float getTargetDirectionX() { + return nGetTargetDirectionX(); + } + + public float getTargetDirectionY() { + return nGetTargetDirectionY(); + } + + public void getTargetDirection(final ImVec2 dst) { + nGetTargetDirection(dst); + } + + public void setTargetDirection(final ImVec2 value) { + nSetTargetDirection(value.x, value.y); + } + + public void setTargetDirection(final float valueX, final float valueY) { + nSetTargetDirection(valueX, valueY); + } + + private native void nGetTargetDirection(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->TargetDirection, dst); + */ + + private native float nGetTargetDirectionX(); /* + return THIS->TargetDirection.x; + */ + + private native float nGetTargetDirectionY(); /* + return THIS->TargetDirection.y; + */ + + private native void nSetTargetDirection(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->TargetDirection = value; + */ + + public float getScrollDuration() { + return nGetScrollDuration(); + } + + public void setScrollDuration(final float value) { + nSetScrollDuration(value); + } + + private native float nGetScrollDuration(); /* + return THIS->ScrollDuration; + */ + + private native void nSetScrollDuration(float value); /* + THIS->ScrollDuration = value; + */ + + public float getFlowMarkerDistance() { + return nGetFlowMarkerDistance(); + } + + public void setFlowMarkerDistance(final float value) { + nSetFlowMarkerDistance(value); + } + + private native float nGetFlowMarkerDistance(); /* + return THIS->FlowMarkerDistance; + */ + + private native void nSetFlowMarkerDistance(float value); /* + THIS->FlowMarkerDistance = value; + */ + + public float getFlowSpeed() { + return nGetFlowSpeed(); + } + + public void setFlowSpeed(final float value) { + nSetFlowSpeed(value); + } + + private native float nGetFlowSpeed(); /* + return THIS->FlowSpeed; + */ + + private native void nSetFlowSpeed(float value); /* + THIS->FlowSpeed = value; + */ + + public float getFlowDuration() { + return nGetFlowDuration(); + } + + public void setFlowDuration(final float value) { + nSetFlowDuration(value); + } + + private native float nGetFlowDuration(); /* + return THIS->FlowDuration; + */ + + private native void nSetFlowDuration(float value); /* + THIS->FlowDuration = value; + */ + + public ImVec2 getPivotAlignment() { + final ImVec2 dst = new ImVec2(); + nGetPivotAlignment(dst); + return dst; + } + + public float getPivotAlignmentX() { + return nGetPivotAlignmentX(); + } + + public float getPivotAlignmentY() { + return nGetPivotAlignmentY(); + } + + public void getPivotAlignment(final ImVec2 dst) { + nGetPivotAlignment(dst); + } + + public void setPivotAlignment(final ImVec2 value) { + nSetPivotAlignment(value.x, value.y); + } + + public void setPivotAlignment(final float valueX, final float valueY) { + nSetPivotAlignment(valueX, valueY); + } + + private native void nGetPivotAlignment(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->PivotAlignment, dst); + */ + + private native float nGetPivotAlignmentX(); /* + return THIS->PivotAlignment.x; + */ + + private native float nGetPivotAlignmentY(); /* + return THIS->PivotAlignment.y; + */ + + private native void nSetPivotAlignment(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->PivotAlignment = value; + */ + + public ImVec2 getPivotSize() { + final ImVec2 dst = new ImVec2(); + nGetPivotSize(dst); + return dst; + } + + public float getPivotSizeX() { + return nGetPivotSizeX(); + } + + public float getPivotSizeY() { + return nGetPivotSizeY(); + } + + public void getPivotSize(final ImVec2 dst) { + nGetPivotSize(dst); + } + + public void setPivotSize(final ImVec2 value) { + nSetPivotSize(value.x, value.y); + } + + public void setPivotSize(final float valueX, final float valueY) { + nSetPivotSize(valueX, valueY); + } + + private native void nGetPivotSize(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->PivotSize, dst); + */ + + private native float nGetPivotSizeX(); /* + return THIS->PivotSize.x; + */ + + private native float nGetPivotSizeY(); /* + return THIS->PivotSize.y; + */ + + private native void nSetPivotSize(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->PivotSize = value; + */ + + public ImVec2 getPivotScale() { + final ImVec2 dst = new ImVec2(); + nGetPivotScale(dst); + return dst; + } + + public float getPivotScaleX() { + return nGetPivotScaleX(); + } + + public float getPivotScaleY() { + return nGetPivotScaleY(); + } + + public void getPivotScale(final ImVec2 dst) { + nGetPivotScale(dst); + } + + public void setPivotScale(final ImVec2 value) { + nSetPivotScale(value.x, value.y); + } + + public void setPivotScale(final float valueX, final float valueY) { + nSetPivotScale(valueX, valueY); + } + + private native void nGetPivotScale(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->PivotScale, dst); + */ + + private native float nGetPivotScaleX(); /* + return THIS->PivotScale.x; + */ + + private native float nGetPivotScaleY(); /* + return THIS->PivotScale.y; + */ + + private native void nSetPivotScale(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->PivotScale = value; + */ + + public float getPinCorners() { + return nGetPinCorners(); + } + + public void setPinCorners(final float value) { + nSetPinCorners(value); + } + + private native float nGetPinCorners(); /* + return THIS->PinCorners; + */ + + private native void nSetPinCorners(float value); /* + THIS->PinCorners = value; + */ + + public float getPinRadius() { + return nGetPinRadius(); + } + + public void setPinRadius(final float value) { + nSetPinRadius(value); + } + + private native float nGetPinRadius(); /* + return THIS->PinRadius; + */ + + private native void nSetPinRadius(float value); /* + THIS->PinRadius = value; + */ + + public float getPinArrowSize() { + return nGetPinArrowSize(); + } + + public void setPinArrowSize(final float value) { + nSetPinArrowSize(value); + } + + private native float nGetPinArrowSize(); /* + return THIS->PinArrowSize; + */ + + private native void nSetPinArrowSize(float value); /* + THIS->PinArrowSize = value; + */ + + public float getPinArrowWidth() { + return nGetPinArrowWidth(); + } + + public void setPinArrowWidth(final float value) { + nSetPinArrowWidth(value); + } + + private native float nGetPinArrowWidth(); /* + return THIS->PinArrowWidth; + */ + + private native void nSetPinArrowWidth(float value); /* + THIS->PinArrowWidth = value; + */ + + public float getGroupRounding() { + return nGetGroupRounding(); + } + + public void setGroupRounding(final float value) { + nSetGroupRounding(value); + } + + private native float nGetGroupRounding(); /* + return THIS->GroupRounding; + */ + + private native void nSetGroupRounding(float value); /* + THIS->GroupRounding = value; + */ + + public float getGroupBorderWidth() { + return nGetGroupBorderWidth(); + } + + public void setGroupBorderWidth(final float value) { + nSetGroupBorderWidth(value); + } + + private native float nGetGroupBorderWidth(); /* + return THIS->GroupBorderWidth; + */ + + private native void nSetGroupBorderWidth(float value); /* + THIS->GroupBorderWidth = value; + */ + + public ImVec4[] getColors() { + return nGetColors(); + } + + public void setColors(final ImVec4[] value) { + nSetColors(value); + } + + private native ImVec4[] nGetColors(); /* + return Jni::NewImVec4Array(env, THIS->Colors, ax::NodeEditor::StyleColor_Count); + */ + + private native void nSetColors(ImVec4[] value); /* + Jni::ImVec4ArrayCpy(env, value, THIS->Colors, ax::NodeEditor::StyleColor_Count); + */ + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/extension/nodeditor/flag/NodeEditorFlowDirection.java b/imgui-binding/src/generated/java/imgui/extension/nodeditor/flag/NodeEditorFlowDirection.java new file mode 100644 index 0000000..56b2c1a --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/nodeditor/flag/NodeEditorFlowDirection.java @@ -0,0 +1,11 @@ +package imgui.extension.nodeditor.flag; + + +public final class NodeEditorFlowDirection { + private NodeEditorFlowDirection() { + } + + public static final int Forward = 0; + + public static final int Backward = 1; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/nodeditor/flag/NodeEditorPinKind.java b/imgui-binding/src/generated/java/imgui/extension/nodeditor/flag/NodeEditorPinKind.java new file mode 100644 index 0000000..6872183 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/nodeditor/flag/NodeEditorPinKind.java @@ -0,0 +1,11 @@ +package imgui.extension.nodeditor.flag; + + +public final class NodeEditorPinKind { + private NodeEditorPinKind() { + } + + public static final int Input = 0; + + public static final int Output = 1; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/nodeditor/flag/NodeEditorStyleColor.java b/imgui-binding/src/generated/java/imgui/extension/nodeditor/flag/NodeEditorStyleColor.java new file mode 100644 index 0000000..0b84ee3 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/nodeditor/flag/NodeEditorStyleColor.java @@ -0,0 +1,45 @@ +package imgui.extension.nodeditor.flag; + + +public final class NodeEditorStyleColor { + private NodeEditorStyleColor() { + } + + public static final int Bg = 0; + + public static final int Grid = 1; + + public static final int NodeBg = 2; + + public static final int NodeBorder = 3; + + public static final int HovNodeBorder = 4; + + public static final int SelNodeBorder = 5; + + public static final int NodeSelRect = 6; + + public static final int NodeSelRectBorder = 7; + + public static final int HovLinkBorder = 8; + + public static final int SelLinkBorder = 9; + + public static final int LinkSelRect = 10; + + public static final int LinkSelRectBorder = 11; + + public static final int PinRect = 12; + + public static final int PinRectBorder = 13; + + public static final int Flow = 14; + + public static final int FlowMarker = 15; + + public static final int GroupBg = 16; + + public static final int GroupBorder = 17; + + public static final int Count = 18; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/nodeditor/flag/NodeEditorStyleVar.java b/imgui-binding/src/generated/java/imgui/extension/nodeditor/flag/NodeEditorStyleVar.java new file mode 100644 index 0000000..cac231e --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/nodeditor/flag/NodeEditorStyleVar.java @@ -0,0 +1,55 @@ +package imgui.extension.nodeditor.flag; + + +public final class NodeEditorStyleVar { + private NodeEditorStyleVar() { + } + + public static final int NodePadding = 0; + + public static final int NodeRounding = 1; + + public static final int NodeBorderWidth = 2; + + public static final int HoveredNodeBorderWidth = 3; + + public static final int SelectedNodeBorderWidth = 4; + + public static final int PinRounding = 5; + + public static final int PinBorderWidth = 6; + + public static final int LinkStrength = 7; + + public static final int SourceDirection = 8; + + public static final int TargetDirection = 9; + + public static final int ScrollDuration = 10; + + public static final int FlowMarkerDistance = 11; + + public static final int FlowSpeed = 12; + + public static final int FlowDuration = 13; + + public static final int PivotAlignment = 14; + + public static final int PivotSize = 15; + + public static final int PivotScale = 16; + + public static final int PinCorners = 17; + + public static final int PinRadius = 18; + + public static final int PinArrowSize = 19; + + public static final int PinArrowWidth = 20; + + public static final int GroupRounding = 21; + + public static final int GroupBorderWidth = 22; + + public static final int Count = 23; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditor.java b/imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditor.java new file mode 100644 index 0000000..c2b8043 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditor.java @@ -0,0 +1,761 @@ +package imgui.extension.texteditor; + +import imgui.ImVec2; +import imgui.binding.ImGuiStructDestroyable; + +import java.util.Map; + +public final class TextEditor extends ImGuiStructDestroyable { + public TextEditor() { + } + + public TextEditor(final long ptr) { + super(ptr); + } + + @Override + protected long create() { + return nCreate(); + } + + /*JNI + #include "_texteditor.h" + #define THIS ((TextEditor*)STRUCT_PTR) + #define TextEditorLanguageDefinition TextEditor::LanguageDefinition + */ + + private native long nCreate(); /* + return (intptr_t)(new TextEditor()); + */ + + public void setLanguageDefinition(final TextEditorLanguageDefinition aLanguageDef) { + nSetLanguageDefinition(aLanguageDef.ptr); + } + + private native void nSetLanguageDefinition(long aLanguageDef); /* + THIS->SetLanguageDefinition(*reinterpret_cast(aLanguageDef)); + */ + + public TextEditorLanguageDefinition getLanguageDefinition() { + return new TextEditorLanguageDefinition(nGetLanguageDefinition()); + } + + private native long nGetLanguageDefinition(); /* + return (intptr_t)&THIS->GetLanguageDefinition(); + */ + + public native int[] getPalette(); /* + const auto& palette = THIS->GetPalette(); + jintArray res = env->NewIntArray(palette.size()); + jint arr[palette.size()]; + for (int i = 0; i < palette.size(); i++) { + arr[i] = palette[i]; + } + env->SetIntArrayRegion(res, 0, palette.size(), arr); + return res; + */ + + public void setPalette(final int[] palette) { + nSetPalette(palette, palette.length); + } + + public native void nSetPalette(int[] palette, int length); /* + std::array arr; + for (int i = 0; i < length; i++) { + arr[i] = palette[i]; + } + THIS->SetPalette(arr); + */ + + public void setErrorMarkers(final Map errorMarkers) { + final int[] keys = errorMarkers.keySet().stream().mapToInt(i -> i).toArray(); + final String[] values = errorMarkers.values().toArray(new String[0]); + nSetErrorMarkers(keys, keys.length, values, values.length); + } + + private native void nSetErrorMarkers(int[] keys, int keysLen, String[] values, int valuesLen); /* + std::map markers; + for (int i = 0; i < keysLen; i++) { + int key = keys[i]; + jstring string = (jstring)env->GetObjectArrayElement(values, i); + const char* value = env->GetStringUTFChars(string, JNI_FALSE); + markers.emplace(std::pair(key, std::string(value))); + env->ReleaseStringUTFChars(string, value); + } + THIS->SetErrorMarkers(markers); + */ + + public void setBreakpoints(final int[] breakpoints) { + nSetBreakpoints(breakpoints, breakpoints.length); + } + + private native void nSetBreakpoints(int[] breakpoints, int length); /* + std::unordered_set set; + for (int i = 0; i < length; i++) { + set.emplace(breakpoints[i]); + } + THIS->SetBreakpoints(set); + */ + + public void render(final String title) { + nRender(title); + } + + public void render(final String title, final ImVec2 aSize) { + nRender(title, aSize.x, aSize.y); + } + + public void render(final String title, final float aSizeX, final float aSizeY) { + nRender(title, aSizeX, aSizeY); + } + + public void render(final String title, final ImVec2 aSize, final boolean aBorder) { + nRender(title, aSize.x, aSize.y, aBorder); + } + + public void render(final String title, final float aSizeX, final float aSizeY, final boolean aBorder) { + nRender(title, aSizeX, aSizeY, aBorder); + } + + public void render(final String title, final boolean aBorder) { + nRender(title, aBorder); + } + + private native void nRender(String title); /*MANUAL + auto title = obj_title == NULL ? NULL : (char*)env->GetStringUTFChars(obj_title, JNI_FALSE); + THIS->Render(title); + if (title != NULL) env->ReleaseStringUTFChars(obj_title, title); + */ + + private native void nRender(String title, float aSizeX, float aSizeY); /*MANUAL + auto title = obj_title == NULL ? NULL : (char*)env->GetStringUTFChars(obj_title, JNI_FALSE); + ImVec2 aSize = ImVec2(aSizeX, aSizeY); + THIS->Render(title, aSize); + if (title != NULL) env->ReleaseStringUTFChars(obj_title, title); + */ + + private native void nRender(String title, float aSizeX, float aSizeY, boolean aBorder); /*MANUAL + auto title = obj_title == NULL ? NULL : (char*)env->GetStringUTFChars(obj_title, JNI_FALSE); + ImVec2 aSize = ImVec2(aSizeX, aSizeY); + THIS->Render(title, aSize, aBorder); + if (title != NULL) env->ReleaseStringUTFChars(obj_title, title); + */ + + private native void nRender(String title, boolean aBorder); /*MANUAL + auto title = obj_title == NULL ? NULL : (char*)env->GetStringUTFChars(obj_title, JNI_FALSE); + THIS->Render(title, ImVec2(), aBorder); + if (title != NULL) env->ReleaseStringUTFChars(obj_title, title); + */ + + public void setText(final String text) { + nSetText(text); + } + + private native void nSetText(String text); /*MANUAL + auto text = obj_text == NULL ? NULL : (char*)env->GetStringUTFChars(obj_text, JNI_FALSE); + THIS->SetText(text); + if (text != NULL) env->ReleaseStringUTFChars(obj_text, text); + */ + + public String getText() { + return nGetText(); + } + + private native String nGetText(); /* + return env->NewStringUTF(THIS->GetText().c_str()); + */ + + public void setTextLines(final String[] lines) { + nSetTextLines(lines, lines.length); + } + + private native void nSetTextLines(String[] lines, int length); /* + std::vector vec; + vec.reserve(length); + for (int i = 0; i < length; i++) { + jstring string = (jstring)env->GetObjectArrayElement(lines, i); + const char* raw = env->GetStringUTFChars(string, JNI_FALSE); + vec.emplace_back(std::string(raw)); + env->ReleaseStringUTFChars(string, raw); + } + THIS->SetTextLines(vec); + */ + + public native String[] getTextLines(); /* + const auto lines = THIS->GetTextLines(); + + jobjectArray arr = env->NewObjectArray( + lines.size(), + env->FindClass("java/lang/String"), + env->NewStringUTF("") + ); + + for (int i = 0; i < lines.size(); i++) { + const auto& str = lines[i]; + env->SetObjectArrayElement(arr, i, env->NewStringUTF(str.c_str())); + } + return arr; + */ + + public String getSelectedText() { + return nGetSelectedText(); + } + + private native String nGetSelectedText(); /* + return env->NewStringUTF(THIS->GetSelectedText().c_str()); + */ + + public String getCurrentLineText() { + return nGetCurrentLineText(); + } + + private native String nGetCurrentLineText(); /* + return env->NewStringUTF(THIS->GetCurrentLineText().c_str()); + */ + + public int getTotalLines() { + return nGetTotalLines(); + } + + private native int nGetTotalLines(); /* + return THIS->GetTotalLines(); + */ + + public boolean isOverwrite() { + return nIsOverwrite(); + } + + private native boolean nIsOverwrite(); /* + return THIS->IsOverwrite(); + */ + + public void setReadOnly(final boolean aValue) { + nSetReadOnly(aValue); + } + + private native void nSetReadOnly(boolean aValue); /* + THIS->SetReadOnly(aValue); + */ + + public boolean isReadOnly() { + return nIsReadOnly(); + } + + private native boolean nIsReadOnly(); /* + return THIS->IsReadOnly(); + */ + + public boolean isTextChanged() { + return nIsTextChanged(); + } + + private native boolean nIsTextChanged(); /* + return THIS->IsTextChanged(); + */ + + public boolean isCursorPositionChanged() { + return nIsCursorPositionChanged(); + } + + private native boolean nIsCursorPositionChanged(); /* + return THIS->IsCursorPositionChanged(); + */ + + public boolean isColorizerEnabled() { + return nIsColorizerEnabled(); + } + + private native boolean nIsColorizerEnabled(); /* + return THIS->IsColorizerEnabled(); + */ + + public void setColorizerEnable(final boolean aValue) { + nSetColorizerEnable(aValue); + } + + private native void nSetColorizerEnable(boolean aValue); /* + THIS->SetColorizerEnable(aValue); + */ + + public TextEditorCoordinates getCursorPosition() { + final TextEditorCoordinates dst = new TextEditorCoordinates(); + nGetCursorPosition(dst); + return dst; + } + + public void getCursorPosition(final TextEditorCoordinates dst) { + nGetCursorPosition(dst); + } + + private native void nGetCursorPosition(TextEditorCoordinates dst); /* + Jni::TextEditorCoordinatesCpy(env, THIS->GetCursorPosition(), dst); + */ + + public void setCursorPosition(final TextEditorCoordinates aPosition) { + nSetCursorPosition(aPosition.mLine, aPosition.mColumn); + } + + public void setCursorPosition(final int aPositionLine, final int aPositionColumn) { + nSetCursorPosition(aPositionLine, aPositionColumn); + } + + private native void nSetCursorPosition(int aPositionLine, int aPositionColumn); /* + THIS->SetCursorPosition(TextEditor::Coordinates(aPositionLine, aPositionColumn)); + */ + + public void setHandleMouseInputs(final boolean aValue) { + nSetHandleMouseInputs(aValue); + } + + private native void nSetHandleMouseInputs(boolean aValue); /* + THIS->SetHandleMouseInputs(aValue); + */ + + public boolean isHandleMouseInputsEnabled() { + return nIsHandleMouseInputsEnabled(); + } + + private native boolean nIsHandleMouseInputsEnabled(); /* + return THIS->IsHandleMouseInputsEnabled(); + */ + + public void setHandleKeyboardInputs(final boolean aValue) { + nSetHandleKeyboardInputs(aValue); + } + + private native void nSetHandleKeyboardInputs(boolean aValue); /* + THIS->SetHandleKeyboardInputs(aValue); + */ + + public boolean isHandleKeyboardInputsEnabled() { + return nIsHandleKeyboardInputsEnabled(); + } + + private native boolean nIsHandleKeyboardInputsEnabled(); /* + return THIS->IsHandleKeyboardInputsEnabled(); + */ + + public void setImGuiChildIgnored(final boolean aValue) { + nSetImGuiChildIgnored(aValue); + } + + private native void nSetImGuiChildIgnored(boolean aValue); /* + THIS->SetImGuiChildIgnored(aValue); + */ + + public boolean isImGuiChildIgnored() { + return nIsImGuiChildIgnored(); + } + + private native boolean nIsImGuiChildIgnored(); /* + return THIS->IsImGuiChildIgnored(); + */ + + public void setShowWhitespaces(final boolean aValue) { + nSetShowWhitespaces(aValue); + } + + private native void nSetShowWhitespaces(boolean aValue); /* + THIS->SetShowWhitespaces(aValue); + */ + + public boolean isShowingWhitespaces() { + return nIsShowingWhitespaces(); + } + + private native boolean nIsShowingWhitespaces(); /* + return THIS->IsShowingWhitespaces(); + */ + + public void setTabSize(final int aValue) { + nSetTabSize(aValue); + } + + private native void nSetTabSize(int aValue); /* + THIS->SetTabSize(aValue); + */ + + public int getTabSize() { + return nGetTabSize(); + } + + private native int nGetTabSize(); /* + return THIS->GetTabSize(); + */ + + public void insertText(final String aValue) { + nInsertText(aValue); + } + + private native void nInsertText(String aValue); /*MANUAL + auto aValue = obj_aValue == NULL ? NULL : (char*)env->GetStringUTFChars(obj_aValue, JNI_FALSE); + THIS->InsertText(aValue); + if (aValue != NULL) env->ReleaseStringUTFChars(obj_aValue, aValue); + */ + + public void moveUp() { + nMoveUp(); + } + + public void moveUp(final int aAmount) { + nMoveUp(aAmount); + } + + public void moveUp(final int aAmount, final boolean aSelect) { + nMoveUp(aAmount, aSelect); + } + + private native void nMoveUp(); /* + THIS->MoveUp(); + */ + + private native void nMoveUp(int aAmount); /* + THIS->MoveUp(aAmount); + */ + + private native void nMoveUp(int aAmount, boolean aSelect); /* + THIS->MoveUp(aAmount, aSelect); + */ + + public void moveDown() { + nMoveDown(); + } + + public void moveDown(final int aAmount) { + nMoveDown(aAmount); + } + + public void moveDown(final int aAmount, final boolean aSelect) { + nMoveDown(aAmount, aSelect); + } + + private native void nMoveDown(); /* + THIS->MoveDown(); + */ + + private native void nMoveDown(int aAmount); /* + THIS->MoveDown(aAmount); + */ + + private native void nMoveDown(int aAmount, boolean aSelect); /* + THIS->MoveDown(aAmount, aSelect); + */ + + public void moveLeft() { + nMoveLeft(); + } + + public void moveLeft(final int aAmount) { + nMoveLeft(aAmount); + } + + public void moveLeft(final int aAmount, final boolean aSelect) { + nMoveLeft(aAmount, aSelect); + } + + public void moveLeft(final int aAmount, final boolean aSelect, final boolean aWordMode) { + nMoveLeft(aAmount, aSelect, aWordMode); + } + + private native void nMoveLeft(); /* + THIS->MoveLeft(); + */ + + private native void nMoveLeft(int aAmount); /* + THIS->MoveLeft(aAmount); + */ + + private native void nMoveLeft(int aAmount, boolean aSelect); /* + THIS->MoveLeft(aAmount, aSelect); + */ + + private native void nMoveLeft(int aAmount, boolean aSelect, boolean aWordMode); /* + THIS->MoveLeft(aAmount, aSelect, aWordMode); + */ + + public void moveRight() { + nMoveRight(); + } + + public void moveRight(final int aAmount) { + nMoveRight(aAmount); + } + + public void moveRight(final int aAmount, final boolean aSelect) { + nMoveRight(aAmount, aSelect); + } + + public void moveRight(final int aAmount, final boolean aSelect, final boolean aWordMode) { + nMoveRight(aAmount, aSelect, aWordMode); + } + + private native void nMoveRight(); /* + THIS->MoveRight(); + */ + + private native void nMoveRight(int aAmount); /* + THIS->MoveRight(aAmount); + */ + + private native void nMoveRight(int aAmount, boolean aSelect); /* + THIS->MoveRight(aAmount, aSelect); + */ + + private native void nMoveRight(int aAmount, boolean aSelect, boolean aWordMode); /* + THIS->MoveRight(aAmount, aSelect, aWordMode); + */ + + public void moveTop() { + nMoveTop(); + } + + public void moveTop(final boolean aSelect) { + nMoveTop(aSelect); + } + + private native void nMoveTop(); /* + THIS->MoveTop(); + */ + + private native void nMoveTop(boolean aSelect); /* + THIS->MoveTop(aSelect); + */ + + public void moveBottom() { + nMoveBottom(); + } + + public void moveBottom(final boolean aSelect) { + nMoveBottom(aSelect); + } + + private native void nMoveBottom(); /* + THIS->MoveBottom(); + */ + + private native void nMoveBottom(boolean aSelect); /* + THIS->MoveBottom(aSelect); + */ + + public void moveHome() { + nMoveHome(); + } + + public void moveHome(final boolean aSelect) { + nMoveHome(aSelect); + } + + private native void nMoveHome(); /* + THIS->MoveHome(); + */ + + private native void nMoveHome(boolean aSelect); /* + THIS->MoveHome(aSelect); + */ + + public void moveEnd() { + nMoveEnd(); + } + + public void moveEnd(final boolean aSelect) { + nMoveEnd(aSelect); + } + + private native void nMoveEnd(); /* + THIS->MoveEnd(); + */ + + private native void nMoveEnd(boolean aSelect); /* + THIS->MoveEnd(aSelect); + */ + + public void setSelectionStart(final TextEditorCoordinates aPosition) { + nSetSelectionStart(aPosition.mLine, aPosition.mColumn); + } + + public void setSelectionStart(final int aPositionLine, final int aPositionColumn) { + nSetSelectionStart(aPositionLine, aPositionColumn); + } + + private native void nSetSelectionStart(int aPositionLine, int aPositionColumn); /* + THIS->SetSelectionStart(TextEditor::Coordinates(aPositionLine, aPositionColumn)); + */ + + public void setSelectionEnd(final TextEditorCoordinates aPosition) { + nSetSelectionEnd(aPosition.mLine, aPosition.mColumn); + } + + public void setSelectionEnd(final int aPositionLine, final int aPositionColumn) { + nSetSelectionEnd(aPositionLine, aPositionColumn); + } + + private native void nSetSelectionEnd(int aPositionLine, int aPositionColumn); /* + THIS->SetSelectionEnd(TextEditor::Coordinates(aPositionLine, aPositionColumn)); + */ + + public void setSelection(final TextEditorCoordinates aStart, final TextEditorCoordinates aEnd) { + nSetSelection(aStart.mLine, aStart.mColumn, aEnd.mLine, aEnd.mColumn); + } + + public void setSelection(final int aStartLine, final int aStartColumn, final int aEndLine, final int aEndColumn) { + nSetSelection(aStartLine, aStartColumn, aEndLine, aEndColumn); + } + + public void setSelection(final TextEditorCoordinates aStart, final TextEditorCoordinates aEnd, final int aMode) { + nSetSelection(aStart.mLine, aStart.mColumn, aEnd.mLine, aEnd.mColumn, aMode); + } + + public void setSelection(final int aStartLine, final int aStartColumn, final int aEndLine, final int aEndColumn, final int aMode) { + nSetSelection(aStartLine, aStartColumn, aEndLine, aEndColumn, aMode); + } + + private native void nSetSelection(int aStartLine, int aStartColumn, int aEndLine, int aEndColumn); /* + THIS->SetSelection(TextEditor::Coordinates(aStartLine, aStartColumn), TextEditor::Coordinates(aEndLine, aEndColumn)); + */ + + private native void nSetSelection(int aStartLine, int aStartColumn, int aEndLine, int aEndColumn, int aMode); /* + THIS->SetSelection(TextEditor::Coordinates(aStartLine, aStartColumn), TextEditor::Coordinates(aEndLine, aEndColumn), static_cast(aMode)); + */ + + public void selectWordUnderCursor() { + nSelectWordUnderCursor(); + } + + private native void nSelectWordUnderCursor(); /* + THIS->SelectWordUnderCursor(); + */ + + public void selectAll() { + nSelectAll(); + } + + private native void nSelectAll(); /* + THIS->SelectAll(); + */ + + public boolean hasSelection() { + return nHasSelection(); + } + + private native boolean nHasSelection(); /* + return THIS->HasSelection(); + */ + + public void copy() { + nCopy(); + } + + private native void nCopy(); /* + THIS->Copy(); + */ + + public void cut() { + nCut(); + } + + private native void nCut(); /* + THIS->Cut(); + */ + + public void paste() { + nPaste(); + } + + private native void nPaste(); /* + THIS->Paste(); + */ + + public void delete() { + nDelete(); + } + + private native void nDelete(); /* + THIS->Delete(); + */ + + public boolean canUndo() { + return nCanUndo(); + } + + private native boolean nCanUndo(); /* + return THIS->CanUndo(); + */ + + public boolean canRedo() { + return nCanRedo(); + } + + private native boolean nCanRedo(); /* + return THIS->CanRedo(); + */ + + public void undo() { + nUndo(); + } + + public void undo(final int aSteps) { + nUndo(aSteps); + } + + private native void nUndo(); /* + THIS->Undo(); + */ + + private native void nUndo(int aSteps); /* + THIS->Undo(aSteps); + */ + + public void redo() { + nRedo(); + } + + public void redo(final int aSteps) { + nRedo(aSteps); + } + + private native void nRedo(); /* + THIS->Redo(); + */ + + private native void nRedo(int aSteps); /* + THIS->Redo(aSteps); + */ + + public native int[] getDarkPalette(); /* + const auto& palette = THIS->GetDarkPalette(); + jintArray res = env->NewIntArray(palette.size()); + jint arr[palette.size()]; + for (int i = 0; i < palette.size(); i++) { + arr[i] = palette[i]; + } + env->SetIntArrayRegion(res, 0, palette.size(), arr); + return res; + */ + + public native int[] getLightPalette(); /* + const auto& palette = THIS->GetLightPalette(); + jintArray res = env->NewIntArray(palette.size()); + jint arr[palette.size()]; + for (int i = 0; i < palette.size(); i++) { + arr[i] = palette[i]; + } + env->SetIntArrayRegion(res, 0, palette.size(), arr); + return res; + */ + + public native int[] getRetroBluePalette(); /* + const auto& palette = THIS->GetRetroBluePalette(); + jintArray res = env->NewIntArray(palette.size()); + jint arr[palette.size()]; + for (int i = 0; i < palette.size(); i++) { + arr[i] = palette[i]; + } + env->SetIntArrayRegion(res, 0, palette.size(), arr); + return res; + */ + + /*JNI + #undef TextEditorLanguageDefinition + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditorCoordinates.java b/imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditorCoordinates.java new file mode 100644 index 0000000..9dabb22 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditorCoordinates.java @@ -0,0 +1,90 @@ +package imgui.extension.texteditor; + +import java.util.Objects; + +public final class TextEditorCoordinates implements Cloneable { + public int mLine; + public int mColumn; + + public TextEditorCoordinates() { + } + + public TextEditorCoordinates(final int mLine, final int mColumn) { + set(mLine, mColumn); + } + + public TextEditorCoordinates(final TextEditorCoordinates value) { + set(value.mLine, value.mColumn); + } + + public TextEditorCoordinates set(final int mLine, final int mColumn) { + this.mLine = mLine; + this.mColumn = mColumn; + return this; + } + + public TextEditorCoordinates set(final TextEditorCoordinates value) { + return set(value.mLine, value.mColumn); + } + + public TextEditorCoordinates plus(final int mLine, final int mColumn) { + this.mLine += mLine; + this.mColumn += mColumn; + return this; + } + + public TextEditorCoordinates plus(final TextEditorCoordinates value) { + return plus(value.mLine, value.mColumn); + } + + public TextEditorCoordinates minus(final int mLine, final int mColumn) { + this.mLine -= mLine; + this.mColumn -= mColumn; + return this; + } + + public TextEditorCoordinates minus(final TextEditorCoordinates value) { + return minus(value.mLine, value.mColumn); + } + + public TextEditorCoordinates times(final int mLine, final int mColumn) { + this.mLine *= mLine; + this.mColumn *= mColumn; + return this; + } + + public TextEditorCoordinates times(final TextEditorCoordinates value) { + return times(value.mLine, value.mColumn); + } + + @Override + public String toString() { + return "TextEditorCoordinates{" + + "mLine=" + mLine + + ", mColumn=" + mColumn + + '}'; + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final TextEditorCoordinates textEditorCoordinates = (TextEditorCoordinates) o; + return textEditorCoordinates.mLine == mLine && textEditorCoordinates.mColumn == mColumn; + } + + @Override + public int hashCode() { + return Objects.hash(mLine, mColumn); + } + + @Override + @SuppressWarnings("MethodDoesntCallSuperMethod") + public TextEditorCoordinates clone() { + return new TextEditorCoordinates(this); + } +} diff --git a/imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditorLanguageDefinition.java b/imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditorLanguageDefinition.java new file mode 100644 index 0000000..a043204 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditorLanguageDefinition.java @@ -0,0 +1,313 @@ +package imgui.extension.texteditor; + +import imgui.binding.ImGuiStructDestroyable; + +import java.util.Map; + +public final class TextEditorLanguageDefinition extends ImGuiStructDestroyable { + public TextEditorLanguageDefinition() { + } + + public TextEditorLanguageDefinition(final long ptr) { + super(ptr); + } + + @Override + protected long create() { + return nCreate(); + } + + /*JNI + #include "_texteditor.h" + #define THIS ((TextEditor::LanguageDefinition*)STRUCT_PTR) + #define TextEditorLanguageDefinition TextEditor::LanguageDefinition + */ + + private native long nCreate(); /* + return (intptr_t)(new TextEditor::LanguageDefinition()); + */ + + public String getName() { + return nGetName(); + } + + public void setName(final String value) { + nSetName(value); + } + + private native String nGetName(); /* + return env->NewStringUTF(THIS->mName.c_str()); + */ + + private native void nSetName(String value); /*MANUAL + auto value = obj_value == NULL ? NULL : (char*)env->GetStringUTFChars(obj_value, JNI_FALSE); + THIS->mName = value; + if (value != NULL) env->ReleaseStringUTFChars(obj_value, value); + */ + + public void setKeywords(final String[] keywords) { + nSetKeywords(keywords, keywords.length); + } + + private native void nSetKeywords(String[] keywords, int length); /* + std::unordered_set set; + for (int i = 0; i < length; i++) { + jstring string = (jstring)env->GetObjectArrayElement(keywords, i); + const char* raw = env->GetStringUTFChars(string, JNI_FALSE); + set.emplace(std::string(raw)); + env->ReleaseStringUTFChars(string, raw); + } + THIS->mKeywords = set; + */ + + public void setIdentifiers(final Map identifiers) { + final String[] keys = identifiers.keySet().toArray(new String[0]); + final String[] decl = identifiers.values().toArray(new String[0]); + nSetIdentifiers(keys, keys.length, decl, decl.length); + } + + private native void nSetIdentifiers(String[] keys, int keysLen, String[] decl, int declLen); /* + std::unordered_map identifiers; + for (int i = 0; i < keysLen; i++) { + jstring string1 = (jstring)env->GetObjectArrayElement(keys, i); + jstring string2 = (jstring)env->GetObjectArrayElement(decl, i); + const char* key = env->GetStringUTFChars(string1, JNI_FALSE); + const char* value = env->GetStringUTFChars(string2, JNI_FALSE); + TextEditor::Identifier id; + id.mDeclaration = std::string(value); + identifiers.insert(std::pair(std::string(key), id)); + env->ReleaseStringUTFChars(string1, key); + env->ReleaseStringUTFChars(string2, value); + } + THIS->mIdentifiers = identifiers; + */ + + public void setPreprocIdentifiers(final Map identifiers) { + final String[] keys = identifiers.keySet().toArray(new String[0]); + final String[] decl = identifiers.values().toArray(new String[0]); + nSetPreprocIdentifiers(keys, keys.length, decl, decl.length); + } + + private native void nSetPreprocIdentifiers(String[] keys, int keysLen, String[] decl, int declLen); /* + std::unordered_map preprocIdentifiers; + for (int i = 0; i < keysLen; i++) { + jstring string1 = (jstring)env->GetObjectArrayElement(keys, i); + jstring string2 = (jstring)env->GetObjectArrayElement(decl, i); + const char* key = env->GetStringUTFChars(string1, JNI_FALSE); + const char* value = env->GetStringUTFChars(string2, JNI_FALSE); + TextEditor::Identifier id; + id.mDeclaration = std::string(value); + preprocIdentifiers.insert(std::pair(std::string(key), id)); + env->ReleaseStringUTFChars(string1, key); + env->ReleaseStringUTFChars(string2, value); + } + THIS->mPreprocIdentifiers = preprocIdentifiers; + */ + + public String getCommentStart() { + return nGetCommentStart(); + } + + public void setCommentStart(final String value) { + nSetCommentStart(value); + } + + private native String nGetCommentStart(); /* + return env->NewStringUTF(THIS->mCommentStart.c_str()); + */ + + private native void nSetCommentStart(String value); /*MANUAL + auto value = obj_value == NULL ? NULL : (char*)env->GetStringUTFChars(obj_value, JNI_FALSE); + THIS->mCommentStart = value; + if (value != NULL) env->ReleaseStringUTFChars(obj_value, value); + */ + + public String getCommentEnd() { + return nGetCommentEnd(); + } + + public void setCommentEnd(final String value) { + nSetCommentEnd(value); + } + + private native String nGetCommentEnd(); /* + return env->NewStringUTF(THIS->mCommentEnd.c_str()); + */ + + private native void nSetCommentEnd(String value); /*MANUAL + auto value = obj_value == NULL ? NULL : (char*)env->GetStringUTFChars(obj_value, JNI_FALSE); + THIS->mCommentEnd = value; + if (value != NULL) env->ReleaseStringUTFChars(obj_value, value); + */ + + public String getSingleLineComment() { + return nGetSingleLineComment(); + } + + public void setSingleLineComment(final String value) { + nSetSingleLineComment(value); + } + + private native String nGetSingleLineComment(); /* + return env->NewStringUTF(THIS->mSingleLineComment.c_str()); + */ + + private native void nSetSingleLineComment(String value); /*MANUAL + auto value = obj_value == NULL ? NULL : (char*)env->GetStringUTFChars(obj_value, JNI_FALSE); + THIS->mSingleLineComment = value; + if (value != NULL) env->ReleaseStringUTFChars(obj_value, value); + */ + + public char getPreprocChar() { + return nGetPreprocChar(); + } + + public void setPreprocChar(final char value) { + nSetPreprocChar(value); + } + + private native char nGetPreprocChar(); /* + return THIS->mPreprocChar; + */ + + private native void nSetPreprocChar(char value); /* + THIS->mPreprocChar = value; + */ + + public boolean getAutoIndentation() { + return nGetAutoIndentation(); + } + + public void setAutoIndentation(final boolean value) { + nSetAutoIndentation(value); + } + + private native boolean nGetAutoIndentation(); /* + return THIS->mAutoIndentation; + */ + + private native void nSetAutoIndentation(boolean value); /* + THIS->mAutoIndentation = value; + */ + + public void setTokenRegexStrings(final Map tokenRegexStrings) { + final String[] keys = tokenRegexStrings.keySet().toArray(new String[0]); + final int[] paletteIndexes = tokenRegexStrings.values().stream().mapToInt(i -> i).toArray(); + nSetTokenRegexStrings(keys, keys.length, paletteIndexes, paletteIndexes.length); + } + + private native void nSetTokenRegexStrings(String[] keys, int keysLen, int[] paletteIndexes, int paletteIndexesLen); /* + std::vector> tokenRegexStrings; + for (int i = 0; i < keysLen; i++) { + jstring string = (jstring)env->GetObjectArrayElement(keys, i); + const char* key = env->GetStringUTFChars(string, JNI_FALSE); + int value = paletteIndexes[i]; + tokenRegexStrings.emplace_back( + std::pair( + std::string(key), + static_cast(value) + ) + ); + env->ReleaseStringUTFChars(string, key); + } + THIS->mTokenRegexStrings = tokenRegexStrings; + */ + + public boolean getmCaseSensitive() { + return nGetmCaseSensitive(); + } + + public void setmCaseSensitive(final boolean value) { + nSetmCaseSensitive(value); + } + + private native boolean nGetmCaseSensitive(); /* + return THIS->mCaseSensitive; + */ + + private native void nSetmCaseSensitive(boolean value); /* + THIS->mCaseSensitive = value; + */ + + private static final TextEditorLanguageDefinition _CPLUSPLUS_1 = new TextEditorLanguageDefinition(0); + + public static TextEditorLanguageDefinition CPlusPlus() { + _CPLUSPLUS_1.ptr = nCPlusPlus(); + return _CPLUSPLUS_1; + } + + private static native long nCPlusPlus(); /* + return (intptr_t)&TextEditorLanguageDefinition::CPlusPlus(); + */ + + private static final TextEditorLanguageDefinition _HLSL_1 = new TextEditorLanguageDefinition(0); + + public static TextEditorLanguageDefinition HLSL() { + _HLSL_1.ptr = nHLSL(); + return _HLSL_1; + } + + private static native long nHLSL(); /* + return (intptr_t)&TextEditorLanguageDefinition::HLSL(); + */ + + private static final TextEditorLanguageDefinition _GLSL_1 = new TextEditorLanguageDefinition(0); + + public static TextEditorLanguageDefinition GLSL() { + _GLSL_1.ptr = nGLSL(); + return _GLSL_1; + } + + private static native long nGLSL(); /* + return (intptr_t)&TextEditorLanguageDefinition::GLSL(); + */ + + private static final TextEditorLanguageDefinition _C_1 = new TextEditorLanguageDefinition(0); + + public static TextEditorLanguageDefinition C() { + _C_1.ptr = nC(); + return _C_1; + } + + private static native long nC(); /* + return (intptr_t)&TextEditorLanguageDefinition::C(); + */ + + private static final TextEditorLanguageDefinition _SQL_1 = new TextEditorLanguageDefinition(0); + + public static TextEditorLanguageDefinition SQL() { + _SQL_1.ptr = nSQL(); + return _SQL_1; + } + + private static native long nSQL(); /* + return (intptr_t)&TextEditorLanguageDefinition::SQL(); + */ + + private static final TextEditorLanguageDefinition _ANGELSCRIPT_1 = new TextEditorLanguageDefinition(0); + + public static TextEditorLanguageDefinition AngelScript() { + _ANGELSCRIPT_1.ptr = nAngelScript(); + return _ANGELSCRIPT_1; + } + + private static native long nAngelScript(); /* + return (intptr_t)&TextEditorLanguageDefinition::AngelScript(); + */ + + private static final TextEditorLanguageDefinition _LUA_1 = new TextEditorLanguageDefinition(0); + + public static TextEditorLanguageDefinition Lua() { + _LUA_1.ptr = nLua(); + return _LUA_1; + } + + private static native long nLua(); /* + return (intptr_t)&TextEditorLanguageDefinition::Lua(); + */ + + /*JNI + #undef TextEditorLanguageDefinition + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/extension/texteditor/flag/TextEditorPaletteIndex.java b/imgui-binding/src/generated/java/imgui/extension/texteditor/flag/TextEditorPaletteIndex.java new file mode 100644 index 0000000..5a91984 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/texteditor/flag/TextEditorPaletteIndex.java @@ -0,0 +1,51 @@ +package imgui.extension.texteditor.flag; + + +public final class TextEditorPaletteIndex { + private TextEditorPaletteIndex() { + } + + public static final int Default = 0; + + public static final int Keyword = 1; + + public static final int Number = 2; + + public static final int String = 3; + + public static final int CharLiteral = 4; + + public static final int Punctuation = 5; + + public static final int Preprocessor = 6; + + public static final int Identifier = 7; + + public static final int KnownIdentifier = 8; + + public static final int PreprocIdentifier = 9; + + public static final int Comment = 10; + + public static final int MultiLineComment = 11; + + public static final int Background = 12; + + public static final int Cursor = 13; + + public static final int Selection = 14; + + public static final int ErrorMarker = 15; + + public static final int Breakpoint = 16; + + public static final int LineNumber = 17; + + public static final int CurrentLineFill = 18; + + public static final int CurrentLineFillInactive = 19; + + public static final int CurrentLineEdge = 20; + + public static final int Max = 21; +} diff --git a/imgui-binding/src/generated/java/imgui/extension/texteditor/flag/TextEditorSelectionMode.java b/imgui-binding/src/generated/java/imgui/extension/texteditor/flag/TextEditorSelectionMode.java new file mode 100644 index 0000000..804f4d0 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/extension/texteditor/flag/TextEditorSelectionMode.java @@ -0,0 +1,13 @@ +package imgui.extension.texteditor.flag; + + +public final class TextEditorSelectionMode { + private TextEditorSelectionMode() { + } + + public static final int Normal = 0; + + public static final int Word = 1; + + public static final int Line = 2; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImDrawFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImDrawFlags.java new file mode 100644 index 0000000..66b2126 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImDrawFlags.java @@ -0,0 +1,94 @@ +package imgui.flag; + + +/** + * Flags for ImDrawList functions + */ +public final class ImDrawFlags { + private ImDrawFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * PathStroke(), AddPolyline(): specify that shape should be closed (Important: this is always == 1 for legacy reason) + * + *

Definition: {@code 1 << 0} + */ + public static final int Closed = 1; + + /** + * AddRect(), AddRectFilled(), PathRect(): enable rounding top-left corner only (when rounding{@code >}0.0f, we default to all corners). Was 0x01. + * + *

Definition: {@code 1 << 4} + */ + public static final int RoundCornersTopLeft = 16; + + /** + * AddRect(), AddRectFilled(), PathRect(): enable rounding top-right corner only (when rounding{@code >}0.0f, we default to all corners). Was 0x02. + * + *

Definition: {@code 1 << 5} + */ + public static final int RoundCornersTopRight = 32; + + /** + * AddRect(), AddRectFilled(), PathRect(): enable rounding bottom-left corner only (when rounding{@code >}0.0f, we default to all corners). Was 0x04. + * + *

Definition: {@code 1 << 6} + */ + public static final int RoundCornersBottomLeft = 64; + + /** + * AddRect(), AddRectFilled(), PathRect(): enable rounding bottom-right corner only (when rounding{@code >}0.0f, we default to all corners). Wax 0x08. + * + *

Definition: {@code 1 << 7} + */ + public static final int RoundCornersBottomRight = 128; + + /** + * AddRect(), AddRectFilled(), PathRect(): disable rounding on all corners (when rounding{@code >}0.0f). This is NOT zero, NOT an implicit flag! + * + *

Definition: {@code 1 << 8} + */ + public static final int RoundCornersNone = 256; + + /** + * Definition: {@code ImDrawFlags_RoundCornersTopLeft | ImDrawFlags_RoundCornersTopRight} + */ + public static final int RoundCornersTop = 48; + + /** + * Definition: {@code ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersBottomRight} + */ + public static final int RoundCornersBottom = 192; + + /** + * Definition: {@code ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersTopLeft} + */ + public static final int RoundCornersLeft = 80; + + /** + * Definition: {@code ImDrawFlags_RoundCornersBottomRight | ImDrawFlags_RoundCornersTopRight} + */ + public static final int RoundCornersRight = 160; + + /** + * Definition: {@code ImDrawFlags_RoundCornersTopLeft | ImDrawFlags_RoundCornersTopRight | ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersBottomRight} + */ + public static final int RoundCornersAll = 240; + + /** + * Default to ALL corners if none of the _RoundCornersXX flags are specified. + * + *

Definition: {@code ImDrawFlags_RoundCornersAll} + */ + public static final int RoundCornersDefault_ = 240; + + /** + * Definition: {@code ImDrawFlags_RoundCornersAll | ImDrawFlags_RoundCornersNone} + */ + public static final int RoundCornersMask_ = 496; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImDrawListFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImDrawListFlags.java new file mode 100644 index 0000000..c1aa225 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImDrawListFlags.java @@ -0,0 +1,44 @@ +package imgui.flag; + + +/** + * Flags for ImDrawList. Those are set automatically by ImGui:: functions from ImGuiIO settings, and generally not manipulated directly. + * It is however possible to temporarily alter flags between calls to ImDrawList:: functions. + */ +public final class ImDrawListFlags { + private ImDrawListFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Enable anti-aliased lines/borders (*2 the number of triangles for 1.0f wide line or lines thin enough to be drawn using textures, otherwise *3 the number of triangles) + * + *

Definition: {@code 1 << 0} + */ + public static final int AntiAliasedLines = 1; + + /** + * Enable anti-aliased lines/borders using textures when possible. Require backend to render with bilinear filtering. + * + *

Definition: {@code 1 << 1} + */ + public static final int AntiAliasedLinesUseTex = 2; + + /** + * Enable anti-aliased edge around filled shapes (rounded rectangles, circles). + * + *

Definition: {@code 1 << 2} + */ + public static final int AntiAliasedFill = 4; + + /** + * Can emit 'VtxOffset{@code >}0' to allow large meshes. Set when 'ImGuiBackendFlags_RendererHasVtxOffset' is enabled. + * + *

Definition: {@code 1 << 3} + */ + public static final int AllowVtxOffset = 8; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImFontAtlasFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImFontAtlasFlags.java new file mode 100644 index 0000000..f9ab1b7 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImFontAtlasFlags.java @@ -0,0 +1,36 @@ +package imgui.flag; + + +/** + * Flags for ImFontAtlas build + */ +public final class ImFontAtlasFlags { + private ImFontAtlasFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Don't round the height to next power of two + * + *

Definition: {@code 1 << 0} + */ + public static final int NoPowerOfTwoHeight = 1; + + /** + * Don't build software mouse cursors into the atlas (save a little texture memory) + * + *

Definition: {@code 1 << 1} + */ + public static final int NoMouseCursors = 2; + + /** + * Don't build thick line textures into the atlas (save a little texture memory). The AntiAliasedLinesUseTex features uses them, otherwise they will be rendered using polygons (more expensive for CPU/GPU). + * + *

Definition: {@code 1 << 2} + */ + public static final int NoBakedLines = 4; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiBackendFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiBackendFlags.java new file mode 100644 index 0000000..26df252 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiBackendFlags.java @@ -0,0 +1,64 @@ +package imgui.flag; + + +/** + * Backend capabilities flags stored in io.BackendFlags. Set by imgui_impl_xxx or custom backend. + */ +public final class ImGuiBackendFlags { + private ImGuiBackendFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Backend Platform supports gamepad and currently has one connected. + * + *

Definition: {@code 1 << 0} + */ + public static final int HasGamepad = 1; + + /** + * Backend Platform supports honoring GetMouseCursor() value to change the OS cursor shape. + * + *

Definition: {@code 1 << 1} + */ + 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). + * + *

Definition: {@code 1 << 2} + */ + public static final int HasSetMousePos = 4; + + /** + * Backend Renderer supports ImDrawCmd::VtxOffset. This enables output of large meshes (64K+ vertices) while still using 16-bit indices. + * + *

Definition: {@code 1 << 3} + */ + public static final int RendererHasVtxOffset = 8; + + /** + * Backend Platform supports multiple viewports. + * + *

Definition: {@code 1 << 10} + */ + public static final int PlatformHasViewports = 1024; + + /** + * Backend Platform supports setting io.MouseHoveredViewport to the viewport directly under the mouse _IGNORING_ viewports with the ImGuiViewportFlags_NoInputs flag and _REGARDLESS_ of whether another viewport is focused and may be capturing the mouse. This information is _NOT EASY_ to provide correctly with most high-level engines! Don't set this without studying _carefully_ how the backends handle ImGuiViewportFlags_NoInputs! + * + *

Definition: {@code 1 << 11} + */ + public static final int HasMouseHoveredViewport = 2048; + + /** + * Backend Renderer supports multiple viewports. + * + *

Definition: {@code 1 << 12} + */ + public static final int RendererHasViewports = 4096; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiButtonFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiButtonFlags.java new file mode 100644 index 0000000..b5a613b --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiButtonFlags.java @@ -0,0 +1,47 @@ +package imgui.flag; + + +public final class ImGuiButtonFlags { + private ImGuiButtonFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * React on left mouse button (default) + * + *

Definition: {@code 1 << 0} + */ + public static final int MouseButtonLeft = 1; + + /** + * React on right mouse button + * + *

Definition: {@code 1 << 1} + */ + public static final int MouseButtonRight = 2; + + /** + * React on center mouse button + * + *

Definition: {@code 1 << 2} + */ + public static final int MouseButtonMiddle = 4; + + /** + * [Internal] + * + *

Definition: {@code ImGuiButtonFlags_MouseButtonLeft | ImGuiButtonFlags_MouseButtonRight | ImGuiButtonFlags_MouseButtonMiddle} + */ + public static final int MouseButtonMask_ = 7; + + /** + * [Internal] + * + *

Definition: {@code ImGuiButtonFlags_MouseButtonLeft} + */ + public static final int MouseButtonDefault_ = 1; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiCol.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiCol.java new file mode 100644 index 0000000..eb60558 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiCol.java @@ -0,0 +1,170 @@ +package imgui.flag; + + +/** + * Enumeration for PushStyleColor() / PopStyleColor() + */ +public final class ImGuiCol { + private ImGuiCol() { + } + + public static final int Text = 0; + + public static final int TextDisabled = 1; + + /** + * Background of normal windows + */ + public static final int WindowBg = 2; + + /** + * Background of child windows + */ + public static final int ChildBg = 3; + + /** + * Background of popups, menus, tooltips windows + */ + public static final int PopupBg = 4; + + public static final int Border = 5; + + public static final int BorderShadow = 6; + + /** + * Background of checkbox, radio button, plot, slider, text input + */ + public static final int FrameBg = 7; + + public static final int FrameBgHovered = 8; + + public static final int FrameBgActive = 9; + + public static final int TitleBg = 10; + + public static final int TitleBgActive = 11; + + public static final int TitleBgCollapsed = 12; + + public static final int MenuBarBg = 13; + + public static final int ScrollbarBg = 14; + + public static final int ScrollbarGrab = 15; + + public static final int ScrollbarGrabHovered = 16; + + public static final int ScrollbarGrabActive = 17; + + public static final int CheckMark = 18; + + public static final int SliderGrab = 19; + + public static final int SliderGrabActive = 20; + + public static final int Button = 21; + + public static final int ButtonHovered = 22; + + public static final int ButtonActive = 23; + + /** + * Header* colors are used for CollapsingHeader, TreeNode, Selectable, MenuItem + */ + public static final int Header = 24; + + public static final int HeaderHovered = 25; + + public static final int HeaderActive = 26; + + public static final int Separator = 27; + + public static final int SeparatorHovered = 28; + + public static final int SeparatorActive = 29; + + public static final int ResizeGrip = 30; + + public static final int ResizeGripHovered = 31; + + public static final int ResizeGripActive = 32; + + public static final int Tab = 33; + + public static final int TabHovered = 34; + + public static final int TabActive = 35; + + public static final int TabUnfocused = 36; + + public static final int TabUnfocusedActive = 37; + + /** + * Preview overlay color when about to docking something + */ + public static final int DockingPreview = 38; + + /** + * Background color for empty node (e.g. CentralNode with no window docked into it) + */ + public static final int DockingEmptyBg = 39; + + public static final int PlotLines = 40; + + public static final int PlotLinesHovered = 41; + + public static final int PlotHistogram = 42; + + public static final int PlotHistogramHovered = 43; + + /** + * Table header background + */ + public static final int TableHeaderBg = 44; + + /** + * Table outer and header borders (prefer using Alpha=1.0 here) + */ + public static final int TableBorderStrong = 45; + + /** + * Table inner borders (prefer using Alpha=1.0 here) + */ + public static final int TableBorderLight = 46; + + /** + * Table row background (even rows) + */ + public static final int TableRowBg = 47; + + /** + * Table row background (odd rows) + */ + public static final int TableRowBgAlt = 48; + + public static final int TextSelectedBg = 49; + + public static final int DragDropTarget = 50; + + /** + * Gamepad/keyboard: current highlighted item + */ + public static final int NavHighlight = 51; + + /** + * Highlight window when using CTRL+TAB + */ + public static final int NavWindowingHighlight = 52; + + /** + * Darken/colorize entire screen behind the CTRL+TAB window list, when active + */ + public static final int NavWindowingDimBg = 53; + + /** + * Darken/colorize entire screen behind a modal window, when one is active + */ + public static final int ModalWindowDimBg = 54; + + public static final int COUNT = 55; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiColorEditFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiColorEditFlags.java new file mode 100644 index 0000000..aa5f050 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiColorEditFlags.java @@ -0,0 +1,232 @@ +package imgui.flag; + + +/** + * Flags for ColorEdit3() / ColorEdit4() / ColorPicker3() / ColorPicker4() / ColorButton() + */ +public final class ImGuiColorEditFlags { + private ImGuiColorEditFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * ColorEdit, ColorPicker, ColorButton: ignore Alpha component (will only read 3 components from the input pointer). + * + *

Definition: {@code 1 << 1} + */ + public static final int NoAlpha = 2; + + /** + * ColorEdit: disable picker when clicking on color square. + * + *

Definition: {@code 1 << 2} + */ + public static final int NoPicker = 4; + + /** + * ColorEdit: disable toggling options menu when right-clicking on inputs/small preview. + * + *

Definition: {@code 1 << 3} + */ + public static final int NoOptions = 8; + + /** + * ColorEdit, ColorPicker: disable color square preview next to the inputs. (e.g. to show only the inputs) + * + *

Definition: {@code 1 << 4} + */ + public static final int NoSmallPreview = 16; + + /** + * ColorEdit, ColorPicker: disable inputs sliders/text widgets (e.g. to show only the small preview color square). + * + *

Definition: {@code 1 << 5} + */ + public static final int NoInputs = 32; + + /** + * ColorEdit, ColorPicker, ColorButton: disable tooltip when hovering the preview. + * + *

Definition: {@code 1 << 6} + */ + public static final int NoTooltip = 64; + + /** + * ColorEdit, ColorPicker: disable display of inline text label (the label is still forwarded to the tooltip and picker). + * + *

Definition: {@code 1 << 7} + */ + public static final int NoLabel = 128; + + /** + * ColorPicker: disable bigger color preview on right side of the picker, use small color square preview instead. + * + *

Definition: {@code 1 << 8} + */ + public static final int NoSidePreview = 256; + + /** + * ColorEdit: disable drag and drop target. ColorButton: disable drag and drop source. + * + *

Definition: {@code 1 << 9} + */ + public static final int NoDragDrop = 512; + + /** + * ColorButton: disable border (which is enforced by default) + * + *

Definition: {@code 1 << 10} + */ + public static final int NoBorder = 1024; + + /** + * ColorEdit, ColorPicker: show vertical alpha bar/gradient in picker. + * + *

Definition: {@code 1 << 16} + */ + public static final int AlphaBar = 65536; + + /** + * ColorEdit, ColorPicker, ColorButton: display preview as a transparent color over a checkerboard, instead of opaque. + * + *

Definition: {@code 1 << 17} + */ + public static final int AlphaPreview = 131072; + + /** + * ColorEdit, ColorPicker, ColorButton: display half opaque / half checkerboard, instead of opaque. + * + *

Definition: {@code 1 << 18} + */ + public static final int AlphaPreviewHalf = 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). + * + *

Definition: {@code 1 << 19} + */ + public static final int HDR = 524288; + + /** + * [Display] // ColorEdit: override _display_ type among RGB/HSV/Hex. ColorPicker: select any combination using one or more of RGB/HSV/Hex. + * + *

Definition: {@code 1 << 20} + */ + public static final int DisplayRGB = 1048576; + + /** + * [Display] // " + * + *

Definition: {@code 1 << 21} + */ + public static final int DisplayHSV = 2097152; + + /** + * [Display] // " + * + *

Definition: {@code 1 << 22} + */ + public static final int DisplayHex = 4194304; + + /** + * [DataType] // ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0..255. + * + *

Definition: {@code 1 << 23} + */ + public static final int Uint8 = 8388608; + + /** + * [DataType] // ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0.0f..1.0f floats instead of 0..255 integers. No round-trip of value via integers. + * + *

Definition: {@code 1 << 24} + */ + public static final int Float = 16777216; + + /** + * [Picker] // ColorPicker: bar for Hue, rectangle for Sat/Value. + * + *

Definition: {@code 1 << 25} + */ + public static final int PickerHueBar = 33554432; + + /** + * [Picker] // ColorPicker: wheel for Hue, triangle for Sat/Value. + * + *

Definition: {@code 1 << 26} + */ + public static final int PickerHueWheel = 67108864; + + /** + * [Input] // ColorEdit, ColorPicker: input and output data in RGB format. + * + *

Definition: {@code 1 << 27} + */ + public static final int InputRGB = 134217728; + + /** + * [Input] // ColorEdit, ColorPicker: input and output data in HSV format. + * + *

Definition: {@code 1 << 28} + */ + public static final int InputHSV = 268435456; + + /** + * Defaults Options. You can set application defaults using SetColorEditOptions(). The intent is that you probably don't want to override them in most of your calls. Let the user choose via the option menu and/or call SetColorEditOptions() once during startup. + * + *

Definition: {@code ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_PickerHueBar} + */ + public static final int DefaultOptions_ = 177209344; + + /** + * [Internal] Masks + * + *

Definition: {@code ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_DisplayHSV | ImGuiColorEditFlags_DisplayHex} + */ + public static final int DisplayMask_ = 7340032; + + /** + * [Internal] Masks + * + *

Definition: {@code ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_Float} + */ + public static final int DataTypeMask_ = 25165824; + + /** + * [Internal] Masks + * + *

Definition: {@code ImGuiColorEditFlags_PickerHueWheel | ImGuiColorEditFlags_PickerHueBar} + */ + public static final int PickerMask_ = 100663296; + + /** + * [Internal] Masks + * + *

Definition: {@code ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_InputHSV} + */ + public static final int InputMask_ = 402653184; + + /** + * [renamed in 1.69] + * + *

Definition: {@code ImGuiColorEditFlags_DisplayRGB} + */ + public static final int RGB = 1048576; + + /** + * [renamed in 1.69] + * + *

Definition: {@code ImGuiColorEditFlags_DisplayHSV} + */ + public static final int HSV = 2097152; + + /** + * [renamed in 1.69] + * + *

Definition: {@code ImGuiColorEditFlags_DisplayHex} + */ + public static final int HEX = 4194304; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiComboFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiComboFlags.java new file mode 100644 index 0000000..324f371 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiComboFlags.java @@ -0,0 +1,69 @@ +package imgui.flag; + + +/** + * Flags for ImGui::BeginCombo() + */ +public final class ImGuiComboFlags { + private ImGuiComboFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Align the popup toward the left by default + * + *

Definition: {@code 1 << 0} + */ + public static final int PopupAlignLeft = 1; + + /** + * Max ~4 items visible. Tip: If you want your combo popup to be a specific size you can use SetNextWindowSizeConstraints() prior to calling BeginCombo() + * + *

Definition: {@code 1 << 1} + */ + public static final int HeightSmall = 2; + + /** + * Max ~8 items visible (default) + * + *

Definition: {@code 1 << 2} + */ + public static final int HeightRegular = 4; + + /** + * Max ~20 items visible + * + *

Definition: {@code 1 << 3} + */ + public static final int HeightLarge = 8; + + /** + * As many fitting items as possible + * + *

Definition: {@code 1 << 4} + */ + public static final int HeightLargest = 16; + + /** + * Display on the preview box without the square arrow button + * + *

Definition: {@code 1 << 5} + */ + public static final int NoArrowButton = 32; + + /** + * Display only a square arrow button + * + *

Definition: {@code 1 << 6} + */ + public static final int NoPreview = 64; + + /** + * Definition: {@code ImGuiComboFlags_HeightSmall | ImGuiComboFlags_HeightRegular | ImGuiComboFlags_HeightLarge | ImGuiComboFlags_HeightLargest} + */ + public static final int HeightMask_ = 30; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiCond.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiCond.java new file mode 100644 index 0000000..b023d3f --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiCond.java @@ -0,0 +1,47 @@ +package imgui.flag; + + +/** + * Enumeration for ImGui::SetWindow***(), SetNextWindow***(), SetNextItem***() functions + * Represent a condition. + * Important: Treat as a regular enum! Do NOT combine multiple values using binary operators! All the functions above treat 0 as a shortcut to ImGuiCond_Always. + */ +public final class ImGuiCond { + private ImGuiCond() { + } + + /** + * No condition (always set the variable), same as _Always + * + *

Definition: {@code 0} + */ + public static final int None = 0; + + /** + * No condition (always set the variable) + * + *

Definition: {@code 1 << 0} + */ + public static final int Always = 1; + + /** + * Set the variable once per runtime session (only the first call will succeed) + * + *

Definition: {@code 1 << 1} + */ + public static final int Once = 2; + + /** + * Set the variable if the object/window has no persistently saved data (no entry in .ini file) + * + *

Definition: {@code 1 << 2} + */ + public static final int FirstUseEver = 4; + + /** + * Set the variable if the object/window is appearing after being hidden/inactive (or the first time) + * + *

Definition: {@code 1 << 3} + */ + public static final int Appearing = 8; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiConfigFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiConfigFlags.java new file mode 100644 index 0000000..606cd1d --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiConfigFlags.java @@ -0,0 +1,99 @@ +package imgui.flag; + + +/** + * Configuration flags stored in io.ConfigFlags. Set by user/application. + */ +public final class ImGuiConfigFlags { + private ImGuiConfigFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Master keyboard navigation enable flag. NewFrame() will automatically fill io.NavInputs[] based on io.KeysDown[]. + * + *

Definition: {@code 1 << 0} + */ + public static final int NavEnableKeyboard = 1; + + /** + * Master gamepad navigation enable flag. This is mostly to instruct your imgui backend to fill io.NavInputs[]. Backend also needs to set ImGuiBackendFlags_HasGamepad. + * + *

Definition: {@code 1 << 1} + */ + 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 imgui to clear mouse position/buttons in NewFrame(). This allows ignoring the mouse information set by the backend. + * + *

Definition: {@code 1 << 4} + */ + public static final int NoMouse = 16; + + /** + * Instruct backend to not alter mouse cursor shape and visibility. Use if the backend cursor changes are interfering with yours and you don't want to use SetMouseCursor() to change mouse cursor. You may want to honor requests from imgui by reading GetMouseCursor() yourself instead. + * + *

Definition: {@code 1 << 5} + */ + public static final int NoMouseCursorChange = 32; + + /** + * Docking enable flags. + * + *

Definition: {@code 1 << 6} + */ + public static final int DockingEnable = 64; + + /** + * Viewport enable flags (require both ImGuiBackendFlags_PlatformHasViewports + ImGuiBackendFlags_RendererHasViewports set by the respective backends) + * + *

Definition: {@code 1 << 10} + */ + 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. + * + *

Definition: {@code 1 << 14} + */ + public static final int DpiEnableScaleViewports = 16384; + + /** + * [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. + * + *

Definition: {@code 1 << 15} + */ + public static final int DpiEnableScaleFonts = 32768; + + /** + * Application is SRGB-aware. + * + *

Definition: {@code 1 << 20} + */ + public static final int IsSRGB = 1048576; + + /** + * Application is using a touch screen instead of a mouse. + * + *

Definition: {@code 1 << 21} + */ + public static final int IsTouchScreen = 2097152; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiDataType.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiDataType.java new file mode 100644 index 0000000..44a5bb8 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiDataType.java @@ -0,0 +1,62 @@ +package imgui.flag; + + +/** + * A primary data type + */ +public final class ImGuiDataType { + private ImGuiDataType() { + } + + /** + * signed char / char (with sensible compilers) + */ + public static final int S8 = 0; + + /** + * unsigned char + */ + public static final int U8 = 1; + + /** + * short + */ + public static final int S16 = 2; + + /** + * unsigned short + */ + public static final int U16 = 3; + + /** + * int + */ + public static final int S32 = 4; + + /** + * unsigned int + */ + public static final int U32 = 5; + + /** + * long long / __int64 + */ + public static final int S64 = 6; + + /** + * unsigned long long / unsigned __int64 + */ + public static final int U64 = 7; + + /** + * float + */ + public static final int Float = 8; + + /** + * double + */ + public static final int Double = 9; + + public static final int COUNT = 10; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiDir.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiDir.java new file mode 100644 index 0000000..61cb0f5 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiDir.java @@ -0,0 +1,37 @@ +package imgui.flag; + + +/** + * A cardinal direction + */ +public final class ImGuiDir { + private ImGuiDir() { + } + + /** + * Definition: {@code -1} + */ + public static final int None = -1; + + /** + * Definition: {@code 0} + */ + public static final int Left = 0; + + /** + * Definition: {@code 1} + */ + public static final int Right = 1; + + /** + * Definition: {@code 2} + */ + public static final int Up = 2; + + /** + * Definition: {@code 3} + */ + public static final int Down = 3; + + public static final int COUNT = 4; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiDockNodeFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiDockNodeFlags.java new file mode 100644 index 0000000..6734c43 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiDockNodeFlags.java @@ -0,0 +1,58 @@ +package imgui.flag; + + +/** + * Flags for ImGui::DockSpace(), shared/inherited by child nodes. + * (Some flags can be applied to individual nodes directly) + */ +public final class ImGuiDockNodeFlags { + private ImGuiDockNodeFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Shared // Don't display the dockspace node but keep it alive. Windows docked into this dockspace node won't be undocked. + * + *

Definition: {@code 1 << 0} + */ + public static final int KeepAliveOnly = 1; + + /** + * Shared // Disable docking inside the Central Node, which will be always kept empty. + * + *

Definition: {@code 1 << 2} + */ + public static final int NoDockingInCentralNode = 4; + + /** + * Shared // Enable passthru dockspace: 1) DockSpace() will render a ImGuiCol_WindowBg background covering everything excepted the Central Node when empty. Meaning the host window should probably use SetNextWindowBgAlpha(0.0f) prior to Begin() when using this. 2) When Central Node is empty: let inputs pass-through + won't display a DockingEmptyBg background. See demo for details. + * + *

Definition: {@code 1 << 3} + */ + public static final int PassthruCentralNode = 8; + + /** + * Shared/Local // Disable splitting the node into smaller nodes. Useful e.g. when embedding dockspaces into a main root one (the root one may have splitting disabled to reduce confusion). Note: when turned off, existing splits will be preserved. + * + *

Definition: {@code 1 << 4} + */ + public static final int NoSplit = 16; + + /** + * Shared/Local // Disable resizing node using the splitter/separators. Useful with programmatically setup dockspaces. + * + *

Definition: {@code 1 << 5} + */ + public static final int NoResize = 32; + + /** + * Shared/Local // Tab bar will automatically hide when there is a single window in the dock node. + * + *

Definition: {@code 1 << 6} + */ + public static final int AutoHideTabBar = 64; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiDragDropFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiDragDropFlags.java new file mode 100644 index 0000000..2816f7b --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiDragDropFlags.java @@ -0,0 +1,85 @@ +package imgui.flag; + + +/** + * Flags for ImGui::BeginDragDropSource(), ImGui::AcceptDragDropPayload() + */ +public final class ImGuiDragDropFlags { + private ImGuiDragDropFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * By default, a successful call to BeginDragDropSource opens a tooltip so you can display a preview or description of the source contents. This flag disable this behavior. + * + *

Definition: {@code 1 << 0} + */ + public static final int SourceNoPreviewTooltip = 1; + + /** + * By default, when dragging we clear data so that IsItemHovered() will return false, to avoid subsequent user code submitting tooltips. This flag disable this behavior so you can still call IsItemHovered() on the source item. + * + *

Definition: {@code 1 << 1} + */ + public static final int SourceNoDisableHover = 2; + + /** + * Disable the behavior that allows to open tree nodes and collapsing header by holding over them while dragging a source item. + * + *

Definition: {@code 1 << 2} + */ + public static final int SourceNoHoldToOpenOthers = 4; + + /** + * Allow items such as Text(), Image() that have no unique identifier to be used as drag source, by manufacturing a temporary identifier based on their window-relative position. This is extremely unusual within the dear imgui ecosystem and so we made it explicit. + * + *

Definition: {@code 1 << 3} + */ + public static final int SourceAllowNullID = 8; + + /** + * External source (from outside of dear imgui), won't attempt to read current item/window info. Will always return true. Only one Extern source can be active simultaneously. + * + *

Definition: {@code 1 << 4} + */ + public static final int SourceExtern = 16; + + /** + * Automatically expire the payload if the source cease to be submitted (otherwise payloads are persisting while being dragged) + * + *

Definition: {@code 1 << 5} + */ + public static final int SourceAutoExpirePayload = 32; + + /** + * AcceptDragDropPayload() will returns true even before the mouse button is released. You can then call IsDelivery() to test if the payload needs to be delivered. + * + *

Definition: {@code 1 << 10} + */ + public static final int AcceptBeforeDelivery = 1024; + + /** + * Do not draw the default highlight rectangle when hovering over target. + * + *

Definition: {@code 1 << 11} + */ + public static final int AcceptNoDrawDefaultRect = 2048; + + /** + * Request hiding the BeginDragDropSource tooltip from the BeginDragDropTarget site. + * + *

Definition: {@code 1 << 12} + */ + public static final int AcceptNoPreviewTooltip = 4096; + + /** + * For peeking ahead and inspecting the payload before delivery. + * + *

Definition: {@code ImGuiDragDropFlags_AcceptBeforeDelivery | ImGuiDragDropFlags_AcceptNoDrawDefaultRect} + */ + public static final int AcceptPeekOnly = 3072; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiFocusedFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiFocusedFlags.java new file mode 100644 index 0000000..592a842 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiFocusedFlags.java @@ -0,0 +1,55 @@ +package imgui.flag; + + +/** + * Flags for ImGui::IsWindowFocused() + */ +public final class ImGuiFocusedFlags { + private ImGuiFocusedFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Return true if any children of the window is focused + * + *

Definition: {@code 1 << 0} + */ + public static final int ChildWindows = 1; + + /** + * Test from root window (top most parent of the current hierarchy) + * + *

Definition: {@code 1 << 1} + */ + public static final int RootWindow = 2; + + /** + * Return true if any window is focused. Important: If you are trying to tell how to dispatch your low-level inputs, do NOT use this. Use 'io.WantCaptureMouse' instead! Please read the FAQ! + * + *

Definition: {@code 1 << 2} + */ + public static final int AnyWindow = 4; + + /** + * Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow) + * + *

Definition: {@code 1 << 3} + */ + public static final int NoPopupHierarchy = 8; + + /** + * Consider docking hierarchy (treat dockspace host as parent of docked window) (when used with _ChildWindows or _RootWindow) + * + *

Definition: {@code 1 << 4} + */ + public static final int DockHierarchy = 16; + + /** + * Definition: {@code ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows} + */ + public static final int RootAndChildWindows = 3; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiFreeTypeBuilderFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiFreeTypeBuilderFlags.java new file mode 100644 index 0000000..8417d73 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiFreeTypeBuilderFlags.java @@ -0,0 +1,9 @@ +package imgui.flag; + + +public final class ImGuiFreeTypeBuilderFlags { + private ImGuiFreeTypeBuilderFlags() { + } + + +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiHoveredFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiHoveredFlags.java new file mode 100644 index 0000000..0900a3e --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiHoveredFlags.java @@ -0,0 +1,92 @@ +package imgui.flag; + + +/** + * Flags for ImGui::IsItemHovered(), ImGui::IsWindowHovered() + * Note:if you are trying to check whether your mouse should be dispatched to Dear ImGui or to your app, + * you should use'io.WantCaptureMouse'instead!Please read the FAQ!Note: windows with the ImGuiWindowFlags_NoInputs flag are ignored by IsWindowHovered() calls. + */ +public final class ImGuiHoveredFlags { + private ImGuiHoveredFlags() { + } + + /** + * Return true if directly over the item/window, not obstructed by another window, not obstructed by an active popup or modal blocking inputs under them. + * + *

Definition: {@code 0} + */ + public static final int None = 0; + + /** + * IsWindowHovered() only: Return true if any children of the window is hovered + * + *

Definition: {@code 1 << 0} + */ + public static final int ChildWindows = 1; + + /** + * IsWindowHovered() only: Test from root window (top most parent of the current hierarchy) + * + *

Definition: {@code 1 << 1} + */ + public static final int RootWindow = 2; + + /** + * IsWindowHovered() only: Return true if any window is hovered + * + *

Definition: {@code 1 << 2} + */ + public static final int AnyWindow = 4; + + /** + * IsWindowHovered() only: Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow) + * + *

Definition: {@code 1 << 3} + */ + public static final int NoPopupHierarchy = 8; + + /** + * IsWindowHovered() only: Consider docking hierarchy (treat dockspace host as parent of docked window) (when used with _ChildWindows or _RootWindow) + * + *

Definition: {@code 1 << 4} + */ + public static final int DockHierarchy = 16; + + /** + * Return true even if a popup window is normally blocking access to this item/window + * + *

Definition: {@code 1 << 5} + */ + public static final int AllowWhenBlockedByPopup = 32; + + /** + * Return true even if an active item is blocking access to this item/window. Useful for Drag and Drop patterns. + * + *

Definition: {@code 1 << 7} + */ + public static final int AllowWhenBlockedByActiveItem = 128; + + /** + * IsItemHovered() only: Return true even if the position is obstructed or overlapped by another window + * + *

Definition: {@code 1 << 8} + */ + public static final int AllowWhenOverlapped = 256; + + /** + * IsItemHovered() only: Return true even if the item is disabled + * + *

Definition: {@code 1 << 9} + */ + public static final int AllowWhenDisabled = 512; + + /** + * Definition: {@code ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped} + */ + public static final int RectOnly = 416; + + /** + * Definition: {@code ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows} + */ + public static final int RootAndChildWindows = 3; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiInputTextFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiInputTextFlags.java new file mode 100644 index 0000000..43e21ce --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiInputTextFlags.java @@ -0,0 +1,162 @@ +package imgui.flag; + + +/** + * Flags for ImGui::InputText() + */ +public final class ImGuiInputTextFlags { + private ImGuiInputTextFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Allow 0123456789.+-* / + * + *

Definition: {@code 1 << 0} + */ + public static final int CharsDecimal = 1; + + /** + * Allow 0123456789ABCDEFabcdef + * + *

Definition: {@code 1 << 1} + */ + public static final int CharsHexadecimal = 2; + + /** + * Turn a..z into A..Z + * + *

Definition: {@code 1 << 2} + */ + public static final int CharsUppercase = 4; + + /** + * Filter out spaces, tabs + * + *

Definition: {@code 1 << 3} + */ + public static final int CharsNoBlank = 8; + + /** + * Select entire text when first taking mouse focus + * + *

Definition: {@code 1 << 4} + */ + public static final int AutoSelectAll = 16; + + /** + * Return 'true' when Enter is pressed (as opposed to every time the value was modified). Consider looking at the IsItemDeactivatedAfterEdit() function. + * + *

Definition: {@code 1 << 5} + */ + public static final int EnterReturnsTrue = 32; + + /** + * Callback on pressing TAB (for completion handling) + * + *

Definition: {@code 1 << 6} + */ + public static final int CallbackCompletion = 64; + + /** + * Callback on pressing Up/Down arrows (for history handling) + * + *

Definition: {@code 1 << 7} + */ + public static final int CallbackHistory = 128; + + /** + * Callback on each iteration. User code may query cursor position, modify text buffer. + * + *

Definition: {@code 1 << 8} + */ + public static final int CallbackAlways = 256; + + /** + * 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 << 9} + */ + public static final int CallbackCharFilter = 512; + + /** + * Pressing TAB input a ' ' character into the text field + * + *

Definition: {@code 1 << 10} + */ + public static final int AllowTabInput = 1024; + + /** + * In multi-line mode, unfocus with Enter, add new line with Ctrl+Enter (default is opposite: unfocus with Ctrl+Enter, add line with Enter). + * + *

Definition: {@code 1 << 11} + */ + public static final int CtrlEnterForNewLine = 2048; + + /** + * Disable following the cursor horizontally + * + *

Definition: {@code 1 << 12} + */ + public static final int NoHorizontalScroll = 4096; + + /** + * Overwrite mode + * + *

Definition: {@code 1 << 13} + */ + public static final int AlwaysOverwrite = 8192; + + /** + * Read-only mode + * + *

Definition: {@code 1 << 14} + */ + public static final int ReadOnly = 16384; + + /** + * Password mode, display all characters as '*' + * + *

Definition: {@code 1 << 15} + */ + public static final int Password = 32768; + + /** + * Disable undo/redo. Note that input text owns the text data while active, if you want to provide your own undo/redo stack you need e.g. to call ClearActiveID(). + * + *

Definition: {@code 1 << 16} + */ + public static final int NoUndoRedo = 65536; + + /** + * Allow 0123456789.+-* /eE (Scientific notation input) + * + *

Definition: {@code 1 << 17} + */ + public static final int CharsScientific = 131072; + + /** + * 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 << 18} + */ + public static final int CallbackResize = 262144; + + /** + * 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) + * + *

Definition: {@code 1 << 19} + */ + public static final int CallbackEdit = 524288; + + /** + * [renamed in 1.82] name was not matching behavior + * + *

Definition: {@code ImGuiInputTextFlags_AlwaysOverwrite} + */ + public static final int AlwaysInsertMode = 8192; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiKey.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiKey.java new file mode 100644 index 0000000..a9da1ff --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiKey.java @@ -0,0 +1,74 @@ +package imgui.flag; + + +/** + * User fill ImGuiIO.KeyMap[] array with indices into the ImGuiIO.KeysDown[512] array + */ +public final class ImGuiKey { + private ImGuiKey() { + } + + public static final int Tab = 0; + + public static final int LeftArrow = 1; + + public static final int RightArrow = 2; + + public static final int UpArrow = 3; + + public static final int DownArrow = 4; + + public static final int PageUp = 5; + + public static final int PageDown = 6; + + public static final int Home = 7; + + public static final int End = 8; + + public static final int Insert = 9; + + public static final int Delete = 10; + + public static final int Backspace = 11; + + public static final int Space = 12; + + public static final int Enter = 13; + + public static final int Escape = 14; + + public static final int KeyPadEnter = 15; + + /** + * for text edit CTRL+A: select all + */ + public static final int A = 16; + + /** + * for text edit CTRL+C: copy + */ + public static final int C = 17; + + /** + * for text edit CTRL+V: paste + */ + public static final int V = 18; + + /** + * for text edit CTRL+X: cut + */ + public static final int X = 19; + + /** + * for text edit CTRL+Y: redo + */ + public static final int Y = 20; + + /** + * for text edit CTRL+Z: undo + */ + public static final int Z = 21; + + public static final int COUNT = 22; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiKeyModFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiKeyModFlags.java new file mode 100644 index 0000000..aa527a4 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiKeyModFlags.java @@ -0,0 +1,35 @@ +package imgui.flag; + + +/** + * To test io.KeyMods (which is a combination of individual fields io.KeyCtrl, io.KeyShift, io.KeyAlt set by user/backend) + */ +public final class ImGuiKeyModFlags { + private ImGuiKeyModFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Definition: {@code 1 << 0} + */ + public static final int Ctrl = 1; + + /** + * Definition: {@code 1 << 1} + */ + public static final int Shift = 2; + + /** + * Definition: {@code 1 << 2} + */ + public static final int Alt = 4; + + /** + * Definition: {@code 1 << 3} + */ + public static final int Super = 8; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiMouseButton.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiMouseButton.java new file mode 100644 index 0000000..639a3a3 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiMouseButton.java @@ -0,0 +1,31 @@ +package imgui.flag; + + +/** + * Identify a mouse button. + * Those values are guaranteed to be stable and we frequently use 0/1 directly. Named enums provided for convenience. + */ +public final class ImGuiMouseButton { + private ImGuiMouseButton() { + } + + /** + * Definition: {@code 0} + */ + public static final int Left = 0; + + /** + * Definition: {@code 1} + */ + public static final int Right = 1; + + /** + * Definition: {@code 2} + */ + public static final int Middle = 2; + + /** + * Definition: {@code 5} + */ + public static final int COUNT = 5; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiMouseCursor.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiMouseCursor.java new file mode 100644 index 0000000..04728b5 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiMouseCursor.java @@ -0,0 +1,63 @@ +package imgui.flag; + + +/** + * Enumeration for GetMouseCursor() + * User code may request binding to display given cursor by calling SetMouseCursor(), which is why we have some cursors that are marked unused here + */ +public final class ImGuiMouseCursor { + private ImGuiMouseCursor() { + } + + /** + * Definition: {@code -1} + */ + public static final int None = -1; + + /** + * Definition: {@code 0} + */ + public static final int Arrow = 0; + + /** + * When hovering over InputText, etc. + */ + public static final int TextInput = 1; + + /** + * (Unused by Dear ImGui functions) + */ + public static final int ResizeAll = 2; + + /** + * When hovering over an horizontal border + */ + public static final int ResizeNS = 3; + + /** + * When hovering over a vertical border or a column + */ + public static final int ResizeEW = 4; + + /** + * When hovering over the bottom-left corner of a window + */ + public static final int ResizeNESW = 5; + + /** + * When hovering over the bottom-right corner of a window + */ + public static final int ResizeNWSE = 6; + + /** + * (Unused by Dear ImGui functions. Use for e.g. hyperlinks) + */ + public static final int Hand = 7; + + /** + * When hovering something with disallowed interaction. Usually a crossed circle. + */ + public static final int NotAllowed = 8; + + public static final int COUNT = 9; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiNavInput.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiNavInput.java new file mode 100644 index 0000000..6a78367 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiNavInput.java @@ -0,0 +1,105 @@ +package imgui.flag; + + +/** + * Gamepad/Keyboard directional navigation + * Keyboard: Set io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard to enable. + * NewFrame() will automatically fill io.NavInputs[] based on your io.KeysDown[] + io.KeyMap[] arrays. + * Gamepad: Set io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad to enable. + * Backend: set ImGuiBackendFlags_HasGamepad and fill the io.NavInputs[] fields before calling NewFrame(). + * Note that io.NavInputs[] is cleared by EndFrame(). + * Read instructions in imgui.cpp for more details. Download PNG/PSD at http://dearimgui.org/controls_sheets. + */ +public final class ImGuiNavInput { + private ImGuiNavInput() { + } + + /** + * activate / open / toggle / tweak value // e.g. Cross (PS4), A (Xbox), A (Switch), Space (Keyboard) + */ + public static final int Activate = 0; + + /** + * cancel / close / exit // e.g. Circle (PS4), B (Xbox), B (Switch), Escape (Keyboard) + */ + public static final int Cancel = 1; + + /** + * text input / on-screen keyboard // e.g. Triang.(PS4), Y (Xbox), X (Switch), Return (Keyboard) + */ + public static final int Input = 2; + + /** + * tap: toggle menu / hold: focus, move, resize // e.g. Square (PS4), X (Xbox), Y (Switch), Alt (Keyboard) + */ + public static final int Menu = 3; + + /** + * move / tweak / resize window (w/ PadMenu) // e.g. D-pad Left/Right/Up/Down (Gamepads), Arrow keys (Keyboard) + */ + public static final int DpadLeft = 4; + + public static final int DpadRight = 5; + + public static final int DpadUp = 6; + + public static final int DpadDown = 7; + + /** + * scroll / move window (w/ PadMenu) // e.g. Left Analog Stick Left/Right/Up/Down + */ + public static final int LStickLeft = 8; + + public static final int LStickRight = 9; + + public static final int LStickUp = 10; + + public static final int LStickDown = 11; + + /** + * next window (w/ PadMenu) // e.g. L1 or L2 (PS4), LB or LT (Xbox), L or ZL (Switch) + */ + public static final int FocusPrev = 12; + + /** + * prev window (w/ PadMenu) // e.g. R1 or R2 (PS4), RB or RT (Xbox), R or ZL (Switch) + */ + public static final int FocusNext = 13; + + /** + * slower tweaks // e.g. L1 or L2 (PS4), LB or LT (Xbox), L or ZL (Switch) + */ + public static final int TweakSlow = 14; + + /** + * faster tweaks // e.g. R1 or R2 (PS4), RB or RT (Xbox), R or ZL (Switch) + */ + public static final int TweakFast = 15; + + /** + * move left // = Arrow keys + */ + public static final int KeyLeft_ = 16; + + /** + * move right + */ + public static final int KeyRight_ = 17; + + /** + * move up + */ + public static final int KeyUp_ = 18; + + /** + * move down + */ + public static final int KeyDown_ = 19; + + public static final int COUNT = 20; + + /** + * Definition: {@code ImGuiNavInput_KeyLeft_} + */ + public static final int InternalStart_ = 16; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiPopupFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiPopupFlags.java new file mode 100644 index 0000000..6d139b4 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiPopupFlags.java @@ -0,0 +1,84 @@ +package imgui.flag; + + +/** + * Flags for OpenPopup*(), BeginPopupContext*(), IsPopupOpen() functions. + * - To be backward compatible with older API which took an 'int mouse_button = 1' argument, we need to treat + * small flags values as a mouse button index, so we encode the mouse button in the first few bits of the flags. + * It is therefore guaranteed to be legal to pass a mouse button index in ImGuiPopupFlags. + * - For the same reason, we exceptionally default the ImGuiPopupFlags argument of BeginPopupContextXXX functions to 1 instead of 0. + * - Multiple buttons currently cannot be combined/or-ed in those functions (we could allow it later). + */ +public final class ImGuiPopupFlags { + private ImGuiPopupFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * For BeginPopupContext*(): open on Left Mouse release. Guaranteed to always be == 0 (same as ImGuiMouseButton_Left) + * + *

Definition: {@code 0} + */ + public static final int MouseButtonLeft = 0; + + /** + * For BeginPopupContext*(): open on Right Mouse release. Guaranteed to always be == 1 (same as ImGuiMouseButton_Right) + * + *

Definition: {@code 1} + */ + public static final int MouseButtonRight = 1; + + /** + * For BeginPopupContext*(): open on Middle Mouse release. Guaranteed to always be == 2 (same as ImGuiMouseButton_Middle) + * + *

Definition: {@code 2} + */ + public static final int MouseButtonMiddle = 2; + + /** + * Definition: {@code 0x1F} + */ + public static final int MouseButtonMask_ = 31; + + /** + * Definition: {@code 1} + */ + public static final int MouseButtonDefault_ = 1; + + /** + * For OpenPopup*(), BeginPopupContext*(): don't open if there's already a popup at the same level of the popup stack + * + *

Definition: {@code 1 << 5} + */ + public static final int NoOpenOverExistingPopup = 32; + + /** + * For BeginPopupContextWindow(): don't return true when hovering items, only when hovering empty space + * + *

Definition: {@code 1 << 6} + */ + public static final int NoOpenOverItems = 64; + + /** + * For IsPopupOpen(): ignore the ImGuiID parameter and test for any popup. + * + *

Definition: {@code 1 << 7} + */ + public static final int AnyPopupId = 128; + + /** + * For IsPopupOpen(): search/test at any level of the popup stack (default test in the current level) + * + *

Definition: {@code 1 << 8} + */ + public static final int AnyPopupLevel = 256; + + /** + * Definition: {@code ImGuiPopupFlags_AnyPopupId | ImGuiPopupFlags_AnyPopupLevel} + */ + public static final int AnyPopup = 384; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiSelectableFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiSelectableFlags.java new file mode 100644 index 0000000..551f61b --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiSelectableFlags.java @@ -0,0 +1,50 @@ +package imgui.flag; + + +/** + * Flags for ImGui::Selectable() + */ +public final class ImGuiSelectableFlags { + private ImGuiSelectableFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Clicking this don't close parent popup window + * + *

Definition: {@code 1 << 0} + */ + public static final int DontClosePopups = 1; + + /** + * Selectable frame can span all columns (text will still fit in current column) + * + *

Definition: {@code 1 << 1} + */ + public static final int SpanAllColumns = 2; + + /** + * Generate press events on double clicks too + * + *

Definition: {@code 1 << 2} + */ + public static final int AllowDoubleClick = 4; + + /** + * Cannot be selected, display grayed out text + * + *

Definition: {@code 1 << 3} + */ + public static final int Disabled = 8; + + /** + * (WIP) Hit testing to allow subsequent widgets to overlap this one + * + *

Definition: {@code 1 << 4} + */ + public static final int AllowItemOverlap = 16; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiSliderFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiSliderFlags.java new file mode 100644 index 0000000..266f7c0 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiSliderFlags.java @@ -0,0 +1,54 @@ +package imgui.flag; + + +public final class ImGuiSliderFlags { + private ImGuiSliderFlags() { + } + + /** + * Definition: {@code 0} + */ + 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. + * + *

Definition: {@code 1 << 5} + */ + public static final int Logarithmic = 32; + + /** + * Disable rounding underlying value to match precision of the display format string (e.g. %.3f values are rounded to those 3 digits) + * + *

Definition: {@code 1 << 6} + */ + public static final int NoRoundToFormat = 64; + + /** + * Disable CTRL+Click or Enter key allowing to input text directly into the widget + * + *

Definition: {@code 1 << 7} + */ + public static final int NoInput = 128; + + /** + * [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. + * + *

Definition: {@code 0x7000000F} + */ + public static final int InvalidMask_ = 1879048207; + + /** + * [renamed in 1.79] + * + *

Definition: {@code ImGuiSliderFlags_AlwaysClamp} + */ + public static final int ClampOnInput = 16; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiSortDirection.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiSortDirection.java new file mode 100644 index 0000000..49dca2a --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiSortDirection.java @@ -0,0 +1,29 @@ +package imgui.flag; + + +/** + * A sorting direction + */ +public final class ImGuiSortDirection { + private ImGuiSortDirection() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Ascending = 0{@code ->}9, A{@code ->}Z etc. + * + *

Definition: {@code 1} + */ + public static final int Ascending = 1; + + /** + * Descending = 9{@code ->}0, Z{@code ->}A etc. + * + *

Definition: {@code 2} + */ + public static final int Descending = 2; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiStyleVar.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiStyleVar.java new file mode 100644 index 0000000..614d2e3 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiStyleVar.java @@ -0,0 +1,143 @@ +package imgui.flag; + + +/** + * Enumeration for PushStyleVar() / PopStyleVar() to temporarily modify the ImGuiStyle structure. + * - The enum only refers to fields of ImGuiStyle which makes sense to be pushed/popped inside UI code. + * During initialization or between frames, feel free to just poke into ImGuiStyle directly. + * - Tip: Use your programming IDE navigation facilities on the names in the _second column_ below to find the actual members and their description. + * In Visual Studio IDE: CTRL+comma ("Edit.NavigateTo") can follow symbols in comments, whereas CTRL+F12 ("Edit.GoToImplementation") cannot. + * With Visual Assist installed: ALT+G ("VAssistX.GoToImplementation") can also follow symbols in comments. + * - When changing this enum, you need to update the associated internal table GStyleVarInfo[] accordingly. This is where we link enum values to members offset/type. + */ +public final class ImGuiStyleVar { + private ImGuiStyleVar() { + } + + /** + * float Alpha + */ + public static final int Alpha = 0; + + /** + * float DisabledAlpha + */ + public static final int DisabledAlpha = 1; + + /** + * ImVec2 WindowPadding + */ + public static final int WindowPadding = 2; + + /** + * float WindowRounding + */ + public static final int WindowRounding = 3; + + /** + * float WindowBorderSize + */ + public static final int WindowBorderSize = 4; + + /** + * ImVec2 WindowMinSize + */ + public static final int WindowMinSize = 5; + + /** + * ImVec2 WindowTitleAlign + */ + public static final int WindowTitleAlign = 6; + + /** + * float ChildRounding + */ + public static final int ChildRounding = 7; + + /** + * float ChildBorderSize + */ + public static final int ChildBorderSize = 8; + + /** + * float PopupRounding + */ + public static final int PopupRounding = 9; + + /** + * float PopupBorderSize + */ + public static final int PopupBorderSize = 10; + + /** + * ImVec2 FramePadding + */ + public static final int FramePadding = 11; + + /** + * float FrameRounding + */ + public static final int FrameRounding = 12; + + /** + * float FrameBorderSize + */ + public static final int FrameBorderSize = 13; + + /** + * ImVec2 ItemSpacing + */ + public static final int ItemSpacing = 14; + + /** + * ImVec2 ItemInnerSpacing + */ + public static final int ItemInnerSpacing = 15; + + /** + * float IndentSpacing + */ + public static final int IndentSpacing = 16; + + /** + * ImVec2 CellPadding + */ + public static final int CellPadding = 17; + + /** + * float ScrollbarSize + */ + public static final int ScrollbarSize = 18; + + /** + * float ScrollbarRounding + */ + public static final int ScrollbarRounding = 19; + + /** + * float GrabMinSize + */ + public static final int GrabMinSize = 20; + + /** + * float GrabRounding + */ + public static final int GrabRounding = 21; + + /** + * float TabRounding + */ + public static final int TabRounding = 22; + + /** + * ImVec2 ButtonTextAlign + */ + public static final int ButtonTextAlign = 23; + + /** + * ImVec2 SelectableTextAlign + */ + public static final int SelectableTextAlign = 24; + + public static final int COUNT = 25; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiTabBarFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiTabBarFlags.java new file mode 100644 index 0000000..30810ae --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiTabBarFlags.java @@ -0,0 +1,81 @@ +package imgui.flag; + + +/** + * Flags for ImGui::BeginTabBar() + */ +public final class ImGuiTabBarFlags { + private ImGuiTabBarFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Allow manually dragging tabs to re-order them + New tabs are appended at the end of list + * + *

Definition: {@code 1 << 0} + */ + public static final int Reorderable = 1; + + /** + * Automatically select new tabs when they appear + * + *

Definition: {@code 1 << 1} + */ + public static final int AutoSelectNewTabs = 2; + + /** + * Disable buttons to open the tab list popup + * + *

Definition: {@code 1 << 2} + */ + public static final int TabListPopupButton = 4; + + /** + * Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You can still repro this behavior on user's side with if (IsItemHovered() {@code &} {@code &} IsMouseClicked(2)) *p_open = false. + * + *

Definition: {@code 1 << 3} + */ + public static final int NoCloseWithMiddleMouseButton = 8; + + /** + * Disable scrolling buttons (apply when fitting policy is ImGuiTabBarFlags_FittingPolicyScroll) + * + *

Definition: {@code 1 << 4} + */ + public static final int NoTabListScrollingButtons = 16; + + /** + * Disable tooltips when hovering a tab + * + *

Definition: {@code 1 << 5} + */ + public static final int NoTooltip = 32; + + /** + * Resize tabs when they don't fit + * + *

Definition: {@code 1 << 6} + */ + public static final int FittingPolicyResizeDown = 64; + + /** + * Add scroll buttons when tabs don't fit + * + *

Definition: {@code 1 << 7} + */ + public static final int FittingPolicyScroll = 128; + + /** + * Definition: {@code ImGuiTabBarFlags_FittingPolicyResizeDown | ImGuiTabBarFlags_FittingPolicyScroll} + */ + public static final int FittingPolicyMask_ = 192; + + /** + * Definition: {@code ImGuiTabBarFlags_FittingPolicyResizeDown} + */ + public static final int FittingPolicyDefault_ = 64; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiTabItemFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiTabItemFlags.java new file mode 100644 index 0000000..2f43fec --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiTabItemFlags.java @@ -0,0 +1,71 @@ +package imgui.flag; + + +/** + * Flags for ImGui::BeginTabItem() + */ +public final class ImGuiTabItemFlags { + private ImGuiTabItemFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Display a dot next to the title + tab is selected when clicking the X + closure is not assumed (will wait for user to stop submitting the tab). Otherwise closure is assumed when pressing the X, so if you keep submitting the tab may reappear at end of tab bar. + * + *

Definition: {@code 1 << 0} + */ + public static final int UnsavedDocument = 1; + + /** + * Trigger flag to programmatically make the tab selected when calling BeginTabItem() + * + *

Definition: {@code 1 << 1} + */ + public static final int SetSelected = 2; + + /** + * Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You can still repro this behavior on user's side with if (IsItemHovered() {@code &} {@code &} IsMouseClicked(2)) *p_open = false. + * + *

Definition: {@code 1 << 2} + */ + public static final int NoCloseWithMiddleMouseButton = 4; + + /** + * Don't call PushID(tab{@code ->}ID)/PopID() on BeginTabItem()/EndTabItem() + * + *

Definition: {@code 1 << 3} + */ + public static final int NoPushId = 8; + + /** + * Disable tooltip for the given tab + * + *

Definition: {@code 1 << 4} + */ + public static final int NoTooltip = 16; + + /** + * Disable reordering this tab or having another tab cross over this tab + * + *

Definition: {@code 1 << 5} + */ + public static final int NoReorder = 32; + + /** + * Enforce the tab position to the left of the tab bar (after the tab list popup button) + * + *

Definition: {@code 1 << 6} + */ + public static final int Leading = 64; + + /** + * Enforce the tab position to the right of the tab bar (before the scrolling buttons) + * + *

Definition: {@code 1 << 7} + */ + public static final int Trailing = 128; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiTableBgTarget.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiTableBgTarget.java new file mode 100644 index 0000000..4949a92 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiTableBgTarget.java @@ -0,0 +1,44 @@ +package imgui.flag; + + +/** + * Enum for ImGui::TableSetBgColor() + * Background colors are rendering in 3 layers: + * - Layer 0: draw with RowBg0 color if set, otherwise draw with ColumnBg0 if set. + * - Layer 1: draw with RowBg1 color if set, otherwise draw with ColumnBg1 if set. + * - Layer 2: draw with CellBg color if set. + * The purpose of the two row/columns layers is to let you decide if a background color changes should override or blend with the existing color. + * When using ImGuiTableFlags_RowBg on the table, each row has the RowBg0 color automatically set for odd/even rows. + * If you set the color of RowBg0 target, your color will override the existing RowBg0 color. + * If you set the color of RowBg1 or ColumnBg1 target, your color will blend over the RowBg0 color. + */ +public final class ImGuiTableBgTarget { + private ImGuiTableBgTarget() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Set row background color 0 (generally used for background, automatically set when ImGuiTableFlags_RowBg is used) + * + *

Definition: {@code 1} + */ + public static final int RowBg0 = 1; + + /** + * Set row background color 1 (generally used for selection marking) + * + *

Definition: {@code 2} + */ + public static final int RowBg1 = 2; + + /** + * Set cell background color (top-most color) + * + *

Definition: {@code 3} + */ + public static final int CellBg = 3; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiTableColumnFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiTableColumnFlags.java new file mode 100644 index 0000000..3f9a391 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiTableColumnFlags.java @@ -0,0 +1,199 @@ +package imgui.flag; + + +/** + * Flags for {@link imgui.ImGui#tableSetupColumn(String, int)} + */ +public final class ImGuiTableColumnFlags { + private ImGuiTableColumnFlags() { + } + + /** + * Input configuration flags + * + *

Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Overriding/master disable flag: hide column, won't show in context menu (unlike calling TableSetColumnEnabled() which manipulates the user accessible state) + * + *

Definition: {@code 1 << 0} + */ + public static final int Disabled = 1; + + /** + * Default as a hidden/disabled column. + * + *

Definition: {@code 1 << 1} + */ + public static final int DefaultHide = 2; + + /** + * Default as a sorting column. + * + *

Definition: {@code 1 << 2} + */ + public static final int DefaultSort = 4; + + /** + * Column will stretch. Preferable with horizontal scrolling disabled (default if table sizing policy is _SizingStretchSame or _SizingStretchProp). + * + *

Definition: {@code 1 << 3} + */ + public static final int WidthStretch = 8; + + /** + * Column will not stretch. Preferable with horizontal scrolling enabled (default if table sizing policy is _SizingFixedFit and table is resizable). + * + *

Definition: {@code 1 << 4} + */ + public static final int WidthFixed = 16; + + /** + * Disable manual resizing. + * + *

Definition: {@code 1 << 5} + */ + public static final int NoResize = 32; + + /** + * Disable manual reordering this column, this will also prevent other columns from crossing over this column. + * + *

Definition: {@code 1 << 6} + */ + public static final int NoReorder = 64; + + /** + * Disable ability to hide/disable this column. + * + *

Definition: {@code 1 << 7} + */ + public static final int NoHide = 128; + + /** + * Disable clipping for this column (all NoClip columns will render in a same draw command). + * + *

Definition: {@code 1 << 8} + */ + public static final int NoClip = 256; + + /** + * Disable ability to sort on this field (even if ImGuiTableFlags_Sortable is set on the table). + * + *

Definition: {@code 1 << 9} + */ + public static final int NoSort = 512; + + /** + * Disable ability to sort in the ascending direction. + * + *

Definition: {@code 1 << 10} + */ + public static final int NoSortAscending = 1024; + + /** + * Disable ability to sort in the descending direction. + * + *

Definition: {@code 1 << 11} + */ + public static final int NoSortDescending = 2048; + + /** + * TableHeadersRow() will not submit label for this column. Convenient for some small columns. Name will still appear in context menu. + * + *

Definition: {@code 1 << 12} + */ + public static final int NoHeaderLabel = 4096; + + /** + * Disable header text width contribution to automatic column width. + * + *

Definition: {@code 1 << 13} + */ + public static final int NoHeaderWidth = 8192; + + /** + * Make the initial sort direction Ascending when first sorting on this column (default). + * + *

Definition: {@code 1 << 14} + */ + public static final int PreferSortAscending = 16384; + + /** + * Make the initial sort direction Descending when first sorting on this column. + * + *

Definition: {@code 1 << 15} + */ + public static final int PreferSortDescending = 32768; + + /** + * Use current Indent value when entering cell (default for column 0). + * + *

Definition: {@code 1 << 16} + */ + public static final int IndentEnable = 65536; + + /** + * Ignore current Indent value when entering cell (default for columns{@code >}0). Indentation changes _within_ the cell will still be honored. + * + *

Definition: {@code 1 << 17} + */ + public static final int IndentDisable = 131072; + + /** + * Status: is enabled == not hidden by user/api (referred to as "Hide" in _DefaultHide and _NoHide) flags. + * + *

Definition: {@code 1 << 24} + */ + public static final int IsEnabled = 16777216; + + /** + * Status: is visible == is enabled AND not clipped by scrolling. + * + *

Definition: {@code 1 << 25} + */ + public static final int IsVisible = 33554432; + + /** + * Status: is currently part of the sort specs + * + *

Definition: {@code 1 << 26} + */ + public static final int IsSorted = 67108864; + + /** + * Status: is hovered by mouse + * + *

Definition: {@code 1 << 27} + */ + public static final int IsHovered = 134217728; + + /** + * [Internal] Combinations and masks + * + *

Definition: {@code ImGuiTableColumnFlags_WidthStretch | ImGuiTableColumnFlags_WidthFixed} + */ + public static final int WidthMask_ = 24; + + /** + * [Internal] Combinations and masks + * + *

Definition: {@code ImGuiTableColumnFlags_IndentEnable | ImGuiTableColumnFlags_IndentDisable} + */ + public static final int IndentMask_ = 196608; + + /** + * [Internal] Combinations and masks + * + *

Definition: {@code ImGuiTableColumnFlags_IsEnabled | ImGuiTableColumnFlags_IsVisible | ImGuiTableColumnFlags_IsSorted | ImGuiTableColumnFlags_IsHovered} + */ + public static final int StatusMask_ = 251658240; + + /** + * [Internal] Disable user resizing this column directly (it may however we resized indirectly from its left edge) + * + *

Definition: {@code 1 << 30} + */ + public static final int NoDirectResize_ = 1073741824; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiTableFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiTableFlags.java new file mode 100644 index 0000000..a15f9e9 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiTableFlags.java @@ -0,0 +1,284 @@ +package imgui.flag; + + +/** + * Flags for ImGui::BeginTable() + * [BETA API] API may evolve slightly! If you use this, please update to the next version when it comes out! + * - Important! Sizing policies have complex and subtle side effects, more so than you would expect. + * Read comments/demos carefully + experiment with live demos to get acquainted with them. + * - The DEFAULT sizing policies are: + * - Default to SizingFixedFit if ScrollX is on, or if host window has ImGuiWindowFlags_AlwaysAutoResize. + * - Default to SizingStretchSame if ScrollX is off. + * - When ScrollX is off: + * - Table defaults to SizingStretchSame {@code ->} all Columns defaults to ImGuiTableColumnFlags_WidthStretch with same weight. + * - Columns sizing policy allowed: Stretch (default), Fixed/Auto. + * - Fixed Columns will generally obtain their requested width (unless the table cannot fit them all). + * - Stretch Columns will share the remaining width. + * - Mixed Fixed/Stretch columns is possible but has various side-effects on resizing behaviors. + * The typical use of mixing sizing policies is: any number of LEADING Fixed columns, followed by one or two TRAILING Stretch columns. + * (this is because the visible order of columns have subtle but necessary effects on how they react to manual resizing). + * - When ScrollX is on: + * - Table defaults to SizingFixedFit {@code ->} all Columns defaults to ImGuiTableColumnFlags_WidthFixed + * - Columns sizing policy allowed: Fixed/Auto mostly. + * - Fixed Columns can be enlarged as needed. Table will show an horizontal scrollbar if needed. + * - When using auto-resizing (non-resizable) fixed columns, querying the content width to use item right-alignment e.g. SetNextItemWidth(-FLT_MIN) doesn't make sense, would create a feedback loop. + * - Using Stretch columns OFTEN DOES NOT MAKE SENSE if ScrollX is on, UNLESS you have specified a value for 'inner_width' in BeginTable(). + * If you specify a value for 'inner_width' then effectively the scrolling space is known and Stretch or mixed Fixed/Stretch columns become meaningful again. + * - Read on documentation at the top of imgui_tables.cpp for details. + */ +public final class ImGuiTableFlags { + private ImGuiTableFlags() { + } + + /** + * Features + * + *

Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Enable resizing columns. + * + *

Definition: {@code 1 << 0} + */ + public static final int Resizable = 1; + + /** + * Enable reordering columns in header row (need calling TableSetupColumn() + TableHeadersRow() to display headers) + * + *

Definition: {@code 1 << 1} + */ + public static final int Reorderable = 2; + + /** + * Enable hiding/disabling columns in context menu. + * + *

Definition: {@code 1 << 2} + */ + public static final int Hideable = 4; + + /** + * Enable sorting. Call TableGetSortSpecs() to obtain sort specs. Also see ImGuiTableFlags_SortMulti and ImGuiTableFlags_SortTristate. + * + *

Definition: {@code 1 << 3} + */ + public static final int Sortable = 8; + + /** + * Disable persisting columns order, width 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(). + * + *

Definition: {@code 1 << 5} + */ + public static final int ContextMenuInBody = 32; + + /** + * Set each RowBg color with ImGuiCol_TableRowBg or ImGuiCol_TableRowBgAlt (equivalent of calling TableSetBgColor with ImGuiTableBgFlags_RowBg0 on each row manually) + * + *

Definition: {@code 1 << 6} + */ + public static final int RowBg = 64; + + /** + * Draw horizontal borders between rows. + * + *

Definition: {@code 1 << 7} + */ + public static final int BordersInnerH = 128; + + /** + * Draw horizontal borders at the top and bottom. + * + *

Definition: {@code 1 << 8} + */ + public static final int BordersOuterH = 256; + + /** + * Draw vertical borders between columns. + * + *

Definition: {@code 1 << 9} + */ + public static final int BordersInnerV = 512; + + /** + * Draw vertical borders on the left and right sides. + * + *

Definition: {@code 1 << 10} + */ + public static final int BordersOuterV = 1024; + + /** + * Draw horizontal borders. + * + *

Definition: {@code ImGuiTableFlags_BordersInnerH | ImGuiTableFlags_BordersOuterH} + */ + public static final int BordersH = 384; + + /** + * Draw vertical borders. + * + *

Definition: {@code ImGuiTableFlags_BordersInnerV | ImGuiTableFlags_BordersOuterV} + */ + public static final int BordersV = 1536; + + /** + * Draw inner borders. + * + *

Definition: {@code ImGuiTableFlags_BordersInnerV | ImGuiTableFlags_BordersInnerH} + */ + public static final int BordersInner = 640; + + /** + * Draw outer borders. + * + *

Definition: {@code ImGuiTableFlags_BordersOuterV | ImGuiTableFlags_BordersOuterH} + */ + public static final int BordersOuter = 1280; + + /** + * Draw all borders. + * + *

Definition: {@code ImGuiTableFlags_BordersInner | ImGuiTableFlags_BordersOuter} + */ + public static final int Borders = 1920; + + /** + * [ALPHA] Disable vertical borders in columns Body (borders will always appears in Headers). {@code ->} May move to style + * + *

Definition: {@code 1 << 11} + */ + public static final int NoBordersInBody = 2048; + + /** + * [ALPHA] Disable vertical borders in columns Body until hovered for resize (borders will always appears in Headers). {@code ->} May move to style + * + *

Definition: {@code 1 << 12} + */ + public static final int NoBordersInBodyUntilResize = 4096; + + /** + * Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching contents width. + * + *

Definition: {@code 1 << 13} + */ + public static final int SizingFixedFit = 8192; + + /** + * Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching the maximum contents width of all columns. Implicitly enable ImGuiTableFlags_NoKeepColumnsVisible. + * + *

Definition: {@code 2 << 13} + */ + public static final int SizingFixedSame = 16384; + + /** + * Columns default to _WidthStretch with default weights proportional to each columns contents widths. + * + *

Definition: {@code 3 << 13} + */ + public static final int SizingStretchProp = 24576; + + /** + * Columns default to _WidthStretch with default weights all equal, unless overridden by TableSetupColumn(). + * + *

Definition: {@code 4 << 13} + */ + public static final int SizingStretchSame = 32768; + + /** + * Make outer width auto-fit to columns, overriding outer_size.x value. Only available when ScrollX/ScrollY are disabled and Stretch columns are not used. + * + *

Definition: {@code 1 << 16} + */ + public static final int NoHostExtendX = 65536; + + /** + * Make outer height stop exactly at outer_size.y (prevent auto-extending table past the limit). Only available when ScrollX/ScrollY are disabled. Data below the limit will be clipped and not visible. + * + *

Definition: {@code 1 << 17} + */ + public static final int NoHostExtendY = 131072; + + /** + * Disable keeping column always minimally visible when ScrollX is off and table gets too small. Not recommended if columns are resizable. + * + *

Definition: {@code 1 << 18} + */ + public static final int NoKeepColumnsVisible = 262144; + + /** + * Disable distributing remainder width to stretched columns (width allocation on a 100-wide table with 3 columns: Without this flag: 33,33,34. With this flag: 33,33,33). With larger number of columns, resizing will appear to be less smooth. + * + *

Definition: {@code 1 << 19} + */ + public static final int PreciseWidths = 524288; + + /** + * Disable clipping rectangle for every individual columns (reduce draw command count, items will be able to overflow into other columns). Generally incompatible with TableSetupScrollFreeze(). + * + *

Definition: {@code 1 << 20} + */ + public static final int NoClip = 1048576; + + /** + * Default if BordersOuterV is on. Enable outer-most padding. Generally desirable if you have headers. + * + *

Definition: {@code 1 << 21} + */ + public static final int PadOuterX = 2097152; + + /** + * Default if BordersOuterV is off. Disable outer-most padding. + * + *

Definition: {@code 1 << 22} + */ + public static final int NoPadOuterX = 4194304; + + /** + * Disable inner padding between columns (double inner padding if BordersOuterV is on, single inner padding if BordersOuterV is off). + * + *

Definition: {@code 1 << 23} + */ + public static final int NoPadInnerX = 8388608; + + /** + * Enable horizontal scrolling. Require 'outer_size' parameter of BeginTable() to specify the container size. Changes default sizing policy. Because this create a child window, ScrollY is currently generally recommended when using ScrollX. + * + *

Definition: {@code 1 << 24} + */ + public static final int ScrollX = 16777216; + + /** + * Enable vertical scrolling. Require 'outer_size' parameter of BeginTable() to specify the container size. + * + *

Definition: {@code 1 << 25} + */ + public static final int ScrollY = 33554432; + + /** + * Hold shift when clicking headers to sort on multiple column. TableGetSortSpecs() may return specs where (SpecsCount{@code >}1). + * + *

Definition: {@code 1 << 26} + */ + public static final int SortMulti = 67108864; + + /** + * Allow no sorting, disable default sorting. TableGetSortSpecs() may return specs where (SpecsCount == 0). + * + *

Definition: {@code 1 << 27} + */ + public static final int SortTristate = 134217728; + + /** + * [Internal] Combinations and masks + * + *

Definition: {@code ImGuiTableFlags_SizingFixedFit | ImGuiTableFlags_SizingFixedSame | ImGuiTableFlags_SizingStretchProp | ImGuiTableFlags_SizingStretchSame} + */ + public static final int SizingMask_ = 57344; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiTableRowFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiTableRowFlags.java new file mode 100644 index 0000000..dca89b2 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiTableRowFlags.java @@ -0,0 +1,22 @@ +package imgui.flag; + + +/** + * Flags for {@link imgui.ImGui#tableNextRow(int)} + */ +public final class ImGuiTableRowFlags { + private ImGuiTableRowFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Identify header row (set default background color + width of its contents accounted different for auto column width) + * + *

Definition: {@code 1 << 0} + */ + public static final int Headers = 1; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiTreeNodeFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiTreeNodeFlags.java new file mode 100644 index 0000000..a3989ba --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiTreeNodeFlags.java @@ -0,0 +1,120 @@ +package imgui.flag; + + +/** + * Flags for ImGui::TreeNodeEx(), ImGui::CollapsingHeader*() + */ +public final class ImGuiTreeNodeFlags { + private ImGuiTreeNodeFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Draw as selected + * + *

Definition: {@code 1 << 0} + */ + public static final int Selected = 1; + + /** + * Draw frame with background (e.g. for CollapsingHeader) + * + *

Definition: {@code 1 << 1} + */ + public static final int Framed = 2; + + /** + * Hit testing to allow subsequent widgets to overlap this one + * + *

Definition: {@code 1 << 2} + */ + public static final int AllowItemOverlap = 4; + + /** + * Don't do a TreePush() when open (e.g. for CollapsingHeader) = no extra indent nor pushing on ID stack + * + *

Definition: {@code 1 << 3} + */ + public static final int NoTreePushOnOpen = 8; + + /** + * Don't automatically and temporarily open node when Logging is active (by default logging will automatically open tree nodes) + * + *

Definition: {@code 1 << 4} + */ + public static final int NoAutoOpenOnLog = 16; + + /** + * Default node to be open + * + *

Definition: {@code 1 << 5} + */ + public static final int DefaultOpen = 32; + + /** + * Need double-click to open node + * + *

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. + * + *

Definition: {@code 1 << 7} + */ + public static final int OpenOnArrow = 128; + + /** + * No collapsing, no arrow (use as a convenience for leaf nodes). + * + *

Definition: {@code 1 << 8} + */ + public static final int Leaf = 256; + + /** + * Display a bullet instead of arrow + * + *

Definition: {@code 1 << 9} + */ + public static final int Bullet = 512; + + /** + * Use FramePadding (even for an unframed text node) to vertically align text baseline to regular widget height. Equivalent to calling AlignTextToFramePadding(). + * + *

Definition: {@code 1 << 10} + */ + public static final int FramePadding = 1024; + + /** + * Extend hit box to the right-most edge, even if not framed. This is not the default in order to allow adding other items on the same line. In the future we may refactor the hit system to be front-to-back, allowing natural overlaps and then this can become the default. + * + *

Definition: {@code 1 << 11} + */ + public static final int SpanAvailWidth = 2048; + + /** + * Extend hit box to the left-most and right-most edges (bypass the indented area). + * + *

Definition: {@code 1 << 12} + */ + public static final int SpanFullWidth = 4096; + + /** + * (WIP) Nav: left direction may move to this TreeNode() from any of its child (items submitted between TreeNode and TreePop) + * + *

Definition: {@code 1 << 13} + */ + public static final int NavLeftJumpsBackHere = 8192; + + /** + * ImGuiTreeNodeFlags_NoScrollOnOpen = 1 {@code <<} 14, // FIXME: TODO: Disable automatic scroll on TreePop() if node got just open and contents is not visible + * + *

Definition: {@code ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog} + */ + public static final int CollapsingHeader = 26; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiViewportFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiViewportFlags.java new file mode 100644 index 0000000..01d2c8a --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiViewportFlags.java @@ -0,0 +1,106 @@ +package imgui.flag; + + +/** + * Flags stored in ImGuiViewport::Flags, giving indications to the platform backends. + */ +public final class ImGuiViewportFlags { + private ImGuiViewportFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Represent a Platform Window + * + *

Definition: {@code 1 << 0} + */ + public static final int IsPlatformWindow = 1; + + /** + * Represent a Platform Monitor (unused yet) + * + *

Definition: {@code 1 << 1} + */ + public static final int IsPlatformMonitor = 2; + + /** + * Platform Window: is created/managed by the application (rather than a dear imgui backend) + * + *

Definition: {@code 1 << 2} + */ + public static final int OwnedByApp = 4; + + /** + * Platform Window: Disable platform decorations: title bar, borders, etc. (generally set all windows, but if ImGuiConfigFlags_ViewportsDecoration is set we only set this on popups/tooltips) + * + *

Definition: {@code 1 << 3} + */ + public static final int NoDecoration = 8; + + /** + * Platform Window: Disable platform task bar icon (generally set on popups/tooltips, or all windows if ImGuiConfigFlags_ViewportsNoTaskBarIcon is set) + * + *

Definition: {@code 1 << 4} + */ + public static final int NoTaskBarIcon = 16; + + /** + * Platform Window: Don't take focus when created. + * + *

Definition: {@code 1 << 5} + */ + public static final int NoFocusOnAppearing = 32; + + /** + * Platform Window: Don't take focus when clicked on. + * + *

Definition: {@code 1 << 6} + */ + public static final int NoFocusOnClick = 64; + + /** + * Platform Window: Make mouse pass through so we can drag this window while peaking behind it. + * + *

Definition: {@code 1 << 7} + */ + public static final int NoInputs = 128; + + /** + * Platform Window: Renderer doesn't need to clear the framebuffer ahead (because we will fill it entirely). + * + *

Definition: {@code 1 << 8} + */ + public static final int NoRendererClear = 256; + + /** + * Platform Window: Display on top (for tooltips only). + * + *

Definition: {@code 1 << 9} + */ + public static final int TopMost = 512; + + /** + * Platform Window: Window is minimized, can skip render. When minimized we tend to avoid using the viewport pos/size for clipping window or testing if they are contained in the viewport. + * + *

Definition: {@code 1 << 10} + */ + public static final int Minimized = 1024; + + /** + * Platform Window: Avoid merging this window into another host window. This can only be set via ImGuiWindowClass viewport flags override (because we need to now ahead if we are going to create a viewport in the first place!). + * + *

Definition: {@code 1 << 11} + */ + public static final int NoAutoMerge = 2048; + + /** + * Main viewport: can host multiple imgui windows (secondary viewports are associated to a single window). + * + *

Definition: {@code 1 << 12} + */ + public static final int CanHostOtherWindows = 4096; +} diff --git a/imgui-binding/src/generated/java/imgui/flag/ImGuiWindowFlags.java b/imgui-binding/src/generated/java/imgui/flag/ImGuiWindowFlags.java new file mode 100644 index 0000000..0609fc0 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/flag/ImGuiWindowFlags.java @@ -0,0 +1,226 @@ +package imgui.flag; + + +/** + * Flags for ImGui::Begin() + */ +public final class ImGuiWindowFlags { + private ImGuiWindowFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Disable title-bar + * + *

Definition: {@code 1 << 0} + */ + public static final int NoTitleBar = 1; + + /** + * Disable user resizing with the lower-right grip + * + *

Definition: {@code 1 << 1} + */ + public static final int NoResize = 2; + + /** + * Disable user moving the window + * + *

Definition: {@code 1 << 2} + */ + public static final int NoMove = 4; + + /** + * Disable scrollbars (window can still scroll with mouse or programmatically) + * + *

Definition: {@code 1 << 3} + */ + public static final int NoScrollbar = 8; + + /** + * Disable user vertically scrolling with mouse wheel. On child window, mouse wheel will be forwarded to the parent unless NoScrollbar is also set. + * + *

Definition: {@code 1 << 4} + */ + public static final int NoScrollWithMouse = 16; + + /** + * Disable user collapsing window by double-clicking on it. Also referred to as Window Menu Button (e.g. within a docking node). + * + *

Definition: {@code 1 << 5} + */ + public static final int NoCollapse = 32; + + /** + * Resize every window to its content every frame + * + *

Definition: {@code 1 << 6} + */ + public static final int AlwaysAutoResize = 64; + + /** + * Disable drawing background color (WindowBg, etc.) and outside border. Similar as using SetNextWindowBgAlpha(0.0f). + * + *

Definition: {@code 1 << 7} + */ + public static final int NoBackground = 128; + + /** + * Never load/save settings in .ini file + * + *

Definition: {@code 1 << 8} + */ + public static final int NoSavedSettings = 256; + + /** + * Disable catching mouse, hovering test with pass through. + * + *

Definition: {@code 1 << 9} + */ + public static final int NoMouseInputs = 512; + + /** + * Has a menu-bar + * + *

Definition: {@code 1 << 10} + */ + public static final int MenuBar = 1024; + + /** + * Allow horizontal scrollbar to appear (off by default). You may use SetNextWindowContentSize(ImVec2(width,0.0f)); prior to calling Begin() to specify width. Read code in imgui_demo in the "Horizontal Scrolling" section. + * + *

Definition: {@code 1 << 11} + */ + public static final int HorizontalScrollbar = 2048; + + /** + * Disable taking focus when transitioning from hidden to visible state + * + *

Definition: {@code 1 << 12} + */ + public static final int NoFocusOnAppearing = 4096; + + /** + * Disable bringing window to front when taking focus (e.g. clicking on it or programmatically giving it focus) + * + *

Definition: {@code 1 << 13} + */ + public static final int NoBringToFrontOnFocus = 8192; + + /** + * Always show vertical scrollbar (even if ContentSize.y{@code <}Size.y) + * + *

Definition: {@code 1 << 14} + */ + public static final int AlwaysVerticalScrollbar = 16384; + + /** + * Always show horizontal scrollbar (even if ContentSize.x{@code <}Size.x) + * + *

Definition: {@code 1<< 15} + */ + public static final int AlwaysHorizontalScrollbar = 32768; + + /** + * Ensure child windows without border uses style.WindowPadding (ignored by default for non-bordered child windows, because more convenient) + * + *

Definition: {@code 1 << 16} + */ + public static final int AlwaysUseWindowPadding = 65536; + + /** + * No gamepad/keyboard navigation within the window + * + *

Definition: {@code 1 << 18} + */ + public static final int NoNavInputs = 262144; + + /** + * No focusing toward this window with gamepad/keyboard navigation (e.g. skipped by CTRL+TAB) + * + *

Definition: {@code 1 << 19} + */ + public static final int NoNavFocus = 524288; + + /** + * Display a dot next to the title. When used in a tab/docking context, tab is selected when clicking the X + closure is not assumed (will wait for user to stop submitting the tab). Otherwise closure is assumed when pressing the X, so if you keep submitting the tab may reappear at end of tab bar. + * + *

Definition: {@code 1 << 20} + */ + public static final int UnsavedDocument = 1048576; + + /** + * Disable docking of this window + * + *

Definition: {@code 1 << 21} + */ + public static final int NoDocking = 2097152; + + /** + * Definition: {@code ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus} + */ + public static final int NoNav = 786432; + + /** + * Definition: {@code ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoCollapse} + */ + public static final int NoDecoration = 43; + + /** + * Definition: {@code ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus} + */ + public static final int NoInputs = 786944; + + /** + * [BETA] On child window: allow gamepad/keyboard navigation to cross over parent border to this child or between sibling child windows. + * + *

Definition: {@code 1 << 23} + */ + public static final int NavFlattened = 8388608; + + /** + * Don't use! For internal use by BeginChild() + * + *

Definition: {@code 1 << 24} + */ + public static final int ChildWindow = 16777216; + + /** + * Don't use! For internal use by BeginTooltip() + * + *

Definition: {@code 1 << 25} + */ + public static final int Tooltip = 33554432; + + /** + * Don't use! For internal use by BeginPopup() + * + *

Definition: {@code 1 << 26} + */ + public static final int Popup = 67108864; + + /** + * Don't use! For internal use by BeginPopupModal() + * + *

Definition: {@code 1 << 27} + */ + public static final int Modal = 134217728; + + /** + * Don't use! For internal use by BeginMenu() + * + *

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; +} diff --git a/imgui-binding/src/generated/java/imgui/internal/ImGui.java b/imgui-binding/src/generated/java/imgui/internal/ImGui.java new file mode 100644 index 0000000..a734ff8 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/internal/ImGui.java @@ -0,0 +1,336 @@ +package imgui.internal; + +import imgui.ImVec2; +import imgui.type.ImFloat; +import imgui.type.ImInt; + +public final class ImGui extends imgui.ImGui { + /*JNI + #include "_common.h" + #include "_internal.h" + */ + + static { + nInit(); + } + + public static void init() { + } + + private static native void nInit(); /* + Jni::InitInternal(env); + */ + + // Basic Helpers for widget code + + public static ImVec2 calcItemSize(final ImVec2 size, final float defaultW, final float defaultH) { + final ImVec2 dst = new ImVec2(); + nCalcItemSize(dst, size.x, size.y, defaultW, defaultH); + return dst; + } + + public static ImVec2 calcItemSize(final float sizeX, final float sizeY, final float defaultW, final float defaultH) { + final ImVec2 dst = new ImVec2(); + nCalcItemSize(dst, sizeX, sizeY, defaultW, defaultH); + return dst; + } + + public static float calcItemSizeX(final ImVec2 size, final float defaultW, final float defaultH) { + return nCalcItemSizeX(size.x, size.y, defaultW, defaultH); + } + + public static float calcItemSizeY(final ImVec2 size, final float defaultW, final float defaultH) { + return nCalcItemSizeY(size.x, size.y, defaultW, defaultH); + } + + public static void calcItemSize(final ImVec2 dst, final ImVec2 size, final float defaultW, final float defaultH) { + nCalcItemSize(dst, size.x, size.y, defaultW, defaultH); + } + + private static native void nCalcItemSize(ImVec2 dst, float sizeX, float sizeY, float defaultW, float defaultH); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + Jni::ImVec2Cpy(env, ImGui::CalcItemSize(size, defaultW, defaultH), dst); + */ + + private static native float nCalcItemSizeX(float sizeX, float sizeY, float defaultW, float defaultH); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::CalcItemSize(size, defaultW, defaultH).x; + return _result; + */ + + private static native float nCalcItemSizeY(float sizeX, float sizeY, float defaultW, float defaultH); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + auto _result = ImGui::CalcItemSize(size, defaultW, defaultH).y; + return _result; + */ + + public static void pushItemFlag(final int imGuiItemFlags, final boolean enabled) { + nPushItemFlag(imGuiItemFlags, enabled); + } + + private static native void nPushItemFlag(int imGuiItemFlags, boolean enabled); /* + ImGui::PushItemFlag(imGuiItemFlags, enabled); + */ + + public static void popItemFlag() { + nPopItemFlag(); + } + + private static native void nPopItemFlag(); /* + ImGui::PopItemFlag(); + */ + + // Docking - Builder function needs to be generally called before the node is used/submitted. + // - The DockBuilderXXX functions are designed to _eventually_ become a public API, but it is too early to expose it and guarantee stability. + // - Do not hold on ImGuiDockNode* pointers! They may be invalidated by any split/merge/remove operation and every frame. + // - To create a DockSpace() node, make sure to set the ImGuiDockNodeFlags_DockSpace flag when calling DockBuilderAddNode(). + // You can create dockspace nodes (attached to a window) _or_ floating nodes (carry its own window) with this API. + // - DockBuilderSplitNode() create 2 child nodes within 1 node. The initial node becomes a parent node. + // - If you intend to split the node immediately after creation using DockBuilderSplitNode(), make sure + // to call DockBuilderSetNodeSize() beforehand. If you don't, the resulting split sizes may not be reliable. + // - Call DockBuilderFinish() after you are done. + + public static void dockBuilderDockWindow(final String windowName, final int nodeId) { + nDockBuilderDockWindow(windowName, nodeId); + } + + private static native void nDockBuilderDockWindow(String windowName, int nodeId); /*MANUAL + auto windowName = obj_windowName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_windowName, JNI_FALSE); + ImGui::DockBuilderDockWindow(windowName, nodeId); + if (windowName != NULL) env->ReleaseStringUTFChars(obj_windowName, windowName); + */ + + public static ImGuiDockNode dockBuilderGetNode(final int nodeId) { + return new ImGuiDockNode(nDockBuilderGetNode(nodeId)); + } + + private static native long nDockBuilderGetNode(int nodeId); /* + return (intptr_t)ImGui::DockBuilderGetNode(nodeId); + */ + + public static ImGuiDockNode dockBuilderGetCentralNode(final int nodeId) { + return new ImGuiDockNode(nDockBuilderGetCentralNode(nodeId)); + } + + private static native long nDockBuilderGetCentralNode(int nodeId); /* + return (intptr_t)ImGui::DockBuilderGetCentralNode(nodeId); + */ + + public static int dockBuilderAddNode() { + return nDockBuilderAddNode(); + } + + public static int dockBuilderAddNode(final int nodeId) { + return nDockBuilderAddNode(nodeId); + } + + public static int dockBuilderAddNode(final int nodeId, final int flags) { + return nDockBuilderAddNode(nodeId, flags); + } + + private static native int nDockBuilderAddNode(); /* + return ImGui::DockBuilderAddNode(); + */ + + private static native int nDockBuilderAddNode(int nodeId); /* + return ImGui::DockBuilderAddNode(nodeId); + */ + + private static native int nDockBuilderAddNode(int nodeId, int flags); /* + return ImGui::DockBuilderAddNode(nodeId, flags); + */ + + /** + * Remove node and all its child, undock all windows. + */ + public static void dockBuilderRemoveNode(final int nodeId) { + nDockBuilderRemoveNode(nodeId); + } + + private static native void nDockBuilderRemoveNode(int nodeId); /* + ImGui::DockBuilderRemoveNode(nodeId); + */ + + public static void dockBuilderRemoveNodeDockedWindows(final int nodeId) { + nDockBuilderRemoveNodeDockedWindows(nodeId); + } + + public static void dockBuilderRemoveNodeDockedWindows(final int nodeId, final boolean clearSettingsRefs) { + nDockBuilderRemoveNodeDockedWindows(nodeId, clearSettingsRefs); + } + + private static native void nDockBuilderRemoveNodeDockedWindows(int nodeId); /* + ImGui::DockBuilderRemoveNodeDockedWindows(nodeId); + */ + + private static native void nDockBuilderRemoveNodeDockedWindows(int nodeId, boolean clearSettingsRefs); /* + ImGui::DockBuilderRemoveNodeDockedWindows(nodeId, clearSettingsRefs); + */ + + /** + * Remove all split/hierarchy. All remaining docked windows will be re-docked to the remaining root node (node_id). + */ + public static void dockBuilderRemoveNodeChildNodes(final int nodeId) { + nDockBuilderRemoveNodeChildNodes(nodeId); + } + + private static native void nDockBuilderRemoveNodeChildNodes(int nodeId); /* + ImGui::DockBuilderRemoveNodeChildNodes(nodeId); + */ + + public static void dockBuilderSetNodePos(final int nodeId, final ImVec2 pos) { + nDockBuilderSetNodePos(nodeId, pos.x, pos.y); + } + + public static void dockBuilderSetNodePos(final int nodeId, final float posX, final float posY) { + nDockBuilderSetNodePos(nodeId, posX, posY); + } + + private static native void nDockBuilderSetNodePos(int nodeId, float posX, float posY); /*MANUAL + ImVec2 pos = ImVec2(posX, posY); + ImGui::DockBuilderSetNodePos(nodeId, pos); + */ + + public static void dockBuilderSetNodeSize(final int nodeId, final ImVec2 size) { + nDockBuilderSetNodeSize(nodeId, size.x, size.y); + } + + public static void dockBuilderSetNodeSize(final int nodeId, final float sizeX, final float sizeY) { + nDockBuilderSetNodeSize(nodeId, sizeX, sizeY); + } + + private static native void nDockBuilderSetNodeSize(int nodeId, float sizeX, float sizeY); /*MANUAL + ImVec2 size = ImVec2(sizeX, sizeY); + ImGui::DockBuilderSetNodeSize(nodeId, size); + */ + + /** + * Create 2 child nodes in this parent node. + */ + public static int dockBuilderSplitNode(final int nodeId, final int splitDir, final float sizeRatioForNodeAtDir, final ImInt outIdAtDir, final ImInt outIdAtOppositeDir) { + return nDockBuilderSplitNode(nodeId, splitDir, sizeRatioForNodeAtDir, outIdAtDir != null ? outIdAtDir.getData() : null, outIdAtOppositeDir != null ? outIdAtOppositeDir.getData() : null); + } + + private static native int nDockBuilderSplitNode(int nodeId, int splitDir, float sizeRatioForNodeAtDir, int[] obj_outIdAtDir, int[] obj_outIdAtOppositeDir); /*MANUAL + auto outIdAtDir = obj_outIdAtDir == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_outIdAtDir, JNI_FALSE); + auto outIdAtOppositeDir = obj_outIdAtOppositeDir == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_outIdAtOppositeDir, JNI_FALSE); + auto _result = ImGui::DockBuilderSplitNode(nodeId, splitDir, sizeRatioForNodeAtDir, reinterpret_cast((outIdAtDir != NULL ? &outIdAtDir[0] : NULL)), reinterpret_cast((outIdAtOppositeDir != NULL ? &outIdAtOppositeDir[0] : NULL))); + if (outIdAtDir != NULL) env->ReleasePrimitiveArrayCritical(obj_outIdAtDir, outIdAtDir, JNI_FALSE); + if (outIdAtOppositeDir != NULL) env->ReleasePrimitiveArrayCritical(obj_outIdAtOppositeDir, outIdAtOppositeDir, JNI_FALSE); + return _result; + */ + + // TODO DockBuilderCopyDockSpace, DockBuilderCopyNode + + public static void dockBuilderCopyWindowSettings(final String srcName, final String dstName) { + nDockBuilderCopyWindowSettings(srcName, dstName); + } + + private static native void nDockBuilderCopyWindowSettings(String srcName, String dstName); /*MANUAL + auto srcName = obj_srcName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_srcName, JNI_FALSE); + auto dstName = obj_dstName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_dstName, JNI_FALSE); + ImGui::DockBuilderCopyWindowSettings(srcName, dstName); + if (srcName != NULL) env->ReleaseStringUTFChars(obj_srcName, srcName); + if (dstName != NULL) env->ReleaseStringUTFChars(obj_dstName, dstName); + */ + + public static void dockBuilderFinish(final int nodeId) { + nDockBuilderFinish(nodeId); + } + + private static native void nDockBuilderFinish(int nodeId); /* + ImGui::DockBuilderFinish(nodeId); + */ + + // Widgets low-level behaviors + + public static boolean splitterBehavior(final ImRect bb, final int id, final int axis, final ImFloat size1, final ImFloat size2, final float minSize1, final float minSize2) { + return nSplitterBehavior(bb.min.x, bb.min.y, bb.max.x, bb.max.y, id, axis, size1 != null ? size1.getData() : null, size2 != null ? size2.getData() : null, minSize1, minSize2); + } + + public static boolean splitterBehavior(final float bbMinX, final float bbMinY, final float bbMaxX, final float bbMaxY, final int id, final int axis, final ImFloat size1, final ImFloat size2, final float minSize1, final float minSize2) { + return nSplitterBehavior(bbMinX, bbMinY, bbMaxX, bbMaxY, id, axis, size1 != null ? size1.getData() : null, size2 != null ? size2.getData() : null, minSize1, minSize2); + } + + public static boolean splitterBehavior(final ImRect bb, final int id, final int axis, final ImFloat size1, final ImFloat size2, final float minSize1, final float minSize2, final float hoverExtend) { + return nSplitterBehavior(bb.min.x, bb.min.y, bb.max.x, bb.max.y, id, axis, size1 != null ? size1.getData() : null, size2 != null ? size2.getData() : null, minSize1, minSize2, hoverExtend); + } + + public static boolean splitterBehavior(final float bbMinX, final float bbMinY, final float bbMaxX, final float bbMaxY, final int id, final int axis, final ImFloat size1, final ImFloat size2, final float minSize1, final float minSize2, final float hoverExtend) { + return nSplitterBehavior(bbMinX, bbMinY, bbMaxX, bbMaxY, id, axis, size1 != null ? size1.getData() : null, size2 != null ? size2.getData() : null, minSize1, minSize2, hoverExtend); + } + + public static boolean splitterBehavior(final ImRect bb, final int id, final int axis, final ImFloat size1, final ImFloat size2, final float minSize1, final float minSize2, final float hoverExtend, final float hoverVisibilityDelay) { + return nSplitterBehavior(bb.min.x, bb.min.y, bb.max.x, bb.max.y, id, axis, size1 != null ? size1.getData() : null, size2 != null ? size2.getData() : null, minSize1, minSize2, hoverExtend, hoverVisibilityDelay); + } + + public static boolean splitterBehavior(final float bbMinX, final float bbMinY, final float bbMaxX, final float bbMaxY, final int id, final int axis, final ImFloat size1, final ImFloat size2, final float minSize1, final float minSize2, final float hoverExtend, final float hoverVisibilityDelay) { + return nSplitterBehavior(bbMinX, bbMinY, bbMaxX, bbMaxY, id, axis, size1 != null ? size1.getData() : null, size2 != null ? size2.getData() : null, minSize1, minSize2, hoverExtend, hoverVisibilityDelay); + } + + public static boolean splitterBehavior(final ImRect bb, final int id, final int axis, final ImFloat size1, final ImFloat size2, final float minSize1, final float minSize2, final float hoverExtend, final float hoverVisibilityDelay, final int bgCol) { + return nSplitterBehavior(bb.min.x, bb.min.y, bb.max.x, bb.max.y, id, axis, size1 != null ? size1.getData() : null, size2 != null ? size2.getData() : null, minSize1, minSize2, hoverExtend, hoverVisibilityDelay, bgCol); + } + + public static boolean splitterBehavior(final float bbMinX, final float bbMinY, final float bbMaxX, final float bbMaxY, final int id, final int axis, final ImFloat size1, final ImFloat size2, final float minSize1, final float minSize2, final float hoverExtend, final float hoverVisibilityDelay, final int bgCol) { + return nSplitterBehavior(bbMinX, bbMinY, bbMaxX, bbMaxY, id, axis, size1 != null ? size1.getData() : null, size2 != null ? size2.getData() : null, minSize1, minSize2, hoverExtend, hoverVisibilityDelay, bgCol); + } + + private static native boolean nSplitterBehavior(float bbMinX, float bbMinY, float bbMaxX, float bbMaxY, int id, int axis, float[] obj_size1, float[] obj_size2, float minSize1, float minSize2); /*MANUAL + auto size1 = obj_size1 == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_size1, JNI_FALSE); + auto size2 = obj_size2 == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_size2, JNI_FALSE); + auto _result = ImGui::SplitterBehavior(ImRect(bbMinX, bbMinY, bbMaxX, bbMaxY), id, static_cast(axis), (size1 != NULL ? &size1[0] : NULL), (size2 != NULL ? &size2[0] : NULL), minSize1, minSize2); + if (size1 != NULL) env->ReleasePrimitiveArrayCritical(obj_size1, size1, JNI_FALSE); + if (size2 != NULL) env->ReleasePrimitiveArrayCritical(obj_size2, size2, JNI_FALSE); + return _result; + */ + + private static native boolean nSplitterBehavior(float bbMinX, float bbMinY, float bbMaxX, float bbMaxY, int id, int axis, float[] obj_size1, float[] obj_size2, float minSize1, float minSize2, float hoverExtend); /*MANUAL + auto size1 = obj_size1 == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_size1, JNI_FALSE); + auto size2 = obj_size2 == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_size2, JNI_FALSE); + auto _result = ImGui::SplitterBehavior(ImRect(bbMinX, bbMinY, bbMaxX, bbMaxY), id, static_cast(axis), (size1 != NULL ? &size1[0] : NULL), (size2 != NULL ? &size2[0] : NULL), minSize1, minSize2, hoverExtend); + if (size1 != NULL) env->ReleasePrimitiveArrayCritical(obj_size1, size1, JNI_FALSE); + if (size2 != NULL) env->ReleasePrimitiveArrayCritical(obj_size2, size2, JNI_FALSE); + return _result; + */ + + private static native boolean nSplitterBehavior(float bbMinX, float bbMinY, float bbMaxX, float bbMaxY, int id, int axis, float[] obj_size1, float[] obj_size2, float minSize1, float minSize2, float hoverExtend, float hoverVisibilityDelay); /*MANUAL + auto size1 = obj_size1 == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_size1, JNI_FALSE); + auto size2 = obj_size2 == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_size2, JNI_FALSE); + auto _result = ImGui::SplitterBehavior(ImRect(bbMinX, bbMinY, bbMaxX, bbMaxY), id, static_cast(axis), (size1 != NULL ? &size1[0] : NULL), (size2 != NULL ? &size2[0] : NULL), minSize1, minSize2, hoverExtend, hoverVisibilityDelay); + if (size1 != NULL) env->ReleasePrimitiveArrayCritical(obj_size1, size1, JNI_FALSE); + if (size2 != NULL) env->ReleasePrimitiveArrayCritical(obj_size2, size2, JNI_FALSE); + return _result; + */ + + private static native boolean nSplitterBehavior(float bbMinX, float bbMinY, float bbMaxX, float bbMaxY, int id, int axis, float[] obj_size1, float[] obj_size2, float minSize1, float minSize2, float hoverExtend, float hoverVisibilityDelay, int bgCol); /*MANUAL + auto size1 = obj_size1 == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_size1, JNI_FALSE); + auto size2 = obj_size2 == NULL ? NULL : (float*)env->GetPrimitiveArrayCritical(obj_size2, JNI_FALSE); + auto _result = ImGui::SplitterBehavior(ImRect(bbMinX, bbMinY, bbMaxX, bbMaxY), id, static_cast(axis), (size1 != NULL ? &size1[0] : NULL), (size2 != NULL ? &size2[0] : NULL), minSize1, minSize2, hoverExtend, hoverVisibilityDelay, bgCol); + if (size1 != NULL) env->ReleasePrimitiveArrayCritical(obj_size1, size1, JNI_FALSE); + if (size2 != NULL) env->ReleasePrimitiveArrayCritical(obj_size2, size2, JNI_FALSE); + return _result; + */ + + public static ImGuiWindow getCurrentWindow() { + return new ImGuiWindow(nGetCurrentWindow()); + } + + private static native long nGetCurrentWindow(); /* + return (intptr_t)ImGui::GetCurrentWindow(); + */ + + public static ImRect getWindowScrollbarRect(final ImGuiWindow imGuiWindow, final int axis) { + final ImRect dst = new ImRect(); + nGetWindowScrollbarRect(dst, imGuiWindow.ptr, axis); + return dst; + } + + public static void getWindowScrollbarRect(final ImRect dst, final ImGuiWindow imGuiWindow, final int axis) { + nGetWindowScrollbarRect(dst, imGuiWindow.ptr, axis); + } + + private static native void nGetWindowScrollbarRect(ImRect dst, long imGuiWindow, int axis); /* + Jni::ImRectCpy(env, ImGui::GetWindowScrollbarRect(reinterpret_cast(imGuiWindow), static_cast(axis)), dst); + */ +} diff --git a/imgui-binding/src/generated/java/imgui/internal/ImGuiContext.java b/imgui-binding/src/generated/java/imgui/internal/ImGuiContext.java new file mode 100644 index 0000000..2176344 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/internal/ImGuiContext.java @@ -0,0 +1,10 @@ +package imgui.internal; + +import imgui.binding.ImGuiStruct; + +public class ImGuiContext extends ImGuiStruct { + public ImGuiContext(final long ptr) { + super(ptr); + ImGui.init(); + } +} diff --git a/imgui-binding/src/generated/java/imgui/internal/ImGuiDockNode.java b/imgui-binding/src/generated/java/imgui/internal/ImGuiDockNode.java new file mode 100644 index 0000000..e497254 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/internal/ImGuiDockNode.java @@ -0,0 +1,1010 @@ +package imgui.internal; + +import imgui.ImGuiWindowClass; +import imgui.ImVec2; +import imgui.binding.ImGuiStruct; + +public final class ImGuiDockNode extends ImGuiStruct { + public ImGuiDockNode(final long ptr) { + super(ptr); + ImGui.init(); + } + + /*JNI + #include "_common.h" + #include "_internal.h" + #define THIS ((ImGuiDockNode*)STRUCT_PTR) + */ + + public int getID() { + return nGetID(); + } + + public void setID(final int value) { + nSetID(value); + } + + private native int nGetID(); /* + return THIS->ID; + */ + + private native void nSetID(int value); /* + THIS->ID = value; + */ + + /** + * Flags shared by all nodes of a same dockspace hierarchy (inherited from the root node) + */ + public int getSharedFlags() { + return nGetSharedFlags(); + } + + /** + * Flags shared by all nodes of a same dockspace hierarchy (inherited from the root node) + */ + public void setSharedFlags(final int value) { + nSetSharedFlags(value); + } + + /** + * Flags shared by all nodes of a same dockspace hierarchy (inherited from the root node) + */ + public void addSharedFlags(final int flags) { + setSharedFlags(getSharedFlags() | flags); + } + + /** + * Flags shared by all nodes of a same dockspace hierarchy (inherited from the root node) + */ + public void removeSharedFlags(final int flags) { + setSharedFlags(getSharedFlags() & ~(flags)); + } + + /** + * Flags shared by all nodes of a same dockspace hierarchy (inherited from the root node) + */ + public boolean hasSharedFlags(final int flags) { + return (getSharedFlags() & flags) != 0; + } + + private native int nGetSharedFlags(); /* + return THIS->SharedFlags; + */ + + private native void nSetSharedFlags(int value); /* + THIS->SharedFlags = value; + */ + + /** + * Flags specific to this node + */ + public int getLocalFlags() { + return nGetLocalFlags(); + } + + /** + * Flags specific to this node + */ + public void setLocalFlags(final int value) { + nSetLocalFlags(value); + } + + /** + * Flags specific to this node + */ + public void addLocalFlags(final int flags) { + setLocalFlags(getLocalFlags() | flags); + } + + /** + * Flags specific to this node + */ + public void removeLocalFlags(final int flags) { + setLocalFlags(getLocalFlags() & ~(flags)); + } + + /** + * Flags specific to this node + */ + public boolean hasLocalFlags(final int flags) { + return (getLocalFlags() & flags) != 0; + } + + private native int nGetLocalFlags(); /* + return THIS->LocalFlags; + */ + + private native void nSetLocalFlags(int value); /* + THIS->LocalFlags = value; + */ + + /** + * Flags specific to this node, applied from windows + */ + public int getLocalFlagsInWindows() { + return nGetLocalFlagsInWindows(); + } + + /** + * Flags specific to this node, applied from windows + */ + public void setLocalFlagsInWindows(final int value) { + nSetLocalFlagsInWindows(value); + } + + /** + * Flags specific to this node, applied from windows + */ + public void addLocalFlagsInWindows(final int flags) { + setLocalFlagsInWindows(getLocalFlagsInWindows() | flags); + } + + /** + * Flags specific to this node, applied from windows + */ + public void removeLocalFlagsInWindows(final int flags) { + setLocalFlagsInWindows(getLocalFlagsInWindows() & ~(flags)); + } + + /** + * Flags specific to this node, applied from windows + */ + public boolean hasLocalFlagsInWindows(final int flags) { + return (getLocalFlagsInWindows() & flags) != 0; + } + + private native int nGetLocalFlagsInWindows(); /* + return THIS->LocalFlagsInWindows; + */ + + private native void nSetLocalFlagsInWindows(int value); /* + THIS->LocalFlagsInWindows = value; + */ + + /** + * Effective flags (== SharedFlags | LocalFlagsInNode | LocalFlagsInWindows) + */ + public int getMergedFlags() { + return nGetMergedFlags(); + } + + /** + * Effective flags (== SharedFlags | LocalFlagsInNode | LocalFlagsInWindows) + */ + public boolean hasMergedFlags(final int flags) { + return (getMergedFlags() & flags) != 0; + } + + private native int nGetMergedFlags(); /* + return THIS->MergedFlags; + */ + + // TODO: State + + public ImGuiDockNode getParentNode() { + return new ImGuiDockNode(nGetParentNode()); + } + + public void setParentNode(final ImGuiDockNode value) { + nSetParentNode(value.ptr); + } + + private native long nGetParentNode(); /* + return (intptr_t)THIS->ParentNode; + */ + + private native void nSetParentNode(long value); /* + THIS->ParentNode = reinterpret_cast(value); + */ + + /** + * [Split node only] Child nodes (left/right or top/bottom). Consider switching to an array. + */ + public ImGuiDockNode getChildNodeFirst() { + return new ImGuiDockNode(nGetChildNodeFirst()); + } + + private native long nGetChildNodeFirst(); /* + return (intptr_t)THIS->ChildNodes[0]; + */ + + /** + * [Split node only] Child nodes (left/right or top/bottom). Consider switching to an array. + */ + public void setChildNodeFirst(final ImGuiDockNode imGuiDockNode) { + nSetChildNodeFirst(imGuiDockNode.ptr); + } + + private native void nSetChildNodeFirst(long imGuiDockNodePtr); /* + THIS->ChildNodes[0] = (ImGuiDockNode*)imGuiDockNodePtr; + */ + + /** + * [Split node only] Child nodes (left/right or top/bottom). Consider switching to an array. + */ + public ImGuiDockNode getChildNodeSecond() { + return new ImGuiDockNode(nGetChildNodeSecond()); + } + + private native long nGetChildNodeSecond(); /* + return (intptr_t)THIS->ChildNodes[1]; + */ + + /** + * [Split node only] Child nodes (left/right or top/bottom). Consider switching to an array. + */ + public void setChildNodeSecond(final ImGuiDockNode imGuiDockNode) { + nSetChildNodeSecond(imGuiDockNode.ptr); + } + + private native void nSetChildNodeSecond(long imGuiDockNodePtr); /* + THIS->ChildNodes[1] = (ImGuiDockNode*)imGuiDockNodePtr; + */ + + // TODO Windows, TabBar + + /** + * Current position + */ + public ImVec2 getPos() { + final ImVec2 dst = new ImVec2(); + nGetPos(dst); + return dst; + } + + /** + * Current position + */ + public float getPosX() { + return nGetPosX(); + } + + /** + * Current position + */ + public float getPosY() { + return nGetPosY(); + } + + /** + * Current position + */ + public void getPos(final ImVec2 dst) { + nGetPos(dst); + } + + /** + * Current position + */ + public void setPos(final ImVec2 value) { + nSetPos(value.x, value.y); + } + + /** + * Current position + */ + public void setPos(final float valueX, final float valueY) { + nSetPos(valueX, valueY); + } + + private native void nGetPos(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->Pos, dst); + */ + + private native float nGetPosX(); /* + return THIS->Pos.x; + */ + + private native float nGetPosY(); /* + return THIS->Pos.y; + */ + + private native void nSetPos(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->Pos = value; + */ + + /** + * Current size + */ + public ImVec2 getSize() { + final ImVec2 dst = new ImVec2(); + nGetSize(dst); + return dst; + } + + /** + * Current size + */ + public float getSizeX() { + return nGetSizeX(); + } + + /** + * Current size + */ + public float getSizeY() { + return nGetSizeY(); + } + + /** + * Current size + */ + public void getSize(final ImVec2 dst) { + nGetSize(dst); + } + + /** + * Current size + */ + public void setSize(final ImVec2 value) { + nSetSize(value.x, value.y); + } + + /** + * Current size + */ + public void setSize(final float valueX, final float valueY) { + nSetSize(valueX, valueY); + } + + private native void nGetSize(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->Size, dst); + */ + + private native float nGetSizeX(); /* + return THIS->Size.x; + */ + + private native float nGetSizeY(); /* + return THIS->Size.y; + */ + + private native void nSetSize(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->Size = value; + */ + + /** + * [Split node only] Last explicitly written-to size (overridden when using a splitter affecting the node), used to calculate Size. + */ + public ImVec2 getSizeRef() { + final ImVec2 dst = new ImVec2(); + nGetSizeRef(dst); + return dst; + } + + /** + * [Split node only] Last explicitly written-to size (overridden when using a splitter affecting the node), used to calculate Size. + */ + public float getSizeRefX() { + return nGetSizeRefX(); + } + + /** + * [Split node only] Last explicitly written-to size (overridden when using a splitter affecting the node), used to calculate Size. + */ + public float getSizeRefY() { + return nGetSizeRefY(); + } + + /** + * [Split node only] Last explicitly written-to size (overridden when using a splitter affecting the node), used to calculate Size. + */ + public void getSizeRef(final ImVec2 dst) { + nGetSizeRef(dst); + } + + /** + * [Split node only] Last explicitly written-to size (overridden when using a splitter affecting the node), used to calculate Size. + */ + public void setSizeRef(final ImVec2 value) { + nSetSizeRef(value.x, value.y); + } + + /** + * [Split node only] Last explicitly written-to size (overridden when using a splitter affecting the node), used to calculate Size. + */ + public void setSizeRef(final float valueX, final float valueY) { + nSetSizeRef(valueX, valueY); + } + + private native void nGetSizeRef(ImVec2 dst); /* + Jni::ImVec2Cpy(env, THIS->SizeRef, dst); + */ + + private native float nGetSizeRefX(); /* + return THIS->SizeRef.x; + */ + + private native float nGetSizeRefY(); /* + return THIS->SizeRef.y; + */ + + private native void nSetSizeRef(float valueX, float valueY); /*MANUAL + ImVec2 value = ImVec2(valueX, valueY); + THIS->SizeRef = value; + */ + + /** + * [Split node only] Split axis (X or Y) + */ + public int getSplitAxis() { + return nGetSplitAxis(); + } + + private native int nGetSplitAxis(); /* + return THIS->SplitAxis; + */ + + /** + * [Root node only] + */ + public ImGuiWindowClass getWindowClass() { + return new ImGuiWindowClass(nGetWindowClass()); + } + + private native long nGetWindowClass(); /* + return (intptr_t)&THIS->WindowClass; + */ + + public int getLastBgColor() { + return nGetLastBgColor(); + } + + public void setLastBgColor(final int value) { + nSetLastBgColor(value); + } + + private native int nGetLastBgColor(); /* + return THIS->LastBgColor; + */ + + private native void nSetLastBgColor(int value); /* + THIS->LastBgColor = value; + */ + + public ImGuiWindow getHostWindow() { + return new ImGuiWindow(nGetHostWindow()); + } + + public void setHostWindow(final ImGuiWindow value) { + nSetHostWindow(value.ptr); + } + + private native long nGetHostWindow(); /* + return (intptr_t)THIS->HostWindow; + */ + + private native void nSetHostWindow(long value); /* + THIS->HostWindow = reinterpret_cast(value); + */ + + /** + * Generally point to window which is ID is == SelectedTabID, but when CTRL+Tabbing this can be a different window. + */ + public ImGuiWindow getVisibleWindow() { + return new ImGuiWindow(nGetVisibleWindow()); + } + + /** + * Generally point to window which is ID is == SelectedTabID, but when CTRL+Tabbing this can be a different window. + */ + public void setVisibleWindow(final ImGuiWindow value) { + nSetVisibleWindow(value.ptr); + } + + private native long nGetVisibleWindow(); /* + return (intptr_t)THIS->VisibleWindow; + */ + + private native void nSetVisibleWindow(long value); /* + THIS->VisibleWindow = reinterpret_cast(value); + */ + + /** + * [Root node only] Pointer to central node. + */ + public ImGuiDockNode getCentralNode() { + return new ImGuiDockNode(nGetCentralNode()); + } + + /** + * [Root node only] Pointer to central node. + */ + public void setCentralNode(final ImGuiDockNode value) { + nSetCentralNode(value.ptr); + } + + private native long nGetCentralNode(); /* + return (intptr_t)THIS->CentralNode; + */ + + private native void nSetCentralNode(long value); /* + THIS->CentralNode = reinterpret_cast(value); + */ + + /** + * [Root node only] Set when there is a single visible node within the hierarchy. + */ + public ImGuiDockNode getOnlyNodeWithWindows() { + return new ImGuiDockNode(nGetOnlyNodeWithWindows()); + } + + /** + * [Root node only] Set when there is a single visible node within the hierarchy. + */ + public void setOnlyNodeWithWindows(final ImGuiDockNode value) { + nSetOnlyNodeWithWindows(value.ptr); + } + + private native long nGetOnlyNodeWithWindows(); /* + return (intptr_t)THIS->OnlyNodeWithWindows; + */ + + private native void nSetOnlyNodeWithWindows(long value); /* + THIS->OnlyNodeWithWindows = reinterpret_cast(value); + */ + + /** + * Last frame number the node was updated or kept alive explicitly with DockSpace() + int_KeepAliveOnly + */ + public int getLastFrameAlive() { + return nGetLastFrameAlive(); + } + + /** + * Last frame number the node was updated or kept alive explicitly with DockSpace() + int_KeepAliveOnly + */ + public void setLastFrameAlive(final int value) { + nSetLastFrameAlive(value); + } + + private native int nGetLastFrameAlive(); /* + return THIS->LastFrameAlive; + */ + + private native void nSetLastFrameAlive(int value); /* + THIS->LastFrameAlive = value; + */ + + /** + * Last frame number the node was updated. + */ + public int getLastFrameActive() { + return nGetLastFrameActive(); + } + + /** + * Last frame number the node was updated. + */ + public void setLastFrameActive(final int value) { + nSetLastFrameActive(value); + } + + private native int nGetLastFrameActive(); /* + return THIS->LastFrameActive; + */ + + private native void nSetLastFrameActive(int value); /* + THIS->LastFrameActive = value; + */ + + /** + * Last frame number the node was focused. + */ + public int getLastFrameFocused() { + return nGetLastFrameFocused(); + } + + /** + * Last frame number the node was focused. + */ + public void setLastFrameFocused(final int value) { + nSetLastFrameFocused(value); + } + + private native int nGetLastFrameFocused(); /* + return THIS->LastFrameFocused; + */ + + private native void nSetLastFrameFocused(int value); /* + THIS->LastFrameFocused = value; + */ + + /** + * [Root node only] Which of our child docking node (any ancestor in the hierarchy) was last focused. + */ + public int getLastFocusedNodeId() { + return nGetLastFocusedNodeId(); + } + + /** + * [Root node only] Which of our child docking node (any ancestor in the hierarchy) was last focused. + */ + public void setLastFocusedNodeId(final int value) { + nSetLastFocusedNodeId(value); + } + + private native int nGetLastFocusedNodeId(); /* + return THIS->LastFocusedNodeId; + */ + + private native void nSetLastFocusedNodeId(int value); /* + THIS->LastFocusedNodeId = value; + */ + + /** + * [Leaf node only] Which of our tab/window is selected. + */ + public int getSelectedTabId() { + return nGetSelectedTabId(); + } + + /** + * [Leaf node only] Which of our tab/window is selected. + */ + public void setSelectedTabId(final int value) { + nSetSelectedTabId(value); + } + + private native int nGetSelectedTabId(); /* + return THIS->SelectedTabId; + */ + + private native void nSetSelectedTabId(int value); /* + THIS->SelectedTabId = value; + */ + + /** + * [Leaf node only] Set when closing a specific tab/window. + */ + public int getWantCloseTabId() { + return nGetWantCloseTabId(); + } + + /** + * [Leaf node only] Set when closing a specific tab/window. + */ + public void setWantCloseTabId(final int value) { + nSetWantCloseTabId(value); + } + + private native int nGetWantCloseTabId(); /* + return THIS->WantCloseTabId; + */ + + private native void nSetWantCloseTabId(int value); /* + THIS->WantCloseTabId = value; + */ + + public int getAuthorityForPos() { + return nGetAuthorityForPos(); + } + + public void setAuthorityForPos(final int value) { + nSetAuthorityForPos(value); + } + + private native int nGetAuthorityForPos(); /* + return THIS->AuthorityForPos; + */ + + private native void nSetAuthorityForPos(int value); /* + THIS->AuthorityForPos = value; + */ + + public int getAuthorityForSize() { + return nGetAuthorityForSize(); + } + + public void setAuthorityForSize(final int value) { + nSetAuthorityForSize(value); + } + + private native int nGetAuthorityForSize(); /* + return THIS->AuthorityForSize; + */ + + private native void nSetAuthorityForSize(int value); /* + THIS->AuthorityForSize = value; + */ + + public int getAuthorityForViewport() { + return nGetAuthorityForViewport(); + } + + public void setAuthorityForViewport(final int value) { + nSetAuthorityForViewport(value); + } + + private native int nGetAuthorityForViewport(); /* + return THIS->AuthorityForViewport; + */ + + private native void nSetAuthorityForViewport(int value); /* + THIS->AuthorityForViewport = value; + */ + + /** + * Set to false when the node is hidden (usually disabled as it has no active window) + */ + public boolean getIsVisible() { + return nGetIsVisible(); + } + + /** + * Set to false when the node is hidden (usually disabled as it has no active window) + */ + public void setIsVisible(final boolean value) { + nSetIsVisible(value); + } + + private native boolean nGetIsVisible(); /* + return THIS->IsVisible; + */ + + private native void nSetIsVisible(boolean value); /* + THIS->IsVisible = value; + */ + + public boolean getIsFocused() { + return nGetIsFocused(); + } + + public void setIsFocused(final boolean value) { + nSetIsFocused(value); + } + + private native boolean nGetIsFocused(); /* + return THIS->IsFocused; + */ + + private native void nSetIsFocused(boolean value); /* + THIS->IsFocused = value; + */ + + public boolean getHasCloseButton() { + return nGetHasCloseButton(); + } + + public void setHasCloseButton(final boolean value) { + nSetHasCloseButton(value); + } + + private native boolean nGetHasCloseButton(); /* + return THIS->HasCloseButton; + */ + + private native void nSetHasCloseButton(boolean value); /* + THIS->HasCloseButton = value; + */ + + public boolean getHasWindowMenuButton() { + return nGetHasWindowMenuButton(); + } + + public void setHasWindowMenuButton(final boolean value) { + nSetHasWindowMenuButton(value); + } + + private native boolean nGetHasWindowMenuButton(); /* + return THIS->HasWindowMenuButton; + */ + + private native void nSetHasWindowMenuButton(boolean value); /* + THIS->HasWindowMenuButton = value; + */ + + public boolean getHasCentralNodeChild() { + return nGetHasCentralNodeChild(); + } + + public void setHasCentralNodeChild(final boolean value) { + nSetHasCentralNodeChild(value); + } + + private native boolean nGetHasCentralNodeChild(); /* + return THIS->HasCentralNodeChild; + */ + + private native void nSetHasCentralNodeChild(boolean value); /* + THIS->HasCentralNodeChild = value; + */ + + /** + * Set when closing all tabs at once. + */ + public boolean getWantCloseAll() { + return nGetWantCloseAll(); + } + + /** + * Set when closing all tabs at once. + */ + public void setWantCloseAll(final boolean value) { + nSetWantCloseAll(value); + } + + private native boolean nGetWantCloseAll(); /* + return THIS->WantCloseAll; + */ + + private native void nSetWantCloseAll(boolean value); /* + THIS->WantCloseAll = value; + */ + + public boolean getWantLockSizeOnce() { + return nGetWantLockSizeOnce(); + } + + public void setWantLockSizeOnce(final boolean value) { + nSetWantLockSizeOnce(value); + } + + private native boolean nGetWantLockSizeOnce(); /* + return THIS->WantLockSizeOnce; + */ + + private native void nSetWantLockSizeOnce(boolean value); /* + THIS->WantLockSizeOnce = value; + */ + + /** + * After a node extraction we need to transition toward moving the newly created host window + */ + public boolean getWantMouseMove() { + return nGetWantMouseMove(); + } + + /** + * After a node extraction we need to transition toward moving the newly created host window + */ + public void setWantMouseMove(final boolean value) { + nSetWantMouseMove(value); + } + + private native boolean nGetWantMouseMove(); /* + return THIS->WantMouseMove; + */ + + private native void nSetWantMouseMove(boolean value); /* + THIS->WantMouseMove = value; + */ + + public boolean getWantHiddenTabBarUpdate() { + return nGetWantHiddenTabBarUpdate(); + } + + public void setWantHiddenTabBarUpdate(final boolean value) { + nSetWantHiddenTabBarUpdate(value); + } + + private native boolean nGetWantHiddenTabBarUpdate(); /* + return THIS->WantHiddenTabBarUpdate; + */ + + private native void nSetWantHiddenTabBarUpdate(boolean value); /* + THIS->WantHiddenTabBarUpdate = value; + */ + + public boolean getWantHiddenTabBarToggle() { + return nGetWantHiddenTabBarToggle(); + } + + public void setWantHiddenTabBarToggle(final boolean value) { + nSetWantHiddenTabBarToggle(value); + } + + private native boolean nGetWantHiddenTabBarToggle(); /* + return THIS->WantHiddenTabBarToggle; + */ + + private native void nSetWantHiddenTabBarToggle(boolean value); /* + THIS->WantHiddenTabBarToggle = value; + */ + + public boolean isRootNode() { + return nIsRootNode(); + } + + private native boolean nIsRootNode(); /* + return THIS->IsRootNode(); + */ + + public boolean isDockSpace() { + return nIsDockSpace(); + } + + private native boolean nIsDockSpace(); /* + return THIS->IsDockSpace(); + */ + + public boolean isFloatingNode() { + return nIsFloatingNode(); + } + + private native boolean nIsFloatingNode(); /* + return THIS->IsFloatingNode(); + */ + + public boolean isCentralNode() { + return nIsCentralNode(); + } + + private native boolean nIsCentralNode(); /* + return THIS->IsCentralNode(); + */ + + /** + * Hidden tab bar can be shown back by clicking the small triangle + */ + public boolean isHiddenTabBar() { + return nIsHiddenTabBar(); + } + + private native boolean nIsHiddenTabBar(); /* + return THIS->IsHiddenTabBar(); + */ + + /** + * Never show a tab bar + */ + public boolean isNoTabBar() { + return nIsNoTabBar(); + } + + private native boolean nIsNoTabBar(); /* + return THIS->IsNoTabBar(); + */ + + public boolean isSplitNode() { + return nIsSplitNode(); + } + + private native boolean nIsSplitNode(); /* + return THIS->IsSplitNode(); + */ + + public boolean isLeafNode() { + return nIsLeafNode(); + } + + private native boolean nIsLeafNode(); /* + return THIS->IsLeafNode(); + */ + + public boolean isEmpty() { + return nIsEmpty(); + } + + private native boolean nIsEmpty(); /* + return THIS->IsEmpty(); + */ + + public ImRect rect() { + final ImRect dst = new ImRect(); + nRect(dst); + return dst; + } + + public void rect(final ImRect dst) { + nRect(dst); + } + + private native void nRect(ImRect dst); /* + Jni::ImRectCpy(env, THIS->Rect(), dst); + */ + + public void updateMergedFlags() { + nUpdateMergedFlags(); + } + + private native void nUpdateMergedFlags(); /* + THIS->UpdateMergedFlags(); + */ + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/internal/ImGuiWindow.java b/imgui-binding/src/generated/java/imgui/internal/ImGuiWindow.java new file mode 100644 index 0000000..389f320 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/internal/ImGuiWindow.java @@ -0,0 +1,42 @@ +package imgui.internal; + +import imgui.binding.ImGuiStruct; + +public class ImGuiWindow extends ImGuiStruct { + public ImGuiWindow(final long ptr) { + super(ptr); + ImGui.init(); + } + + /*JNI + #include "_common.h" + #include "_internal.h" + #define THIS ((ImGuiWindow*)STRUCT_PTR) + */ + + /** + * Is scrollbar visible? + */ + public boolean getScrollbarX() { + return nGetScrollbarX(); + } + + private native boolean nGetScrollbarX(); /* + return THIS->ScrollbarX; + */ + + /** + * Is scrollbar visible? + */ + public boolean getScrollbarY() { + return nGetScrollbarY(); + } + + private native boolean nGetScrollbarY(); /* + return THIS->ScrollbarY; + */ + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/generated/java/imgui/internal/ImRect.java b/imgui-binding/src/generated/java/imgui/internal/ImRect.java new file mode 100644 index 0000000..a2ed91b --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/internal/ImRect.java @@ -0,0 +1,83 @@ +package imgui.internal; + +import imgui.ImVec2; + +import java.util.Objects; + +/** + * Helper: ImRect (2D axis aligned bounding-box) + * NB: we can't rely on ImVec2 math operators being available here! + */ +public final class ImRect implements Cloneable { + /** + * Upper-left + */ + public final ImVec2 min = new ImVec2(); + /** + * Lower-right + */ + public final ImVec2 max = new ImVec2(); + + public ImRect() { + } + + public ImRect(final float minX, final float minY, final float maxX, final float maxY) { + set(minX, minY, maxX, maxY); + } + + public ImRect(final ImVec2 min, final ImVec2 max) { + set(min, max); + } + + public ImRect(final ImRect value) { + set(value); + } + + public void set(final float minX, final float minY, final float maxX, final float maxY) { + this.min.x = minX; + this.min.y = minY; + this.max.x = maxX; + this.max.y = maxY; + } + + public void set(final ImVec2 min, final ImVec2 max) { + set(min.x, min.y, max.x, max.y); + } + + public void set(final ImRect value) { + set(value.min, value.max); + } + + @Override + public String toString() { + return "ImRect{" + + "min=" + min + + ", max=" + max + + '}'; + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + + if (o == null || getClass() != o.getClass()) { + return false; + } + + final ImRect imRect = (ImRect) o; + return Objects.equals(min, imRect.min) && Objects.equals(max, imRect.max); + } + + @Override + public int hashCode() { + return Objects.hash(min, max); + } + + @Override + @SuppressWarnings("MethodDoesntCallSuperMethod") + public ImRect clone() { + return new ImRect(this); + } +} diff --git a/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiAxis.java b/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiAxis.java new file mode 100644 index 0000000..deb8667 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiAxis.java @@ -0,0 +1,22 @@ +package imgui.internal.flag; + + +public final class ImGuiAxis { + private ImGuiAxis() { + } + + /** + * Definition: {@code -1} + */ + public static final int None = -1; + + /** + * Definition: {@code 0} + */ + public static final int X = 0; + + /** + * Definition: {@code 1} + */ + public static final int Y = 1; +} diff --git a/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiDataAuthority.java b/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiDataAuthority.java new file mode 100644 index 0000000..31622dc --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiDataAuthority.java @@ -0,0 +1,16 @@ +package imgui.internal.flag; + + +/** + * Store the source authority (dock node vs window) of a field + */ +public final class ImGuiDataAuthority { + private ImGuiDataAuthority() { + } + + public static final int Auto = 0; + + public static final int DockNode = 1; + + public static final int Window = 2; +} diff --git a/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiDockNodeFlags.java b/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiDockNodeFlags.java new file mode 100644 index 0000000..6b491c0 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiDockNodeFlags.java @@ -0,0 +1,176 @@ +package imgui.internal.flag; + + +/** + * Extend ImGuiDockNodeFlags + */ +public final class ImGuiDockNodeFlags { + private ImGuiDockNodeFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * Shared // Don't display the dockspace node but keep it alive. Windows docked into this dockspace node won't be undocked. + * + *

Definition: {@code 1 << 0} + */ + public static final int KeepAliveOnly = 1; + + /** + * Shared // Disable docking inside the Central Node, which will be always kept empty. + * + *

Definition: {@code 1 << 2} + */ + public static final int NoDockingInCentralNode = 4; + + /** + * Shared // Enable passthru dockspace: 1) DockSpace() will render a ImGuiCol_WindowBg background covering everything excepted the Central Node when empty. Meaning the host window should probably use SetNextWindowBgAlpha(0.0f) prior to Begin() when using this. 2) When Central Node is empty: let inputs pass-through + won't display a DockingEmptyBg background. See demo for details. + * + *

Definition: {@code 1 << 3} + */ + public static final int PassthruCentralNode = 8; + + /** + * Shared/Local // Disable splitting the node into smaller nodes. Useful e.g. when embedding dockspaces into a main root one (the root one may have splitting disabled to reduce confusion). Note: when turned off, existing splits will be preserved. + * + *

Definition: {@code 1 << 4} + */ + public static final int NoSplit = 16; + + /** + * Shared/Local // Disable resizing node using the splitter/separators. Useful with programmatically setup dockspaces. + * + *

Definition: {@code 1 << 5} + */ + public static final int NoResize = 32; + + /** + * Shared/Local // Tab bar will automatically hide when there is a single window in the dock node. + * + *

Definition: {@code 1 << 6} + */ + public static final int AutoHideTabBar = 64; + + /** + * Local, Saved // A dockspace is a node that occupy space within an existing user window. Otherwise the node is floating and create its own window. + * + *

Definition: {@code 1 << 10} + */ + public static final int DockSpace = 1024; + + /** + * Local, Saved // The central node has 2 main properties: stay visible when empty, only use "remaining" spaces from its neighbor. + * + *

Definition: {@code 1 << 11} + */ + public static final int CentralNode = 2048; + + /** + * Local, Saved // Tab bar is completely unavailable. No triangle in the corner to enable it back. + * + *

Definition: {@code 1 << 12} + */ + public static final int NoTabBar = 4096; + + /** + * Local, Saved // Tab bar is hidden, with a triangle in the corner to show it again (NB: actual tab-bar instance may be destroyed as this is only used for single-window tab bar) + * + *

Definition: {@code 1 << 13} + */ + public static final int HiddenTabBar = 8192; + + /** + * Local, Saved // Disable window/docking menu (that one that appears instead of the collapse button) + * + *

Definition: {@code 1 << 14} + */ + public static final int NoWindowMenuButton = 16384; + + /** + * Local, Saved // + * + *

Definition: {@code 1 << 15} + */ + public static final int NoCloseButton = 32768; + + /** + * Local, Saved // Disable any form of docking in this dockspace or individual node. (On a whole dockspace, this pretty much defeat the purpose of using a dockspace at all). Note: when turned on, existing docked nodes will be preserved. + * + *

Definition: {@code 1 << 16} + */ + public static final int NoDocking = 65536; + + /** + * [EXPERIMENTAL] Prevent another window/node from splitting this node. + * + *

Definition: {@code 1 << 17} + */ + public static final int NoDockingSplitMe = 131072; + + /** + * [EXPERIMENTAL] Prevent this node from splitting another window/node. + * + *

Definition: {@code 1 << 18} + */ + public static final int NoDockingSplitOther = 262144; + + /** + * [EXPERIMENTAL] Prevent another window/node to be docked over this node. + * + *

Definition: {@code 1 << 19} + */ + public static final int NoDockingOverMe = 524288; + + /** + * [EXPERIMENTAL] Prevent this node to be docked over another window or non-empty node. + * + *

Definition: {@code 1 << 20} + */ + public static final int NoDockingOverOther = 1048576; + + /** + * [EXPERIMENTAL] Prevent this node to be docked over an empty node (e.g. DockSpace with no other windows) + * + *

Definition: {@code 1 << 21} + */ + public static final int NoDockingOverEmpty = 2097152; + + /** + * [EXPERIMENTAL] + * + *

Definition: {@code 1 << 22} + */ + public static final int NoResizeX = 4194304; + + /** + * [EXPERIMENTAL] + * + *

Definition: {@code 1 << 23} + */ + public static final int NoResizeY = 8388608; + + /** + * Definition: {@code ~0} + */ + public static final int SharedFlagsInheritMask_ = -1; + + public static final int NoResizeFlagsMask_ = 15; + + public static final int LocalFlagsMask_ = 16; + + /** + * When splitting those flags are moved to the inheriting child, never duplicated + * + *

Definition: {@code ImGuiDockNodeFlags_LocalFlagsMask_ {@code &} ~ImGuiDockNodeFlags_DockSpace} + */ + public static final int LocalFlagsTransferMask_ = 1; + + /** + * Definition: {@code ImGuiDockNodeFlags_NoResizeFlagsMask_ | ImGuiDockNodeFlags_DockSpace | ImGuiDockNodeFlags_CentralNode | ImGuiDockNodeFlags_NoTabBar | ImGuiDockNodeFlags_HiddenTabBar | ImGuiDockNodeFlags_NoWindowMenuButton | ImGuiDockNodeFlags_NoCloseButton | ImGuiDockNodeFlags_NoDocking} + */ + public static final int SavedFlagsMask_ = 130048; +} diff --git a/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiDockNodeState.java b/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiDockNodeState.java new file mode 100644 index 0000000..d7e17a6 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiDockNodeState.java @@ -0,0 +1,15 @@ +package imgui.internal.flag; + + +public final class ImGuiDockNodeState { + private ImGuiDockNodeState() { + } + + public static final int Unknown = 0; + + public static final int HostWindowHiddenBecauseSingleWindow = 1; + + public static final int HostWindowHiddenBecauseWindowsAreResizing = 2; + + public static final int HostWindowVisible = 3; +} diff --git a/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiItemFlags.java b/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiItemFlags.java new file mode 100644 index 0000000..1012dbc --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/internal/flag/ImGuiItemFlags.java @@ -0,0 +1,79 @@ +package imgui.internal.flag; + + +/** + * Transient per-window flags, reset at the beginning of the frame. For child window, inherited from parent on first Begin(). + * This is going to be exposed in imgui.h when stabilized enough. + */ +public final class ImGuiItemFlags { + private ImGuiItemFlags() { + } + + /** + * Definition: {@code 0} + */ + public static final int None = 0; + + /** + * false // Disable keyboard tabbing (FIXME: should merge with _NoNav) + * + *

Definition: {@code 1 << 0} + */ + public static final int NoTabStop = 1; + + /** + * false // Button() will return true multiple times based on io.KeyRepeatDelay and io.KeyRepeatRate settings. + * + *

Definition: {@code 1 << 1} + */ + public static final int ButtonRepeat = 2; + + /** + * false // Disable interactions but doesn't affect visuals. See BeginDisabled()/EndDisabled(). See github.com/ocornut/imgui/issues/211 + * + *

Definition: {@code 1 << 2} + */ + public static final int Disabled = 4; + + /** + * false // Disable keyboard/gamepad directional navigation (FIXME: should merge with _NoTabStop) + * + *

Definition: {@code 1 << 3} + */ + public static final int NoNav = 8; + + /** + * false // Disable item being a candidate for default focus (e.g. used by title bar items) + * + *

Definition: {@code 1 << 4} + */ + public static final int NoNavDefaultFocus = 16; + + /** + * false // Disable MenuItem/Selectable() automatically closing their popup window + * + *

Definition: {@code 1 << 5} + */ + public static final int SelectableDontClosePopup = 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) + * + *

Definition: {@code 1 << 6} + */ + 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 // [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 << 8} + */ + public static final int Inputable = 256; +} diff --git a/imgui-binding/src/generated/java/imgui/lwjgl3/glfw/ImGuiImplGlfwNative.java b/imgui-binding/src/generated/java/imgui/lwjgl3/glfw/ImGuiImplGlfwNative.java new file mode 100644 index 0000000..ba17324 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/lwjgl3/glfw/ImGuiImplGlfwNative.java @@ -0,0 +1,30 @@ +package imgui.lwjgl3.glfw; + +public final class ImGuiImplGlfwNative { + private ImGuiImplGlfwNative() { + } + + /*JNI + #if defined(_WIN32) + #include "windows.h" + #endif + */ + + /** + * GLFW hack: Hide icon from task bar + * Applied only for windows + * + * Internal Use Only. + * FIXME: Once Java Module System has been implemented, this function should only be exported + * to the imgui.lwjgl module. + */ + public static native void win32hideFromTaskBar(long hwndPtr); /* + #if defined(_WIN32) + HWND hwnd = (HWND)hwndPtr; + LONG ex_style = ::GetWindowLong(hwnd, GWL_EXSTYLE); + ex_style &= ~WS_EX_APPWINDOW; + ex_style |= WS_EX_TOOLWINDOW; + ::SetWindowLong(hwnd, GWL_EXSTYLE, ex_style); + #endif + */ +} diff --git a/imgui-binding/src/generated/java/imgui/type/ImBoolean.java b/imgui-binding/src/generated/java/imgui/type/ImBoolean.java new file mode 100644 index 0000000..fc4a572 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/type/ImBoolean.java @@ -0,0 +1,65 @@ +package imgui.type; + +public final class ImBoolean implements Cloneable, Comparable { + private final boolean[] data = new boolean[]{false}; + + public ImBoolean() { + } + + public ImBoolean(final ImBoolean imBoolean) { + this.data[0] = imBoolean.data[0]; + } + + public ImBoolean(final boolean value) { + data[0] = value; + } + + public boolean get() { + return data[0]; + } + + public boolean[] getData() { + return data; + } + + public void set(final boolean value) { + data[0] = value; + } + + public void set(final ImBoolean value) { + set(value.get()); + } + + @Override + public String toString() { + return String.valueOf(data[0]); + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final ImBoolean imBoolean = (ImBoolean) o; + return data[0] == imBoolean.data[0]; + } + + @Override + public int hashCode() { + return Boolean.hashCode(data[0]); + } + + @Override + @SuppressWarnings("MethodDoesntCallSuperMethod") + public ImBoolean clone() { + return new ImBoolean(this); + } + + @Override + public int compareTo(final ImBoolean o) { + return Boolean.compare(get(), o.get()); + } +} diff --git a/imgui-binding/src/generated/java/imgui/type/ImDouble.java b/imgui-binding/src/generated/java/imgui/type/ImDouble.java new file mode 100644 index 0000000..8eda590 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/type/ImDouble.java @@ -0,0 +1,85 @@ +package imgui.type; + +public final class ImDouble extends Number implements Cloneable, Comparable { + private final double[] data = new double[]{0.0d}; + + public ImDouble() { + } + + public ImDouble(final ImDouble imDouble) { + this.data[0] = imDouble.data[0]; + } + + public ImDouble(final double value) { + set(value); + } + + public double get() { + return this.data[0]; + } + + public double[] getData() { + return data; + } + + public void set(final double value) { + this.data[0] = value; + } + + public void set(final ImDouble value) { + set(value.get()); + } + + @Override + public String toString() { + return String.valueOf(get()); + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final ImDouble imDouble = (ImDouble) o; + return data[0] == imDouble.data[0]; + } + + @Override + public int hashCode() { + return Double.hashCode(data[0]); + } + + @Override + @SuppressWarnings("MethodDoesntCallSuperMethod") + public ImDouble clone() { + return new ImDouble(this); + } + + @Override + public int compareTo(final ImDouble o) { + return Double.compare(get(), o.get()); + } + + @Override + public int intValue() { + return (int) get(); + } + + @Override + public long longValue() { + return (long) get(); + } + + @Override + public float floatValue() { + return (float) get(); + } + + @Override + public double doubleValue() { + return get(); + } +} diff --git a/imgui-binding/src/generated/java/imgui/type/ImFloat.java b/imgui-binding/src/generated/java/imgui/type/ImFloat.java new file mode 100644 index 0000000..d0c0d2f --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/type/ImFloat.java @@ -0,0 +1,85 @@ +package imgui.type; + +public final class ImFloat extends Number implements Cloneable, Comparable { + private final float[] data = new float[]{0}; + + public ImFloat() { + } + + public ImFloat(final ImFloat imFloat) { + this.data[0] = imFloat.data[0]; + } + + public ImFloat(final float value) { + set(value); + } + + public float get() { + return this.data[0]; + } + + public float[] getData() { + return data; + } + + public void set(final float value) { + this.data[0] = value; + } + + public void set(final ImFloat value) { + set(value.get()); + } + + @Override + public String toString() { + return String.valueOf(get()); + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final ImFloat imFloat = (ImFloat) o; + return data[0] == imFloat.data[0]; + } + + @Override + public int hashCode() { + return Float.hashCode(data[0]); + } + + @Override + @SuppressWarnings("MethodDoesntCallSuperMethod") + public ImFloat clone() { + return new ImFloat(this); + } + + @Override + public int compareTo(final ImFloat o) { + return Float.compare(get(), o.get()); + } + + @Override + public int intValue() { + return (int) get(); + } + + @Override + public long longValue() { + return (long) get(); + } + + @Override + public float floatValue() { + return get(); + } + + @Override + public double doubleValue() { + return get(); + } +} diff --git a/imgui-binding/src/generated/java/imgui/type/ImInt.java b/imgui-binding/src/generated/java/imgui/type/ImInt.java new file mode 100644 index 0000000..a80b945 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/type/ImInt.java @@ -0,0 +1,85 @@ +package imgui.type; + +public final class ImInt extends Number implements Cloneable, Comparable { + private final int[] data = new int[]{0}; + + public ImInt() { + } + + public ImInt(final ImInt imInt) { + this.data[0] = imInt.data[0]; + } + + public ImInt(final int value) { + set(value); + } + + public int get() { + return this.data[0]; + } + + public int[] getData() { + return data; + } + + public void set(final int value) { + this.data[0] = value; + } + + public void set(final ImInt value) { + set(value.get()); + } + + @Override + public String toString() { + return String.valueOf(get()); + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final ImInt imInt = (ImInt) o; + return data[0] == imInt.data[0]; + } + + @Override + public int hashCode() { + return Integer.hashCode(data[0]); + } + + @Override + @SuppressWarnings("MethodDoesntCallSuperMethod") + public ImInt clone() { + return new ImInt(this); + } + + @Override + public int compareTo(final ImInt o) { + return Integer.compare(get(), o.get()); + } + + @Override + public int intValue() { + return get(); + } + + @Override + public long longValue() { + return get(); + } + + @Override + public float floatValue() { + return (float) get(); + } + + @Override + public double doubleValue() { + return get(); + } +} diff --git a/imgui-binding/src/generated/java/imgui/type/ImLong.java b/imgui-binding/src/generated/java/imgui/type/ImLong.java new file mode 100644 index 0000000..acf1615 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/type/ImLong.java @@ -0,0 +1,85 @@ +package imgui.type; + +public final class ImLong extends Number implements Cloneable, Comparable { + private final long[] data = new long[]{0}; + + public ImLong() { + } + + public ImLong(final ImLong imLong) { + this.data[0] = imLong.data[0]; + } + + public ImLong(final long value) { + set(value); + } + + public long get() { + return this.data[0]; + } + + public long[] getData() { + return data; + } + + public void set(final long value) { + this.data[0] = value; + } + + public void set(final ImLong value) { + set(value.get()); + } + + @Override + public String toString() { + return String.valueOf(get()); + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final ImLong imLong = (ImLong) o; + return data[0] == imLong.data[0]; + } + + @Override + public int hashCode() { + return Long.hashCode(data[0]); + } + + @Override + @SuppressWarnings("MethodDoesntCallSuperMethod") + public ImLong clone() { + return new ImLong(this); + } + + @Override + public int compareTo(final ImLong o) { + return Long.compare(get(), o.get()); + } + + @Override + public int intValue() { + return (int) get(); + } + + @Override + public long longValue() { + return get(); + } + + @Override + public float floatValue() { + return (float) get(); + } + + @Override + public double doubleValue() { + return (double) get(); + } +} diff --git a/imgui-binding/src/generated/java/imgui/type/ImShort.java b/imgui-binding/src/generated/java/imgui/type/ImShort.java new file mode 100644 index 0000000..237a9d9 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/type/ImShort.java @@ -0,0 +1,85 @@ +package imgui.type; + +public final class ImShort extends Number implements Cloneable, Comparable { + private final short[] data = new short[]{0}; + + public ImShort() { + } + + public ImShort(final ImShort imShort) { + this.data[0] = imShort.data[0]; + } + + public ImShort(final short value) { + set(value); + } + + public short get() { + return this.data[0]; + } + + public short[] getData() { + return data; + } + + public void set(final short value) { + this.data[0] = value; + } + + public void set(final ImShort value) { + set(value.get()); + } + + @Override + public String toString() { + return String.valueOf(get()); + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final ImShort imShort = (ImShort) o; + return data[0] == imShort.data[0]; + } + + @Override + public int hashCode() { + return Short.hashCode(data[0]); + } + + @Override + @SuppressWarnings("MethodDoesntCallSuperMethod") + public ImShort clone() { + return new ImShort(this); + } + + @Override + public int compareTo(final ImShort o) { + return Short.compare(get(), o.get()); + } + + @Override + public int intValue() { + return get(); + } + + @Override + public long longValue() { + return get(); + } + + @Override + public float floatValue() { + return get(); + } + + @Override + public double doubleValue() { + return get(); + } +} diff --git a/imgui-binding/src/generated/java/imgui/type/ImString.java b/imgui-binding/src/generated/java/imgui/type/ImString.java new file mode 100644 index 0000000..5a527d7 --- /dev/null +++ b/imgui-binding/src/generated/java/imgui/type/ImString.java @@ -0,0 +1,250 @@ +package imgui.type; + +import java.nio.charset.StandardCharsets; +import java.util.Objects; + +/** + * Wrapper for {@link String} to use inside th Dear ImGui input widgets. + */ +public final class ImString implements Cloneable, Comparable { + /** + * Default size of the inner buffer, if {@link ImString} created with a constructor without args. + */ + public static final short DEFAULT_LENGTH = 100; + /** + * Size of ImGui caret which is shown during the input text focus. + */ + public static final short CARET_LEN = 1; + + /** + * Configuration class to set up some specific behaviour for current string. + * This is useful when string used inside ImGui#InputText*() methods. + */ + public final InputData inputData = new InputData(); + + private byte[] data; + private String text = ""; + + /** + * Creates an {@link ImString} instance with {@link ImString#DEFAULT_LENGTH} size for the inner buffer. + */ + public ImString() { + this(DEFAULT_LENGTH); + } + + @SuppressWarnings("CopyConstructorMissesField") + public ImString(final ImString imString) { + this(imString.text, imString.data.length); + this.inputData.allowedChars = imString.inputData.allowedChars; + this.inputData.isResizable = imString.inputData.isResizable; + this.inputData.resizeFactor = imString.inputData.resizeFactor; + this.inputData.size = imString.inputData.size; + this.inputData.isDirty = imString.inputData.isDirty; + this.inputData.isResized = imString.inputData.isResized; + } + + /** + * Creates an {@link ImString} instance with provided size for the inner buffer. + * + * @param length size of the inner buffer to use + */ + public ImString(final int length) { + data = new byte[length + CARET_LEN]; + } + + /** + * Creates an {@link ImString} instance from provided string. + * Inner buffer size will be equal to the length of the string + {@link ImString#CARET_LEN}. + * + * @param text string to create a new {@link ImString} + */ + public ImString(final String text) { + set(text, true, 0); + } + + /** + * Create an {@link ImString} instance from provided string with custom size for the inner buffer. + * + * @param text string to a creation a new {@link ImString} + * @param length custom size for the inner buffer + */ + public ImString(final String text, final int length) { + this(length); + set(text); + } + + public String get() { + if (inputData.isDirty) { + inputData.isDirty = false; + text = new String(data, 0, inputData.size, StandardCharsets.UTF_8); + } + return text; + } + + public byte[] getData() { + return data; + } + + public void set(final Object object) { + set(String.valueOf(object)); + } + + public void set(final ImString value) { + set(value.get(), true); + } + + public void set(final ImString value, final boolean resize) { + set(value.get(), resize); + } + + public void set(final String value) { + set(value, inputData.isResizable, inputData.resizeFactor); + } + + public void set(final String value, final boolean resize) { + set(value, resize, inputData.resizeFactor); + } + + public void set(final String value, final boolean resize, final int resizeValue) { + final byte[] valueBuff = (value == null ? "null" : value).getBytes(StandardCharsets.UTF_8); + final int currentLen = data == null ? 0 : data.length; + byte[] newBuff = null; + + // If provided value requires a bigger buffer and we can resize it + if (resize && (currentLen - CARET_LEN) < valueBuff.length) { + newBuff = new byte[valueBuff.length + resizeValue + CARET_LEN]; + inputData.size = valueBuff.length; + } + + // If there was no resize, so we still need a new buffer + if (newBuff == null) { + newBuff = new byte[currentLen]; + inputData.size = Math.max(0, Math.min(valueBuff.length, currentLen - CARET_LEN)); + } + + System.arraycopy(valueBuff, 0, newBuff, 0, Math.min(valueBuff.length, newBuff.length - CARET_LEN)); + data = newBuff; + inputData.isDirty = true; + } + + public void resize(final int newSize) { + if (newSize < data.length) { + throw new IllegalArgumentException("New size should be greater than current size of the buffer"); + } + + final int size = newSize + CARET_LEN; + final byte[] newBuffer = new byte[size]; + System.arraycopy(data, 0, newBuffer, 0, data.length); + data = newBuffer; + } + + byte[] resizeInternal(final int newSize) { + resize(newSize + inputData.resizeFactor); + return data; + } + + /** + * Get the length of the text inside the data buffer. + * + * @return length of the text inside the data buffer + */ + public int getLength() { + return get().length(); + } + + /** + * Get the size of the data buffer. Buffer size will always have '+1' to its size, since it's used by the Dear ImGui to draw a caret char. + * + * @return size of the data buffer + */ + public int getBufferSize() { + return data.length; + } + + /** + * @return true if the length of the text inside the data buffer is 0 + */ + public boolean isEmpty() { + return getLength() == 0; + } + + /** + * @return true if the length of the text inside the data buffer is not 0 + */ + public boolean isNotEmpty() { + return !isEmpty(); + } + + /** + * Clears underlying string by setting empty value. + */ + public void clear() { + set(""); + } + + @Override + public String toString() { + return get(); + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final ImString imString = (ImString) o; + return Objects.equals(text, imString.text); + } + + @Override + public int hashCode() { + return text.hashCode(); + } + + @Override + @SuppressWarnings("MethodDoesntCallSuperMethod") + public ImString clone() { + return new ImString(this); + } + + @Override + public int compareTo(final ImString o) { + return get().compareTo(o.get()); + } + + /** + * Use this class to customize your ImGui input. + */ + public static final class InputData { + private static final short DEFAULT_RESIZE_FACTOR = 10; + + /** + * If not empty, then other chars which are different from provided will be filtered during the {@link imgui.ImGui#inputText} + * and {@link imgui.ImGui#inputTextMultiline} methods. + */ + public String allowedChars = ""; + + /** + * If true, then string will be resized during the {@link imgui.ImGui#inputText} and {@link imgui.ImGui#inputTextMultiline} methods. + * Alternatively you can provide {@link imgui.flag.ImGuiInputTextFlags#CallbackResize} flag to the input text widgets to enable string resizing. + * Resize factor of the string could be modified by changing {@link #resizeFactor} field. + */ + public boolean isResizable; + + /** + * String will be resized to the value equal to a new size plus this resize factor. + * Default value is 10. + */ + public int resizeFactor = DEFAULT_RESIZE_FACTOR; + + int size; + boolean isDirty; + boolean isResized = false; + + private InputData() { + } + } +} diff --git a/imgui-binding/src/main/java/imgui/ImDrawData.java b/imgui-binding/src/main/java/imgui/ImDrawData.java index 86365b2..d03015e 100644 --- a/imgui-binding/src/main/java/imgui/ImDrawData.java +++ b/imgui-binding/src/main/java/imgui/ImDrawData.java @@ -1,6 +1,9 @@ package imgui; import imgui.binding.ImGuiStruct; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingMethod; +import imgui.binding.annotation.BindingSource; import java.nio.ByteBuffer; import java.nio.ByteOrder; @@ -13,24 +16,18 @@ import java.nio.ByteOrder; * BINDING NOTICE: Since it's impossible to do a 1:1 mapping with JNI, current class provides "getCmdList*()" methods. * Those are used to get the data needed to do a rendering. */ +@BindingSource public final class ImDrawData extends ImGuiStruct { - public static final int SIZEOF_IM_DRAW_IDX = 2; - public static final int SIZEOF_IM_DRAW_VERT = 20; - private static final int RESIZE_FACTOR = 5_000; - private static ByteBuffer dataBuffer = ByteBuffer.allocateDirect(25_000).order(ByteOrder.nativeOrder()); - private static final ImGuiViewport OWNER_VIEWPORT = new ImGuiViewport(0); - public ImDrawData(final long ptr) { super(ptr); } /*JNI #include "_common.h" - - #define IM_DRAW_DATA ((ImDrawData*)STRUCT_PTR) + #define THIS ((ImDrawData*)STRUCT_PTR) */ ///////// Start of Render Methods | Binding @@ -39,7 +36,7 @@ public final class ImDrawData extends ImGuiStruct { * Draw commands. Typically 1 command = 1 GPU draw call, unless the command is a callback. */ public native int getCmdListCmdBufferSize(int cmdListIdx); /* - return IM_DRAW_DATA->CmdLists[cmdListIdx]->CmdBuffer.Size; + return THIS->CmdLists[cmdListIdx]->CmdBuffer.Size; */ /** @@ -47,23 +44,23 @@ public final class ImDrawData extends ImGuiStruct { * Vertices are stored in the callee ImDrawList's vtx_buffer[] array, indices in idx_buffer[]. */ public native int getCmdListCmdBufferElemCount(int cmdListIdx, int cmdBufferIdx); /* - return IM_DRAW_DATA->CmdLists[cmdListIdx]->CmdBuffer[cmdBufferIdx].ElemCount; + return THIS->CmdLists[cmdListIdx]->CmdBuffer[cmdBufferIdx].ElemCount; */ /** * Clipping rectangle (x1, y1, x2, y2). Subtract ImDrawData.DisplayPos to get clipping rectangle in "viewport" coordinates */ public ImVec4 getCmdListCmdBufferClipRect(final int cmdListIdx, final int cmdBufferIdx) { - final ImVec4 value = new ImVec4(); - getCmdListCmdBufferClipRect(cmdListIdx, cmdBufferIdx, value); - return value; + final ImVec4 dst = new ImVec4(); + getCmdListCmdBufferClipRect(dst, cmdListIdx, cmdBufferIdx); + return dst; } /** * Clipping rectangle (x1, y1, x2, y2). Subtract ImDrawData.DisplayPos to get clipping rectangle in "viewport" coordinates */ - public native void getCmdListCmdBufferClipRect(int cmdListIdx, int cmdBufferIdx, ImVec4 dstImVec4); /* - Jni::ImVec4Cpy(env, &IM_DRAW_DATA->CmdLists[cmdListIdx]->CmdBuffer[cmdBufferIdx].ClipRect, dstImVec4); + public native void getCmdListCmdBufferClipRect(ImVec4 dst, int cmdListIdx, int cmdBufferIdx); /* + Jni::ImVec4Cpy(env, &THIS->CmdLists[cmdListIdx]->CmdBuffer[cmdBufferIdx].ClipRect, dst); */ /** @@ -71,7 +68,7 @@ public final class ImDrawData extends ImGuiStruct { * Ignore if never using images or multiple fonts atlas. */ public native int getCmdListCmdBufferTextureId(int cmdListIdx, int cmdBufferIdx); /* - return (intptr_t)IM_DRAW_DATA->CmdLists[cmdListIdx]->CmdBuffer[cmdBufferIdx].GetTexID(); + return (intptr_t)THIS->CmdLists[cmdListIdx]->CmdBuffer[cmdBufferIdx].GetTexID(); */ /** @@ -79,21 +76,21 @@ public final class ImDrawData extends ImGuiStruct { * With ImGuiBackendFlags_RendererHasVtxOffset: may be {@code >}0 to support meshes larger than 64K vertices with 16-bit indices. */ public native int getCmdListCmdBufferVtxOffset(int cmdListIdx, int cmdBufferIdx); /* - return IM_DRAW_DATA->CmdLists[cmdListIdx]->CmdBuffer[cmdBufferIdx].VtxOffset; + return THIS->CmdLists[cmdListIdx]->CmdBuffer[cmdBufferIdx].VtxOffset; */ /** * Start offset in index buffer. Always equal to sum of ElemCount drawn so far. */ public native int getCmdListCmdBufferIdxOffset(int cmdListIdx, int cmdBufferIdx); /* - return IM_DRAW_DATA->CmdLists[cmdListIdx]->CmdBuffer[cmdBufferIdx].IdxOffset; + return THIS->CmdLists[cmdListIdx]->CmdBuffer[cmdBufferIdx].IdxOffset; */ /** * Index buffer. Each command consume ImDrawCmd::ElemCount of those */ public native int getCmdListIdxBufferSize(int cmdListIdx); /* - return IM_DRAW_DATA->CmdLists[cmdListIdx]->IdxBuffer.Size; + return THIS->CmdLists[cmdListIdx]->IdxBuffer.Size; */ public ByteBuffer getCmdListIdxBufferData(final int cmdListIdx) { @@ -112,14 +109,14 @@ public final class ImDrawData extends ImGuiStruct { } private native void nGetCmdListIdxBufferData(int cmdListIdx, ByteBuffer idxBuffer, int idxBufferCapacity); /* - memcpy(idxBuffer, IM_DRAW_DATA->CmdLists[cmdListIdx]->IdxBuffer.Data, idxBufferCapacity); + memcpy(idxBuffer, THIS->CmdLists[cmdListIdx]->IdxBuffer.Data, idxBufferCapacity); */ /** * Vertex buffer. */ public native int getCmdListVtxBufferSize(int cmdListIdx); /* - return IM_DRAW_DATA->CmdLists[cmdListIdx]->VtxBuffer.Size; + return THIS->CmdLists[cmdListIdx]->VtxBuffer.Size; */ public ByteBuffer getCmdListVtxBufferData(final int cmdListIdx) { @@ -138,7 +135,7 @@ public final class ImDrawData extends ImGuiStruct { } private native void nGetCmdListVtxBufferData(int cmdListIdx, ByteBuffer vtxBuffer, int vtxBufferCapacity); /* - memcpy(vtxBuffer, IM_DRAW_DATA->CmdLists[cmdListIdx]->VtxBuffer.Data, vtxBufferCapacity); + memcpy(vtxBuffer, THIS->CmdLists[cmdListIdx]->VtxBuffer.Data, vtxBufferCapacity); */ public static native int sizeOfImDrawVert(); /* @@ -154,136 +151,51 @@ public final class ImDrawData extends ImGuiStruct { /** * Only valid after Render() is called and before the next NewFrame() is called. */ - public native boolean getValid(); /* - return IM_DRAW_DATA->Valid; - */ + @BindingField(accessors = BindingField.Accessor.GETTER) + public boolean Valid; /** * Number of ImDrawList* to render */ - public native int getCmdListsCount(); /* - return IM_DRAW_DATA->CmdListsCount; - */ + @BindingField(accessors = BindingField.Accessor.GETTER) + public int CmdListsCount; /** * For convenience, sum of all ImDrawList's IdxBuffer.Size */ - public native int getTotalIdxCount(); /* - return IM_DRAW_DATA->TotalIdxCount; - */ + @BindingField(accessors = BindingField.Accessor.GETTER) + public int TotalIdxCount; /** * For convenience, sum of all ImDrawList's VtxBuffer.Size */ - public native int getTotalVtxCount(); /* - return IM_DRAW_DATA->TotalVtxCount; - */ + @BindingField(accessors = BindingField.Accessor.GETTER) + public int TotalVtxCount; /** * Upper-left position of the viewport to render (== upper-left of the orthogonal projection matrix to use) */ - public ImVec2 getDisplayPos() { - final ImVec2 value = new ImVec2(); - getDisplayPos(value); - return value; - } - - /** - * Upper-left position of the viewport to render (== upper-left of the orthogonal projection matrix to use) - */ - public native void getDisplayPos(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IM_DRAW_DATA->DisplayPos, dstImVec2); - */ - - /** - * Upper-left position of the viewport to render (== upper-left of the orthogonal projection matrix to use) - */ - public native float getDisplayPosX(); /* - return IM_DRAW_DATA->DisplayPos.x; - */ - - /** - * Upper-left position of the viewport to render (== upper-left of the orthogonal projection matrix to use) - */ - public native float getDisplayPosY(); /* - return IM_DRAW_DATA->DisplayPos.y; - */ + @BindingField(accessors = BindingField.Accessor.GETTER) + public ImVec2 DisplayPos; /** * Size of the viewport to render (== io.DisplaySize for the main viewport) * (DisplayPos + DisplaySize == lower-right of the orthogonal projection matrix to use) */ - public ImVec2 getDisplaySize() { - final ImVec2 value = new ImVec2(); - getDisplaySize(value); - return value; - } - - /** - * Size of the viewport to render (== io.DisplaySize for the main viewport) - * (DisplayPos + DisplaySize == lower-right of the orthogonal projection matrix to use) - */ - public native void getDisplaySize(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IM_DRAW_DATA->DisplaySize, dstImVec2); - */ - - /** - * Size of the viewport to render (== io.DisplaySize for the main viewport) - * (DisplayPos + DisplaySize == lower-right of the orthogonal projection matrix to use) - */ - public native float getDisplaySizeX(); /* - return IM_DRAW_DATA->DisplaySize.x; - */ - - /** - * Size of the viewport to render (== io.DisplaySize for the main viewport) - * (DisplayPos + DisplaySize == lower-right of the orthogonal projection matrix to use) - */ - public native float getDisplaySizeY(); /* - return IM_DRAW_DATA->DisplaySize.y; - */ + @BindingField(accessors = BindingField.Accessor.GETTER) + public ImVec2 DisplaySize; /** * Amount of pixels for each unit of DisplaySize. Based on io.DisplayFramebufferScale. Generally (1,1) on normal display, (2,2) on OSX with Retina display. */ - public ImVec2 getFramebufferScale() { - final ImVec2 value = new ImVec2(); - getFramebufferScale(value); - return value; - } - - /** - * Amount of pixels for each unit of DisplaySize. Based on io.DisplayFramebufferScale. Generally (1,1) on normal display, (2,2) on OSX with Retina display. - */ - public native void getFramebufferScale(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IM_DRAW_DATA->FramebufferScale, dstImVec2); - */ - - /** - * Amount of pixels for each unit of DisplaySize. Based on io.DisplayFramebufferScale. Generally (1,1) on normal display, (2,2) on OSX with Retina display. - */ - public native float getFramebufferScaleX(); /* - return IM_DRAW_DATA->FramebufferScale.x; - */ - - /** - * Amount of pixels for each unit of DisplaySize. Based on io.DisplayFramebufferScale. Generally (1,1) on normal display, (2,2) on OSX with Retina display. - */ - public native float getFramebufferScaleY(); /* - return IM_DRAW_DATA->FramebufferScale.y; - */ + @BindingField(accessors = BindingField.Accessor.GETTER) + public ImVec2 FramebufferScale; /** * Viewport carrying the ImDrawData instance, might be of use to the renderer (generally not). */ - public ImGuiViewport getOwnerViewport() { - OWNER_VIEWPORT.ptr = nGetOwnerViewport(); - return OWNER_VIEWPORT; - } - - private native long nGetOwnerViewport(); /* - return (intptr_t)IM_DRAW_DATA->OwnerViewport; - */ + @BindingField(accessors = BindingField.Accessor.GETTER) + public ImGuiViewport OwnerViewport; // Functions @@ -291,16 +203,17 @@ public final class ImDrawData extends ImGuiStruct { * Helper to convert all buffers from indexed to non-indexed, in case you cannot render indexed. Note: this is slow and most likely a waste of resources. * Always prefer indexed rendering! */ - public native void deIndexAllBuffers(); /* - IM_DRAW_DATA->DeIndexAllBuffers(); - */ + @BindingMethod + public native void DeIndexAllBuffers(); /** * Helper to scale the ClipRect field of each ImDrawCmd. Use if your final output buffer is at a different scale than Dear ImGui expects, * or if there is a difference between your window resolution and framebuffer resolution. */ - public native void scaleClipRects(float fbScaleX, float fbScaleY); /* - const ImVec2 fbScale = ImVec2(fbScaleX, fbScaleY); - IM_DRAW_DATA->ScaleClipRects(fbScale); - */ + @BindingMethod + public native void ScaleClipRects(ImVec2 fbScale); + + /*JNI + #undef THIS + */ } diff --git a/imgui-binding/src/main/java/imgui/ImDrawList.java b/imgui-binding/src/main/java/imgui/ImDrawList.java index edf652e..c41835a 100644 --- a/imgui-binding/src/main/java/imgui/ImDrawList.java +++ b/imgui-binding/src/main/java/imgui/ImDrawList.java @@ -1,6 +1,11 @@ package imgui; import imgui.binding.ImGuiStruct; +import imgui.binding.annotation.ArgValue; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingMethod; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.OptArg; /** * Draw command list @@ -13,6 +18,7 @@ import imgui.binding.ImGuiStruct; * but you are totally free to apply whatever transformation matrix to want to the data (if you apply such transformation you'll want to apply it to ClipRect as well) * Important: Primitives are always added to the list and not culled (culling is done at higher-level by ImGui:: functions), if you use this API a lot consider coarse culling your drawn objects. */ +@BindingSource public final class ImDrawList extends ImGuiStruct { public ImDrawList(final long ptr) { super(ptr); @@ -20,114 +26,40 @@ public final class ImDrawList extends ImGuiStruct { /*JNI #include "_common.h" - - #define IM_DRAW_LIST ((ImDrawList*)STRUCT_PTR) + #define THIS ((ImDrawList*)STRUCT_PTR) */ /** * Flags, you may poke into these to adjust anti-aliasing settings per-primitive. */ - public native int getImDrawListFlags(); /* - return IM_DRAW_LIST->Flags; - */ - - /** - * Flags, you may poke into these to adjust anti-aliasing settings per-primitive. - */ - public native void setImDrawListFlags(int imDrawListFlags); /* - IM_DRAW_LIST->Flags = imDrawListFlags; - */ - - /** - * Flags, you may poke into these to adjust anti-aliasing settings per-primitive. - */ - public void addImDrawListFlags(final int flags) { - setImDrawListFlags(getImDrawListFlags() | flags); - } - - /** - * Flags, you may poke into these to adjust anti-aliasing settings per-primitive. - */ - public void removeImDrawListFlags(final int flags) { - setImDrawListFlags(getImDrawListFlags() & ~(flags)); - } - - /** - * Flags, you may poke into these to adjust anti-aliasing settings per-primitive. - */ - public boolean hasImDrawListFlags(final int flags) { - return (getImDrawListFlags() & flags) != 0; - } + @BindingField(isFlag = true) + public int Flags; /** * Render-level scissoring. * This is passed down to your render function but not used for CPU-side coarse clipping. * Prefer using higher-level ImGui::PushClipRect() to affect logic (hit-testing and widget culling) */ - public native void pushClipRect(float clipRectMinX, float clipRectMinY, float clipRectMaxX, float clipRectMaxY); /* - IM_DRAW_LIST->PushClipRect(ImVec2(clipRectMinX, clipRectMinY), ImVec2(clipRectMaxX, clipRectMaxY)); - */ + @BindingMethod + public native void PushClipRect(ImVec2 clipRectMin, ImVec2 clipRectMax, @OptArg boolean intersectWithCurrentClipRect); - /** - * Render-level scissoring. - * This is passed down to your render function but not used for CPU-side coarse clipping. - * Prefer using higher-level ImGui::PushClipRect() to affect logic (hit-testing and widget culling) - */ - public native void pushClipRect(float clipRectMinX, float clipRectMinY, float clipRectMaxX, float clipRectMaxY, boolean intersectWithCurrentClipRect); /* - IM_DRAW_LIST->PushClipRect(ImVec2(clipRectMinX, clipRectMinY), ImVec2(clipRectMaxX, clipRectMaxY), intersectWithCurrentClipRect); - */ + @BindingMethod + public native void PushClipRectFullScreen(); - public native void pushClipRectFullScreen(); /* - IM_DRAW_LIST->PushClipRectFullScreen(); - */ + @BindingMethod + public native void PopClipRect(); - public native void popClipRect(); /* - IM_DRAW_LIST->PopClipRect(); - */ + @BindingMethod + public native void PushTextureID(@ArgValue(callPrefix = "(ImTextureID)(intptr_t)") int textureId); - public native void pushTextureId(int textureId); /* - IM_DRAW_LIST->PushTextureID((ImTextureID)(intptr_t)textureId); - */ + @BindingMethod + public native void PopTextureID(); - public native void popTextureId(); /* - IM_DRAW_LIST->PopTextureID(); - */ + @BindingMethod + public native ImVec2 GetClipRectMin(); - public ImVec2 getClipRectMin() { - final ImVec2 value = new ImVec2(); - getClipRectMin(value); - return value; - } - - public native void getClipRectMin(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, IM_DRAW_LIST->GetClipRectMin(), dstImVec2); - */ - - public native float getClipRectMinX(); /* - return IM_DRAW_LIST->GetClipRectMin().x; - */ - - public native float getClipRectMinY(); /* - return IM_DRAW_LIST->GetClipRectMin().y; - */ - - public ImVec2 getClipRectMax() { - final ImVec2 value = new ImVec2(); - getClipRectMax(value); - return value; - } - - public native void getClipRectMax(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, IM_DRAW_LIST->GetClipRectMax(), dstImVec2); - */ - - public native float getClipRectMaxX(); /* - return IM_DRAW_LIST->GetClipRectMax().x; - */ - - public native float getClipRectMaxY(); /* - return IM_DRAW_LIST->GetClipRectMax().y; - */ + @BindingMethod + public native ImVec2 GetClipRectMax(); // Primitives // - For rectangular primitives, "pMin" and "pMax" represent the upper-left and lower-right corners. @@ -136,318 +68,126 @@ public final class ImDrawList extends ImGuiStruct { // In future versions we will use textures to provide cheaper and higher-quality circles. // Use AddNgon() and AddNgonFilled() functions if you need to guaranteed a specific number of sides. - public native void addLine(float p1X, float p1Y, float p2X, float p2Y, int col); /* - IM_DRAW_LIST->AddLine(ImVec2(p1X, p1Y), ImVec2(p2X, p2Y), col); - */ + @BindingMethod + public native void AddLine(ImVec2 p1, ImVec2 p2, int col, @OptArg float thickness); - public native void addLine(float p1X, float p1Y, float p2X, float p2Y, int col, float thickness); /* - IM_DRAW_LIST->AddLine(ImVec2(p1X, p1Y), ImVec2(p2X, p2Y), col, thickness); - */ + @BindingMethod + public native void AddRect(ImVec2 pMin, ImVec2 pMax, int col, @OptArg(callValue = "0.0f") float rounding, @OptArg(callValue = "0") int flags, @OptArg float thickness); - public native void addRect(float pMinX, float pMinY, float pMaxX, float pMaxY, int col); /* - IM_DRAW_LIST->AddRect(ImVec2(pMinX, pMinY), ImVec2(pMaxX, pMaxY), col); + @BindingMethod + public native void AddRectFilled(ImVec2 pMin, ImVec2 pMax, int col, @OptArg(callValue = "0.0f") float rounding, @OptArg int flags); + + @BindingMethod + public native void AddRectFilledMultiColor(ImVec2 pMin, ImVec2 pMax, int colUprLeft, int colUprRight, int colBotRight, int colBotLeft); + + @BindingMethod + public native void AddQuad(ImVec2 p1, ImVec2 p2, ImVec2 p3, ImVec2 p4, int col, @OptArg float thickness); + + @BindingMethod + public native void AddQuadFilled(ImVec2 p1, ImVec2 p2, ImVec2 p3, ImVec2 p4, int col); + + @BindingMethod + public native void AddTriangle(ImVec2 p1, ImVec2 p2, ImVec2 p3, int col, @OptArg float thickness); + + @BindingMethod + public native void AddTriangleFilled(ImVec2 p1, ImVec2 p2, ImVec2 p3, int col); + + @BindingMethod + public native void AddCircle(ImVec2 center, float radius, int col, @OptArg(callValue = "0") int numSegments, @OptArg float thickness); + + @BindingMethod + public native void AddCircleFilled(ImVec2 center, float radius, int col, @OptArg int numSegments); + + @BindingMethod + public native void AddNgon(ImVec2 center, float radius, int col, int num_segments, @OptArg float thickness); + + @BindingMethod + public native void AddNgonFilled(ImVec2 center, float radius, int col, int num_segments); + + @BindingMethod + public native void AddText(ImVec2 pos, int col, String textBegin, @OptArg String textEnd); + + @BindingMethod + public native void AddText(ImFont font, int fontSize, ImVec2 pos, int col, String textBegin, @OptArg(callValue = "NULL") String textEnd, @OptArg(callValue = "0.0f") float wrapWidth, @OptArg @ArgValue(callPrefix = "&") ImVec4 cpuFineClipRect); + + @BindingMethod + public native void AddPolyline(ImVec2[] points, int numPoint, int col, int imDrawFlags, float thickness); + + /** + * Note: Anti-aliased filling requires points to be in clockwise order. */ - - public native void addRect(float pMinX, float pMinY, float pMaxX, float pMaxY, int col, float rounding); /* - IM_DRAW_LIST->AddRect(ImVec2(pMinX, pMinY), ImVec2(pMaxX, pMaxY), col, rounding); - */ - - public native void addRect(float pMinX, float pMinY, float pMaxX, float pMaxY, int col, float rounding, int imDrawFlags); /* - IM_DRAW_LIST->AddRect(ImVec2(pMinX, pMinY), ImVec2(pMaxX, pMaxY), col, rounding, imDrawFlags); - */ - - public native void addRect(float pMinX, float pMinY, float pMaxX, float pMaxY, int col, float rounding, int imDrawFlags, float thickness); /* - IM_DRAW_LIST->AddRect(ImVec2(pMinX, pMinY), ImVec2(pMaxX, pMaxY), col, rounding, imDrawFlags, thickness); - */ - - public native void addRectFilled(float pMinX, float pMinY, float pMaxX, float pMaxY, int col); /* - IM_DRAW_LIST->AddRectFilled(ImVec2(pMinX, pMinY), ImVec2(pMaxX, pMaxY), col); - */ - - public native void addRectFilled(float pMinX, float pMinY, float pMaxX, float pMaxY, int col, float rounding); /* - IM_DRAW_LIST->AddRectFilled(ImVec2(pMinX, pMinY), ImVec2(pMaxX, pMaxY), col, rounding); - */ - - public native void addRectFilled(float pMinX, float pMinY, float pMaxX, float pMaxY, int col, float rounding, int imDrawFlags); /* - IM_DRAW_LIST->AddRectFilled(ImVec2(pMinX, pMinY), ImVec2(pMaxX, pMaxY), col, rounding, imDrawFlags); - */ - - public native void addRectFilledMultiColor(float pMinX, float pMinY, float pMaxX, float pMaxY, long colUprLeft, long colUprRight, long colBotRight, long colBotLeft); /* - IM_DRAW_LIST->AddRectFilledMultiColor(ImVec2(pMinX, pMinY), ImVec2(pMaxX, pMaxY), colUprLeft, colUprRight, colBotRight, colBotLeft); - */ - - public native void addQuad(float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, int col); /* - IM_DRAW_LIST->AddQuad(ImVec2(p1X, p1Y), ImVec2(p2X, p2Y), ImVec2(p3X, p3Y), ImVec2(p4X, p4Y), col); - */ - - public native void addQuad(float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, int col, float thickness); /* - IM_DRAW_LIST->AddQuad(ImVec2(p1X, p1Y), ImVec2(p2X, p2Y), ImVec2(p3X, p3Y), ImVec2(p4X, p4Y), col, thickness); - */ - - public native void addQuadFilled(float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, int col); /* - IM_DRAW_LIST->AddQuadFilled(ImVec2(p1X, p1Y), ImVec2(p2X, p2Y), ImVec2(p3X, p3Y), ImVec2(p4X, p4Y), col); - */ - - public native void addTriangle(float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, int col); /* - IM_DRAW_LIST->AddTriangle(ImVec2(p1X, p1Y), ImVec2(p2X, p2Y), ImVec2(p3X, p3Y), col); - */ - - public native void addTriangle(float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, int col, float thickness); /* - IM_DRAW_LIST->AddTriangle(ImVec2(p1X, p1Y), ImVec2(p2X, p2Y), ImVec2(p3X, p3Y), col, thickness); - */ - - public native void addTriangleFilled(float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, int col); /* - IM_DRAW_LIST->AddTriangleFilled(ImVec2(p1X, p1Y), ImVec2(p2X, p2Y), ImVec2(p3X, p3Y), col); - */ - - public native void addCircle(float centreX, float centreY, float radius, int col); /* - IM_DRAW_LIST->AddCircle(ImVec2(centreX, centreY), radius, col); - */ - - public native void addCircle(float centreX, float centreY, float radius, int col, int numSegments); /* - IM_DRAW_LIST->AddCircle(ImVec2(centreX, centreY), radius, col, numSegments); - */ - - public native void addCircle(float centreX, float centreY, float radius, int col, int numSegments, float thickness); /* - IM_DRAW_LIST->AddCircle(ImVec2(centreX, centreY), radius, col, numSegments, thickness); - */ - - public native void addCircleFilled(float centreX, float centreY, float radius, int col); /* - IM_DRAW_LIST->AddCircleFilled(ImVec2(centreX, centreY), radius, col); - */ - - public native void addCircleFilled(float centreX, float centreY, float radius, int col, int numSegments); /* - IM_DRAW_LIST->AddCircleFilled(ImVec2(centreX, centreY), radius, col, numSegments); - */ - - public native void addNgon(float centreX, float centreY, float radius, int col, int numSegments); /* - IM_DRAW_LIST->AddNgon(ImVec2(centreX, centreY), radius, col, numSegments); - */ - - public native void addNgon(float centreX, float centreY, float radius, int col, int numSegments, float thickness); /* - IM_DRAW_LIST->AddNgon(ImVec2(centreX, centreY), radius, col, numSegments, thickness); - */ - - public native void addNgonFilled(float centreX, float centreY, float radius, int col, int numSegments); /* - IM_DRAW_LIST->AddNgonFilled(ImVec2(centreX, centreY), radius, col, numSegments); - */ - - public native void addText(float posX, float posY, int col, String text); /* - IM_DRAW_LIST->AddText(ImVec2(posX, posY), col, text); - */ - - public void addText(final ImFont imFont, final float fontSize, final float posX, final float posY, final int col, final String text) { - nAddText(imFont.ptr, fontSize, posX, posY, col, text); - } - - private native void nAddText(long imFontPtr, float fontSize, float posX, float posY, int col, String text); /* - IM_DRAW_LIST->AddText((ImFont*)imFontPtr, fontSize, ImVec2(posX, posY), col, text); - */ - - public void addText(final ImFont imFont, final float fontSize, final float posX, final float posY, final int col, final String text, final float wrapWidth) { - nAddText(imFont.ptr, fontSize, posX, posY, col, text, wrapWidth); - } - - private native void nAddText(long imFontPtr, float fontSize, float posX, float posY, int col, String text, float wrapWidth); /* - IM_DRAW_LIST->AddText((ImFont*)imFontPtr, fontSize, ImVec2(posX, posY), col, text, NULL, wrapWidth); - */ - - public void addText(final ImFont imFont, final float fontSize, final float posX, final float posY, final int col, final String text, final float wrapWidth, final float cpuFineClipRectX, final float cpuFineClipRectY, final float cpuFineClipRectZ, final float cpuFineClipRectV) { - nAddText(imFont.ptr, fontSize, posX, posY, col, text, wrapWidth, cpuFineClipRectX, cpuFineClipRectY, cpuFineClipRectZ, cpuFineClipRectV); - } - - private native void nAddText(long imFontPtr, float fontSize, float posX, float posY, int col, String text, float wrapWidth, float cpuFineClipRectX, float cpuFineClipRectY, float cpuFineClipRectZ, float cpuFineClipRectV); /* - ImVec4 cpuFineClipRect = ImVec4(cpuFineClipRectX, cpuFineClipRectY, cpuFineClipRectZ, cpuFineClipRectV); - IM_DRAW_LIST->AddText((ImFont*)imFontPtr, fontSize, ImVec2(posX, posY), col, text, NULL, wrapWidth, &cpuFineClipRect); - */ - - public native void addPolyline(ImVec2[] points, int numPoints, int col, int imDrawFlags, float thickness); /* - int points_num = env->GetArrayLength(points); - ImVec2 _points[points_num]; - for (int i = 0; i < points_num; i++) { - jobject jImVec2 = env->GetObjectArrayElement(points, i); - ImVec2 dst; - Jni::ImVec2Cpy(env, jImVec2, &dst); - _points[i] = dst; - } - IM_DRAW_LIST->AddPolyline(_points, numPoints, col, imDrawFlags, thickness); - */ - - // Note: Anti-aliased filling requires points to be in clockwise order. - public native void addConvexPolyFilled(ImVec2[] points, int numPoints, int col); /* - int points_num = env->GetArrayLength(points); - ImVec2 _points[points_num]; - for (int i = 0; i < points_num; i++) { - jobject jImVec2 = env->GetObjectArrayElement(points, i); - ImVec2 dst; - Jni::ImVec2Cpy(env, jImVec2, &dst); - _points[i] = dst; - } - IM_DRAW_LIST->AddConvexPolyFilled(_points, numPoints, col); - */ + @BindingMethod + public native void AddConvexPolyFilled(ImVec2[] points, int numPoints, int col); /** * Cubic Bezier (4 control points) */ - public native void addBezierCubic(float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, int col, float thickness); /* - IM_DRAW_LIST->AddBezierCubic(ImVec2(p1X, p1Y), ImVec2(p2X, p2Y), ImVec2(p3X, p3Y), ImVec2(p4X, p4Y), col, thickness); - */ - - /** - * Cubic Bezier (4 control points) - */ - public native void addBezierCubic(float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, int col, float thickness, int numSegments); /* - IM_DRAW_LIST->AddBezierCubic(ImVec2(p1X, p1Y), ImVec2(p2X, p2Y), ImVec2(p3X, p3Y), ImVec2(p4X, p4Y), col, thickness, numSegments); - */ + @BindingMethod + public native void AddBezierCubic(ImVec2 p1, ImVec2 p2, ImVec2 p3, ImVec2 p4, int col, float thickness, @OptArg int numSegments); /** * Quadratic Bezier (3 control points) */ - public native void addBezierQuadratic(float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, int col, float thickness); /* - IM_DRAW_LIST->AddBezierQuadratic(ImVec2(p1X, p1Y), ImVec2(p2X, p2Y), ImVec2(p3X, p3Y), col, thickness); - */ - - /** - * Quadratic Bezier (3 control points) - */ - public native void addBezierQuadratic(float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, int col, float thickness, int numSegments); /* - IM_DRAW_LIST->AddBezierQuadratic(ImVec2(p1X, p1Y), ImVec2(p2X, p2Y), ImVec2(p3X, p3Y), col, thickness, numSegments); - */ + @BindingMethod + public native void AddBezierQuadratic(ImVec2 p1, ImVec2 p2, ImVec2 p3, int col, float thickness, @OptArg int numSegments); // Image primitives // - Read FAQ to understand what ImTextureID is. // - "pMin" and "pMax" represent the upper-left and lower-right corners of the rectangle. // - "uvMin" and "uvMax" represent the normalized texture coordinates to use for those corners. Using (0,0)->(1,1) texture coordinates will generally display the entire texture. - public native void addImage(int textureID, float pMinX, float pMinY, float pMaxX, float pMaxY); /* - IM_DRAW_LIST->AddImage((ImTextureID)(intptr_t)textureID, ImVec2(pMinX, pMinY), ImVec2(pMaxX, pMaxY)); - */ + @BindingMethod + public native void AddImage(@ArgValue(callPrefix = "(ImTextureID)(intptr_t)") int textureID, ImVec2 pMin, ImVec2 pMax, @OptArg ImVec2 uvMin, @OptArg ImVec2 uvMax, @OptArg int col); - public native void addImage(int textureID, float pMinX, float pMinY, float pMaxX, float pMaxY, float uvMinX, float uvMinY); /* - IM_DRAW_LIST->AddImage((ImTextureID)(intptr_t)textureID, ImVec2(pMinX, pMinY), ImVec2(pMaxX, pMaxY), ImVec2(uvMinX, uvMinY)); - */ + @BindingMethod + public native void AddImageQuad(@ArgValue(callPrefix = "(ImTextureID)(intptr_t)") int textureID, ImVec2 p1, ImVec2 p2, ImVec2 p3, ImVec2 p4, @OptArg ImVec2 uv1, @OptArg ImVec2 uv2, @OptArg ImVec2 uv3, @OptArg ImVec2 uv4, @OptArg int col); - public native void addImage(int textureID, float pMinX, float pMinY, float pMaxX, float pMaxY, float uvMinX, float uvMinY, float uvMaxX, float uvMaxY); /* - IM_DRAW_LIST->AddImage((ImTextureID)(intptr_t)textureID, ImVec2(pMinX, pMinY), ImVec2(pMaxX, pMaxY), ImVec2(uvMinX, uvMinY), ImVec2(uvMaxX, uvMaxY)); - */ - - public native void addImage(int textureID, float pMinX, float pMinY, float pMaxX, float pMaxY, float uvMinX, float uvMinY, float uvMaxX, float uvMaxY, int col); /* - IM_DRAW_LIST->AddImage((ImTextureID)(intptr_t)textureID, ImVec2(pMinX, pMinY), ImVec2(pMaxX, pMaxY), ImVec2(uvMinX, uvMinY), ImVec2(uvMaxX, uvMaxY), col); - */ - - public native void addImageQuad(int textureID, float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y); /* - IM_DRAW_LIST->AddImageQuad((ImTextureID)(intptr_t)textureID, ImVec2(p1X, p1Y), ImVec2(p2X, p2Y), ImVec2(p3X, p3Y), ImVec2(p4X, p4Y)); - */ - - public native void addImageQuad(int textureID, float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, float uv1X, float uv1Y); /* - IM_DRAW_LIST->AddImageQuad((ImTextureID)(intptr_t)textureID, ImVec2(p1X, p1Y), ImVec2(p2X, p2Y), ImVec2(p3X, p3Y), ImVec2(p4X, p4Y), ImVec2(uv1X, uv1Y)); - */ - - public native void addImageQuad(int textureID, float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, float uv1X, float uv1Y, float uv2X, float uv2Y); /* - IM_DRAW_LIST->AddImageQuad((ImTextureID)(intptr_t)textureID, ImVec2(p1X, p1Y), ImVec2(p2X, p2Y), ImVec2(p3X, p3Y), ImVec2(p4X, p4Y), ImVec2(uv1X, uv1Y), ImVec2(uv2X, uv2Y)); - */ - - public native void addImageQuad(int textureID, float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, float uv1X, float uv1Y, float uv2X, float uv2Y, float uv3X, float uv3Y); /* - IM_DRAW_LIST->AddImageQuad((ImTextureID)(intptr_t)textureID, ImVec2(p1X, p1Y), ImVec2(p2X, p2Y), ImVec2(p3X, p3Y), ImVec2(p4X, p4Y), ImVec2(uv1X, uv1Y), ImVec2(uv2X, uv2Y), ImVec2(uv3X, uv3Y)); - */ - - public native void addImageQuad(int textureID, float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, float uv1X, float uv1Y, float uv2X, float uv2Y, float uv3X, float uv3Y, float uv4X, float uv4Y); /* - IM_DRAW_LIST->AddImageQuad((ImTextureID)(intptr_t)textureID, ImVec2(p1X, p1Y), ImVec2(p2X, p2Y), ImVec2(p3X, p3Y), ImVec2(p4X, p4Y), ImVec2(uv1X, uv1Y), ImVec2(uv2X, uv2Y), ImVec2(uv3X, uv3Y), ImVec2(uv4X, uv4Y)); - */ - - public native void addImageQuad(int textureID, float p1X, float p1Y, float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, float uv1X, float uv1Y, float uv2X, float uv2Y, float uv3X, float uv3Y, float uv4X, float uv4Y, int col); /* - IM_DRAW_LIST->AddImageQuad((ImTextureID)(intptr_t)textureID, ImVec2(p1X, p1Y), ImVec2(p2X, p2Y), ImVec2(p3X, p3Y), ImVec2(p4X, p4Y), ImVec2(uv1X, uv1Y), ImVec2(uv2X, uv2Y), ImVec2(uv3X, uv3Y), ImVec2(uv4X, uv4Y), col); - */ - - public native void addImageRounded(int textureID, float pMinX, float pMinY, float pMaxX, float pMaxY, float uvMinX, float uvMinY, float uvMaxX, float uvMaxY, int col, float rounding); /* - IM_DRAW_LIST->AddImageRounded((ImTextureID)(intptr_t)textureID, ImVec2(pMinX, pMinY), ImVec2(pMaxX, pMaxY), ImVec2(uvMinX, uvMinY), ImVec2(uvMaxX, uvMaxY), col, rounding); - */ - - public native void addImageRounded(int textureID, float pMinX, float pMinY, float pMaxX, float pMaxY, float uvMinX, float uvMinY, float uvMaxX, float uvMaxY, int col, float rounding, int imDrawFlags); /* - IM_DRAW_LIST->AddImageRounded((ImTextureID)(intptr_t)textureID, ImVec2(pMinX, pMinY), ImVec2(pMaxX, pMaxY), ImVec2(uvMinX, uvMinY), ImVec2(uvMaxX, uvMaxY), col, rounding, imDrawFlags); - */ + @BindingMethod + public native void AddImageRounded(@ArgValue(callPrefix = "(ImTextureID)(intptr_t)") int textureID, ImVec2 pMin, ImVec2 pMax, ImVec2 uvMin, ImVec2 uvMax, int col, float rounding, @OptArg int imDrawFlags); // Stateful path API, add points then finish with PathFillConvex() or PathStroke() - public native void pathClear(); /* - IM_DRAW_LIST->PathClear(); - */ + @BindingMethod + public native void PathClear(); - public native void pathLineTo(float posX, float posY); /* - IM_DRAW_LIST->PathLineTo(ImVec2(posX, posY)); - */ + @BindingMethod + public native void PathLineTo(ImVec2 pos); - public native void pathLineToMergeDuplicate(float posX, float posY); /* - IM_DRAW_LIST->PathLineToMergeDuplicate(ImVec2(posX, posY)); - */ + @BindingMethod + public native void PathLineToMergeDuplicate(ImVec2 pos); - // Note: Anti-aliased filling requires points to be in clockwise order. - public native void pathFillConvex(int col); /* - IM_DRAW_LIST->PathFillConvex(col); - */ + /** + * Note: Anti-aliased filling requires points to be in clockwise order. + */ + @BindingMethod + public native void PathFillConvex(int col); - public native void pathStroke(int col, int imDrawFlags); /* - IM_DRAW_LIST->PathStroke(col, imDrawFlags); - */ + @BindingMethod + public native void PathStroke(int col, @OptArg(callValue = "0") int imDrawFlags, @OptArg float thickness); - public native void pathStroke(int col, int imDrawFlags, float thickness); /* - IM_DRAW_LIST->PathStroke(col, imDrawFlags, thickness); - */ - - public native void pathArcTo(float centerX, float centerY, float radius, float aMin, float aMax); /* - IM_DRAW_LIST->PathArcTo(ImVec2(centerX, centerY), radius, aMin, aMax); - */ - - public native void pathArcTo(float centerX, float centerY, float radius, float aMin, float aMax, int numSegments); /* - IM_DRAW_LIST->PathArcTo(ImVec2(centerX, centerY), radius, aMin, aMax, numSegments); - */ + @BindingMethod + public native void PathArcTo(ImVec2 center, float radius, float aMin, float aMax, @OptArg int numSegments); /** * Use precomputed angles for a 12 steps circle */ - public native void pathArcToFast(float centerX, float centerY, float radius, int aMinOf12, int aMaxOf12); /* - IM_DRAW_LIST->PathArcToFast(ImVec2(centerX, centerY), radius, aMinOf12, aMaxOf12); - */ + @BindingMethod + public native void PathArcToFast(ImVec2 center, float radius, int aMinOf12, int aMaxOf12); /** * Cubic Bezier (4 control points) */ - public native void pathBezierCubicCurveTo(float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y); /* - IM_DRAW_LIST->PathBezierCubicCurveTo(ImVec2(p2X, p2Y), ImVec2(p3X, p3Y), ImVec2(p4X, p4Y)); - */ - - /** - * Cubic Bezier (4 control points) - */ - public native void pathBezierCubicCurveTo(float p2X, float p2Y, float p3X, float p3Y, float p4X, float p4Y, int numSegments); /* - IM_DRAW_LIST->PathBezierCubicCurveTo(ImVec2(p2X, p2Y), ImVec2(p3X, p3Y), ImVec2(p4X, p4Y), numSegments); - */ + @BindingMethod + public native void PathBezierCubicCurveTo(ImVec2 p2, ImVec2 p3, ImVec2 p4, @OptArg int numSegments); /** * Quadratic Bezier (3 control points) */ - public native void pathBezierQuadraticCurveTo(float p2X, float p2Y, float p3X, float p3Y); /* - IM_DRAW_LIST->PathBezierQuadraticCurveTo(ImVec2(p2X, p2Y), ImVec2(p3X, p3Y)); - */ + @BindingMethod + public native void PathBezierQuadraticCurveTo(ImVec2 p2, ImVec2 p3, @OptArg int numSegments); - /** - * Quadratic Bezier (3 control points) - */ - public native void pathBezierQuadraticCurveTo(float p2X, float p2Y, float p3X, float p3Y, int numSegments); /* - IM_DRAW_LIST->PathBezierQuadraticCurveTo(ImVec2(p2X, p2Y), ImVec2(p3X, p3Y), numSegments); - */ - - public native void pathRect(float rectMinX, float rectMinY, float rectMaxX, float rectMaxY); /* - IM_DRAW_LIST->PathRect(ImVec2(rectMinX, rectMinY), ImVec2(rectMaxX, rectMaxY)); - */ - - public native void pathRect(float rectMinX, float rectMinY, float rectMaxX, float rectMaxY, float rounding); /* - IM_DRAW_LIST->PathRect(ImVec2(rectMinX, rectMinY), ImVec2(rectMaxX, rectMaxY), rounding); - */ - - public native void pathRect(float rectMinX, float rectMinY, float rectMaxX, float rectMaxY, float rounding, int imDrawFlags); /* - IM_DRAW_LIST->PathRect(ImVec2(rectMinX, rectMinY), ImVec2(rectMaxX, rectMaxY), rounding, imDrawFlags); - */ + @BindingMethod + public native void PathRect(ImVec2 rectMin, ImVec2 rectMax, @OptArg(callValue = "0.0f") float rounding, @OptArg int imDrawFlags); // Advanced: Channels // - Use to split render into layers. By switching channels to can render out-of-order (e.g. submit FG primitives before BG primitives) @@ -455,47 +195,44 @@ public final class ImDrawList extends ImGuiStruct { // Prefer using your own persistent instance of ImDrawListSplitter as you can stack them. // Using the ImDrawList::ChannelsXXXX you cannot stack a split over another. - public native void channelsSplit(int count); /* - IM_DRAW_LIST->ChannelsSplit(count); - */ + @BindingMethod + public native void ChannelsSplit(int count); - public native void channelsMerge(); /* - IM_DRAW_LIST->ChannelsMerge(); - */ + @BindingMethod + public native void ChannelsMerge(); - public native void channelsSetCurrent(int n); /* - IM_DRAW_LIST->ChannelsSetCurrent(n); - */ + @BindingMethod + public native void ChannelsSetCurrent(int n); // Advanced: Primitives allocations // - We render triangles (three vertices) // - All primitives needs to be reserved via PrimReserve() beforehand. - public native void primReserve(int idxCount, int vtxCount); /* - IM_DRAW_LIST->PrimReserve(idxCount, vtxCount); - */ + @BindingMethod + public native void PrimReserve(int idxCount, int vtxCount); - public native void primUnreserve(int idxCount, int vtxCount); /* - IM_DRAW_LIST->PrimUnreserve(idxCount, vtxCount); - */ + @BindingMethod + public native void PrimUnreserve(int idxCount, int vtxCount); - public native void primRect(float ax, float ay, float bx, float by, int col); /* - IM_DRAW_LIST->PrimRect(ImVec2(ax, ay), ImVec2(bx, by), col); - */ + @BindingMethod + public native void PrimRect(ImVec2 a, ImVec2 b, int col); - public native void primRectUV(float ax, float ay, float bx, float by, float uvAx, float uvAy, float uvBx, float uvBy, int col); /* - IM_DRAW_LIST->PrimRectUV(ImVec2(ax, ay), ImVec2(bx, by), ImVec2(uvAx, uvAy), ImVec2(uvBx, uvBy), col); - */ + @BindingMethod + public native void PrimRectUV(ImVec2 a, ImVec2 b, ImVec2 uvA, ImVec2 uvB, int col); - public native void primQuadUV(float ax, float ay, float bx, float by, float cx, float cy, float dx, float dy, float uvAx, float uvAy, float uvBx, float uvBy, float uvCx, float uvCy, float uvDx, float uvDy, int col); /* - IM_DRAW_LIST->PrimQuadUV(ImVec2(ax, ay), ImVec2(bx, by), ImVec2(cx, cy), ImVec2(dx, dy), ImVec2(uvAx, uvAy), ImVec2(uvBx, uvBy), ImVec2(uvCx, uvCy), ImVec2(uvDx, uvDy), col); - */ + @BindingMethod + public native void PrimQuadUV(ImVec2 a, ImVec2 b, ImVec2 c, ImVec2 d, ImVec2 uvA, ImVec2 uvB, ImVec2 uvC, ImVec2 uvD, int col); - public native void primWriteVtx(float posX, float posY, float uvX, float uvY, int col); /* - IM_DRAW_LIST->PrimWriteVtx(ImVec2(posX, posY), ImVec2(uvX, uvY), col); - */ + @BindingMethod + public native void PrimWriteVtx(ImVec2 pos, ImVec2 uv, int col); - public native void primVtx(float posX, float posY, float uvX, float uvY, int col); /* - IM_DRAW_LIST->PrimVtx(ImVec2(posX, posY), ImVec2(uvX, uvY), col); - */ + @BindingMethod + public native void PrimWriteIdx(@ArgValue(callPrefix = "(ImDrawIdx)") int idx); + + @BindingMethod + public native void PrimVtx(ImVec2 pos, ImVec2 uv, int col); + + /*JNI + #undef THIS + */ } diff --git a/imgui-binding/src/main/java/imgui/ImFont.java b/imgui-binding/src/main/java/imgui/ImFont.java index 17de349..3b44fb7 100644 --- a/imgui-binding/src/main/java/imgui/ImFont.java +++ b/imgui-binding/src/main/java/imgui/ImFont.java @@ -1,15 +1,19 @@ package imgui; import imgui.binding.ImGuiStructDestroyable; +import imgui.binding.annotation.ArgValue; +import imgui.binding.annotation.BindingField; +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(). */ +@BindingSource public final class ImFont extends ImGuiStructDestroyable { - private final ImFontGlyph fallbackGlyph = new ImFontGlyph(0); - private final ImFontGlyph foundGlyph = new ImFontGlyph(0); - public ImFont() { } @@ -17,17 +21,16 @@ public final class ImFont extends ImGuiStructDestroyable { super(ptr); } - /*JNI - #include "_common.h" - - #define IM_FONT ((ImFont*)STRUCT_PTR) - */ - @Override protected long create() { return nCreate(); } + /*JNI + #include "_common.h" + #define THIS ((ImFont*)STRUCT_PTR) + */ + private native long nCreate(); /* return (intptr_t)(new ImFont()); */ @@ -37,37 +40,23 @@ public final class ImFont extends ImGuiStructDestroyable { /** * = FallbackGlyph.AdvanceX */ - public native float getFallbackAdvanceX(); /* - return IM_FONT->FallbackAdvanceX; - */ - - /** - * = FallbackGlyph.AdvanceX - */ - public native void setFallbackAdvanceX(float fallbackAdvanceX); /* - IM_FONT->FallbackAdvanceX = fallbackAdvanceX; - */ + @BindingField + public float FallbackAdvanceX; /** * Height of characters/line, set during loading (don't change after loading) */ - public native float getFontSize(); /* - return IM_FONT->FontSize; - */ + @BindingField + public float FontSize; // TODO IndexLookup, Glyphs /** * = FindGlyph(FontFallbackChar) */ - public ImFontGlyph getFallbackGlyph() { - fallbackGlyph.ptr = nGetFallbackGlyphPtr(); - return fallbackGlyph; - } - - private native long nGetFallbackGlyphPtr(); /* - return (intptr_t)IM_FONT->FallbackGlyph; - */ + @BindingField + @ReturnValue(isStatic = true) + public ImFontGlyph FallbackGlyph; // TODO ContainerAtlas, ConfigData @@ -75,196 +64,79 @@ public final class ImFont extends ImGuiStructDestroyable { * Number of ImFontConfig involved in creating this font. * Bigger than 1 when merging multiple font sources into one ImFont. */ - public native short getConfigDataCount(); /* - return IM_FONT->ConfigDataCount; - */ - - /** - * Replacement character if a glyph isn't found. - */ - public native short getFallbackChar(); /* - return IM_FONT->FallbackChar; - */ + @BindingField + public short ConfigDataCount; /** * Character used for ellipsis rendering. */ - public native short getEllipsisChar(); /* - return IM_FONT->EllipsisChar; - */ - - /** - * Character used for ellipsis rendering. - */ - public native void setEllipsisChar(int ellipsisChar); /* - IM_FONT->EllipsisChar = (ImWchar)ellipsisChar; - */ + @BindingField + public short EllipsisChar; /** * Character used for ellipsis rendering (if a single '...' character isn't found) */ - public native short getDotChar(); /* - return IM_FONT->DotChar; - */ + @BindingField + public short DotChar; - /** - * Character used for ellipsis rendering (if a single '...' character isn't found) - */ - public native void setDotChar(int dotChar); /* - IM_FONT->DotChar = (ImWchar)dotChar; - */ - - public native boolean getDirtyLookupTables(); /* - return IM_FONT->DirtyLookupTables; - */ - - public native void setDirtyLookupTables(boolean dirtyLookupTables); /* - IM_FONT->DirtyLookupTables = dirtyLookupTables; - */ + @BindingField + public boolean DirtyLookupTables; /** * Base font scale, multiplied by the per-window font scale which you can adjust with SetWindowFontScale() */ - public native float getScale(); /* - return IM_FONT->Scale; - */ - - /** - * Base font scale, multiplied by the per-window font scale which you can adjust with SetWindowFontScale() - */ - public native void setScale(float scale); /* - IM_FONT->Scale = scale; - */ + @BindingField + public float Scale; /** * Ascent: distance from top to bottom of e.g. 'A' [0..FontSize] */ - public native float getAscent(); /* - return IM_FONT->Ascent; - */ + @BindingField + public float Ascent; - /** - * Ascent: distance from top to bottom of e.g. 'A' [0..FontSize] - */ - public native void setAscent(float ascent); /* - IM_FONT->Ascent = ascent; - */ - - /** - * Ascent: distance from top to bottom of e.g. 'A' [0..FontSize] - */ - public native float getDescent(); /* - return IM_FONT->Descent; - */ - - /** - * Ascent: distance from top to bottom of e.g. 'A' [0..FontSize] - */ - public native void setDescent(float descent); /* - IM_FONT->Descent = descent; - */ + @BindingField + public float Descent; /** * 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 native int getMetricsTotalSurface(); /* - return IM_FONT->MetricsTotalSurface; - */ - - /** - * 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 native void setMetricsTotalSurface(int metricsTotalSurface); /* - IM_FONT->MetricsTotalSurface = metricsTotalSurface; - */ + @BindingField + public int MetricsTotalSurface; // Methods - public ImFontGlyph findGlyph(final int c) { - foundGlyph.ptr = nFindGlyph(c); - return foundGlyph; - } + @BindingMethod + public native ImFontGlyph FindGlyph(@ArgValue(callPrefix = "(ImWchar)") int c); - private native long nFindGlyph(int c); /* - return (intptr_t)IM_FONT->FindGlyph((ImWchar)c); - */ + @BindingMethod + public native ImFontGlyph FindGlyphNoFallback(@ArgValue(callPrefix = "(ImWchar)") int c); - public ImFontGlyph findGlyphNoFallback(final int c) { - foundGlyph.ptr = nFindGlyphNoFallback(c); - return foundGlyph; - } + @BindingMethod + public native float GetCharAdvance(@ArgValue(callPrefix = "(ImWchar)") int c); - private native long nFindGlyphNoFallback(int c); /* - return (intptr_t)IM_FONT->FindGlyphNoFallback((ImWchar)c); - */ + @BindingMethod + public native boolean IsLoaded(); - public native float getCharAdvance(int c); /* - return IM_FONT->GetCharAdvance((ImWchar)c); - */ - - public native boolean isLoaded(); /* - return IM_FONT->IsLoaded(); - */ - - public native String getDebugName(); /* - return env->NewStringUTF(IM_FONT->GetDebugName()); - */ - - public ImVec2 calcTextSizeA(final float size, final float maxWidth, final float wrapWidth, final String text) { - final ImVec2 value = new ImVec2(); - calcTextSizeA(value, size, maxWidth, wrapWidth, text); - return value; - } + @BindingMethod + public native String GetDebugName(); /** * 'max_width' stops rendering after a certain width (could be turned into a 2d size). FLT_MAX to disable. * 'wrap_width' enable automatic word-wrapping across multiple lines to fit into given width. 0.0f to disable. */ - public native void calcTextSizeA(ImVec2 dstImVec2, float size, float maxWidth, float wrapWidth, String text); /* - Jni::ImVec2Cpy(env, IM_FONT->CalcTextSizeA(size, maxWidth, wrapWidth, text), dstImVec2); - */ + @BindingMethod + public native ImVec2 CalcTextSizeA(float size, float maxWidth, float wrapWidth, String textBegin, @OptArg String textEnd); - /** - * 'max_width' stops rendering after a certain width (could be turned into a 2d size). FLT_MAX to disable. - * 'wrap_width' enable automatic word-wrapping across multiple lines to fit into given width. 0.0f to disable. + @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); + + @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); + + /*JNI + #undef THIS */ - public native float calcTextSizeAX(float size, float maxWidth, float wrapWidth, String text); /* - return IM_FONT->CalcTextSizeA(size, maxWidth, wrapWidth, text).x; - */ - - /** - * 'max_width' stops rendering after a certain width (could be turned into a 2d size). FLT_MAX to disable. - * 'wrap_width' enable automatic word-wrapping across multiple lines to fit into given width. 0.0f to disable. - */ - public native float calcTextSizeAY(float size, float maxWidth, float wrapWidth, String text); /* - return IM_FONT->CalcTextSizeA(size, maxWidth, wrapWidth, text).y; - */ - - public native String calcWordWrapPositionA(float scale, String text, String textEnd, float wrapWidth); /* - return env->NewStringUTF(IM_FONT->CalcWordWrapPositionA(scale, text, textEnd, wrapWidth)); - */ - - public void renderChar(final ImDrawList drawList, final float size, final float posX, final float posY, final int col, final int c) { - nRenderChar(drawList.ptr, size, posX, posY, col, c); - } - - private native void nRenderChar(long drawListPtr, float size, float posX, float posY, int col, int c); /* - IM_FONT->RenderChar((ImDrawList*)drawListPtr, size, ImVec2(posX, posY), col, (ImWchar)c); - */ - - 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 clipRectW, final float clipRectZ, final String text, final String textEnd) { - nRenderText(drawList.ptr, size, posX, posY, col, clipRectX, clipRectY, clipRectW, clipRectZ, text, textEnd, 0, false); - } - - 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 clipRectW, final float clipRectZ, final String text, final String textEnd, final float wrapWidth) { - nRenderText(drawList.ptr, size, posX, posY, col, clipRectX, clipRectY, clipRectW, clipRectZ, text, textEnd, wrapWidth, false); - } - - 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 clipRectW, final float clipRectZ, final String text, final String textEnd, final float wrapWidth, final boolean cpuFineClip) { - nRenderText(drawList.ptr, size, posX, posY, col, clipRectX, clipRectY, clipRectW, clipRectZ, text, textEnd, wrapWidth, cpuFineClip); - } - - private native void nRenderText(long drawListPtr, float size, float posX, float posY, int col, float clipRectX, float clipRectY, float clipRectW, float clipRectZ, String text, String textEnd, float wrapWidth, boolean cpuFineClip); /* - IM_FONT->RenderText((ImDrawList*)drawListPtr, size, ImVec2(posX, posY), col, ImVec4(clipRectX, clipRectY, clipRectW, clipRectZ), text, textEnd, wrapWidth, cpuFineClip); - */ } diff --git a/imgui-binding/src/main/java/imgui/ImFontAtlas.java b/imgui-binding/src/main/java/imgui/ImFontAtlas.java index d0d4896..a11c861 100644 --- a/imgui-binding/src/main/java/imgui/ImFontAtlas.java +++ b/imgui-binding/src/main/java/imgui/ImFontAtlas.java @@ -1,6 +1,11 @@ package imgui; import imgui.binding.ImGuiStructDestroyable; +import imgui.binding.annotation.ArgValue; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingMethod; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.OptArg; import imgui.type.ImInt; import java.nio.ByteBuffer; @@ -25,6 +30,7 @@ import java.nio.ByteOrder; * - Even though many functions are suffixed with "TTF", OTF data is supported just as well. * - This is an old API and it is currently awkward for those and and various other reasons! We will address them in the future! */ +@BindingSource public final class ImFontAtlas extends ImGuiStructDestroyable { private ByteBuffer alpha8pixels = null; private ByteBuffer rgba32pixels = null; @@ -36,10 +42,14 @@ public final class ImFontAtlas extends ImGuiStructDestroyable { super(ptr); } + @Override + protected long create() { + return nCreate(); + } + /*JNI #include "_common.h" - - #define IM_FONT_ATLAS ((ImFontAtlas*)STRUCT_PTR) + #define THIS ((ImFontAtlas*)STRUCT_PTR) jmethodID jImFontAtlasCreateAlpha8PixelsMID; jmethodID jImFontAtlasCreateRgba32PixelsMID; @@ -47,240 +57,78 @@ public final class ImFontAtlas extends ImGuiStructDestroyable { static native void nInit(); /* jclass jImFontAtlasClass = env->FindClass("imgui/ImFontAtlas"); - jImFontAtlasCreateAlpha8PixelsMID = env->GetMethodID(jImFontAtlasClass, "createAlpha8Pixels", "(I)Ljava/nio/ByteBuffer;"); jImFontAtlasCreateRgba32PixelsMID = env->GetMethodID(jImFontAtlasClass, "createRgba32Pixels", "(I)Ljava/nio/ByteBuffer;"); */ - @Override - protected long create() { - return nCreate(); - } - private native long nCreate(); /* return (intptr_t)(new ImFontConfig()); */ - public ImFont addFont(final ImFontConfig imFontConfig) { - return new ImFont(nAddFont(imFontConfig.ptr)); - } + @BindingMethod + public native ImFont AddFont(ImFontConfig imFontConfig); - private native long nAddFont(long imFontConfigPtr); /* - return (intptr_t)IM_FONT_ATLAS->AddFont((ImFontConfig*)imFontConfigPtr); - */ + @BindingMethod + public native ImFont AddFontDefault(@OptArg ImFontConfig imFontConfig); - public ImFont addFontDefault() { - return new ImFont(nAddFontDefault()); - } - - private native long nAddFontDefault(); /* - return (intptr_t)IM_FONT_ATLAS->AddFontDefault(); - */ - - public ImFont addFontDefault(final ImFontConfig imFontConfig) { - return new ImFont(nAddFontDefault(imFontConfig.ptr)); - } - - private native long nAddFontDefault(long imFontConfigPtr); /* - return (intptr_t)IM_FONT_ATLAS->AddFontDefault((ImFontConfig*)imFontConfigPtr); - */ - - public ImFont addFontFromFileTTF(final String filename, final float sizePixels) { - return new ImFont(nAddFontFromFileTTF(filename, sizePixels)); - } - - private native long nAddFontFromFileTTF(String filename, float sizePixels); /* - return (intptr_t)IM_FONT_ATLAS->AddFontFromFileTTF(filename, sizePixels); - */ - - public ImFont addFontFromFileTTF(final String filename, final float sizePixels, final ImFontConfig imFontConfig) { - return new ImFont(nAddFontFromFileTTF(filename, sizePixels, imFontConfig.ptr)); - } - - private native long nAddFontFromFileTTF(String filename, float sizePixels, long imFontConfigPtr); /* - return (intptr_t)IM_FONT_ATLAS->AddFontFromFileTTF(filename, sizePixels, (ImFontConfig*)imFontConfigPtr); - */ - - public ImFont addFontFromFileTTF(final String filename, final float sizePixels, final short[] glyphRanges) { - return new ImFont(nAddFontFromFileTTF(filename, sizePixels, glyphRanges)); - } - - private native long nAddFontFromFileTTF(String filename, float sizePixels, short[] glyphRanges); /* - return (intptr_t)IM_FONT_ATLAS->AddFontFromFileTTF(filename, sizePixels, NULL, (ImWchar*)&glyphRanges[0]); - */ - - public ImFont addFontFromFileTTF(final String filename, final float sizePixels, final ImFontConfig imFontConfig, final short[] glyphRanges) { - return new ImFont(nAddFontFromFileTTF(filename, sizePixels, imFontConfig.ptr, glyphRanges)); - } - - private native long nAddFontFromFileTTF(String filename, float sizePixels, long imFontConfigPtr, short[] glyphRanges); /* - return (intptr_t)IM_FONT_ATLAS->AddFontFromFileTTF(filename, sizePixels, (ImFontConfig*)imFontConfigPtr, (ImWchar*)&glyphRanges[0]); - */ + @BindingMethod + public native ImFont AddFontFromFileTTF(String filename, float sizePixels, @OptArg(callValue = "NULL") ImFontConfig fontConfig, @OptArg @ArgValue(callPrefix = "(ImWchar*)") short[] glyphRanges); /** * Note: Transfer ownership of 'ttf_data' to ImFontAtlas! Will be deleted after destruction of the atlas. * Set font_cfg.FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed. */ - public ImFont addFontFromMemoryTTF(final byte[] fontData, final float sizePixels) { - return new ImFont(nAddFontFromMemoryTTF(fontData, fontData.length, sizePixels)); - } - - private native long nAddFontFromMemoryTTF(byte[] fontData, int fontSize, float sizePixels); /* - return (intptr_t)IM_FONT_ATLAS->AddFontFromMemoryTTF(&fontData[0], fontSize, sizePixels); - */ - + @BindingMethod + public native ImFont AddFontFromMemoryTTF(byte[] fontData, @ArgValue(callValue = "(int)env->GetArrayLength(obj_fontData)") Void fontSize, float sizePixels, @OptArg(callValue = "NULL") ImFontConfig fontConfig, @OptArg @ArgValue(callPrefix = "(ImWchar*)") short[] glyphRanges); /** * Note: Transfer ownership of 'ttf_data' to ImFontAtlas! Will be deleted after destruction of the atlas. * Set font_cfg.FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed. */ - public ImFont addFontFromMemoryTTF(final byte[] fontData, final float sizePixels, final ImFontConfig imFontConfig) { - return new ImFont(nAddFontFromMemoryTTF(fontData, fontData.length, sizePixels, imFontConfig.ptr)); - } - - private native long nAddFontFromMemoryTTF(byte[] fontData, int fontSize, float sizePixels, long imFontConfigPtr); /* - return (intptr_t)IM_FONT_ATLAS->AddFontFromMemoryTTF(&fontData[0], fontSize, sizePixels, (ImFontConfig*)imFontConfigPtr); - */ - - /** - * Note: Transfer ownership of 'ttf_data' to ImFontAtlas! Will be deleted after destruction of the atlas. - * Set font_cfg.FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed. - */ - public ImFont addFontFromMemoryTTF(final byte[] fontData, final float sizePixels, final short[] glyphRanges) { - return new ImFont(nAddFontFromMemoryTTF(fontData, fontData.length, sizePixels, glyphRanges)); - } - - private native long nAddFontFromMemoryTTF(byte[] fontData, int fontSize, float sizePixels, short[] glyphRanges); /* - return (intptr_t)IM_FONT_ATLAS->AddFontFromMemoryTTF(&fontData[0], fontSize, sizePixels, NULL, (ImWchar*)&glyphRanges[0]); - */ - - /** - * Note: Transfer ownership of 'ttf_data' to ImFontAtlas! Will be deleted after destruction of the atlas. - * Set font_cfg.FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed. - */ - public ImFont addFontFromMemoryTTF(final byte[] fontData, final float sizePixels, final ImFontConfig imFontConfig, final short[] glyphRanges) { - return new ImFont(nAddFontFromMemoryTTF(fontData, fontData.length, sizePixels, imFontConfig.ptr, glyphRanges)); - } - - private native long nAddFontFromMemoryTTF(byte[] fontData, int fontSize, float sizePixels, long imFontConfigPtr, short[] glyphRanges); /* - return (intptr_t)IM_FONT_ATLAS->AddFontFromMemoryTTF(&fontData[0], fontSize, sizePixels, (ImFontConfig*)imFontConfigPtr, (ImWchar*)&glyphRanges[0]); - */ + @BindingMethod + public native ImFont AddFontFromMemoryTTF(byte[] fontData, int fontSize, float sizePixels, @OptArg(callValue = "NULL") ImFontConfig fontConfig, @OptArg @ArgValue(callPrefix = "(ImWchar*)") short[] glyphRanges); /** * 'compressed_font_data' still owned by caller. Compress with binary_to_compressed_c.cpp. */ - public ImFont addFontFromMemoryCompressedTTF(final byte[] compressedFontData, final float sizePixels) { - return new ImFont(nAddFontFromMemoryCompressedTTF(compressedFontData, compressedFontData.length, sizePixels)); - } - - private native long nAddFontFromMemoryCompressedTTF(byte[] compressedFontData, int fontSize, float sizePixels); /* - return (intptr_t)IM_FONT_ATLAS->AddFontFromMemoryCompressedTTF(&compressedFontData[0], fontSize, sizePixels); - */ + @BindingMethod + public native ImFont AddFontFromMemoryCompressedTTF(byte[] compressedFontData, @ArgValue(callValue = "(int)env->GetArrayLength(obj_compressedFontData)") Void compressedFontSize, float sizePixels, @OptArg(callValue = "NULL") ImFontConfig imFontConfig, @OptArg @ArgValue(callPrefix = "(ImWchar*)") short[] glyphRanges); /** * 'compressed_font_data' still owned by caller. Compress with binary_to_compressed_c.cpp. */ - public ImFont addFontFromMemoryCompressedTTF(final byte[] compressedFontData, final float sizePixels, final ImFontConfig imFontConfig) { - return new ImFont(nAddFontFromMemoryCompressedTTF(compressedFontData, compressedFontData.length, sizePixels, imFontConfig.ptr)); - } - - private native long nAddFontFromMemoryCompressedTTF(byte[] compressedFontData, int fontSize, float sizePixels, long imFontConfigPtr); /* - return (intptr_t)IM_FONT_ATLAS->AddFontFromMemoryCompressedTTF(&compressedFontData[0], fontSize, sizePixels, (ImFontConfig*)imFontConfigPtr); - */ - - /** - * 'compressed_font_data' still owned by caller. Compress with binary_to_compressed_c.cpp. - */ - public ImFont addFontFromMemoryCompressedTTF(final byte[] compressedFontData, final float sizePixels, final short[] glyphRanges) { - return new ImFont(nAddFontFromMemoryCompressedTTF(compressedFontData, compressedFontData.length, sizePixels, glyphRanges)); - } - - private native long nAddFontFromMemoryCompressedTTF(byte[] compressedFontData, int fontSize, float sizePixels, short[] glyphRanges); /* - return (intptr_t)IM_FONT_ATLAS->AddFontFromMemoryCompressedTTF(&compressedFontData[0], fontSize, sizePixels, NULL, (ImWchar*)&glyphRanges[0]); - */ - - /** - * 'compressed_font_data' still owned by caller. Compress with binary_to_compressed_c.cpp. - */ - public ImFont addFontFromMemoryCompressedTTF(final byte[] compressedFontData, final float sizePixels, final ImFontConfig imFontConfig, final short[] glyphRanges) { - return new ImFont(nAddFontFromMemoryCompressedTTF(compressedFontData, compressedFontData.length, sizePixels, imFontConfig.ptr, glyphRanges)); - } - - private native long nAddFontFromMemoryCompressedTTF(byte[] compressedFontData, int fontSize, float sizePixels, long imFontConfigPtr, short[] glyphRanges); /* - return (intptr_t)IM_FONT_ATLAS->AddFontFromMemoryCompressedTTF(&compressedFontData[0], fontSize, sizePixels, (ImFontConfig*)imFontConfigPtr, (ImWchar*)&glyphRanges[0]); - */ + @BindingMethod + public native ImFont AddFontFromMemoryCompressedTTF(byte[] compressedFontData, int compressedFontSize, float sizePixels, @OptArg(callValue = "NULL") ImFontConfig imFontConfig, @OptArg @ArgValue(callPrefix = "(ImWchar*)") short[] glyphRanges); /** * 'compressed_font_data_base85' still owned by caller. Compress with binary_to_compressed_c.cpp with -base85 parameter. */ - public ImFont addFontFromMemoryCompressedBase85TTF(final String compressedFontDataBase85, final float sizePixels) { - return new ImFont(nAddFontFromMemoryCompressedBase85TTF(compressedFontDataBase85, sizePixels)); - } - - private native long nAddFontFromMemoryCompressedBase85TTF(String compressedFontDataBase85, float sizePixels); /* - return (intptr_t)IM_FONT_ATLAS->AddFontFromMemoryCompressedBase85TTF(compressedFontDataBase85, sizePixels); - */ - - /** - * 'compressed_font_data' still owned by caller. Compress with binary_to_compressed_c.cpp. - */ - public ImFont addFontFromMemoryCompressedBase85TTF(final String compressedFontDataBase85, final float sizePixels, final ImFontConfig imFontConfig) { - return new ImFont(nAddFontFromMemoryCompressedBase85TTF(compressedFontDataBase85, sizePixels, imFontConfig.ptr)); - } - - private native long nAddFontFromMemoryCompressedBase85TTF(String compressedFontDataBase85, float sizePixels, long imFontConfigPtr); /* - return (intptr_t)IM_FONT_ATLAS->AddFontFromMemoryCompressedBase85TTF(compressedFontDataBase85, sizePixels, (ImFontConfig*)imFontConfigPtr); - */ - - /** - * 'compressed_font_data_base85' still owned by caller. Compress with binary_to_compressed_c.cpp with -base85 parameter. - */ - public ImFont addFontFromMemoryCompressedBase85TTF(final String compressedFontDataBase85, final float sizePixels, final short[] glyphRanges) { - return new ImFont(nAddFontFromMemoryCompressedBase85TTF(compressedFontDataBase85, sizePixels, glyphRanges)); - } - - private native long nAddFontFromMemoryCompressedBase85TTF(String compressedFontDataBase85, float sizePixels, short[] glyphRanges); /* - return (intptr_t)IM_FONT_ATLAS->AddFontFromMemoryCompressedBase85TTF(compressedFontDataBase85, sizePixels, NULL, (ImWchar*)&glyphRanges[0]); - */ - - /** - * 'compressed_font_data_base85' still owned by caller. Compress with binary_to_compressed_c.cpp with -base85 parameter. - */ - public ImFont addFontFromMemoryCompressedBase85TTF(final String compressedFontDataBase85, final float sizePixels, final ImFontConfig imFontConfig, final short[] glyphRanges) { - return new ImFont(nAddFontFromMemoryCompressedBase85TTF(compressedFontDataBase85, sizePixels, imFontConfig.ptr, glyphRanges)); - } - - private native long nAddFontFromMemoryCompressedBase85TTF(String compressedFontDataBase85, float sizePixels, long imFontConfigPtr, short[] glyphRanges); /* - return (intptr_t)IM_FONT_ATLAS->AddFontFromMemoryCompressedBase85TTF(compressedFontDataBase85, sizePixels, (ImFontConfig*)imFontConfigPtr, (ImWchar*)&glyphRanges[0]); - */ + @BindingMethod + public native ImFont AddFontFromMemoryCompressedBase85TTF(String compressedFontDataBase85, float sizePixels, ImFontConfig fontConfig, @OptArg @ArgValue(callPrefix = "(ImWchar*)") short[] glyphRanges); /** * Clear input data (all ImFontConfig structures including sizes, TTF data, glyph ranges, etc.) = all the data used to build the texture and fonts. */ - public native void clearInputData(); /* - IM_FONT_ATLAS->ClearInputData(); - */ + @BindingMethod + public native void ClearInputData(); /** * Clear output texture data (CPU side). Saves RAM once the texture has been copied to graphics memory. */ - public native void clearTexData(); /* - IM_FONT_ATLAS->ClearTexData(); - */ + @BindingMethod + public native void ClearTexData(); /** * Clear output font data (glyphs storage, UV coordinates). */ - public native void clearFonts(); /* - IM_FONT_ATLAS->ClearFonts(); - */ + @BindingMethod + public native void ClearFonts(); /** * Clear all input and output. */ - public native void clear(); /* - IM_FONT_ATLAS->Clear(); - */ + @BindingMethod + public native void Clear(); // Build atlas, retrieve pixel data. // User is in charge of copying the pixels into graphics memory (e.g. create a texture with your engine). Then store your texture handle with SetTexID(). @@ -291,9 +139,8 @@ public final class ImFontAtlas extends ImGuiStructDestroyable { /** * Build pixels data. This is called automatically for you by the GetTexData*** functions. */ - public native boolean build(); /* - return IM_FONT_ATLAS->Build(); - */ + @BindingMethod + public native boolean Build(); /** * 1 byte-per-pixel @@ -316,19 +163,15 @@ public final class ImFontAtlas extends ImGuiStructDestroyable { } else { alpha8pixels.clear(); } - return alpha8pixels; } private native void getTexDataAsAlpha8(int[] outWidth, int[] outHeight, int[] outBytesPerPixel); /* unsigned char* pixels; - IM_FONT_ATLAS->GetTexDataAsAlpha8(&pixels, &outWidth[0], &outHeight[0], &outBytesPerPixel[0]); - + THIS->GetTexDataAsAlpha8(&pixels, &outWidth[0], &outHeight[0], &outBytesPerPixel[0]); int size = outWidth[0] * outHeight[0] * outBytesPerPixel[0]; - jobject jBuffer = env->CallObjectMethod(object, jImFontAtlasCreateAlpha8PixelsMID, size); char* buffer = (char*)env->GetDirectBufferAddress(jBuffer); - memcpy(buffer, pixels, size); */ @@ -353,29 +196,27 @@ public final class ImFontAtlas extends ImGuiStructDestroyable { } else { rgba32pixels.clear(); } - return rgba32pixels; } private native void nGetTexDataAsRGBA32(int[] outWidth, int[] outHeight, int[] outBytesPerPixel); /* unsigned char* pixels; - IM_FONT_ATLAS->GetTexDataAsRGBA32(&pixels, &outWidth[0], &outHeight[0], &outBytesPerPixel[0]); - + THIS->GetTexDataAsRGBA32(&pixels, &outWidth[0], &outHeight[0], &outBytesPerPixel[0]); int size = outWidth[0] * outHeight[0] * outBytesPerPixel[0]; - jobject jBuffer = env->CallObjectMethod(object, jImFontAtlasCreateRgba32PixelsMID, size); char* buffer = (char*)env->GetDirectBufferAddress(jBuffer); - memcpy(buffer, pixels, size); */ - public native boolean isBuilt(); /* - return IM_FONT_ATLAS->IsBuilt(); - */ + @BindingMethod + public native boolean IsBuilt(); - public native void setTexID(int textureID); /* - IM_FONT_ATLAS->SetTexID((ImTextureID)(intptr_t)textureID); - */ + /** + * User data to refer to the texture once it has been uploaded to user's graphic systems. + * It is passed back to you during rendering via the ImDrawCmd structure. + */ + @BindingMethod + public native void SetTexID(@ArgValue(callPrefix = "(ImTextureID)(intptr_t)") int textureID); //------------------------------------------- // Glyph Ranges @@ -400,58 +241,62 @@ public final class ImFontAtlas extends ImGuiStructDestroyable { * Basic Latin, Extended Latin */ public native short[] getGlyphRangesDefault(); /* - RETURN_GLYPH_2_SHORT(IM_FONT_ATLAS->GetGlyphRangesDefault()); + RETURN_GLYPH_2_SHORT(THIS->GetGlyphRangesDefault()); */ /** * Default + Korean characters */ public native short[] getGlyphRangesKorean(); /* - RETURN_GLYPH_2_SHORT(IM_FONT_ATLAS->GetGlyphRangesKorean()); + RETURN_GLYPH_2_SHORT(THIS->GetGlyphRangesKorean()); */ /** * Default + Hiragana, Katakana, Half-Width, Selection of 2999 Ideographs */ public native short[] getGlyphRangesJapanese(); /* - RETURN_GLYPH_2_SHORT(IM_FONT_ATLAS->GetGlyphRangesJapanese()); + RETURN_GLYPH_2_SHORT(THIS->GetGlyphRangesJapanese()); */ /** * Default + Half-Width + Japanese Hiragana/Katakana + full set of about 21000 CJK Unified Ideographs */ public native short[] getGlyphRangesChineseFull(); /* - RETURN_GLYPH_2_SHORT(IM_FONT_ATLAS->GetGlyphRangesChineseFull()); + RETURN_GLYPH_2_SHORT(THIS->GetGlyphRangesChineseFull()); */ /** * Default + Half-Width + Japanese Hiragana/Katakana + set of 2500 CJK Unified Ideographs for common simplified Chinese */ public native short[] getGlyphRangesChineseSimplifiedCommon(); /* - RETURN_GLYPH_2_SHORT(IM_FONT_ATLAS->GetGlyphRangesChineseSimplifiedCommon()); + RETURN_GLYPH_2_SHORT(THIS->GetGlyphRangesChineseSimplifiedCommon()); */ /** * Default + about 400 Cyrillic characters */ public native short[] getGlyphRangesCyrillic(); /* - RETURN_GLYPH_2_SHORT(IM_FONT_ATLAS->GetGlyphRangesCyrillic()); + RETURN_GLYPH_2_SHORT(THIS->GetGlyphRangesCyrillic()); */ /** * Default + Thai characters */ public native short[] getGlyphRangesThai(); /* - RETURN_GLYPH_2_SHORT(IM_FONT_ATLAS->GetGlyphRangesThai()); + RETURN_GLYPH_2_SHORT(THIS->GetGlyphRangesThai()); */ /** * Default + Vietnamese characters */ public native short[] getGlyphRangesVietnamese(); /* - RETURN_GLYPH_2_SHORT(IM_FONT_ATLAS->GetGlyphRangesVietnamese()); + RETURN_GLYPH_2_SHORT(THIS->GetGlyphRangesVietnamese()); */ + /*JNI + #undef RETURN_GLYPH_2_SHORT + */ + //------------------------------------------- // [BETA] Custom Rectangles/Glyphs API //------------------------------------------- @@ -463,28 +308,14 @@ public final class ImFontAtlas extends ImGuiStructDestroyable { // Read docs/FONTS.md for more details about using colorful icons. // Note: this API may be redesigned later in order to support multi-monitor varying DPI settings. - public native int addCustomRectRegular(int width, int height); /* - return IM_FONT_ATLAS->AddCustomRectRegular(width, height); - */ - - public int addCustomRectFontGlyph(final ImFont imFont, final short id, final int width, final int height, final float advanceX) { - return nAddCustomRectFontGlyph(imFont.ptr, id, width, height, advanceX); - } - - private native int nAddCustomRectFontGlyph(long imFontPtr, short id, int width, int height, float advanceX); /* - return IM_FONT_ATLAS->AddCustomRectFontGlyph((ImFont*)imFontPtr, id, width, height, advanceX); - */ + @BindingMethod + public native int AddCustomRectRegular(int width, int height); /** * Id needs to be {@code <} 0x110000 to register a rectangle to map into a specific font. */ - public int addCustomRectFontGlyph(final ImFont imFont, final short id, final int width, final int height, final float advanceX, final float offsetX, final float offsetY) { - return nAddCustomRectFontGlyph(imFont.ptr, id, width, height, advanceX, offsetX, offsetY); - } - - private native int nAddCustomRectFontGlyph(long imFontPtr, short id, int width, int height, float advanceX, float offsetX, float offsetY); /* - return IM_FONT_ATLAS->AddCustomRectFontGlyph((ImFont*)imFontPtr, id, width, height, advanceX, ImVec2(offsetX, offsetY)); - */ + @BindingMethod + public native int AddCustomRectFontGlyph(ImFont imFont, @ArgValue(callPrefix = "(ImWchar)") short id, int width, int height, float advanceX, @OptArg ImVec2 offset); // TODO GetCustomRectByIndex @@ -492,92 +323,35 @@ public final class ImFontAtlas extends ImGuiStructDestroyable { // Members //------------------------------------------- - /** - * Marked as Locked by ImGui::NewFrame() so attempt to modify the atlas will assert. - */ - public native boolean getLocked(); /* - return IM_FONT_ATLAS->Locked; - */ - - /** - * Marked as Locked by ImGui::NewFrame() so attempt to modify the atlas will assert. - */ - public native void setLocked(boolean locked); /* - IM_FONT_ATLAS->Locked = locked; - */ - /** * Build flags (see {@link imgui.flag.ImFontAtlasFlags}) */ - public native int getFlags(); /* - return IM_FONT_ATLAS->Flags; - */ + @BindingField(isFlag = true) + public int Flags; - /** - * Build flags (see {@link imgui.flag.ImFontAtlasFlags}) - */ - public native void setFlags(int imFontAtlasFlags); /* - IM_FONT_ATLAS->Flags = imFontAtlasFlags; - */ - - /** - * Build flags (see {@link imgui.flag.ImFontAtlasFlags}) - */ - public void addFlags(final int flags) { - setFlags(getFlags() | flags); - } - - /** - * Build flags (see {@link imgui.flag.ImFontAtlasFlags}) - */ - public void removeFlags(final int flags) { - setFlags(getFlags() & ~(flags)); - } - - /** - * Build flags (see {@link imgui.flag.ImFontAtlasFlags}) - */ - public boolean hasFlags(final int flags) { - return (getFlags() & flags) != 0; - } - - /** - * User data to refer to the texture once it has been uploaded to user's graphic systems. - * It is passed back to you during rendering via the ImDrawCmd structure. - */ - public native int getTexID(); /* - return (int)(intptr_t)(void*)IM_FONT_ATLAS->TexID; - */ + // 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. */ - public native int getTexDesiredWidth(); /* - return IM_FONT_ATLAS->TexDesiredWidth; - */ - - /** - * 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. - */ - public native void setTexDesiredWidth(int texDesiredWidth); /* - IM_FONT_ATLAS->TexDesiredWidth = texDesiredWidth; - */ + @BindingField + public int TexDesiredWidth; /** * Padding between glyphs within texture in pixels. Defaults to 1. * If your rendering method doesn't rely on bilinear filtering you may set this to 0. */ - public native int getTexGlyphPadding(); /* - return IM_FONT_ATLAS->TexGlyphPadding; - */ + @BindingField + public int TexGlyphPadding; /** - * Padding between glyphs within texture in pixels. Defaults to 1. - * If your rendering method doesn't rely on bilinear filtering you may set this to 0. + * Marked as Locked by ImGui::NewFrame() so attempt to modify the atlas will assert. + */ + @BindingField + public boolean Locked; + + /*JNI + #undef THIS */ - public native void setTexGlyphPadding(int texGlyphPadding); /* - IM_FONT_ATLAS->TexGlyphPadding = texGlyphPadding; - */ } diff --git a/imgui-binding/src/main/java/imgui/ImFontConfig.java b/imgui-binding/src/main/java/imgui/ImFontConfig.java index db9285d..8ad5155 100644 --- a/imgui-binding/src/main/java/imgui/ImFontConfig.java +++ b/imgui-binding/src/main/java/imgui/ImFontConfig.java @@ -1,348 +1,133 @@ package imgui; import imgui.binding.ImGuiStructDestroyable; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingSource; +@BindingSource public final class ImFontConfig extends ImGuiStructDestroyable { - private short[] glyphRanges; - - /** - * This class will create a native structure. - * Call {@link #destroy()} method to manually free used memory. - */ public ImFontConfig() { super(); - setFontDataOwnedByAtlas(false); // Read method javadoc } ImFontConfig(final long ptr) { super(ptr); - setFontDataOwnedByAtlas(false); // Read method javadoc } - /*JNI - #include "_common.h" - - #define IM_FONT_CONFIG ((ImFontConfig*)STRUCT_PTR) - */ - @Override protected long create() { return nCreate(); } + /*JNI + #include "_common.h" + #define THIS ((ImFontConfig*)STRUCT_PTR) + */ + private native long nCreate(); /* - return (intptr_t)(new ImFontConfig()); + ImFontConfig* cfg = new ImFontConfig(); + cfg->FontDataOwnedByAtlas = false; + return (intptr_t)cfg; */ - /** - * TTF/OTF data - */ - public native byte[] getFontData(); /* - int size = IM_FONT_CONFIG->FontDataSize; - jbyteArray jBytes = env->NewByteArray(size); - env->SetByteArrayRegion(jBytes, 0, size, (jbyte*)IM_FONT_CONFIG->FontData); - return jBytes; - */ - - /** - * TTF/OTF data - */ - public native void setFontData(byte[] fontData); /* - IM_FONT_CONFIG->FontData = &fontData[0]; - */ + // TODO: FontData /** * TTF/OTF data size */ - public native int getFontDataSize(); /* - return IM_FONT_CONFIG->FontDataSize; - */ - - /** - * TTF/OTF data size - */ - public native void setFontDataSize(int fontDataSize); /* - IM_FONT_CONFIG->FontDataSize = fontDataSize; - */ + @BindingField + public int FontDataSize; /** * TTF/OTF data ownership taken by the container ImFontAtlas (will delete memory itself). */ - public native boolean getFontDataOwnedByAtlas(); /* - return IM_FONT_CONFIG->FontDataOwnedByAtlas; - */ - - /** - * TTF/OTF data ownership taken by the container ImFontAtlas (will delete memory itself). - *

- * BINDING NOTICE: By default binding will set this value to false. - * If this is not done, Dear ImGui will try to free memory allocated by JVM to store fonts data while running {@link ImGui#destroyContext()}. - * This will result into a native exception, since JVM by itself controls it's own resources. - */ - public native void setFontDataOwnedByAtlas(boolean isFontDataOwnedByAtlas); /* - IM_FONT_CONFIG->FontDataOwnedByAtlas = isFontDataOwnedByAtlas; - */ + @BindingField + public boolean FontDataOwnedByAtlas; /** * Index of font within TTF/OTF file */ - public native int getFontNo(); /* - return IM_FONT_CONFIG->FontNo; - */ - - /** - * Index of font within TTF/OTF file - */ - public native void setFontNo(int fontNo); /* - IM_FONT_CONFIG->FontNo = fontNo; - */ + @BindingField + public int FontNo; /** * Size in pixels for rasterizer (more or less maps to the resulting font height). */ - public native float getSizePixels(); /* - return IM_FONT_CONFIG->SizePixels; - */ - - /** - * Size in pixels for rasterizer (more or less maps to the resulting font height). - */ - public native void setSizePixels(float sizePixels); /* - IM_FONT_CONFIG->SizePixels = sizePixels; - */ + @BindingField + public float SizePixels; /** * Rasterize at higher quality for sub-pixel positioning. * Note the difference between 2 and 3 is minimal so you can reduce this to 2 to save memory. * Read https://github.com/nothings/stb/blob/master/tests/oversample/README.md for details. */ - public native int getOversampleH(); /* - return IM_FONT_CONFIG->OversampleH; - */ - - /** - * Rasterize at higher quality for sub-pixel positioning. - * Note the difference between 2 and 3 is minimal so you can reduce this to 2 to save memory. - * Read https://github.com/nothings/stb/blob/master/tests/oversample/README.md for details. - */ - public native void setOversampleH(int oversampleH); /* - IM_FONT_CONFIG->OversampleH = oversampleH; - */ + @BindingField + public int OversampleH; /** * Rasterize at higher quality for sub-pixel positioning. * This is not really useful as we don't use sub-pixel positions on the Y axis. */ - public native int getOversampleV(); /* - return IM_FONT_CONFIG->OversampleV; - */ - - /** - * Rasterize at higher quality for sub-pixel positioning. - * This is not really useful as we don't use sub-pixel positions on the Y axis. - */ - public native void setOversampleV(int oversampleV); /* - IM_FONT_CONFIG->OversampleV = oversampleV; - */ + @BindingField + public int OversampleV; /** * Align every glyph to pixel boundary. Useful e.g. if you are merging a non-pixel aligned font with the default font. * If enabled, you can set OversampleH/V to 1. */ - public native boolean getPixelSnapH(); /* - return IM_FONT_CONFIG->PixelSnapH; - */ - - /** - * Align every glyph to pixel boundary. Useful e.g. if you are merging a non-pixel aligned font with the default font. - * If enabled, you can set OversampleH/V to 1. - */ - public native void setPixelSnapH(boolean isPixelSnapH); /* - IM_FONT_CONFIG->PixelSnapH = isPixelSnapH; - */ + @BindingField + public boolean PixelSnapH; /** * Extra spacing (in pixels) between glyphs. Only X axis is supported for now. */ - public ImVec2 getGlyphExtraSpacing() { - final ImVec2 value = new ImVec2(); - getGlyphExtraSpacing(value); - return value; - } - - /** - * Extra spacing (in pixels) between glyphs. Only X axis is supported for now. - */ - public native void getGlyphExtraSpacing(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IM_FONT_CONFIG->GlyphExtraSpacing, dstImVec2); - */ - - /** - * Extra spacing (in pixels) between glyphs. Only X axis is supported for now. - */ - public native float getGlyphExtraSpacingX(); /* - return IM_FONT_CONFIG->GlyphExtraSpacing.x; - */ - - /** - * Extra spacing (in pixels) between glyphs. Only X axis is supported for now. - */ - public native float getGlyphExtraSpacingY(); /* - return IM_FONT_CONFIG->GlyphExtraSpacing.y; - */ - - /** - * Extra spacing (in pixels) between glyphs. Only X axis is supported for now. - */ - public native void setGlyphExtraSpacing(float x, float y); /* - IM_FONT_CONFIG->GlyphExtraSpacing.x = x; - IM_FONT_CONFIG->GlyphExtraSpacing.y = y; - */ + @BindingField + public ImVec2 GlyphExtraSpacing; /** * Offset all glyphs from this font input. */ - public ImVec2 getGlyphOffset() { - final ImVec2 value = new ImVec2(); - getGlyphOffset(value); - return value; - } + @BindingField + public ImVec2 GlyphOffset; - /** - * Offset all glyphs from this font input. - */ - public native void getGlyphOffset(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IM_FONT_CONFIG->GlyphOffset, dstImVec2); - */ - - /** - * Offset all glyphs from this font input. - */ - public native float getGlyphOffsetX(); /* - return IM_FONT_CONFIG->GlyphOffset.x; - */ - - /** - * Offset all glyphs from this font input. - */ - public native float getGlyphOffsetY(); /* - return IM_FONT_CONFIG->GlyphOffset.y; - */ - - /** - * Offset all glyphs from this font input. - */ - public native void setGlyphOffset(float x, float y); /* - IM_FONT_CONFIG->GlyphOffset.x = x; - IM_FONT_CONFIG->GlyphOffset.y = y; - */ - - /** - * Pointer to a user-provided list of Unicode range (2 value per range, values are inclusive, zero-terminated list). - * THE ARRAY DATA NEEDS TO PERSIST AS LONG AS THE FONT IS ALIVE. - */ - public short[] getGlyphRanges() { - return glyphRanges; - } - - /** - * Pointer to a user-provided list of Unicode range (2 value per range, values are inclusive, zero-terminated list). - * THE ARRAY DATA NEEDS TO PERSIST AS LONG AS THE FONT IS ALIVE. - */ - public void setGlyphRanges(final short[] glyphRanges) { - this.glyphRanges = glyphRanges; - nSetGlyphRanges(glyphRanges); - } - - private native void nSetGlyphRanges(short[] glyphRanges); /* - IM_FONT_CONFIG->GlyphRanges = glyphRanges != NULL ? (ImWchar*)&glyphRanges[0] : NULL; - */ + // TODO: GlyphRanges /** * Minimum AdvanceX for glyphs, set Min to align font icons, set both Min/Max to enforce mono-space font */ - public native float getGlyphMinAdvanceX(); /* - return IM_FONT_CONFIG->GlyphMinAdvanceX; - */ - - /** - * Minimum AdvanceX for glyphs, set Min to align font icons, set both Min/Max to enforce mono-space font - */ - public native void setGlyphMinAdvanceX(float glyphMinAdvanceX); /* - IM_FONT_CONFIG->GlyphMinAdvanceX = glyphMinAdvanceX; - */ + @BindingField + public float GlyphMinAdvanceX; /** * Maximum AdvanceX for glyphs */ - public native float getGlyphMaxAdvanceX(); /* - return IM_FONT_CONFIG->GlyphMaxAdvanceX; - */ - - /** - * Maximum AdvanceX for glyphs - */ - public native void setGlyphMaxAdvanceX(float glyphMaxAdvanceX); /* - IM_FONT_CONFIG->GlyphMaxAdvanceX = glyphMaxAdvanceX; - */ + @BindingField + public float GlyphMaxAdvanceX; /** * Merge into previous ImFont, so you can combine multiple inputs font into one ImFont (e.g. ASCII font + icons + Japanese glyphs). * You may want to use GlyphOffset.y when merge font of different heights. */ - public native boolean getMergeMode(); /* - return IM_FONT_CONFIG->MergeMode; - */ - - /** - * Merge into previous ImFont, so you can combine multiple inputs font into one ImFont (e.g. ASCII font + icons + Japanese glyphs). - * You may want to use GlyphOffset.y when merge font of different heights. - */ - public native void setMergeMode(boolean mergeMode); /* - IM_FONT_CONFIG->MergeMode = mergeMode; - */ + @BindingField + public boolean MergeMode; /** * Settings for custom font builder. THIS IS BUILDER IMPLEMENTATION DEPENDENT. Leave as zero if unsure. */ - public native int getFontBuilderFlags(); /* - return IM_FONT_CONFIG->FontBuilderFlags; - */ - - /** - * Settings for custom font builder. THIS IS BUILDER IMPLEMENTATION DEPENDENT. Leave as zero if unsure. - */ - public native void setFontBuilderFlags(int fontBuilderFlags); /* - IM_FONT_CONFIG->FontBuilderFlags = (unsigned int)fontBuilderFlags; - */ + @BindingField(isFlag = true) + public int FontBuilderFlags; /** * Brighten ({@code >}1.0f) or darken ({@code <}1.0f) font output. Brightening small fonts may be a good workaround to make them more readable. */ - public native float getRasterizerMultiply(); /* - return IM_FONT_CONFIG->RasterizerMultiply; - */ - - /** - * Brighten ({@code >}1.0f) or darken ({@code <}1.0f) font output. Brightening small fonts may be a good workaround to make them more readable. - */ - public native void setRasterizerMultiply(float rasterizerMultiply); /* - IM_FONT_CONFIG->RasterizerMultiply = rasterizerMultiply; - */ + @BindingField + public float RasterizerMultiply; /** * Explicitly specify unicode codepoint of ellipsis character. When fonts are being merged first specified ellipsis will be used. */ - public native short getEllipsisChar(); /* - return (short)IM_FONT_CONFIG->EllipsisChar; - */ - - /** - * Explicitly specify unicode codepoint of ellipsis character. When fonts are being merged first specified ellipsis will be used. - */ - public native void setEllipsisChar(int ellipsisChar); /* - IM_FONT_CONFIG->EllipsisChar = (ImWchar)ellipsisChar; - */ + @BindingField + public short EllipsisChar; // [Internal] @@ -350,6 +135,13 @@ public final class ImFontConfig extends ImGuiStructDestroyable { * Name (strictly to ease debugging) */ public native void setName(String name); /* - strcpy(IM_FONT_CONFIG->Name, name); + strcpy(THIS->Name, name); */ + + @BindingField + public ImFont DstFont; + + /*JNI + #undef THIS + */ } diff --git a/imgui-binding/src/main/java/imgui/ImFontGlyph.java b/imgui-binding/src/main/java/imgui/ImFontGlyph.java index 3b099b4..6c58196 100644 --- a/imgui-binding/src/main/java/imgui/ImFontGlyph.java +++ b/imgui-binding/src/main/java/imgui/ImFontGlyph.java @@ -1,11 +1,14 @@ package imgui; import imgui.binding.ImGuiStructDestroyable; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingSource; /** * Hold rendering data for one glyph. * (Note: some language parsers may fail to convert the 31+1 bitfield members, in this case maybe drop store a single u32 or we can rework this) */ +@BindingSource public final class ImFontGlyph extends ImGuiStructDestroyable { public ImFontGlyph() { } @@ -14,17 +17,16 @@ public final class ImFontGlyph extends ImGuiStructDestroyable { super(ptr); } - /*JNI - #include "_common.h" - - #define IM_FONT_GLYPH ((ImFontGlyph*)STRUCT_PTR) - */ - @Override protected long create() { return nCreate(); } + /*JNI + #include "_common.h" + #define THIS ((ImFontGlyph*)STRUCT_PTR) + */ + private native long nCreate(); /* return (intptr_t)(new ImFontGlyph()); */ @@ -32,168 +34,76 @@ public final class ImFontGlyph extends ImGuiStructDestroyable { /** * Flag to indicate glyph is colored and should generally ignore tinting (make it usable with no shift on little-endian as this is used in loops). */ - public native int getColored(); /* - return (unsigned int)IM_FONT_GLYPH->Colored; - */ - - /** - * Flag to indicate glyph is colored and should generally ignore tinting (make it usable with no shift on little-endian as this is used in loops). - */ - public native void setColored(int colored); /* - IM_FONT_GLYPH->Colored = (unsigned int)colored; - */ + @BindingField + public int Colored; /** * Flag to indicate glyph has no visible pixels (e.g. space). Allow early out when rendering. */ - public native int getVisible(); /* - return (unsigned int)IM_FONT_GLYPH->Visible; - */ - - /** - * Flag to indicate glyph has no visible pixels (e.g. space). Allow early out when rendering. - */ - public native void setVisible(int visible); /* - IM_FONT_GLYPH->Visible = (unsigned int)visible; - */ + @BindingField + public int Visible; /** * 0x0000..0xFFFF */ - public native int getCodepoint(); /* - return (unsigned int)IM_FONT_GLYPH->Codepoint; - */ - - /** - * 0x0000..0xFFFF - */ - public native void setCodepoint(int codepoint); /* - IM_FONT_GLYPH->Codepoint = (unsigned int)codepoint; - */ + @BindingField + public int Codepoint; /** * Distance to next character (= data from font + ImFontConfig::GlyphExtraSpacing.x baked in) */ - public native float getAdvanceX(); /* - return IM_FONT_GLYPH->AdvanceX; - */ - - /** - * Distance to next character (= data from font + ImFontConfig::GlyphExtraSpacing.x baked in) - */ - public native void setAdvanceX(float advanceX); /* - IM_FONT_GLYPH->AdvanceX = advanceX; - */ + @BindingField + public float AdvanceX; /** * Glyph corners */ - public native float getX0(); /* - return IM_FONT_GLYPH->X0; - */ + @BindingField + public float X0; /** * Glyph corners */ - public native void setX0(float x0); /* - IM_FONT_GLYPH->X0 = x0; - */ + @BindingField + public float Y0; /** * Glyph corners */ - public native float getY0(); /* - return IM_FONT_GLYPH->Y0; - */ + @BindingField + public float X1; /** * Glyph corners */ - public native void setY0(float y0); /* - IM_FONT_GLYPH->Y0 = y0; - */ - - /** - * Glyph corners - */ - public native float getX1(); /* - return IM_FONT_GLYPH->X1; - */ - - /** - * Glyph corners - */ - public native void setX1(float x1); /* - IM_FONT_GLYPH->X1 = x1; - */ - - /** - * Glyph corners - */ - public native float getY1(); /* - return IM_FONT_GLYPH->Y1; - */ - - /** - * Glyph corners - */ - public native void setY1(float y1); /* - IM_FONT_GLYPH->Y1 = y1; - */ + @BindingField + public float Y1; /** * Texture coordinates */ - public native float getU0(); /* - return IM_FONT_GLYPH->U0; - */ + @BindingField + public float U0; /** * Texture coordinates */ - public native void setU0(float u0); /* - IM_FONT_GLYPH->U0 = u0; - */ + @BindingField + public float V0; /** * Texture coordinates */ - public native float getV0(); /* - return IM_FONT_GLYPH->V0; - */ + @BindingField + public float U1; /** * Texture coordinates */ - public native void setV0(float v0); /* - IM_FONT_GLYPH->V0 = v0; - */ + @BindingField + public float V1; - /** - * Texture coordinates + /*JNI + #undef THIS */ - public native float getU1(); /* - return IM_FONT_GLYPH->U1; - */ - - /** - * Texture coordinates - */ - public native void setU1(float u1); /* - IM_FONT_GLYPH->U1 = u1; - */ - - /** - * Texture coordinates - */ - public native float getV1(); /* - return IM_FONT_GLYPH->V1; - */ - - /** - * Texture coordinates - */ - public native void setV1(float v1); /* - IM_FONT_GLYPH->V1 = v1; - */ } diff --git a/imgui-binding/src/main/java/imgui/ImGui.java b/imgui-binding/src/main/java/imgui/ImGui.java index 20b0312..cb4f4a3 100644 --- a/imgui-binding/src/main/java/imgui/ImGui.java +++ b/imgui-binding/src/main/java/imgui/ImGui.java @@ -1,8 +1,12 @@ package imgui; import imgui.assertion.ImAssertCallback; +import imgui.binding.annotation.ArgValue; +import imgui.binding.annotation.BindingMethod; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.OptArg; +import imgui.binding.annotation.ReturnValue; import imgui.callback.ImGuiInputTextCallback; -import imgui.flag.ImGuiCond; import imgui.flag.ImGuiDragDropFlags; import imgui.flag.ImGuiInputTextFlags; import imgui.internal.ImGuiContext; @@ -10,8 +14,6 @@ import imgui.type.ImBoolean; import imgui.type.ImDouble; import imgui.type.ImFloat; import imgui.type.ImInt; -import imgui.type.ImLong; -import imgui.type.ImShort; import imgui.type.ImString; import java.io.IOException; @@ -26,27 +28,14 @@ import java.nio.file.StandardCopyOption; import java.util.Optional; import java.util.Properties; +@BindingSource +@SuppressWarnings({"unused", "UnusedReturnValue"}) public class ImGui { private static final String LIB_PATH_PROP = "imgui.library.path"; private static final String LIB_NAME_PROP = "imgui.library.name"; private static final String LIB_NAME_DEFAULT = "imgui-java64"; private static final String LIB_TMP_DIR_PREFIX = "imgui-java-natives"; - private static final ImGuiContext IMGUI_CONTEXT; - private static final ImGuiIO IMGUI_IO; - private static final ImDrawList WINDOW_DRAW_LIST; - private static final ImDrawList BACKGROUND_DRAW_LIST; - private static final ImDrawList FOREGROUND_DRAW_LIST; - private static final ImGuiStorage IMGUI_STORAGE; - private static final ImGuiViewport WINDOW_VIEWPORT; - private static final ImGuiViewport FIND_VIEWPORT; - - private static final ImDrawData DRAW_DATA; - private static final ImFont FONT; - private static final ImGuiStyle STYLE; - private static final ImGuiViewport MAIN_VIEWPORT; - private static final ImGuiPlatformIO PLATFORM_IO; - static { final String libPath = System.getProperty(LIB_PATH_PROP); final String libName = System.getProperty(LIB_NAME_PROP, LIB_NAME_DEFAULT); @@ -67,25 +56,11 @@ public class ImGui { } } - IMGUI_CONTEXT = new ImGuiContext(0); - IMGUI_IO = new ImGuiIO(0); - WINDOW_DRAW_LIST = new ImDrawList(0); - BACKGROUND_DRAW_LIST = new ImDrawList(0); - FOREGROUND_DRAW_LIST = new ImDrawList(0); - IMGUI_STORAGE = new ImGuiStorage(0); - WINDOW_VIEWPORT = new ImGuiViewport(0); - FIND_VIEWPORT = new ImGuiViewport(0); - - DRAW_DATA = new ImDrawData(0); - FONT = new ImFont(0); - STYLE = new ImGuiStyle(0); - MAIN_VIEWPORT = new ImGuiViewport(0); - PLATFORM_IO = new ImGuiPlatformIO(0); - nInitJni(); ImFontAtlas.nInit(); ImGuiPlatformIO.init(); nInitInputTextData(); + setAssertCallback(new ImAssertCallback() { @Override public void imAssertCallback(String assertion, int line, String file) { @@ -160,7 +135,7 @@ public class ImGui { /** * For internal usage. * Method is used to initiate static instantiation (loading of the native libraries etc.). - * Otherwise native libraries will be loaded on demand and natively mapped objects won't work. + * Otherwise, native libraries will be loaded on demand and natively mapped objects won't work. */ public static void init() { } @@ -177,289 +152,153 @@ public class ImGui { Jni::InitBindingStruct(env); */ - // Context creation and access - // Each context create its own ImFontAtlas by default. - // You may instance one yourself and pass it to CreateContext() to share a font atlas between imgui contexts. - // None of those functions is reliant on the current context. - // - // BINDING NOTICE: Getting of the current context is not implemented since it's a part of internal API which is not exposed here. - - public static ImGuiContext createContext() { - IMGUI_CONTEXT.ptr = nCreateContext(); - return IMGUI_CONTEXT; - } - - private static native long nCreateContext(); /* - return (intptr_t)ImGui::CreateContext(); - */ - - public static ImGuiContext createContext(ImFontAtlas sharedFontAtlas) { - IMGUI_CONTEXT.ptr = nCreateContext(sharedFontAtlas.ptr); - return IMGUI_CONTEXT; - } - - private static native long nCreateContext(long sharedFontAtlasPtr); /* - return (intptr_t)ImGui::CreateContext((ImFontAtlas*)sharedFontAtlasPtr); - */ - - public static native void destroyContext(); /* - ImGui::DestroyContext(); - */ - - public static void destroyContext(ImGuiContext ctx) { - nDestroyContext(ctx.ptr); - } - - private static native void nDestroyContext(long ptr); /* - ImGui::DestroyContext((ImGuiContext*) ptr); - */ - - public static ImGuiContext getCurrentContext() { - IMGUI_CONTEXT.ptr = nGetCurrentContext(); - return IMGUI_CONTEXT; - } - - private static native long nGetCurrentContext(); /* - return (intptr_t)ImGui::GetCurrentContext(); - */ - - public static void setCurrentContext(ImGuiContext ctx) { - nSetCurrentContext(ctx.ptr); - } - - private static native void nSetCurrentContext(long ptr); /* - ImGui::SetCurrentContext((ImGuiContext*) ptr); - */ - /** * Set a custom assertion callback for ImGui assertions. * Take note: Any custom assertion callback SHOULD NOT throw any exception. * After any callback the application will be terminated, any attempt to bypass this behavior * will result in a EXCEPTION_ACCESS_VIOLATION from within the native layer. + * * @param callback The custom ImGui assertion callback */ public static native void setAssertCallback(ImAssertCallback callback); /* Jni::SetAssertionCallback(callback); */ + // Context creation and access + // Each context create its own ImFontAtlas by default. + // You may instance one yourself and pass it to CreateContext() to share a font atlas between imgui contexts. + // None of those functions is reliant on the current context. + + @BindingMethod + public static native ImGuiContext CreateContext(@OptArg ImFontAtlas sharedFontAtlas); + + @BindingMethod + public static native void DestroyContext(@OptArg ImGuiContext ctx); + + @BindingMethod + public static native ImGuiContext GetCurrentContext(); + + @BindingMethod + public static native void SetCurrentContext(ImGuiContext ctx); + // Main /** * Access the IO structure (mouse/keyboard/gamepad inputs, time, various configuration options/flags). */ - public static ImGuiIO getIO() { - IMGUI_IO.ptr = nGetIO(); - return IMGUI_IO; - } - - private static native long nGetIO(); /* - return (intptr_t)&ImGui::GetIO(); - */ + @BindingMethod + @ReturnValue(isStatic = true, callPrefix = "&") + public static native ImGuiIO GetIO(); /** * Access the Style structure (colors, sizes). Always use PushStyleCol(), PushStyleVar() to modify style mid-frame! */ - public static ImGuiStyle getStyle() { - STYLE.ptr = nGetStyle(); - return STYLE; - } - - private static native long nGetStyle(); /* - return (intptr_t)&ImGui::GetStyle(); - */ + @BindingMethod + @ReturnValue(isStatic = true, callPrefix = "&") + public static native ImGuiStyle GetStyle(); /** * Start a new Dear ImGui frame, you can submit any command from this point until Render()/EndFrame(). */ - public static native void newFrame(); /* - ImGui::NewFrame(); - */ + @BindingMethod + public static native void NewFrame(); /** * Ends the Dear ImGui frame. automatically called by Render(). If you don't need to render data (skipping rendering) you may call EndFrame() without * Render()... but you'll have wasted CPU already! If you don't need to render, better to not create any windows and not call NewFrame() at all! */ - public static native void endFrame(); /* - ImGui::EndFrame(); - */ + @BindingMethod + public static native void EndFrame(); /** * Ends the Dear ImGui frame, finalize the draw data. You can then get call GetDrawData(). */ - public static native void render(); /* - ImGui::Render(); - */ + @BindingMethod + public static native void Render(); /** * Valid after Render() and until the next call to NewFrame(). this is what you have to render. */ - public static ImDrawData getDrawData() { - DRAW_DATA.ptr = nGetDrawData(); - return DRAW_DATA; - } - - private static native long nGetDrawData(); /* - return (intptr_t)ImGui::GetDrawData(); - */ + @BindingMethod + @ReturnValue(isStatic = true) + public static native ImDrawData GetDrawData(); // Demo, Debug, Information /** * Create Demo window. Demonstrate most ImGui features. Call this to learn about the library! */ - public static native void showDemoWindow(); /* - ImGui::ShowDemoWindow(); - */ - - public static void showDemoWindow(ImBoolean pOpen) { - nShowDemoWindow(pOpen.getData()); - } - - private static native void nShowDemoWindow(boolean[] pOpen); /* - ImGui::ShowDemoWindow(&pOpen[0]); - */ + @BindingMethod + public static native void ShowDemoWindow(@OptArg ImBoolean pOpen); /** * Create Metrics/Debugger window. display Dear ImGui internals: windows, draw commands, various internal state, etc. */ - public static void showMetricsWindow(ImBoolean pOpen) { - nShowMetricsWindow(pOpen.getData()); - } - - /** - * Create Metrics/Debugger window. display Dear ImGui internals: windows, draw commands, various internal state, etc. - */ - public static native void showMetricsWindow(); /* - ImGui::ShowMetricsWindow(); - */ - - private static native void nShowMetricsWindow(boolean[] pOpen); /* - ImGui::ShowMetricsWindow(&pOpen[0]); - */ + @BindingMethod + public static native void ShowMetricsWindow(@OptArg ImBoolean pOpen); /** * Create Stack Tool window. hover items with mouse to query information about the source of their unique ID. */ - public static void showStackToolWindow(ImBoolean pOpen) { - nShowMetricsWindow(pOpen.getData()); - } - - /** - * Create Stack Tool window. hover items with mouse to query information about the source of their unique ID. - */ - public static native void showStackToolWindow(); /* - ImGui::ShowStackToolWindow(); - */ - - private static native void nShowStackToolWindow(boolean[] pOpen); /* - ImGui::ShowStackToolWindow(&pOpen[0]); - */ + @BindingMethod + public static native void ShowStackToolWindow(@OptArg ImBoolean pOpen); /** * Create About window. display Dear ImGui version, credits and build/system information. */ - public static native void showAboutWindow(); /* - ImGui::ShowAboutWindow(); - */ - - public static void showAboutWindow(ImBoolean pOpen) { - nShowAboutWindow(pOpen.getData()); - } - - private static native void nShowAboutWindow(boolean[] pOpen); /* - ImGui::ShowAboutWindow(&pOpen[0]); - */ + @BindingMethod + public static native void ShowAboutWindow(@OptArg ImBoolean pOpen); /** * Add style editor block (not a window). * You can pass in a reference ImGuiStyle structure to compare to, revert to and save to (else it uses the default style) */ - public static native void showStyleEditor(); /* - ImGui::ShowStyleEditor(); - */ - - public static void showStyleEditor(ImGuiStyle ref) { - nShowStyleEditor(ref.ptr); - } - - private static native void nShowStyleEditor(long ref); /* - ImGui::ShowStyleEditor((ImGuiStyle*)ref); - */ + @BindingMethod + public static native void ShowStyleEditor(@OptArg ImGuiStyle ref); /** * Add style selector block (not a window), essentially a combo listing the default styles. */ - public static native boolean showStyleSelector(String label); /* - return ImGui::ShowStyleSelector(label); - */ + @BindingMethod + public static native boolean ShowStyleSelector(String label); /** * Add font selector block (not a window), essentially a combo listing the loaded fonts. */ - public static native void showFontSelector(String label); /* - ImGui::ShowFontSelector(label); - */ + @BindingMethod + public static native void ShowFontSelector(String label); /** * Add basic help/info block (not a window): how to manipulate ImGui as a end-user (mouse/keyboard controls). */ - public static native void showUserGuide(); /* - ImGui::ShowUserGuide(); - */ + @BindingMethod + public static native void ShowUserGuide(); /** * Get the compiled version string e.g. "1.80 WIP" (essentially the value for IMGUI_VERSION from the compiled version of imgui.cpp) */ - public static native String getVersion(); /* - return env->NewStringUTF(ImGui::GetVersion()); - */ + @BindingMethod + public static native String GetVersion(); // Styles /** * New, recommended style (default) */ - public static native void styleColorsDark(); /* - ImGui::StyleColorsDark(); - */ - - public static void styleColorsDark(ImGuiStyle style) { - nStyleColorsDark(style.ptr); - } - - private static native void nStyleColorsDark(long ptr); /* - ImGui::StyleColorsDark((ImGuiStyle*)ptr); - */ + @BindingMethod + public static native void StyleColorsDark(@OptArg ImGuiStyle style); /** * Best used with borders and a custom, thicker font */ - public static native void styleColorsLight(); /* - ImGui::StyleColorsLight(); - */ - - public static void styleColorsLight(ImGuiStyle style) { - nStyleColorsLight(style.ptr); - } - - private static native void nStyleColorsLight(long ptr); /* - ImGui::StyleColorsLight((ImGuiStyle*)ptr); - */ + @BindingMethod + public static native void StyleColorsLight(@OptArg ImGuiStyle style); /** * Classic imgui style */ - public static native void styleColorsClassic(); /* - ImGui::StyleColorsClassic(); - */ - - public static void styleColorsClassic(ImGuiStyle style) { - nStyleColorsClassic(style.ptr); - } - - private static native void nStyleColorsClassic(long ptr); /* - ImGui::StyleColorsClassic((ImGuiStyle*)ptr); - */ + @BindingMethod + public static native void StyleColorsClassic(@OptArg ImGuiStyle style); // Windows // - Begin() = push window to the stack and start appending to it. End() = pop window from the stack. @@ -475,33 +314,11 @@ public class ImGui { // returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.] // - Note that the bottom of window stack always contains a window called "Debug". - public static native boolean begin(String title); /* - return ImGui::Begin(title); - */ + @BindingMethod + public static native boolean Begin(String title, @OptArg(callValue = "NULL") ImBoolean pOpen, @OptArg int imGuiWindowFlags); - public static boolean begin(String title, ImBoolean pOpen) { - return nBegin(title, pOpen.getData(), 0); - } - - public static boolean begin(String title, int imGuiWindowFlags) { - return nBegin(title, imGuiWindowFlags); - } - - public static boolean begin(String title, ImBoolean pOpen, int imGuiWindowFlags) { - return nBegin(title, pOpen.getData(), imGuiWindowFlags); - } - - private static native boolean nBegin(String title, int imGuiWindowFlags); /* - return ImGui::Begin(title, NULL, imGuiWindowFlags); - */ - - private static native boolean nBegin(String title, boolean[] pOpen, int imGuiWindowFlags); /* - return ImGui::Begin(title, &pOpen[0], imGuiWindowFlags); - */ - - public static native void end(); /* - ImGui::End(); - */ + @BindingMethod + public static native void End(); // Child Windows // - Use child windows to begin into a self-contained independent scrolling/clipping regions within a host window. Child windows can embed their own child. @@ -512,389 +329,188 @@ public class ImGui { // BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding BeginXXX function // returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.] - public static native boolean beginChild(String strId); /* - return ImGui::BeginChild(strId); - */ + @BindingMethod + public static native boolean BeginChild(String strId, @OptArg(callValue = "ImVec2(0,0)") ImVec2 size, @OptArg(callValue = "false") boolean border, @OptArg int imGuiWindowFlags); - public static native boolean beginChild(String strId, float width, float height); /* - return ImGui::BeginChild(strId, ImVec2(width, height)); - */ + @BindingMethod + public static native boolean BeginChild(int imGuiID, @OptArg(callValue = "ImVec2(0,0)") ImVec2 size, @OptArg(callValue = "false") boolean border, @OptArg int imGuiWindowFlags); - public static native boolean beginChild(String strId, float width, float height, boolean border); /* - return ImGui::BeginChild(strId, ImVec2(width, height), border); - */ - - public static native boolean beginChild(String strId, float width, float height, boolean border, int imGuiWindowFlags); /* - return ImGui::BeginChild(strId, ImVec2(width, height), border, imGuiWindowFlags); - */ - - public static native boolean beginChild(int imGuiID); /* - return ImGui::BeginChild(imGuiID); - */ - - public static native boolean beginChild(int imGuiID, float width, float height, boolean border); /* - return ImGui::BeginChild(imGuiID, ImVec2(width, height), border); - */ - - public static native boolean beginChild(int imGuiID, float width, float height, boolean border, int imGuiWindowFlags); /* - return ImGui::BeginChild(imGuiID, ImVec2(width, height), border, imGuiWindowFlags); - */ - - public static native void endChild(); /* - ImGui::EndChild(); - */ + @BindingMethod + public static native void EndChild(); // Windows Utilities // - "current window" = the window we are appending into while inside a Begin()/End() block. "next window" = next window we will Begin() into. - public static native boolean isWindowAppearing(); /* - return ImGui::IsWindowAppearing(); - */ + @BindingMethod + public static native boolean IsWindowAppearing(); - public static native boolean isWindowCollapsed(); /* - return ImGui::IsWindowCollapsed(); - */ + @BindingMethod + public static native boolean IsWindowCollapsed(); /** * Is current window focused? or its root/child, depending on flags. see flags for options. */ - public static native boolean isWindowFocused(); /* - return ImGui::IsWindowFocused(); - */ - - /** - * Is current window focused? or its root/child, depending on flags. see flags for options. - */ - public static native boolean isWindowFocused(int imGuiFocusedFlags); /* - return ImGui::IsWindowFocused(imGuiFocusedFlags); - */ + @BindingMethod + public static native boolean IsWindowFocused(@OptArg int imGuiFocusedFlags); /** * Is current window hovered (and typically: not blocked by a popup/modal)? see flags for options. * NB: If you are trying to check whether your mouse should be dispatched to imgui or to your app, * you should use the 'io.WantCaptureMouse' boolean for that! Please read the FAQ! */ - public static native boolean isWindowHovered(); /* - return ImGui::IsWindowHovered(); - */ - - /** - * Is current window hovered (and typically: not blocked by a popup/modal)? see flags for options. - * NB: If you are trying to check whether your mouse should be dispatched to imgui or to your app, - * you should use the 'io.WantCaptureMouse' boolean for that! Please read the FAQ! - */ - public static native boolean isWindowHovered(int imGuiHoveredFlags); /* - return ImGui::IsWindowHovered(imGuiHoveredFlags); - */ + @BindingMethod + public static native boolean IsWindowHovered(@OptArg int imGuiHoveredFlags); /** * Get draw list associated to the current window, to append your own drawing primitives */ - public static ImDrawList getWindowDrawList() { - WINDOW_DRAW_LIST.ptr = nGetWindowDrawList(); - return WINDOW_DRAW_LIST; - } - - private static native long nGetWindowDrawList(); /* - return (intptr_t)ImGui::GetWindowDrawList(); - */ + @BindingMethod + public static native ImDrawList GetWindowDrawList(); /** * Get DPI scale currently associated to the current window's viewport. */ - public static native float getWindowDpiScale(); /* - return ImGui::GetWindowDpiScale(); - */ + @BindingMethod + public static native float GetWindowDpiScale(); /** * Get current window position in screen space (useful if you want to do your own drawing via the DrawList API) */ - public static ImVec2 getWindowPos() { - final ImVec2 value = new ImVec2(); - getWindowPos(value); - return value; - } - - /** - * Get current window position in screen space (useful if you want to do your own drawing via the DrawList API) - */ - public static native void getWindowPos(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, ImGui::GetWindowPos(), dstImVec2); - */ - - /** - * Get current window position in screen space (useful if you want to do your own drawing via the DrawList API) - */ - public static native float getWindowPosX(); /* - return ImGui::GetWindowPos().x; - */ - - /** - * Get current window position in screen space (useful if you want to do your own drawing via the DrawList API) - */ - public static native float getWindowPosY(); /* - return ImGui::GetWindowPos().y; - */ + @BindingMethod + public static native ImVec2 GetWindowPos(); /** * Get current window size */ - public static ImVec2 getWindowSize() { - final ImVec2 value = new ImVec2(); - getWindowSize(value); - return value; - } - - /** - * Get current window size - */ - public static native void getWindowSize(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, ImGui::GetWindowSize(), dstImVec2); - */ - - /** - * Get current window size - */ - public static native float getWindowSizeX(); /* - return ImGui::GetWindowSize().x; - */ - - /** - * Get current window size - */ - public static native float getWindowSizeY(); /* - return ImGui::GetWindowSize().y; - */ + @BindingMethod + public static native ImVec2 GetWindowSize(); /** * Get current window width (shortcut for GetWindowSize().x) */ - public static native float getWindowWidth(); /* - return ImGui::GetWindowWidth(); - */ + @BindingMethod + public static native float GetWindowWidth(); /** * Get current window height (shortcut for GetWindowSize().y) */ - public static native float getWindowHeight(); /* - return ImGui::GetWindowHeight(); - */ + @BindingMethod + public static native float GetWindowHeight(); /** * Get viewport currently associated to the current window. */ - public static ImGuiViewport getWindowViewport() { - WINDOW_VIEWPORT.ptr = nGetWindowViewport(); - return WINDOW_VIEWPORT; - } - - private static native long nGetWindowViewport(); /* - return (intptr_t)ImGui::GetWindowViewport(); - */ + @BindingMethod + public static native ImGuiViewport GetWindowViewport(); // Prefer using SetNextXXX functions (before Begin) rather that SetXXX functions (after Begin). /** * Set next window position. call before Begin(). use pivot=(0.5f,0.5f) to center on given point, etc. */ - public static native void setNextWindowPos(float x, float y); /* - ImGui::SetNextWindowPos(ImVec2(x, y)); - */ - - /** - * Set next window position. call before Begin(). use pivot=(0.5f,0.5f) to center on given point, etc. - */ - public static native void setNextWindowPos(float x, float y, int imGuiCond); /* - ImGui::SetNextWindowPos(ImVec2(x, y), imGuiCond); - */ - - /** - * Set next window position. call before Begin(). use pivot=(0.5f,0.5f) to center on given point, etc. - */ - public static native void setNextWindowPos(float x, float y, int imGuiCond, float pivotX, float pivotY); /* - ImGui::SetNextWindowPos(ImVec2(x, y), imGuiCond, ImVec2(pivotX, pivotY)); - */ + @BindingMethod + public static native void SetNextWindowPos(ImVec2 pos, @OptArg(callValue = "ImGuiCond_None") int cond, @OptArg ImVec2 pivot); /** * Set next window size. set axis to 0.0f to force an auto-fit on this axis. call before Begin() */ - public static native void setNextWindowSize(float width, float height); /* - ImGui::SetNextWindowSize(ImVec2(width, height)); - */ - - /** - * Set next window size. set axis to 0.0f to force an auto-fit on this axis. call before Begin() - */ - public static native void setNextWindowSize(float width, float height, int imGuiCond); /* - ImGui::SetNextWindowSize(ImVec2(width, height), imGuiCond); - */ + @BindingMethod + public static native void SetNextWindowSize(ImVec2 size, @OptArg int cond); /** * Set next window size limits. use -1,-1 on either X/Y axis to preserve the current size. Sizes will be rounded down. */ - public static native void setNextWindowSizeConstraints(float minWidth, float minHeight, float maxWidth, float maxHeight); /* - ImGui::SetNextWindowSizeConstraints(ImVec2(minWidth, minHeight), ImVec2(maxWidth, maxHeight)); - */ + @BindingMethod + public static native void SetNextWindowSizeConstraints(ImVec2 sizeMin, ImVec2 sizeMax); /** * Set next window content size (~ scrollable client area, which enforce the range of scrollbars). * Not including window decorations (title bar, menu bar, etc.) nor WindowPadding. set an axis to 0.0f to leave it automatic. call before Begin() */ - public static native void setNextWindowContentSize(float width, float height); /* - ImGui::SetNextWindowContentSize(ImVec2(width, height)); - */ + @BindingMethod + public static native void SetNextWindowContentSize(ImVec2 size); /** * Set next window collapsed state. call before Begin() */ - public static native void setNextWindowCollapsed(boolean collapsed); /* - ImGui::SetNextWindowCollapsed(collapsed); - */ - - /** - * Set next window collapsed state. call before Begin() - */ - public static native void setNextWindowCollapsed(boolean collapsed, int imGuiCond); /* - ImGui::SetNextWindowCollapsed(collapsed, imGuiCond); - */ + @BindingMethod + public static native void SetNextWindowCollapsed(boolean collapsed, @OptArg int cond); /** * Set next window to be focused / top-most. call before Begin() */ - public static native void setNextWindowFocus(); /* - ImGui::SetNextWindowFocus(); - */ + @BindingMethod + public static native void SetNextWindowFocus(); /** * Set next window background color alpha. helper to easily override the Alpha component of ImGuiCol_WindowBg/ChildBg/PopupBg. * You may also use ImGuiWindowFlags_NoBackground. */ - public static native void setNextWindowBgAlpha(float alpha); /* - ImGui::SetNextWindowBgAlpha(alpha); - */ + @BindingMethod + public static native void SetNextWindowBgAlpha(float alpha); /** * Set next window viewport. */ - public static native void setNextWindowViewport(int viewportId); /* - ImGui::SetNextWindowViewport(viewportId); - */ + @BindingMethod + public static native void SetNextWindowViewport(int viewportId); /** * (not recommended) set current window position - call within Begin()/End(). * Prefer using SetNextWindowPos(), as this may incur tearing and side-effects. */ - public static native void setWindowPos(float x, float y); /* - ImGui::SetWindowPos(ImVec2(x, y)); - */ - - /** - * (not recommended) set current window position - call within Begin()/End(). - * Prefer using SetNextWindowPos(), as this may incur tearing and side-effects. - */ - public static native void setWindowPos(float x, float y, int imGuiCond); /* - ImGui::SetWindowPos(ImVec2(x, y), imGuiCond); - */ + @BindingMethod + public static native void SetWindowPos(ImVec2 pos, @OptArg int cond); /** * (not recommended) set current window size - call within Begin()/End(). set to ImVec2(0,0) to force an auto-fit. * Prefer using SetNextWindowSize(), as this may incur tearing and minor side-effects. */ - public static native void setWindowSize(float width, float height); /* - ImGui::SetWindowSize(ImVec2(width, height)); - */ - - /** - * (not recommended) set current window size - call within Begin()/End(). set to ImVec2(0,0) to force an auto-fit. - * Prefer using SetNextWindowSize(), as this may incur tearing and minor side-effects. - */ - public static native void setWindowSize(float width, float height, int imGuiCond); /* - ImGui::SetWindowSize(ImVec2(width, height), imGuiCond); - */ + @BindingMethod + public static native void SetWindowSize(ImVec2 size, @OptArg int cond); /** * (not recommended) set current window collapsed state. prefer using SetNextWindowCollapsed(). */ - public static native void setWindowCollapsed(boolean collapsed); /* - ImGui::SetWindowCollapsed(collapsed); - */ - - /** - * (not recommended) set current window collapsed state. prefer using SetNextWindowCollapsed(). - */ - public static native void setWindowCollapsed(boolean collapsed, int imGuiCond); /* - ImGui::SetWindowCollapsed(collapsed, imGuiCond); - */ + @BindingMethod + public static native void SetWindowCollapsed(boolean collapsed, @OptArg int cond); /** * (not recommended) set current window to be focused / top-most. prefer using SetNextWindowFocus(). */ - public static native void setWindowFocus(); /* - ImGui::SetWindowFocus(); - */ + @BindingMethod + public static native void SetWindowFocus(); /** * Set font scale. Adjust IO.FontGlobalScale if you want to scale all windows. * This is an old API! For correct scaling, prefer to reload font + rebuild ImFontAtlas + call style.ScaleAllSizes(). */ - public native void setWindowFontScale(float scale); /* - ImGui::SetWindowFontScale(scale); - */ + @BindingMethod + public static native void SetWindowFontScale(float scale); /** * Set named window position. */ - public static native void setWindowPos(String name, float x, float y); /* - ImGui::SetWindowPos(name, ImVec2(x, y)); - */ - - /** - * Set named window position. - */ - public static native void setWindowPos(String name, float x, float y, int imGuiCond); /* - ImGui::SetWindowPos(name, ImVec2(x, y), imGuiCond); - */ + @BindingMethod + public static native void SetWindowPos(String name, ImVec2 pos, @OptArg int cond); /** * Set named window size. set axis to 0.0f to force an auto-fit on this axis. */ - public static native void setWindowSize(String name, float x, float y); /* - ImGui::SetWindowSize(name, ImVec2(x, y)); - */ - - /** - * Set named window size. set axis to 0.0f to force an auto-fit on this axis. - */ - public static native void setWindowSize(String name, float x, float y, int imGuiCond); /* - ImGui::SetWindowSize(name, ImVec2(x, y), imGuiCond); - */ + @BindingMethod + public static native void SetWindowSize(String name, ImVec2 size, @OptArg int cond); /** * Set named window collapsed state */ - public static native void setWindowCollapsed(String name, boolean collapsed); /* - ImGui::SetWindowCollapsed(name, collapsed, 0); - */ - - /** - * Set named window collapsed state - */ - public static native void setWindowCollapsed(String name, boolean collapsed, int imGuiCond); /* - ImGui::SetWindowCollapsed(name, collapsed, imGuiCond); - */ + @BindingMethod + public static native void SetWindowCollapsed(@ArgValue(callPrefix = "(const char *)") String name, @ArgValue(callPrefix = "(bool)") boolean collapsed, @OptArg int cond); /** * Set named window to be focused / top-most. Use NULL to remove focus. */ - public static native void setWindowFocus(String name); /*MANUAL - if (obj_name == NULL) - ImGui::SetWindowFocus(NULL); - else { - char* name = (char*)env->GetStringUTFChars(obj_name, JNI_FALSE); - ImGui::SetWindowFocus(name); - env->ReleaseStringUTFChars(obj_name, name); - } - */ + @BindingMethod + public static native void SetWindowFocus(String name); // Content region // - Retrieve available space from a given point. GetContentRegionAvail() is frequently useful. @@ -903,235 +519,98 @@ public class ImGui { /** * == GetContentRegionMax() - GetCursorPos() */ - public static ImVec2 getContentRegionAvail() { - final ImVec2 value = new ImVec2(); - getContentRegionAvail(value); - return value; - } - - /** - * == GetContentRegionMax() - GetCursorPos() - */ - public static native void getContentRegionAvail(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, ImGui::GetContentRegionAvail(), dstImVec2); - */ - - /** - * == GetContentRegionMax() - GetCursorPos() - */ - public static native float getContentRegionAvailX(); /* - return ImGui::GetContentRegionAvail().x; - */ - - /** - * == GetContentRegionMax() - GetCursorPos() - */ - public static native float getContentRegionAvailY(); /* - return ImGui::GetContentRegionAvail().y; - */ + @BindingMethod + public static native ImVec2 GetContentRegionAvail(); /** * Current content boundaries (typically window boundaries including scrolling, or current column boundaries), in windows coordinates */ - public static ImVec2 getContentRegionMax() { - final ImVec2 value = new ImVec2(); - getContentRegionMax(value); - return value; - } + @BindingMethod + public static native ImVec2 GetContentRegionMax(); /** - * Current content boundaries (typically window boundaries including scrolling, or current column boundaries), in windows coordinates + * Content boundaries min for the full window (roughly (0,0)-Scroll), in window coordinates */ - public static native void getContentRegionMax(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, ImGui::GetContentRegionMax(), dstImVec2); - */ + @BindingMethod + public static native ImVec2 GetWindowContentRegionMin(); /** - * Current content boundaries (typically window boundaries including scrolling, or current column boundaries), in windows coordinates + * Content boundaries max for the full window (roughly (0,0)+Size-Scroll) where Size can be override with SetNextWindowContentSize(), in window coordinates */ - public static native float getContentRegionMaxX(); /* - return ImGui::GetContentRegionMax().x; - */ - - /** - * Current content boundaries (typically window boundaries including scrolling, or current column boundaries), in windows coordinates - */ - public static native float getContentRegionMaxY(); /* - return ImGui::GetContentRegionMax().y; - */ - - /** - * Content boundaries max (roughly (0,0)+Size-Scroll) where Size can be override with SetNextWindowContentSize(), in window coordinates - */ - public static ImVec2 getWindowContentRegionMin() { - final ImVec2 value = new ImVec2(); - getWindowContentRegionMin(value); - return value; - } - - /** - * Content boundaries max (roughly (0,0)+Size-Scroll) where Size can be override with SetNextWindowContentSize(), in window coordinates - */ - public static native void getWindowContentRegionMin(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, ImGui::GetWindowContentRegionMin(), dstImVec2); - */ - - /** - * Content boundaries max (roughly (0,0)+Size-Scroll) where Size can be override with SetNextWindowContentSize(), in window coordinates - */ - public static native float getWindowContentRegionMinX(); /* - return ImGui::GetWindowContentRegionMin().x; - */ - - /** - * Content boundaries max (roughly (0,0)+Size-Scroll) where Size can be override with SetNextWindowContentSize(), in window coordinates - */ - public static native float getWindowContentRegionMinY(); /* - return ImGui::GetWindowContentRegionMin().y; - */ - - public static ImVec2 getWindowContentRegionMax() { - final ImVec2 value = new ImVec2(); - getWindowContentRegionMax(value); - return value; - } - - public static native void getWindowContentRegionMax(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, ImGui::GetWindowContentRegionMax(), dstImVec2); - */ - - public static native float getWindowContentRegionMaxX(); /* - return ImGui::GetWindowContentRegionMax().x; - */ - - public static native float getWindowContentRegionMaxY(); /* - return ImGui::GetWindowContentRegionMax().y; - */ + @BindingMethod + public static native ImVec2 GetWindowContentRegionMax(); // Windows Scrolling /** * Get scrolling amount [0 .. GetScrollMaxX()] */ - public static native float getScrollX(); /* - return ImGui::GetScrollX(); - */ + @BindingMethod + public static native float GetScrollX(); /** * Get scrolling amount [0 .. GetScrollMaxY()] */ - public static native float getScrollY(); /* - return ImGui::GetScrollY(); - */ + @BindingMethod + public static native float GetScrollY(); /** * Set scrolling amount [0 .. GetScrollMaxX()] */ - public static native void setScrollX(float scrollX); /* - ImGui::SetScrollX(scrollX); - */ + @BindingMethod + public static native void SetScrollX(float scrollX); /** * Set scrolling amount [0..GetScrollMaxY()] */ - public static native void setScrollY(float scrollY); /* - ImGui::SetScrollY(scrollY); - */ + @BindingMethod + public static native void SetScrollY(float scrollY); /** * Get maximum scrolling amount ~~ ContentSize.x - WindowSize.x - DecorationsSize.x */ - public static native float getScrollMaxX(); /* - return ImGui::GetScrollMaxX(); - */ + @BindingMethod + public static native float GetScrollMaxX(); /** * Get maximum scrolling amount ~~ ContentSize.y - WindowSize.y - DecorationsSize.y */ - public static native float getScrollMaxY(); /* - return ImGui::GetScrollMaxY(); - */ + @BindingMethod + public static native float GetScrollMaxY(); /** * Adjust scrolling amount to make current cursor position visible. center_x_ratio=0.0: left, 0.5: center, 1.0: right. * When using to make a "default/current item" visible, consider using SetItemDefaultFocus() instead. */ - public static native void setScrollHereX(); /* - ImGui::SetScrollHereX(); - */ - - /** - * Adjust scrolling amount to make current cursor position visible. center_x_ratio=0.0: left, 0.5: center, 1.0: right. - * When using to make a "default/current item" visible, consider using SetItemDefaultFocus() instead. - */ - public static native void setScrollHereX(float centerXRatio); /* - ImGui::SetScrollHereX(centerXRatio); - */ + @BindingMethod + public static native void SetScrollHereX(@OptArg float centerXRatio); /** * Adjust scrolling amount to make current cursor position visible. center_y_ratio=0.0: top, 0.5: center, 1.0: bottom. * When using to make a "default/current item" visible, consider using SetItemDefaultFocus() instead. */ - public static native void setScrollHereY(); /* - ImGui::SetScrollHereY(); - */ - - /** - * Adjust scrolling amount to make current cursor position visible. center_y_ratio=0.0: top, 0.5: center, 1.0: bottom. - * When using to make a "default/current item" visible, consider using SetItemDefaultFocus() instead. - */ - public static native void setScrollHereY(float centerYRatio); /* - ImGui::SetScrollHereY(centerYRatio); - */ + @BindingMethod + public static native void SetScrollHereY(@OptArg float centerYRatio); /** * Adjust scrolling amount to make given position visible. Generally GetCursorStartPos() + offset to compute a valid position. */ - public static native void setScrollFromPosX(float localX); /* - ImGui::SetScrollFromPosX(localX); - */ + @BindingMethod + public static native void SetScrollFromPosX(float localX, @OptArg float centerXRatio); /** * Adjust scrolling amount to make given position visible. Generally GetCursorStartPos() + offset to compute a valid position. */ - public static native void setScrollFromPosX(float localX, float centerXRatio); /* - ImGui::SetScrollFromPosX(localX, centerXRatio); - */ - - /** - * Adjust scrolling amount to make given position visible. Generally GetCursorStartPos() + offset to compute a valid position. - */ - public static native void setScrollFromPosY(float localY); /* - ImGui::SetScrollFromPosY(localY); - */ - - /** - * Adjust scrolling amount to make given position visible. Generally GetCursorStartPos() + offset to compute a valid position. - */ - public static native void setScrollFromPosY(float localY, float centerYRatio); /* - ImGui::SetScrollFromPosY(localY, centerYRatio); - */ + @BindingMethod + public static native void SetScrollFromPosY(float localY, @OptArg float centerYRatio); // Parameters stacks (shared) - public static void pushFont(ImFont font) { - nPushFont(font.ptr); - } + @BindingMethod + public static native void PushFont(ImFont font); - private static native void nPushFont(long fontPtr); /* - ImGui::PushFont((ImFont*)fontPtr); - */ - - public static native void popFont(); /* - ImGui::PopFont(); - */ - - /** - * Modify a style color. always use this if you modify the style after NewFrame(). - */ - public static native void pushStyleColor(int imGuiCol, float r, float g, float b, float a); /* - ImGui::PushStyleColor(imGuiCol, (ImU32)ImColor((float)r, (float)g, (float)b, (float)a)); - */ + @BindingMethod + public static native void PopFont(); /** * Modify a style color. always use this if you modify the style after NewFrame(). @@ -1143,62 +622,51 @@ public class ImGui { /** * Modify a style color. always use this if you modify the style after NewFrame(). */ - public static native void pushStyleColor(int imGuiCol, int col); /* - ImGui::PushStyleColor(imGuiCol, col); - */ + @BindingMethod + public static native void PushStyleColor(final int imGuiCol, final ImVec4 col); - public static native void popStyleColor(); /* - ImGui::PopStyleColor(); - */ + /** + * Modify a style color. always use this if you modify the style after NewFrame(). + */ + @BindingMethod + public static native void PushStyleColor(int imGuiCol, int col); - public static native void popStyleColor(int count); /* - ImGui::PopStyleColor(count); - */ + @BindingMethod + public static native void PopStyleColor(@OptArg int count); /** * Modify a style float variable. always use this if you modify the style after NewFrame(). */ - public static native void pushStyleVar(int imGuiStyleVar, float val); /* - ImGui::PushStyleVar(imGuiStyleVar, val); - */ + @BindingMethod + public static native void PushStyleVar(int imGuiStyleVar, float val); /** * Modify a style ImVec2 variable. always use this if you modify the style after NewFrame(). */ - public static native void pushStyleVar(int imGuiStyleVar, float valX, float valY); /* - ImGui::PushStyleVar(imGuiStyleVar, ImVec2(valX, valY)); - */ + @BindingMethod + public static native void PushStyleVar(int imGuiStyleVar, ImVec2 val); - public static native void popStyleVar(); /* - ImGui::PopStyleVar(); - */ - - public static native void popStyleVar(int count); /* - ImGui::PopStyleVar(count); - */ + @BindingMethod + public static native void PopStyleVar(@OptArg int count); /** * Allow focusing using TAB/Shift-TAB, enabled by default but you can disable it for certain widgets */ - public static native void pushAllowKeyboardFocus(boolean allowKeyboardFocus); /* - ImGui::PushAllowKeyboardFocus(allowKeyboardFocus); - */ + @BindingMethod + public static native void PushAllowKeyboardFocus(boolean allowKeyboardFocus); - public static native void popAllowKeyboardFocus(); /* - ImGui::PopAllowKeyboardFocus(); - */ + @BindingMethod + public static native void PopAllowKeyboardFocus(); /** * In 'repeat' mode, Button*() functions return repeated true in a typematic manner (using io.KeyRepeatDelay/io.KeyRepeatRate setting). * Note that you can call IsItemActive() after any Button() to tell if the button is held in the current frame. */ - public static native void pushButtonRepeat(boolean repeat); /* - ImGui::PushButtonRepeat(repeat); - */ + @BindingMethod + public static native void PushButtonRepeat(boolean repeat); - public static native void popButtonRepeat(); /* - ImGui::PopButtonRepeat(); - */ + @BindingMethod + public static native void PopButtonRepeat(); // Parameters stacks (current window) @@ -1206,147 +674,80 @@ public class ImGui { * Push width of items for common large "item+label" widgets. {@code > 0.0f}: width in pixels, * {@code <0.0f} align xx pixels to the right of window (so -1.0f always align width to the right side). */ - public static native void pushItemWidth(float itemWidth); /* - ImGui::PushItemWidth(itemWidth); - */ + @BindingMethod + public static native void PushItemWidth(float itemWidth); - public static native void popItemWidth(); /* - ImGui::PopItemWidth(); - */ + @BindingMethod + public static native void PopItemWidth(); /** * Set width of the _next_ common large "item+label" widget. {@code > 0.0f}: width in pixels, * {@code <0.0f} align xx pixels to the right of window (so -1.0f always align width to the right side) */ - public static native void setNextItemWidth(float itemWidth); /* - ImGui::SetNextItemWidth(itemWidth); - */ + @BindingMethod + public static native void SetNextItemWidth(float itemWidth); /** * Width of item given pushed settings and current cursor position. NOT necessarily the width of last item unlike most 'Item' functions. */ - public static native float calcItemWidth(); /* - return ImGui::CalcItemWidth(); - */ + @BindingMethod + public static native float CalcItemWidth(); /** * Push Word-wrapping positions for Text*() commands. {@code < 0.0f}: no wrapping; 0.0f: wrap to end of window (or column); {@code > 0.0f}: wrap at * 'wrap_posX' position in window local space */ - public static native void pushTextWrapPos(); /* - ImGui::PushTextWrapPos(); - */ + @BindingMethod + public static native void PushTextWrapPos(@OptArg float wrapLocalPosX); - /** - * Push Word-wrapping positions for Text*() commands. {@code < 0.0f}: no wrapping; 0.0f: wrap to end of window (or column); {@code > 0.0f}: wrap at - * 'wrap_posX' position in window local space - */ - public static native void pushTextWrapPos(float wrapLocalPosX); /* - ImGui::PushTextWrapPos(wrapLocalPosX); - */ - - public static native void popTextWrapPos(); /* - ImGui::PopTextWrapPos(); - */ + @BindingMethod + public static native void PopTextWrapPos(); // Style read access /** * Get current font. */ - public static ImFont getFont() { - FONT.ptr = nGetFont(); - return FONT; - } - - private static native long nGetFont(); /* - return (intptr_t)ImGui::GetFont(); - */ + @BindingMethod + @ReturnValue(isStatic = true) + public static native ImFont GetFont(); /** * Get current font size (= height in pixels) of current font with current scale applied */ - public static native int getFontSize(); /* - return ImGui::GetFontSize(); - */ + @BindingMethod + public static native int GetFontSize(); /** * Get UV coordinate for a while pixel, useful to draw custom shapes via the ImDrawList API */ - public static ImVec2 getFontTexUvWhitePixel() { - final ImVec2 value = new ImVec2(); - getFontTexUvWhitePixel(value); - return value; - } + @BindingMethod + public static native ImVec2 GetFontTexUvWhitePixel(); /** - * Get UV coordinate for a while pixel, useful to draw custom shapes via the ImDrawList API + * Retrieve given style color with style alpha applied and optional extra alpha multiplier, packed as a 32-bit value suitable for ImDrawList. */ - public static native void getFontTexUvWhitePixel(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, ImGui::GetFontTexUvWhitePixel(), dstImVec2); - */ + @BindingMethod + public static native int GetColorU32(@ArgValue(staticCast = "ImGuiCol") int idx, @OptArg float alphaMul); /** - * Get UV coordinate for a while pixel, useful to draw custom shapes via the ImDrawList API + * Retrieve given color with style alpha applied, packed as a 32-bit value suitable for ImDrawList. */ - public static native float getFontTexUvWhitePixelX(); /* - return ImGui::GetFontTexUvWhitePixel().x; - */ + @BindingMethod + public static native int GetColorU32(ImVec4 col); /** - * Get UV coordinate for a while pixel, useful to draw custom shapes via the ImDrawList API + * Retrieve given color with style alpha applied, packed as a 32-bit value suitable for ImDrawList. */ - public static native float getFontTexUvWhitePixelY(); /* - return ImGui::GetFontTexUvWhitePixel().y; - */ - - /** - * Retrieve given style color with style alpha applied and optional extra alpha multiplier - */ - public static native int getColorU32(int imGuiCol); /* - return ImGui::GetColorU32((ImGuiCol)imGuiCol); - */ - - /** - * Retrieve given style color with style alpha applied and optional extra alpha multiplier - */ - public static native int getColorU32(int imGuiCol, float alphaMul); /* - return ImGui::GetColorU32(imGuiCol, alphaMul); - */ - - /** - * Retrieve given color with style alpha applied - */ - public static native int getColorU32(float r, float g, float b, float a); /* - return ImGui::GetColorU32(ImVec4(r, g, b, a)); - */ - - /** - * Retrieve given color with style alpha applied - *

- * BINDING NOTICE: Since {@link #getColorU32(int)} has the same signature, this specific method has an 'i' suffix. - */ - public static native int getColorU32i(int col); /* - return ImGui::GetColorU32((ImU32)col); - */ + @BindingMethod(callName = "GetColorU32") + public static native int GetColorU32i(@ArgValue(staticCast = "ImU32") int col); /** * Retrieve style color as stored in ImGuiStyle structure. use to feed back into PushStyleColor(), * otherwise use GetColorU32() to get style color with style alpha baked in. */ - public ImVec4 getStyleColorVec4(final int imGuiStyleVar) { - final ImVec4 value = new ImVec4(); - getStyleColorVec4(imGuiStyleVar, value); - return value; - } - - /** - * Retrieve style color as stored in ImGuiStyle structure. use to feed back into PushStyleColor(), - * otherwise use GetColorU32() to get style color with style alpha baked in. - */ - public static native void getStyleColorVec4(int imGuiStyleVar, ImVec4 dstImVec4); /* - Jni::ImVec4Cpy(env, ImGui::GetStyleColorVec4(imGuiStyleVar), dstImVec4); - */ + @BindingMethod + public static native ImVec4 GetStyleColorVec4(int imGuiColIdx); // Cursor / Layout // - By "cursor" we mean the current output position. @@ -1359,93 +760,56 @@ public class ImGui { /** * Separator, generally horizontal. inside a menu bar or in horizontal layout mode, this becomes a vertical separator. */ - public static native void separator(); /* - ImGui::Separator(); - */ + @BindingMethod + public static native void Separator(); /** * Call between widgets or groups to layout them horizontally. X position given in window coordinates. */ - public static native void sameLine(); /* - ImGui::SameLine(); - */ - - /** - * Call between widgets or groups to layout them horizontally. X position given in window coordinates. - */ - public static native void sameLine(float offsetFromStartX); /* - ImGui::SameLine(offsetFromStartX); - */ - - /** - * Call between widgets or groups to layout them horizontally. X position given in window coordinates. - */ - public static native void sameLine(float offsetFromStartX, float spacing); /* - ImGui::SameLine(offsetFromStartX, spacing); - */ + @BindingMethod + public static native void SameLine(@OptArg float offsetFromStartX, @OptArg float spacing); /** * Undo a SameLine() or force a new line when in an horizontal-layout context. */ - public static native void newLine(); /* - ImGui::NewLine(); - */ + @BindingMethod + public static native void NewLine(); /** * Add vertical spacing. */ - public static native void spacing(); /* - ImGui::Spacing(); - */ + @BindingMethod + public static native void Spacing(); /** * Add a dummy item of given size. unlike InvisibleButton(), Dummy() won't take the mouse click or be navigable into. */ - public static native void dummy(float width, float height); /* - ImGui::Dummy(ImVec2(width, height)); - */ + @BindingMethod + public static native void Dummy(ImVec2 size); /** * Move content position toward the right, by indent_w, or style.IndentSpacing if indent_w {@code <= 0}. */ - public static native void indent(); /* - ImGui::Indent(); - */ - - /** - * Move content position toward the right, by indent_w, or style.IndentSpacing if indent_w {@code <= 0}. - */ - public static native void indent(float indentW); /* - ImGui::Indent(indentW); - */ + @BindingMethod + public static native void Indent(@OptArg float indentW); /** * Move content position back to the left, by indent_w, or style.IndentSpacing if indent_w {@code <= 0}. */ - public static native void unindent(); /* - ImGui::Unindent(); - */ - - /** - * Move content position back to the left, by indent_w, or style.IndentSpacing if indent_w {@code <= 0}. - */ - public static native void unindent(float indentW); /* - ImGui::Unindent(indentW); - */ + @BindingMethod + public static native void Unindent(@OptArg float indentW); /** * Lock horizontal starting position */ - public static native void beginGroup(); /* - ImGui::BeginGroup(); - */ + @BindingMethod + public static native void BeginGroup(); /** * Unlock horizontal starting position + capture the whole group bounding box into one "item" (so you can use IsItemHovered() or layout primitives such as SameLine() on whole group, etc.) */ - public static native void endGroup(); /* - ImGui::EndGroup(); - */ + @BindingMethod + public static native void EndGroup(); // (some functions are using window-relative coordinates, such as: GetCursorPos, GetCursorStartPos, GetContentRegionMax, GetWindowContentRegion* etc. // other functions such as GetCursorScreenPos or everything in ImDrawList:: @@ -1455,162 +819,76 @@ public class ImGui { /** * Cursor position in window coordinates (relative to window position) */ - public static ImVec2 getCursorPos() { - final ImVec2 value = new ImVec2(); - getCursorPos(value); - return value; - } + @BindingMethod + public static native ImVec2 GetCursorPos(); /** * Cursor position in window coordinates (relative to window position) */ - public static native void getCursorPos(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, ImGui::GetCursorPos(), dstImVec2); - */ + @BindingMethod + public static native void SetCursorPos(ImVec2 pos); /** * Cursor position in window coordinates (relative to window position) */ - public static native float getCursorPosX(); /* - return ImGui::GetCursorPosX(); - */ + @BindingMethod + public static native void SetCursorPosX(float x); /** * Cursor position in window coordinates (relative to window position) */ - public static native float getCursorPosY(); /* - return ImGui::GetCursorPosY(); - */ - - /** - * Cursor position in window coordinates (relative to window position) - */ - public static native void setCursorPos(float x, float y); /* - ImGui::SetCursorPos(ImVec2(x, y)); - */ - - /** - * Cursor position in window coordinates (relative to window position) - */ - public static native void setCursorPosX(float x); /* - ImGui::SetCursorPosX(x); - */ - - /** - * Cursor position in window coordinates (relative to window position) - */ - public static native void setCursorPosY(float y); /* - ImGui::SetCursorPosY(y); - */ + @BindingMethod + public static native void SetCursorPosY(float y); /** * Initial cursor position in window coordinates */ - public static ImVec2 getCursorStartPos() { - final ImVec2 value = new ImVec2(); - getCursorStartPos(value); - return value; - } - - /** - * Initial cursor position in window coordinates - */ - public static native void getCursorStartPos(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, ImGui::GetCursorStartPos(), dstImVec2); - */ - - /** - * Initial cursor position in window coordinates - */ - public static native float getCursorStartPosX(); /* - return ImGui::GetCursorStartPos().x; - */ - - /** - * Initial cursor position in window coordinates - */ - public static native float getCursorStartPosY(); /* - return ImGui::GetCursorStartPos().y; - */ + @BindingMethod + public static native ImVec2 GetCursorStartPos(); /** * Cursor position in absolute coordinates (useful to work with ImDrawList API). * Generally top-left == GetMainViewport().Pos == (0,0) in single viewport mode, * and bottom-right == GetMainViewport().Pos+Size == io.DisplaySize in single-viewport mode. */ - public static ImVec2 getCursorScreenPos() { - final ImVec2 value = new ImVec2(); - getCursorScreenPos(value); - return value; - } - - /** - * Cursor position in absolute coordinates (useful to work with ImDrawList API). - * Generally top-left == GetMainViewport().Pos == (0,0) in single viewport mode, - * and bottom-right == GetMainViewport().Pos+Size == io.DisplaySize in single-viewport mode. - */ - public static native void getCursorScreenPos(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, ImGui::GetCursorScreenPos(), dstImVec2); - */ - - /** - * Cursor position in absolute coordinates (useful to work with ImDrawList API). - * Generally top-left == GetMainViewport().Pos == (0,0) in single viewport mode, - * and bottom-right == GetMainViewport().Pos+Size == io.DisplaySize in single-viewport mode. - */ - public static native float getCursorScreenPosX(); /* - return ImGui::GetCursorScreenPos().x; - */ - - /** - * Cursor position in absolute coordinates (useful to work with ImDrawList API). - * Generally top-left == GetMainViewport().Pos == (0,0) in single viewport mode, - * and bottom-right == GetMainViewport().Pos+Size == io.DisplaySize in single-viewport mode. - */ - public static native float getCursorScreenPosY(); /* - return ImGui::GetCursorScreenPos().y; - */ + @BindingMethod + public static native ImVec2 GetCursorScreenPos(); /** * Cursor position in absolute coordinates. - */ public static native void setCursorScreenPos(float x, float y); /* - ImGui::SetCursorScreenPos(ImVec2(x, y)); - */ + */ + @BindingMethod + public static native void SetCursorScreenPos(ImVec2 pos); /** * Vertically align upcoming text baseline to FramePadding.y so that it will align properly to regularly framed items (call if you have text on a line before a framed item) */ - public static native void alignTextToFramePadding(); /* - ImGui::AlignTextToFramePadding(); - */ + @BindingMethod + public static native void AlignTextToFramePadding(); /** * ~ FontSize */ - public static native float getTextLineHeight(); /* - return ImGui::GetTextLineHeight(); - */ + @BindingMethod + public static native float GetTextLineHeight(); /** * ~ FontSize + style.ItemSpacing.y (distance in pixels between 2 consecutive lines of text) */ - public static native float getTextLineHeightWithSpacing(); /* - return ImGui::GetTextLineHeightWithSpacing(); - */ + @BindingMethod + public static native float GetTextLineHeightWithSpacing(); /** * ~ FontSize + style.FramePadding.y * 2 */ - public static native float getFrameHeight(); /* - return ImGui::GetFrameHeight(); - */ + @BindingMethod + public static native float GetFrameHeight(); /** * ~ FontSize + style.FramePadding.y * 2 + style.ItemSpacing.y (distance in pixels between 2 consecutive lines of framed widgets) */ - public static native float getFrameHeightWithSpacing(); /* - return ImGui::GetFrameHeightWithSpacing(); - */ + @BindingMethod + public static native float GetFrameHeightWithSpacing(); // ID stack/scopes // - Read the FAQ for more details about how ID are handled in dear imgui. If you are creating widgets in a loop you most @@ -1623,58 +901,50 @@ public class ImGui { /** * Push string into the ID stack (will hash string). */ - public static native void pushID(String strId); /* - ImGui::PushID(strId); - */ + @BindingMethod + public static native void PushID(String strId); /** * Push string into the ID stack (will hash string). */ - public static native void pushID(String strIdBegin, String strIdEnd); /* - ImGui::PushID(strIdBegin, strIdEnd); - */ + @BindingMethod + public static native void PushID(String strIdBegin, String strIdEnd); /** * Push pointer into the ID stack (will hash pointer). */ - public static native void pushID(long ptrId); /* - ImGui::PushID((void*)ptrId); - */ + @BindingMethod + public static native void PushID(@ArgValue(callPrefix = "(void*)") long ptrId); /** * Push integer into the ID stack (will hash integer). */ - public static native void pushID(int intId); /* - ImGui::PushID(intId); - */ + @BindingMethod + public static native void PushID(int intId); /** * Pop from the ID stack. */ - public static native void popID(); /* - ImGui::PopID(); - */ + @BindingMethod + public static native void PopID(); /** * Calculate unique ID (hash of whole ID stack + given parameter). e.g. if you want to query into ImGuiStorage yourself */ - public static native int getID(String strId); /* - return ImGui::GetID(strId); - */ + @BindingMethod + public static native int GetID(String strId); /** * Calculate unique ID (hash of whole ID stack + given parameter). e.g. if you want to query into ImGuiStorage yourself */ - public static native int getID(String strIdBegin, String strIdEnd); /* - return ImGui::GetID(strIdBegin, strIdEnd); - */ + @BindingMethod + public static native int GetID(String strIdBegin, String strIdEnd); /** * Calculate unique ID (hash of whole ID stack + given parameter). e.g. if you want to query into ImGuiStorage yourself */ - public static native int getID(long ptrId); /* - return ImGui::GetID((void*)ptrId); - */ + @BindingMethod + public static native int GetID(@ArgValue(callPrefix = "(void*)") long ptrId); // Widgets: Text @@ -1683,25 +953,20 @@ public class ImGui { * A) doesn't require null terminated string if 'textEnd' is specified, * B) it's faster, no memory copy is done, no buffer size limits, recommended for long chunks of text. */ - public static native void textUnformatted(String text); /* - ImGui::TextUnformatted(text); - */ + @BindingMethod + public static native void TextUnformatted(String text, @OptArg String textEnd); /** * Formatted text - *

- * BINDING NOTICE: Since all text formatting could be done on Java side, this call is equal to {@link ImGui#textUnformatted(String)}. */ - public static native void text(String text); /* - ImGui::TextUnformatted(text); - */ + @BindingMethod + public static native void Text(String text, Void NULL); /** * Shortcut for PushStyleColor(ImGuiCol_Text, col); Text(fmt, ...); PopStyleColor(); */ - public static native void textColored(float r, float g, float b, float a, String text); /* - ImGui::TextColored(ImColor((float)r, (float)g, (float)b, (float)a), text, NULL); - */ + @BindingMethod + public static native void TextColored(ImVec4 col, String text, Void NULL); /** * Shortcut for PushStyleColor(ImGuiCol_Text, col); Text(fmt, ...); PopStyleColor(); @@ -1720,32 +985,28 @@ public class ImGui { /** * Shortcut for PushStyleColor(ImGuiCol_Text, style.Colors[ImGuiCol_TextDisabled]); Text(fmt, ...); PopStyleColor(); */ - public static native void textDisabled(String text); /* - ImGui::TextDisabled(text, NULL); - */ + @BindingMethod + public static native void TextDisabled(String text, Void NULL); /** * Shortcut for PushTextWrapPos(0.0f); Text(fmt, ...); PopTextWrapPos();. * Note that this won't work on an auto-resizing window if there's no other widgets to extend the window width, * yoy may need to set a size using SetNextWindowSize(). */ - public static native void textWrapped(String text); /* - ImGui::TextWrapped(text, NULL); - */ + @BindingMethod + public static native void TextWrapped(String text, Void NULL); /** * Display text+label aligned the same way as value+label widgets */ - public static native void labelText(String label, String text); /* - ImGui::LabelText(label, text, NULL); - */ + @BindingMethod + public static native void LabelText(String label, String text, Void NULL); /** * Shortcut for Bullet()+Text() */ - public static native void bulletText(String text); /* - ImGui::BulletText(text, NULL); - */ + @BindingMethod + public static native void BulletText(String text, Void NULL); // Widgets: Main // - Most widgets return true when the value has been changed or when pressed/selected @@ -1754,225 +1015,93 @@ public class ImGui { /** * Button */ - public static native boolean button(String label); /* - return ImGui::Button(label); - */ - - /** - * Button - */ - public static native boolean button(String label, float width, float height); /* - return ImGui::Button(label, ImVec2(width, height)); - */ + @BindingMethod + public static native boolean Button(String label, @OptArg ImVec2 size); /** * Button with FramePadding=(0,0) to easily embed within text */ - public static native boolean smallButton(String label); /* - return ImGui::SmallButton(label); - */ + @BindingMethod + public static native boolean SmallButton(String label); /** * Flexible button behavior without the visuals, frequently useful to build custom behaviors using the public api (along with IsItemActive, IsItemHovered, etc.) */ - public static native boolean invisibleButton(String strId, float width, float height); /* - return ImGui::InvisibleButton(strId, ImVec2(width, height)); - */ - - /** - * Flexible button behavior without the visuals, frequently useful to build custom behaviors using the public api (along with IsItemActive, IsItemHovered, etc.) - */ - public static native boolean invisibleButton(String strId, float width, float height, int imGuiButtonFlags); /* - return ImGui::InvisibleButton(strId, ImVec2(width, height), imGuiButtonFlags); - */ + @BindingMethod + public static native boolean InvisibleButton(String strId, ImVec2 size, @OptArg int imGuiButtonFlags); /** * Square button with an arrow shape */ - public static native boolean arrowButton(String strId, int dir); /* - return ImGui::ArrowButton(strId, dir); - */ + @BindingMethod + public static native boolean ArrowButton(String strId, int dir); - public static native void image(int textureID, float sizeX, float sizeY); /* - ImGui::Image((ImTextureID)(intptr_t)textureID, ImVec2(sizeX, sizeY)); - */ - - public static native void image(int textureID, float sizeX, float sizeY, float uv0X, float uv0Y); /* - ImGui::Image((ImTextureID)(intptr_t)textureID, ImVec2(sizeX, sizeY), ImVec2(uv0X, uv0Y)); - */ - - public static native void image(int textureID, float sizeX, float sizeY, float uv0X, float uv0Y, float uv1X, float uv1Y); /* - ImGui::Image((ImTextureID)(intptr_t)textureID, ImVec2(sizeX, sizeY), ImVec2(uv0X, uv0Y), ImVec2(uv1X, uv1Y)); - */ - - public static native void image(int textureID, float sizeX, float sizeY, float uv0X, float uv0Y, float uv1X, float uv1Y, float tintColorR, float tintColorG, float tintColorB, float tintColorA); /* - ImGui::Image((ImTextureID)(intptr_t)textureID, ImVec2(sizeX, sizeY), ImVec2(uv0X, uv0Y), ImVec2(uv1X, uv1Y), ImVec4(tintColorR, tintColorG, tintColorB, tintColorA)); - */ - - public static native void image(int textureID, float sizeX, float sizeY, float uv0X, float uv0Y, float uv1X, float uv1Y, float tintColorR, float tintColorG, float tintColorB, float tintColorA, float borderR, float borderG, float borderB, float borderA); /* - ImGui::Image((ImTextureID)(intptr_t)textureID, ImVec2(sizeX, sizeY), ImVec2(uv0X, uv0Y), ImVec2(uv1X, uv1Y), ImVec4(tintColorR, tintColorG, tintColorB, tintColorA), ImVec4(borderR, borderG, borderB, borderA)); - */ + @BindingMethod + public static native void Image(@ArgValue(callPrefix = "(ImTextureID)(intptr_t)") int userTextureId, ImVec2 size, @OptArg ImVec2 uv0, @OptArg ImVec2 uv1, @OptArg ImVec4 tintCol, @OptArg ImVec4 borderCol); /** * {@code <0} framePadding uses default frame padding settings. 0 for no padding */ - public static native boolean imageButton(int textureID, float sizeX, float sizeY); /* - return ImGui::ImageButton((ImTextureID)(intptr_t)textureID, ImVec2(sizeX, sizeY)); - */ + @BindingMethod + public static native void ImageButton(@ArgValue(callPrefix = "(ImTextureID)(intptr_t)") int userTextureId, ImVec2 size, @OptArg ImVec2 uv0, @OptArg ImVec2 uv1, @OptArg(callValue = "-1") int framePadding, @OptArg ImVec4 bgCol, @OptArg ImVec4 tintCol); - /** - * {@code <0} framePadding uses default frame padding settings. 0 for no padding - */ - public static native boolean imageButton(int textureID, float sizeX, float sizeY, float uv0X, float uv0Y); /* - return ImGui::ImageButton((ImTextureID)(intptr_t)textureID, ImVec2(sizeX, sizeY), ImVec2(uv0X, uv0Y)); - */ + public static boolean checkbox(String label, boolean active) { + return nCheckbox(label, active); + } - /** - * {@code <0} framePadding uses default frame padding settings. 0 for no padding - */ - public static native boolean imageButton(int textureID, float sizeX, float sizeY, float uv0X, float uv0Y, float uv1X, float uv1Y); /* - return ImGui::ImageButton((ImTextureID)(intptr_t)textureID, ImVec2(sizeX, sizeY), ImVec2(uv0X, uv0Y), ImVec2(uv1X, uv1Y)); - */ - - /** - * {@code <0} framePadding uses default frame padding settings. 0 for no padding - */ - public static native boolean imageButton(int textureID, float sizeX, float sizeY, float uv0X, float uv0Y, float uv1X, float uv1Y, int framePadding); /* - return ImGui::ImageButton((ImTextureID)(intptr_t)textureID, ImVec2(sizeX, sizeY), ImVec2(uv0X, uv0Y), ImVec2(uv1X, uv1Y), framePadding); - */ - - /** - * {@code <0} framePadding uses default frame padding settings. 0 for no padding - */ - public static native boolean imageButton(int textureID, float sizeX, float sizeY, float uv0X, float uv0Y, float uv1X, float uv1Y, int framePadding, float bgColorR, float bgColorG, float bgColorB, float bgColorA); /* - return ImGui::ImageButton((ImTextureID)(intptr_t)textureID, ImVec2(sizeX, sizeY), ImVec2(uv0X, uv0Y), ImVec2(uv1X, uv1Y), framePadding, ImVec4(bgColorR, bgColorG, bgColorB, bgColorA)); - */ - - /** - * {@code <0} framePadding uses default frame padding settings. 0 for no padding - */ - public static native boolean imageButton(int textureID, float sizeX, float sizeY, float uv0X, float uv0Y, float uv1X, float uv1Y, int framePadding, float bgColorR, float bgColorG, float bgColorB, float bgColorA, float tintR, float tintG, float tintB, float tintA); /* - return ImGui::ImageButton((ImTextureID)(intptr_t)textureID, ImVec2(sizeX, sizeY), ImVec2(uv0X, uv0Y), ImVec2(uv1X, uv1Y), framePadding, ImVec4(bgColorR, bgColorG, bgColorB, bgColorA), ImVec4(tintR, tintG, tintB, tintA)); - */ - - public static native boolean checkbox(String label, boolean active); /* + private static native boolean nCheckbox(String label, boolean active); /* bool flag = (bool)active; return ImGui::Checkbox(label, &flag); */ - public static boolean checkbox(String label, ImBoolean active) { - return nCheckbox(label, active.getData()); - } + @BindingMethod + public static native boolean Checkbox(String label, ImBoolean data); - private static native boolean nCheckbox(String label, boolean[] data); /* - return ImGui::Checkbox(label, &data[0]); - */ - - public static boolean checkboxFlags(String label, ImInt v, int flagsValue) { - return nCheckboxFlags(label, v.getData(), flagsValue); - } - - private static native boolean nCheckboxFlags(String label, int[] data, int flagsValue); /* - return ImGui::CheckboxFlags(label, (unsigned int*)&data[0], flagsValue); - */ + @BindingMethod + public static native boolean CheckboxFlags(String label, ImInt flags, int flagsValue); /** * Use with e.g. if (RadioButton("one", my_value==1)) { my_value = 1; } */ - public static native boolean radioButton(String label, boolean active); /* - return ImGui::RadioButton(label, active); - */ + @BindingMethod + public static native boolean RadioButton(String label, boolean active); /** * Shortcut to handle the above pattern when value is an integer */ - public static boolean radioButton(String label, ImInt v, int vButton) { - return nRadioButton(label, v.getData(), vButton); - } + @BindingMethod + public static native boolean RadioButton(String label, ImInt v, int vButton); - private static native boolean nRadioButton(String label, int[] data, int vButton); /* - return ImGui::RadioButton(label, &data[0], vButton); - */ - - public static native void progressBar(float fraction); /* - ImGui::ProgressBar(fraction); - */ - - public static native void progressBar(float fraction, float sizeArgX, float sizeArgY); /* - ImGui::ProgressBar(fraction, ImVec2(sizeArgX, sizeArgY)); - */ - - public static native void progressBar(float fraction, float sizeArgX, float sizeArgY, String overlay); /* - ImGui::ProgressBar(fraction, ImVec2(sizeArgX, sizeArgY), overlay); - */ + @BindingMethod + public static native void ProgressBar(float fraction, @OptArg(callValue = "ImVec2(-FLT_MIN,0)") ImVec2 size, @OptArg String overlay); /** * Draw a small circle + keep the cursor on the same line. advance cursor x position by GetTreeNodeToLabelSpacing(), same distance that TreeNode() uses */ - public static native void bullet(); /* - ImGui::Bullet(); - */ + @BindingMethod + public static native void Bullet(); // Widgets: Combo Box // - The BeginCombo()/EndCombo() api allows you to manage your contents and selection state however you want it, by creating e.g. Selectable() items. // - The old Combo() api are helpers over BeginCombo()/EndCombo() which are kept available for convenience purpose. - public static native boolean beginCombo(String label, String previewValue); /* - return ImGui::BeginCombo(label, previewValue); - */ - - public static native boolean beginCombo(String label, String previewValue, int imGuiComboFlags); /* - return ImGui::BeginCombo(label, previewValue, imGuiComboFlags); - */ + @BindingMethod + public static native boolean BeginCombo(String label, String previewValue, @OptArg int imGuiComboFlags); /** * Only call EndCombo() if BeginCombo() returns true! */ - public static native void endCombo(); /* - ImGui::EndCombo(); - */ + @BindingMethod + public static native void EndCombo(); - public static boolean combo(String label, ImInt currentItem, String[] items) { - return nCombo(label, currentItem.getData(), items, items.length, -1); - } - - public static boolean combo(String label, ImInt currentItem, String[] items, int popupMaxHeightInItems) { - return nCombo(label, currentItem.getData(), items, items.length, popupMaxHeightInItems); - } - - private static native boolean nCombo(String label, int[] currentItem, String[] items, int itemsCount, int popupMaxHeightInItems); /* - const char* listboxItems[itemsCount]; - - for (int i = 0; i < itemsCount; i++) { - jstring string = (jstring)env->GetObjectArrayElement(items, i); - const char* rawString = env->GetStringUTFChars(string, JNI_FALSE); - listboxItems[i] = rawString; - } - - bool flag = ImGui::Combo(label, ¤tItem[0], listboxItems, itemsCount, popupMaxHeightInItems); - - for (int i = 0; i< itemsCount; i++) { - jstring string = (jstring)env->GetObjectArrayElement(items, i); - env->ReleaseStringUTFChars(string, listboxItems[i]); - } - - return flag; - */ + @BindingMethod + public static native boolean Combo(String label, ImInt currentItem, String[] items, Void itemsCount, @OptArg int popupMaxHeightInItems); /** * Separate items with \0 within a string, end item-list with \0\0. e.g. "One\0Two\0Three\0" */ - public static boolean combo(String label, ImInt currentItem, String itemsSeparatedByZeros) { - return nCombo(label, currentItem.getData(), itemsSeparatedByZeros, -1); - } - - public static boolean combo(String label, ImInt currentItem, String itemsSeparatedByZeros, int popupMaxHeightInItems) { - return nCombo(label, currentItem.getData(), itemsSeparatedByZeros, popupMaxHeightInItems); - } - - private static native boolean nCombo(String label, int[] currentItem, String itemsSeparatedByZeros, int popupMaxHeightInItems); /* - return ImGui::Combo(label, ¤tItem[0], itemsSeparatedByZeros, popupMaxHeightInItems); - */ + @BindingMethod + public static native boolean Combo(String label, ImInt currentItem, String itemsSeparatedByZeros, @OptArg int popupMaxHeightInItems); // Widgets: Drag Sliders // - CTRL+Click on any drag box to turn them into an input box. Manually input values aren't clamped and can go off-bounds. @@ -1987,604 +1116,71 @@ public class ImGui { // - Legacy: Pre-1.78 there are DragXXX() function signatures that takes a final `float power=1.0f' argument instead of the `ImGuiSliderFlags flags=0' argument. // If you get a warning converting a float to ImGuiSliderFlags, read https://github.com/ocornut/imgui/issues/3361 - public static native boolean dragFloat(String label, float[] v); /* - return ImGui::DragFloat(label, &v[0]); - */ + /** + * If {@code vMin >= vMax} we have no bound + */ + @BindingMethod + public static native boolean DragFloat(String label, float[] v, @OptArg float vSpeed, @OptArg float vMin, @OptArg float vMax, @OptArg(callValue = "\"%.3f\"") String format, @OptArg int imGuiSliderFlags); - public static native boolean dragFloat(String label, float[] v, float vSpeed); /* - return ImGui::DragFloat(label, &v[0], vSpeed); - */ + @BindingMethod + public static native boolean DragFloat2(String label, float[] v, @OptArg float vSpeed, @OptArg float vMin, @OptArg float vMax, @OptArg(callValue = "\"%.3f\"") String format, @OptArg int imGuiSliderFlags); + + @BindingMethod + public static native boolean DragFloat3(String label, float[] v, @OptArg float vSpeed, @OptArg float vMin, @OptArg float vMax, @OptArg(callValue = "\"%.3f\"") String format, @OptArg int imGuiSliderFlags); + + @BindingMethod + public static native boolean DragFloat4(String label, float[] v, @OptArg float vSpeed, @OptArg float vMin, @OptArg float vMax, @OptArg(callValue = "\"%.3f\"") String format, @OptArg int imGuiSliderFlags); + + @BindingMethod + public static native boolean DragFloatRange2(String label, float[] vCurrentMin, float[] vCurrentMax, float vSpeed, @OptArg float vMin, @OptArg float vMax, @OptArg String format, @OptArg String formatMax, @OptArg int imGuiSliderFlags); /** * If {@code vMin >= vMax} we have no bound */ - public static native boolean dragFloat(String label, float[] v, float vSpeed, float vMin, float vMax); /* - return ImGui::DragFloat(label, &v[0], vSpeed, vMin, vMax); - */ + @BindingMethod + public static native boolean DragInt(String label, int[] v, @OptArg float vSpeed, @OptArg int vMin, @OptArg int vMax, @OptArg(callValue = "\"%d\"") String format, @OptArg int imGuiSliderFlags); - /** - * If {@code vMin >= vMax} we have no bound - */ - public static native boolean dragFloat(String label, float[] v, float vSpeed, float vMin, float vMax, String format); /* - return ImGui::DragFloat(label, &v[0], vSpeed, vMin, vMax, format); - */ + @BindingMethod + public static native boolean DragInt2(String label, int[] v, @OptArg float vSpeed, @OptArg int vMin, @OptArg int vMax, @OptArg(callValue = "\"%d\"") String format, @OptArg int imGuiSliderFlags); - /** - * If {@code vMin >= vMax} we have no bound - */ - public static native boolean dragFloat(String label, float[] v, float vSpeed, float vMin, float vMax, String format, int imGuiSliderFlags); /* - return ImGui::DragFloat(label, &v[0], vSpeed, vMin, vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ + @BindingMethod + public static native boolean DragInt3(String label, int[] v, @OptArg float vSpeed, @OptArg int vMin, @OptArg int vMax, @OptArg(callValue = "\"%d\"") String format, @OptArg int imGuiSliderFlags); - public static native boolean dragFloat2(String label, float[] v); /* - return ImGui::DragFloat2(label, v); - */ + @BindingMethod + public static native boolean DragInt4(String label, int[] v, @OptArg float vSpeed, @OptArg int vMin, @OptArg int vMax, @OptArg(callValue = "\"%d\"") String format, @OptArg int imGuiSliderFlags); - public static native boolean dragFloat2(String label, float[] v, float vSpeed); /* - return ImGui::DragFloat2(label, v, vSpeed); - */ + @BindingMethod + public static native boolean DragIntRange2(String label, int[] vCurrentMin, int[] vCurrentMax, @OptArg float vSpeed, @OptArg int vMin, @OptArg int vMax, @OptArg String format, @OptArg String formatMax, @OptArg int imGuiSliderFlags); - public static native boolean dragFloat2(String label, float[] v, float vSpeed, float vMin); /* - return ImGui::DragFloat2(label, v, vSpeed, vMin); - */ + @BindingMethod + public static native boolean DragScalar(String label, Void ImGuiDataType_S16, short[] pData, @OptArg float vSpeed, @OptArg @ArgValue(callPrefix = "&") short pMin, @OptArg @ArgValue(callPrefix = "&") short pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean dragFloat2(String label, float[] v, float vSpeed, float vMin, float vMax); /* - return ImGui::DragFloat2(label, v, vSpeed, vMin, vMax); - */ + @BindingMethod + public static native boolean DragScalar(String label, Void ImGuiDataType_S32, int[] pData, @OptArg float vSpeed, @OptArg @ArgValue(callPrefix = "&") int pMin, @OptArg @ArgValue(callPrefix = "&") int pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean dragFloat2(String label, float[] v, float vSpeed, float vMin, float vMax, String format); /* - return ImGui::DragFloat2(label, v, vSpeed, vMin, vMax, format); - */ + @BindingMethod + public static native boolean DragScalar(String label, Void ImGuiDataType_S64, long[] pData, @OptArg float vSpeed, @OptArg @ArgValue(callPrefix = "&") long pMin, @OptArg @ArgValue(callPrefix = "&") long pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean dragFloat2(String label, float[] v, float vSpeed, float vMin, float vMax, String format, int imGuiSliderFlags); /* - return ImGui::DragFloat2(label, v, vSpeed, vMin, vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ + @BindingMethod + public static native boolean DragScalar(String label, Void ImGuiDataType_Float, float[] pData, @OptArg float vSpeed, @OptArg @ArgValue(callPrefix = "&") float pMin, @OptArg @ArgValue(callPrefix = "&") float pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean dragFloat3(String label, float[] v); /* - return ImGui::DragFloat3(label, v); - */ + @BindingMethod + public static native boolean DragScalar(String label, Void ImGuiDataType_Double, double[] pData, @OptArg float vSpeed, @OptArg @ArgValue(callPrefix = "&") double pMin, @OptArg @ArgValue(callPrefix = "&") double pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean dragFloat3(String label, float[] v, float vSpeed); /* - return ImGui::DragFloat3(label, v, vSpeed); - */ + @BindingMethod + public static native boolean DragScalarN(String label, Void ImGuiDataType_S16, short[] pData, int components, @OptArg float vSpeed, @OptArg @ArgValue(callPrefix = "&") short pMin, @OptArg @ArgValue(callPrefix = "&") short pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean dragFloat3(String label, float[] v, float vSpeed, float vMin); /* - return ImGui::DragFloat3(label, v, vSpeed, vMin); - */ + @BindingMethod + public static native boolean DragScalarN(String label, Void ImGuiDataType_S32, int[] pData, int components, @OptArg float vSpeed, @OptArg @ArgValue(callPrefix = "&") int pMin, @OptArg @ArgValue(callPrefix = "&") int pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean dragFloat3(String label, float[] v, float vSpeed, float vMin, float vMax); /* - return ImGui::DragFloat3(label, v, vSpeed, vMin, vMax); - */ + @BindingMethod + public static native boolean DragScalarN(String label, Void ImGuiDataType_S64, long[] pData, int components, @OptArg float vSpeed, @OptArg @ArgValue(callPrefix = "&") long pMin, @OptArg @ArgValue(callPrefix = "&") long pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean dragFloat3(String label, float[] v, float vSpeed, float vMin, float vMax, String format); /* - return ImGui::DragFloat3(label, v, vSpeed, vMin, vMax, format); - */ + @BindingMethod + public static native boolean DragScalarN(String label, Void ImGuiDataType_Float, float[] pData, int components, @OptArg float vSpeed, @OptArg @ArgValue(callPrefix = "&") float pMin, @OptArg @ArgValue(callPrefix = "&") float pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean dragFloat3(String label, float[] v, float vSpeed, float vMin, float vMax, String format, int imGuiSliderFlags); /* - return ImGui::DragFloat3(label, v, vSpeed, vMin, vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static native boolean dragFloat4(String label, float[] v); /* - return ImGui::DragFloat4(label, v); - */ - - public static native boolean dragFloat4(String label, float[] v, float vSpeed); /* - return ImGui::DragFloat4(label, v, vSpeed); - */ - - public static native boolean dragFloat4(String label, float[] v, float vSpeed, float vMin); /* - return ImGui::DragFloat4(label, v, vSpeed, vMin); - */ - - public static native boolean dragFloat4(String label, float[] v, float vSpeed, float vMin, float vMax); /* - return ImGui::DragFloat4(label, v, vSpeed, vMin, vMax); - */ - - public static native boolean dragFloat4(String label, float[] v, float vSpeed, float vMin, float vMax, String format); /* - return ImGui::DragFloat4(label, v, vSpeed, vMin, vMax, format); - */ - - public static native boolean dragFloat4(String label, float[] v, float vSpeed, float vMin, float vMax, String format, int imGuiSliderFlags); /* - return ImGui::DragFloat4(label, v, vSpeed, vMin, vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static native boolean dragFloatRange2(String label, float[] vCurrentMin, float[] vCurrentMax); /* - return ImGui::DragFloatRange2(label, &vCurrentMin[0], &vCurrentMax[0]); - */ - - public static native boolean dragFloatRange2(String label, float[] vCurrentMin, float[] vCurrentMax, float vSpeed); /* - return ImGui::DragFloatRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed); - */ - - public static native boolean dragFloatRange2(String label, float[] vCurrentMin, float[] vCurrentMax, float vSpeed, float vMin); /* - return ImGui::DragFloatRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed, vMin); - */ - - public static native boolean dragFloatRange2(String label, float[] vCurrentMin, float[] vCurrentMax, float vSpeed, float vMin, float vMax); /* - return ImGui::DragFloatRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed, vMin, vMax); - */ - - public static native boolean dragFloatRange2(String label, float[] vCurrentMin, float[] vCurrentMax, float vSpeed, float vMin, float vMax, String format); /* - return ImGui::DragFloatRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed, vMin, vMax, format); - */ - - public static native boolean dragFloatRange2(String label, float[] vCurrentMin, float[] vCurrentMax, float vSpeed, float vMin, float vMax, String format, String formatMax); /* - return ImGui::DragFloatRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed, vMin, vMax, format, formatMax); - */ - - public static native boolean dragFloatRange2(String label, float[] vCurrentMin, float[] vCurrentMax, float vSpeed, float vMin, float vMax, String format, String formatMax, int imGuiSliderFlags); /* - return ImGui::DragFloatRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed, vMin, vMax, format, formatMax, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static native boolean dragInt(String label, int[] v); /* - return ImGui::DragInt(label, &v[0]); - */ - - public static native boolean dragInt(String label, int[] v, float vSpeed); /* - return ImGui::DragInt(label, &v[0], vSpeed); - */ - - public static native boolean dragInt(String label, int[] v, float vSpeed, float vMin); /* - return ImGui::DragInt(label, &v[0], vSpeed, vMin); - */ - - /** - * If {@code vMin >= vMax} we have no bound - */ - public static native boolean dragInt(String label, int[] v, float vSpeed, float vMin, float vMax); /* - return ImGui::DragInt(label, &v[0], vSpeed, vMin, vMax); - */ - - /** - * If {@code vMin >= vMax} we have no bound - */ - public static native boolean dragInt(String label, int[] v, float vSpeed, float vMin, float vMax, String format); /* - return ImGui::DragInt(label, &v[0], vSpeed, vMin, vMax, format); - */ - - public static native boolean dragInt2(String label, int[] v); /* - return ImGui::DragInt2(label, v); - */ - - public static native boolean dragInt2(String label, int[] v, float vSpeed); /* - return ImGui::DragInt2(label, v, vSpeed); - */ - - public static native boolean dragInt2(String label, int[] v, float vSpeed, float vMin); /* - return ImGui::DragInt2(label, v, vSpeed, vMin); - */ - - public static native boolean dragInt2(String label, int[] v, float vSpeed, float vMin, float vMax); /* - return ImGui::DragInt2(label, v, vSpeed, vMin, vMax); - */ - - public static native boolean dragInt2(String label, int[] v, float vSpeed, float vMin, float vMax, String format); /* - return ImGui::DragInt2(label, v, vSpeed, vMin, vMax, format); - */ - - public static native boolean dragInt3(String label, int[] v); /* - return ImGui::DragInt3(label, v); - */ - - public static native boolean dragInt3(String label, int[] v, float vSpeed); /* - return ImGui::DragInt3(label, v, vSpeed); - */ - - public static native boolean dragInt3(String label, int[] v, float vSpeed, float vMin); /* - return ImGui::DragInt3(label, v, vSpeed, vMin); - */ - - public static native boolean dragInt3(String label, int[] v, float vSpeed, float vMin, float vMax); /* - return ImGui::DragInt3(label, v, vSpeed, vMin, vMax); - */ - - public static native boolean dragInt3(String label, int[] v, float vSpeed, float vMin, float vMax, String format); /* - return ImGui::DragInt3(label, v, vSpeed, vMin, vMax, format); - */ - - public static native boolean dragInt4(String label, int[] v); /* - return ImGui::DragInt4(label, v); - */ - - public static native boolean dragInt4(String label, int[] v, float vSpeed); /* - return ImGui::DragInt4(label, v, vSpeed); - */ - - public static native boolean dragInt4(String label, int[] v, float vSpeed, float vMin); /* - return ImGui::DragInt4(label, v, vSpeed, vMin); - */ - - public static native boolean dragInt4(String label, int[] v, float vSpeed, float vMin, float vMax); /* - return ImGui::DragInt4(label, v, vSpeed, vMin, vMax); - */ - - public static native boolean dragInt4(String label, int[] v, float vSpeed, float vMin, float vMax, String format); /* - return ImGui::DragInt4(label, v, vSpeed, vMin, vMax, format); - */ - - public static native boolean dragIntRange2(String label, int[] vCurrentMin, int[] vCurrentMax); /* - return ImGui::DragIntRange2(label, &vCurrentMin[0], &vCurrentMax[0]); - */ - - public static native boolean dragIntRange2(String label, int[] vCurrentMin, int[] vCurrentMax, float vSpeed); /* - return ImGui::DragIntRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed); - */ - - public static native boolean dragIntRange2(String label, int[] vCurrentMin, int[] vCurrentMax, float vSpeed, float vMin); /* - return ImGui::DragIntRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed, vMin); - */ - - public static native boolean dragIntRange2(String label, int[] vCurrentMin, int[] vCurrentMax, float vSpeed, float vMin, float vMax); /* - return ImGui::DragIntRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed, vMin, vMax); - */ - - public static native boolean dragIntRange2(String label, int[] vCurrentMin, int[] vCurrentMax, float vSpeed, float vMin, float vMax, String format); /* - return ImGui::DragIntRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed, vMin, vMax, format); - */ - - public static native boolean dragIntRange2(String label, int[] vCurrentMin, int[] vCurrentMax, float vSpeed, float vMin, float vMax, String format, String formatMax); /* - return ImGui::DragIntRange2(label, &vCurrentMin[0], &vCurrentMax[0], vSpeed, vMin, vMax, format, formatMax); - */ - - public static boolean dragScalar(String label, int dataType, ImInt pData, float vSpeed) { - return nDragScalar(label, dataType, pData.getData(), vSpeed); - } - - private static native boolean nDragScalar(String label, int dataType, int[] pData, float vSpeed); /* - return ImGui::DragScalar(label, dataType, &pData[0], vSpeed); - */ - - public static boolean dragScalar(String label, int dataType, ImInt pData, float vSpeed, int pMin) { - return nDragScalar(label, dataType, pData.getData(), vSpeed, pMin); - } - - private static native boolean nDragScalar(String label, int dataType, int[] pData, float vSpeed, int pMin); /* - return ImGui::DragScalar(label, dataType, &pData[0], vSpeed, &pMin); - */ - - public static boolean dragScalar(String label, int dataType, ImInt pData, float vSpeed, int pMin, int pMax) { - return nDragScalar(label, dataType, pData.getData(), vSpeed, pMin, pMax); - } - - private static native boolean nDragScalar(String label, int dataType, int[] pData, float vSpeed, int pMin, int pMax); /* - return ImGui::DragScalar(label, dataType, &pData[0], vSpeed, &pMin, &pMax); - */ - - public static boolean dragScalar(String label, int dataType, ImInt pData, float vSpeed, int pMin, int pMax, String format) { - return nDragScalar(label, dataType, pData.getData(), vSpeed, pMin, pMax, format, 0); - } - - public static boolean dragScalar(String label, int dataType, ImInt pData, float vSpeed, int pMin, int pMax, String format, int imGuiSliderFlags) { - return nDragScalar(label, dataType, pData.getData(), vSpeed, pMin, pMax, format, imGuiSliderFlags); - } - - private static native boolean nDragScalar(String label, int dataType, int[] pData, float vSpeed, int pMin, int pMax, String format, int imGuiSliderFlags); /* - return ImGui::DragScalar(label, dataType, &pData[0], vSpeed, &pMin, &pMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean dragScalar(String label, int dataType, ImFloat pData, float vSpeed) { - return nDragScalar(label, dataType, pData.getData(), vSpeed); - } - - private static native boolean nDragScalar(String label, int dataType, float[] pData, float vSpeed); /* - return ImGui::DragScalar(label, dataType, &pData[0], vSpeed); - */ - - public static boolean dragScalar(String label, int dataType, ImFloat pData, float vSpeed, float pMin) { - return nDragScalar(label, dataType, pData.getData(), vSpeed, pMin); - } - - private static native boolean nDragScalar(String label, int dataType, float[] pData, float vSpeed, float pMin); /* - return ImGui::DragScalar(label, dataType, &pData[0], vSpeed, &pMin); - */ - - public static boolean dragScalar(String label, int dataType, ImFloat pData, float vSpeed, float pMin, float pMax) { - return nDragScalar(label, dataType, pData.getData(), vSpeed, pMin, pMax); - } - - private static native boolean nDragScalar(String label, int dataType, float[] pData, float vSpeed, float pMin, float pMax); /* - return ImGui::DragScalar(label, dataType, &pData[0], vSpeed, &pMin, &pMax); - */ - - public static boolean dragScalar(String label, int dataType, ImFloat pData, float vSpeed, float pMin, float pMax, String format) { - return nDragScalar(label, dataType, pData.getData(), vSpeed, pMin, pMax, format, 0); - } - - public static boolean dragScalar(String label, int dataType, ImFloat pData, float vSpeed, float pMin, float pMax, String format, int imGuiSliderFlags) { - return nDragScalar(label, dataType, pData.getData(), vSpeed, pMin, pMax, format, imGuiSliderFlags); - } - - private static native boolean nDragScalar(String label, int dataType, float[] pData, float vSpeed, float pMin, float pMax, String format, int imGuiSliderFlags); /* - return ImGui::DragScalar(label, dataType, &pData[0], vSpeed, &pMin, &pMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean dragScalar(String label, int dataType, ImDouble pData, float vSpeed) { - return nDragScalar(label, dataType, pData.getData(), vSpeed); - } - - private static native boolean nDragScalar(String label, int dataType, double[] pData, float vSpeed); /* - return ImGui::DragScalar(label, dataType, &pData[0], vSpeed); - */ - - public static boolean dragScalar(String label, int dataType, ImDouble pData, float vSpeed, double pMin) { - return nDragScalar(label, dataType, pData.getData(), vSpeed, pMin); - } - - private static native boolean nDragScalar(String label, int dataType, double[] pData, float vSpeed, double pMin); /* - return ImGui::DragScalar(label, dataType, &pData[0], vSpeed, &pMin); - */ - - public static boolean dragScalar(String label, int dataType, ImDouble pData, float vSpeed, double pMin, double pMax) { - return nDragScalar(label, dataType, pData.getData(), vSpeed, pMin, pMax); - } - - private static native boolean nDragScalar(String label, int dataType, double[] pData, float vSpeed, double pMin, double pMax); /* - return ImGui::DragScalar(label, dataType, &pData[0], vSpeed, &pMin, &pMax); - */ - - public static boolean dragScalar(String label, int dataType, ImDouble pData, float vSpeed, double pMin, double pMax, String format) { - return nDragScalar(label, dataType, pData.getData(), vSpeed, pMin, pMax, format, 0); - } - - public static boolean dragScalar(String label, int dataType, ImDouble pData, float vSpeed, double pMin, double pMax, String format, int imGuiSliderFlags) { - return nDragScalar(label, dataType, pData.getData(), vSpeed, pMin, pMax, format, imGuiSliderFlags); - } - - private static native boolean nDragScalar(String label, int dataType, double[] pData, float vSpeed, double pMin, double pMax, String format, int imGuiSliderFlags); /* - return ImGui::DragScalar(label, dataType, &pData[0], vSpeed, &pMin, &pMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean dragScalar(String label, int dataType, ImLong pData, float vSpeed) { - return nDragScalar(label, dataType, pData.getData(), vSpeed); - } - - private static native boolean nDragScalar(String label, int dataType, long[] pData, float vSpeed); /* - return ImGui::DragScalar(label, dataType, &pData[0], vSpeed); - */ - - public static boolean dragScalar(String label, int dataType, ImLong pData, float vSpeed, long pMin) { - return nDragScalar(label, dataType, pData.getData(), vSpeed, pMin); - } - - private static native boolean nDragScalar(String label, int dataType, long[] pData, float vSpeed, long pMin); /* - return ImGui::DragScalar(label, dataType, &pData[0], vSpeed, &pMin); - */ - - public static boolean dragScalar(String label, int dataType, ImLong pData, float vSpeed, long pMin, long pMax) { - return nDragScalar(label, dataType, pData.getData(), vSpeed, pMin, pMax); - } - - private static native boolean nDragScalar(String label, int dataType, long[] pData, float vSpeed, long pMin, long pMax); /* - return ImGui::DragScalar(label, dataType, &pData[0], vSpeed, &pMin, &pMax); - */ - - public static boolean dragScalar(String label, int dataType, ImLong pData, float vSpeed, long pMin, long pMax, String format) { - return nDragScalar(label, dataType, pData.getData(), vSpeed, pMin, pMax, format, 0); - } - - public static boolean dragScalar(String label, int dataType, ImLong pData, float vSpeed, long pMin, long pMax, String format, int imGuiSliderFlags) { - return nDragScalar(label, dataType, pData.getData(), vSpeed, pMin, pMax, format, imGuiSliderFlags); - } - - private static native boolean nDragScalar(String label, int dataType, long[] pData, float vSpeed, long pMin, long pMax, String format, int imGuiSliderFlags); /* - return ImGui::DragScalar(label, dataType, &pData[0], vSpeed, &pMin, &pMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean dragScalar(String label, int dataType, ImShort pData, float vSpeed) { - return nDragScalar(label, dataType, pData.getData(), vSpeed); - } - - private static native boolean nDragScalar(String label, int dataType, short[] pData, float vSpeed); /* - return ImGui::DragScalar(label, dataType, &pData[0], vSpeed); - */ - - public static boolean dragScalar(String label, int dataType, ImShort pData, float vSpeed, short pMin) { - return nDragScalar(label, dataType, pData.getData(), vSpeed, pMin); - } - - private static native boolean nDragScalar(String label, int dataType, short[] pData, float vSpeed, short pMin); /* - return ImGui::DragScalar(label, dataType, &pData[0], vSpeed, &pMin); - */ - - public static boolean dragScalar(String label, int dataType, ImShort pData, float vSpeed, short pMin, short pMax) { - return nDragScalar(label, dataType, pData.getData(), vSpeed, pMin, pMax); - } - - private static native boolean nDragScalar(String label, int dataType, short[] pData, float vSpeed, short pMin, short pMax); /* - return ImGui::DragScalar(label, dataType, &pData[0], vSpeed, &pMin, &pMax); - */ - - public static boolean dragScalar(String label, int dataType, ImShort pData, float vSpeed, short pMin, short pMax, String format) { - return nDragScalar(label, dataType, pData.getData(), vSpeed, pMin, pMax, format, 0); - } - - public static boolean dragScalar(String label, int dataType, ImShort pData, float vSpeed, short pMin, short pMax, String format, int imGuiSliderFlags) { - return nDragScalar(label, dataType, pData.getData(), vSpeed, pMin, pMax, format, imGuiSliderFlags); - } - - private static native boolean nDragScalar(String label, int dataType, short[] pData, float vSpeed, short pMin, short pMax, String format, int imGuiSliderFlags); /* - return ImGui::DragScalar(label, dataType, &pData[0], vSpeed, &pMin, &pMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean dragScalarN(String label, int dataType, ImInt pData, int components, float vSpeed) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed); - } - - private static native boolean nDragScalarN(String label, int dataType, int[] pData, int components, float vSpeed); /* - return ImGui::DragScalarN(label, dataType, &pData[0], components, vSpeed); - */ - - public static boolean dragScalarN(String label, int dataType, ImInt pData, int components, float vSpeed, int pMin) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed, pMin); - } - - private static native boolean nDragScalarN(String label, int dataType, int[] pData, int components, float vSpeed, int pMin); /* - return ImGui::DragScalarN(label, dataType, &pData[0], components, vSpeed, &pMin); - */ - - public static boolean dragScalarN(String label, int dataType, ImInt pData, int components, float vSpeed, int pMin, int pMax) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed, pMin, pMax); - } - - private static native boolean nDragScalarN(String label, int dataType, int[] pData, int components, float vSpeed, int pMin, int pMax); /* - return ImGui::DragScalarN(label, dataType, &pData[0], components, vSpeed, &pMin, &pMax); - */ - - public static boolean dragScalarN(String label, int dataType, ImInt pData, int components, float vSpeed, int pMin, int pMax, String format) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed, pMin, pMax, format, 0); - } - - public static boolean dragScalarN(String label, int dataType, ImInt pData, int components, float vSpeed, int pMin, int pMax, String format, int imGuiSliderFlags) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed, pMin, pMax, format, imGuiSliderFlags); - } - - private static native boolean nDragScalarN(String label, int dataType, int[] pData, int components, float vSpeed, int pMin, int pMax, String format, int imGuiSliderFlags); /* - return ImGui::DragScalarN(label, dataType, &pData[0], components, vSpeed, &pMin, &pMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean dragScalarN(String label, int dataType, ImFloat pData, int components, float vSpeed) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed); - } - - private static native boolean nDragScalarN(String label, int dataType, float[] pData, int components, float vSpeed); /* - return ImGui::DragScalarN(label, dataType, &pData[0], components, vSpeed); - */ - - public static boolean dragScalarN(String label, int dataType, ImFloat pData, int components, float vSpeed, float pMin) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed, pMin); - } - - private static native boolean nDragScalarN(String label, int dataType, float[] pData, int components, float vSpeed, float pMin); /* - return ImGui::DragScalarN(label, dataType, &pData[0], components, vSpeed, &pMin); - */ - - public static boolean dragScalarN(String label, int dataType, ImFloat pData, int components, float vSpeed, float pMin, float pMax) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed, pMin, pMax); - } - - private static native boolean nDragScalarN(String label, int dataType, float[] pData, int components, float vSpeed, float pMin, float pMax); /* - return ImGui::DragScalarN(label, dataType, &pData[0], components, vSpeed, &pMin, &pMax); - */ - - public static boolean dragScalarN(String label, int dataType, ImFloat pData, int components, float vSpeed, float pMin, float pMax, String format) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed, pMin, pMax, format, 0); - } - - public static boolean dragScalarN(String label, int dataType, ImFloat pData, int components, float vSpeed, float pMin, float pMax, String format, int imGuiSliderFlags) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed, pMin, pMax, format, imGuiSliderFlags); - } - - private static native boolean nDragScalarN(String label, int dataType, float[] pData, int components, float vSpeed, float pMin, float pMax, String format, int imGuiSliderFlags); /* - return ImGui::DragScalarN(label, dataType, &pData[0], components, vSpeed, &pMin, &pMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean dragScalarN(String label, int dataType, ImDouble pData, int components, float vSpeed) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed); - } - - private static native boolean nDragScalarN(String label, int dataType, double[] pData, int components, float vSpeed); /* - return ImGui::DragScalarN(label, dataType, &pData[0], components, vSpeed); - */ - - public static boolean dragScalarN(String label, int dataType, ImDouble pData, int components, float vSpeed, double pMin) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed, pMin); - } - - private static native boolean nDragScalarN(String label, int dataType, double[] pData, int components, float vSpeed, double pMin); /* - return ImGui::DragScalarN(label, dataType, &pData[0], components, vSpeed, &pMin); - */ - - public static boolean dragScalarN(String label, int dataType, ImDouble pData, int components, float vSpeed, double pMin, double pMax) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed, pMin, pMax); - } - - private static native boolean nDragScalarN(String label, int dataType, double[] pData, int components, float vSpeed, double pMin, double pMax); /* - return ImGui::DragScalarN(label, dataType, &pData[0], components, vSpeed, &pMin, &pMax); - */ - - public static boolean dragScalarN(String label, int dataType, ImDouble pData, int components, float vSpeed, double pMin, double pMax, String format) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed, pMin, pMax, format, 0); - } - - public static boolean dragScalarN(String label, int dataType, ImDouble pData, int components, float vSpeed, double pMin, double pMax, String format, int imGuiSliderFlags) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed, pMin, pMax, format, imGuiSliderFlags); - } - - private static native boolean nDragScalarN(String label, int dataType, double[] pData, int components, float vSpeed, double pMin, double pMax, String format, int imGuiSliderFlags); /* - return ImGui::DragScalarN(label, dataType, &pData[0], components, vSpeed, &pMin, &pMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean dragScalarN(String label, int dataType, ImLong pData, int components, float vSpeed) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed); - } - - private static native boolean nDragScalarN(String label, int dataType, long[] pData, int components, float vSpeed); /* - return ImGui::DragScalarN(label, dataType, &pData[0], components, vSpeed); - */ - - public static boolean dragScalarN(String label, int dataType, ImLong pData, int components, float vSpeed, long pMin) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed, pMin); - } - - private static native boolean nDragScalarN(String label, int dataType, long[] pData, int components, float vSpeed, long pMin); /* - return ImGui::DragScalarN(label, dataType, &pData[0], components, vSpeed, &pMin); - */ - - public static boolean dragScalarN(String label, int dataType, ImLong pData, int components, float vSpeed, long pMin, long pMax) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed, pMin, pMax); - } - - private static native boolean nDragScalarN(String label, int dataType, long[] pData, int components, float vSpeed, long pMin, long pMax); /* - return ImGui::DragScalarN(label, dataType, &pData[0], components, vSpeed, &pMin, &pMax); - */ - - public static boolean dragScalarN(String label, int dataType, ImLong pData, int components, float vSpeed, long pMin, long pMax, String format) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed, pMin, pMax, format, 0); - } - - public static boolean dragScalarN(String label, int dataType, ImLong pData, int components, float vSpeed, long pMin, long pMax, String format, int imGuiSliderFlags) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed, pMin, pMax, format, imGuiSliderFlags); - } - - private static native boolean nDragScalarN(String label, int dataType, long[] pData, int components, float vSpeed, long pMin, long pMax, String format, int imGuiSliderFlags); /* - return ImGui::DragScalarN(label, dataType, &pData[0], components, vSpeed, &pMin, &pMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean dragScalarN(String label, int dataType, ImShort pData, int components, float vSpeed) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed); - } - - private static native boolean nDragScalarN(String label, int dataType, short[] pData, int components, float vSpeed); /* - return ImGui::DragScalarN(label, dataType, &pData[0], components, vSpeed); - */ - - public static boolean dragScalarN(String label, int dataType, ImShort pData, int components, float vSpeed, short pMin) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed, pMin); - } - - private static native boolean nDragScalarN(String label, int dataType, short[] pData, int components, float vSpeed, short pMin); /* - return ImGui::DragScalarN(label, dataType, &pData[0], components, vSpeed, &pMin); - */ - - public static boolean dragScalarN(String label, int dataType, ImShort pData, int components, float vSpeed, short pMin, short pMax) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed, pMin, pMax); - } - - private static native boolean nDragScalarN(String label, int dataType, short[] pData, int components, float vSpeed, short pMin, short pMax); /* - return ImGui::DragScalarN(label, dataType, &pData[0], components, vSpeed, &pMin, &pMax); - */ - - public static boolean dragScalarN(String label, int dataType, ImShort pData, int components, float vSpeed, short pMin, short pMax, String format) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed, pMin, pMax, format, 0); - } - - public static boolean dragScalarN(String label, int dataType, ImShort pData, int components, float vSpeed, short pMin, short pMax, String format, int imGuiSliderFlags) { - return nDragScalarN(label, dataType, pData.getData(), components, vSpeed, pMin, pMax, format, imGuiSliderFlags); - } - - private static native boolean nDragScalarN(String label, int dataType, short[] pData, int components, float vSpeed, short pMin, short pMax, String format, int imGuiSliderFlags); /* - return ImGui::DragScalarN(label, dataType, &pData[0], components, vSpeed, &pMin, &pMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ + @BindingMethod + public static native boolean DragScalarN(String label, Void ImGuiDataType_Double, double[] pData, int components, @OptArg float vSpeed, @OptArg @ArgValue(callPrefix = "&") double pMin, @OptArg @ArgValue(callPrefix = "&") double pMax, @OptArg String format, @OptArg int imGuiSliderFlags); // Widgets: Regular Sliders // - CTRL+Click on any slider to turn them into an input box. Manually input values aren't clamped and can go off-bounds. @@ -2596,421 +1192,83 @@ public class ImGui { /** * Adjust format to decorate the value with a prefix or a suffix for in-slider labels or unit display. */ - public static native boolean sliderFloat(String label, float[] v, float vMin, float vMax); /* - return ImGui::SliderFloat(label, &v[0],vMin, vMax); - */ + @BindingMethod + public static native boolean SliderFloat(String label, float[] v, float vMin, float vMax, @OptArg(callValue = "\"%.3f\"") String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderFloat(String label, float[] v, float vMin, float vMax, String format); /* - return ImGui::SliderFloat(label, &v[0], vMin, vMax, format); - */ + @BindingMethod + public static native boolean SliderFloat2(String label, float[] v, float vMin, float vMax, @OptArg(callValue = "\"%.3f\"") String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderFloat(String label, float[] v, float vMin, float vMax, String format, int imGuiSliderFlags); /* - return ImGui::SliderFloat(label, &v[0], vMin, vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ + @BindingMethod + public static native boolean SliderFloat3(String label, float[] v, float vMin, float vMax, @OptArg(callValue = "\"%.3f\"") String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderFloat2(String label, float[] v, float vMin, float vMax); /* - return ImGui::SliderFloat2(label, v, vMin, vMax); - */ + @BindingMethod + public static native boolean SliderFloat4(String label, float[] v, float vMin, float vMax, @OptArg(callValue = "\"%.3f\"") String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderFloat2(String label, float[] v, float vMin, float vMax, String format); /* - return ImGui::SliderFloat2(label, v, vMin, vMax, format); - */ + @BindingMethod + public static native boolean SliderAngle(String label, float[] vRad, @OptArg float vDegreesMin, @OptArg float vDegreesMax, @OptArg(callValue = "\"%.0f deg\"") String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderFloat2(String label, float[] v, float vMin, float vMax, String format, int imGuiSliderFlags); /* - return ImGui::SliderFloat2(label, v, vMin, vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ + @BindingMethod + public static native boolean SliderInt(String label, int[] v, int vMin, int vMax, @OptArg(callValue = "\"%d\"") String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderFloat3(String label, float[] v, float vMin, float vMax); /* - return ImGui::SliderFloat3(label, v, vMin, vMax); - */ + @BindingMethod + public static native boolean SliderInt2(String label, int[] v, int vMin, int vMax, @OptArg(callValue = "\"%d\"") String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderFloat3(String label, float[] v, float vMin, float vMax, String format); /* - return ImGui::SliderFloat3(label, v, vMin, vMax, format); - */ + @BindingMethod + public static native boolean SliderInt3(String label, int[] v, int vMin, int vMax, @OptArg(callValue = "\"%d\"") String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderFloat3(String label, float[] v, float vMin, float vMax, String format, int imGuiSliderFlags); /* - return ImGui::SliderFloat3(label, v, vMin, vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ + @BindingMethod + public static native boolean SliderInt4(String label, int[] v, int vMin, int vMax, @OptArg(callValue = "\"%d\"") String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderFloat4(String label, float[] v, float vMin, float vMax); /* - return ImGui::SliderFloat4(label, v, vMin, vMax); - */ + @BindingMethod + public static native boolean SliderScalar(String label, Void ImGuiDataType_S16, short[] pData, @ArgValue(callPrefix = "&") short pMin, @ArgValue(callPrefix = "&") short pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderFloat4(String label, float[] v, float vMin, float vMax, String format); /* - return ImGui::SliderFloat4(label, v, vMin, vMax, format); - */ + @BindingMethod + public static native boolean SliderScalar(String label, Void ImGuiDataType_S32, int[] pData, @ArgValue(callPrefix = "&") int pMin, @ArgValue(callPrefix = "&") int pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderFloat4(String label, float[] v, float vMin, float vMax, String format, int imGuiSliderFlags); /* - return ImGui::SliderFloat4(label, v, vMin, vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ + @BindingMethod + public static native boolean SliderScalar(String label, Void ImGuiDataType_S64, long[] pData, @ArgValue(callPrefix = "&") long pMin, @ArgValue(callPrefix = "&") long pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderAngle(String label, float[] vRad); /* - return ImGui::SliderAngle(label, &vRad[0]); - */ + @BindingMethod + public static native boolean SliderScalar(String label, Void ImGuiDataType_Float, float[] pData, @ArgValue(callPrefix = "&") float pMin, @ArgValue(callPrefix = "&") float pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderAngle(String label, float[] vRad, float vDegreesMin); /* - return ImGui::SliderAngle(label, &vRad[0], vDegreesMin); - */ + @BindingMethod + public static native boolean SliderScalar(String label, Void ImGuiDataType_Double, double[] pData, @ArgValue(callPrefix = "&") double pMin, @ArgValue(callPrefix = "&") double pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderAngle(String label, float[] vRad, float vDegreesMin, float vDegreesMax); /* - return ImGui::SliderAngle(label, &vRad[0], vDegreesMin, vDegreesMax); - */ + @BindingMethod + public static native boolean SliderScalarN(String label, Void ImGuiDataType_S16, short[] pData, int components, @ArgValue(callPrefix = "&") short pMin, @ArgValue(callPrefix = "&") short pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderAngle(String label, float[] vRad, float vDegreesMin, float vDegreesMax, String format); /* - return ImGui::SliderAngle(label, &vRad[0], vDegreesMin, vDegreesMax, format); - */ + @BindingMethod + public static native boolean SliderScalarN(String label, Void ImGuiDataType_S32, int[] pData, int components, @ArgValue(callPrefix = "&") int pMin, @ArgValue(callPrefix = "&") int pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderInt(String label, int[] v, int vMin, int vMax); /* - return ImGui::SliderInt(label, &v[0], vMin, vMax); - */ + @BindingMethod + public static native boolean SliderScalarN(String label, Void ImGuiDataType_S64, long[] pData, int components, @ArgValue(callPrefix = "&") long pMin, @ArgValue(callPrefix = "&") long pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderInt(String label, int[] v, int vMin, int vMax, String format); /* - return ImGui::SliderInt(label, &v[0], vMin, vMax, format); - */ + @BindingMethod + public static native boolean SliderScalarN(String label, Void ImGuiDataType_Float, float[] pData, int components, @ArgValue(callPrefix = "&") float pMin, @ArgValue(callPrefix = "&") float pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderInt2(String label, int[] v, int vMin, int vMax); /* - return ImGui::SliderInt2(label, v, vMin, vMax); - */ + @BindingMethod + public static native boolean SliderScalarN(String label, Void ImGuiDataType_Double, double[] pData, int components, @ArgValue(callPrefix = "&") double pMin, @ArgValue(callPrefix = "&") double pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderInt2(String label, int[] v, int vMin, int vMax, String format); /* - return ImGui::SliderInt2(label, v, vMin, vMax, format); - */ + @BindingMethod + public static native boolean VSliderFloat(String label, ImVec2 size, float[] v, float vMin, float vMax, @OptArg(callValue = "\"%.3f\"") String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderInt3(String label, int[] v, int vMin, int vMax); /* - return ImGui::SliderInt3(label, v, vMin, vMax); - */ + @BindingMethod + public static native boolean VSliderInt(String label, ImVec2 size, int[] v, int vMin, int vMax, @OptArg(callValue = "\"%d\"") String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderInt3(String label, int[] v, int vMin, int vMax, String format); /* - return ImGui::SliderInt3(label, v, vMin, vMax, format); - */ + @BindingMethod + public static native boolean VSliderScalar(String label, ImVec2 size, Void ImGuiDataType_S16, short[] pData, @ArgValue(callPrefix = "&") short pMin, @ArgValue(callPrefix = "&") short pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderInt4(String label, int[] v, int vMin, int vMax); /* - return ImGui::SliderInt4(label, v, vMin, vMax); - */ + @BindingMethod + public static native boolean VSliderScalar(String label, ImVec2 size, Void ImGuiDataType_S32, int[] pData, @ArgValue(callPrefix = "&") int pMin, @ArgValue(callPrefix = "&") int pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean sliderInt4(String label, int[] v, int vMin, int vMax, String format); /* - return ImGui::SliderInt4(label, v, vMin, vMax, format); - */ + @BindingMethod + public static native boolean VSliderScalar(String label, ImVec2 size, Void ImGuiDataType_S64, long[] pData, @ArgValue(callPrefix = "&") long pMin, @ArgValue(callPrefix = "&") long pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - public static boolean sliderScalar(String label, int dataType, ImInt v, int vMin, int vMax) { - return nSliderScalar(label, dataType, v.getData(), vMin, vMax); - } + @BindingMethod + public static native boolean VSliderScalar(String label, ImVec2 size, Void ImGuiDataType_Float, float[] pData, @ArgValue(callPrefix = "&") float pMin, @ArgValue(callPrefix = "&") float pMax, @OptArg String format, @OptArg int imGuiSliderFlags); - private static native boolean nSliderScalar(String label, int dataType, int[] v, int vMin, int vMax); /* - return ImGui::SliderScalar(label, dataType, &v[0], &vMin, &vMax); - */ - - public static boolean sliderScalar(String label, int dataType, ImInt v, int vMin, int vMax, String format) { - return nSliderScalar(label, dataType, v.getData(), vMin, vMax, format, 0); - } - - public static boolean sliderScalar(String label, int dataType, ImInt v, int vMin, int vMax, String format, int imGuiSliderFlags) { - return nSliderScalar(label, dataType, v.getData(), vMin, vMax, format, imGuiSliderFlags); - } - - private static native boolean nSliderScalar(String label, int dataType, int[] v, int vMin, int vMax, String format, int imGuiSliderFlags); /* - return ImGui::SliderScalar(label, dataType, &v[0], &vMin, &vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean sliderScalar(String label, int dataType, ImFloat v, float vMin, float vMax) { - return nSliderScalar(label, dataType, v.getData(), vMin, vMax); - } - - private static native boolean nSliderScalar(String label, int dataType, float[] v, float vMin, float vMax); /* - return ImGui::SliderScalar(label, dataType, &v[0], &vMin, &vMax); - */ - - public static boolean sliderScalar(String label, int dataType, ImFloat v, float vMin, float vMax, String format) { - return nSliderScalar(label, dataType, v.getData(), vMin, vMax, format, 0); - } - - public static boolean sliderScalar(String label, int dataType, ImFloat v, float vMin, float vMax, String format, int imGuiSliderFlags) { - return nSliderScalar(label, dataType, v.getData(), vMin, vMax, format, imGuiSliderFlags); - } - - private static native boolean nSliderScalar(String label, int dataType, float[] v, float vMin, float vMax, String format, int imGuiSliderFlags); /* - return ImGui::SliderScalar(label, dataType, &v[0], &vMin, &vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean sliderScalar(String label, int dataType, ImLong v, long vMin, long vMax) { - return nSliderScalar(label, dataType, v.getData(), vMin, vMax); - } - - private static native boolean nSliderScalar(String label, int dataType, long[] v, long vMin, long vMax); /* - return ImGui::SliderScalar(label, dataType, &v[0], &vMin, &vMax); - */ - - public static boolean sliderScalar(String label, int dataType, ImLong v, long vMin, long vMax, String format) { - return nSliderScalar(label, dataType, v.getData(), vMin, vMax, format, 0); - } - - public static boolean sliderScalar(String label, int dataType, ImLong v, long vMin, long vMax, String format, int imGuiSliderFlags) { - return nSliderScalar(label, dataType, v.getData(), vMin, vMax, format, imGuiSliderFlags); - } - - private static native boolean nSliderScalar(String label, int dataType, long[] v, long vMin, long vMax, String format, int imGuiSliderFlags); /* - return ImGui::SliderScalar(label, dataType, &v[0], &vMin, &vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean sliderScalar(String label, int dataType, ImDouble v, double vMin, double vMax) { - return nSliderScalar(label, dataType, v.getData(), vMin, vMax); - } - - private static native boolean nSliderScalar(String label, int dataType, double[] v, double vMin, double vMax); /* - return ImGui::SliderScalar(label, dataType, &v[0], &vMin, &vMax); - */ - - public static boolean sliderScalar(String label, int dataType, ImDouble v, double vMin, double vMax, String format) { - return nSliderScalar(label, dataType, v.getData(), vMin, vMax, format, 0); - } - - public static boolean sliderScalar(String label, int dataType, ImDouble v, double vMin, double vMax, String format, int imGuiSliderFlags) { - return nSliderScalar(label, dataType, v.getData(), vMin, vMax, format, imGuiSliderFlags); - } - - private static native boolean nSliderScalar(String label, int dataType, double[] v, double vMin, double vMax, String format, int imGuiSliderFlags); /* - return ImGui::SliderScalar(label, dataType, &v[0], &vMin, &vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean sliderScalar(String label, int dataType, ImShort v, short vMin, short vMax) { - return nSliderScalar(label, dataType, v.getData(), vMin, vMax); - } - - private static native boolean nSliderScalar(String label, int dataType, short[] v, short vMin, short vMax); /* - return ImGui::SliderScalar(label, dataType, &v[0], &vMin, &vMax); - */ - - public static boolean sliderScalar(String label, int dataType, ImShort v, short vMin, short vMax, String format) { - return nSliderScalar(label, dataType, v.getData(), vMin, vMax, format, 0); - } - - public static boolean sliderScalar(String label, int dataType, ImShort v, short vMin, short vMax, String format, int imGuiSliderFlags) { - return nSliderScalar(label, dataType, v.getData(), vMin, vMax, format, imGuiSliderFlags); - } - - private static native boolean nSliderScalar(String label, int dataType, short[] v, short vMin, short vMax, String format, int imGuiSliderFlags); /* - return ImGui::SliderScalar(label, dataType, &v[0], &vMin, &vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean sliderScalarN(String label, int dataType, int components, ImInt v, int vMin, int vMax) { - return nSliderScalarN(label, dataType, components, v.getData(), vMin, vMax); - } - - private static native boolean nSliderScalarN(String label, int dataType, int components, int[] v, int vMin, int vMax); /* - return ImGui::SliderScalarN(label, dataType, &v[0], components, &vMin, &vMax); - */ - - public static boolean sliderScalarN(String label, int dataType, int components, ImInt v, int vMin, int vMax, String format) { - return nSliderScalarN(label, dataType, components, v.getData(), vMin, vMax, format, 0); - } - - public static boolean sliderScalarN(String label, int dataType, int components, ImInt v, int vMin, int vMax, String format, int imGuiSliderFlags) { - return nSliderScalarN(label, dataType, components, v.getData(), vMin, vMax, format, imGuiSliderFlags); - } - - private static native boolean nSliderScalarN(String label, int dataType, int components, int[] v, int vMin, int vMax, String format, int imGuiSliderFlags); /* - return ImGui::SliderScalarN(label, dataType, &v[0], components, &vMin, &vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean sliderScalarN(String label, int dataType, int components, ImFloat v, float vMin, float vMax) { - return nSliderScalarN(label, dataType, components, v.getData(), vMin, vMax); - } - - private static native boolean nSliderScalarN(String label, int dataType, int components, float[] v, float vMin, float vMax); /* - return ImGui::SliderScalarN(label, dataType, &v[0], components, &vMin, &vMax); - */ - - public static boolean sliderScalarN(String label, int dataType, int components, ImFloat v, float vMin, float vMax, String format) { - return nSliderScalarN(label, dataType, components, v.getData(), vMin, vMax, format, 0); - } - - public static boolean sliderScalarN(String label, int dataType, int components, ImFloat v, float vMin, float vMax, String format, int imGuiSliderFlags) { - return nSliderScalarN(label, dataType, components, v.getData(), vMin, vMax, format, imGuiSliderFlags); - } - - private static native boolean nSliderScalarN(String label, int dataType, int components, float[] v, float vMin, float vMax, String format, int imGuiSliderFlags); /* - return ImGui::SliderScalarN(label, dataType, &v[0], components, &vMin, &vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean sliderScalarN(String label, int dataType, int components, ImLong v, long vMin, long vMax) { - return nSliderScalarN(label, dataType, components, v.getData(), vMin, vMax); - } - - private static native boolean nSliderScalarN(String label, int dataType, int components, long[] v, long vMin, long vMax); /* - return ImGui::SliderScalarN(label, dataType, &v[0], components, &vMin, &vMax); - */ - - public static boolean sliderScalarN(String label, int dataType, int components, ImLong v, long vMin, long vMax, String format) { - return nSliderScalarN(label, dataType, components, v.getData(), vMin, vMax, format, 0); - } - - public static boolean sliderScalarN(String label, int dataType, int components, ImLong v, long vMin, long vMax, String format, int imGuiSliderFlags) { - return nSliderScalarN(label, dataType, components, v.getData(), vMin, vMax, format, imGuiSliderFlags); - } - - private static native boolean nSliderScalarN(String label, int dataType, int components, long[] v, long vMin, long vMax, String format, int imGuiSliderFlags); /* - return ImGui::SliderScalarN(label, dataType, &v[0], components, &vMin, &vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean sliderScalarN(String label, int dataType, int components, ImDouble v, double vMin, double vMax) { - return nSliderScalarN(label, dataType, components, v.getData(), vMin, vMax); - } - - private static native boolean nSliderScalarN(String label, int dataType, int components, double[] v, double vMin, double vMax); /* - return ImGui::SliderScalarN(label, dataType, &v[0], components, &vMin, &vMax); - */ - - public static boolean sliderScalarN(String label, int dataType, int components, ImDouble v, double vMin, double vMax, String format) { - return nSliderScalarN(label, dataType, components, v.getData(), vMin, vMax, format, 0); - } - - public static boolean sliderScalarN(String label, int dataType, int components, ImDouble v, double vMin, double vMax, String format, int imGuiSliderFlags) { - return nSliderScalarN(label, dataType, components, v.getData(), vMin, vMax, format, imGuiSliderFlags); - } - - private static native boolean nSliderScalarN(String label, int dataType, int components, double[] v, double vMin, double vMax, String format, int imGuiSliderFlags); /* - return ImGui::SliderScalarN(label, dataType, &v[0], components, &vMin, &vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean sliderScalarN(String label, int dataType, int components, ImShort v, short vMin, short vMax) { - return nSliderScalarN(label, dataType, components, v.getData(), vMin, vMax); - } - - private static native boolean nSliderScalarN(String label, int dataType, int components, short[] v, short vMin, short vMax); /* - return ImGui::SliderScalarN(label, dataType, &v[0], components, &vMin, &vMax); - */ - - public static boolean sliderScalarN(String label, int dataType, int components, ImShort v, short vMin, short vMax, String format) { - return nSliderScalarN(label, dataType, components, v.getData(), vMin, vMax, format, 0); - } - - public static boolean sliderScalarN(String label, int dataType, int components, ImShort v, short vMin, short vMax, String format, int imGuiSliderFlags) { - return nSliderScalarN(label, dataType, components, v.getData(), vMin, vMax, format, imGuiSliderFlags); - } - - private static native boolean nSliderScalarN(String label, int dataType, int components, short[] v, short vMin, short vMax, String format, int imGuiSliderFlags); /* - return ImGui::SliderScalarN(label, dataType, &v[0], components, &vMin, &vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static native boolean vSliderFloat(String label, float sizeX, float sizeY, float[] v, float vMin, float vMax); /* - return ImGui::VSliderFloat(label, ImVec2(sizeX, sizeY), &v[0], vMin, vMax); - */ - - public static native boolean vSliderFloat(String label, float sizeX, float sizeY, float[] v, float vMin, float vMax, String format); /* - return ImGui::VSliderFloat(label, ImVec2(sizeX, sizeY), &v[0], vMin, vMax); - */ - - public static native boolean vSliderFloat(String label, float sizeX, float sizeY, float[] v, float vMin, float vMax, String format, int imGuiSliderFlags); /* - return ImGui::VSliderFloat(label, ImVec2(sizeX, sizeY), &v[0], vMin, vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static native boolean vSliderInt(String label, float sizeX, float sizeY, int[] v, int vMin, int vMax); /* - return ImGui::VSliderInt(label, ImVec2(sizeX, sizeY), &v[0], vMin, vMax); - */ - - public static native boolean vSliderInt(String label, float sizeX, float sizeY, int[] v, int vMin, int vMax, String format); /* - return ImGui::VSliderInt(label, ImVec2(sizeX, sizeY), &v[0], vMin, vMax, format); - */ - - public static boolean vSliderScalar(String label, float sizeX, float sizeY, int dataType, ImInt v, int vMin, int vMax) { - return nVSliderScalar(label, sizeX, sizeY, dataType, v.getData(), vMin, vMax); - } - - private static native boolean nVSliderScalar(String label, float sizeX, float sizeY, int dataType, int[] v, int vMin, int vMax); /* - return ImGui::VSliderScalar(label, ImVec2(sizeX, sizeY), dataType, &v[0], &vMin, &vMax); - */ - - public static boolean vSliderScalar(String label, float sizeX, float sizeY, int dataType, ImInt v, int vMin, int vMax, String format) { - return nVSliderScalar(label, sizeX, sizeY, dataType, v.getData(), vMin, vMax, format, 0); - } - - public static boolean vSliderScalar(String label, float sizeX, float sizeY, int dataType, ImInt v, int vMin, int vMax, String format, int imGuiSliderFlags) { - return nVSliderScalar(label, sizeX, sizeY, dataType, v.getData(), vMin, vMax, format, imGuiSliderFlags); - } - - private static native boolean nVSliderScalar(String label, float sizeX, float sizeY, int dataType, int[] v, int vMin, int vMax, String format, int imGuiSliderFlags); /* - return ImGui::VSliderScalar(label, ImVec2(sizeX, sizeY), dataType, &v[0], &vMin, &vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean vSliderScalar(String label, float sizeX, float sizeY, int dataType, ImFloat v, float vMin, float vMax) { - return nVSliderScalar(label, sizeX, sizeY, dataType, v.getData(), vMin, vMax); - } - - private static native boolean nVSliderScalar(String label, float sizeX, float sizeY, int dataType, float[] v, float vMin, float vMax); /* - return ImGui::VSliderScalar(label, ImVec2(sizeX, sizeY), dataType, &v[0], &vMin, &vMax); - */ - - public static boolean vSliderScalar(String label, float sizeX, float sizeY, int dataType, ImFloat v, float vMin, float vMax, String format) { - return nVSliderScalar(label, sizeX, sizeY, dataType, v.getData(), vMin, vMax, format, 0); - } - - public static boolean vSliderScalar(String label, float sizeX, float sizeY, int dataType, ImFloat v, float vMin, float vMax, String format, int imGuiSliderFlags) { - return nVSliderScalar(label, sizeX, sizeY, dataType, v.getData(), vMin, vMax, format, imGuiSliderFlags); - } - - private static native boolean nVSliderScalar(String label, float sizeX, float sizeY, int dataType, float[] v, float vMin, float vMax, String format, int imGuiSliderFlags); /* - return ImGui::VSliderScalar(label, ImVec2(sizeX, sizeY), dataType, &v[0], &vMin, &vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean vSliderScalar(String label, float sizeX, float sizeY, int dataType, ImLong v, long vMin, long vMax) { - return nVSliderScalar(label, sizeX, sizeY, dataType, v.getData(), vMin, vMax); - } - - private static native boolean nVSliderScalar(String label, float sizeX, float sizeY, int dataType, long[] v, long vMin, long vMax); /* - return ImGui::VSliderScalar(label, ImVec2(sizeX, sizeY), dataType, &v[0], &vMin, &vMax); - */ - - public static boolean vSliderScalar(String label, float sizeX, float sizeY, int dataType, ImLong v, long vMin, long vMax, String format) { - return nVSliderScalar(label, sizeX, sizeY, dataType, v.getData(), vMin, vMax, format, 0); - } - - public static boolean vSliderScalar(String label, float sizeX, float sizeY, int dataType, ImLong v, long vMin, long vMax, String format, int imGuiSliderFlags) { - return nVSliderScalar(label, sizeX, sizeY, dataType, v.getData(), vMin, vMax, format, imGuiSliderFlags); - } - - private static native boolean nVSliderScalar(String label, float sizeX, float sizeY, int dataType, long[] v, long vMin, long vMax, String format, int imGuiSliderFlags); /* - return ImGui::VSliderScalar(label, ImVec2(sizeX, sizeY), dataType, &v[0], &vMin, &vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean vSliderScalar(String label, float sizeX, float sizeY, int dataType, ImDouble v, double vMin, double vMax) { - return nVSliderScalar(label, sizeX, sizeY, dataType, v.getData(), vMin, vMax); - } - - private static native boolean nVSliderScalar(String label, float sizeX, float sizeY, int dataType, double[] v, double vMin, double vMax); /* - return ImGui::VSliderScalar(label, ImVec2(sizeX, sizeY), dataType, &v[0], &vMin, &vMax); - */ - - public static boolean vSliderScalar(String label, float sizeX, float sizeY, int dataType, ImDouble v, double vMin, double vMax, String format) { - return nVSliderScalar(label, sizeX, sizeY, dataType, v.getData(), vMin, vMax, format, 0); - } - - public static boolean vSliderScalar(String label, float sizeX, float sizeY, int dataType, ImDouble v, double vMin, double vMax, String format, int imGuiSliderFlags) { - return nVSliderScalar(label, sizeX, sizeY, dataType, v.getData(), vMin, vMax, format, imGuiSliderFlags); - } - - private static native boolean nVSliderScalar(String label, float sizeX, float sizeY, int dataType, double[] v, double vMin, double vMax, String format, int imGuiSliderFlags); /* - return ImGui::VSliderScalar(label, ImVec2(sizeX, sizeY), dataType, &v[0], &vMin, &vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ - - public static boolean vSliderScalar(String label, float sizeX, float sizeY, int dataType, ImShort v, short vMin, short vMax) { - return nVSliderScalar(label, sizeX, sizeY, dataType, v.getData(), vMin, vMax); - } - - private static native boolean nVSliderScalar(String label, float sizeX, float sizeY, int dataType, short[] v, short vMin, short vMax); /* - return ImGui::VSliderScalar(label, ImVec2(sizeX, sizeY), dataType, &v[0], &vMin, &vMax); - */ - - public static boolean vSliderScalar(String label, float sizeX, float sizeY, int dataType, ImShort v, short vMin, short vMax, String format) { - return nVSliderScalar(label, sizeX, sizeY, dataType, v.getData(), vMin, vMax, format, 0); - } - - public static boolean vSliderScalar(String label, float sizeX, float sizeY, int dataType, ImShort v, short vMin, short vMax, String format, int imGuiSliderFlags) { - return nVSliderScalar(label, sizeX, sizeY, dataType, v.getData(), vMin, vMax, format, imGuiSliderFlags); - } - - private static native boolean nVSliderScalar(String label, float sizeX, float sizeY, int dataType, short[] v, short vMin, short vMax, String format, int imGuiSliderFlags); /* - return ImGui::VSliderScalar(label, ImVec2(sizeX, sizeY), dataType, &v[0], &vMin, &vMax, format, (ImGuiSliderFlags)imGuiSliderFlags); - */ + @BindingMethod + public static native boolean VSliderScalar(String label, ImVec2 size, Void ImGuiDataType_Double, double[] pData, @ArgValue(callPrefix = "&") double pMin, @ArgValue(callPrefix = "&") double pMax, @OptArg String format, @OptArg int imGuiSliderFlags); // Widgets: Input with Keyboard // - If you want to use InputText() with std::string or any custom dynamic string type, see misc/cpp/imgui_stdlib.h and comments in imgui_demo.cpp. @@ -3024,7 +1282,6 @@ public class ImGui { jfieldID inputDataIsDirtyID; jfieldID inputDataIsResizedID; - struct InputTextCallbackUserData { JNIEnv* env; jobject* imString; @@ -3088,68 +1345,69 @@ public class ImGui { jInputTextCallbackMID = env->GetMethodID(jCallback, "accept", "(J)V"); */ - public static boolean inputText(String label, ImString text) { + public static boolean inputText(final String label, final ImString text) { return preInputText(false, label, null, text); } - public static boolean inputText(String label, ImString text, int imGuiInputTextFlags) { + public static boolean inputText(final String label, final ImString text, final int imGuiInputTextFlags) { return preInputText(false, label, null, text, 0, 0, imGuiInputTextFlags); } - public static boolean inputText(String label, ImString text, int imGuiInputTextFlags, ImGuiInputTextCallback callback) { + public static boolean inputText(final String label, final ImString text, final int imGuiInputTextFlags, final ImGuiInputTextCallback callback) { return preInputText(false, label, null, text, 0, 0, imGuiInputTextFlags, callback); } - public static boolean inputTextMultiline(String label, ImString text) { + public static boolean inputTextMultiline(final String label, final ImString text) { return preInputText(true, label, null, text); } - public static boolean inputTextMultiline(String label, ImString text, float width, float height) { + public static boolean inputTextMultiline(final String label, final ImString text, final float width, final float height) { return preInputText(true, label, null, text, width, height); } - public static boolean inputTextMultiline(String label, ImString text, int imGuiInputTextFlags) { + public static boolean inputTextMultiline(final String label, final ImString text, final int imGuiInputTextFlags) { return preInputText(true, label, null, text, 0, 0, imGuiInputTextFlags); } - public static boolean inputTextMultiline(String label, ImString text, int imGuiInputTextFlags, ImGuiInputTextCallback callback) { + public static boolean inputTextMultiline(final String label, final ImString text, final int imGuiInputTextFlags, final ImGuiInputTextCallback callback) { return preInputText(true, label, null, text, 0, 0, imGuiInputTextFlags, callback); } - public static boolean inputTextMultiline(String label, ImString text, float width, float height, int imGuiInputTextFlags) { + public static boolean inputTextMultiline(final String label, final ImString text, final float width, final float height, final int imGuiInputTextFlags) { return preInputText(true, label, null, text, width, height, imGuiInputTextFlags); } - public static boolean inputTextMultiline(String label, ImString text, float width, float height, int imGuiInputTextFlags, ImGuiInputTextCallback callback) { + public static boolean inputTextMultiline(final String label, final ImString text, final float width, final float height, final int imGuiInputTextFlags, final ImGuiInputTextCallback callback) { return preInputText(true, label, null, text, width, height, imGuiInputTextFlags, callback); } - public static boolean inputTextWithHint(String label, String hint, ImString text) { + public static boolean inputTextWithHint(final String label, final String hint, final ImString text) { return preInputText(false, label, hint, text); } - public static boolean inputTextWithHint(String label, String hint, ImString text, int imGuiInputTextFlags) { + public static boolean inputTextWithHint(final String label, final String hint, final ImString text, final int imGuiInputTextFlags) { return preInputText(false, label, hint, text, 0, 0, imGuiInputTextFlags); } - public static boolean inputTextWithHint(String label, String hint, ImString text, int imGuiInputTextFlags, ImGuiInputTextCallback callback) { + public static boolean inputTextWithHint(final String label, final String hint, final ImString text, final int imGuiInputTextFlags, final ImGuiInputTextCallback callback) { return preInputText(false, label, hint, text, 0, 0, imGuiInputTextFlags, callback); } - private static boolean preInputText(boolean multiline, String label, String hint, ImString text) { + private static boolean preInputText(final boolean multiline, final String label, final String hint, final ImString text) { return preInputText(multiline, label, hint, text, 0, 0); } - private static boolean preInputText(boolean multiline, String label, String hint, ImString text, float width, float height) { + private static boolean preInputText(final boolean multiline, final String label, final String hint, final ImString text, final float width, final float height) { return preInputText(multiline, label, hint, text, width, height, ImGuiInputTextFlags.None); } - private static boolean preInputText(boolean multiline, String label, String hint, ImString text, float width, float height, int flags) { + private static boolean preInputText(final boolean multiline, final String label, final String hint, final ImString text, final float width, final float height, final int flags) { return preInputText(multiline, label, hint, text, width, height, flags, null); } - private static boolean preInputText(boolean multiline, String label, String hint, ImString text, float width, float height, int flags, ImGuiInputTextCallback callback) { + private static boolean preInputText(final boolean multiline, final String label, final String hint, final ImString text, final float width, final float height, final int flagsV, final ImGuiInputTextCallback callback) { final ImString.InputData inputData = text.inputData; + int flags = flagsV; if (inputData.isResizable) { flags |= ImGuiInputTextFlags.CallbackResize; @@ -3205,750 +1463,163 @@ public class ImGui { return valueChanged; */ - public static boolean inputFloat(String label, ImFloat v) { - return nInputFloat(label, v.getData(), 0, 0, "%.3f", ImGuiInputTextFlags.None); - } + @BindingMethod + public static native boolean InputFloat(String label, ImFloat v, @OptArg float step, @OptArg float stepFast, @OptArg(callValue = "\"%.3f\"") String format, @OptArg int imGuiInputTextFlags); - public static boolean inputFloat(String label, ImFloat v, float step) { - return nInputFloat(label, v.getData(), step, 0, "%.3f", ImGuiInputTextFlags.None); - } + @BindingMethod + public static native boolean InputFloat2(String label, float[] v, @OptArg(callValue = "\"%.3f\"") String format, @OptArg int imGuiInputTextFlags); - public static boolean inputFloat(String label, ImFloat v, float step, float stepFast) { - return nInputFloat(label, v.getData(), step, stepFast, "%.3f", ImGuiInputTextFlags.None); - } + @BindingMethod + public static native boolean InputFloat3(String label, float[] v, @OptArg(callValue = "\"%.3f\"") String format, @OptArg int imGuiInputTextFlags); - public static boolean inputFloat(String label, ImFloat v, float step, float stepFast, String format) { - return nInputFloat(label, v.getData(), step, stepFast, format, ImGuiInputTextFlags.None); - } + @BindingMethod + public static native boolean InputFloat4(String label, float[] v, @OptArg(callValue = "\"%.3f\"") String format, @OptArg int imGuiInputTextFlags); - public static boolean inputFloat(String label, ImFloat v, float step, float stepFast, String format, int imGuiInputTextFlags) { - return nInputFloat(label, v.getData(), step, stepFast, format, imGuiInputTextFlags); - } + @BindingMethod + public static native boolean InputInt(String label, ImInt v, @OptArg int step, @OptArg int stepFast, @OptArg int imGuiInputTextFlags); - private static native boolean nInputFloat(String label, float[] v, float step, float stepFast, String format, int imGuiInputTextFlags); /* - return ImGui::InputFloat(label, &v[0], step, stepFast, format, imGuiInputTextFlags); - */ + @BindingMethod + public static native boolean InputInt2(String label, int[] v, @OptArg int imGuiInputTextFlags); - public static native boolean inputFloat2(String label, float[] v); /* - return ImGui::InputFloat2(label, v); - */ + @BindingMethod + public static native boolean InputInt3(String label, int[] v, @OptArg int imGuiInputTextFlags); - public static native boolean inputFloat2(String label, float[] v, String format); /* - return ImGui::InputFloat2(label, v, format); - */ + @BindingMethod + public static native boolean InputInt4(String label, int[] v, @OptArg int imGuiInputTextFlags); - public static native boolean inputFloat2(String label, float[] v, String format, int imGuiInputTextFlags); /* - return ImGui::InputFloat2(label, v, format, imGuiInputTextFlags); - */ + @BindingMethod + public static native boolean InputDouble(String label, ImDouble v, @OptArg double step, @OptArg double stepFast, @OptArg(callValue = "\"%.6f\"") String format, @OptArg int imGuiInputTextFlags); - public static native boolean inputFloat3(String label, float[] v); /* - return ImGui::InputFloat3(label, v); - */ + @BindingMethod + public static native boolean InputScalar(String label, Void ImGuiDataType_S16, short[] pData, @OptArg @ArgValue(callPrefix = "&") short pStep, @OptArg @ArgValue(callPrefix = "&") short pStepFast, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean inputFloat3(String label, float[] v, String format); /* - return ImGui::InputFloat3(label, v, format); - */ + @BindingMethod + public static native boolean InputScalar(String label, Void ImGuiDataType_S32, int[] pData, @OptArg @ArgValue(callPrefix = "&") int pStep, @OptArg @ArgValue(callPrefix = "&") int pStepFast, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean inputFloat3(String label, float[] v, String format, int imGuiInputTextFlags); /* - return ImGui::InputFloat3(label, v, format, imGuiInputTextFlags); - */ + @BindingMethod + public static native boolean InputScalar(String label, Void ImGuiDataType_S64, long[] pData, @OptArg @ArgValue(callPrefix = "&") long pStep, @OptArg @ArgValue(callPrefix = "&") long pStepFast, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean inputFloat4(String label, float[] v); /* - return ImGui::InputFloat4(label, v); - */ + @BindingMethod + public static native boolean InputScalar(String label, Void ImGuiDataType_Float, float[] pData, @OptArg @ArgValue(callPrefix = "&") float pStep, @OptArg @ArgValue(callPrefix = "&") float pStepFast, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean inputFloat4(String label, float[] v, String format); /* - return ImGui::InputFloat4(label, v, format); - */ + @BindingMethod + public static native boolean InputScalar(String label, Void ImGuiDataType_Double, double[] pData, @OptArg @ArgValue(callPrefix = "&") double pStep, @OptArg @ArgValue(callPrefix = "&") double pStepFast, @OptArg String format, @OptArg int imGuiSliderFlags); - public static native boolean inputFloat4(String label, float[] v, String format, int imGuiInputTextFlags); /* - return ImGui::InputFloat4(label, v, format, imGuiInputTextFlags); - */ + @BindingMethod + public static native boolean InputScalarN(String label, Void ImGuiDataType_S16, short[] pData, int components, @OptArg @ArgValue(callPrefix = "&") short pStep, @OptArg @ArgValue(callPrefix = "&") short pStepFast, @OptArg String format, @OptArg int imGuiSliderFlags); - public static boolean inputInt(String label, ImInt v) { - return nInputInt(label, v.getData(), 1, 100, ImGuiInputTextFlags.None); - } + @BindingMethod + public static native boolean InputScalarN(String label, Void ImGuiDataType_S32, int[] pData, int components, @OptArg @ArgValue(callPrefix = "&") int pStep, @OptArg @ArgValue(callPrefix = "&") int pStepFast, @OptArg String format, @OptArg int imGuiSliderFlags); - public static boolean inputInt(String label, ImInt v, int step) { - return nInputInt(label, v.getData(), step, 100, ImGuiInputTextFlags.None); - } + @BindingMethod + public static native boolean InputScalarN(String label, Void ImGuiDataType_S64, long[] pData, int components, @OptArg @ArgValue(callPrefix = "&") long pStep, @OptArg @ArgValue(callPrefix = "&") long pStepFast, @OptArg String format, @OptArg int imGuiSliderFlags); - public static boolean inputInt(String label, ImInt v, int step, int stepFast) { - return nInputInt(label, v.getData(), step, stepFast, ImGuiInputTextFlags.None); - } + @BindingMethod + public static native boolean InputScalarN(String label, Void ImGuiDataType_Float, float[] pData, int components, @OptArg @ArgValue(callPrefix = "&") float pStep, @OptArg @ArgValue(callPrefix = "&") float pStepFast, @OptArg String format, @OptArg int imGuiSliderFlags); - public static boolean inputInt(String label, ImInt v, int step, int stepFast, int imGuiInputTextFlags) { - return nInputInt(label, v.getData(), step, stepFast, imGuiInputTextFlags); - } - - private static native boolean nInputInt(String label, int[] v, int step, int stepFast, int imGuiInputTextFlags); /* - return ImGui::InputInt(label, &v[0], step, stepFast, imGuiInputTextFlags); - */ - - public static native boolean inputInt2(String label, int[] v); /* - return ImGui::InputInt2(label, v); - */ - - public static native boolean inputInt2(String label, int[] v, int imGuiInputTextFlags); /* - return ImGui::InputInt2(label, v, imGuiInputTextFlags); - */ - - public static native boolean inputInt3(String label, int[] v); /* - return ImGui::InputInt3(label, v); - */ - - public static native boolean inputInt3(String label, int[] v, int imGuiInputTextFlags); /* - return ImGui::InputInt3(label, v, imGuiInputTextFlags); - */ - - public static native boolean inputInt4(String label, int[] v); /* - return ImGui::InputInt4(label, v); - */ - - public static native boolean inputInt4(String label, int[] v, int imGuiInputTextFlags); /* - return ImGui::InputInt4(label, v, imGuiInputTextFlags); - */ - - public static boolean inputDouble(String label, ImDouble v) { - return nInputDouble(label, v.getData(), 0, 0, "%.6f", ImGuiInputTextFlags.None); - } - - public static boolean inputDouble(String label, ImDouble v, double step) { - return nInputDouble(label, v.getData(), step, 0, "%.6f", ImGuiInputTextFlags.None); - } - - public static boolean inputDouble(String label, ImDouble v, double step, double stepFast) { - return nInputDouble(label, v.getData(), step, stepFast, "%.6f", ImGuiInputTextFlags.None); - } - - public static boolean inputDouble(String label, ImDouble v, double step, double stepFast, String format) { - return nInputDouble(label, v.getData(), step, stepFast, format, ImGuiInputTextFlags.None); - } - - public static boolean inputDouble(String label, ImDouble v, double step, double stepFast, String format, int imGuiInputTextFlags) { - return nInputDouble(label, v.getData(), step, stepFast, format, imGuiInputTextFlags); - } - - private static native boolean nInputDouble(String label, double[] v, double step, double stepFast, String format, int imGuiInputTextFlags); /* - return ImGui::InputDouble(label, &v[0], step, stepFast, format, imGuiInputTextFlags); - */ - - public static boolean inputScalar(String label, int dataType, ImInt pData) { - return nInputScalar(label, dataType, pData.getData()); - } - - private static native boolean nInputScalar(String label, int dataType, int[] pData); /* - return ImGui::InputScalar(label, dataType, &pData[0]); - */ - - public static boolean inputScalar(String label, int dataType, ImInt pData, int pStep) { - return nInputScalar(label, dataType, pData.getData(), pStep); - } - - private static native boolean nInputScalar(String label, int dataType, int[] pData, int pStep); /* - return ImGui::InputScalar(label, dataType, &pData[0], &pStep); - */ - - public static boolean inputScalar(String label, int dataType, ImInt pData, int pStep, int pStepFast) { - return nInputScalar(label, dataType, pData.getData(), pStep, pStepFast); - } - - private static native boolean nInputScalar(String label, int dataType, int[] pData, int pStep, int pStepFast); /* - return ImGui::InputScalar(label, dataType, &pData[0], &pStep, &pStepFast); - */ - - public static boolean inputScalar(String label, int dataType, ImInt pData, int pStep, int pStepFast, String format) { - return nInputScalar(label, dataType, pData.getData(), pStep, pStepFast, format); - } - - private static native boolean nInputScalar(String label, int dataType, int[] pData, int pStep, int pStepFast, String format); /* - return ImGui::InputScalar(label, dataType, &pData[0], &pStep, &pStepFast, format); - */ - - public static boolean inputScalar(String label, int dataType, ImInt pData, int pStep, int pStepFast, String format, int imGuiInputTextFlags) { - return nInputScalar(label, dataType, pData.getData(), pStep, pStepFast, format, imGuiInputTextFlags); - } - - private static native boolean nInputScalar(String label, int dataType, int[] pData, int pStep, int pStepFast, String format, int imGuiInputTextFlags); /* - return ImGui::InputScalar(label, dataType, &pData[0], &pStep, &pStepFast, format, imGuiInputTextFlags); - */ - - public static boolean inputScalar(String label, int dataType, ImFloat pData) { - return nInputScalar(label, dataType, pData.getData()); - } - - private static native boolean nInputScalar(String label, int dataType, float[] pData); /* - return ImGui::InputScalar(label, dataType, &pData[0]); - */ - - public static boolean inputScalar(String label, int dataType, ImFloat pData, float pStep) { - return nInputScalar(label, dataType, pData.getData(), pStep); - } - - private static native boolean nInputScalar(String label, int dataType, float[] pData, float pStep); /* - return ImGui::InputScalar(label, dataType, &pData[0], &pStep); - */ - - public static boolean inputScalar(String label, int dataType, ImFloat pData, float pStep, float pStepFast) { - return nInputScalar(label, dataType, pData.getData(), pStep, pStepFast); - } - - private static native boolean nInputScalar(String label, int dataType, float[] pData, float pStep, float pStepFast); /* - return ImGui::InputScalar(label, dataType, &pData[0], &pStep, &pStepFast); - */ - - public static boolean inputScalar(String label, int dataType, ImFloat pData, float pStep, float pStepFast, String format) { - return nInputScalar(label, dataType, pData.getData(), pStep, pStepFast, format); - } - - private static native boolean nInputScalar(String label, int dataType, float[] pData, float pStep, float pStepFast, String format); /* - return ImGui::InputScalar(label, dataType, &pData[0], &pStep, &pStepFast, format); - */ - - public static boolean inputScalar(String label, int dataType, ImFloat pData, float pStep, float pStepFast, String format, int imGuiInputTextFlags) { - return nInputScalar(label, dataType, pData.getData(), pStep, pStepFast, format, imGuiInputTextFlags); - } - - private static native boolean nInputScalar(String label, int dataType, float[] pData, float pStep, float pStepFast, String format, int imGuiInputTextFlags); /* - return ImGui::InputScalar(label, dataType, &pData[0], &pStep, &pStepFast, format, imGuiInputTextFlags); - */ - - public static boolean inputScalar(String label, int dataType, ImLong pData) { - return nInputScalar(label, dataType, pData.getData()); - } - - private static native boolean nInputScalar(String label, int dataType, long[] pData); /* - return ImGui::InputScalar(label, dataType, &pData[0]); - */ - - public static boolean inputScalar(String label, int dataType, ImLong pData, long pStep) { - return nInputScalar(label, dataType, pData.getData(), pStep); - } - - private static native boolean nInputScalar(String label, int dataType, long[] pData, long pStep); /* - return ImGui::InputScalar(label, dataType, &pData[0], &pStep); - */ - - public static boolean inputScalar(String label, int dataType, ImLong pData, long pStep, long pStepFast) { - return nInputScalar(label, dataType, pData.getData(), pStep, pStepFast); - } - - private static native boolean nInputScalar(String label, int dataType, long[] pData, long pStep, long pStepFast); /* - return ImGui::InputScalar(label, dataType, &pData[0], &pStep, &pStepFast); - */ - - public static boolean inputScalar(String label, int dataType, ImLong pData, long pStep, long pStepFast, String format) { - return nInputScalar(label, dataType, pData.getData(), pStep, pStepFast, format); - } - - private static native boolean nInputScalar(String label, int dataType, long[] pData, long pStep, long pStepFast, String format); /* - return ImGui::InputScalar(label, dataType, &pData[0], &pStep, &pStepFast, format); - */ - - public static boolean inputScalar(String label, int dataType, ImLong pData, long pStep, long pStepFast, String format, int imGuiInputTextFlags) { - return nInputScalar(label, dataType, pData.getData(), pStep, pStepFast, format, imGuiInputTextFlags); - } - - private static native boolean nInputScalar(String label, int dataType, long[] pData, long pStep, long pStepFast, String format, int imGuiInputTextFlags); /* - return ImGui::InputScalar(label, dataType, &pData[0], &pStep, &pStepFast, format, imGuiInputTextFlags); - */ - - public static boolean inputScalar(String label, int dataType, ImDouble pData) { - return nInputScalar(label, dataType, pData.getData()); - } - - private static native boolean nInputScalar(String label, int dataType, double[] pData); /* - return ImGui::InputScalar(label, dataType, &pData[0]); - */ - - public static boolean inputScalar(String label, int dataType, ImDouble pData, double pStep) { - return nInputScalar(label, dataType, pData.getData(), pStep); - } - - private static native boolean nInputScalar(String label, int dataType, double[] pData, double pStep); /* - return ImGui::InputScalar(label, dataType, &pData[0], &pStep); - */ - - public static boolean inputScalar(String label, int dataType, ImDouble pData, double pStep, double pStepFast) { - return nInputScalar(label, dataType, pData.getData(), pStep, pStepFast); - } - - private static native boolean nInputScalar(String label, int dataType, double[] pData, double pStep, double pStepFast); /* - return ImGui::InputScalar(label, dataType, &pData[0], &pStep, &pStepFast); - */ - - public static boolean inputScalar(String label, int dataType, ImDouble pData, double pStep, double pStepFast, String format) { - return nInputScalar(label, dataType, pData.getData(), pStep, pStepFast, format); - } - - private static native boolean nInputScalar(String label, int dataType, double[] pData, double pStep, double pStepFast, String format); /* - return ImGui::InputScalar(label, dataType, &pData[0], &pStep, &pStepFast, format); - */ - - public static boolean inputScalar(String label, int dataType, ImDouble pData, double pStep, double pStepFast, String format, int imGuiInputTextFlags) { - return nInputScalar(label, dataType, pData.getData(), pStep, pStepFast, format, imGuiInputTextFlags); - } - - private static native boolean nInputScalar(String label, int dataType, double[] pData, double pStep, double pStepFast, String format, int imGuiInputTextFlags); /* - return ImGui::InputScalar(label, dataType, &pData[0], &pStep, &pStepFast, format, imGuiInputTextFlags); - */ - - public static boolean inputScalar(String label, int dataType, ImShort pData) { - return nInputScalar(label, dataType, pData.getData()); - } - - private static native boolean nInputScalar(String label, int dataType, short[] pData); /* - return ImGui::InputScalar(label, dataType, &pData[0]); - */ - - public static boolean inputScalar(String label, int dataType, ImShort pData, short pStep) { - return nInputScalar(label, dataType, pData.getData(), pStep); - } - - private static native boolean nInputScalar(String label, int dataType, short[] pData, short pStep); /* - return ImGui::InputScalar(label, dataType, &pData[0], &pStep); - */ - - public static boolean inputScalar(String label, int dataType, ImShort pData, short pStep, short pStepFast) { - return nInputScalar(label, dataType, pData.getData(), pStep, pStepFast); - } - - private static native boolean nInputScalar(String label, int dataType, short[] pData, short pStep, short pStepFast); /* - return ImGui::InputScalar(label, dataType, &pData[0], &pStep, &pStepFast); - */ - - public static boolean inputScalar(String label, int dataType, ImShort pData, short pStep, short pStepFast, String format) { - return nInputScalar(label, dataType, pData.getData(), pStep, pStepFast, format); - } - - private static native boolean nInputScalar(String label, int dataType, short[] pData, short pStep, short pStepFast, String format); /* - return ImGui::InputScalar(label, dataType, &pData[0], &pStep, &pStepFast, format); - */ - - public static boolean inputScalar(String label, int dataType, ImShort pData, short pStep, short pStepFast, String format, int imGuiInputTextFlags) { - return nInputScalar(label, dataType, pData.getData(), pStep, pStepFast, format, imGuiInputTextFlags); - } - - private static native boolean nInputScalar(String label, int dataType, short[] pData, short pStep, short pStepFast, String format, int imGuiInputTextFlags); /* - return ImGui::InputScalar(label, dataType, &pData[0], &pStep, &pStepFast, format, imGuiInputTextFlags); - */ - - public static boolean inputScalarN(String label, int dataType, ImInt pData, int components) { - return nInputScalarN(label, dataType, pData.getData(), components); - } - - private static native boolean nInputScalarN(String label, int dataType, int[] pData, int components); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components); - */ - - public static boolean inputScalarN(String label, int dataType, ImInt pData, int components, int pStep) { - return nInputScalarN(label, dataType, pData.getData(), components, pStep); - } - - private static native boolean nInputScalarN(String label, int dataType, int[] pData, int components, int pStep); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components, &pStep); - */ - - public static boolean inputScalarN(String label, int dataType, ImInt pData, int components, int pStep, int pStepFast) { - return nInputScalarN(label, dataType, pData.getData(), components, pStep, pStepFast); - } - - private static native boolean nInputScalarN(String label, int dataType, int[] pData, int components, int pStep, int pStepFast); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components, &pStep, &pStepFast); - */ - - public static boolean inputScalarN(String label, int dataType, ImInt pData, int components, int pStep, int pStepFast, String format) { - return nInputScalarN(label, dataType, pData.getData(), components, pStep, pStepFast, format); - } - - private static native boolean nInputScalarN(String label, int dataType, int[] pData, int components, int pStep, int pStepFast, String format); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components, &pStep, &pStepFast, format); - */ - - public static boolean inputScalarN(String label, int dataType, ImInt pData, int components, int pStep, int pStepFast, String format, int imGuiInputTextFlags) { - return nInputScalarN(label, dataType, pData.getData(), components, pStep, pStepFast, format, imGuiInputTextFlags); - } - - private static native boolean nInputScalarN(String label, int dataType, int[] pData, int components, int pStep, int pStepFast, String format, int imGuiInputTextFlags); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components, &pStep, &pStepFast, format, imGuiInputTextFlags); - */ - - public static boolean inputScalarN(String label, int dataType, ImFloat pData, int components) { - return nInputScalarN(label, dataType, pData.getData(), components); - } - - private static native boolean nInputScalarN(String label, int dataType, float[] pData, int components); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components); - */ - - public static boolean inputScalarN(String label, int dataType, ImFloat pData, int components, float pStep) { - return nInputScalarN(label, dataType, pData.getData(), components, pStep); - } - - private static native boolean nInputScalarN(String label, int dataType, float[] pData, int components, float pStep); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components, &pStep); - */ - - public static boolean inputScalarN(String label, int dataType, ImFloat pData, int components, float pStep, float pStepFast) { - return nInputScalarN(label, dataType, pData.getData(), components, pStep, pStepFast); - } - - private static native boolean nInputScalarN(String label, int dataType, float[] pData, int components, float pStep, float pStepFast); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components, &pStep, &pStepFast); - */ - - public static boolean inputScalarN(String label, int dataType, ImFloat pData, int components, float pStep, float pStepFast, String format) { - return nInputScalarN(label, dataType, pData.getData(), components, pStep, pStepFast, format); - } - - private static native boolean nInputScalarN(String label, int dataType, float[] pData, int components, float pStep, float pStepFast, String format); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components, &pStep, &pStepFast, format); - */ - - public static boolean inputScalarN(String label, int dataType, ImFloat pData, int components, float pStep, float pStepFast, String format, int imGuiInputTextFlags) { - return nInputScalarN(label, dataType, pData.getData(), components, pStep, pStepFast, format, imGuiInputTextFlags); - } - - private static native boolean nInputScalarN(String label, int dataType, float[] pData, int components, float pStep, float pStepFast, String format, int imGuiInputTextFlags); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components, &pStep, &pStepFast, format, imGuiInputTextFlags); - */ - - public static boolean inputScalarN(String label, int dataType, ImLong pData, int components) { - return nInputScalarN(label, dataType, pData.getData(), components); - } - - private static native boolean nInputScalarN(String label, int dataType, long[] pData, int components); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components); - */ - - public static boolean inputScalarN(String label, int dataType, ImLong pData, int components, long pStep) { - return nInputScalarN(label, dataType, pData.getData(), components, pStep); - } - - private static native boolean nInputScalarN(String label, int dataType, long[] pData, int components, long pStep); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components, &pStep); - */ - - public static boolean inputScalarN(String label, int dataType, ImLong pData, int components, long pStep, long pStepFast) { - return nInputScalarN(label, dataType, pData.getData(), components, pStep, pStepFast); - } - - private static native boolean nInputScalarN(String label, int dataType, long[] pData, int components, long pStep, long pStepFast); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components, &pStep, &pStepFast); - */ - - public static boolean inputScalarN(String label, int dataType, ImLong pData, int components, long pStep, long pStepFast, String format) { - return nInputScalarN(label, dataType, pData.getData(), components, pStep, pStepFast, format); - } - - private static native boolean nInputScalarN(String label, int dataType, long[] pData, int components, long pStep, long pStepFast, String format); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components, &pStep, &pStepFast, format); - */ - - public static boolean inputScalarN(String label, int dataType, ImLong pData, int components, long pStep, long pStepFast, String format, int imGuiInputTextFlags) { - return nInputScalarN(label, dataType, pData.getData(), components, pStep, pStepFast, format, imGuiInputTextFlags); - } - - private static native boolean nInputScalarN(String label, int dataType, long[] pData, int components, long pStep, long pStepFast, String format, int imGuiInputTextFlags); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components, &pStep, &pStepFast, format, imGuiInputTextFlags); - */ - - public static boolean inputScalarN(String label, int dataType, ImDouble pData, int components) { - return nInputScalarN(label, dataType, pData.getData(), components); - } - - private static native boolean nInputScalarN(String label, int dataType, double[] pData, int components); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components); - */ - - public static boolean inputScalarN(String label, int dataType, ImDouble pData, int components, double pStep) { - return nInputScalarN(label, dataType, pData.getData(), components, pStep); - } - - private static native boolean nInputScalarN(String label, int dataType, double[] pData, int components, double pStep); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components, &pStep); - */ - - public static boolean inputScalarN(String label, int dataType, ImDouble pData, int components, double pStep, double pStepFast) { - return nInputScalarN(label, dataType, pData.getData(), components, pStep, pStepFast); - } - - private static native boolean nInputScalarN(String label, int dataType, double[] pData, int components, double pStep, double pStepFast); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components, &pStep, &pStepFast); - */ - - public static boolean inputScalarN(String label, int dataType, ImDouble pData, int components, double pStep, double pStepFast, String format) { - return nInputScalarN(label, dataType, pData.getData(), components, pStep, pStepFast, format); - } - - private static native boolean nInputScalarN(String label, int dataType, double[] pData, int components, double pStep, double pStepFast, String format); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components, &pStep, &pStepFast, format); - */ - - public static boolean inputScalarN(String label, int dataType, ImDouble pData, int components, double pStep, double pStepFast, String format, int imGuiInputTextFlags) { - return nInputScalarN(label, dataType, pData.getData(), components, pStep, pStepFast, format, imGuiInputTextFlags); - } - - private static native boolean nInputScalarN(String label, int dataType, double[] pData, int components, double pStep, double pStepFast, String format, int imGuiInputTextFlags); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components, &pStep, &pStepFast, format, imGuiInputTextFlags); - */ - - public static boolean inputScalarN(String label, int dataType, ImShort pData, int components) { - return nInputScalarN(label, dataType, pData.getData(), components); - } - - private static native boolean nInputScalarN(String label, int dataType, short[] pData, int components); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components); - */ - - public static boolean inputScalarN(String label, int dataType, ImShort pData, int components, short pStep) { - return nInputScalarN(label, dataType, pData.getData(), components, pStep); - } - - private static native boolean nInputScalarN(String label, int dataType, short[] pData, int components, short pStep); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components, &pStep); - */ - - public static boolean inputScalarN(String label, int dataType, ImShort pData, int components, short pStep, short pStepFast) { - return nInputScalarN(label, dataType, pData.getData(), components, pStep, pStepFast); - } - - private static native boolean nInputScalarN(String label, int dataType, short[] pData, int components, short pStep, short pStepFast); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components, &pStep, &pStepFast); - */ - - public static boolean inputScalarN(String label, int dataType, ImShort pData, int components, short pStep, short pStepFast, String format) { - return nInputScalarN(label, dataType, pData.getData(), components, pStep, pStepFast, format); - } - - private static native boolean nInputScalarN(String label, int dataType, short[] pData, int components, short pStep, short pStepFast, String format); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components, &pStep, &pStepFast, format); - */ - - public static boolean inputScalarN(String label, int dataType, ImShort pData, int components, short pStep, short pStepFast, String format, int imGuiInputTextFlags) { - return nInputScalarN(label, dataType, pData.getData(), components, pStep, pStepFast, format, imGuiInputTextFlags); - } - - private static native boolean nInputScalarN(String label, int dataType, short[] pData, int components, short pStep, short pStepFast, String format, int imGuiInputTextFlags); /* - return ImGui::InputScalarN(label, dataType, &pData[0], components, &pStep, &pStepFast, format, imGuiInputTextFlags); - */ + @BindingMethod + public static native boolean InputScalarN(String label, Void ImGuiDataType_Double, double[] pData, int components, @OptArg @ArgValue(callPrefix = "&") double pStep, @OptArg @ArgValue(callPrefix = "&") double pStepFast, @OptArg String format, @OptArg int imGuiSliderFlags); // Widgets: Color Editor/Picker (tip: the ColorEdit* functions have a little color square that can be left-clicked to open a picker, and right-clicked to open an option menu.) // - Note that in C++ a 'float v[X]' function argument is the _same_ as 'float* v', the array syntax is just a way to document the number of elements that are expected to be accessible. // - You can pass the address of a first float element out of a contiguous structure, e.g. &myvector.x - public static native boolean colorEdit3(String label, float[] col); /* - return ImGui::ColorEdit3(label, col); - */ + @BindingMethod + public static native boolean ColorEdit3(String label, float[] col, @OptArg int imGuiColorEditFlags); - public static native boolean colorEdit3(String label, float[] col, int imGuiColorEditFlags); /* - return ImGui::ColorEdit3(label, col, imGuiColorEditFlags); - */ + @BindingMethod + public static native boolean ColorEdit4(String label, float[] col, @OptArg int imGuiColorEditFlags); - public static native boolean colorEdit4(String label, float[] col); /* - return ImGui::ColorEdit4(label, col); - */ + @BindingMethod + public static native boolean ColorPicker3(String label, float[] col, @OptArg int imGuiColorEditFlags); - public static native boolean colorEdit4(String label, float[] col, int imGuiColorEditFlags); /* - return ImGui::ColorEdit4(label, col, imGuiColorEditFlags); - */ - - public static native boolean colorPicker3(String label, float[] col); /* - return ImGui::ColorPicker3(label, col); - */ - - public static native boolean colorPicker3(String label, float[] col, int imGuiColorEditFlags); /* - return ImGui::ColorPicker3(label, col, imGuiColorEditFlags); - */ - - public static native boolean colorPicker4(String label, float[] col); /* - return ImGui::ColorPicker4(label, col); - */ - - public static native boolean colorPicker4(String label, float[] col, int imGuiColorEditFlags); /* - return ImGui::ColorPicker4(label, col, imGuiColorEditFlags); - */ - - public static native boolean colorPicker4(String label, float[] col, int imGuiColorEditFlags, float refCol); /* - return ImGui::ColorPicker4(label, col, imGuiColorEditFlags, &refCol); - */ + @BindingMethod + public static native boolean ColorPicker4(String label, float[] col, @OptArg(callValue = "0") int imGuiColorEditFlags, @OptArg float[] refCol); /** * Display a colored square/button, hover for details, return true when pressed. */ - public static native boolean colorButton(String descId, float[] col); /* - return ImGui::ColorButton(descId, ImVec4(col[0], col[1], col[2], col[3])); - */ - - /** - * Display a colored square/button, hover for details, return true when pressed. - */ - public static native boolean colorButton(String descId, float[] col, int imGuiColorEditFlags); /* - return ImGui::ColorButton(descId, ImVec4(col[0], col[1], col[2], col[3]), imGuiColorEditFlags); - */ - - /** - * Display a colored square/button, hover for details, return true when pressed. - */ - public static native boolean colorButton(String descId, float[] col, int imGuiColorEditFlags, float width, float height); /* - return ImGui::ColorButton(descId, ImVec4(col[0], col[1], col[2], col[3]), imGuiColorEditFlags, ImVec2(width, height)); - */ + @BindingMethod + public static native boolean ColorButton(String descId, ImVec4 col, @OptArg(callValue = "0") int imGuiColorEditFlags, @OptArg ImVec2 size); /** * Initialize current options (generally on application startup) if you want to select a default format, * picker type, etc. User will be able to change many settings, unless you pass the _NoOptions flag to your calls. */ - public static native void setColorEditOptions(int imGuiColorEditFlags); /* - ImGui::SetColorEditOptions(imGuiColorEditFlags); - */ + @BindingMethod + public static native void SetColorEditOptions(int imGuiColorEditFlags); // Widgets: Trees // - TreeNode functions return true when the node is open, in which case you need to also call TreePop() when you are finished displaying the tree node contents. - public static native boolean treeNode(String label); /* - return ImGui::TreeNode(label); - */ - /** * Helper variation to easily decorelate the id from the displayed string. * Read the FAQ about why and how to use ID. to align arbitrary text at the same level as a TreeNode() you can use Bullet(). */ - public static native boolean treeNode(String strId, String label); /* - return ImGui::TreeNode(strId, label, NULL); - */ + @BindingMethod + public static native boolean TreeNode(String strId, String label, Void NULL); - public static native boolean treeNode(long ptrId, String label); /* - return ImGui::TreeNode((void*)ptrId, label, NULL); - */ + @BindingMethod + public static native boolean TreeNode(@ArgValue(callPrefix = "(void*)") long ptrId, String label, Void NULL); - public static native boolean treeNodeEx(String label); /* - return ImGui::TreeNodeEx(label); - */ + @BindingMethod + public static native boolean TreeNodeEx(String strId, int imGuiTreeNodeFlags, String label, Void NULL); - public static native boolean treeNodeEx(String label, int imGuiTreeNodeFlags); /* - return ImGui::TreeNodeEx(label, imGuiTreeNodeFlags); - */ - - public static native boolean treeNodeEx(String strId, int imGuiTreeNodeFlags, String label); /* - return ImGui::TreeNodeEx(strId, imGuiTreeNodeFlags, label, NULL); - */ - - public static native boolean treeNodeEx(long ptrId, int imGuiTreeNodeFlags, String label); /* - return ImGui::TreeNodeEx((void*)ptrId, imGuiTreeNodeFlags, label, NULL); - */ + @BindingMethod + public static native boolean TreeNodeEx(@ArgValue(callPrefix = "(void*)") long ptrId, int imGuiTreeNodeFlags, String label, Void NULL); /** * ~ Indent()+PushId(). Already called by TreeNode() when returning true, but you can call TreePush/TreePop yourself if desired. */ - public static native void treePush(); /* - ImGui::TreePush(); - */ + @BindingMethod + public static native void TreePush(String strId); - public static native void treePush(String strId); /* - ImGui::TreePush(strId); - */ - - public static native void treePush(long ptrId); /* - ImGui::TreePush((void*)ptrId); - */ + /** + * ~ Indent()+PushId(). Already called by TreeNode() when returning true, but you can call TreePush/TreePop yourself if desired. + */ + @BindingMethod + public static native void TreePush(@OptArg @ArgValue(callPrefix = "(void*)") long ptrId); /** * ~ Unindent()+PopId() */ - public static native void treePop(); /* - ImGui::TreePop(); - */ + @BindingMethod + public static native void TreePop(); /** * Horizontal distance preceding label when using TreeNode*() or Bullet() == (g.FontSize + style.FramePadding.x*2) for a regular unframed TreeNode */ - public static native float getTreeNodeToLabelSpacing(); /* - return ImGui::GetTreeNodeToLabelSpacing(); - */ + @BindingMethod + public static native float GetTreeNodeToLabelSpacing(); /** * If returning 'true' the header is open. doesn't indent nor push on ID stack. user doesn't have to call TreePop(). */ - public static native boolean collapsingHeader(String label); /* - return ImGui::CollapsingHeader(label); - */ + @BindingMethod + public static native boolean CollapsingHeader(String label, @OptArg int imGuiTreeNodeFlags); /** - * If returning 'true' the header is open. doesn't indent nor push on ID stack. user doesn't have to call TreePop(). + * When 'p_visible != NULL': if '*p_visible==true' display an additional small close button on upper right of the header which will set the bool + * to false when clicked, if '*p_visible==false' don't display the header. */ - public static native boolean collapsingHeader(String label, int imGuiTreeNodeFlags); /* - return ImGui::CollapsingHeader(label, imGuiTreeNodeFlags); - */ - - /** - * When 'pVisible' isn't NULL, display an additional small close button on upper right of the header - * which will set the bool to false when clicked, if '*pVisible==false' don't display the header. - */ - public static boolean collapsingHeader(String label, ImBoolean pVisible) { - return nCollapsingHeader(label, pVisible.getData(), 0); - } - - /** - * When 'pVisible' isn't NULL, display an additional small close button on upper right of the header - * which will set the bool to false when clicked, if '*pVisible==false' don't display the header. - */ - public static boolean collapsingHeader(String label, ImBoolean pVisible, int imGuiTreeNodeFlags) { - return nCollapsingHeader(label, pVisible.getData(), imGuiTreeNodeFlags); - } - - private static native boolean nCollapsingHeader(String label, boolean[] pVisible, int imGuiTreeNodeFlags); /* - return ImGui::CollapsingHeader(label, &pVisible[0], imGuiTreeNodeFlags); - */ + @BindingMethod + private static native boolean CollapsingHeader(String label, ImBoolean pVisible, @OptArg int imGuiTreeNodeFlags); /** * Set next TreeNode/CollapsingHeader open state. */ - public static native void setNextItemOpen(boolean isOpen); /* - ImGui::SetNextItemOpen(isOpen); - */ - - /** - * Set next TreeNode/CollapsingHeader open state. - */ - public static native void setNextItemOpen(boolean isOpen, int cond); /* - ImGui::SetNextItemOpen(isOpen, cond); - */ + @BindingMethod + public static native void SetNextItemOpen(boolean isOpen, @OptArg int cond); // Widgets: Selectables // - A selectable highlights when hovered, and can display another color when selected. // - Neighbors selectable extend their highlight bounds in order to leave no gap between them. - public static native boolean selectable(String label); /* - return ImGui::Selectable(label); - */ + @BindingMethod + public static native boolean Selectable(String label, @OptArg(callValue = "false") boolean selected, @OptArg(callValue = "0") int imGuiSelectableFlags, @OptArg ImVec2 size); - public static native boolean selectable(String label, boolean selected); /* - return ImGui::Selectable(label, selected); - */ - - public static native boolean selectable(String label, boolean selected, int imGuiSelectableFlags); /* - return ImGui::Selectable(label, selected, imGuiSelectableFlags); - */ - - public static native boolean selectable(String label, boolean selected, int imGuiSelectableFlags, float sizeX, float sizeY); /* - return ImGui::Selectable(label, selected, imGuiSelectableFlags, ImVec2(sizeX, sizeY)); - */ - - public static boolean selectable(String label, ImBoolean selected) { - return nSelectable(label, selected.getData(), 0, 0, 0); - } - - public static boolean selectable(String label, ImBoolean selected, int imGuiSelectableFlags) { - return nSelectable(label, selected.getData(), imGuiSelectableFlags, 0, 0); - } - - public static boolean selectable(String label, ImBoolean selected, int imGuiSelectableFlags, float sizeX, float sizeY) { - return nSelectable(label, selected.getData(), imGuiSelectableFlags, sizeX, sizeY); - } - - private static native boolean nSelectable(String label, boolean[] selected, int imGuiSelectableFlags, float sizeX, float sizeY); /* - return ImGui::Selectable(label, &selected[0], imGuiSelectableFlags, ImVec2(sizeX, sizeY)); - */ + @BindingMethod + public static native boolean Selectable(String label, ImBoolean pSelected, @OptArg(callValue = "0") int imGuiSelectableFlags, @OptArg ImVec2 size); // Widgets: List Boxes // - This is essentially a thin wrapper to using BeginChild/EndChild with some stylistic changes. @@ -3960,131 +1631,40 @@ public class ImGui { /** * Open a framed scrolling region. */ - public static native boolean beginListBox(String label); /* - return ImGui::BeginListBox(label); - */ - - /** - * Open a framed scrolling region. - */ - public static native boolean beginListBox(String label, float sizeX, float sizeY); /* - return ImGui::BeginListBox(label, ImVec2(sizeX, sizeY)); - */ + @BindingMethod + public static native boolean BeginListBox(String label, @OptArg ImVec2 size); /** * Only call EndListBox() if BeginListBox() returned true! */ - public static native void endListBox(); /* - ImGui::EndListBox(); - */ + @BindingMethod + public static native void EndListBox(); - public static void listBox(String label, ImInt currentItem, String[] items) { - nListBox(label, currentItem.getData(), items, items.length, -1); - } - - public static void listBox(String label, ImInt currentItem, String[] items, int heightInItems) { - nListBox(label, currentItem.getData(), items, items.length, heightInItems); - } - - private static native boolean nListBox(String label, int[] currentItem, String[] items, int itemsCount, int heightInItems); /* - const char* listboxItems[itemsCount]; - - for (int i = 0; i < itemsCount; i++) { - jstring string = (jstring)env->GetObjectArrayElement(items, i); - const char* rawString = env->GetStringUTFChars(string, JNI_FALSE); - listboxItems[i] = rawString; - } - - bool flag = ImGui::ListBox(label, ¤tItem[0], listboxItems, itemsCount, heightInItems); - - for (int i = 0; i< itemsCount; i++) { - jstring string = (jstring)env->GetObjectArrayElement(items, i); - env->ReleaseStringUTFChars(string, listboxItems[i]); - } - - return flag; - */ + @BindingMethod + public static native void ListBox(String label, ImInt currentItem, String[] items, Void itemsCount, @OptArg int heightInItems); // Widgets: Data Plotting // - Consider using ImPlot (https://github.com/epezent/implot) - public static native void plotLines(String label, float[] values, int valuesCount); /* - ImGui::PlotLines(label, &values[0], valuesCount); - */ + @BindingMethod + public static native void PlotLines(String label, float[] values, int valuesCount, @OptArg(callValue = "0") int valuesOffset, @OptArg(callValue = "NULL") String overlayText, @OptArg float scaleMin, @OptArg float scaleMax, @OptArg(callValue = "ImVec2(0,0)") ImVec2 graphSize, @OptArg int stride); - public static native void plotLines(String label, float[] values, int valuesCount, int valuesOffset); /* - ImGui::PlotLines(label, &values[0], valuesCount, valuesOffset); - */ - - public static native void plotLines(String label, float[] values, int valuesCount, int valuesOffset, String overlayText); /* - ImGui::PlotLines(label, &values[0], valuesCount, valuesOffset, overlayText); - */ - - public static native void plotLines(String label, float[] values, int valuesCount, int valuesOffset, String overlayText, float scaleMin); /* - ImGui::PlotLines(label, &values[0], valuesCount, valuesOffset, overlayText, scaleMin); - */ - - public static native void plotLines(String label, float[] values, int valuesCount, int valuesOffset, String overlayText, float scaleMin, float scaleMax); /* - ImGui::PlotLines(label, &values[0], valuesCount, valuesOffset, overlayText, scaleMin, scaleMax); - */ - - public static native void plotLines(String label, float[] values, int valuesCount, int valuesOffset, String overlayText, float scaleMin, float scaleMax, float graphWidth, float graphHeight); /* - ImGui::PlotLines(label, &values[0], valuesCount, valuesOffset, overlayText, scaleMin, scaleMax, ImVec2(graphWidth, graphHeight)); - */ - - public static native void plotLines(String label, float[] values, int valuesCount, int valuesOffset, String overlayText, float scaleMin, float scaleMax, float graphWidth, float graphHeight, int stride); /* - ImGui::PlotLines(label, &values[0], valuesCount, valuesOffset, overlayText, scaleMin, scaleMax, ImVec2(graphWidth, graphHeight), stride); - */ - - public static native void plotHistogram(String label, float[] values, int valuesCount); /* - ImGui::PlotHistogram(label, &values[0], valuesCount); - */ - - public static native void plotHistogram(String label, float[] values, int valuesCount, int valuesOffset); /* - ImGui::PlotHistogram(label, &values[0], valuesCount, valuesOffset); - */ - - public static native void plotHistogram(String label, float[] values, int valuesCount, int valuesOffset, String overlayText); /* - ImGui::PlotHistogram(label, &values[0], valuesCount, valuesOffset, overlayText); - */ - - public static native void plotHistogram(String label, float[] values, int valuesCount, int valuesOffset, String overlayText, float scaleMin); /* - ImGui::PlotHistogram(label, &values[0], valuesCount, valuesOffset, overlayText, scaleMin); - */ - - public static native void plotHistogram(String label, float[] values, int valuesCount, int valuesOffset, String overlayText, float scaleMin, float scaleMax); /* - ImGui::PlotHistogram(label, &values[0], valuesCount, valuesOffset, overlayText, scaleMin, scaleMax); - */ - - public static native void plotHistogram(String label, float[] values, int valuesCount, int valuesOffset, String overlayText, float scaleMin, float scaleMax, float graphWidth, float graphHeight); /* - ImGui::PlotHistogram(label, &values[0], valuesCount, valuesOffset, overlayText, scaleMin, scaleMax, ImVec2(graphWidth, graphHeight)); - */ - - public static native void plotHistogram(String label, float[] values, int valuesCount, int valuesOffset, String overlayText, float scaleMin, float scaleMax, float graphWidth, float graphHeight, int stride); /* - ImGui::PlotHistogram(label, &values[0], valuesCount, valuesOffset, overlayText, scaleMin, scaleMax, ImVec2(graphWidth, graphHeight), stride); - */ + @BindingMethod + public static native void PlotHistogram(String label, float[] values, int valuesCount, @OptArg(callValue = "0") int valuesOffset, @OptArg(callValue = "NULL") String overlayText, @OptArg float scaleMin, @OptArg float scaleMax, @OptArg(callValue = "ImVec2(0,0)") ImVec2 graphSize, @OptArg int stride); // Widgets: Value() Helpers. // - Those are merely shortcut to calling Text() with a format string. Output single value in "name: value" format (tip: freely declare more in your code to handle your types. you can add functions to the ImGui namespace) - public static native void value(String prefix, boolean b); /* - ImGui::Value(prefix, b); - */ + public static void value(final String prefix, final Number value) { + nValue(prefix, value.toString()); + } - public static native void value(String prefix, int v); /* - ImGui::Value(prefix, (int)v); - */ + public static void value(final String prefix, final float value, String floatFormat) { + nValue(prefix, String.format(floatFormat, value)); + } - public static native void value(String prefix, long v); /* - ImGui::Value(prefix, (unsigned int)v); - */ - - public static native void value(String prefix, float f); /* - ImGui::Value(prefix, f); - */ - - public static native void value(String prefix, float f, String floatFormat); /* - ImGui::Value(prefix, f, floatFormat); + private static native void nValue(String prefix, String value); /* + ImGui::Value(prefix, value); */ // Widgets: Menus @@ -4095,131 +1675,56 @@ public class ImGui { /** * Append to menu-bar of current window (requires ImGuiWindowFlags_MenuBar flag set on parent window). */ - public static native boolean beginMenuBar(); /* - return ImGui::BeginMenuBar(); - */ + @BindingMethod + public static native boolean BeginMenuBar(); /** * Only call EndMenuBar() if BeginMenuBar() returns true! */ - public static native void endMenuBar(); /* - ImGui::EndMenuBar(); - */ + @BindingMethod + public static native void EndMenuBar(); /** * Create and append to a full screen menu-bar. */ - public static native boolean beginMainMenuBar(); /* - return ImGui::BeginMainMenuBar(); - */ + @BindingMethod + public static native boolean BeginMainMenuBar(); /** * Only call EndMainMenuBar() if BeginMainMenuBar() returns true! */ - public static native void endMainMenuBar(); /* - ImGui::EndMainMenuBar(); - */ + @BindingMethod + public static native void EndMainMenuBar(); /** * Create a sub-menu entry. only call EndMenu() if this returns true! */ - public static native boolean beginMenu(String label); /* - return ImGui::BeginMenu(label); - */ - - /** - * Create a sub-menu entry. only call EndMenu() if this returns true! - */ - public static native boolean beginMenu(String label, boolean enabled); /* - return ImGui::BeginMenu(label, enabled); - */ + @BindingMethod + public static native boolean BeginMenu(String label, @OptArg boolean enabled); /** * Only call EndMenu() if BeginMenu() returns true! */ - public static native void endMenu(); /* - ImGui::EndMenu(); - */ + @BindingMethod + public static native void EndMenu(); /** * Return true when activated. shortcuts are displayed for convenience but not processed by ImGui at the moment */ - public static native boolean menuItem(String label); /* - return ImGui::MenuItem(label); - */ + @BindingMethod + public static native boolean MenuItem(String label, Void NULL, @OptArg boolean selected, @OptArg boolean enabled); /** * Return true when activated. shortcuts are displayed for convenience but not processed by ImGui at the moment */ - public static boolean menuItem(String label, String shortcut) { - return nMenuItem(label, shortcut, false, true); - } - - /** - * Return true when activated. shortcuts are displayed for convenience but not processed by ImGui at the moment - */ - public static boolean menuItem(String label, String shortcut, boolean selected) { - return nMenuItem(label, shortcut, selected, true); - } - - /** - * Return true when activated. shortcuts are displayed for convenience but not processed by ImGui at the moment - */ - public static boolean menuItem(String label, String shortcut, boolean selected, boolean enabled) { - return nMenuItem(label, shortcut, selected, enabled); - } + @BindingMethod + public static native boolean MenuItem(String label, String shortcut, @OptArg boolean selected, @OptArg boolean enabled); /** * Return true when activated + toggle (*pSelected) if pSelected != NULL */ - public static boolean menuItem(String label, String shortcut, ImBoolean pSelected) { - return nMenuItem(label, shortcut, pSelected.getData(), true); - } - - /** - * Return true when activated + toggle (*pSelected) if pSelected != NULL - */ - public static boolean menuItem(String label, String shortcut, ImBoolean pSelected, boolean enabled) { - return nMenuItem(label, shortcut, pSelected.getData(), enabled); - } - - /** - * Return true when activated - */ - private static native boolean nMenuItem(String labelObj, String shortcutObj, boolean selected, boolean enabled); /*MANUAL - char* label = (char*)env->GetStringUTFChars(labelObj, JNI_FALSE); - char* shortcut = NULL; - if (shortcutObj != NULL) - shortcut = (char*)env->GetStringUTFChars(shortcutObj, JNI_FALSE); - - jboolean result = ImGui::MenuItem(label, shortcut, selected, enabled); - - if (shortcutObj != NULL) - env->ReleaseStringUTFChars(shortcutObj, shortcut); - env->ReleaseStringUTFChars(labelObj, label); - - return result; - */ - - /** - * Return true when activated + toggle (*pSelected) if pSelected != NULL - */ - private static native boolean nMenuItem(String labelObj, String shortcutObj, boolean[] pSelectedObj, boolean enabled); /*MANUAL - char* label = (char*)env->GetStringUTFChars(labelObj, JNI_FALSE); - char* shortcut = NULL; - if (shortcutObj != NULL) - shortcut = (char*)env->GetStringUTFChars(shortcutObj, JNI_FALSE); - bool* pSelected = (bool*)env->GetPrimitiveArrayCritical(pSelectedObj, JNI_FALSE); - - jboolean result = ImGui::MenuItem(label, shortcut, &pSelected[0], enabled); - - env->ReleasePrimitiveArrayCritical(pSelectedObj, pSelected, 0); - if (shortcutObj != NULL) - env->ReleaseStringUTFChars(shortcutObj, shortcut); - env->ReleaseStringUTFChars(labelObj, label); - - return result; - */ + @BindingMethod + public static native boolean MenuItem(String label, String shortcut, ImBoolean pSelected, @OptArg boolean enabled); // Tooltips // - Tooltip are windows following the mouse. They do not take focus away. @@ -4227,20 +1732,17 @@ public class ImGui { /** * Begin/append a tooltip window. to create full-featured tooltip (with any kind of items). */ - public static native void beginTooltip(); /* - ImGui::BeginTooltip(); - */ + @BindingMethod + public static native void BeginTooltip(); - public static native void endTooltip(); /* - ImGui::EndTooltip(); - */ + @BindingMethod + public static native void EndTooltip(); /** * Set a text-only tooltip, typically use with ImGui::IsItemHovered(). override any previous call to SetTooltip(). */ - public static native void setTooltip(String text); /* - ImGui::SetTooltip(text, NULL); - */ + @BindingMethod + public static native void SetTooltip(String text, Void NULL); // Popups, Modals // - They block normal mouse hovering detection (and therefore most mouse interactions) behind them. @@ -4257,59 +1759,20 @@ public class ImGui { /** * Return true if the popup is open, and you can start outputting to it. */ - public static native boolean beginPopup(String strId); /* - return ImGui::BeginPopup(strId); - */ + @BindingMethod + public static native boolean BeginPopup(String strId, @OptArg int imGuiWindowFlags); /** * Return true if the popup is open, and you can start outputting to it. */ - public static native boolean beginPopup(String strId, int imGuiWindowFlags); /* - return ImGui::BeginPopup(strId, imGuiWindowFlags); - */ - - /** - * Return true if the popup is open, and you can start outputting to it. - */ - public static native boolean beginPopupModal(String name); /* - return ImGui::BeginPopupModal(name); - */ - - /** - * Return true if the popup is open, and you can start outputting to it. - */ - public static boolean beginPopupModal(String name, ImBoolean pOpen) { - return nBeginPopupModal(name, pOpen.getData(), 0); - } - - /** - * Return true if the popup is open, and you can start outputting to it. - */ - public static boolean beginPopupModal(String name, int imGuiWindowFlags) { - return nBeginPopupModal(name, imGuiWindowFlags); - } - - /** - * Return true if the popup is open, and you can start outputting to it. - */ - public static boolean beginPopupModal(String name, ImBoolean pOpen, int imGuiWindowFlags) { - return nBeginPopupModal(name, pOpen.getData(), imGuiWindowFlags); - } - - private static native boolean nBeginPopupModal(String name, int imGuiWindowFlags); /* - return ImGui::BeginPopupModal(name, NULL, imGuiWindowFlags); - */ - - private static native boolean nBeginPopupModal(String name, boolean[] pOpen, int imGuiWindowFlags); /* - return ImGui::BeginPopupModal(name, &pOpen[0], imGuiWindowFlags); - */ + @BindingMethod + public static native boolean BeginPopupModal(String name, @OptArg(callValue = "NULL") ImBoolean pOpen, @OptArg int imGuiWindowFlags); /** * Only call EndPopup() if BeginPopupXXX() returns true! */ - public static native void endPopup(); /* - ImGui::EndPopup(); - */ + @BindingMethod + public static native void EndPopup(); // Popups: open/close functions // - OpenPopup(): set popup state to open. ImGuiPopupFlags are available for opening options. @@ -4321,51 +1784,26 @@ public class ImGui { /** * Call to mark popup as open (don't call every frame!). */ - public static native void openPopup(String strId); /* - ImGui::OpenPopup(strId); - */ + @BindingMethod + public static native void OpenPopup(String strId, @OptArg int imGuiPopupFlags); /** - * Call to mark popup as open (don't call every frame!). + * Id overload to facilitate calling from nested stacks. */ - public static native void openPopup(String strId, int imGuiPopupFlags); /* - ImGui::OpenPopup(strId, imGuiPopupFlags); - */ + @BindingMethod + public static native void OpenPopup(@ArgValue(callPrefix = "(ImGuiID)") int id, @OptArg int imGuiPopupFlags); /** * Helper to open popup when clicked on last item. return true when just opened. (note: actually triggers on the mouse _released_ event to be consistent with popup behaviors) */ - public static native void openPopupOnItemClick(); /* - ImGui::OpenPopupOnItemClick(); - */ - - /** - * Helper to open popup when clicked on last item. return true when just opened. (note: actually triggers on the mouse _released_ event to be consistent with popup behaviors) - */ - public static native void openPopupOnItemClick(String strId); /* - ImGui::OpenPopupOnItemClick(strId); - */ - - /** - * Helper to open popup when clicked on last item. return true when just opened. (note: actually triggers on the mouse _released_ event to be consistent with popup behaviors) - */ - public static native void openPopupOnItemClick(int imGuiPopupFlags); /* - ImGui::OpenPopupOnItemClick(NULL, imGuiPopupFlags); - */ - - /** - * Helper to open popup when clicked on last item. return true when just opened. (note: actually triggers on the mouse _released_ event to be consistent with popup behaviors) - */ - public static native void openPopupOnItemClick(String strId, int imGuiPopupFlags); /* - ImGui::OpenPopupOnItemClick(strId, imGuiPopupFlags); - */ + @BindingMethod + public static native void OpenPopupOnItemClick(@OptArg(callValue = "NULL") String strId, @OptArg int imGuiPopupFlags); /** * Manually close the popup we have begin-ed into. */ - public static native void closeCurrentPopup(); /* - ImGui::CloseCurrentPopup(); - */ + @BindingMethod + public static native void CloseCurrentPopup(); // Popups: open+begin combined functions helpers // - Helpers to do OpenPopup+BeginPopup where the Open action is triggered by e.g. hovering an item and right-clicking. @@ -4377,89 +1815,20 @@ public class ImGui { * Open+begin popup when clicked on last item. if you can pass a NULL str_id only if the previous item had an id. * If you want to use that on a non-interactive item such as Text() you need to pass in an explicit ID here. read comments in .cpp! */ - public static native boolean beginPopupContextItem(); /* - return ImGui::BeginPopupContextItem(); - */ - - /** - * Open+begin popup when clicked on last item. if you can pass a NULL str_id only if the previous item had an id. - * If you want to use that on a non-interactive item such as Text() you need to pass in an explicit ID here. read comments in .cpp! - */ - public static native boolean beginPopupContextItem(String strId); /* - return ImGui::BeginPopupContextItem(strId); - */ - - /** - * Open+begin popup when clicked on last item. if you can pass a NULL str_id only if the previous item had an id. - * If you want to use that on a non-interactive item such as Text() you need to pass in an explicit ID here. read comments in .cpp! - */ - public static native boolean beginPopupContextItem(int imGuiPopupFlags); /* - return ImGui::BeginPopupContextItem(NULL, imGuiPopupFlags); - */ - - /** - * Open+begin popup when clicked on last item. if you can pass a NULL str_id only if the previous item had an id. - * If you want to use that on a non-interactive item such as Text() you need to pass in an explicit ID here. read comments in .cpp! - */ - public static native boolean beginPopupContextItem(String strId, int imGuiPopupFlags); /* - return ImGui::BeginPopupContextItem(strId, imGuiPopupFlags); - */ + @BindingMethod + public static native boolean BeginPopupContextItem(@OptArg(callValue = "NULL") String strId, @OptArg int imGuiPopupFlags); /** * Open+begin popup when clicked on current window. */ - public static native boolean beginPopupContextWindow(); /* - return ImGui::BeginPopupContextWindow(); - */ - - /** - * Open+begin popup when clicked on current window. - */ - public static native boolean beginPopupContextWindow(String strId); /* - return ImGui::BeginPopupContextWindow(strId); - */ - - /** - * Open+begin popup when clicked on current window. - */ - public static native boolean beginPopupContextWindow(int imGuiPopupFlags); /* - return ImGui::BeginPopupContextWindow(NULL, imGuiPopupFlags); - */ - - /** - * Open+begin popup when clicked on current window. - */ - public static native boolean beginPopupContextWindow(String strId, int imGuiPopupFlags); /* - return ImGui::BeginPopupContextWindow(strId, imGuiPopupFlags); - */ + @BindingMethod + public static native boolean BeginPopupContextWindow(@OptArg(callValue = "NULL") String strId, @OptArg int imGuiPopupFlags); /** * Open+begin popup when clicked in void (where there are no windows). */ - public static native boolean beginPopupContextVoid(); /* - return ImGui::BeginPopupContextVoid(); - */ - - /** - * Open+begin popup when clicked in void (where there are no windows). - */ - public static native boolean beginPopupContextVoid(String strId); /* - return ImGui::BeginPopupContextVoid(strId); - */ - - /** - * Open+begin popup when clicked in void (where there are no windows). - */ - public static native boolean beginPopupContextVoid(int imGuiPopupFlags); /* - return ImGui::BeginPopupContextVoid(NULL, imGuiPopupFlags); - */ - - /** - * Open+begin popup when clicked in void (where there are no windows). - */ - public static native boolean beginPopupContextVoid(String strId, int imGuiPopupFlags); /* - return ImGui::BeginPopupContextVoid(strId, imGuiPopupFlags); - */ + @BindingMethod + public static native boolean BeginPopupContextVoid(@OptArg(callValue = "NULL") String strId, @OptArg int imGuiPopupFlags); // Popups: test function // - IsPopupOpen(): return true if the popup is open at the current BeginPopup() level of the popup stack. @@ -4469,16 +1838,8 @@ public class ImGui { /** * Return true if the popup is open. */ - public static native boolean isPopupOpen(String strId); /* - return ImGui::IsPopupOpen(strId); - */ - - /** - * Return true if the popup is open. - */ - public static native boolean isPopupOpen(String strId, int imGuiPopupFlags); /* - return ImGui::IsPopupOpen(strId, imGuiPopupFlags); - */ + @BindingMethod + public static native boolean IsPopupOpen(String strId, @OptArg int imGuiPopupFlags); // Tables // [BETA API] API may evolve slightly! If you use this, please update to the next version when it comes out! @@ -4506,63 +1867,32 @@ public class ImGui { // -------------------------------------------------------------------------------------------------------- // - 5. Call EndTable() - public static native boolean beginTable(String id, int column); /* - return ImGui::BeginTable(id, column); - */ - - public static native boolean beginTable(String id, int column, int imGuiTableFlags); /* - return ImGui::BeginTable(id, column, imGuiTableFlags); - */ - - public static native boolean beginTable(String id, int column, int imGuiTableFlags, float outerSizeX, float outerSizeY); /* - return ImGui::BeginTable(id, column, imGuiTableFlags, ImVec2(outerSizeX, outerSizeY)); - */ - - public static native boolean beginTable(String id, int column, int imGuiTableFlags, float outerSizeX, float outerSizeY, float innerWidth); /* - return ImGui::BeginTable(id, column, imGuiTableFlags, ImVec2(outerSizeX, outerSizeY), innerWidth); - */ + @BindingMethod + public static native boolean BeginTable(String id, int column, @OptArg(callValue = "0") int imGuiTableFlags, @OptArg(callValue = "ImVec2(0,0)") ImVec2 outerSize, @OptArg float innerWidth); /** * Only call EndTable() if BeginTable() returns true! */ - public static native void endTable(); /* - ImGui::EndTable(); - */ + @BindingMethod + public static native void EndTable(); /** * Append into the first cell of a new row. */ - public static native void tableNextRow(); /* - ImGui::TableNextRow(); - */ - - /** - * Append into the first cell of a new row. - */ - public static native void tableNextRow(int imGuiTableRowFlags); /* - ImGui::TableNextRow(imGuiTableRowFlags); - */ - - /** - * Append into the first cell of a new row. - */ - public static native void tableNextRow(int imGuiTableRowFlags, float minRowHeight); /* - ImGui::TableNextRow(imGuiTableRowFlags, minRowHeight); - */ + @BindingMethod + public static native void TableNextRow(@OptArg(callValue = "0") int imGuiTableRowFlags, @OptArg float minRowHeight); /** * Append into the next column (or first column of next row if currently in last column). Return true when column is visible. */ - public static native boolean tableNextColumn(); /* - return ImGui::TableNextColumn(); - */ + @BindingMethod + public static native boolean TableNextColumn(); /** * Append into the specified column. Return true when column is visible. */ - public static native boolean tableSetColumnIndex(int columnN); /* - return ImGui::TableSetColumnIndex(columnN); - */ + @BindingMethod + public static native boolean TableSetColumnIndex(int columnN); // Tables: Headers & Columns declaration // - Use TableSetupColumn() to specify label, resizing policy, default width/weight, id, various other flags etc. @@ -4573,42 +1903,26 @@ public class ImGui { // some advanced use cases (e.g. adding custom widgets in header row). // - Use TableSetupScrollFreeze() to lock columns/rows so they stay visible when scrolled. - public static native void tableSetupColumn(String label); /* - ImGui::TableSetupColumn(label); - */ - - public static native void tableSetupColumn(String label, int imGuiTableColumnFlags); /* - ImGui::TableSetupColumn(label, imGuiTableColumnFlags); - */ - - public static native void tableSetupColumn(String label, int imGuiTableColumnFlags, float initWidthOrWeight); /* - ImGui::TableSetupColumn(label, imGuiTableColumnFlags, initWidthOrWeight); - */ - - public static native void tableSetupColumn(String label, int imGuiTableColumnFlags, float initWidthOrWeight, int userId); /* - ImGui::TableSetupColumn(label, imGuiTableColumnFlags, initWidthOrWeight, userId); - */ + @BindingMethod + public static native void TableSetupColumn(String label, @OptArg(callValue = "0") int imGuiTableColumnFlags, @OptArg(callValue = "0.0f") float initWidthOrWeight, @OptArg int userId); /** * Lock columns/rows so they stay visible when scrolled. */ - public static native void tableSetupScrollFreeze(int cols, int rows); /* - ImGui::TableSetupScrollFreeze(cols, rows); - */ + @BindingMethod + public static native void TableSetupScrollFreeze(int cols, int rows); /** * Submit all headers cells based on data provided to TableSetupColumn() + submit context menu */ - public static native void tableHeadersRow(); /* - ImGui::TableHeadersRow(); - */ + @BindingMethod + public static native void TableHeadersRow(); /** * Submit one header cell manually (rarely used) */ - public static native void tableHeader(String label); /* - ImGui::TableHeader(label); - */ + @BindingMethod + public static native void TableHeader(String label); // Tables: Sorting // - Call TableGetSortSpecs() to retrieve latest sort specs for the table. NULL when not sorting. @@ -4625,145 +1939,91 @@ public class ImGui { /** * Return number of columns (value passed to BeginTable). */ - public static native int tableGetColumnCount(); /* - return ImGui::TableGetColumnCount(); - */ + @BindingMethod + public static native int TableGetColumnCount(); /** * Return current column index. */ - public static native int tableGetColumnIndex(); /* - return ImGui::TableGetColumnIndex(); - */ + @BindingMethod + public static native int TableGetColumnIndex(); /** * Return current row index. */ - public static native int tableGetRowIndex(); /* - return ImGui::TableGetRowIndex(); - */ + @BindingMethod + public static native int TableGetRowIndex(); /** * Return "" if column didn't have a name declared by TableSetupColumn(). Pass -1 to use current column. */ - public static native String tableGetColumnName(); /* - return env->NewStringUTF(ImGui::TableGetColumnName()); - */ + @BindingMethod + public static native String TableGetColumnName(@OptArg int columnN); /** - * Return "" if column didn't have a name declared by TableSetupColumn(). Pass -1 to use current column. + * Return column flags, so you can query their Enabled/Visible/Sorted/Hovered status flags. Pass -1 to use current column. */ - public static native String tableGetColumnName(int columnN); /* - return env->NewStringUTF(ImGui::TableGetColumnName(columnN)); - */ + @BindingMethod + public static native int TableGetColumnFlags(@OptArg int columnN); /** - * Return column flags so you can query their Enabled/Visible/Sorted/Hovered status flags. Pass -1 to use current column. + * change user accessible enabled/disabled state of a column. Set to false to hide the column. + * User can use the context menu to change this themselves (right-click in headers, or right-click in columns body with ImGuiTableFlags_ContextMenuInBody) */ - public static native int tableGetColumnFlags(); /* - return ImGui::TableGetColumnFlags(); - */ - - /** - * Return column flags so you can query their Enabled/Visible/Sorted/Hovered status flags. Pass -1 to use current column. - */ - public static native int tableGetColumnFlags(int columnN); /* - return ImGui::TableGetColumnFlags(columnN); - */ + @BindingMethod + public static native void TableSetColumnEnabled(int columnN, boolean value); /** * Change the color of a cell, row, or column. See ImGuiTableBgTarget_ flags for details. */ - public static native void tableSetBgColor(int imGuiTableBgTarget, int color); /* - ImGui::TableSetBgColor(imGuiTableBgTarget, color); - */ - - /** - * Change the color of a cell, row, or column. See ImGuiTableBgTarget_ flags for details. - */ - public static native void tableSetBgColor(int imGuiTableBgTarget, int color, int columnN); /* - ImGui::TableSetBgColor(imGuiTableBgTarget, color, columnN); - */ + @BindingMethod + public static native void TableSetBgColor(int imGuiTableBgTarget, int color, @OptArg int columnN); // Legacy Columns API (2020: prefer using Tables!) // Columns // - You can also use SameLine(posX) to mimic simplified columns. - public static native void columns(); /* - ImGui::Columns(); - */ - - public static native void columns(int count); /* - ImGui::Columns(count); - */ - - public static native void columns(int count, String id); /* - ImGui::Columns(count, id); - */ - - public static native void columns(int count, String id, boolean border); /* - ImGui::Columns(count, id, border); - */ + @BindingMethod + public static native void Columns(@OptArg(callValue = "1") int count, @OptArg(callValue = "NULL") String id, @OptArg boolean border); /** * Next column, defaults to current row or next row if the current row is finished */ - public static native void nextColumn(); /* - ImGui::NextColumn(); - */ + @BindingMethod + public static native void NextColumn(); /** * Get current column index */ - public static native int getColumnIndex(); /* - return ImGui::GetColumnIndex(); - */ + @BindingMethod + public static native int GetColumnIndex(); /** * Get column width (in pixels). pass -1 to use current column */ - public static native float getColumnWidth(); /* - return ImGui::GetColumnWidth(); - */ - - /** - * Get column width (in pixels). pass -1 to use current column - */ - public static native float getColumnWidth(int columnIndex); /* - return ImGui::GetColumnWidth(columnIndex); - */ + @BindingMethod + public static native float GetColumnWidth(@OptArg int columnIndex); /** * Set column width (in pixels). pass -1 to use current column */ - public static native void setColumnWidth(int columnIndex, float width); /* - ImGui::SetColumnWidth(columnIndex, width); - */ + @BindingMethod + public static native void SetColumnWidth(int columnIndex, float width); /** * Get position of column line (in pixels, from the left side of the contents region). pass -1 to use current column, otherwise 0..GetColumnsCount() inclusive. column 0 is typically 0.0f */ - public static native float getColumnOffset(); /* - return ImGui::GetColumnOffset(); - */ - - /** - * Get position of column line (in pixels, from the left side of the contents region). pass -1 to use current column, otherwise 0..GetColumnsCount() inclusive. column 0 is typically 0.0f - */ - public static native float getColumnOffset(int columnIndex); /* - return ImGui::GetColumnOffset(columnIndex); - */ + @BindingMethod + public static native float GetColumnOffset(@OptArg int columnIndex); /** * Set position of column line (in pixels, from the left side of the contents region). pass -1 to use current column */ - public static native void setColumnOffset(int columnIndex, float offsetX); /* - ImGui::SetColumnOffset(columnIndex, offsetX); - */ + @BindingMethod + public static native void SetColumnOffset(int columnIndex, float offsetX); - public static native int getColumnsCount(); /* - return ImGui::GetColumnsCount(); - */ + @BindingMethod + public static native int GetColumnsCount(); // Tab Bars, Tabs // Note: Tabs are automatically created by the docking system. Use this to create tab bars/tabs yourself without docking being involved. @@ -4771,88 +2031,39 @@ public class ImGui { /** * Create and append into a TabBar */ - public static native boolean beginTabBar(String strId); /* - return ImGui::BeginTabBar(strId); - */ - - /** - * Create and append into a TabBar - */ - public static native boolean beginTabBar(String strId, int imGuiTabBarFlags); /* - return ImGui::BeginTabBar(strId, imGuiTabBarFlags); - */ + @BindingMethod + public static native boolean BeginTabBar(String strId, @OptArg int imGuiTabBarFlags); /** * Only call EndTabBar() if BeginTabBar() returns true! */ - public static native void endTabBar(); /* - ImGui::EndTabBar(); - */ + @BindingMethod + public static native void EndTabBar(); /** * Create a Tab. Returns true if the Tab is selected. */ - public static native boolean beginTabItem(String label); /* - return ImGui::BeginTabItem(label); - */ - - /** - * Create a Tab. Returns true if the Tab is selected. - */ - public static boolean beginTabItem(String label, ImBoolean pOpen) { - return nBeginTabItem(label, pOpen.getData(), 0); - } - - /** - * Create a Tab. Returns true if the Tab is selected. - */ - public static boolean beginTabItem(String label, int imGuiTabItemFlags) { - return nBeginTabItem(label, imGuiTabItemFlags); - } - - /** - * Create a Tab. Returns true if the Tab is selected. - */ - public static boolean beginTabItem(String label, ImBoolean pOpen, int imGuiTabItemFlags) { - return nBeginTabItem(label, pOpen.getData(), imGuiTabItemFlags); - } - - private static native boolean nBeginTabItem(String label, int imGuiTabItemFlags); /* - return ImGui::BeginTabItem(label, NULL, imGuiTabItemFlags); - */ - - private static native boolean nBeginTabItem(String label, boolean[] pOpen, int imGuiTabItemFlags); /* - return ImGui::BeginTabItem(label, &pOpen[0], imGuiTabItemFlags); - */ + @BindingMethod + public static native boolean BeginTabItem(String label, @OptArg(callValue = "NULL") ImBoolean pOpen, @OptArg int imGuiTabItemFlags); /** * Only call EndTabItem() if BeginTabItem() returns true! */ - public static native void endTabItem(); /* - ImGui::EndTabItem(); - */ + @BindingMethod + public static native void EndTabItem(); /** * Create a Tab behaving like a button. return true when clicked. cannot be selected in the tab bar. */ - public static native boolean tabItemButton(String label); /* - return ImGui::TabItemButton(label); - */ - - /** - * Create a Tab behaving like a button. return true when clicked. cannot be selected in the tab bar. - */ - public static native boolean tabItemButton(String label, int imGuiTabItemFlags); /* - return ImGui::TabItemButton(label, imGuiTabItemFlags); - */ + @BindingMethod + public static native boolean TabItemButton(String label, @OptArg int imGuiTabItemFlags); /** * Notify TabBar or Docking system of a closed tab/window ahead (useful to reduce visual flicker on reorderable tab bars). * For tab-bar: call after BeginTabBar() and before Tab submissions. Otherwise call with a window name. */ - public static native void setTabItemClosed(String tabOrDockedWindowLabel); /* - ImGui::SetTabItemClosed(tabOrDockedWindowLabel); - */ + @BindingMethod + public static native void SetTabItemClosed(String tabOrDockedWindowLabel); // Docking // [BETA API] Enable with io.ConfigFlags |= ImGuiConfigFlags_DockingEnable. @@ -4863,81 +2074,32 @@ public class ImGui { // - Use DockSpace() to create an explicit dock node _within_ an existing window. See Docking demo for details. // - DockSpace() needs to be submitted _before_ any window they can host. If you use a dockspace, submit it early in your app. - public static int dockSpace(int imGuiID) { - return nDockSpace(imGuiID, 0, 0, 0, 0); - } + @BindingMethod + public static native int DockSpace(int imGuiID, @OptArg(callValue = "ImVec2(0,0)") ImVec2 size, @OptArg(callValue = "0") int imGuiDockNodeFlags, @OptArg ImGuiWindowClass windowClass); - public static int dockSpace(int imGuiID, float sizeX, float sizeY) { - return nDockSpace(imGuiID, sizeX, sizeY, 0, 0); - } - - public static int dockSpace(int imGuiID, float sizeX, float sizeY, int imGuiDockNodeFlags) { - return nDockSpace(imGuiID, sizeX, sizeY, imGuiDockNodeFlags, 0); - } - - public static int dockSpace(int imGuiID, float sizeX, float sizeY, int imGuiDockNodeFlags, ImGuiWindowClass imGuiWindowClass) { - return nDockSpace(imGuiID, sizeX, sizeY, imGuiDockNodeFlags, imGuiWindowClass.ptr); - } - - private static native int nDockSpace(int imGuiID, float sizeX, float sizeY, int imGuiDockNodeFlags, long windowClassPtr); /* - return ImGui::DockSpace(imGuiID, ImVec2(sizeX, sizeY), imGuiDockNodeFlags, windowClassPtr != 0 ? (ImGuiWindowClass*)windowClassPtr : NULL); - */ - - public static int dockSpaceOverViewport() { - return nDockSpaceOverViewport(0, 0, 0); - } - - public static int dockSpaceOverViewport(ImGuiViewport viewport) { - return nDockSpaceOverViewport(viewport.ptr, 0, 0); - } - - public static int dockSpaceOverViewport(ImGuiViewport viewport, int imGuiDockNodeFlags) { - return nDockSpaceOverViewport(viewport.ptr, imGuiDockNodeFlags, 0); - } - - public static int dockSpaceOverViewport(ImGuiViewport viewport, int imGuiDockNodeFlags, ImGuiWindowClass windowClass) { - return nDockSpaceOverViewport(viewport.ptr, imGuiDockNodeFlags, windowClass.ptr); - } - - private static native int nDockSpaceOverViewport(long viewportPtr, int imGuiDockNodeFlags, long windowClassPtr); /* - return ImGui::DockSpaceOverViewport(viewportPtr != 0 ? (ImGuiViewport*)viewportPtr : NULL, imGuiDockNodeFlags, windowClassPtr != 0 ? (ImGuiWindowClass*)windowClassPtr : NULL); - */ + @BindingMethod + public static native int DockSpaceOverViewport(@OptArg ImGuiViewport viewport, @OptArg(callValue = "0") int imGuiDockNodeFlags, @OptArg ImGuiWindowClass windowClass); /** * Set next window dock id */ - public static native void setNextWindowDockID(int dockId); /* - ImGui::SetNextWindowDockID(dockId); - */ - - /** - * Set next window dock id - */ - public static native void setNextWindowDockID(int dockId, int imGuiCond); /* - ImGui::SetNextWindowDockID(dockId, imGuiCond); - */ + @BindingMethod + public static native void SetNextWindowDockID(int dockId, @OptArg int imGuiCond); /** * set next window class (rare/advanced uses: provide hints to the platform backend via altered viewport flags and parent/child info) */ - public static void setNextWindowClass(ImGuiWindowClass windowClass) { - nSetNextWindowClass(windowClass.ptr); - } + @BindingMethod + public static native void SetNextWindowClass(ImGuiWindowClass windowClass); - private static native void nSetNextWindowClass(long windowClassPtr); /* - ImGui::SetNextWindowClass((ImGuiWindowClass*)windowClassPtr); - */ - - public static native int getWindowDockID(); /* - return ImGui::GetWindowDockID(); - */ + @BindingMethod + public static native int GetWindowDockID(); /** * Is current window docked into another window? */ - public static native boolean isWindowDocked(); /* - return ImGui::IsWindowDocked(); - */ + @BindingMethod + public static native boolean IsWindowDocked(); // Logging/Capture // - All text output from the interface can be captured into tty/file/clipboard. By default, tree nodes are automatically opened during logging. @@ -4945,94 +2107,51 @@ public class ImGui { /** * Start logging to tty (stdout) */ - public static native void logToTTY(); /* - ImGui::LogToTTY(); - */ - - /** - * Start logging to tty (stdout) - */ - public static native void logToTTY(int autoOpenDepth); /* - ImGui::LogToTTY(autoOpenDepth); - */ + @BindingMethod + public static native void LogToTTY(@OptArg int autoOpenDepth); /** * Start logging to file */ - public static native void logToFile(); /* - ImGui::LogToFile(); - */ - - /** - * Start logging to file - */ - public static native void logToFile(int autoOpenDepth); /* - ImGui::LogToFile(autoOpenDepth); - */ - - /** - * Start logging to file - */ - public static native void logToFile(int autoOpenDepth, String filename); /* - ImGui::LogToFile(autoOpenDepth, filename); - */ + @BindingMethod + public static native void LogToFile(@OptArg(callValue = "-1") int autoOpenDepth, @OptArg String filename); /** * Start logging to OS clipboard */ - public static native void logToClipboard(); /* - ImGui::LogToClipboard(); - */ - - - /** - * Start logging to OS clipboard - */ - public static native void logToClipboard(int autoOpenDepth); /* - ImGui::LogToClipboard(autoOpenDepth); - */ + @BindingMethod + public static native void LogToClipboard(@OptArg int autoOpenDepth); /** * Stop logging (close file, etc.) */ - public static native void logFinish(); /* - ImGui::LogFinish(); - */ + @BindingMethod + public static native void LogFinish(); /** * Helper to display buttons for logging to tty/file/clipboard */ - public static native void logButtons(); /* - ImGui::LogButtons(); - */ + @BindingMethod + public static native void LogButtons(); /** * Pass text data straight to log (without being displayed) */ - public static native void logText(String text); /* - ImGui::LogText(text, NULL); - */ + @BindingMethod + public static native void LogText(String text, Void NULL); // Drag and Drop // - If you stop calling BeginDragDropSource() the payload is preserved however it won't have a preview tooltip (we currently display a fallback "..." tooltip as replacement) + /** + * Call when the current item is active. If this return true, you can call SetDragDropPayload() + EndDragDropSource() + */ + @BindingMethod + public static native boolean BeginDragDropSource(@OptArg int imGuiDragDropFlags); + private static WeakReference payloadRef = null; private static final byte[] PAYLOAD_PLACEHOLDER_DATA = new byte[1]; - /** - * Call when the current item is active. If this return true, you can call SetDragDropPayload() + EndDragDropSource() - */ - public static native boolean beginDragDropSource(); /* - return ImGui::BeginDragDropSource(); - */ - - /** - * Call when the current item is active. If this return true, you can call SetDragDropPayload() + EndDragDropSource() - */ - public static native boolean beginDragDropSource(int imGuiDragDropFlags); /* - return ImGui::BeginDragDropSource(imGuiDragDropFlags); - */ - /** * Type is a user defined string of maximum 32 characters. Strings starting with '_' are reserved for dear imgui internal types. *

@@ -5041,7 +2160,7 @@ public class ImGui { * Binding stores a reference to the object in a form of {@link WeakReference}. */ public static boolean setDragDropPayload(final String dataType, final Object payload) { - return setDragDropPayload(dataType, payload, ImGuiCond.None); + return setDragDropPayload(dataType, payload, 0); } /** @@ -5062,7 +2181,7 @@ public class ImGui { * Binding alternative for {@link #setDragDropPayload(String, Object)}, which uses payload class as a unique identifier. */ public static boolean setDragDropPayload(final Object payload) { - return setDragDropPayload(payload, ImGuiCond.None); + return setDragDropPayload(payload, 0); } /** @@ -5079,16 +2198,14 @@ public class ImGui { /** * Only call EndDragDropSource() if BeginDragDropSource() returns true! */ - public static native void endDragDropSource(); /* - ImGui::EndDragDropSource(); - */ + @BindingMethod + public static native void EndDragDropSource(); /** * Call after submitting an item that may receive a payload. If this returns true, you can call AcceptDragDropPayload() + EndDragDropTarget() */ - public static native boolean beginDragDropTarget(); /* - return ImGui::BeginDragDropTarget(); - */ + @BindingMethod + public static native boolean BeginDragDropTarget(); /** * Accept contents of a given type. If ImGuiDragDropFlags_AcceptBeforeDelivery is set you can peek into the payload before the mouse button is released. @@ -5148,9 +2265,8 @@ public class ImGui { /** * Only call EndDragDropTarget() if BeginDragDropTarget() returns true! */ - public static native void endDragDropTarget(); /* - ImGui::EndDragDropTarget(); - */ + @BindingMethod + public static native void EndDragDropTarget(); /** * Peek directly into the current payload from anywhere. May return NULL. @@ -5202,33 +2318,20 @@ public class ImGui { * BeginDisabled(false) essentially does nothing useful but is provided to facilitate use of boolean expressions. * If you can avoid calling BeginDisabled(False)/EndDisabled() best to avoid it. */ - public static void beginDisabled() { - beginDisabled(true); - } + @BindingMethod + public static native void BeginDisabled(@OptArg boolean disabled); - /** - * Disable all user interactions and dim items visuals (applying style.DisabledAlpha over current colors) - * BeginDisabled(false) essentially does nothing useful but is provided to facilitate use of boolean expressions. - * If you can avoid calling BeginDisabled(False)/EndDisabled() best to avoid it. - */ - public static native void beginDisabled(boolean disabled); /* - ImGui::BeginDisabled(disabled); - */ - - public static native void endDisabled(); /* - ImGui::EndDisabled(); - */ + @BindingMethod + public static native void EndDisabled(); // Clipping // - Mouse hovering is affected by ImGui::PushClipRect() calls, unlike direct calls to ImDrawList::PushClipRect() which are render only. - public static native void pushClipRect(float clipRectMinX, float clipRectMinY, float clipRectMaxX, float clipRectMaxY, boolean intersectWithCurrentClipRect); /* - ImGui::PushClipRect(ImVec2(clipRectMinX, clipRectMinY), ImVec2(clipRectMaxX, clipRectMaxY), intersectWithCurrentClipRect); - */ + @BindingMethod + public static native void PushClipRect(ImVec2 clipRectMin, ImVec2 clipRectMax, boolean intersectWithCurrentClipRect); - public static native void popClipRect(); /* - ImGui::PopClipRect(); - */ + @BindingMethod + public static native void PopClipRect(); // Focus, Activation // - Prefer using "SetItemDefaultFocus()" over "if (IsWindowAppearing()) SetScrollHereY()" when applicable to signify "this is the default item" @@ -5236,23 +2339,14 @@ public class ImGui { /** * Make last item the default focused item of a window. */ - public static native void setItemDefaultFocus(); /* - ImGui::SetItemDefaultFocus(); - */ + @BindingMethod + public static native void SetItemDefaultFocus(); /** * Focus keyboard on the next widget. Use positive 'offset' to access sub components of a multiple component widget. Use -1 to access previous widget. */ - public static native void setKeyboardFocusHere(); /* - ImGui::SetKeyboardFocusHere(); - */ - - /** - * Focus keyboard on the next widget. Use positive 'offset' to access sub components of a multiple component widget. Use -1 to access previous widget. - */ - public static native void setKeyboardFocusHere(int offset); /* - ImGui::SetKeyboardFocusHere(offset); - */ + @BindingMethod + public static native void SetKeyboardFocusHere(@OptArg int offset); // Item/Widgets Utilities // - Most of the functions are referring to the last/previous item we submitted. @@ -5261,208 +2355,107 @@ public class ImGui { /** * Is the last item hovered? (and usable, aka not blocked by a popup, etc.). See ImGuiHoveredFlags for more options. */ - public static native boolean isItemHovered(); /* - return ImGui::IsItemHovered(); - */ - - /** - * Is the last item hovered? (and usable, aka not blocked by a popup, etc.). See ImGuiHoveredFlags for more options. - */ - public static native boolean isItemHovered(int imGuiHoveredFlags); /* - return ImGui::IsItemHovered(imGuiHoveredFlags); - */ + @BindingMethod + public static native boolean IsItemHovered(@OptArg int imGuiHoveredFlags); /** * Is the last item active? (e.g. button being held, text field being edited. * This will continuously return true while holding mouse button on an item. * Items that don't interact will always return false) */ - public static native boolean isItemActive(); /* - return ImGui::IsItemActive(); - */ + @BindingMethod + public static native boolean IsItemActive(); /** * Is the last item focused for keyboard/gamepad navigation? */ - public static native boolean isItemFocused(); /* - return ImGui::IsItemFocused(); - */ + @BindingMethod + public static native boolean IsItemFocused(); /** * Is the last item clicked? (e.g. button/node just clicked on) == {@code IsMouseClicked(mouseButton) && IsItemHovered()} */ - public static native boolean isItemClicked(); /* - return ImGui::IsItemClicked(); - */ - - /** - * Is the last item clicked? (e.g. button/node just clicked on) == {@code IsMouseClicked(mouseButton) && IsItemHovered()} - */ - public static native boolean isItemClicked(int mouseButton); /* - return ImGui::IsItemClicked(mouseButton); - */ + @BindingMethod + public static native boolean IsItemClicked(@OptArg int mouseButton); /** * Is the last item visible? (items may be out of sight because of clipping/scrolling) */ - public static native boolean isItemVisible(); /* - return ImGui::IsItemVisible(); - */ + @BindingMethod + public static native boolean IsItemVisible(); /** * Did the last item modify its underlying value this frame? or was pressed? This is generally the same as the "bool" return value of many widgets. */ - public static native boolean isItemEdited(); /* - return ImGui::IsItemEdited(); - */ + @BindingMethod + public static native boolean IsItemEdited(); /** * Was the last item just made active (item was previously inactive). */ - public static native boolean isItemActivated(); /* - return ImGui::IsItemActivated(); - */ + @BindingMethod + public static native boolean IsItemActivated(); /** * Was the last item just made inactive (item was previously active). Useful for Undo/Redo patterns with widgets that requires continuous editing. */ - public static native boolean isItemDeactivated(); /* - return ImGui::IsItemDeactivated(); - */ + @BindingMethod + public static native boolean IsItemDeactivated(); /** * Was the last item just made inactive and made a value change when it was active? (e.g. Slider/Drag moved). * Useful for Undo/Redo patterns with widgets that requires continuous editing. * Note that you may get false positives (some widgets such as Combo()/ListBox()/Selectable() will return true even when clicking an already selected item). */ - public static native boolean isItemDeactivatedAfterEdit(); /* - return ImGui::IsItemDeactivatedAfterEdit(); - */ + @BindingMethod + public static native boolean IsItemDeactivatedAfterEdit(); /** * Was the last item open state toggled? set by TreeNode(). */ - public static native boolean isItemToggledOpen(); /* - return ImGui::IsItemToggledOpen(); - */ + @BindingMethod + public static native boolean IsItemToggledOpen(); /** * Is any item hovered? */ - public static native boolean isAnyItemHovered(); /* - return ImGui::IsAnyItemHovered(); - */ + @BindingMethod + public static native boolean IsAnyItemHovered(); /** * Is any item active? */ - public static native boolean isAnyItemActive(); /* - return ImGui::IsAnyItemActive(); - */ - + @BindingMethod + public static native boolean IsAnyItemActive(); /** * Is any item focused? */ - public static native boolean isAnyItemFocused(); /* - return ImGui::IsAnyItemFocused(); - */ + @BindingMethod + public static native boolean IsAnyItemFocused(); /** * Get upper-left bounding rectangle of the last item (screen space) */ - public static ImVec2 getItemRectMin() { - final ImVec2 value = new ImVec2(); - getItemRectMin(value); - return value; - } - - /** - * Get upper-left bounding rectangle of the last item (screen space) - */ - public static native void getItemRectMin(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, ImGui::GetItemRectMin(), dstImVec2); - */ - - /** - * Get upper-left bounding rectangle of the last item (screen space) - */ - public static native float getItemRectMinX(); /* - return ImGui::GetItemRectMin().x; - */ - - /** - * Get upper-left bounding rectangle of the last item (screen space) - */ - public static native float getItemRectMinY(); /* - return ImGui::GetItemRectMin().y; - */ + @BindingMethod + public static native ImVec2 GetItemRectMin(); /** * Get lower-right bounding rectangle of the last item (screen space) */ - public static ImVec2 getItemRectMax() { - final ImVec2 value = new ImVec2(); - getItemRectMax(value); - return value; - } - - /** - * Get lower-right bounding rectangle of the last item (screen space) - */ - public static native void getItemRectMax(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, ImGui::GetItemRectMax(), dstImVec2); - */ - - /** - * Get lower-right bounding rectangle of the last item (screen space) - */ - public static native float getItemRectMaxX(); /* - return ImGui::GetItemRectMax().x; - */ - - /** - * Get lower-right bounding rectangle of the last item (screen space) - */ - public static native float getItemRectMaxY(); /* - return ImGui::GetItemRectMax().y; - */ + @BindingMethod + public static native ImVec2 GetItemRectMax(); /** * Get size of last item */ - public static ImVec2 getItemRectSize() { - final ImVec2 value = new ImVec2(); - getItemRectSize(value); - return value; - } - - /** - * Get size of last item - */ - public static native void getItemRectSize(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, ImGui::GetItemRectSize(), dstImVec2); - */ - - /** - * Get size of last item - */ - public static native float getItemRectSizeX(); /* - return ImGui::GetItemRectSize().x; - */ - - /** - * Get size of last item - */ - public static native float getItemRectSizeY(); /* - return ImGui::GetItemRectSize().y; - */ + @BindingMethod + public static native ImVec2 GetItemRectSize(); /** * Allow last item to be overlapped by a subsequent item. sometimes useful with invisible buttons, selectables, etc. to catch unused area. */ - public static native void setItemAllowOverlap(); /* - ImGui::SetItemAllowOverlap(); - */ + @BindingMethod + public static native void SetItemAllowOverlap(); // Viewports // - Currently represents the Platform Window created by the application which is hosting our Dear ImGui windows. @@ -5472,208 +2465,105 @@ public class ImGui { /** * Return primary/default viewport. */ - public static ImGuiViewport getMainViewport() { - MAIN_VIEWPORT.ptr = nGetMainViewport(); - return MAIN_VIEWPORT; - } - - private static native long nGetMainViewport(); /* - return (intptr_t)ImGui::GetMainViewport(); - */ + @BindingMethod + @ReturnValue(isStatic = true) + public static native ImGuiViewport GetMainViewport(); // Miscellaneous Utilities /** * Test if rectangle (of given size, starting from cursor position) is visible / not clipped. */ - public static native boolean isRectVisible(float width, float height); /* - return ImGui::IsRectVisible(ImVec2(width, height)); - */ + @BindingMethod + public static native boolean IsRectVisible(ImVec2 size); /** * Test if rectangle (in screen space) is visible / not clipped. to perform coarse clipping on user's side. */ - public static native boolean isRectVisible(float minX, float minY, float maxX, float maxY); /* - return ImGui::IsRectVisible(ImVec2(minX, minY), ImVec2(maxX, maxY)); - */ + @BindingMethod + public static native boolean IsRectVisible(ImVec2 rectMin, ImVec2 rectMax); /** * Get global imgui time. incremented by io.DeltaTime every frame. */ - public static native double getTime(); /* - return ImGui::GetTime(); - */ + @BindingMethod + public static native double GetTime(); /** * Get global imgui frame count. incremented by 1 every frame. */ - public static native int getFrameCount(); /* - return ImGui::GetFrameCount(); - */ + @BindingMethod + public static native int GetFrameCount(); /** * Get background draw list for the viewport associated to the current window. * This draw list will be the first rendering one. Useful to quickly draw shapes/text behind dear imgui contents. */ - public static ImDrawList getBackgroundDrawList() { - BACKGROUND_DRAW_LIST.ptr = nGetBackgroundDrawList(); - return BACKGROUND_DRAW_LIST; - } - - private static native long nGetBackgroundDrawList(); /* - return (intptr_t)ImGui::GetBackgroundDrawList(); - */ + @BindingMethod + public static native ImDrawList GetBackgroundDrawList(@OptArg ImGuiViewport viewport); /** * Get foreground draw list for the viewport associated to the current window. * This draw list will be the first rendering one. Useful to quickly draw shapes/text behind dear imgui contents. */ - public static ImDrawList getForegroundDrawList() { - FOREGROUND_DRAW_LIST.ptr = nGetForegroundDrawList(); - return FOREGROUND_DRAW_LIST; - } - - private static native long nGetForegroundDrawList(); /* - return (intptr_t)ImGui::GetForegroundDrawList(); - */ - - /** - * Get background draw list for the given viewport. - * This draw list will be the first rendering one. Useful to quickly draw shapes/text behind dear imgui contents. - */ - public static ImDrawList getBackgroundDrawList(ImGuiViewport viewport) { - BACKGROUND_DRAW_LIST.ptr = nGetBackgroundDrawList(viewport.ptr); - return BACKGROUND_DRAW_LIST; - } - - private static native long nGetBackgroundDrawList(long viewportPtr); /* - return (intptr_t)ImGui::GetBackgroundDrawList((ImGuiViewport*)viewportPtr); - */ - - /** - * Get foreground draw list for the given viewport. - * This draw list will be the last rendered one. Useful to quickly draw shapes/text over dear imgui contents. - */ - public static ImDrawList getForegroundDrawList(ImGuiViewport viewport) { - BACKGROUND_DRAW_LIST.ptr = nGetForegroundDrawList(viewport.ptr); - return BACKGROUND_DRAW_LIST; - } - - private static native long nGetForegroundDrawList(long viewportPtr); /* - return (intptr_t)ImGui::GetBackgroundDrawList((ImGuiViewport*)viewportPtr); - */ + @BindingMethod + public static native ImDrawList GetForegroundDrawList(@OptArg ImGuiViewport viewport); // TODO GetDrawListSharedData /** * Get a string corresponding to the enum value (for display, saving, etc.). */ - public static native String getStyleColorName(int imGuiCol); /* - return env->NewStringUTF(ImGui::GetStyleColorName(imGuiCol)); - */ + @BindingMethod + public static native String GetStyleColorName(int imGuiColIdx); /** * Replace current window storage with our own (if you want to manipulate it yourself, typically clear subsection of it). */ - public static void setStateStorage(final ImGuiStorage storage) { - nSetStateStorage(storage.ptr); - } + @BindingMethod + public static native void SetStateStorage(final ImGuiStorage storage); - private static native void nSetStateStorage(long imGuiStoragePtr); /* - ImGui::SetStateStorage((ImGuiStorage*)imGuiStoragePtr); - */ - - public static ImGuiStorage getStateStorage() { - IMGUI_STORAGE.ptr = nGetStateStorage(); - return IMGUI_STORAGE; - } - - private static native long nGetStateStorage(); /* - return (intptr_t)ImGui::GetStateStorage(); - */ + @BindingMethod + public static native ImGuiStorage GetStateStorage(); /** * Helper to create a child window / scrolling region that looks like a normal widget frame */ - public static native boolean beginChildFrame(int id, float width, float height); /* - return ImGui::BeginChildFrame(id, ImVec2(width, height)); - */ - - /** - * Helper to create a child window / scrolling region that looks like a normal widget frame - */ - public static native boolean beginChildFrame(int id, float width, float height, int imGuiWindowFlags); /* - return ImGui::BeginChildFrame(id, ImVec2(width, height), imGuiWindowFlags); - */ + @BindingMethod + public static native boolean BeginChildFrame(int id, ImVec2 size, @OptArg int imGuiWindowFlags); /** * Always call EndChildFrame() regardless of BeginChildFrame() return values (which indicates a collapsed/clipped window) */ - public static native void endChildFrame(); /* - ImGui::EndChildFrame(); - */ + @BindingMethod + public static native void EndChildFrame(); // Text Utilities - public static ImVec2 calcTextSize(final String text) { - final ImVec2 value = new ImVec2(); - calcTextSize(value, text); - return value; - } - - public static ImVec2 calcTextSize(final String text, final boolean hideTextAfterDoubleHash) { - final ImVec2 value = new ImVec2(); - calcTextSize(value, text, hideTextAfterDoubleHash); - return value; - } - - public static ImVec2 calcTextSize(final String text, final boolean hideTextAfterDoubleHash, final float wrapWidth) { - final ImVec2 value = new ImVec2(); - calcTextSize(value, text, hideTextAfterDoubleHash, wrapWidth); - return value; - } - - public static native void calcTextSize(ImVec2 dstImVec2, String text); /* - ImVec2 src = ImGui::CalcTextSize(text); - Jni::ImVec2Cpy(env, src, dstImVec2); - */ - - public static native void calcTextSize(ImVec2 dstImVec2, String text, boolean hideTextAfterDoubleHash); /* - ImVec2 src = ImGui::CalcTextSize(text, NULL, hideTextAfterDoubleHash); - Jni::ImVec2Cpy(env, src, dstImVec2); - */ - - public static native void calcTextSize(ImVec2 dstImVec2, String text, float wrapWidth); /* - ImVec2 src = ImGui::CalcTextSize(text, NULL, false, wrapWidth); - Jni::ImVec2Cpy(env, src, dstImVec2); - */ - - public static native void calcTextSize(ImVec2 dstImVec2, String text, boolean hideTextAfterDoubleHash, float wrapWidth); /* - ImVec2 src = ImGui::CalcTextSize(text, NULL, hideTextAfterDoubleHash, wrapWidth); - Jni::ImVec2Cpy(env, src, dstImVec2); - */ + @BindingMethod + public static native ImVec2 CalcTextSize(String text, Void NULL, @OptArg(callValue = "false") boolean hideTextAfterDoubleHash, @OptArg float wrapWidth); // Color Utilities - public final ImVec4 colorConvertU32ToFloat4(final int in) { - final ImVec4 value = new ImVec4(); - colorConvertU32ToFloat4(in, value); - return value; + @BindingMethod + public static native ImVec4 ColorConvertU32ToFloat4(final int in); + + @BindingMethod + public static native int ColorConvertFloat4ToU32(ImVec4 in); + + public static void colorConvertRGBtoHSV(float[] rgb, float[] hsv){ + nColorConvertRGBtoHSV(rgb, hsv); } - public static native void colorConvertU32ToFloat4(int in, ImVec4 dstImVec4); /* - Jni::ImVec4Cpy(env, ImGui::ColorConvertU32ToFloat4(in), dstImVec4); - */ - - public static native int colorConvertFloat4ToU32(float r, float g, float b, float a); /* - return ImGui::ColorConvertFloat4ToU32(ImVec4(r, g, b, a)); - */ - - public static native void colorConvertRGBtoHSV(float[] rgb, float[] hsv); /* + public static native void nColorConvertRGBtoHSV(float[] rgb, float[] hsv); /* ImGui::ColorConvertRGBtoHSV(rgb[0], rgb[1], rgb[2], hsv[0], hsv[1], hsv[2]); */ - public static native void colorConvertHSVtoRGB(float[] hsv, float[] rgb); /* + public static void colorConvertHSVtoRGB(float[] hsv, float[] rgb) { + nColorConvertHSVtoRGB(hsv, rgb); + } + + public static native void nColorConvertHSVtoRGB(float[] hsv, float[] rgb); /* ImGui::ColorConvertHSVtoRGB(hsv[0], hsv[1], hsv[2], rgb[0], rgb[1], rgb[2]); */ @@ -5684,63 +2574,40 @@ public class ImGui { /** * Map ImGuiKey_* values into user's key index. == io.KeyMap[key] */ - public static native int getKeyIndex(int imguiKey); /* - return ImGui::GetKeyIndex(imguiKey); - */ - + @BindingMethod + public static native int GetKeyIndex(int imguiKey); /** * Is key being held. == io.KeysDown[user_key_index]. */ - public static native boolean isKeyDown(int userKeyIndex); /* - return ImGui::IsKeyDown(userKeyIndex); - */ + @BindingMethod + public static native boolean IsKeyDown(int userKeyIndex); /** * Was key pressed (went from !Down to Down)? if repeat=true, uses io.KeyRepeatDelay / KeyRepeatRate */ - public static native boolean isKeyPressed(int userKeyIndex); /* - return ImGui::IsKeyPressed(userKeyIndex); - */ - - /** - * Was key pressed (went from !Down to Down)? if repeat=true, uses io.KeyRepeatDelay / KeyRepeatRate - */ - public static native boolean isKeyPressed(int userKeyIndex, boolean repeat); /* - return ImGui::IsKeyPressed(userKeyIndex, repeat); - */ + @BindingMethod + public static native boolean IsKeyPressed(int userKeyIndex, @OptArg boolean repeat); /** * Was key released (went from Down to !Down).. */ - public static native boolean isKeyReleased(int userKeyIndex); /* - return ImGui::IsKeyReleased(userKeyIndex); - */ + @BindingMethod + public static native boolean IsKeyReleased(int userKeyIndex); /** * Uses provided repeat rate/delay. * Return a count, most often 0 or 1 but might be {@code >1} if RepeatRate is small enough that {@code DeltaTime > RepeatRate} */ - public static native boolean getKeyPressedAmount(int keyIndex, float repeatDelay, float rate); /* - return ImGui::GetKeyPressedAmount(keyIndex, repeatDelay, rate); - */ + @BindingMethod + public static native boolean GetKeyPressedAmount(int keyIndex, float repeatDelay, float rate); /** * Attention: misleading name! manually override io.WantCaptureKeyboard flag next frame (said flag is entirely left for your application to handle). * e.g. force capture keyboard when your widget is being hovered. * This is equivalent to setting "io.WantCaptureKeyboard = wantCaptureKeyboardValue"; after the next NewFrame() call. */ - public static native void captureKeyboardFromApp(); /* - ImGui::CaptureKeyboardFromApp(); - */ - - /** - * Attention: misleading name! manually override io.WantCaptureKeyboard flag next frame (said flag is entirely left for your application to handle). - * e.g. force capture keyboard when your widget is being hovered. - * This is equivalent to setting "io.WantCaptureKeyboard = wantCaptureKeyboardValue"; after the next NewFrame() call. - */ - public static native void captureKeyboardFromApp(boolean wantCaptureKeyboardValue); /* - ImGui::CaptureKeyboardFromApp(wantCaptureKeyboardValue); - */ + @BindingMethod + public static native void CaptureKeyboardFromApp(@OptArg boolean wantCaptureKeyboardValue); // Inputs Utilities: Mouse // - To refer to a mouse button, you may use named enums in your code e.g. ImGuiMouseButton_Left, ImGuiMouseButton_Right. @@ -5750,303 +2617,107 @@ public class ImGui { /** * Is mouse button held (0=left, 1=right, 2=middle) */ - public static native boolean isMouseDown(int button); /* - return ImGui::IsMouseDown(button); - */ - - /** - * Is any mouse button held - */ - public static native boolean isAnyMouseDown(); /* - return ImGui::IsAnyMouseDown(); - */ + @BindingMethod + public static native boolean IsMouseDown(int button); /** * Did mouse button clicked (went from !Down to Down) (0=left, 1=right, 2=middle) */ - public static native boolean isMouseClicked(int button); /* - return ImGui::IsMouseClicked(button); - */ - - public static native boolean isMouseClicked(int button, boolean repeat); /* - return ImGui::IsMouseClicked(button, repeat); - */ - - /** - * did mouse button double-clicked? (note that a double-click will also report IsMouseClicked() == true). - */ - public static native boolean isMouseDoubleClicked(int button); /* - return ImGui::IsMouseDoubleClicked(button); - */ - - /** - * Return the number of successive mouse-clicks at the time where a click happen (otherwise 0). - */ - public static native int getMouseClickedCount(int button); /* - return ImGui::GetMouseClickedCount(button); - */ + @BindingMethod + public static native boolean IsMouseClicked(int button, @OptArg boolean repeat); /** * Did mouse button released (went from Down to !Down) */ - public static native boolean isMouseReleased(int button); /* - return ImGui::IsMouseReleased(button); - */ + @BindingMethod + public static native boolean IsMouseReleased(int button); /** - * Is mouse dragging. if lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold + * did mouse button double-clicked? (note that a double-click will also report IsMouseClicked() == true). */ - public static native boolean isMouseDragging(int button); /* - return ImGui::IsMouseDragging(button); - */ + @BindingMethod + public static native boolean IsMouseDoubleClicked(int button); /** - * Is mouse dragging. if lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold + * Return the number of successive mouse-clicks at the time where a click happen (otherwise 0). */ - public static native boolean isMouseDragging(int button, float lockThreshold); /* - return ImGui::IsMouseDragging(button, lockThreshold); - */ + @BindingMethod + public static native int GetMouseClickedCount(int button); /** * Is mouse hovering given bounding rect (in screen space). clipped by current clipping settings, but disregarding of other consideration of focus/window ordering/popup-block. */ - public static native boolean isMouseHoveringRect(float minX, float minY, float maxX, float maxY); /* - return ImGui::IsMouseHoveringRect(ImVec2(minX, minY), ImVec2(maxX, maxY)); - */ - - /** - * Is mouse hovering given bounding rect (in screen space). clipped by current clipping settings, but disregarding of other consideration of focus/window ordering/popup-block. - */ - public static native boolean isMouseHoveringRect(float minX, float minY, float maxX, float maxY, boolean clip); /* - return ImGui::IsMouseHoveringRect(ImVec2(minX, minY), ImVec2(maxX, maxY), clip); - */ + @BindingMethod + public static native boolean IsMouseHoveringRect(ImVec2 rMin, ImVec2 rMax, @OptArg boolean clip); /** * By convention we use (-FLT_MAX,-FLT_MAX) to denote that there is no mouse */ - public static native boolean isMousePosValid(); /* - return ImGui::IsMousePosValid(); - */ + @BindingMethod + public static native boolean IsMousePosValid(@OptArg @ArgValue(callPrefix = "&") final ImVec2 mousePos); /** - * By convention we use (-FLT_MAX,-FLT_MAX) to denote that there is no mouse + * Is any mouse button held */ - public static native boolean isMousePosValid(float mousePosX, float mousePosY); /* - ImVec2 pos = ImVec2(mousePosX, mousePosY); - return ImGui::IsMousePosValid(&pos); - */ + @BindingMethod + public static native boolean IsAnyMouseDown(); /** * Shortcut to ImGui::GetIO().MousePos provided by user, to be consistent with other calls */ - public static ImVec2 getMousePos() { - final ImVec2 value = new ImVec2(); - getMousePos(value); - return value; - } - - /** - * Shortcut to ImGui::GetIO().MousePos provided by user, to be consistent with other calls - */ - public static native void getMousePos(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, ImGui::GetMousePos(), dstImVec2); - */ - - /** - * Shortcut to ImGui::GetIO().MousePos provided by user, to be consistent with other calls - */ - public static native float getMousePosX(); /* - return ImGui::GetMousePos().x; - */ - - /** - * Shortcut to ImGui::GetIO().MousePos provided by user, to be consistent with other calls - */ - public static native float getMousePosY(); /* - return ImGui::GetMousePos().y; - */ + @BindingMethod + public static native ImVec2 GetMousePos(); /** * Retrieve backup of mouse position at the time of opening popup we have BeginPopup() into */ - public static ImVec2 getMousePosOnOpeningCurrentPopup() { - final ImVec2 value = new ImVec2(); - getMousePosOnOpeningCurrentPopup(value); - return value; - } + @BindingMethod + public static native ImVec2 GetMousePosOnOpeningCurrentPopup(); /** - * Retrieve backup of mouse position at the time of opening popup we have BeginPopup() into + * Is mouse dragging. if lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold */ - public static native void getMousePosOnOpeningCurrentPopup(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, ImGui::GetMousePosOnOpeningCurrentPopup(), dstImVec2); - */ - - /** - * Retrieve backup of mouse position at the time of opening popup we have BeginPopup() into - */ - public static native float getMousePosOnOpeningCurrentPopupX(); /* - return ImGui::GetMousePosOnOpeningCurrentPopup().x; - */ - - /** - * Retrieve backup of mouse position at the time of opening popup we have BeginPopup() into - */ - public static native float getMousePosOnOpeningCurrentPopupY(); /* - return ImGui::GetMousePosOnOpeningCurrentPopup().y; - */ + @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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. */ - public static ImVec2 getMouseDragDelta() { - final ImVec2 value = new ImVec2(); - getMouseDragDelta(value); - return value; - } + @BindingMethod + public static native ImVec2 GetMouseDragDelta(@OptArg final int button, @OptArg final float lockThreshold); + + @BindingMethod + public static native void ResetMouseDragDelta(@OptArg 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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. - */ - public static native void getMouseDragDelta(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, ImGui::GetMouseDragDelta(), dstImVec2); - */ - - /** - * 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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. - */ - public static native float getMouseDragDeltaX(); /* - return ImGui::GetMouseDragDelta().x; - */ - - /** - * 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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. - */ - public static native float getMouseDragDeltaY(); /* - return ImGui::GetMouseDragDelta().y; - */ - - /** - * 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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. - */ - public static ImVec2 getMouseDragDelta(final int button) { - final ImVec2 value = new ImVec2(); - getMouseDragDelta(value, button); - return value; - } - - /** - * 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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. - */ - public static native void getMouseDragDelta(ImVec2 dstImVec2, int button); /* - Jni::ImVec2Cpy(env, ImGui::GetMouseDragDelta(button), dstImVec2); - */ - - /** - * 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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. - */ - public static native float getMouseDragDeltaX(int button); /* - return ImGui::GetMouseDragDelta(button).x; - */ - - /** - * 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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. - */ - public static native float getMouseDragDeltaY(int button); /* - return ImGui::GetMouseDragDelta(button).y; - */ - - /** - * 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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. - */ - public static ImVec2 getMouseDragDelta(final int button, final float lockThreshold) { - final ImVec2 value = new ImVec2(); - getMouseDragDelta(value, button, lockThreshold); - return value; - } - - /** - * 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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. - */ - public static native void getMouseDragDelta(ImVec2 dstImVec2, int button, float lockThreshold); /* - Jni::ImVec2Cpy(env, ImGui::GetMouseDragDelta(button, lockThreshold), dstImVec2); - */ - - /** - * 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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. - */ - public static native float getMouseDragDeltaX(int button, float lockThreshold); /* - return ImGui::GetMouseDragDelta(button, lockThreshold).x; - */ - - /** - * 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. If lockThreshold {@code < -1.0f} uses io.MouseDraggingThreshold. - */ - public static native float getMouseDragDeltaY(int button, float lockThreshold); /* - return ImGui::GetMouseDragDelta(button, lockThreshold).y; - */ - - public static native void resetMouseDragDelta(); /* - ImGui::ResetMouseDragDelta(); - */ - - public static native void resetMouseDragDelta(int button); /* - ImGui::ResetMouseDragDelta(button); - */ - - /** - * Get desired cursor type, reset in ImGui::NewFrame(), this is updated during the frame. valid before Render(). + * get desired cursor type, reset in ImGui::NewFrame(), this is updated during the frame. valid before Render(). * If you use software rendering by setting io.MouseDrawCursor ImGui will render those for you */ - public static native int getMouseCursor(); /* - return ImGui::GetMouseCursor(); - */ + @BindingMethod + public static native int GetMouseCursor(); /** * Set desired cursor type */ - public static native void setMouseCursor(int type); /* - ImGui::SetMouseCursor(type); - */ + @BindingMethod + public static native void SetMouseCursor(int type); /** * Attention: misleading name! manually override io.WantCaptureMouse flag next frame (said flag is entirely left for your application to handle). * This is equivalent to setting "io.WantCaptureMouse = wantCaptureMouseValue;" after the next NewFrame() call. */ - public static native void captureMouseFromApp(); /* - ImGui::CaptureMouseFromApp(); - */ - - /** - * Attention: misleading name! manually override io.WantCaptureMouse flag next frame (said flag is entirely left for your application to handle). - * This is equivalent to setting "io.WantCaptureMouse = wantCaptureMouseValue;" after the next NewFrame() call. - */ - public static native void captureMouseFromApp(boolean wantCaptureMouseValue); /* - ImGui::CaptureMouseFromApp(wantCaptureMouseValue); - */ + @BindingMethod + public static native void CaptureMouseFromApp(@OptArg boolean wantCaptureMouseValue); // Clipboard Utilities // - Also see the LogToClipboard() function to capture GUI into clipboard, or easily output text data to the clipboard. - public static native String getClipboardText(); /* - return env->NewStringUTF(ImGui::GetClipboardText()); - */ + @BindingMethod + public static native String GetClipboardText(); - public static native void setClipboardText(String text); /* - ImGui::SetClipboardText(text); - */ + @BindingMethod + public static native void SetClipboardText(String text); // Settings/.Ini Utilities // - The disk functions are automatically called if io.IniFilename != NULL (default is "imgui.ini"). @@ -6055,46 +2726,33 @@ public class ImGui { /** * Call after CreateContext() and before the first call to NewFrame(). NewFrame() automatically calls LoadIniSettingsFromDisk(io.IniFilename). */ - public static native void loadIniSettingsFromDisk(String iniFilename); /* - ImGui::LoadIniSettingsFromDisk(iniFilename); - */ + @BindingMethod + public static native void LoadIniSettingsFromDisk(String iniFilename); /** * Call after CreateContext() and before the first call to NewFrame() to provide .ini data from your own data source. */ - public static native void loadIniSettingsFromMemory(String iniData); /* - ImGui::LoadIniSettingsFromMemory(iniData); - */ - - /** - * Call after CreateContext() and before the first call to NewFrame() to provide .ini data from your own data source. - */ - public static native void loadIniSettingsFromMemory(String iniData, int iniSize); /* - ImGui::LoadIniSettingsFromMemory(iniData, iniSize); - */ + @BindingMethod + public static native void LoadIniSettingsFromMemory(String iniData, @OptArg int iniSize); /** * This is automatically called (if io.IniFilename is not empty) a few seconds after any modification that should be reflected in the .ini file (and also by DestroyContext). */ - public static native void saveIniSettingsToDisk(String iniFilename); /* - ImGui::SaveIniSettingsToDisk(iniFilename); - */ + @BindingMethod + public static native void SaveIniSettingsToDisk(String iniFilename); /** * Return a zero-terminated string with the .ini data which you can save by your own mean. * Call when io.WantSaveIniSettings is set, then save data by your own mean and clear io.WantSaveIniSettings. */ - public static native String saveIniSettingsToMemory(); /* - return env->NewStringUTF(ImGui::SaveIniSettingsToMemory()); - */ + @BindingMethod + public static native String SaveIniSettingsToMemory(@OptArg @ArgValue(callPrefix = "(size_t*)&") long outIniSize); - /** - * Return a zero-terminated string with the .ini data which you can save by your own mean. - * Call when io.WantSaveIniSettings is set, then save data by your own mean and clear io.WantSaveIniSettings. - */ - public static native String saveIniSettingsToMemory(long outIniSize); /* - return env->NewStringUTF(ImGui::SaveIniSettingsToMemory((size_t*)&outIniSize)); - */ + // Debug Utilities + // - This is used by the IMGUI_CHECKVERSION() macro. + + @BindingMethod + public static native boolean DebugCheckVersionAndDataLayout(String versionStr, int szIo, int szStyle, int szVec2, int szVec4, int szDrawVert, int szDrawIdx); // (Optional) Platform/OS interface for multi-viewport support // Read comments around the ImGuiPlatformIO structure for more details. @@ -6103,60 +2761,40 @@ public class ImGui { /** * Platform/renderer functions, for backend to setup + viewports list. */ - public static ImGuiPlatformIO getPlatformIO() { - PLATFORM_IO.ptr = nGetPlatformIO(); - return PLATFORM_IO; - } - - private static native long nGetPlatformIO(); /* - return (intptr_t)&ImGui::GetPlatformIO(); - */ + @BindingMethod + @ReturnValue(isStatic = true, callPrefix = "&") + public static native ImGuiPlatformIO GetPlatformIO(); /** * Call in main loop. Will call CreateWindow/ResizeWindow/etc. Platform functions for each secondary viewport, and DestroyWindow for each inactive viewport. */ - public static native void updatePlatformWindows(); /* - ImGui::UpdatePlatformWindows(); - */ + @BindingMethod + public static native void UpdatePlatformWindows(); /** - * Call in main loop. will call RenderWindow/SwapBuffers platform functions for each secondary viewport which doesn't have the ImGuiViewportFlags_Minimized flag set. - * May be reimplemented by user for custom rendering needs. + * Call in main loop. will call RenderWindow/SwapBuffers platform functions for each secondary viewport which doesn't have the ImGuiViewportFlags_Minimized flag set. + * May be reimplemented by user for custom rendering needs. */ - public static native void renderPlatformWindowsDefault(); /* - ImGui::RenderPlatformWindowsDefault(); - */ + @BindingMethod + public static native void RenderPlatformWindowsDefault(); /** * Call DestroyWindow platform functions for all viewports. * Call from backend Shutdown() if you need to close platform windows before imgui shutdown. * Otherwise will be called by DestroyContext(). */ - public static native void destroyPlatformWindows(); /* - ImGui::DestroyPlatformWindows(); - */ + @BindingMethod + public static native void DestroyPlatformWindows(); /** * This is a helper for backends. */ - public static ImGuiViewport findViewportByID(int imGuiID) { - FIND_VIEWPORT.ptr = nFindViewportByID(imGuiID); - return FIND_VIEWPORT; - } - - private static native long nFindViewportByID(int imGuiID); /* - return (intptr_t)ImGui::FindViewportByID(imGuiID); - */ + @BindingMethod + public static native ImGuiViewport FindViewportByID(int imGuiID); /** * This is a helper for backends. The type platform_handle is decided by the backend (e.g. HWND, MyWindow*, GLFWwindow* etc.) */ - public static ImGuiViewport findViewportByPlatformHandle(long platformHandle) { - FIND_VIEWPORT.ptr = nFindViewportByPlatformHandle(platformHandle); - return FIND_VIEWPORT; - } - - private static native long nFindViewportByPlatformHandle(long platformHandle); /* - return (intptr_t)ImGui::FindViewportByPlatformHandle((void*)platformHandle); - */ + @BindingMethod + public static native ImGuiViewport FindViewportByPlatformHandle(@ArgValue(callPrefix = "(void*)") long platformHandle); } diff --git a/imgui-binding/src/main/java/imgui/ImGuiIO.java b/imgui-binding/src/main/java/imgui/ImGuiIO.java index 26583d8..770f549 100644 --- a/imgui-binding/src/main/java/imgui/ImGuiIO.java +++ b/imgui-binding/src/main/java/imgui/ImGuiIO.java @@ -1,6 +1,12 @@ package imgui; import imgui.binding.ImGuiStruct; +import imgui.binding.annotation.ArgValue; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingMethod; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.ReturnValue; +import imgui.binding.annotation.TypeArray; import imgui.callback.ImStrConsumer; import imgui.callback.ImStrSupplier; @@ -8,17 +14,15 @@ import imgui.callback.ImStrSupplier; * Communicate most settings and inputs/outputs to Dear ImGui using this structure. * Access via ImGui::GetIO(). Read 'Programmer guide' section in .cpp file for general usage. */ +@BindingSource public final class ImGuiIO extends ImGuiStruct { - private ImFontAtlas imFontAtlas = new ImFontAtlas(0); - public ImGuiIO(final long ptr) { super(ptr); } /*JNI #include "_common.h" - - #define IO ((ImGuiIO*)STRUCT_PTR) + #define THIS ((ImGuiIO*)STRUCT_PTR) */ //------------------------------------------------------------------ @@ -28,276 +32,161 @@ public final class ImGuiIO extends ImGuiStruct { /** * See ImGuiConfigFlags enum. Set by user/application. Gamepad/keyboard navigation options, etc. */ - public native int getConfigFlags(); /* - return IO->ConfigFlags; - */ - - /** - * See ImGuiConfigFlags enum. Set by user/application. Gamepad/keyboard navigation options, etc. - */ - public native void setConfigFlags(int configFlags); /* - IO->ConfigFlags = configFlags; - */ - - /** - * See ImGuiConfigFlags enum. Set by user/application. Gamepad/keyboard navigation options, etc. - */ - public void addConfigFlags(final int configFlags) { - setConfigFlags(getConfigFlags() | configFlags); - } - - /** - * See ImGuiConfigFlags enum. Set by user/application. Gamepad/keyboard navigation options, etc. - */ - public void removeConfigFlags(final int configFlags) { - setConfigFlags(getConfigFlags() & ~(configFlags)); - } - - /** - * See ImGuiConfigFlags enum. Set by user/application. Gamepad/keyboard navigation options, etc. - */ - public boolean hasConfigFlags(final int flags) { - return (getConfigFlags() & flags) != 0; - } + @BindingField(isFlag = true) + public int ConfigFlags; /** * See ImGuiBackendFlags enum. Set by backend to communicate features supported by the backend. */ - public native int getBackendFlags(); /* - return IO->BackendFlags; - */ + @BindingField(isFlag = true) + public int BackendFlags; /** - * See ImGuiBackendFlags enum. Set by backend to communicate features supported by the backend. + * Main display size, in pixels (generally == {@code GetMainViewport()->Size}) */ - public native void setBackendFlags(int backendFlags); /* - IO->BackendFlags = backendFlags; - */ + @BindingField + public ImVec2 DisplaySize; /** - * See ImGuiBackendFlags enum. Set by backend to communicate features supported by the backend. + * Time elapsed since last frame, in seconds. */ - public void addBackendFlags(final int backendFlags) { - setBackendFlags(getBackendFlags() | backendFlags); - } - - /** - * See ImGuiBackendFlags enum. Set by backend to communicate features supported by the backend. - */ - public void removeBackendFlags(final int backendFlags) { - setBackendFlags(getBackendFlags() & ~(backendFlags)); - } - - /** - * See ImGuiBackendFlags enum. Set by backend to communicate features supported by the backend. - */ - public boolean hasBackendFlags(final int flags) { - return (getBackendFlags() & flags) != 0; - } + @BindingField + public float DeltaTime; /** * Minimum time between saving positions/sizes to .ini file, in seconds. */ - public native float getIniSavingRate(); /* - return IO->IniSavingRate; - */ - - /** - * Minimum time between saving positions/sizes to .ini file, in seconds. - */ - public native void setIniSavingRate(float iniSavingRate); /* - IO->IniSavingRate = iniSavingRate; - */ + @BindingField + public float IniSavingRate; /** * Path to .ini file. Set NULL to disable automatic .ini loading/saving, if e.g. you want to manually load/save from memory. */ - public native String getIniFilename(); /* - return env->NewStringUTF(IO->IniFilename); - */ - - /** - * Path to .ini file. Set NULL to disable automatic .ini loading/saving, if e.g. you want to manually load/save from memory. - */ - public native void setIniFilename(String iniFilename); /*MANUAL - IO->IniFilename = obj_iniFilename == NULL ? NULL : (char*)env->GetStringUTFChars(obj_iniFilename, JNI_FALSE); - */ + @BindingField + public String IniFilename; /** * Path to .log file (default parameter to ImGui::LogToFile when no file is specified). */ - public native String getLogFilename(); /* - return env->NewStringUTF(IO->LogFilename); - */ - - /** - * Path to .log file (default parameter to ImGui::LogToFile when no file is specified). - */ - public native void setLogFilename(String logFilename); /*MANUAL - IO->LogFilename = obj_logFilename == NULL ? NULL : (char*)env->GetStringUTFChars(obj_logFilename, JNI_FALSE); - */ + @BindingField + public String LogFilename; /** * Time for a double-click, in seconds. */ - public native float getMouseDoubleClickTime(); /* - return IO->MouseDoubleClickTime; - */ - - /** - * Time for a double-click, in seconds. - */ - public native void setMouseDoubleClickTime(float mouseDoubleClickTime); /* - IO->MouseDoubleClickTime = mouseDoubleClickTime; - */ + @BindingField + public float MouseDoubleClickTime; /** * Distance threshold to stay in to validate a double-click, in pixels. */ - public native float getMouseDoubleClickMaxDist(); /* - return IO->MouseDoubleClickTime; - */ - - /** - * Distance threshold to stay in to validate a double-click, in pixels. - */ - public native void setMouseDoubleClickMaxDist(float mouseDoubleClickMaxDist); /* - IO->MouseDoubleClickMaxDist = mouseDoubleClickMaxDist; - */ + @BindingField + public float MouseDoubleClickMaxDist; /** * Distance threshold before considering we are dragging. */ - public native float getMouseDragThreshold(); /* - return IO->MouseDoubleClickTime; - */ - - /** - * Distance threshold before considering we are dragging. - */ - public native void setMouseDragThreshold(float mouseDragThreshold); /* - IO->MouseDragThreshold = mouseDragThreshold; - */ + @BindingField + public float MouseDragThreshold; /** * Map of indices into the KeysDown[512] entries array which represent your "native" keyboard state. */ - public native void getKeyMap(int[] buff); /* - for(int i = 0; i < ImGuiKey_COUNT; i++) - buff[i] = IO->KeyMap[i]; - */ - - /** - * Map of indices into the KeysDown[512] entries array which represent your "native" keyboard state. - */ - public native int getKeyMap(int idx); /* - return IO->KeyMap[idx]; - */ - - /** - * Map of indices into the KeysDown[512] entries array which represent your "native" keyboard state. - */ - public native void setKeyMap(int idx, int code); /* - IO->KeyMap[idx] = code; - */ - - /** - * Map of indices into the KeysDown[512] entries array which represent your "native" keyboard state. - */ - public native void setKeyMap(int[] keyMap); /* - for (int i = 0; i < ImGuiKey_COUNT; i++) - IO->KeyMap[i] = keyMap[i]; - */ + @BindingField + @TypeArray(type = "int", size = "ImGuiKey_COUNT") + public int[] KeyMap; /** * When holding a key/button, time before it starts repeating, in seconds (for buttons in Repeat mode, etc.). */ - public native float getKeyRepeatDelay(); /* - return IO->KeyRepeatDelay; - */ - - /** - * When holding a key/button, time before it starts repeating, in seconds (for buttons in Repeat mode, etc.). - */ - public native void setKeyRepeatDelay(float keyRepeatDelay); /* - IO->KeyRepeatDelay = keyRepeatDelay; - */ + @BindingField + public float KeyRepeatDelay; /** * When holding a key/button, rate at which it repeats, in seconds. */ - public native float getKeyRepeatRate(); /* - return IO->KeyRepeatRate; - */ - - /** - * When holding a key/button, rate at which it repeats, in seconds. - */ - public native void setKeyRepeatRate(float keyRepeatRate); /* - IO->KeyRepeatRate = keyRepeatRate; - */ + @BindingField + public float KeyRepeatRate; /** * Font atlas: load, rasterize and pack one or more fonts into a single texture. */ - public ImFontAtlas getFonts() { - imFontAtlas.ptr = nGetFonts(); - return imFontAtlas; - } - - private native long nGetFonts(); /* - return (intptr_t)IO->Fonts; - */ - - /** - * Font atlas: load, rasterize and pack one or more fonts into a single texture. - *

- * BINDING NOTICE: You SHOULD manually destroy previously used ImFontAtlas. - */ - public void setFonts(final ImFontAtlas imFontAtlas) { - this.imFontAtlas = imFontAtlas; - nSetFonts(imFontAtlas.ptr); - } - - private native void nSetFonts(long imFontAtlasPtr); /* - IO->Fonts = (ImFontAtlas*)imFontAtlasPtr; - */ + @BindingField + @ReturnValue(isStatic = true) + public ImFontAtlas Fonts; /** * Global scale all fonts */ - public native float getFontGlobalScale(); /* - return IO->FontGlobalScale; - */ - - /** - * Global scale all fonts - */ - public native void setFontGlobalScale(float fontGlobalScale); /* - IO->FontGlobalScale = fontGlobalScale; - */ + @BindingField + public float FontGlobalScale; /** * Allow user scaling text of individual window with CTRL+Wheel. */ - public native boolean getFontAllowUserScaling(); /* - return IO->FontAllowUserScaling; - */ + @BindingField + public boolean FontAllowUserScaling; /** - * Allow user scaling text of individual window with CTRL+Wheel. + * Font to use on NewFrame(). Use NULL to uses Fonts{@code ->}Fonts[0]. */ - public native void setFontAllowUserScaling(boolean fontAllowUserScaling); /* - IO->FontAllowUserScaling = fontAllowUserScaling; - */ + @BindingField + public ImFont FontDefault; - public void setFontDefault(final ImFont fontDefault) { - nSetFontDefault(fontDefault.ptr); - } + /** + * For retina display or other situations where window coordinates are different from framebuffer coordinates. This generally ends up in ImDrawData::FramebufferScale. + */ + @BindingField + public ImVec2 DisplayFramebufferScale; - private native void nSetFontDefault(long fontDefaultPtr); /* - IO->FontDefault = (ImFont*)fontDefaultPtr; - */ + // Docking options (when ImGuiConfigFlags_DockingEnable is set) + + /** + * Simplified docking mode: disable window splitting, so docking is limited to merging multiple windows together into tab-bars. + */ + @BindingField + public boolean ConfigDockingNoSplit; + + /** + * Enable docking with holding Shift key (reduce visual noise, allows dropping in wider space) + */ + @BindingField + public boolean ConfigDockingWithShift; + + @BindingField + public boolean ConfigDockingAlwaysTabBar; + + /** + * Make window or viewport transparent when docking and only display docking boxes on the target viewport. Useful if rendering of multiple viewport cannot be synced. Best used with ConfigViewportsNoAutoMerge. + */ + @BindingField + public boolean ConfigDockingTransparentPayload; + + // Viewport options (when ImGuiConfigFlags_ViewportsEnable is set) + + /** + * Set to make all floating imgui windows always create their own viewport. Otherwise, they are merged into the main host viewports when overlapping it. May also set ImGuiViewportFlags_NoAutoMerge on individual viewport. + */ + @BindingField + public boolean ConfigViewportsNoAutoMerge; + + /** + * Disable default OS task bar icon flag for secondary viewports. When a viewport doesn't want a task bar icon, ImGuiViewportFlags_NoTaskBarIcon will be set on it. + */ + @BindingField + public boolean ConfigViewportsNoTaskBarIcon; + + /** + * Disable default OS window decoration flag for secondary viewports. When a viewport doesn't want window decorations, ImGuiViewportFlags_NoDecoration will be set on it. Enabling decoration can create subsequent issues at OS levels (e.g. minimum window size). + */ + @BindingField + public boolean ConfigViewportsNoDecoration; + + /** + * Disable default OS parenting to main viewport for secondary viewports. By default, viewports are marked with ParentViewportId = {@code }, expecting the platform backend to setup a parent/child relationship between the OS windows (some backend may ignore this). Set to true if you want the default to be 0, then all viewports will be top-level OS windows. + */ + @BindingField + public boolean ConfigViewportsNoDefaultParent; // Miscellaneous options @@ -305,109 +194,48 @@ public final class ImGuiIO extends ImGuiStruct { * Request ImGui to draw a mouse cursor for you (if you are on a platform without a mouse cursor). * Cannot be easily renamed to 'io.ConfigXXX' because this is frequently used by backend implementations. */ - public native boolean getMouseDrawCursor(); /* - return IO->MouseDrawCursor; - */ - - /** - * Request ImGui to draw a mouse cursor for you (if you are on a platform without a mouse cursor). - * Cannot be easily renamed to 'io.ConfigXXX' because this is frequently used by backend implementations. - */ - public native void setMouseDrawCursor(boolean mouseDrawCursor); /* - IO->MouseDrawCursor = mouseDrawCursor; - */ + @BindingField + public boolean MouseDrawCursor; /** * OS X style: Text editing cursor movement using Alt instead of Ctrl, Shortcuts using Cmd/Super instead of Ctrl, * Line/Text Start and End using Cmd+Arrows instead of Home/End, Double click selects by word instead of selecting whole text, * Multi-selection in lists uses Cmd/Super instead of Ctrl */ - public native boolean getConfigMacOSXBehaviors(); /* - return IO->ConfigMacOSXBehaviors; - */ - - /** - * OS X style: Text editing cursor movement using Alt instead of Ctrl, Shortcuts using Cmd/Super instead of Ctrl, - * Line/Text Start and End using Cmd+Arrows instead of Home/End, Double click selects by word instead of selecting whole text, - * Multi-selection in lists uses Cmd/Super instead of Ctrl - */ - public native void setConfigMacOSXBehaviors(boolean configMacOSXBehaviors); /* - IO->ConfigMacOSXBehaviors = configMacOSXBehaviors; - */ + @BindingField + public boolean ConfigMacOSXBehaviors; /** * Set to false to disable blinking cursor, for users who consider it distracting. */ - public native boolean getConfigInputTextCursorBlink(); /* - return IO->ConfigInputTextCursorBlink; - */ - - /** - * Set to false to disable blinking cursor, for users who consider it distracting. - */ - public native void setConfigInputTextCursorBlink(boolean configInputTextCursorBlink); /* - IO->ConfigInputTextCursorBlink = configInputTextCursorBlink; - */ + @BindingField + public boolean ConfigInputTextCursorBlink; /** * [BETA] Enable turning DragXXX widgets into text input with a simple mouse click-release (without moving). Not desirable on devices without a keyboard. */ - public native boolean getConfigDragClickToInputText(); /* - return IO->ConfigDragClickToInputText; - */ - - /** - * [BETA] Enable turning DragXXX widgets into text input with a simple mouse click-release (without moving). Not desirable on devices without a keyboard. - */ - public native void setConfigDragClickToInputText(boolean configDragClickToInputText); /* - IO->ConfigDragClickToInputText = configDragClickToInputText; - */ + @BindingField + public boolean ConfigDragClickToInputText; /** * Enable resizing of windows from their edges and from the lower-left corner. * This requires (io.BackendFlags {@code &} ImGuiBackendFlags_HasMouseCursors) because it needs mouse cursor feedback. * (This used to be a per-window ImGuiWindowFlags_ResizeFromAnySide flag) */ - public native boolean getConfigWindowsResizeFromEdges(); /* - return IO->ConfigWindowsResizeFromEdges; - */ - - /** - * Enable resizing of windows from their edges and from the lower-left corner. - * This requires (io.BackendFlags {@code &} ImGuiBackendFlags_HasMouseCursors) because it needs mouse cursor feedback. - * (This used to be a per-window ImGuiWindowFlags_ResizeFromAnySide flag) - */ - public native void setConfigWindowsResizeFromEdges(boolean configWindowsResizeFromEdges); /* - IO->ConfigWindowsResizeFromEdges = configWindowsResizeFromEdges; - */ + @BindingField + public boolean ConfigWindowsResizeFromEdges; /** * Enable allowing to move windows only when clicking on their title bar. Does not apply to windows without a title bar. */ - public native boolean getConfigWindowsMoveFromTitleBarOnly(); /* - return IO->ConfigWindowsMoveFromTitleBarOnly; - */ - - /** - * Enable allowing to move windows only when clicking on their title bar. Does not apply to windows without a title bar. - */ - public native void setConfigWindowsMoveFromTitleBarOnly(boolean configWindowsMoveFromTitleBarOnly); /* - IO->ConfigWindowsMoveFromTitleBarOnly = configWindowsMoveFromTitleBarOnly; - */ + @BindingField + public boolean ConfigWindowsMoveFromTitleBarOnly; /** * [Timer (in seconds) to free transient windows/tables memory buffers when unused. Set to -1.0f to disable. */ - public native float getConfigMemoryCompactTimer(); /* - return IO->ConfigMemoryCompactTimer; - */ - - /** - * Timer (in seconds) to free transient windows/tables memory buffers when unused. Set to -1.0f to disable. - */ - public native void setConfigMemoryCompactTimer(float configMemoryCompactTimer); /* - IO->ConfigMemoryCompactTimer = configMemoryCompactTimer; - */ + @BindingField + public boolean ConfigMemoryCompactTimer; //------------------------------------------------------------------ // Platform Functions @@ -416,30 +244,11 @@ public final class ImGuiIO extends ImGuiStruct { /** * Optional: Platform backend name (informational only! will be displayed in About Window) + User data for backend/wrappers to store their own stuff. */ - public native String getBackendPlatformName(); /* - return env->NewStringUTF(IO->BackendPlatformName); - */ + @BindingField + public String BackendPlatformName; - /** - * Optional: Platform backend name (informational only! will be displayed in About Window) + User data for backend/wrappers to store their own stuff. - */ - public native void setBackendPlatformName(String backendPlatformName); /*MANUAL - IO->BackendPlatformName = obj_backendPlatformName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_backendPlatformName, JNI_FALSE); - */ - - /** - * Optional: Renderer backend name (informational only! will be displayed in About Window) + User data for backend/wrappers to store their own stuff. - */ - public native String getBackendRendererName(); /* - return env->NewStringUTF(IO->BackendRendererName); - */ - - /** - * Optional: Renderer backend name (informational only! will be displayed in About Window) + User data for backend/wrappers to store their own stuff. - */ - public native void setBackendRendererName(String backendRendererName); /*MANUAL - IO->BackendRendererName = obj_backendRendererName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_backendRendererName, JNI_FALSE); - */ + @BindingField + public String BackendRendererName; // Optional: Access OS clipboard // (default to use native Win32 clipIsMouseDraggingboard on Windows, otherwise uses a private clipboard. Override to access OS clipboard on other architectures) @@ -463,502 +272,131 @@ public final class ImGuiIO extends ImGuiStruct { if (_setClipboardTextCallback != NULL) { env->DeleteGlobalRef(_setClipboardTextCallback); } - _setClipboardTextCallback = env->NewGlobalRef(setClipboardTextCallback); - IO->SetClipboardTextFn = setClipboardTextStub; + THIS->SetClipboardTextFn = setClipboardTextStub; */ public native void setGetClipboardTextFn(ImStrSupplier getClipboardTextCallback); /* if (_getClipboardTextCallback != NULL) { env->DeleteGlobalRef(_getClipboardTextCallback); } - _getClipboardTextCallback = env->NewGlobalRef(getClipboardTextCallback); - IO->GetClipboardTextFn = getClipboardTextStub; + THIS->GetClipboardTextFn = getClipboardTextStub; */ //------------------------------------------------------------------ // Input - Fill before calling NewFrame() //------------------------------------------------------------------ - /** - * Main display size, in pixels. - *

- * BINDING NOTICE: This should be a "Config" part, but since those values may be different for every frame I don't see how it is possible to set them only once. - */ - public ImVec2 getDisplaySize() { - final ImVec2 value = new ImVec2(); - getDisplaySize(value); - return value; - } - - /** - * Main display size, in pixels. - *

- * BINDING NOTICE: This should be a "Config" part, but since those values may be different for every frame I don't see how it is possible to set them only once. - */ - public native void getDisplaySize(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IO->DisplaySize, dstImVec2); - */ - - /** - * Main display size, in pixels. - *

- * BINDING NOTICE: This should be a "Config" part, but since those values may be different for every frame I don't see how it is possible to set them only once. - */ - public native float getDisplaySizeX(); /* - return IO->DisplaySize.x; - */ - - /** - * Main display size, in pixels. - *

- * BINDING NOTICE: This should be a "Config" part, but since those values may be different for every frame I don't see how it is possible to set them only once. - */ - public native float getDisplaySizeY(); /* - return IO->DisplaySize.y; - */ - - /** - * Main display size, in pixels. - *

- * BINDING NOTICE: This should be a "Config" part, but since those values may be different for every frame I don't see how it is possible to set them only once. - */ - public native void setDisplaySize(float x, float y); /* - IO->DisplaySize.x = x; - IO->DisplaySize.y = y; - */ - - /** - * For retina display or other situations where window coordinates are different from framebuffer coordinates. This generally ends up in ImDrawData::FramebufferScale. - *

- * BINDING NOTICE: This should be a "Config" part, but since those values may be different for every frame I don't see how it is possible to set them only once. - */ - public ImVec2 getDisplayFramebufferScale() { - final ImVec2 value = new ImVec2(); - getDisplayFramebufferScale(value); - return value; - } - - /** - * For retina display or other situations where window coordinates are different from framebuffer coordinates. This generally ends up in ImDrawData::FramebufferScale. - *

- * BINDING NOTICE: This should be a "Config" part, but since those values may be different for every frame I don't see how it is possible to set them only once. - */ - public native void getDisplayFramebufferScale(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IO->DisplayFramebufferScale, dstImVec2); - */ - - /** - * For retina display or other situations where window coordinates are different from framebuffer coordinates. This generally ends up in ImDrawData::FramebufferScale. - *

- * BINDING NOTICE: This should be a "Config" part, but since those values may be different for every frame I don't see how it is possible to set them only once. - */ - public native float getDisplayFramebufferScaleX(); /* - return IO->DisplayFramebufferScale.x; - */ - - /** - * For retina display or other situations where window coordinates are different from framebuffer coordinates. This generally ends up in ImDrawData::FramebufferScale. - *

- * BINDING NOTICE: This should be a "Config" part, but since those values may be different for every frame I don't see how it is possible to set them only once. - */ - public native float getDisplayFramebufferScaleY(); /* - return IO->DisplayFramebufferScale.y; - */ - - /** - * For retina display or other situations where window coordinates are different from framebuffer coordinates. This generally ends up in ImDrawData::FramebufferScale. - *

- * BINDING NOTICE: This should be a "Config" part, but since those values may be different for every frame I don't see how it is possible to set them only once. - */ - public native void setDisplayFramebufferScale(float x, float y); /* - IO->DisplayFramebufferScale.x = x; - IO->DisplayFramebufferScale.y = y; - */ - - // Docking options (when ImGuiConfigFlags_DockingEnable is set) - - /** - * Simplified docking mode: disable window splitting, so docking is limited to merging multiple windows together into tab-bars. - */ - public native boolean getConfigDockingNoSplit(); /* - return IO->ConfigDockingNoSplit; - */ - - /** - * Simplified docking mode: disable window splitting, so docking is limited to merging multiple windows together into tab-bars. - */ - public native void setConfigDockingNoSplit(boolean value); /* - IO->ConfigDockingNoSplit = value; - */ - - /** - * Enable docking with holding Shift key (reduce visual noise, allows dropping in wider space) - */ - public native boolean getConfigDockingWithShift(); /* - return IO->ConfigDockingWithShift; - */ - - /** - * Enable docking with holding Shift key (reduce visual noise, allows dropping in wider space) - */ - public native void setConfigDockingWithShift(boolean value); /* - IO->ConfigDockingWithShift = value; - */ - - /** - * [BETA] [FIXME: This currently creates regression with auto-sizing and general overhead] - * Make every single floating window display within a docking node. - */ - public native boolean getConfigDockingAlwaysTabBar(); /* - return IO->ConfigDockingAlwaysTabBar; - */ - - /** - * [BETA] [FIXME: This currently creates regression with auto-sizing and general overhead] - * Make every single floating window display within a docking node. - */ - public native void setConfigDockingAlwaysTabBar(boolean value); /* - IO->ConfigDockingAlwaysTabBar = value; - */ - - /** - * [BETA] Make window or viewport transparent when docking and only display docking boxes on the target viewport. - * Useful if rendering of multiple viewport cannot be synced. Best used with ConfigViewportsNoAutoMerge. - */ - public native boolean getConfigDockingTransparentPayload(); /* - return IO->ConfigDockingTransparentPayload; - */ - - /** - * [BETA] Make window or viewport transparent when docking and only display docking boxes on the target viewport. - * Useful if rendering of multiple viewport cannot be synced. Best used with ConfigViewportsNoAutoMerge. - */ - public native void setConfigDockingTransparentPayload(boolean value); /* - IO->ConfigDockingTransparentPayload = value; - */ - - // Viewport options (when ImGuiConfigFlags_ViewportsEnable is set) - - /** - * Set to make all floating imgui windows always create their own viewport. - * Otherwise, they are merged into the main host viewports when overlapping it. May also set ImGuiViewportFlags_NoAutoMerge on individual viewport. - */ - public native boolean getConfigViewportsNoAutoMerge(); /* - return IO->ConfigViewportsNoAutoMerge; - */ - - /** - * Set to make all floating imgui windows always create their own viewport. - * Otherwise, they are merged into the main host viewports when overlapping it. May also set ImGuiViewportFlags_NoAutoMerge on individual viewport. - */ - public native void setConfigViewportsNoAutoMerge(boolean value); /* - IO->ConfigViewportsNoAutoMerge = value; - */ - - /** - * Disable default OS task bar icon flag for secondary viewports. When a viewport doesn't want a task bar icon, ImGuiViewportFlags_NoTaskBarIcon will be set on it. - */ - public native boolean getConfigViewportsNoTaskBarIcon(); /* - return IO->ConfigViewportsNoTaskBarIcon; - */ - - /** - * Disable default OS task bar icon flag for secondary viewports. When a viewport doesn't want a task bar icon, ImGuiViewportFlags_NoTaskBarIcon will be set on it. - */ - public native void setConfigViewportsNoTaskBarIcon(boolean value); /* - IO->ConfigViewportsNoTaskBarIcon = value; - */ - - /** - * [BETA] Disable default OS window decoration flag for secondary viewports. When a viewport doesn't want window decorations, - * ImGuiViewportFlags_NoDecoration will be set on it. Enabling decoration can create subsequent issues at OS levels (e.g. minimum window size). - */ - public native boolean getConfigViewportsNoDecoration(); /* - return IO->ConfigViewportsNoDecoration; - */ - - /** - * [BETA] Disable default OS window decoration flag for secondary viewports. When a viewport doesn't want window decorations, - * ImGuiViewportFlags_NoDecoration will be set on it. Enabling decoration can create subsequent issues at OS levels (e.g. minimum window size). - */ - public native void setConfigViewportsNoDecoration(boolean value); /* - IO->ConfigViewportsNoDecoration = value; - */ - - /** - * Disable default OS parenting to main viewport for secondary viewports. - * By default, viewports are marked with ParentViewportId = main_viewport, - * expecting the platform backend to setup a parent/child relationship between the OS windows (some backend may ignore this). - * Set to true if you want the default to be 0, then all viewports will be top-level OS windows. - */ - public native boolean getConfigViewportsNoDefaultParent(); /* - return IO->ConfigViewportsNoDefaultParent; - */ - - /** - * Disable default OS parenting to main viewport for secondary viewports. - * By default, viewports are marked with ParentViewportId = main_viewport, - * expecting the platform backend to setup a parent/child relationship between the OS windows (some backend may ignore this). - * Set to true if you want the default to be 0, then all viewports will be top-level OS windows. - */ - public native void setConfigViewportsNoDefaultParent(boolean value); /* - IO->ConfigViewportsNoDefaultParent = value; - */ - - - /** - * Time elapsed since last frame, in seconds. - *

- * BINDING NOTICE: Same as for DisplaySize. This should be modified every frame. - */ - public native float getDeltaTime(); /* - return IO->DeltaTime; - */ - - /** - * Time elapsed since last frame, in seconds. - *

- * BINDING NOTICE: Same as for DisplaySize. This should be modified every frame. - */ - public native void setDeltaTime(float deltaTime); /* - IO->DeltaTime = deltaTime; - */ - /** * Mouse position, in pixels. Set to ImVec2(-FLT_MAX, -FLT_MAX) if mouse is unavailable (on another screen, etc.) */ - public ImVec2 getMousePos() { - final ImVec2 value = new ImVec2(); - getMousePos(value); - return value; - } - - /** - * Mouse position, in pixels. Set to ImVec2(-FLT_MAX, -FLT_MAX) if mouse is unavailable (on another screen, etc.) - */ - public native void getMousePos(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IO->MousePos, dstImVec2); - */ - - /** - * Mouse position, in pixels. Set to ImVec2(-FLT_MAX, -FLT_MAX) if mouse is unavailable (on another screen, etc.) - */ - public native float getMousePosX(); /* - return IO->MousePos.x; - */ - - /** - * Mouse position, in pixels. Set to ImVec2(-FLT_MAX, -FLT_MAX) if mouse is unavailable (on another screen, etc.) - */ - public native float getMousePosY(); /* - return IO->MousePos.y; - */ - - /** - * Mouse position, in pixels. Set to ImVec2(-FLT_MAX, -FLT_MAX) if mouse is unavailable (on another screen, etc.) - */ - public native void setMousePos(float x, float y); /* - IO->MousePos.x = x; - IO->MousePos.y = y; - */ + @BindingField + public ImVec2 MousePos; /** * Mouse buttons: 0=left, 1=right, 2=middle + extras (ImGuiMouseButton_COUNT == 5). Dear ImGui mostly uses left and right buttons. * Others buttons allows us to track if the mouse is being used by your application + available to user as a convenience via IsMouse** API. */ - public native void getMouseDown(boolean[] buff); /* - for (int i = 0; i < 5; i++) - buff[i] = IO->MouseDown[i]; - */ - - /** - * Mouse buttons: 0=left, 1=right, 2=middle + extras (ImGuiMouseButton_COUNT == 5). Dear ImGui mostly uses left and right buttons. - * Others buttons allows us to track if the mouse is being used by your application + available to user as a convenience via IsMouse** API. - */ - public native boolean getMouseDown(int idx); /* - return IO->MouseDown[idx]; - */ - - /** - * Mouse buttons: 0=left, 1=right, 2=middle + extras (ImGuiMouseButton_COUNT == 5). Dear ImGui mostly uses left and right buttons. - * Others buttons allows us to track if the mouse is being used by your application + available to user as a convenience via IsMouse** API. - */ - public native void setMouseDown(int idx, boolean down); /* - IO->MouseDown[idx] = down; - */ - - /** - * Mouse buttons: 0=left, 1=right, 2=middle + extras (ImGuiMouseButton_COUNT == 5). Dear ImGui mostly uses left and right buttons. - * Others buttons allows us to track if the mouse is being used by your application + available to user as a convenience via IsMouse** API. - */ - public native void setMouseDown(boolean[] mouseDown); /* - for (int i = 0; i < 5; i++) - IO->MouseDown[i] = mouseDown[i]; - */ + @BindingField + @TypeArray(type = "boolean", size = "5") + public boolean[] MouseDown; /** * Mouse wheel Vertical: 1 unit scrolls about 5 lines text. */ - public native float getMouseWheel(); /* - return IO->MouseWheel; - */ - - /** - * Mouse wheel Vertical: 1 unit scrolls about 5 lines text. - */ - public native void setMouseWheel(float mouseDeltaY); /* - IO->MouseWheel = mouseDeltaY; - */ + @BindingField + public float MouseWheel; /** * Mouse wheel Horizontal. Most users don't have a mouse with an horizontal wheel, may not be filled by all backends. */ - public native float getMouseWheelH(); /* - return IO->MouseWheelH; - */ - - /** - * Mouse wheel Horizontal. Most users don't have a mouse with an horizontal wheel, may not be filled by all backends. - */ - public native void setMouseWheelH(float mouseDeltaX); /* - IO->MouseWheelH = mouseDeltaX; - */ + @BindingField + public float MouseWheelH; /** * (Optional) When using multiple viewports: viewport the OS mouse cursor is hovering _IGNORING_ viewports with the ImGuiViewportFlags_NoInputs flag, * and _REGARDLESS_ of whether another viewport is focused. Set io.BackendFlags |= ImGuiBackendFlags_HasMouseHoveredViewport if you can provide this info. * If you don't imgui will infer the value using the rectangles and last focused time of the viewports it knows about (ignoring other OS windows). */ - public native float getMouseHoveredViewport(); /* - return IO->MouseHoveredViewport; - */ - - /** - * (Optional) When using multiple viewports: viewport the OS mouse cursor is hovering _IGNORING_ viewports with the ImGuiViewportFlags_NoInputs flag, - * and _REGARDLESS_ of whether another viewport is focused. Set io.BackendFlags |= ImGuiBackendFlags_HasMouseHoveredViewport if you can provide this info. - * If you don't imgui will infer the value using the rectangles and last focused time of the viewports it knows about (ignoring other OS windows). - */ - public native void setMouseHoveredViewport(int imGuiId); /* - IO->MouseHoveredViewport = imGuiId; - */ + @BindingField + public int MouseHoveredViewport; /** * Keyboard modifier pressed: Control */ - public native boolean getKeyCtrl(); /* - return IO->KeyCtrl; - */ - - /** - * Keyboard modifier pressed: Control - */ - public native void setKeyCtrl(boolean value); /* - IO->KeyCtrl = value; - */ + @BindingField + public boolean KeyCtrl; /** * Keyboard modifier pressed: Shift */ - public native boolean getKeyShift(); /* - return IO->KeyShift; - */ - - /** - * Keyboard modifier pressed: Shift - */ - public native void setKeyShift(boolean value); /* - IO->KeyShift = value; - */ + @BindingField + public boolean KeyShift; /** * Keyboard modifier pressed: Alt */ - public native boolean getKeyAlt(); /* - return IO->KeyAlt; - */ - - /** - * Keyboard modifier pressed: Alt - */ - public native void setKeyAlt(boolean value); /* - IO->KeyAlt = value; - */ + @BindingField + public boolean KeyAlt; /** * Keyboard modifier pressed: Cmd/Super/Windows */ - public native boolean getKeySuper(); /* - return IO->KeySuper; - */ - - /** - * Keyboard modifier pressed: Cmd/Super/Windows - */ - public native void setKeySuper(boolean value); /* - IO->KeySuper = value; - */ + @BindingField + public boolean KeySuper; /** * Keyboard keys that are pressed (ideally left in the "native" order your engine has access to keyboard keys, so you can use your own defines/enums for keys). */ - public native void getKeysDown(boolean[] buff); /* - for (int i = 0; i < 512; i++) - buff[i] = IO->KeysDown[i]; - */ - - /** - * Keyboard keys that are pressed (ideally left in the "native" order your engine has access to keyboard keys, so you can use your own defines/enums for keys). - */ - public native boolean getKeysDown(int idx); /* - return IO->KeysDown[idx]; - */ - - /** - * Keyboard keys that are pressed (ideally left in the "native" order your engine has access to keyboard keys, so you can use your own defines/enums for keys). - */ - public native void setKeysDown(int idx, boolean pressed); /* - IO->KeysDown[idx] = pressed; - */ - - /** - * Keyboard keys that are pressed (ideally left in the "native" order your engine has access to keyboard keys, so you can use your own defines/enums for keys). - */ - public native void setKeysDown(boolean[] keysDown); /* - for (int i = 0; i < 512; i++) - IO->KeysDown[i] = keysDown[i]; - */ + @BindingField + @TypeArray(type = "boolean", size = "512") + public boolean[] KeysDown; /** * Gamepad inputs. Cleared back to zero by EndFrame(). Keyboard keys will be auto-mapped and be written here by NewFrame(). */ - public native void getNavInputs(float[] buff); /* - for (int i = 0; i < ImGuiNavInput_COUNT; i++) - buff[i] = IO->NavInputs[i]; - */ + @BindingField + @TypeArray(type = "float", size = "512") + public float[] NavInputs; + + // Functions /** - * Gamepad inputs. Cleared back to zero by EndFrame(). Keyboard keys will be auto-mapped and be written here by NewFrame(). + * Queue new character input. */ - public native float getNavInputs(int idx); /* - return IO->NavInputs[idx]; - */ + @BindingMethod + public native void AddInputCharacter(@ArgValue(callPrefix = "(unsigned int)") int c); /** - * Gamepad inputs. Cleared back to zero by EndFrame(). Keyboard keys will be auto-mapped and be written here by NewFrame(). + * Queue new character input from an UTF-16 character, it can be a surrogate */ - public native void setNavInputs(int idx, float input); /* - IO->NavInputs[idx] = input; - */ + @BindingMethod + public native void AddInputCharacterUTF16(@ArgValue(callPrefix = "(ImWchar16)") short c); /** - * Gamepad inputs. Cleared back to zero by EndFrame(). Keyboard keys will be auto-mapped and be written here by NewFrame(). + * Queue new characters input from an UTF-8 string. */ - public native void setNavInputs(float[] navInputs); /* - for (int i = 0; i < ImGuiNavInput_COUNT; i++) - IO->NavInputs[i] = navInputs[i]; - */ + @BindingMethod + public native void AddInputCharactersUTF8(String str); + + /** + * Notifies Dear ImGui when hosting platform windows lose or gain input focus + */ + @BindingMethod + public native void AddFocusEvent(boolean focused); + + /** + * [Internal] Clear the text input buffer manually + */ + @BindingMethod + public native void ClearInputCharacters(); + + /** + * [Internal] Release all keys + */ + @BindingMethod + public native void ClearInputKeys(); //------------------------------------------------------------------ // Output - Updated by NewFrame() or EndFrame()/Render() @@ -971,278 +409,252 @@ public final class ImGuiIO extends ImGuiStruct { * (either way, always pass on mouse inputs to imgui). * (e.g. unclicked mouse is hovering over an imgui window, widget is active, mouse was clicked over an imgui window, etc.). */ - public native boolean getWantCaptureMouse(); /* - return IO->WantCaptureMouse; - */ - - /** - * Set when Dear ImGui will use mouse inputs, in this case do not dispatch them to your main game/application - * (either way, always pass on mouse inputs to imgui). - * (e.g. unclicked mouse is hovering over an imgui window, widget is active, mouse was clicked over an imgui window, etc.). - */ - public native void setWantCaptureMouse(boolean wantCaptureMouse); /* - IO->WantCaptureMouse = wantCaptureMouse; - */ + @BindingField + public boolean WantCaptureMouse; /** * Set when Dear ImGui will use keyboard inputs, in this case do not dispatch them to your main game/application * (either way, always pass keyboard inputs to imgui). (e.g. InputText active, or an imgui window is focused and navigation is enabled, etc.). */ - public native boolean getWantCaptureKeyboard(); /* - return IO->WantCaptureKeyboard; - */ - - /** - * Set when Dear ImGui will use keyboard inputs, in this case do not dispatch them to your main game/application - * (either way, always pass keyboard inputs to imgui). (e.g. InputText active, or an imgui window is focused and navigation is enabled, etc.). - */ - public native void setWantCaptureKeyboard(boolean wantCaptureKeyboard); /* - IO->WantCaptureKeyboard = wantCaptureKeyboard; - */ + @BindingField + public boolean WantCaptureKeyboard; /** * Mobile/console: when set, you may display an on-screen keyboard. * This is set by Dear ImGui when it wants textual keyboard input to happen (e.g. when a InputText widget is active). */ - public native boolean getWantTextInput(); /* - return IO->WantTextInput; - */ - - /** - * Mobile/console: when set, you may display an on-screen keyboard. - * This is set by Dear ImGui when it wants textual keyboard input to happen (e.g. when a InputText widget is active). - */ - public native void setWantTextInput(boolean wantTextInput); /* - IO->WantTextInput = wantTextInput; - */ + @BindingField + public boolean WantTextInput; /** * MousePos has been altered, backend should reposition mouse on next frame. Rarely used! Set only when ImGuiConfigFlags_NavEnableSetMousePos flag is enabled. */ - public native boolean getWantSetMousePos(); /* - return IO->WantSetMousePos; - */ - - /** - * MousePos has been altered, backend should reposition mouse on next frame. Rarely used! Set only when ImGuiConfigFlags_NavEnableSetMousePos flag is enabled. - */ - public native void setWantSetMousePos(boolean wantSetMousePos); /* - IO->WantSetMousePos = wantSetMousePos; - */ + @BindingField + public boolean WantSetMousePos; /** * When manual .ini load/save is active (io.IniFilename == NULL), * this will be set to notify your application that you can call SaveIniSettingsToMemory() and save yourself. * Important: clear io.WantSaveIniSettings yourself after saving! */ - public native boolean getWantSaveIniSettings(); /* - return IO->WantSaveIniSettings; - */ - - /** - * When manual .ini load/save is active (io.IniFilename == NULL), - * this will be set to notify your application that you can call SaveIniSettingsToMemory() and save yourself. - * Important: clear io.WantSaveIniSettings yourself after saving! - */ - public native void setWantSaveIniSettings(boolean wantSaveIniSettings); /* - IO->WantSaveIniSettings = wantSaveIniSettings; - */ + @BindingField + public boolean WantSaveIniSettings; /** * Keyboard/Gamepad navigation is currently allowed (will handle ImGuiKey_NavXXX events) = a window is focused * and it doesn't use the ImGuiWindowFlags_NoNavInputs flag. */ - public native boolean getNavActive(); /* - return IO->NavActive; - */ - - /** - * Keyboard/Gamepad navigation is currently allowed (will handle ImGuiKey_NavXXX events) = a window is focused - * and it doesn't use the ImGuiWindowFlags_NoNavInputs flag. - */ - public native void setNavActive(boolean navActive); /* - IO->NavActive = navActive; - */ + @BindingField + public boolean NavActive; /** * Keyboard/Gamepad navigation is visible and allowed (will handle ImGuiKey_NavXXX events). */ - public native boolean getNavVisible(); /* - return IO->NavVisible; - */ - - /** - * Keyboard/Gamepad navigation is visible and allowed (will handle ImGuiKey_NavXXX events). - */ - public native void setNavVisible(boolean navVisible); /* - IO->NavVisible = navVisible; - */ + @BindingField + public boolean NavVisible; /** * Application framerate estimate, in frame per second. Solely for convenience. Rolling average estimation based on io.DeltaTime over 120 frames. * Solely for convenience. Rolling average estimation based on IO.DeltaTime over 120 frames */ - public native float getFramerate(); /* - return IO->Framerate; - */ - - /** - * Application framerate estimate, in frame per second. Solely for convenience. Rolling average estimation based on io.DeltaTime over 120 frames. - * Solely for convenience. Rolling average estimation based on IO.DeltaTime over 120 frames - */ - public native void setFramerate(float framerate); /* - IO->Framerate = framerate; - */ + @BindingField + public float Framerate; /** * Vertices output during last call to Render() */ - public native int getMetricsRenderVertices(); /* - return IO->MetricsRenderVertices; - */ - - /** - * Vertices output during last call to Render() - */ - public native void setMetricsRenderVertices(int metricsRenderVertices); /* - IO->MetricsRenderVertices = metricsRenderVertices; - */ + @BindingField + public int MetricsRenderVertices; /** * Indices output during last call to Render() = number of triangles * 3 */ - public native int getMetricsRenderIndices(); /* - return IO->MetricsRenderIndices; - */ - - /** - * Indices output during last call to Render() = number of triangles * 3 - */ - public native void setMetricsRenderIndices(int metricsRenderIndices); /* - IO->MetricsRenderIndices = metricsRenderIndices; - */ + @BindingField + public int MetricsRenderIndices; /** * Number of visible windows */ - public native int getMetricsRenderWindows(); /* - return IO->MetricsRenderWindows; - */ - - /** - * Number of visible windows - */ - public native void setMetricsRenderWindows(int metricsRenderWindows); /* - IO->MetricsRenderWindows = metricsRenderWindows; - */ + @BindingField + public int MetricsRenderWindows; /** * Number of active windows */ - public native int getMetricsActiveWindows(); /* - return IO->MetricsActiveWindows; - */ - - /** - * Number of active windows - */ - public native void setMetricsActiveWindows(int metricsActiveWindows); /* - IO->MetricsActiveWindows = metricsActiveWindows; - */ + @BindingField + public int MetricsActiveWindows; /** * Number of active allocations, updated by MemAlloc/MemFree based on current context. May be off if you have multiple imgui contexts. */ - public native int getMetricsActiveAllocations(); /* - return IO->MetricsActiveAllocations; - */ - - /** - * Number of active allocations, updated by MemAlloc/MemFree based on current context. May be off if you have multiple imgui contexts. - */ - public native void setMetricsActiveAllocations(int metricsActiveAllocations); /* - IO->MetricsActiveAllocations = metricsActiveAllocations; - */ + @BindingField + public int MetricsActiveAllocations; /** * Mouse delta. Note that this is zero if either current or previous position are invalid (-FLT_MAX,-FLT_MAX), so a disappearing/reappearing mouse won't have a huge delta. */ - public ImVec2 getMouseDelta() { - final ImVec2 value = new ImVec2(); - getMouseDelta(value); - return value; - } + @BindingField + public ImVec2 MouseDelta; + + //------------------------------------------------------------------ + // [Internal] Dear ImGui will maintain those fields. Forward compatibility not guaranteed! + //------------------------------------------------------------------ /** - * Mouse delta. Note that this is zero if either current or previous position are invalid (-FLT_MAX,-FLT_MAX), so a disappearing/reappearing mouse won't have a huge delta. + * Alternative to WantCaptureMouse: (WantCaptureMouse == true {@code &&} WantCaptureMouseUnlessPopupClose == false) when a click over void is expected to close a popup. */ - public native void getMouseDelta(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IO->MouseDelta, dstImVec2); - */ + @BindingField + public boolean WantCaptureMouseUnlessPopupClose; /** - * Mouse delta. Note that this is zero if either current or previous position are invalid (-FLT_MAX,-FLT_MAX), so a disappearing/reappearing mouse won't have a huge delta. + * Key mods flags (same as io.KeyCtrl/KeyShift/KeyAlt/KeySuper but merged into flags), updated by NewFrame() */ - public native float getMouseDeltaX(); /* - return IO->MouseDelta.x; - */ + @BindingField + public int KeyMods; /** - * Mouse delta. Note that this is zero if either current or previous position are invalid (-FLT_MAX,-FLT_MAX), so a disappearing/reappearing mouse won't have a huge delta. + * Previous key mods */ - public native float getMouseDeltaY(); /* - return IO->MouseDelta.y; - */ + @BindingField + public int KeyModsPrev; /** - * Mouse delta. Note that this is zero if either current or previous position are invalid (-FLT_MAX,-FLT_MAX), so a disappearing/reappearing mouse won't have a huge delta. + * Previous mouse position (note that MouseDelta is not necessary == MousePos-MousePosPrev, in case either position is invalid) */ - public native void setMouseDelta(float x, float y); /* - IO->MouseDelta.x = x; - IO->MouseDelta.y = y; - */ - - // Functions + @BindingField + public ImVec2 MousePosPrev; /** - * Queue new character input. + * Position at time of clicking. */ - public native void addInputCharacter(int c); /* - IO->AddInputCharacter((unsigned int)c); - */ + @BindingField + @TypeArray(type = "ImVec2", size = "5") + public ImVec2[] MouseClickedPos; /** - * Queue new character input from an UTF-16 character, it can be a surrogate + * Time of last click (used to figure out double-click) */ - public native void addInputCharacterUTF16(short c); /* - IO->AddInputCharacterUTF16((ImWchar16)c); - */ + @BindingField + @TypeArray(type = "double", size = "5") + public double[] MouseClickedTime; /** - * Queue new characters input from an UTF-8 string. + * Mouse button went from !Down to Down (same as MouseClickedCount[x] != 0) */ - public native void addInputCharactersUTF8(String str); /* - IO->AddInputCharactersUTF8(str); - */ + @BindingField + @TypeArray(type = "boolean", size = "5") + public boolean[] MouseClicked; /** - * Notifies Dear ImGui when hosting platform windows lose or gain input focus + * Has mouse button been double-clicked? (same as MouseClickedCount[x] == 2) */ - public native void addFocusEvent(boolean focused); /* - IO->AddFocusEvent(focused); - */ + @BindingField + @TypeArray(type = "boolean", size = "5") + public boolean[] MouseDoubleClicked; /** - * [Internal] Clear the text input buffer manually + * == 0 (not clicked), == 1 (same as MouseClicked[]), == 2 (double-clicked), == 3 (triple-clicked) etc. when going from !Down to Down */ - public native void clearInputCharacters(); /* - IO->ClearInputCharacters(); - */ + @BindingField + @TypeArray(type = "int", size = "5") + public int[] MouseClickedCount; /** - * [Internal] Release all keys + * Count successive number of clicks. Stays valid after mouse release. Reset after another click is done. + */ + @BindingField + @TypeArray(type = "int", size = "5") + public int[] MouseClickedLastCount; + + /** + * Mouse button went from Down to !Down + */ + @BindingField + @TypeArray(type = "boolean", size = "5") + public boolean[] MouseReleased; + + /** + * Track if button was clicked inside a dear imgui window or over void blocked by a popup. We don't request mouse capture from the application if click started outside ImGui bounds. + */ + @BindingField + @TypeArray(type = "boolean", size = "5") + public boolean[] MouseDownOwned; + + /** + * Track if button was clicked inside a dear imgui window. + */ + @BindingField + @TypeArray(type = "boolean", size = "5") + public boolean[] MouseDownOwnedUnlessPopupClose; + + /** + * Duration the mouse button has been down (0.0f == just clicked) + */ + @BindingField + @TypeArray(type = "float", size = "5") + public float[] MouseDownDuration; + + /** + * Previous time the mouse button has been down + */ + @BindingField + @TypeArray(type = "float", size = "5") + public float[] MouseDownDurationPrev; + + /** + * Maximum distance, absolute, on each axis, of how much mouse has traveled from the clicking point + */ + @BindingField + @TypeArray(type = "ImVec2", size = "5") + public ImVec2[] MouseDragMaxDistanceAbs; + + /** + * Squared maximum distance of how much mouse has traveled from the clicking point + */ + @BindingField + @TypeArray(type = "float", size = "5") + public float[] MouseDragMaxDistanceSqr; + + /** + * Duration the keyboard key has been down (0.0f == just pressed) + */ + @BindingField + @TypeArray(type = "float", size = "512") + public float[] KeysDownDuration; + + /** + * Previous duration the key has been down + */ + @BindingField + @TypeArray(type = "float", size = "512") + public float[] KeysDownDurationPrev; + + @BindingField + @TypeArray(type = "float", size = "ImGuiNavInput_COUNT") + public float[] NavInputsDownDuration; + + @BindingField + @TypeArray(type = "float", size = "ImGuiNavInput_COUNT") + public float[] NavInputsDownDurationPrev; + + /** + * Touch/Pen pressure (0.0f to 1.0f, should be {@code >}0.0f only when MouseDown[0] == true). Helper storage currently unused by Dear ImGui. + */ + @BindingField + public float PenPressure; + + @BindingField + public boolean AppFocusLost; + + /** + * For AddInputCharacterUTF16 + */ + @BindingField + public short InputQueueSurrogate; + + // TODO: InputQueueCharacters + + /*JNI + #undef THIS */ - public native void clearInputKeys(); /* - IO->ClearInputKeys(); - */ } diff --git a/imgui-binding/src/main/java/imgui/ImGuiInputTextCallbackData.java b/imgui-binding/src/main/java/imgui/ImGuiInputTextCallbackData.java index c5943eb..f1b96be 100644 --- a/imgui-binding/src/main/java/imgui/ImGuiInputTextCallbackData.java +++ b/imgui-binding/src/main/java/imgui/ImGuiInputTextCallbackData.java @@ -1,6 +1,9 @@ package imgui; import imgui.binding.ImGuiStruct; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingMethod; +import imgui.binding.annotation.BindingSource; /** * Shared state of InputText(), passed as an argument to your callback when a ImGuiInputTextFlags_Callback* flag is used.

@@ -13,6 +16,7 @@ import imgui.binding.ImGuiStruct; * - ImGuiInputTextFlags_CallbackCharFilter: Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard.

* - ImGuiInputTextFlags_CallbackResize: Callback on buffer capacity changes request (beyond 'buf_size' parameter value), allowing the string to grow.

*/ +@BindingSource public class ImGuiInputTextCallbackData extends ImGuiStruct { public ImGuiInputTextCallbackData(final long ptr) { super(ptr); @@ -20,145 +24,71 @@ public class ImGuiInputTextCallbackData extends ImGuiStruct { /*JNI #include "_common.h" - - #define IMGUI_CALLBACK_DATA ((ImGuiInputTextCallbackData*)STRUCT_PTR) + #define THIS ((ImGuiInputTextCallbackData*)STRUCT_PTR) */ /** * One ImGuiInputTextFlags_Callback* - * - * @return ImGuiInputTextFlags */ - public native int getEventFlag(); /* - return IMGUI_CALLBACK_DATA->EventFlag; - */ + @BindingField(isFlag = true, accessors = BindingField.Accessor.GETTER) + public int EventFlag; /** * What user passed to InputText() - * - * @return ImGuiInputTextFlags */ - public native int getFlags(); /* - return IMGUI_CALLBACK_DATA->Flags; - */ + @BindingField(isFlag = true, accessors = BindingField.Accessor.GETTER) + public int Flags; - /** - * [CharFilter] Character input; - * - * @return Character input - */ - public native int getEventChar(); /* - return IMGUI_CALLBACK_DATA->EventChar; - */ + // TODO: UserData /** * [CharFilter] Replace character with another one, or set to zero to drop. return 1 is equivalent to setting EventChar=0; - * - * @param c Replaced characters */ - public void setEventChar(final char c) { - setEventChar((int) c); - } - - /** - * [CharFilter] Replace character with another one, or set to zero to drop. return 1 is equivalent to setting EventChar=0; - * - * @param c Replaced characters - */ - public native void setEventChar(int c); /* - IMGUI_CALLBACK_DATA->EventChar = c; - */ + @BindingField + public int EventChar; /** * [Completion,History] - * - * @return Key pressed (Up/Down/TAB) */ - public native int getEventKey(); /* - return IMGUI_CALLBACK_DATA->EventKey; - */ + @BindingField(accessors = BindingField.Accessor.GETTER) + public int EventKey; /** * [Resize] Can replace pointer

* [Completion,History,Always] Only write to pointed data, don't replace the actual pointer! - * - * @return Buf */ - public native String getBuf(); /* - return env->NewStringUTF(IMGUI_CALLBACK_DATA->Buf); - */ + @BindingField + public String Buf; + + /** + * [Resize,Completion,History,Always] Exclude zero-terminator storage. In C land: == strlen(some_text), in C++ land: string.length() + */ + @BindingField + public int BufTextLen; /** * Set if you modify Buf/BufTextLen! - * - * @return Dirty */ - public native boolean getBufDirty(); /* - return IMGUI_CALLBACK_DATA->BufDirty; - */ - - /** - * Set if you modify Buf/BufTextLen! - * - * @param dirty Dirty - */ - public native void setBufDirty(boolean dirty); /* - IMGUI_CALLBACK_DATA->BufDirty = dirty; - */ + @BindingField + public boolean BufDirty; /** * Current cursor position - * - * @return Current cursor position */ - public native int getCursorPos(); /* - return IMGUI_CALLBACK_DATA->CursorPos; - */ - - /** - * Set the current cursor position - * - * @param pos Set the current cursor position - */ - public native void setCursorPos(int pos); /* - IMGUI_CALLBACK_DATA->CursorPos = pos; - */ + @BindingField + public int CursorPos; /** * Selection Start - * - * @return Selection Start */ - public native int getSelectionStart(); /* - return IMGUI_CALLBACK_DATA->SelectionStart; - */ - - /** - * Set Selection Start - * - * @param pos Selection Start - */ - public native void setSelectionStart(int pos); /* - IMGUI_CALLBACK_DATA->SelectionStart = pos; - */ + @BindingField + public int SelectionStart; /** * Selection End - * - * @return Selection End */ - public native int getSelectionEnd(); /* - return IMGUI_CALLBACK_DATA->SelectionEnd; - */ - - /** - * Set Selection End - * - * @param pos Selection End - */ - public native void setSelectionEnd(int pos); /* - IMGUI_CALLBACK_DATA->SelectionEnd = pos; - */ + @BindingField + public int SelectionEnd; /** * Delete Chars @@ -166,9 +96,8 @@ public class ImGuiInputTextCallbackData extends ImGuiStruct { * @param pos Start Delete Pos * @param bytesCount Delete Char Count */ - public native void deleteChars(int pos, int bytesCount); /* - IMGUI_CALLBACK_DATA->DeleteChars(pos, bytesCount); - */ + @BindingMethod + public native void DeleteChars(int pos, int bytesCount); /** * Insert Chars @@ -176,7 +105,19 @@ public class ImGuiInputTextCallbackData extends ImGuiStruct { * @param pos insert Psos * @param str insert String */ - public native void insertChars(int pos, String str); /* - IMGUI_CALLBACK_DATA->InsertChars(pos, str); - */ + @BindingMethod + public native void InsertChars(int pos, String str); + + @BindingMethod + public native void SelectAll(); + + @BindingMethod + public native void ClearSelection(); + + @BindingMethod + public native boolean HasSelection(); + + /*JNI + #undef THIS + */ } diff --git a/imgui-binding/src/main/java/imgui/ImGuiPlatformMonitor.java b/imgui-binding/src/main/java/imgui/ImGuiPlatformMonitor.java index 5983dea..7c6e595 100644 --- a/imgui-binding/src/main/java/imgui/ImGuiPlatformMonitor.java +++ b/imgui-binding/src/main/java/imgui/ImGuiPlatformMonitor.java @@ -1,11 +1,14 @@ package imgui; import imgui.binding.ImGuiStruct; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingSource; /** * (Optional) This is required when enabling multi-viewport. Represent the bounds of each connected monitor/display and their DPI. * We use this information for multiple DPI support + clamping the position of popups and tooltips so they don't straddle multiple monitors. */ +@BindingSource public final class ImGuiPlatformMonitor extends ImGuiStruct { public ImGuiPlatformMonitor(final long ptr) { super(ptr); @@ -13,138 +16,42 @@ public final class ImGuiPlatformMonitor extends ImGuiStruct { /*JNI #include "_common.h" - - #define IMGUI_PLATFORM_MONITOR ((ImGuiPlatformMonitor*)STRUCT_PTR) + #define THIS ((ImGuiPlatformMonitor*)STRUCT_PTR) */ /** * Coordinates of the area displayed on this monitor (Min = upper left, Max = bottom right) */ - public native void getMainPos(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IMGUI_PLATFORM_MONITOR->MainPos, dstImVec2); - */ + @BindingField + public ImVec2 MainPos; /** * Coordinates of the area displayed on this monitor (Min = upper left, Max = bottom right) */ - public native float getMainPosX(); /* - return IMGUI_PLATFORM_MONITOR->MainPos.x; - */ - - /** - * Coordinates of the area displayed on this monitor (Min = upper left, Max = bottom right) - */ - public native float getMainPosY(); /* - return IMGUI_PLATFORM_MONITOR->MainPos.y; - */ - - public native void setMainPos(float x, float y); /* - IMGUI_PLATFORM_MONITOR->MainPos = ImVec2(x, y); - */ - - /** - * Coordinates of the area displayed on this monitor (Min = upper left, Max = bottom right) - */ - public native void getMainSize(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IMGUI_PLATFORM_MONITOR->MainSize, dstImVec2); - */ - - /** - * Coordinates of the area displayed on this monitor (Min = upper left, Max = bottom right) - */ - public native float getMainSizeX(); /* - return IMGUI_PLATFORM_MONITOR->MainSize.x; - */ - - /** - * Coordinates of the area displayed on this monitor (Min = upper left, Max = bottom right) - */ - public native float getMainSizeY(); /* - return IMGUI_PLATFORM_MONITOR->MainSize.y; - */ - - /** - * Coordinates of the area displayed on this monitor (Min = upper left, Max = bottom right) - */ - public native void setMainSize(float x, float y); /* - IMGUI_PLATFORM_MONITOR->MainSize = ImVec2(x, y); - */ + @BindingField + public ImVec2 MainSize; /** * Coordinates without task bars / side bars / menu bars. * Used to avoid positioning popups/tooltips inside this region. If you don't have this info, please copy the value for MainPos/MainSize. */ - public native void getWorkPos(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IMGUI_PLATFORM_MONITOR->WorkPos, dstImVec2); - */ + @BindingField + public ImVec2 WorkPos; /** * Coordinates without task bars / side bars / menu bars. * Used to avoid positioning popups/tooltips inside this region. If you don't have this info, please copy the value for MainPos/MainSize. */ - public native float getWorkPosX(); /* - return IMGUI_PLATFORM_MONITOR->WorkPos.x; - */ - - /** - * Coordinates without task bars / side bars / menu bars. - * Used to avoid positioning popups/tooltips inside this region. If you don't have this info, please copy the value for MainPos/MainSize. - */ - public native float getWorkPosY(); /* - return IMGUI_PLATFORM_MONITOR->WorkPos.y; - */ - - /** - * Coordinates without task bars / side bars / menu bars. - * Used to avoid positioning popups/tooltips inside this region. If you don't have this info, please copy the value for MainPos/MainSize. - */ - public native void setWorkPos(float x, float y); /* - IMGUI_PLATFORM_MONITOR->WorkPos = ImVec2(x, y); - */ - - /** - * Coordinates without task bars / side bars / menu bars. - * Used to avoid positioning popups/tooltips inside this region. If you don't have this info, please copy the value for MainPos/MainSize. - */ - public native void getWorkSize(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IMGUI_PLATFORM_MONITOR->WorkSize, dstImVec2); - */ - - /** - * Coordinates without task bars / side bars / menu bars. - * Used to avoid positioning popups/tooltips inside this region. If you don't have this info, please copy the value for MainPos/MainSize. - */ - public native float getWorkSizeX(); /* - return IMGUI_PLATFORM_MONITOR->WorkSize.x; - */ - - /** - * Coordinates without task bars / side bars / menu bars. - * Used to avoid positioning popups/tooltips inside this region. If you don't have this info, please copy the value for MainPos/MainSize. - */ - public native float getWorkSizeY(); /* - return IMGUI_PLATFORM_MONITOR->WorkSize.y; - */ - - /** - * Coordinates without task bars / side bars / menu bars. - * Used to avoid positioning popups/tooltips inside this region. If you don't have this info, please copy the value for MainPos/MainSize. - */ - public native void setWorkSize(float x, float y); /* - IMGUI_PLATFORM_MONITOR->WorkSize = ImVec2(x, y); - */ + @BindingField + public ImVec2 WorkSize; /** * 1.0f = 96 DPI */ - public native float getDpiScale(); /* - return IMGUI_PLATFORM_MONITOR->DpiScale; - */ + @BindingField + public float DpiScale; - /** - * 1.0f = 96 DPI + /*JNI + #undef THIS */ - public native void setDpiScale(float dpiScale); /* - IMGUI_PLATFORM_MONITOR->DpiScale = dpiScale; - */ } diff --git a/imgui-binding/src/main/java/imgui/ImGuiStorage.java b/imgui-binding/src/main/java/imgui/ImGuiStorage.java index 2dc34a9..129d1bb 100644 --- a/imgui-binding/src/main/java/imgui/ImGuiStorage.java +++ b/imgui-binding/src/main/java/imgui/ImGuiStorage.java @@ -1,6 +1,9 @@ package imgui; import imgui.binding.ImGuiStructDestroyable; +import imgui.binding.annotation.BindingMethod; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.OptArg; /** * Helper: Key-Value storage @@ -12,6 +15,7 @@ import imgui.binding.ImGuiStructDestroyable; * - You want to store custom debug data easily without adding or editing structures in your code (probably not efficient, but convenient) * Types are NOT stored, so it is up to you to make sure your Key don't collide with different types. */ +@BindingSource public final class ImGuiStorage extends ImGuiStructDestroyable { public ImGuiStorage() { } @@ -20,17 +24,16 @@ public final class ImGuiStorage extends ImGuiStructDestroyable { super(ptr); } - /*JNI - #include "_common.h" - - #define IMGUI_STORAGE ((ImGuiStorage*)STRUCT_PTR) - */ - @Override protected long create() { return nCreate(); } + /*JNI + #include "_common.h" + #define THIS ((ImGuiStorage*)STRUCT_PTR) + */ + private native long nCreate(); /* return (intptr_t)(new ImGuiStorage()); */ @@ -39,57 +42,40 @@ public final class ImGuiStorage extends ImGuiStructDestroyable { // - Set***() functions find pair, insertion on demand if missing. // - Sorted insertion is costly, paid once. A typical frame shouldn't need to insert any new pair. - public native void clear(); /* - IMGUI_STORAGE->Clear(); - */ + @BindingMethod + public native void Clear(); - public native int getInt(int imGuiID); /* - return IMGUI_STORAGE->GetInt(imGuiID); - */ + @BindingMethod + public native int GetInt(int key, @OptArg int defaultVal); - public native int getInt(int imGuiID, int defaultVal); /* - return IMGUI_STORAGE->GetInt(imGuiID, defaultVal); - */ + @BindingMethod + public native void SetInt(int key, int val); - public native void setInt(int imGuiID, int val); /* - IMGUI_STORAGE->SetInt(imGuiID, val); - */ + @BindingMethod + public native boolean GetBool(int key, @OptArg boolean defaultVal); - public native boolean getBool(int imGuiID); /* - return IMGUI_STORAGE->GetBool(imGuiID); - */ + @BindingMethod + public native void SetBool(int key, boolean val); - public native boolean getBool(int imGuiID, boolean defaultVal); /* - return IMGUI_STORAGE->GetBool(imGuiID, defaultVal); - */ + @BindingMethod + public native float GetFloat(int key, @OptArg float defaultVal); - public native void setBool(int imGuiID, boolean val); /* - IMGUI_STORAGE->SetBool(imGuiID, val); - */ - - public native float getFloat(int imGuiID); /* - return IMGUI_STORAGE->GetFloat(imGuiID); - */ - - public native float getFloat(int imGuiID, float defaultVal); /* - return IMGUI_STORAGE->GetFloat(imGuiID, defaultVal); - */ - - public native void setFloat(int imGuiID, float val); /* - IMGUI_STORAGE->SetFloat(imGuiID, val); - */ + @BindingMethod + public native void SetFloat(int key, float val); /** * Use on your own storage if you know only integer are being stored (open/close all tree nodes) */ - public native void setAllInt(int val); /* - IMGUI_STORAGE->SetAllInt(val); - */ + @BindingMethod + public native void SetAllInt(int val); /** * For quicker full rebuild of a storage (instead of an incremental one), you may add all your contents and then sort once. */ - public native void buildSortByKey(); /* - IMGUI_STORAGE->BuildSortByKey(); - */ + @BindingMethod + public native void BuildSortByKey(); + + /*JNI + #undef THIS + */ } diff --git a/imgui-binding/src/main/java/imgui/ImGuiStyle.java b/imgui-binding/src/main/java/imgui/ImGuiStyle.java index 44a7d20..b6545b1 100644 --- a/imgui-binding/src/main/java/imgui/ImGuiStyle.java +++ b/imgui-binding/src/main/java/imgui/ImGuiStyle.java @@ -1,13 +1,17 @@ package imgui; import imgui.binding.ImGuiStructDestroyable; -import imgui.flag.ImGuiCol; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingMethod; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.TypeArray; /** * You may modify the ImGui::GetStyle() main instance during initialization and before NewFrame(). * During the frame, use ImGui::PushStyleVar(ImGuiStyleVar_XXXX)/PopStyleVar() to alter the main style values, * and ImGui::PushStyleColor(ImGuiCol_XXX)/PopStyleColor() for colors. */ +@BindingSource public final class ImGuiStyle extends ImGuiStructDestroyable { public ImGuiStyle() { } @@ -16,17 +20,16 @@ public final class ImGuiStyle extends ImGuiStructDestroyable { super(ptr); } - /*JNI - #include "_common.h" - - #define IMGUI_STYLE ((ImGuiStyle*)STRUCT_PTR) - */ - @Override protected long create() { return nCreate(); } + /*JNI + #include "_common.h" + #define THIS ((ImGuiStyle*)STRUCT_PTR) + */ + private native long nCreate(); /* return (intptr_t)(new ImGuiStyle()); */ @@ -34,945 +37,283 @@ public final class ImGuiStyle extends ImGuiStructDestroyable { /** * Global alpha applies to everything in Dear ImGui. */ - public native float getAlpha(); /* - return IMGUI_STYLE->Alpha; - */ - - /** - * Global alpha applies to everything in Dear ImGui. - */ - public native void setAlpha(float alpha); /* - IMGUI_STYLE->Alpha = alpha; - */ + @BindingField + public float Alpha; /** * Additional alpha multiplier applied by BeginDisabled(). Multiply over current value of Alpha. */ - public native float getDisabledAlpha(); /* - return IMGUI_STYLE->DisabledAlpha; - */ - - /** - * Additional alpha multiplier applied by BeginDisabled(). Multiply over current value of Alpha. - */ - public native void setDisabledAlpha(float disabledAlpha); /* - IMGUI_STYLE->DisabledAlpha = disabledAlpha; - */ + @BindingField + public float DisabledAlpha; /** * Padding within a window. */ - public ImVec2 getWindowPadding() { - final ImVec2 value = new ImVec2(); - getWindowPadding(value); - return value; - } - - /** - * Padding within a window. - */ - public native void getWindowPadding(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IMGUI_STYLE->WindowPadding, dstImVec2); - */ - - /** - * Padding within a window. - */ - public native float getWindowPaddingX(); /* - return IMGUI_STYLE->WindowPadding.x; - */ - - /** - * Padding within a window. - */ - public native float getWindowPaddingY(); /* - return IMGUI_STYLE->WindowPadding.y; - */ - - /** - * Padding within a window. - */ - public native void setWindowPadding(float x, float y); /* - IMGUI_STYLE->WindowPadding.x = x; - IMGUI_STYLE->WindowPadding.y = y; - */ + @BindingField + public ImVec2 WindowPadding; /** * Radius of window corners rounding. Set to 0.0f to have rectangular windows. * Large values tend to lead to variety of artifacts and are not recommended. */ - public native float getWindowRounding(); /* - return IMGUI_STYLE->WindowRounding; - */ - - /** - * Radius of window corners rounding. Set to 0.0f to have rectangular windows. - * Large values tend to lead to variety of artifacts and are not recommended. - */ - public native void setWindowRounding(float windowRounding); /* - IMGUI_STYLE->WindowRounding = windowRounding; - */ + @BindingField + public float WindowRounding; /** * Thickness of border around windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). */ - public native float getWindowBorderSize(); /* - return IMGUI_STYLE->WindowBorderSize; - */ - - /** - * Thickness of border around windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). - */ - public native void setWindowBorderSize(float windowBorderSize); /* - IMGUI_STYLE->WindowBorderSize = windowBorderSize; - */ + @BindingField + public float WindowBorderSize; /** * Minimum window size. This is a global setting. If you want to constraint individual windows, use SetNextWindowSizeConstraints(). */ - public ImVec2 getWindowMinSize() { - final ImVec2 value = new ImVec2(); - getWindowMinSize(value); - return value; - } - - /** - * Minimum window size. This is a global setting. If you want to constraint individual windows, use SetNextWindowSizeConstraints(). - */ - public native void getWindowMinSize(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IMGUI_STYLE->WindowMinSize, dstImVec2); - */ - - /** - * Minimum window size. This is a global setting. If you want to constraint individual windows, use SetNextWindowSizeConstraints(). - */ - public native float getWindowMinSizeX(); /* - return IMGUI_STYLE->WindowMinSize.x; - */ - - /** - * Minimum window size. This is a global setting. If you want to constraint individual windows, use SetNextWindowSizeConstraints(). - */ - public native float getWindowMinSizeY(); /* - return IMGUI_STYLE->WindowMinSize.y; - */ - - /** - * Minimum window size. This is a global setting. If you want to constraint individual windows, use SetNextWindowSizeConstraints(). - */ - public native void setWindowMinSize(float x, float y); /* - IMGUI_STYLE->WindowMinSize.x = x; - IMGUI_STYLE->WindowMinSize.y = y; - */ + @BindingField + public ImVec2 WindowMinSize; /** * Alignment for title bar text. Defaults to (0.0f,0.5f) for left-aligned,vertically centered. */ - public ImVec2 getWindowTitleAlign() { - final ImVec2 value = new ImVec2(); - getWindowTitleAlign(value); - return value; - } - - /** - * Alignment for title bar text. Defaults to (0.0f,0.5f) for left-aligned,vertically centered. - */ - public native void getWindowTitleAlign(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IMGUI_STYLE->WindowTitleAlign, dstImVec2); - */ - - /** - * Alignment for title bar text. Defaults to (0.0f,0.5f) for left-aligned,vertically centered. - */ - public native float getWindowTitleAlignX(); /* - return IMGUI_STYLE->WindowTitleAlign.x; - */ - - /** - * Alignment for title bar text. Defaults to (0.0f,0.5f) for left-aligned,vertically centered. - */ - public native float getWindowTitleAlignY(); /* - return IMGUI_STYLE->WindowTitleAlign.y; - */ - - /** - * Alignment for title bar text. Defaults to (0.0f,0.5f) for left-aligned,vertically centered. - */ - public native void setWindowTitleAlign(float x, float y); /* - IMGUI_STYLE->WindowTitleAlign.x = x; - IMGUI_STYLE->WindowTitleAlign.y = y; - */ + @BindingField + public ImVec2 WindowTitleAlign; /** * Side of the collapsing/docking button in the title bar (None/Left/Right). Defaults to ImGuiDir_Left. */ - public native int getWindowMenuButtonPosition(); /* - return (int)IMGUI_STYLE->WindowMenuButtonPosition; - */ - - /** - * Side of the collapsing/docking button in the title bar (None/Left/Right). Defaults to ImGuiDir_Left. - */ - public native void setWindowMenuButtonPosition(int windowMenuButtonPosition); /* - IMGUI_STYLE->WindowMenuButtonPosition = windowMenuButtonPosition; - */ + @BindingField + public int WindowMenuButtonPosition; /** * Radius of child window corners rounding. Set to 0.0f to have rectangular windows. */ - public native float getChildRounding(); /* - return IMGUI_STYLE->ChildRounding; - */ - - /** - * Radius of child window corners rounding. Set to 0.0f to have rectangular windows. - */ - public native void setChildRounding(float childRounding); /* - IMGUI_STYLE->ChildRounding = childRounding; - */ + @BindingField + public float ChildRounding; /** * Thickness of border around child windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). */ - public native float getChildBorderSize(); /* - return IMGUI_STYLE->ChildBorderSize; - */ - - /** - * Thickness of border around child windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). - */ - public native void setChildBorderSize(float childBorderSize); /* - IMGUI_STYLE->ChildBorderSize = childBorderSize; - */ + @BindingField + public float ChildBorderSize; /** * Radius of popup window corners rounding. (Note that tooltip windows use WindowRounding) */ - public native float getPopupRounding(); /* - return IMGUI_STYLE->PopupRounding; - */ - - /** - * Radius of popup window corners rounding. (Note that tooltip windows use WindowRounding) - */ - public native void setPopupRounding(float popupRounding); /* - IMGUI_STYLE->PopupRounding = popupRounding; - */ + @BindingField + public float PopupRounding; /** * Thickness of border around popup/tooltip windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). */ - public native float getPopupBorderSize(); /* - return IMGUI_STYLE->PopupBorderSize; - */ - - /** - * Thickness of border around popup/tooltip windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). - */ - public native void setPopupBorderSize(float popupBorderSize); /* - IMGUI_STYLE->PopupBorderSize = popupBorderSize; - */ + @BindingField + public float PopupBorderSize; /** * Padding within a framed rectangle (used by most widgets). */ - public ImVec2 getFramePadding() { - final ImVec2 value = new ImVec2(); - getFramePadding(value); - return value; - } - - /** - * Padding within a framed rectangle (used by most widgets). - */ - public native void getFramePadding(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IMGUI_STYLE->FramePadding, dstImVec2); - */ - - /** - * Padding within a framed rectangle (used by most widgets). - */ - public native float getFramePaddingX(); /* - return IMGUI_STYLE->FramePadding.x; - */ - - /** - * Padding within a framed rectangle (used by most widgets). - */ - public native float getFramePaddingY(); /* - return IMGUI_STYLE->FramePadding.y; - */ - - /** - * Padding within a framed rectangle (used by most widgets). - */ - public native void setFramePadding(float x, float y); /* - IMGUI_STYLE->FramePadding.x = x; - IMGUI_STYLE->FramePadding.y = y; - */ + @BindingField + public ImVec2 FramePadding; /** * Radius of frame corners rounding. Set to 0.0f to have rectangular frame (used by most widgets). */ - public native float getFrameRounding(); /* - return IMGUI_STYLE->FrameRounding; - */ - - /** - * Radius of frame corners rounding. Set to 0.0f to have rectangular frame (used by most widgets). - */ - public native void setFrameRounding(float frameRounding); /* - IMGUI_STYLE->FrameRounding = frameRounding; - */ + @BindingField + public float FrameRounding; /** * Thickness of border around frames. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). */ - public native float getFrameBorderSize(); /* - return IMGUI_STYLE->FrameBorderSize; - */ - - /** - * Thickness of border around frames. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). - */ - public native void setFrameBorderSize(float frameBorderSize); /* - IMGUI_STYLE->FrameBorderSize = frameBorderSize; - */ + @BindingField + public float FrameBorderSize; /** * Horizontal and vertical spacing between widgets/lines. */ - public ImVec2 getItemSpacing() { - final ImVec2 value = new ImVec2(); - getItemSpacing(value); - return value; - } - - /** - * Horizontal and vertical spacing between widgets/lines. - */ - public native void getItemSpacing(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IMGUI_STYLE->ItemSpacing, dstImVec2); - */ - - /** - * Horizontal and vertical spacing between widgets/lines. - */ - public native float getItemSpacingX(); /* - return IMGUI_STYLE->ItemSpacing.x; - */ - - /** - * Horizontal and vertical spacing between widgets/lines. - */ - public native float getItemSpacingY(); /* - return IMGUI_STYLE->ItemSpacing.y; - */ - - /** - * Horizontal and vertical spacing between widgets/lines. - */ - public native void setItemSpacing(float x, float y); /* - IMGUI_STYLE->ItemSpacing.x = x; - IMGUI_STYLE->ItemSpacing.y = y; - */ + @BindingField + public ImVec2 ItemSpacing; /** * Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label). */ - public ImVec2 getItemInnerSpacing() { - final ImVec2 value = new ImVec2(); - getItemInnerSpacing(value); - return value; - } - - /** - * Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label). - */ - public native void getItemInnerSpacing(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IMGUI_STYLE->ItemInnerSpacing, dstImVec2); - */ - - /** - * Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label). - */ - public native float getItemInnerSpacingX(); /* - return IMGUI_STYLE->ItemInnerSpacing.x; - */ - - /** - * Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label). - */ - public native float getItemInnerSpacingY(); /* - return IMGUI_STYLE->ItemInnerSpacing.y; - */ - - /** - * Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label). - */ - public native void setItemInnerSpacing(float x, float y); /* - IMGUI_STYLE->ItemInnerSpacing.x = x; - IMGUI_STYLE->ItemInnerSpacing.y = y; - */ + @BindingField + public ImVec2 ItemInnerSpacing; /** * Padding within a table cell. */ - public ImVec2 getCellPadding() { - final ImVec2 value = new ImVec2(); - getCellPadding(value); - return value; - } - - /** - * Padding within a table cell. - */ - public native void getCellPadding(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IMGUI_STYLE->CellPadding, dstImVec2); - */ - - /** - * Padding within a table cell. - */ - public native float getCellPaddingX(); /* - return IMGUI_STYLE->CellPadding.x; - */ - - /** - * Padding within a table cell. - */ - public native float getCellPaddingY(); /* - return IMGUI_STYLE->CellPadding.y; - */ - - /** - * Padding within a table cell. - */ - public native void setCellPadding(float x, float y); /* - IMGUI_STYLE->CellPadding.x = x; - IMGUI_STYLE->CellPadding.y = y; - */ + @BindingField + public ImVec2 CellPadding; /** * Expand reactive bounding box for touch-based system where touch position is not accurate enough. * Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much! */ - public ImVec2 getTouchExtraPadding() { - final ImVec2 value = new ImVec2(); - getTouchExtraPadding(value); - return value; - } - - /** - * Expand reactive bounding box for touch-based system where touch position is not accurate enough. - * Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much! - */ - public native void getTouchExtraPadding(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IMGUI_STYLE->TouchExtraPadding, dstImVec2); - */ - - /** - * Expand reactive bounding box for touch-based system where touch position is not accurate enough. - * Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much! - */ - public native float getTouchExtraPaddingX(); /* - return IMGUI_STYLE->TouchExtraPadding.x; - */ - - /** - * Expand reactive bounding box for touch-based system where touch position is not accurate enough. - * Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much! - */ - public native float getTouchExtraPaddingY(); /* - return IMGUI_STYLE->TouchExtraPadding.y; - */ - - /** - * Expand reactive bounding box for touch-based system where touch position is not accurate enough. - * Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much! - */ - public native void setTouchExtraPadding(float x, float y); /* - IMGUI_STYLE->TouchExtraPadding.x = x; - IMGUI_STYLE->TouchExtraPadding.y = y; - */ + @BindingField + public ImVec2 TouchExtraPadding; /** * Horizontal indentation when e.g. entering a tree node. Generally == (FontSize + FramePadding.x*2). */ - public native float getIndentSpacing(); /* - return IMGUI_STYLE->IndentSpacing; - */ - - /** - * Horizontal indentation when e.g. entering a tree node. Generally == (FontSize + FramePadding.x*2). - */ - public native void setIndentSpacing(float indentSpacing); /* - IMGUI_STYLE->IndentSpacing = indentSpacing; - */ + @BindingField + public float IndentSpacing; /** * Minimum horizontal spacing between two columns. Preferably {@code >} (FramePadding.x + 1). */ - public native float getColumnsMinSpacing(); /* - return IMGUI_STYLE->ColumnsMinSpacing; - */ - - /** - * Minimum horizontal spacing between two columns. Preferably {@code >} (FramePadding.x + 1). - */ - public native void setColumnsMinSpacing(float columnsMinSpacing); /* - IMGUI_STYLE->ColumnsMinSpacing = columnsMinSpacing; - */ + @BindingField + public float ColumnsMinSpacing; /** * Width of the vertical scrollbar, Height of the horizontal scrollbar. */ - public native float getScrollbarSize(); /* - return IMGUI_STYLE->ScrollbarSize; - */ - - /** - * Width of the vertical scrollbar, Height of the horizontal scrollbar. - */ - public native void setScrollbarSize(float scrollbarSize); /* - IMGUI_STYLE->ScrollbarSize = scrollbarSize; - */ + @BindingField + public float ScrollbarSize; /** * Radius of grab corners for scrollbar. */ - public native float getScrollbarRounding(); /* - return IMGUI_STYLE->ScrollbarRounding; - */ - - /** - * Radius of grab corners for scrollbar. - */ - public native void setScrollbarRounding(float scrollbarRounding); /* - IMGUI_STYLE->ScrollbarRounding = scrollbarRounding; - */ + @BindingField + public float ScrollbarRounding; /** * Minimum width/height of a grab box for slider/scrollbar. */ - public native float getGrabMinSize(); /* - return IMGUI_STYLE->GrabMinSize; - */ - - /** - * Minimum width/height of a grab box for slider/scrollbar. - */ - public native void setGrabMinSize(float grabMinSize); /* - IMGUI_STYLE->GrabMinSize = grabMinSize; - */ + @BindingField + public float GrabMinSize; /** * Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs. */ - public native float getGrabRounding(); /* - return IMGUI_STYLE->GrabRounding; - */ - - /** - * Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs. - */ - public native void setGrabRounding(float grabRounding); /* - IMGUI_STYLE->GrabRounding = grabRounding; - */ + @BindingField + public float GrabRounding; /** * The size in pixels of the dead-zone around zero on logarithmic sliders that cross zero. */ - public native float getLogSliderDeadzone(); /* - return IMGUI_STYLE->LogSliderDeadzone; - */ - - /** - * The size in pixels of the dead-zone around zero on logarithmic sliders that cross zero. - */ - public native void setLogSliderDeadzone(float logSliderDeadzone); /* - IMGUI_STYLE->LogSliderDeadzone = logSliderDeadzone; - */ + @BindingField + public float LogSliderDeadzone; /** * Radius of upper corners of a tab. Set to 0.0f to have rectangular tabs. */ - public native float getTabRounding(); /* - return IMGUI_STYLE->TabRounding; - */ - - /** - * Radius of upper corners of a tab. Set to 0.0f to have rectangular tabs. - */ - public native void setTabRounding(float tabRounding); /* - IMGUI_STYLE->TabRounding = tabRounding; - */ + @BindingField + public float TabRounding; /** * Thickness of border around tabs. */ - public native float getTabBorderSize(); /* - return IMGUI_STYLE->TabBorderSize; - */ - - /** - * Thickness of border around tabs. - */ - public native void setTabBorderSize(float tabBorderSize); /* - IMGUI_STYLE->TabBorderSize = tabBorderSize; - */ + @BindingField + public float TabBorderSize; /** * Minimum width for close button to appears 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. */ - public native float getTabMinWidthForCloseButton(); /* - return IMGUI_STYLE->TabMinWidthForCloseButton; - */ - - /** - * Minimum width for close button to appears 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. - */ - public native void setTabMinWidthForCloseButton(float tabMinWidthForCloseButton); /* - IMGUI_STYLE->TabMinWidthForCloseButton = tabMinWidthForCloseButton; - */ + @BindingField + public float TabMinWidthForCloseButton; /** * Side of the color button in the ColorEdit4 widget (left/right). Defaults to ImGuiDir_Right. */ - public native int getColorButtonPosition(); /* - return IMGUI_STYLE->ColorButtonPosition; - */ - - /** - * Side of the color button in the ColorEdit4 widget (left/right). Defaults to ImGuiDir_Right. - */ - public native void setColorButtonPosition(int colorButtonPosition); /* - IMGUI_STYLE->ColorButtonPosition = colorButtonPosition; - */ + @BindingField + public int ColorButtonPosition; /** * Alignment of button text when button is larger than text. Defaults to (0.5f, 0.5f) (centered). */ - public ImVec2 getButtonTextAlign() { - final ImVec2 value = new ImVec2(); - getButtonTextAlign(value); - return value; - } - - /** - * Alignment of button text when button is larger than text. Defaults to (0.5f, 0.5f) (centered). - */ - public native void getButtonTextAlign(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IMGUI_STYLE->ButtonTextAlign, dstImVec2); - */ - - /** - * Alignment of button text when button is larger than text. Defaults to (0.5f, 0.5f) (centered). - */ - public native float getButtonTextAlignX(); /* - return IMGUI_STYLE->ButtonTextAlign.x; - */ - - /** - * Alignment of button text when button is larger than text. Defaults to (0.5f, 0.5f) (centered). - */ - public native float getButtonTextAlignY(); /* - return IMGUI_STYLE->ButtonTextAlign.y; - */ - - /** - * Alignment of button text when button is larger than text. Defaults to (0.5f, 0.5f) (centered). - */ - public native void setButtonTextAlign(float x, float y); /* - IMGUI_STYLE->ButtonTextAlign.x = x; - IMGUI_STYLE->ButtonTextAlign.y = y; - */ + @BindingField + public ImVec2 ButtonTextAlign; /** * Alignment of selectable text. Defaults to (0.0f, 0.0f) (top-left aligned). * It's generally important to keep this left-aligned if you want to lay multiple items on a same line. */ - public ImVec2 getSelectableTextAlign() { - final ImVec2 value = new ImVec2(); - getSelectableTextAlign(value); - return value; - } - - /** - * Alignment of selectable text. Defaults to (0.0f, 0.0f) (top-left aligned). - * It's generally important to keep this left-aligned if you want to lay multiple items on a same line. - */ - public native void getSelectableTextAlign(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IMGUI_STYLE->SelectableTextAlign, dstImVec2); - */ - - /** - * Alignment of selectable text. Defaults to (0.0f, 0.0f) (top-left aligned). - * It's generally important to keep this left-aligned if you want to lay multiple items on a same line. - */ - public native float getSelectableTextAlignX(); /* - return IMGUI_STYLE->SelectableTextAlign.x; - */ - - /** - * Alignment of selectable text. Defaults to (0.0f, 0.0f) (top-left aligned). - * It's generally important to keep this left-aligned if you want to lay multiple items on a same line. - */ - public native float getSelectableTextAlignY(); /* - return IMGUI_STYLE->SelectableTextAlign.y; - */ - - /** - * Alignment of selectable text. Defaults to (0.0f, 0.0f) (top-left aligned). - * It's generally important to keep this left-aligned if you want to lay multiple items on a same line. - */ - public native void setSelectableTextAlign(float x, float y); /* - IMGUI_STYLE->SelectableTextAlign.x = x; - IMGUI_STYLE->SelectableTextAlign.y = y; - */ + @BindingField + public ImVec2 SelectableTextAlign; /** * Window position are clamped to be visible within the display area by at least this amount. Only applies to regular windows. */ - public ImVec2 getDisplayWindowPadding() { - final ImVec2 value = new ImVec2(); - getDisplayWindowPadding(value); - return value; - } - - /** - * Window position are clamped to be visible within the display area by at least this amount. Only applies to regular windows. - */ - public native void getDisplayWindowPadding(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IMGUI_STYLE->DisplayWindowPadding, dstImVec2); - */ - - /** - * Window position are clamped to be visible within the display area by at least this amount. Only applies to regular windows. - */ - public native float getDisplayWindowPaddingX(); /* - return IMGUI_STYLE->DisplayWindowPadding.x; - */ - - /** - * Window position are clamped to be visible within the display area by at least this amount. Only applies to regular windows. - */ - public native float getDisplayWindowPaddingY(); /* - return IMGUI_STYLE->DisplayWindowPadding.y; - */ - - /** - * Window position are clamped to be visible within the display area by at least this amount. Only applies to regular windows. - */ - public native void setDisplayWindowPadding(float x, float y); /* - IMGUI_STYLE->DisplayWindowPadding.x = x; - IMGUI_STYLE->DisplayWindowPadding.y = y; - */ + @BindingField + public ImVec2 DisplayWindowPadding; /** * If you cannot see the edges of your screen (e.g. on a TV) increase the safe area padding. * Apply to popups/tooltips as well regular windows. NB: Prefer configuring your TV sets correctly! */ - public ImVec2 getDisplaySafeAreaPadding() { - final ImVec2 value = new ImVec2(); - getDisplaySafeAreaPadding(value); - return value; - } - - /** - * If you cannot see the edges of your screen (e.g. on a TV) increase the safe area padding. - * Apply to popups/tooltips as well regular windows. NB: Prefer configuring your TV sets correctly! - */ - public native void getDisplaySafeAreaPadding(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IMGUI_STYLE->DisplaySafeAreaPadding, dstImVec2); - */ - - /** - * If you cannot see the edges of your screen (e.g. on a TV) increase the safe area padding. - * Apply to popups/tooltips as well regular windows. NB: Prefer configuring your TV sets correctly! - */ - public native float getDisplaySafeAreaPaddingX(); /* - return IMGUI_STYLE->DisplaySafeAreaPadding.x; - */ - - /** - * If you cannot see the edges of your screen (e.g. on a TV) increase the safe area padding. - * Apply to popups/tooltips as well regular windows. NB: Prefer configuring your TV sets correctly! - */ - public native float getDisplaySafeAreaPaddingY(); /* - return IMGUI_STYLE->DisplaySafeAreaPadding.y; - */ - - /** - * If you cannot see the edges of your screen (e.g. on a TV) increase the safe area padding. - * Apply to popups/tooltips as well regular windows. NB: Prefer configuring your TV sets correctly! - */ - public native void setDisplaySafeAreaPadding(float x, float y); /* - IMGUI_STYLE->DisplaySafeAreaPadding.x = x; - IMGUI_STYLE->DisplaySafeAreaPadding.y = y; - */ + @BindingField + public ImVec2 DisplaySafeAreaPadding; /** * Scale software rendered mouse cursor (when io.MouseDrawCursor is enabled). May be removed later. */ - public native float getMouseCursorScale(); /* - return IMGUI_STYLE->MouseCursorScale; - */ - - /** - * Scale software rendered mouse cursor (when io.MouseDrawCursor is enabled). May be removed later. - */ - public native void setMouseCursorScale(float mouseCursorScale); /* - IMGUI_STYLE->MouseCursorScale = mouseCursorScale; - */ + @BindingField + public float MouseCursorScale; /** * Enable anti-aliased lines/borders. Disable if you are really tight on CPU/GPU. Latched at the beginning of the frame (copied to ImDrawList). */ - public native boolean getAntiAliasedLines(); /* - return IMGUI_STYLE->AntiAliasedLines; - */ - - /** - * Enable anti-aliased lines/borders. Disable if you are really tight on CPU/GPU. Latched at the beginning of the frame (copied to ImDrawList). - */ - public native void setAntiAliasedLines(boolean antiAliasedLines); /* - IMGUI_STYLE->AntiAliasedLines = antiAliasedLines; - */ + @BindingField + public boolean AntiAliasedLines; /** * Enable anti-aliased lines/borders using textures where possible. * Require backend to render with bilinear filtering. * Latched at the beginning of the frame (copied to ImDrawList). */ - public native boolean getAntiAliasedLinesUseTex(); /* - return IMGUI_STYLE->AntiAliasedLinesUseTex; - */ - - /** - * Enable anti-aliased lines/borders using textures where possible. - * Require backend to render with bilinear filtering. - * Latched at the beginning of the frame (copied to ImDrawList). - */ - public native void setAntiAliasedLinesUseTex(boolean antiAliasedLinesUseTex); /* - IMGUI_STYLE->AntiAliasedLinesUseTex = antiAliasedLinesUseTex; - */ + @BindingField + public boolean AntiAliasedLinesUseTex; /** * Enable anti-aliased edges around filled shapes (rounded rectangles, circles, etc.). * Disable if you are really tight on CPU/GPU. Latched at the beginning of the frame (copied to ImDrawList). */ - public native boolean getAntiAliasedFill(); /* - return IMGUI_STYLE->AntiAliasedFill; - */ - - /** - * Enable anti-aliased edges around filled shapes (rounded rectangles, circles, etc.). - * Disable if you are really tight on CPU/GPU. Latched at the beginning of the frame (copied to ImDrawList). - */ - public native void setAntiAliasedFill(boolean antiAliasedFill); /* - IMGUI_STYLE->AntiAliasedFill = antiAliasedFill; - */ + @BindingField + public boolean AntiAliasedFill; /** * Tessellation tolerance when using PathBezierCurveTo() without a specific number of segments. * Decrease for highly tessellated curves (higher quality, more polygons), increase to reduce quality. */ - public native float getCurveTessellationTol(); /* - return IMGUI_STYLE->CurveTessellationTol; - */ - - /** - * Tessellation tolerance when using PathBezierCurveTo() without a specific number of segments. - * Decrease for highly tessellated curves (higher quality, more polygons), increase to reduce quality. - */ - public native void setCurveTessellationTol(float curveTessellationTol); /* - IMGUI_STYLE->CurveTessellationTol = curveTessellationTol; - */ + @BindingField + public float CurveTessellationTol; /** * Maximum error (in pixels) allowed when using AddCircle()/AddCircleFilled() or drawing rounded corner rectangles with no explicit segment count specified. * Decrease for higher quality but more geometry. */ - public native float getCircleTessellationMaxError(); /* - return IMGUI_STYLE->CircleTessellationMaxError; - */ + @BindingField + public float CircleTessellationMaxError; - /** - * Maximum error (in pixels) allowed when using AddCircle()/AddCircleFilled() or drawing rounded corner rectangles with no explicit segment count specified. - * Decrease for higher quality but more geometry. - */ - public native void setCircleTessellationMaxError(float circleTessellationMaxError); /* - IMGUI_STYLE->CircleTessellationMaxError = circleTessellationMaxError; - */ + @BindingField + @TypeArray(type = "ImVec4", size = "ImGuiCol_COUNT") + public ImVec4[] Colors; - public float[][] getColors() { - final float[][] colors = new float[ImGuiCol.COUNT][4]; - getColors(colors); - return colors; + public ImVec4 getColor(final int col) { + final ImVec4 dst = new ImVec4(); + getColor(col, dst); + return dst; } - /** - * BINDING NOTICE: colors is a 2d array with sizes: [ImGuiCol_COUNT][4] + public native void getColor(int col, ImVec4 dst); /* + Jni::ImVec4Cpy(env, THIS->Colors[col], dst); + */ + + public native void setColor(int col, float r, float g, float b, float a); /* + THIS->Colors[col] = ImColor((float)r, (float)g, (float)b, (float)a); + */ + + public native void setColor(int col, int r, int g, int b, int a); /* + THIS->Colors[col] = ImColor((int)r, (int)g, (int)b, (int)a); + */ + + public native void setColor(int col, int value); /* + THIS->Colors[col] = ImColor(value); + */ + + @BindingMethod + public native void ScaleAllSizes(float scaleFactor); + + /*JNI + #undef THIS */ - public native void getColors(float[][] buff); /* - for (int i = 0; i < ImGuiCol_COUNT; i++) { - jfloatArray jColors = (jfloatArray)env->GetObjectArrayElement(buff, i); - jfloat* jBuffColor = env->GetFloatArrayElements(jColors, 0); - - jBuffColor[0] = IMGUI_STYLE->Colors[i].x; - jBuffColor[1] = IMGUI_STYLE->Colors[i].y; - jBuffColor[2] = IMGUI_STYLE->Colors[i].z; - jBuffColor[3] = IMGUI_STYLE->Colors[i].w; - - env->ReleaseFloatArrayElements(jColors, jBuffColor, 0); - env->DeleteLocalRef(jColors); - } - */ - - /** - * BINDING NOTICE: colors is a 2d array with sizes: [ImGuiCol_COUNT][4] - */ - public native void setColors(float[][] colors); /* - for (int i = 0; i < ImGuiCol_COUNT; i++) { - jfloatArray jColors = (jfloatArray)env->GetObjectArrayElement(colors, i); - jfloat* jColor = env->GetFloatArrayElements(jColors, 0); - - IMGUI_STYLE->Colors[i].x = jColor[0]; - IMGUI_STYLE->Colors[i].y = jColor[1]; - IMGUI_STYLE->Colors[i].z = jColor[2]; - IMGUI_STYLE->Colors[i].w = jColor[3]; - - env->ReleaseFloatArrayElements(jColors, jColor, 0); - env->DeleteLocalRef(jColors); - } - */ - - public ImVec4 getColor(final int imGuiCol) { - final ImVec4 value = new ImVec4(); - getColor(imGuiCol, value); - return value; - } - - public native void getColor(int imGuiCol, ImVec4 dstImVec4); /* - Jni::ImVec4Cpy(env, IMGUI_STYLE->Colors[imGuiCol], dstImVec4); - */ - - public native void setColor(int imGuiCol, float r, float g, float b, float a); /* - IMGUI_STYLE->Colors[imGuiCol] = ImColor((float)r, (float)g, (float)b, (float)a); - */ - - public native void setColor(int imGuiCol, int r, int g, int b, int a); /* - IMGUI_STYLE->Colors[imGuiCol] = ImColor((int)r, (int)g, (int)b, (int)a); - */ - - public native void setColor(int imGuiCol, int col); /* - IMGUI_STYLE->Colors[imGuiCol] = ImColor(col); - */ - - public native void scaleAllSizes(float scaleFactor); /* - IMGUI_STYLE->ScaleAllSizes(scaleFactor); - */ } diff --git a/imgui-binding/src/main/java/imgui/ImGuiTextFilter.java b/imgui-binding/src/main/java/imgui/ImGuiTextFilter.java index 9c64e97..11a7b9b 100644 --- a/imgui-binding/src/main/java/imgui/ImGuiTextFilter.java +++ b/imgui-binding/src/main/java/imgui/ImGuiTextFilter.java @@ -1,10 +1,15 @@ package imgui; import imgui.binding.ImGuiStructDestroyable; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingMethod; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.OptArg; /** * Helper: Parse and apply text filters. In format "aaaaa[,bbbb][,ccccc]" */ +@BindingSource public final class ImGuiTextFilter extends ImGuiStructDestroyable { public ImGuiTextFilter() { this(""); @@ -14,58 +19,51 @@ public final class ImGuiTextFilter extends ImGuiStructDestroyable { ptr = nCreate(defaultFilter); } - ImGuiTextFilter(final long ptr) { + public ImGuiTextFilter(final long ptr) { super(ptr); } - /*JNI - #include "_common.h" - - #define IMGUI_TEXT_FILTER ((ImGuiTextFilter*)STRUCT_PTR) - */ - @Override protected long create() { return nCreate(""); } + /*JNI + #include "_common.h" + #define THIS ((ImGuiTextFilter*)STRUCT_PTR) + */ + private native long nCreate(String defaultFilter); /* return (intptr_t)(new ImGuiTextFilter(defaultFilter)); */ - public boolean draw() { - return draw("Filter (inc,-exc)"); - } + @BindingMethod + public native boolean Draw(@OptArg(callValue = "\"Filter (inc,-exc)\"") String label, @OptArg float width); - public boolean draw(final String label) { - return draw(label, 0f); - } + @BindingMethod + public native boolean PassFilter(String text, Void NULL); - public native boolean draw(String label, float width); /* - return IMGUI_TEXT_FILTER->Draw(label, width); - */ + @BindingMethod + public native void Build(); - public native boolean passFilter(String text); /* - return IMGUI_TEXT_FILTER->PassFilter(text); - */ + @BindingMethod + public native void Clear(); - public native void build(); /* - IMGUI_TEXT_FILTER->Build(); - */ - - public native void clear(); /* - IMGUI_TEXT_FILTER->Clear(); - */ - - public native boolean isActive(); /* - return IMGUI_TEXT_FILTER->IsActive(); - */ + @BindingMethod + public native boolean IsActive(); public native String getInputBuffer(); /* - return env->NewStringUTF(IMGUI_TEXT_FILTER->InputBuf); + return env->NewStringUTF(THIS->InputBuf); */ - public native void setInputBuffer(String inputBuffer); /* - strncpy(IMGUI_TEXT_FILTER->InputBuf, inputBuffer, sizeof(IMGUI_TEXT_FILTER->InputBuf)); + public native void setInputBuffer(String inputBuf); /* + strncpy(THIS->InputBuf, inputBuf, sizeof(THIS->InputBuf)); */ + + @BindingField + public int CountGrep; + + /*JNI + #undef THIS + */ } diff --git a/imgui-binding/src/main/java/imgui/ImGuiViewport.java b/imgui-binding/src/main/java/imgui/ImGuiViewport.java index ec36f16..afa94e9 100644 --- a/imgui-binding/src/main/java/imgui/ImGuiViewport.java +++ b/imgui-binding/src/main/java/imgui/ImGuiViewport.java @@ -1,261 +1,80 @@ package imgui; import imgui.binding.ImGuiStruct; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingMethod; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.ReturnValue; /** * The viewports created and managed by Dear ImGui. The role of the platform backend is to create the platform/OS windows corresponding to each viewport. * - Main Area = entire viewport. * - Work Area = entire viewport minus sections optionally used by menu bars, status bars. Some positioning code will prefer to use this. Window are also trying to stay within this area. */ +@BindingSource public final class ImGuiViewport extends ImGuiStruct { - private static final ImDrawData DRAW_DATA = new ImDrawData(0); - public ImGuiViewport(final long ptr) { super(ptr); } /*JNI #include "_common.h" - - #define IMGUI_VIEWPORT ((ImGuiViewport*)STRUCT_PTR) + #define THIS ((ImGuiViewport*)STRUCT_PTR) */ /** * Unique identifier for the viewport. */ - public native int getID(); /* - return IMGUI_VIEWPORT->ID; - */ - - /** - * Unique identifier for the viewport. - */ - public native void setID(int imGuiID); /* - IMGUI_VIEWPORT->ID = imGuiID; - */ + @BindingField + public int ID; /** * See {@link imgui.flag.ImGuiViewportFlags}. */ - public native int getFlags(); /* - return IMGUI_VIEWPORT->Flags; - */ - - /** - * See {@link imgui.flag.ImGuiViewportFlags}. - */ - public native void setFlags(int flags); /* - IMGUI_VIEWPORT->Flags = flags; - */ - - /** - * See {@link imgui.flag.ImGuiViewportFlags}. - */ - public void addFlags(final int flags) { - setFlags(getFlags() | flags); - } - - /** - * See {@link imgui.flag.ImGuiViewportFlags}. - */ - public void removeFlags(final int flags) { - setFlags(getFlags() & ~(flags)); - } - - /** - * See {@link imgui.flag.ImGuiViewportFlags}. - */ - public boolean hasFlags(final int flags) { - return (getFlags() & flags) != 0; - } + @BindingField(isFlag = true) + public int Flags; /** * Main Area: Position of the viewport (the imgui coordinates are the same as OS desktop/native coordinates). */ - public ImVec2 getPos() { - final ImVec2 value = new ImVec2(); - getPos(value); - return value; - } - - /** - * Main Area: Position of the viewport (the imgui coordinates are the same as OS desktop/native coordinates). - */ - public native void getPos(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IMGUI_VIEWPORT->Pos, dstImVec2); - */ - - /** - * Main Area: Position of the viewport (the imgui coordinates are the same as OS desktop/native coordinates). - */ - public native float getPosX(); /* - return IMGUI_VIEWPORT->Pos.x; - */ - - /** - * Main Area: Position of the viewport (the imgui coordinates are the same as OS desktop/native coordinates). - */ - public native float getPosY(); /* - return IMGUI_VIEWPORT->Pos.y; - */ - - /** - * Main Area: Position of the viewport (the imgui coordinates are the same as OS desktop/native coordinates). - */ - public native void setPos(float x, float y); /* - IMGUI_VIEWPORT->Pos = ImVec2(x, y); - */ + @BindingField + public ImVec2 Pos; /** * Main Area: Size of the viewport. */ - public ImVec2 getSize() { - final ImVec2 value = new ImVec2(); - getSize(value); - return value; - } - - /** - * Main Area: Size of the viewport. - */ - public native void getSize(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IMGUI_VIEWPORT->Size, dstImVec2); - */ - - /** - * Main Area: Size of the viewport. - */ - public native float getSizeX(); /* - return IMGUI_VIEWPORT->Size.x; - */ - - /** - * Main Area: Size of the viewport. - */ - public native float getSizeY(); /* - return IMGUI_VIEWPORT->Size.y; - */ - - /** - * Main Area: Size of the viewport. - */ - public native void seSize(float x, float y); /* - IMGUI_VIEWPORT->Size = ImVec2(x, y); - */ + @BindingField + public ImVec2 Size; /** * Work Area: Position of the viewport minus task bars, menus bars, status bars. */ - public ImVec2 getWorkPos() { - final ImVec2 value = new ImVec2(); - getWorkPos(value); - return value; - } - - /** - * Work Area: Position of the viewport minus task bars, menus bars, status bars. - */ - public native void getWorkPos(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, IMGUI_VIEWPORT->WorkPos, dstImVec2); - */ - - /** - * Work Area: Position of the viewport minus task bars, menus bars, status bars. - */ - public native float getWorkPosX(); /* - return IMGUI_VIEWPORT->WorkPos.x; - */ - - /** - * Work Area: Position of the viewport minus task bars, menus bars, status bars. - */ - public native float getWorkPosY(); /* - return IMGUI_VIEWPORT->WorkPos.y; - */ - - /** - * Work Area: Position of the viewport minus task bars, menus bars, status bars. - */ - public native void setWorkPos(float x, float y); /* - IMGUI_VIEWPORT->WorkPos = ImVec2(x, y); - */ + @BindingField + public ImVec2 WorkPos; /** * Work Area: Size of the viewport minus task bars, menu bars, status bars. */ - public ImVec2 getWorkSize() { - final ImVec2 value = new ImVec2(); - getWorkSize(value); - return value; - } - - /** - * Work Area: Size of the viewport minus task bars, menu bars, status bars. - */ - public native void getWorkSize(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, IMGUI_VIEWPORT->WorkSize, dstImVec2); - */ - - /** - * Work Area: Size of the viewport minus task bars, menu bars, status bars. - */ - public native float getWorkSizeX(); /* - return IMGUI_VIEWPORT->WorkSize.x; - */ - - /** - * Work Area: Size of the viewport minus task bars, menu bars, status bars. - */ - public native float getWorkSizeY(); /* - return IMGUI_VIEWPORT->WorkSize.y; - */ - - /** - * Work Area: Size of the viewport minus task bars, menu bars, status bars. - */ - public native void setWorkSize(float x, float y); /* - IMGUI_VIEWPORT->WorkSize = ImVec2(x, y); - */ + @BindingField + public ImVec2 WorkSize; /** * 1.0f = 96 DPI = No extra scale. */ - public native float getDpiScale(); /* - return IMGUI_VIEWPORT->DpiScale; - */ - - /** - * 1.0f = 96 DPI = No extra scale. - */ - public native void setDpiScale(float dpiScale); /* - IMGUI_VIEWPORT->DpiScale = dpiScale; - */ + @BindingField + public float DpiScale; /** * (Advanced) 0: no parent. Instruct the platform backend to setup a parent/child relationship between platform windows. */ - public native int getParentViewportId(); /* - return IMGUI_VIEWPORT->ParentViewportId; - */ - - /** - * (Advanced) 0: no parent. Instruct the platform backend to setup a parent/child relationship between platform windows. - */ - public native void setParentViewportId(int parentViewportId); /* - IMGUI_VIEWPORT->ParentViewportId = parentViewportId; - */ + @BindingField + public int ParentViewportId; /** * The ImDrawData corresponding to this viewport. Valid after Render() and until the next call to NewFrame(). */ - public ImDrawData getDrawData() { - DRAW_DATA.ptr = nGetDrawData(); - return DRAW_DATA; - } - - private native long nGetDrawData(); /* - return (intptr_t)IMGUI_VIEWPORT->DrawData; - */ + @BindingField + public ImDrawData DrawData; // Our design separate the Renderer and Platform backends to facilitate combining default backends with each others. // When our create your own backend for a custom engine, it is possible that both Renderer and Platform will be handled @@ -266,141 +85,91 @@ public final class ImGuiViewport extends ImGuiStruct { * void* to hold custom data structure for the renderer (e.g. swap chain, framebuffers etc.). generally set by your Renderer_CreateWindow function. */ public native void setRendererUserData(Object data); /* - if (IMGUI_VIEWPORT->RendererUserData != NULL) { - env->DeleteGlobalRef((jobject)IMGUI_VIEWPORT->RendererUserData); + if (THIS->RendererUserData != NULL) { + env->DeleteGlobalRef((jobject)THIS->RendererUserData); } - IMGUI_VIEWPORT->RendererUserData = (data == NULL ? NULL : (void*)env->NewGlobalRef(data)); + THIS->RendererUserData = (data == NULL ? NULL : (void*)env->NewGlobalRef(data)); */ /** * void* to hold custom data structure for the renderer (e.g. swap chain, framebuffers etc.). generally set by your Renderer_CreateWindow function. */ public native Object getRendererUserData(); /* - return (jobject)IMGUI_VIEWPORT->RendererUserData; + return (jobject)THIS->RendererUserData; */ /** * void* to hold custom data structure for the OS / platform (e.g. windowing info, render context). generally set by your Platform_CreateWindow function. */ public native void setPlatformUserData(Object data); /* - if (IMGUI_VIEWPORT->PlatformUserData != NULL) { - env->DeleteGlobalRef((jobject)IMGUI_VIEWPORT->PlatformUserData); + if (THIS->PlatformUserData != NULL) { + env->DeleteGlobalRef((jobject)THIS->PlatformUserData); } - IMGUI_VIEWPORT->PlatformUserData = (data == NULL ? NULL : (void*)env->NewGlobalRef(data)); + THIS->PlatformUserData = (data == NULL ? NULL : (void*)env->NewGlobalRef(data)); */ /** * void* to hold custom data structure for the OS / platform (e.g. windowing info, render context). generally set by your Platform_CreateWindow function. */ public native Object getPlatformUserData(); /* - return (jobject)IMGUI_VIEWPORT->PlatformUserData; + return (jobject)THIS->PlatformUserData; */ /** * void* for FindViewportByPlatformHandle(). (e.g. suggested to use natural platform handle such as HWND, GLFWWindow*, SDL_Window*) */ public native void setPlatformHandle(long data); /* - IMGUI_VIEWPORT->PlatformHandle = (void*)data; + THIS->PlatformHandle = (void*)data; */ /** * void* for FindViewportByPlatformHandle(). (e.g. suggested to use natural platform handle such as HWND, GLFWWindow*, SDL_Window*) */ public native long getPlatformHandle(); /* - return (intptr_t)IMGUI_VIEWPORT->PlatformHandle; + return (intptr_t)THIS->PlatformHandle; */ /** * void* to hold lower-level, platform-native window handle (e.g. the HWND) when using an abstraction layer like GLFW or SDL (where PlatformHandle would be a SDL_Window*) */ public native void setPlatformHandleRaw(long data); /* - IMGUI_VIEWPORT->PlatformHandleRaw = (void*)data; + THIS->PlatformHandleRaw = (void*)data; */ /** * void* to hold lower-level, platform-native window handle (e.g. the HWND) when using an abstraction layer like GLFW or SDL (where PlatformHandle would be a SDL_Window*) */ public native long getPlatformHandleRaw(); /* - return (intptr_t)IMGUI_VIEWPORT->PlatformHandleRaw; + return (intptr_t)THIS->PlatformHandleRaw; */ /** * Platform window requested move (e.g. window was moved by the OS / host window manager, authoritative position will be OS window position). */ - public native boolean getPlatformRequestMove(); /* - return IMGUI_VIEWPORT->PlatformRequestMove; - */ - - /** - * Platform window requested move (e.g. window was moved by the OS / host window manager, authoritative position will be OS window position). - */ - public native void setPlatformRequestMove(boolean platformRequestMove); /* - IMGUI_VIEWPORT->PlatformRequestMove = platformRequestMove; - */ + @BindingField + public boolean PlatformRequestMove; /** * Platform window requested resize (e.g. window was resized by the OS / host window manager, authoritative size will be OS window size). */ - public native boolean getPlatformRequestResize(); /* - return IMGUI_VIEWPORT->PlatformRequestResize; - */ - - /** - * Platform window requested resize (e.g. window was resized by the OS / host window manager, authoritative size will be OS window size). - */ - public native void setPlatformRequestResize(boolean platformRequestResize); /* - IMGUI_VIEWPORT->PlatformRequestResize = platformRequestResize; - */ + @BindingField + public boolean PlatformRequestResize; /** * Platform window requested closure (e.g. window was moved by the OS / host window manager, e.g. pressing ALT-F4). */ - public native boolean getPlatformRequestClose(); /* - return IMGUI_VIEWPORT->PlatformRequestClose; - */ - - /** - * Platform window requested closure (e.g. window was moved by the OS / host window manager, e.g. pressing ALT-F4). - */ - public native void setPlatformRequestClose(boolean platformRequestClose); /* - IMGUI_VIEWPORT->PlatformRequestClose = platformRequestClose; - */ + @BindingField + public boolean PlatformRequestClose; // Helpers - public ImVec2 getCenter() { - final ImVec2 value = new ImVec2(); - getCenter(value); - return value; - } + @BindingMethod + public native ImVec2 GetCenter(); - public native void getCenter(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, IMGUI_VIEWPORT->GetCenter(), dstImVec2); - */ + @BindingMethod + public native ImVec2 GetWorkCenter(); - public native float getCenterX(); /* - return IMGUI_VIEWPORT->GetCenter().x; - */ - - public native float getCenterY(); /* - return IMGUI_VIEWPORT->GetCenter().y; - */ - - public ImVec2 getWorkCenter() { - final ImVec2 value = new ImVec2(); - getWorkCenter(value); - return value; - } - - public native void getWorkCenter(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, IMGUI_VIEWPORT->GetWorkCenter(), dstImVec2); - */ - - public native float getWorkCenterX(); /* - return IMGUI_VIEWPORT->GetWorkCenter().x; - */ - - public native float getWorkCenterY(); /* - return IMGUI_VIEWPORT->GetWorkCenter().y; - */ + /*JNI + #undef THIS + */ } diff --git a/imgui-binding/src/main/java/imgui/ImGuiWindowClass.java b/imgui-binding/src/main/java/imgui/ImGuiWindowClass.java index 3fd4ac8..c553fdc 100644 --- a/imgui-binding/src/main/java/imgui/ImGuiWindowClass.java +++ b/imgui-binding/src/main/java/imgui/ImGuiWindowClass.java @@ -1,6 +1,8 @@ package imgui; import imgui.binding.ImGuiStructDestroyable; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingSource; /** * [ALPHA] Rarely used / very advanced uses only. Use with SetNextWindowClass() and DockSpace() functions. @@ -11,6 +13,7 @@ import imgui.binding.ImGuiStructDestroyable; * - To the platform backend for OS level parent/child relationships of viewport. * - To the docking system for various options and filtering. */ +@BindingSource public final class ImGuiWindowClass extends ImGuiStructDestroyable { public ImGuiWindowClass() { } @@ -19,17 +22,16 @@ public final class ImGuiWindowClass extends ImGuiStructDestroyable { super(ptr); } - /*JNI - #include "_common.h" - - #define IMGUI_WINDOW_CLASS ((ImGuiWindowClass*)STRUCT_PTR) - */ - @Override protected long create() { return nCreate(); } + /*JNI + #include "_common.h" + #define THIS ((ImGuiWindowClass*)STRUCT_PTR) + */ + private native long nCreate(); /* return (intptr_t)(new ImGuiWindowClass()); */ @@ -37,143 +39,57 @@ public final class ImGuiWindowClass extends ImGuiStructDestroyable { /** * User data. 0 = Default class (unclassed). Windows of different classes cannot be docked with each others. */ - public native int geClassId(); /* - return IMGUI_WINDOW_CLASS->ClassId; - */ - - /** - * User data. 0 = Default class (unclassed). Windows of different classes cannot be docked with each others. - */ - public native void setClassId(int classId); /* - IMGUI_WINDOW_CLASS->ClassId = classId; - */ + @BindingField + public int ClassId; /** * Hint for the platform backend. If non-zero, the platform backend can create a parent{@code <>}child relationship between the platform windows. * Not conforming backends are free to e.g. parent every viewport to the main viewport or not. */ - public native int getParentViewportId(); /* - return IMGUI_WINDOW_CLASS->ParentViewportId; - */ - - /** - * Hint for the platform backend. If non-zero, the platform backend can create a parent{@code <>}child relationship between the platform windows. - * Not conforming backends are free to e.g. parent every viewport to the main viewport or not. - */ - public native void setParentViewportId(int parentViewportId); /* - IMGUI_WINDOW_CLASS->ParentViewportId = parentViewportId; - */ + @BindingField + public int ParentViewportId; /** * Viewport flags to set when a window of this class owns a viewport. * This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. */ - public native int getViewportFlagsOverrideSet(); /* - return IMGUI_WINDOW_CLASS->ViewportFlagsOverrideSet; - */ - - /** - * Viewport flags to set when a window of this class owns a viewport. - * This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. - */ - public native void setViewportFlagsOverrideSet(int viewportFlagsOverrideSet); /* - IMGUI_WINDOW_CLASS->ViewportFlagsOverrideSet = viewportFlagsOverrideSet; - */ + @BindingField(isFlag = true) + public int ViewportFlagsOverrideSet; /** * Viewport flags to clear when a window of this class owns a viewport. * This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. */ - public native int getViewportFlagsOverrideClear(); /* - return IMGUI_WINDOW_CLASS->ViewportFlagsOverrideClear; - */ - - /** - * Viewport flags to clear when a window of this class owns a viewport. - * This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. - */ - public native void setViewportFlagsOverrideClear(int viewportFlagsOverrideClear); /* - IMGUI_WINDOW_CLASS->ViewportFlagsOverrideClear = viewportFlagsOverrideClear; - */ + @BindingField(isFlag = true) + public int ViewportFlagsOverrideClear; /** * [EXPERIMENTAL] TabItem flags to set when a window of this class gets submitted into a dock node tab bar. * May use with ImGuiTabItemFlags_Leading or ImGuiTabItemFlags_Trailing. */ - public native int getTabItemFlagsOverrideSet(); /* - return IMGUI_WINDOW_CLASS->TabItemFlagsOverrideSet; - */ - - /** - * [EXPERIMENTAL] TabItem flags to set when a window of this class gets submitted into a dock node tab bar. - * May use with ImGuiTabItemFlags_Leading or ImGuiTabItemFlags_Trailing. - */ - public native void setTabItemFlagsOverrideSet(int tabItemFlagsOverrideSet); /* - IMGUI_WINDOW_CLASS->TabItemFlagsOverrideSet = tabItemFlagsOverrideSet; - */ + @BindingField(isFlag = true) + public int TabItemFlagsOverrideSet; /** * [EXPERIMENTAL] Dock node flags to set when a window of this class is hosted by a dock node (it doesn't have to be selected!) */ - public native int getDockNodeFlagsOverrideSet(); /* - return IMGUI_WINDOW_CLASS->DockNodeFlagsOverrideSet; - */ - - /** - * [EXPERIMENTAL] Dock node flags to set when a window of this class is hosted by a dock node (it doesn't have to be selected!) - */ - public native void setDockNodeFlagsOverrideSet(int dockNodeFlagsOverrideSet); /* - IMGUI_WINDOW_CLASS->DockNodeFlagsOverrideSet = dockNodeFlagsOverrideSet; - */ - - /** - * [EXPERIMENTAL] Dock node flags to set when a window of this class is hosted by a dock node (it doesn't have to be selected!) - */ - public void addDockNodeFlagsOverrideSet(final int flags) { - setDockNodeFlagsOverrideSet(getDockNodeFlagsOverrideSet() | flags); - } - - /** - * [EXPERIMENTAL] Dock node flags to set when a window of this class is hosted by a dock node (it doesn't have to be selected!) - */ - public void removeDockNodeFlagsOverrideSet(final int flags) { - setDockNodeFlagsOverrideSet(getDockNodeFlagsOverrideSet() & ~(flags)); - } - - /** - * [EXPERIMENTAL] Dock node flags to set when a window of this class is hosted by a dock node (it doesn't have to be selected!) - */ - public boolean hasDockNodeFlagsOverrideSet(final int flags) { - return (getDockNodeFlagsOverrideSet() & flags) != 0; - } + @BindingField(isFlag = true) + public int DockNodeFlagsOverrideSet; /** * Set to true to enforce single floating windows of this class always having their own docking node * (equivalent of setting the global io.ConfigDockingAlwaysTabBar) */ - public native boolean getDockingAlwaysTabBar(); /* - return IMGUI_WINDOW_CLASS->DockingAlwaysTabBar; - */ - - /** - * Set to true to enforce single floating windows of this class always having their own docking node - * (equivalent of setting the global io.ConfigDockingAlwaysTabBar) - */ - public native void setDockingAlwaysTabBar(boolean dockingAlwaysTabBar); /* - IMGUI_WINDOW_CLASS->DockingAlwaysTabBar = dockingAlwaysTabBar; - */ + @BindingField + public boolean DockingAlwaysTabBar; /** * Set to true to allow windows of this class to be docked/merged with an unclassed window. */ - public native boolean getDockingAllowUnclassed(); /* - return IMGUI_WINDOW_CLASS->DockingAllowUnclassed; - */ + @BindingField + public boolean DockingAllowUnclassed; - /** - * Set to true to allow windows of this class to be docked/merged with an unclassed window. + /*JNI + #undef THIS */ - public native void setDockingAllowUnclassed(boolean dockingAllowUnclassed); /* - IMGUI_WINDOW_CLASS->DockingAllowUnclassed = dockingAllowUnclassed; - */ } diff --git a/imgui-binding/src/main/java/imgui/ImVec2.java b/imgui-binding/src/main/java/imgui/ImVec2.java index c4af92d..923e5bb 100644 --- a/imgui-binding/src/main/java/imgui/ImVec2.java +++ b/imgui-binding/src/main/java/imgui/ImVec2.java @@ -17,7 +17,7 @@ public final class ImVec2 implements Cloneable { } public ImVec2(final ImVec2 value) { - this(value.x, value.y); + set(value.x, value.y); } public ImVec2 set(final float x, final float y) { diff --git a/imgui-binding/src/main/java/imgui/ImVec4.java b/imgui-binding/src/main/java/imgui/ImVec4.java index fe8a74a..1192eb8 100644 --- a/imgui-binding/src/main/java/imgui/ImVec4.java +++ b/imgui-binding/src/main/java/imgui/ImVec4.java @@ -19,7 +19,7 @@ public final class ImVec4 implements Cloneable { } public ImVec4(final ImVec4 value) { - this(value.x, value.y, value.z, value.w); + set(value.x, value.y, value.z, value.w); } public ImVec4 set(final float x, final float y, final float z, final float w) { diff --git a/imgui-binding/src/main/java/imgui/binding/annotation/ArgValue.java b/imgui-binding/src/main/java/imgui/binding/annotation/ArgValue.java new file mode 100644 index 0000000..7e6b4b4 --- /dev/null +++ b/imgui-binding/src/main/java/imgui/binding/annotation/ArgValue.java @@ -0,0 +1,39 @@ +package imgui.binding.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Provides an additional metadata for the argument value. + */ +@ExcludedSource +@Target(ElementType.PARAMETER) +@Retention(RetentionPolicy.SOURCE) +public @interface ArgValue { + /** + * Defines a prefix which will be appended to the call on JNI side. + */ + String callPrefix() default ""; + + /** + * Defines a prefix which will be added to the call on JNI side. + */ + String callSuffix() default ""; + + /** + * Defines what will be called on the native side instead of passing actual argument. + */ + String callValue() default ""; + + /** + * Defines a value to cast with "static_cast" function. + */ + String staticCast() default ""; + + /** + * Defines a value to cast with "reinterpret_cast" function. + */ + String reinterpretCast() default ""; +} diff --git a/imgui-binding/src/main/java/imgui/binding/annotation/BindingAstEnum.java b/imgui-binding/src/main/java/imgui/binding/annotation/BindingAstEnum.java new file mode 100644 index 0000000..0c1a8a6 --- /dev/null +++ b/imgui-binding/src/main/java/imgui/binding/annotation/BindingAstEnum.java @@ -0,0 +1,38 @@ +package imgui.binding.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Should be applied to a marker field. Provides metadata to generate "enum-like" values from the AST tree. + * Marker field replaced with generated fields. + */ +@ExcludedSource +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.SOURCE) +public @interface BindingAstEnum { + /** + * AST file name to get the information. + */ + String file(); + + /** + * Enum qualType to use for generation. + */ + String qualType(); + + /** + * If provided, will be used to sanitize provided value from enum names. + * Required for cases, when enum has one definition, but the value has different prefix. + * + *

Example: + * + * enum ImGuiDockNodeFlagsPrivate_ { + * ImGuiDockNodeFlags_DockSpace + * } + * + */ + String sanitizeName() default ""; +} diff --git a/imgui-binding/src/main/java/imgui/binding/annotation/BindingField.java b/imgui-binding/src/main/java/imgui/binding/annotation/BindingField.java new file mode 100644 index 0000000..50e7822 --- /dev/null +++ b/imgui-binding/src/main/java/imgui/binding/annotation/BindingField.java @@ -0,0 +1,34 @@ +package imgui.binding.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * The marked method will be used as a metadata provider for generating binding methods. + */ +@ExcludedSource +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.SOURCE) +public @interface BindingField { + /** + * Accessors to generate for field. + */ + Accessor[] accessors() default {Accessor.SETTER, Accessor.GETTER}; + + enum Accessor { + SETTER, + GETTER; + } + + /** + * When true, additions util methods will be generated for field configuration. + */ + boolean isFlag() default false; + + /** + * Name of the method which will be used to call native API. + */ + String callName() default ""; +} diff --git a/imgui-binding/src/main/java/imgui/binding/annotation/BindingMethod.java b/imgui-binding/src/main/java/imgui/binding/annotation/BindingMethod.java new file mode 100644 index 0000000..340dc83 --- /dev/null +++ b/imgui-binding/src/main/java/imgui/binding/annotation/BindingMethod.java @@ -0,0 +1,24 @@ +package imgui.binding.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * The marked method will be used as a metadata provider for generating binding methods. + */ +@ExcludedSource +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.SOURCE) +public @interface BindingMethod { + /** + * Name of the generated method on JVM side. + */ + String name() default ""; + + /** + * Name of the method which will be used to call native API. + */ + String callName() default ""; +} diff --git a/imgui-binding/src/main/java/imgui/binding/annotation/BindingSource.java b/imgui-binding/src/main/java/imgui/binding/annotation/BindingSource.java new file mode 100644 index 0000000..1f7c892 --- /dev/null +++ b/imgui-binding/src/main/java/imgui/binding/annotation/BindingSource.java @@ -0,0 +1,25 @@ +package imgui.binding.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Marks the class as a source for binding generation. + * Will be parsed for additional metadata, like information about {@link BindingMethod} etc. + */ +@ExcludedSource +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.SOURCE) +public @interface BindingSource { + /** + * Native pointer to use to do calls to the API. + */ + String callPtr() default ""; + + /** + * Operator to call native pointer. + */ + String callOperator() default ""; +} diff --git a/imgui-binding/src/main/java/imgui/binding/annotation/ExcludedSource.java b/imgui-binding/src/main/java/imgui/binding/annotation/ExcludedSource.java new file mode 100644 index 0000000..dcdcc3e --- /dev/null +++ b/imgui-binding/src/main/java/imgui/binding/annotation/ExcludedSource.java @@ -0,0 +1,12 @@ +package imgui.binding.annotation; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * This annotation is used as a marker to exclude source code from the final binding generation. + */ +@ExcludedSource +@Retention(RetentionPolicy.SOURCE) +public @interface ExcludedSource { +} diff --git a/imgui-binding/src/main/java/imgui/binding/annotation/OptArg.java b/imgui-binding/src/main/java/imgui/binding/annotation/OptArg.java new file mode 100644 index 0000000..c413dc7 --- /dev/null +++ b/imgui-binding/src/main/java/imgui/binding/annotation/OptArg.java @@ -0,0 +1,26 @@ +package imgui.binding.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Used in conjunction with {@link BindingMethod} to indicate that the generated method parameter is optional. + */ +@ExcludedSource +@Target(ElementType.PARAMETER) +@Retention(RetentionPolicy.SOURCE) +public @interface OptArg { + /** + * Used to define this default value. An additional method is generated without the annotated parameter on the + * Java side, automatically passing the value specified in `callValue` to the native method. + *

Constraints: + *

    + *
  • The `callValue` field should not be used on parameters that precede other + * optional parameters of the same type to avoid type collision.
  • + *
  • Ensure that the value in `callValue` is compatible with the parameter type.
  • + *
+ */ + String callValue() default ""; +} diff --git a/imgui-binding/src/main/java/imgui/binding/annotation/ReturnValue.java b/imgui-binding/src/main/java/imgui/binding/annotation/ReturnValue.java new file mode 100644 index 0000000..1fff696 --- /dev/null +++ b/imgui-binding/src/main/java/imgui/binding/annotation/ReturnValue.java @@ -0,0 +1,32 @@ +package imgui.binding.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Provides an additional metadata for the return value. + */ +@ExcludedSource +@Target({ElementType.METHOD, ElementType.FIELD}) +@Retention(RetentionPolicy.SOURCE) +public @interface ReturnValue { + /** + * When provided, value returned at the JNI side will have an additional prefix. + * Helpfully to do type casts etc. + */ + String callPrefix() default ""; + + /** + * When provided, value returned at the JNI side will have an additional suffix. + * Helpfully to call additional methods. + */ + String callSuffix() default ""; + + /** + * When true, returned struct pointer will be passed to the static field. + * Should be used for global and immutable by their nature structs. + */ + boolean isStatic() default false; +} diff --git a/imgui-binding/src/main/java/imgui/binding/annotation/TypeArray.java b/imgui-binding/src/main/java/imgui/binding/annotation/TypeArray.java new file mode 100644 index 0000000..1bac818 --- /dev/null +++ b/imgui-binding/src/main/java/imgui/binding/annotation/TypeArray.java @@ -0,0 +1,24 @@ +package imgui.binding.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Provides a metadata for the primitive array type value. + */ +@ExcludedSource +@Retention(RetentionPolicy.SOURCE) +@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER}) +public @interface TypeArray { + /** + * Array type. + */ + String type(); + + /** + * Array size. + */ + String size(); +} diff --git a/imgui-binding/src/main/java/imgui/extension/imguifiledialog/ImGuiFileDialog.java b/imgui-binding/src/main/java/imgui/extension/imguifiledialog/ImGuiFileDialog.java index 418558d..cae606d 100644 --- a/imgui-binding/src/main/java/imgui/extension/imguifiledialog/ImGuiFileDialog.java +++ b/imgui-binding/src/main/java/imgui/extension/imguifiledialog/ImGuiFileDialog.java @@ -1,41 +1,43 @@ package imgui.extension.imguifiledialog; +import imgui.ImVec2; +import imgui.binding.annotation.ArgValue; +import imgui.binding.annotation.BindingMethod; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.OptArg; +import imgui.binding.annotation.ReturnValue; import imgui.extension.imguifiledialog.callback.ImGuiFileDialogPaneFun; import java.util.HashMap; /** * ImGuiFileDialog extension for ImGui - * Repo: https://github.com/aiekick/ImGuiFileDialog + * Repo: https://github.com/aiekick/ImGuiFileDialog */ +@BindingSource(callPtr = "ImGuiFileDialog::Instance()", callOperator = "->") public final class ImGuiFileDialog { - private ImGuiFileDialog() { - } /*JNI #include "_imguifiledialog.h" - jobject imgfdPaneFunCallback = NULL; - const void paneFunCallback(const char* filter, void* user_data, bool* can_we_continue) { - if (imgfdPaneFunCallback != NULL) { - JNIEnv* env = Jni::GetEnv(); - std::string vKey = ImGuiFileDialog::Instance()->GetOpenedKey(); - jlong ret_user_datas = reinterpret_cast(user_data); - Jni::CallImGuiFileDialogPaneFun(env, imgfdPaneFunCallback, filter, ret_user_datas, *can_we_continue); + static auto PaneFunCallback(JNIEnv* env, jobject fn) { + static jobject cb = NULL; + if (cb != NULL) { + env->DeleteGlobalRef(cb); } + cb = env->NewGlobalRef(fn); + return [](const char* filter, void* userData, bool* canWeContinue) { + if (cb != NULL) { + Jni::CallImGuiFileDialogPaneFun(Jni::GetEnv(), cb, filter, reinterpret_cast(userData), *canWeContinue); + } + }; } - - #define IMGFD_PANE_FUN_METHOD_TMPL()\ - if (imgfdPaneFunCallback != NULL) {\ - env->DeleteGlobalRef(imgfdPaneFunCallback);\ - }\ - imgfdPaneFunCallback = env->NewGlobalRef(vSidePane); */ /** - * open simple dialog (path and fileName can be specified) + * Open simple dialog (path and fileName can be specified) * * @param vKey key dialog * @param vTitle title @@ -46,31 +48,57 @@ public final class ImGuiFileDialog { * @param vUserDatas user datas (can be retrieved in pane) * @param vFlags ImGuiFileDialogFlags */ - public static native void openDialog(String vKey, String vTitle, String vFilters, String vPath, String vFileName, - int vCountSelectionMax, long vUserDatas, int vFlags); /*MANUAL + @BindingMethod + public static native void OpenDialog(String vKey, String vTitle, String vFilters, String vPath, String vFileName, @OptArg int vCountSelectionMax, @OptArg @ArgValue(reinterpretCast = "void*") long vUserDatas, @OptArg int vFlags); - char* vKey = (char*)env->GetStringUTFChars(obj_vKey, 0); - char* vTitle = (char*)env->GetStringUTFChars(obj_vTitle, 0); - char* vPath = (char*)env->GetStringUTFChars(obj_vPath, 0); - char* vFileName = (char*)env->GetStringUTFChars(obj_vFileName, 0); + /** + * Open simple dialog (path and filename are obtained from filePathName) + * + * @param vKey key dialog + * @param vTitle title + * @param vFilters filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName file path name (will be decompsoed in path and fileName) + * @param vCountSelectionMax count selection max + * @param vUserDatas user datas (can be retrieved in pane) + * @param vFlags ImGuiFileDialogFlags + */ + @BindingMethod + public static native void OpenDialog(String vKey, String vTitle, String vFilters, String vFilePathName, @OptArg int vCountSelectionMax, @OptArg @ArgValue(reinterpretCast = "void*") long vUserDatas, @OptArg int vFlags); - if (env->IsSameObject(obj_vFilters, NULL)) { - ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, nullptr, vPath, vFileName, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); - } else { - char* vFilters = (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); - ImGuiFileDialog::Instance()->OpenDialog(vKey, vTitle, vFilters, vPath, vFileName, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); - env->ReleaseStringUTFChars(obj_vFilters, vFilters); - } + /** + * Open dialog with custom right pane (path and fileName can be specified) + * + * @param vKey key dialog + * @param vTitle title + * @param vFilters filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vPath path + * @param vFileName default file name + * @param vSidePane side pane + * @param vCountSelectionMax count selection max + * @param vUserDatas user datas (can be retrieved in pane) + * @param vFlags ImGuiFileDialogFlags + */ + @BindingMethod + public static native void OpenDialog(String vKey, String vTitle, String vFilters, String vPath, String vFileName, @ArgValue(callValue = "PaneFunCallback(env, vSidePane)") ImGuiFileDialogPaneFun vSidePane, @OptArg(callValue = "250.0f") float vSidePaneWidth, @OptArg int vCountSelectionMax, @OptArg @ArgValue(reinterpretCast = "void*") long vUserDatas, @OptArg int vFlags); - env->ReleaseStringUTFChars(obj_vKey, vKey); - env->ReleaseStringUTFChars(obj_vTitle, vTitle); - env->ReleaseStringUTFChars(obj_vPath, vPath); - env->ReleaseStringUTFChars(obj_vFileName, vFileName); - */ + /** + * Open dialog with custom right pane (path and filename are obtained from filePathName) + * + * @param vKey key dialog + * @param vTitle title + * @param vFilters filters (in comma separated form i.e. ".png,.jpg" or ".*") or null for directories + * @param vFilePathName file path name (will be decompsoed in path and fileName) + * @param vSidePane side pane + * @param vCountSelectionMax count selection max + * @param vUserDatas user datas (can be retrieved in pane) + * @param vFlags ImGuiFileDialogFlags + */ + @BindingMethod + public static native void OpenDialog(String vKey, String vTitle, String vFilters, String vFilePathName, @ArgValue(callValue = "PaneFunCallback(env, vSidePane)") ImGuiFileDialogPaneFun vSidePane, @OptArg(callValue = "250.0f") float vSidePaneWidth, @OptArg int vCountSelectionMax, @OptArg @ArgValue(reinterpretCast = "void*") long vUserDatas, @OptArg int vFlags); /** - * open simple modal (path and fileName can be specified) + * Open simple modal (path and fileName can be specified) * * @param vKey key dialog * @param vTitle title @@ -81,27 +109,8 @@ public final class ImGuiFileDialog { * @param vUserDatas user datas (can be retrieved in pane) * @param vFlags ImGuiFileDialogFlags */ - public static native void openModal(String vKey, String vTitle, String vFilters, String vPath, String vFileName, - int vCountSelectionMax, long vUserDatas, int vFlags); /*MANUAL - char* vKey = (char*)env->GetStringUTFChars(obj_vKey, 0); - char* vTitle = (char*)env->GetStringUTFChars(obj_vTitle, 0); - char* vPath = (char*)env->GetStringUTFChars(obj_vPath, 0); - char* vFileName = (char*)env->GetStringUTFChars(obj_vFileName, 0); - - if (env->IsSameObject(obj_vFilters, NULL)) { - ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, nullptr, vPath, vFileName, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); - } else { - char* vFilters = (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); - ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vPath, vFileName, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); - env->ReleaseStringUTFChars(obj_vFilters, vFilters); - } - - env->ReleaseStringUTFChars(obj_vKey, vKey); - env->ReleaseStringUTFChars(obj_vTitle, vTitle); - env->ReleaseStringUTFChars(obj_vPath, vPath); - env->ReleaseStringUTFChars(obj_vFileName, vFileName); - */ - + @BindingMethod + public static native void OpenModal(String vKey, String vTitle, String vFilters, String vPath, String vFileName, @OptArg int vCountSelectionMax, @OptArg @ArgValue(reinterpretCast = "void*") long vUserDatas, @OptArg int vFlags); /** * open simple modal (path and filename are obtained from filePathName) @@ -114,28 +123,13 @@ public final class ImGuiFileDialog { * @param vUserDatas user datas (can be retrieved in pane) * @param vFlags ImGuiFileDialogFlags */ - public static native void openModal(String vKey, String vTitle, String vFilters, String vFilePathName, - int vCountSelectionMax, long vUserDatas, int vFlags); /*MANUAL - char* vKey = (char*)env->GetStringUTFChars(obj_vKey, 0); - char* vTitle = (char*)env->GetStringUTFChars(obj_vTitle, 0); - char* vFilePathName = (char*)env->GetStringUTFChars(obj_vFilePathName, 0); - - if (env->IsSameObject(obj_vFilters, NULL)) { - ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, nullptr, vFilePathName, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); - } else { - char* vFilters = (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); - ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vFilePathName, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); - env->ReleaseStringUTFChars(obj_vFilters, vFilters); - } - - env->ReleaseStringUTFChars(obj_vKey, vKey); - env->ReleaseStringUTFChars(obj_vTitle, vTitle); - env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); - */ + @BindingMethod + public static native void OpenModal(String vKey, String vTitle, String vFilters, String vFilePathName, @OptArg int vCountSelectionMax, @OptArg @ArgValue(reinterpretCast = "void*") long vUserDatas, @OptArg int vFlags); + //, @ArgValue(callValue = "PaneFunCallback(env, vSidePane)") ImGuiFileDialogPaneFun vSidePane, @OptArg(callValue = "250.0f") float vSidePaneWidth /** - * open modal with custom right pane (path and fileName can be specified) + * Open modal with custom right pane (path and fileName can be specified) * * @param vKey key dialog * @param vTitle title @@ -148,32 +142,11 @@ public final class ImGuiFileDialog { * @param vUserDatas user datas (can be retrieved in pane) * @param vFlags ImGuiFileDialogFlags */ - public static native void openModal(String vKey, String vTitle, String vFilters, String vPath, String vFileName, ImGuiFileDialogPaneFun vSidePane, - float vSidePaneWidth, int vCountSelectionMax, long vUserDatas, int vFlags); /*MANUAL - IMGFD_PANE_FUN_METHOD_TMPL() - - char* vKey = (char*)env->GetStringUTFChars(obj_vKey, 0); - char* vTitle = (char*)env->GetStringUTFChars(obj_vTitle, 0); - char* vPath = (char*)env->GetStringUTFChars(obj_vPath, 0); - char* vFileName = (char*)env->GetStringUTFChars(obj_vFileName, 0); - - if (env->IsSameObject(obj_vFilters, NULL)) { - ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, nullptr, vPath, vFileName, paneFunCallback, vSidePaneWidth, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); - } else { - char* vFilters = (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); - ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vPath, vFileName, paneFunCallback, vSidePaneWidth, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); - env->ReleaseStringUTFChars(obj_vFilters, vFilters); - } - - env->ReleaseStringUTFChars(obj_vKey, vKey); - env->ReleaseStringUTFChars(obj_vTitle, vTitle); - env->ReleaseStringUTFChars(obj_vPath, vPath); - env->ReleaseStringUTFChars(obj_vFileName, vFileName); - */ - + @BindingMethod + public static native void OpenModal(String vKey, String vTitle, String vFilters, String vPath, String vFileName, @ArgValue(callValue = "PaneFunCallback(env, vSidePane)") ImGuiFileDialogPaneFun vSidePane, @OptArg(callValue = "250.0f") float vSidePaneWidth, @OptArg int vCountSelectionMax, @OptArg @ArgValue(reinterpretCast = "void*") long vUserDatas, @OptArg int vFlags); /** - * open modal with custom right pane (path and filename are obtained from filePathName) + * Open modal with custom right pane (path and filename are obtained from filePathName) * * @param vKey key dialog * @param vTitle title @@ -185,102 +158,56 @@ public final class ImGuiFileDialog { * @param vUserDatas user datas (can be retrieved in pane) * @param vFlags ImGuiFileDialogFlags */ - public static native void openModal(String vKey, String vTitle, String vFilters, String vFilePathName, ImGuiFileDialogPaneFun vSidePane, - float vSidePaneWidth, int vCountSelectionMax, long vUserDatas, int vFlags); /*MANUAL - IMGFD_PANE_FUN_METHOD_TMPL() - - char* vKey = (char*)env->GetStringUTFChars(obj_vKey, 0); - char* vTitle = (char*)env->GetStringUTFChars(obj_vTitle, 0); - char* vFilePathName = (char*)env->GetStringUTFChars(obj_vFilePathName, 0); - - if (env->IsSameObject(obj_vFilters, NULL)) { - ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, nullptr, vFilePathName, paneFunCallback, vSidePaneWidth, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); - } else { - char* vFilters = (char*)env->GetStringUTFChars(obj_vFilters, JNI_FALSE); - ImGuiFileDialog::Instance()->OpenModal(vKey, vTitle, vFilters, vFilePathName, paneFunCallback, vSidePaneWidth, vCountSelectionMax, reinterpret_cast(vUserDatas), vFlags); - env->ReleaseStringUTFChars(obj_vFilters, vFilters); - } - - env->ReleaseStringUTFChars(obj_vKey, vKey); - env->ReleaseStringUTFChars(obj_vTitle, vTitle); - env->ReleaseStringUTFChars(obj_vFilePathName, vFilePathName); - */ + @BindingMethod + public static native void OpenModal(String vKey, String vTitle, String vFilters, String vFilePathName, @ArgValue(callValue = "PaneFunCallback(env, vSidePane)") ImGuiFileDialogPaneFun vSidePane, @OptArg(callValue = "250.0f") float vSidePaneWidth, @OptArg int vCountSelectionMax, @OptArg @ArgValue(reinterpretCast = "void*") long vUserDatas, @OptArg int vFlags); /** * Display / Close dialog form * Display the dialog. return true if a result was obtained (Ok or not) * - * @param vKey key dialog to display (if not the same key as defined by OpenDialog/Modal => no opening) - * @param vFlags ImGuiWindowFlags - * @param vMinSizeX minimal size constraint for the ImGuiWindow - * @param vMinSizeY minimal size constraint for the ImGuiWindow - * @param vMaxSizeX maximal size constraint for the ImGuiWindow - * @param vMaxSizeY maximal size constraint for the ImGuiWindow + * @param vKey key dialog to display (if not the same key as defined by OpenDialog/Modal => no opening) + * @param vFlags ImGuiWindowFlags + * @param vMinSize minimal size constraint for the ImGuiWindow + * @param vMaxSize maximal size constraint for the ImGuiWindow * @return true if a result was obtained (Ok or not) */ - public static native boolean display(String vKey, int vFlags, float vMinSizeX, float vMinSizeY, float vMaxSizeX, float vMaxSizeY); /* - return ImGuiFileDialog::Instance()->Display(vKey, vFlags, ImVec2(vMinSizeX, vMinSizeY), ImVec2(vMaxSizeX, vMaxSizeY)); - */ + @BindingMethod + public static native boolean Display(String vKey, @OptArg int vFlags, @OptArg ImVec2 vMinSize, @OptArg ImVec2 vMaxSize); /** - * close dialog + * Close dialog */ - public static native void close(); /* - ImGuiFileDialog::Instance()->Close(); - */ + @BindingMethod + public static native void Close(); /** - * say if the dialog key was already opened this frame + * Say if the dialog key was already opened this frame * * @param vKey key dialog * @return if the dialog key was already opened this frame */ - public static native boolean wasOpenedThisFrame(String vKey); /* - return ImGuiFileDialog::Instance()->WasOpenedThisFrame(vKey); - */ - + @BindingMethod + public static native boolean WasOpenedThisFrame(@OptArg String vKey); /** - * say if the dialog was already opened this frame - * - * @return if the dialog was already opened this frame - */ - public static native boolean wasOpenedThisFrame(); /* - return ImGuiFileDialog::Instance()->WasOpenedThisFrame(); - */ - - - /** - * say if the key is opened + * Say if the key is opened * * @param vKey key dialog * @return if the key is opened */ - public static native boolean isOpened(String vKey); /* - return ImGuiFileDialog::Instance()->IsOpened(vKey); - */ - + @BindingMethod + public static native boolean IsOpened(@OptArg String vKey); /** - * say if the dialog is opened somewhere - * - * @return if the dialog is opened somewhere - */ - public static native boolean isOpened(); /* - return ImGuiFileDialog::Instance()->IsOpened(); - */ - - - /** - * return the dialog key who is opened, return nothing if not opened + * Return the dialog key who is opened, return nothing if not opened * * @return the dialog key who is opened or nothing is not opened */ - public static native String getOpenedKey(); /* - return env->NewStringUTF(ImGuiFileDialog::Instance()->GetOpenedKey().c_str()); - */ + @BindingMethod + @ReturnValue(callSuffix = ".c_str()") + public static native String GetOpenedKey(); /** @@ -288,9 +215,8 @@ public final class ImGuiFileDialog { * * @return True if the dialog closed with Ok result, or false with cancel result */ - public static native boolean isOk(); /* - return ImGuiFileDialog::Instance()->IsOk(); - */ + @BindingMethod + public static native boolean IsOk(); /** @@ -301,29 +227,31 @@ public final class ImGuiFileDialog { * * @return Map of FileName to FilePathName in key,value pair */ - public static native HashMap getSelection(); /* - //Get the map from ImGuiFileDialog + public static HashMap getSelection() { + return nGetSelection(); + } + + private static native HashMap nGetSelection(); /* + // Get the map from ImGuiFileDialog std::map mMap = ImGuiFileDialog::Instance()->GetSelection(); env->PushLocalFrame(mMap.size() * 2); // Expands stack size to not overflow - //Get reference to java's HashMap + // Get reference to java's HashMap jclass hashMapClass = env->FindClass("java/util/HashMap"); jmethodID hashMapInit = env->GetMethodID(hashMapClass, "", "(I)V"); jobject hashMapObj = env->NewObject(hashMapClass, hashMapInit, mMap.size()); - jmethodID hashMapPut = env->GetMethodID(hashMapClass, "put", - "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); + jmethodID hashMapPut = env->GetMethodID(hashMapClass, "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); //Copy key,value pairs from map to hashmap - for (auto it : mMap) - { + for (auto it : mMap) { env->CallObjectMethod(hashMapObj, hashMapPut, env->NewStringUTF(it.first.c_str()), env->NewStringUTF(it.second.c_str()) - ); + ); } - env->PopLocalFrame(hashMapObj); //Cleanup stack + env->PopLocalFrame(hashMapObj); // Cleanup stack return hashMapObj; */ @@ -332,50 +260,47 @@ public final class ImGuiFileDialog { /** * Save File behavior : will always return the content of the field with current filter extention and current path */ - public static native String getFilePathName(); /* - return env->NewStringUTF(ImGuiFileDialog::Instance()->GetFilePathName().c_str()); - */ - + @BindingMethod + @ReturnValue(callSuffix = ".c_str()") + public static native String GetFilePathName(); /** * Save File behavior : will always return the content of the field with current filter extension * * @return the content of the field with current filter extension */ - public static native String getCurrentFileName(); /* - return env->NewStringUTF(ImGuiFileDialog::Instance()->GetCurrentFileName().c_str()); - */ - + @BindingMethod + @ReturnValue(callSuffix = ".c_str()") + public static native String GetCurrentFileName(); /** - * will return current path + * Will return current path * * @return the current path */ - public static native String getCurrentPath(); /* - return env->NewStringUTF(ImGuiFileDialog::Instance()->GetCurrentPath().c_str()); - */ - + @BindingMethod + @ReturnValue(callSuffix = ".c_str()") + public static native String GetCurrentPath(); /** - * will return selected filter + * Will return selected filter * * @return the selected filter */ - public static native String getCurrentFilter(); /* - return env->NewStringUTF(ImGuiFileDialog::Instance()->GetCurrentFilter().c_str()); - */ + @BindingMethod + @ReturnValue(callSuffix = ".c_str()") + public static native String GetCurrentFilter(); /** - * will return user datas sent with Open Dialog/Modal + * Will return user datas sent with Open Dialog/Modal *

* Can be used to pass a long value to the dialog and get the value back. * This long value can be a pointer to a native data structure. * * @return user datas sent with Open Dialog/Modal */ - public static native long getUserDatas(); /* - return reinterpret_cast(ImGuiFileDialog::Instance()->GetUserDatas()); - */ + @BindingMethod + @ReturnValue(callPrefix = "(intptr_t)") + public static native long GetUserDatas(); } diff --git a/imgui-binding/src/main/java/imgui/extension/imguifiledialog/callback/ImGuiFileDialogPaneFun.java b/imgui-binding/src/main/java/imgui/extension/imguifiledialog/callback/ImGuiFileDialogPaneFun.java index f9745ea..9bd2f51 100644 --- a/imgui-binding/src/main/java/imgui/extension/imguifiledialog/callback/ImGuiFileDialogPaneFun.java +++ b/imgui-binding/src/main/java/imgui/extension/imguifiledialog/callback/ImGuiFileDialogPaneFun.java @@ -1,5 +1,5 @@ package imgui.extension.imguifiledialog.callback; public abstract class ImGuiFileDialogPaneFun { - public abstract void paneFun(String filter, long userDatas, boolean canContinue); + public abstract void accept(String filter, long userDatas, boolean canContinue); } diff --git a/imgui-binding/src/main/java/imgui/extension/imguifiledialog/flag/ImGuiFileDialogFlags.java b/imgui-binding/src/main/java/imgui/extension/imguifiledialog/flag/ImGuiFileDialogFlags.java index fab4759..a92f226 100644 --- a/imgui-binding/src/main/java/imgui/extension/imguifiledialog/flag/ImGuiFileDialogFlags.java +++ b/imgui-binding/src/main/java/imgui/extension/imguifiledialog/flag/ImGuiFileDialogFlags.java @@ -1,40 +1,13 @@ package imgui.extension.imguifiledialog.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class ImGuiFileDialogFlags { - private ImGuiFileDialogFlags() { - } - public static final int None = 0; - - /** - * show confirm to overwrite dialog - */ - public static final int ConfirmOverwrite = (1 << 0); - - /** - * dont show hidden file (file starting with a .) - */ - public static final int DontShowHiddenFiles = (1 << 1); - - /** - * disable the create directory button - */ - public static final int DisableCreateDirectoryButton = (1 << 2); - - /** - * hide column file type - */ - public static final int HideColumnType = (1 << 3); - - /** - * hide column file size - */ - public static final int HideColumnSize = (1 << 4); - - /** - * hide column file date - */ - public static final int HideColumnDate = (1 << 5); + @BindingAstEnum(file = "ast-ImGuiFileDialog.json", qualType = "ImGuiFileDialogFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/imguiknobs/ImGuiKnobs.java b/imgui-binding/src/main/java/imgui/extension/imguiknobs/ImGuiKnobs.java index be037ab..82bb406 100644 --- a/imgui-binding/src/main/java/imgui/extension/imguiknobs/ImGuiKnobs.java +++ b/imgui-binding/src/main/java/imgui/extension/imguiknobs/ImGuiKnobs.java @@ -1,5 +1,8 @@ package imgui.extension.imguiknobs; +import imgui.binding.annotation.BindingMethod; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.OptArg; import imgui.type.ImFloat; import imgui.type.ImInt; @@ -7,60 +10,46 @@ import imgui.type.ImInt; * ImGuiKnobs extension for ImGui * Repo: https://github.com/altschuler/imgui-knobs */ +@BindingSource public final class ImGuiKnobs { - private ImGuiKnobs() { - throw new UnsupportedOperationException(); } - /*JNI + /*JNI #include "_imguiknobs.h" - */ + */ /** * Create a knob with float values * - * @param label knob Label - * @param pValue knob value - * @param minValue minimum value - * @param maxValue maximum value - * @param speed speed of the knob - * @param format string format - * @param variant ImGuiKnobVariant - * @param size size of the knob - * @param flags ImGuiKnobFlags - * @param steps determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + * @param label knob Label + * @param pValue knob value + * @param vMin minimum value + * @param vMax maximum value + * @param speed speed of the knob + * @param format string format + * @param variant ImGuiKnobVariant + * @param size size of the knob + * @param flags ImGuiKnobFlags + * @param steps determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. */ - - public static boolean knobFloat(final String label, final ImFloat pValue, final float minValue, final float maxValue, final float speed, final String format, final int variant, final float size, final int flags, final int steps) { - return nKnob(label, pValue.getData(), minValue, maxValue, speed, format, variant, size, flags, steps); - } - - private static native boolean nKnob(String label, float[] pValue, float minValue, float maxValue, float speed, String format, int variant, float size, int flags, int steps); /* - return ImGuiKnobs::Knob(label, pValue, minValue, maxValue, speed, format, (ImGuiKnobVariant)variant, size, (ImGuiKnobFlags)flags, steps); - */ + @BindingMethod + public static native boolean Knob(String label, ImFloat pValue, float vMin, float vMax, @OptArg(callValue = "0") float speed, @OptArg(callValue = "NULL") String format, @OptArg(callValue = "ImGuiKnobVariant_Tick") int variant, @OptArg(callValue = "0") float size, @OptArg(callValue = "0") int flags, @OptArg int steps); /** * Create a knob with int values * - * @param label knob Label - * @param pValue knob value - * @param minValue minimum value - * @param maxValue maximum value - * @param speed speed of the knob - * @param format string format - * @param variant ImGuiKnobVariant - * @param size Size for the knob - * @param flags ImGuiKnobFlags - * @param steps determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. + * @param label knob Label + * @param pValue knob value + * @param vMin minimum value + * @param vMax maximum value + * @param speed speed of the knob + * @param format string format + * @param variant ImGuiKnobVariant + * @param size Size for the knob + * @param flags ImGuiKnobFlags + * @param steps determines the number of steps draw, it is only used for the ImGuiKnobVariant_Stepped variant. */ - - public static boolean knobInt(final String label, final ImInt pValue, final int minValue, final int maxValue, final float speed, final String format, final int variant, final float size, final int flags, final int steps) { - return nKnobInt(label, pValue.getData(), minValue, maxValue, speed, format, variant, size, flags, steps); - } - - private static native boolean nKnobInt(String label, int[] pValue, int minValue, int maxValue, float speed, String format, int variant, float size, int flags, int steps); /* - return ImGuiKnobs::KnobInt(label, pValue, minValue, maxValue, speed, format, (ImGuiKnobVariant)variant, size, (ImGuiKnobFlags)flags, steps); - */ - + @BindingMethod(callName = "KnobInt") + public static native boolean Knob(String label, ImInt pValue, int vMin, int vMax, @OptArg(callValue = "0") float speed, @OptArg(callValue = "NULL") String format, @OptArg(callValue = "ImGuiKnobVariant_Tick") int variant, @OptArg(callValue = "0") float size, @OptArg(callValue = "0") int flags, @OptArg int steps); } diff --git a/imgui-binding/src/main/java/imgui/extension/imguiknobs/flag/ImGuiKnobFlags.java b/imgui-binding/src/main/java/imgui/extension/imguiknobs/flag/ImGuiKnobFlags.java index 9317740..94028c9 100644 --- a/imgui-binding/src/main/java/imgui/extension/imguiknobs/flag/ImGuiKnobFlags.java +++ b/imgui-binding/src/main/java/imgui/extension/imguiknobs/flag/ImGuiKnobFlags.java @@ -1,14 +1,15 @@ package imgui.extension.imguiknobs.flag; -public final class ImGuiKnobFlags { +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; +@BindingSource +public final class ImGuiKnobFlags { private ImGuiKnobFlags() { } - public static final int NONE = 0; - public static final int NO_TITLE = 1; - public static final int NO_INPUT = 1 << 1; - public static final int VALUE_TOOLTIP = 1 << 2; - public static final int DRAG_HORIZONTAL = 1 << 3; + public static final int None = 0; + @BindingAstEnum(file = "ast-imgui-knobs.json", qualType = "ImGuiKnobFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/imguiknobs/flag/ImGuiKnobVariant.java b/imgui-binding/src/main/java/imgui/extension/imguiknobs/flag/ImGuiKnobVariant.java index 7d18488..245406d 100644 --- a/imgui-binding/src/main/java/imgui/extension/imguiknobs/flag/ImGuiKnobVariant.java +++ b/imgui-binding/src/main/java/imgui/extension/imguiknobs/flag/ImGuiKnobVariant.java @@ -1,14 +1,13 @@ package imgui.extension.imguiknobs.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class ImGuiKnobVariant { private ImGuiKnobVariant() { } - public static final int TICK = 1; - public static final int DOT = 1 << 1; - public static final int WIPER = 1 << 2; - public static final int WIPER_ONLY = 1 << 3; - public static final int WIPER_DOT = 1 << 4; - public static final int STEPPED = 1 << 5; - public static final int SPACE = 1 << 6; + @BindingAstEnum(file = "ast-imgui-knobs.json", qualType = "ImGuiKnobVariant_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/imguizmo/ImGuizmo.java b/imgui-binding/src/main/java/imgui/extension/imguizmo/ImGuizmo.java index d44826d..0f5cc6d 100644 --- a/imgui-binding/src/main/java/imgui/extension/imguizmo/ImGuizmo.java +++ b/imgui-binding/src/main/java/imgui/extension/imguizmo/ImGuizmo.java @@ -1,120 +1,90 @@ package imgui.extension.imguizmo; import imgui.ImDrawList; -import imgui.ImGui; +import imgui.ImVec2; +import imgui.binding.annotation.ArgValue; +import imgui.binding.annotation.BindingMethod; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.OptArg; +import imgui.internal.ImGuiContext; +@BindingSource public final class ImGuizmo { - private static final float[] MATRICES = new float[4 * 16]; //for drawCubes() - private ImGuizmo() { } /*JNI #include "_imguizmo.h" - */ - - private static native void nEnabled(boolean enabled); /* - ImGuizmo::Enable(enabled); - */ + */ /** - * Enable/Disable the gizmo. + * Call inside your own window and before Manipulate() in order to draw gizmo to that window. + * Or pass a specific ImDrawList to draw to (e.g. ImGui::GetForegroundDrawList()). */ - public static void setEnabled(final boolean isEnabled) { - nEnabled(isEnabled); - } - - private static native boolean nIsUsing(); /* - return ImGuizmo::IsUsing(); - */ + @BindingMethod(callName = "SetDrawlist") + public static native void SetDrawList(@OptArg ImDrawList drawList); /** - * Checks to see if we're using the Gizmo. + * Call BeginFrame right after ImGui_XXXX_NewFrame(); */ - public static boolean isUsing() { - return nIsUsing(); - } - - private static native boolean nIsOver(); /* - return ImGuizmo::IsOver(); - */ + @BindingMethod + public static native void BeginFrame(); /** - * Checks to see if we're over the Gizmo. + * This is necessary because when imguizmo is compiled into a dll, and imgui into another + * Globals are not shared between them. + * More details at https://stackoverflow.com/questions/19373061/what-happens-to-global-and-static-variables-in-a-shared-library-when-it-is-dynam + * Expose method to set imgui context */ - public static boolean isOver() { - return nIsOver(); - } - - private static native void nSetDrawList(long pointer); /* - ImGuizmo::SetDrawlist((ImDrawList*)pointer); - */ + @BindingMethod + public static native void SetImGuiContext(ImGuiContext ctx); /** - * Setting the draw list of the given Gizmo. - * - * @param drawList the target drawlist + * Return true if mouse cursor is over any gizmo control (axis, plan or screen component) */ - public static void setDrawList(final ImDrawList drawList) { - nSetDrawList(drawList.ptr); - } + @BindingMethod + public static native boolean IsOver(); /** - * Setting the default window drawlist. + * Return true if mouse IsOver or if the gizmo is in moving state */ - public static void setDrawList() { - setDrawList(ImGui.getWindowDrawList()); - } + @BindingMethod + public static native boolean IsUsing(); /** - * Starts the next frame for the Gizmo. - * Call this after you've called ImGui.beginFrame(). + * Enable/disable the gizmo. Stay in the state until next call to Enable. + * Gizmo is rendered with gray half transparent color when disabled */ - public static native void beginFrame(); /* - ImGuizmo::BeginFrame(); - */ - - private static native void nDecomposeMatrixToComponents(float[] matrix, float[] translation, float[] rotation, float[] scale); /* - ImGuizmo::DecomposeMatrixToComponents(matrix, translation, rotation, scale); - */ + @BindingMethod + public static native void Enable(boolean enable); /** * Helper function for manually editing Translation/Rotation/Scale with an input float. * Translation, Rotation and Scale float points to 3 floats each. * Angles are in degrees (more suitable for human editing). * - * @param modelMatrix the model matrix + * @param matrix the model matrix * @param translation the model translation * @param rotation the model rotation * @param scale the model scale * @see Reference Page */ - public static void decomposeMatrixToComponents(final float[] modelMatrix, final float[] translation, final float[] rotation, final float[] scale) { - nDecomposeMatrixToComponents(modelMatrix, translation, rotation, scale); - } - - private static native void nRecomposeMatrixFromComponents(float[] matrix, float[] translation, float[] rotation, float[] scale); /* - ImGuizmo::RecomposeMatrixFromComponents(translation, rotation, scale, matrix); - */ + @BindingMethod + public static native void DecomposeMatrixToComponents(float[] matrix, float[] translation, float[] rotation, float[] scale); /** * Helper function for manually editing Translation/Rotation/Scale with an input float. * Translation, Rotation and Scale float points to 3 floats each. * Angles are in degrees (more suitable for human editing). * - * @param modelMatrix the model matrix * @param translation the model translation * @param rotation the model rotation * @param scale the model scale + * @param matrix the model matrix * @see Reference Page */ - public static void recomposeMatrixFromComponents(final float[] modelMatrix, final float[] translation, final float[] rotation, final float[] scale) { - nRecomposeMatrixFromComponents(modelMatrix, translation, rotation, scale); - } - - public static native void nSetRect(float x, float y, float width, float height); /* - ImGuizmo::SetRect(x, y, width, height); - */ + @BindingMethod + public static native void RecomposeMatrixFromComponents(float[] translation, float[] rotation, float[] scale, float[] matrix); /** * This will set the rect position. @@ -124,49 +94,57 @@ public final class ImGuizmo { * @param width width of the rectangle * @param height height of the rectangle */ - public static void setRect(final float x, final float y, final float width, final float height) { - nSetRect(x, y, width, height); - } - - private static native void nSetOrthographic(boolean ortho); /* - ImGuizmo::SetOrthographic(ortho); - */ + @BindingMethod + public static native void SetRect(float x, float y, float width, float height); /** * Making sure if we're set to ortho or not. */ - public static void setOrthographic(final boolean ortho) { - nSetOrthographic(ortho); - } - - private static native void nDrawCubes(float[] view, float[] projection, float[] matrices, int matrixCount); /* - ImGuizmo::DrawCubes(view, projection, matrices, matrixCount); - */ + @BindingMethod + public static native void SetOrthographic(boolean isOrthographic); /** * Drawing an arbitrary cube in the world. * - * @param view target camera view - * @param projection target camera projection - * @param cubeMatrices cube matrices (max. 4 cubes allowed) + * @param view target camera view + * @param projection target camera projection + * @param matrices cube matrices (max. 4 cubes allowed) */ - public static void drawCubes(final float[] view, final float[] projection, final float[]... cubeMatrices) { - if (cubeMatrices.length > 4) { - throw new IllegalArgumentException("Drawing cubes with ImGuizmo only supports up to 4 cubes because it should only be used for debugging purposes"); + @BindingMethod + public static native void DrawCubes(float[] view, float[] projection, float[] matrices, @ArgValue(callValue = "(int)(env->GetArrayLength(obj_matrices)/16)") Void matrixCount); + + /** + * Drawing an arbitrary cube in the world. + * + * @param view target camera view + * @param projection target camera projection + * @param matrices cube matrices (max. 4 cubes allowed) + * @param matrixCount number of matrices + */ + @BindingMethod + public static native void DrawCubes(float[] view, float[] projection, float[] matrices, int matrixCount); + + /** + * Drawing an arbitrary cube in the world. + * + * @param view target camera view + * @param projection target camera projection + * @param matrices cube matrices (max. 4 cubes allowed) + */ + public static void drawCubes(final float[] view, final float[] projection, final float[]... matrices) { + if (matrices.length > 4) { + throw new IllegalArgumentException("Only up to 4 cubes matrices is supported"); } - for (int i = 0, cubeMatricesLength = cubeMatrices.length; i < cubeMatricesLength; i++) { - final float[] cubeMatrix = cubeMatrices[i]; - System.arraycopy(cubeMatrix, 0, MATRICES, i * cubeMatrix.length, cubeMatrix.length); + final float[] cubeMatrices = new float[matrices.length * 16]; + for (int i = 0, cubeMatricesLength = matrices.length; i < cubeMatricesLength; i++) { + final float[] cubeMatrix = matrices[i]; + System.arraycopy(cubeMatrix, 0, cubeMatrices, i * cubeMatrix.length, cubeMatrix.length); } - nDrawCubes(view, projection, MATRICES, cubeMatrices.length); + drawCubes(view, projection, cubeMatrices, cubeMatrices.length); } - private static native void nDrawGrid(float[] view, float[] projection, float[] matrix, int gridSize); /* - ImGuizmo::DrawGrid(view, projection, matrix, gridSize); - */ - /** * Drawing a grid to the world (should only be used for debugging purposes). * @@ -175,159 +153,59 @@ public final class ImGuizmo { * @param matrix grid matrix * @param gridSize grid size */ - public static void drawGrid(final float[] view, final float[] projection, final float[] matrix, final int gridSize) { - nDrawGrid(view, projection, matrix, gridSize); - } - - private static native void nManipulate(float[] view, float[] projection, int operation, int mode, float[] matrix); /* - ImGuizmo::Manipulate(view, projection, (ImGuizmo::OPERATION) operation, (ImGuizmo::MODE) mode, matrix); - */ - - private static native void nManipulate(float[] view, float[] projection, int operation, int mode, float[] matrix, float[] snap); /* - ImGuizmo::Manipulate(view, projection, (ImGuizmo::OPERATION) operation, (ImGuizmo::MODE) mode, matrix, NULL, snap); - */ - - private static native void nManipulate(float[] view, float[] projection, int operation, int mode, float[] matrix, float[] snap, float[] bounds); /* - ImGuizmo::Manipulate(view, projection, (ImGuizmo::OPERATION) operation, (ImGuizmo::MODE) mode, matrix, NULL, snap, bounds, NULL); - */ - - private static native void nManipulate(float[] view, float[] projection, int operation, int mode, float[] matrix, float[] snap, float[] bounds, float[] boundsSnap); /* - ImGuizmo::Manipulate(view, projection, (ImGuizmo::OPERATION) operation, (ImGuizmo::MODE) mode, matrix, NULL, snap, bounds, boundsSnap); - */ - - private static native void nManipulate(float[] view, float[] projection, int operation, int mode, float[] matrix, float[] deltaMatrix, float[] snap, float[] bounds, float[] boundsSnap); /* - ImGuizmo::Manipulate(view, projection, (ImGuizmo::OPERATION) operation, (ImGuizmo::MODE) mode, matrix, deltaMatrix, snap, bounds, boundsSnap); - */ - - /** - * Manipulating the given model matrix. - * - * @param view target camera view - * @param projection target camera projection - * @param modelMatrix model matrix - * @param operation target operation - * @param mode target mode - */ - public static void manipulate(final float[] view, final float[] projection, final float[] modelMatrix, final int operation, final int mode) { - nManipulate(view, projection, operation, mode, modelMatrix); - } - - /** - * Manipulating the given model matrix with snap feature enabled! - * - * @param view target camera view - * @param projection target camera projection - * @param modelMatrix model matrix - * @param operation target operation - * @param mode target mode - * @param snap snap value - */ - public static void manipulate(final float[] view, final float[] projection, final float[] modelMatrix, final int operation, final int mode, final float[] snap) { - nManipulate(view, projection, operation, mode, modelMatrix, snap); - } - - /** - * Manipulating the given model matrix with snap and bounds feature enabled! - * - * @param view target camera view - * @param projection target camera projection - * @param modelMatrix model matrix - * @param operation target operation - * @param mode target mode - * @param snap snap value - * @param bounds bounds value - */ - public static void manipulate(final float[] view, final float[] projection, final float[] modelMatrix, final int operation, final int mode, final float[] snap, final float[] bounds) { - nManipulate(view, projection, operation, mode, modelMatrix, snap, bounds); - } - - /** - * Manipulating the given model matrix with snap and bounds(snap) feature enabled! - * - * @param view target camera view - * @param projection target camera projection - * @param modelMatrix model matrix - * @param operation target operation - * @param mode target mode - * @param snap snap value - * @param bounds bounds value - * @param boundsSnap bounds snap value - */ - public static void manipulate(final float[] view, final float[] projection, final float[] modelMatrix, final int operation, final int mode, final float[] snap, final float[] bounds, final float[] boundsSnap) { - nManipulate(view, projection, operation, mode, modelMatrix, snap, bounds, boundsSnap); - } + @BindingMethod + public static native void DrawGrid(float[] view, float[] projection, float[] matrix, float gridSize); /** * Manipulating the given model matrix with delta matrix * * @param view target camera view * @param projection target camera projection - * @param modelMatrix model matrix - * @param deltaMatrix delta matrix * @param operation target operation * @param mode target mode + * @param matrix model matrix + * @param deltaMatrix delta matrix * @param snap snap value - * @param bounds bounds value + * @param localBounds bounds value * @param boundsSnap bounds snap value */ - public static void manipulate(final float[] view, final float[] projection, final float[] modelMatrix, final float[] deltaMatrix, final int operation, final int mode, final float[] snap, final float[] bounds, final float[] boundsSnap) { - nManipulate(view, projection, operation, mode, modelMatrix, deltaMatrix, snap, bounds, boundsSnap); - } - - private static native void nViewManipulate(float[] view, float length, float[] position, float[] size, int color); /* - ImGuizmo::ViewManipulate(view, length, ImVec2(position[0], position[1]), ImVec2(size[0], size[1]), (ImU32) color); - */ + @BindingMethod + public static native void Manipulate(float[] view, float[] projection, @ArgValue(staticCast = "ImGuizmo::OPERATION") int operation, @ArgValue(staticCast = "ImGuizmo::MODE") int mode, float[] matrix, @OptArg float[] deltaMatrix, @OptArg float[] snap, @OptArg float[] localBounds, @OptArg float[] boundsSnap); /** * Manipulating the view * - * @param view target camera view - * @param length camera distance/length - * @param position position - * @param size size - * @param color color + * @param view target camera view + * @param length camera distance/length + * @param position position + * @param size size + * @param backgroundColor color */ - public static void viewManipulate(final float[] view, final float length, final float[] position, final float[] size, final int color) { - nViewManipulate(view, length, position, size, color); - } - - private static native void nSetId(int id); /* - ImGuizmo::SetID(id); - */ + @BindingMethod + public static native void ViewManipulate(float[] view, float length, ImVec2 position, ImVec2 size, int backgroundColor); /** * This will update the current id */ - public static void setId(final int id) { - nSetId(id); - } - - private static native boolean nIsOver(int operation); /* - return ImGuizmo::IsOver((ImGuizmo::OPERATION) operation); - */ + @BindingMethod + public static native void SetID(int id); /** - * Checks if we're over the current operation. - * One of {@link imgui.extension.imguizmo.flag.Operation}. + * Return true if the cursor is over the operation's gizmo * * @param operation target */ - public static boolean isOver(final int operation) { - return nIsOver(operation); - } + @BindingMethod + public static native boolean IsOver(@ArgValue(staticCast = "ImGuizmo::OPERATION") int operation); - private static native void nSetGizmoSizeClipSpace(float value); /* - ImGuizmo::SetGizmoSizeClipSpace(value); - */ - - private static native void nAllowAxisFlip(boolean value); /* - ImGuizmo::AllowAxisFlip(value); - */ + @BindingMethod + public static native void SetGizmoSizeClipSpace(float value); /** - * This will update the current axis flip value + * Allow axis to flip. + * When true (default), the guizmo axis flip for better visibility. + * When false, they always stay along the positive world/local axis. */ - public static void setAllowAxisFlip(final boolean value) { - nAllowAxisFlip(value); - } + @BindingMethod + public static native void AllowAxisFlip(boolean value); } diff --git a/imgui-binding/src/main/java/imgui/extension/imguizmo/flag/Mode.java b/imgui-binding/src/main/java/imgui/extension/imguizmo/flag/Mode.java index 1bb345e..adb2ec7 100644 --- a/imgui-binding/src/main/java/imgui/extension/imguizmo/flag/Mode.java +++ b/imgui-binding/src/main/java/imgui/extension/imguizmo/flag/Mode.java @@ -1,9 +1,13 @@ package imgui.extension.imguizmo.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class Mode { private Mode() { } - public static final int LOCAL = 0; - public static final int WORLD = 1; + @BindingAstEnum(file = "ast-ImGuizmo.json", qualType = "ImGuizmo::MODE") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/imguizmo/flag/Operation.java b/imgui-binding/src/main/java/imgui/extension/imguizmo/flag/Operation.java index 7367554..251447a 100644 --- a/imgui-binding/src/main/java/imgui/extension/imguizmo/flag/Operation.java +++ b/imgui-binding/src/main/java/imgui/extension/imguizmo/flag/Operation.java @@ -1,64 +1,18 @@ package imgui.extension.imguizmo.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Needs view and projection matrices. * Matrix parameter is the source matrix (where will be gizmo be drawn) and might be transformed by the function. Return deltaMatrix is optional. * Translation is applied in world space. */ +@BindingSource public final class Operation { private Operation() { } - /** - * Translating X axis - */ - public static final int TRANSLATE_X = 1; - /** - * Translating Y axis - */ - public static final int TRANSLATE_Y = 1 << 1; - /** - * Translating Z axis - */ - public static final int TRANSLATE_Z = 1 << 2; - /** - * Rotating X axis - */ - public static final int ROTATE_X = 1 << 3; - /** - * Rotating Y axis - */ - public static final int ROTATE_Y = 1 << 4; - /** - * Rotating Z axis - */ - public static final int ROTATE_Z = 1 << 5; - /** - * Rotating screen - */ - public static final int ROTATE_SCREEN = 1 << 6; - /** - * Scaling X axis - */ - public static final int SCALE_X = 1 << 7; - /** - * Scaling Y axis - */ - public static final int SCALE_Y = 1 << 8; - /** - * Scaling Z axis - */ - public static final int SCALE_Z = 1 << 9; - /** - * Translating all axis - */ - public static final int TRANSLATE = TRANSLATE_X | TRANSLATE_Y | TRANSLATE_Z; - /** - * Rotating all axis - */ - public static final int ROTATE = ROTATE_X | ROTATE_Y | ROTATE_Z | ROTATE_SCREEN; - /** - * Scaling all axis - */ - public static final int SCALE = SCALE_X | SCALE_Y | SCALE_Z; + @BindingAstEnum(file = "ast-ImGuizmo.json", qualType = "ImGuizmo::OPERATION") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodes.java b/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodes.java index 05809fb..c421771 100644 --- a/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodes.java +++ b/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodes.java @@ -1,7 +1,12 @@ package imgui.extension.imnodes; import imgui.ImVec2; -import imgui.extension.imnodes.flag.ImNodesPinShape; +import imgui.binding.annotation.ArgValue; +import imgui.binding.annotation.BindingMethod; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.OptArg; +import imgui.binding.annotation.ReturnValue; +import imgui.internal.ImGuiContext; import imgui.type.ImBoolean; import imgui.type.ImInt; @@ -11,9 +16,8 @@ import imgui.type.ImInt; *

* Refer to the library's Github page for examples and support */ +@BindingSource public final class ImNodes { - private static final ImNodesStyle STYLE = new ImNodesStyle(0); - private ImNodes() { } @@ -27,123 +31,115 @@ public final class ImNodes { // By default, the library creates an editor context behind the scenes, so using any of the ImNodes // functions doesn't require you to explicitly create a context. - public static ImNodesContext editorContextCreate() { - return new ImNodesContext(); - } + @BindingMethod + public static native void SetImGuiContext(ImGuiContext ctx); - public static void editorContextFree(final ImNodesContext context) { - context.destroy(); - } + @BindingMethod + public static native ImNodesContext CreateContext(); - public static void editorContextSet(final ImNodesContext context) { - nEditorContextSet(context.ptr); - } + @BindingMethod + public static native void DestroyContext(@OptArg ImNodesContext ctx); - private static native void nEditorContextSet(long ptr); /* - ImNodes::EditorContextSet((ImNodesEditorContext*)ptr); - */ + @BindingMethod + public static native ImNodesContext GetCurrentContext(); - /** - * Initialize the node editor system. - */ - public static native void createContext(); /* - ImNodes::CreateContext(); - */ + @BindingMethod + public static native void SetCurrentContext(ImNodesContext ctx); - public static native void destroyContext(); /* - ImNodes::DestroyContext(); - */ + @BindingMethod + public static native ImNodesEditorContext EditorContextCreate(); + + @BindingMethod + public static native void EditorContextFree(ImNodesEditorContext context); + + @BindingMethod + public static native void EditorContextSet(ImNodesEditorContext context); + + @BindingMethod + public static native ImVec2 EditorContextGetPanning(); + + @BindingMethod + public static native void EditorContextResetPanning(ImVec2 pos); + + @BindingMethod + public static native void EditorContextMoveToNode(int nodeId); + + @BindingMethod + @ReturnValue(isStatic = true, callPrefix = "&") + public static native ImNodesIO GetIO(); /** * Returns the global style struct. See the struct declaration for default values. */ - public static ImNodesStyle getStyle() { - STYLE.ptr = nGetStyle(); - return STYLE; - } - - private static native long nGetStyle(); /* - return (intptr_t)&ImNodes::GetStyle(); - */ + @BindingMethod + @ReturnValue(isStatic = true, callPrefix = "&") + public static native ImNodesStyle GetStyle(); // Style presets matching the dear imgui styles of the same name. - public static native void styleColorsDark(); /* - ImNodes::StyleColorsDark(); - */ + @BindingMethod + public static native void StyleColorsDark(); - public static native void styleColorsClassic(); /* - ImNodes::StyleColorsClassic(); - */ + @BindingMethod + public static native void StyleColorsClassic(); - public static native void styleColorsLight(); /* - ImNodes::StyleColorsLight(); - */ - - /** - * Use PushColorStyle and PopColorStyle to modify ImNodesColorStyle mid-frame. - */ - public static native void pushColorStyle(int imNodesStyleColor, int color); /* - ImNodes::PushColorStyle((ImNodesCol)imNodesStyleColor, color); - */ - - public static native void popColorStyle(); /* - ImNodes::PopColorStyle(); - */ - - public static native void pushStyleVar(int imNodesStyleVar, float value); /* - ImNodes::PushStyleVar((ImNodesStyleVar)imNodesStyleVar, value); - */ - - public static native void pushStyleVar(int imNodesStyleVar, float x, float y); /* - ImNodes::PushStyleVar((ImNodesStyleVar)imNodesStyleVar, ImVec2(x, y)); - */ - - public static native void popStyleVar(); /* - ImNodes::PopStyleVar(); - */ + @BindingMethod + public static native void StyleColorsLight(); /** * The top-level function call. Call this before calling BeginNode/EndNode. Calling this function * will result the node editor grid workspace being rendered. */ - public static native void beginNodeEditor(); /* - ImNodes::BeginNodeEditor(); - */ + @BindingMethod + public static native void BeginNodeEditor(); - public static native void endNodeEditor(); /* - ImNodes::EndNodeEditor(); - */ - - public static native void beginNode(int node); /* - ImNodes::BeginNode(node); - */ - - public static native void endNode(); /* - ImNodes::EndNode(); - */ + @BindingMethod + public static native void EndNodeEditor(); /** - * Render a link between attributes. - * The attributes ids used here must match the ids used in Begin(Input|Output)Attribute function - * calls. The order of source and target doesn't make a difference for rendering the link. + * Add a navigable minimap to the editor; call before EndNodeEditor after all nodes and links have been specified + * // TODO: add callback */ - public static native void link(int id, int source, int target); /* - ImNodes::Link(id, source, target); - */ + @BindingMethod + public static native void MiniMap(@OptArg float miniMapSizeFraction, @OptArg @ArgValue(staticCast = "ImNodesMiniMapLocation") int miniMapLocation); + + /** + * Use PushColorStyle and PopColorStyle to modify ImNodesColorStyle mid-frame. + */ + @BindingMethod + public static native void PushColorStyle(@ArgValue(staticCast = "ImNodesCol") int item, int color); + + @BindingMethod + public static native void PopColorStyle(); + + @BindingMethod + public static native void PushStyleVar(@ArgValue(staticCast = "ImNodesStyleVar") int styleItem, float value); + + @BindingMethod + public static native void PushStyleVar(@ArgValue(staticCast = "ImNodesStyleVar") int styleItem, ImVec2 value); + + @BindingMethod + public static native void PopStyleVar(); + + @BindingMethod + public static native void BeginNode(int node); + + @BindingMethod + public static native void EndNode(); + + @BindingMethod + public static native ImVec2 GetNodeDimensions(int id); /** * Place your node title bar content (such as the node title, using ImGui::Text) between the * following function calls. These functions have to be called before adding any attributes, or the * layout of the node will be incorrect. */ - public static native void beginNodeTitleBar(); /* - ImNodes::BeginNodeTitleBar(); - */ + @BindingMethod + public static native void BeginNodeTitleBar(); - public static native void endNodeTitleBar(); /* - ImNodes::EndNodeTitleBar(); - */ + @BindingMethod + public static native void EndNodeTitleBar(); // Attributes are ImGui UI elements embedded within the node. Attributes can have pin shapes // rendered next to them. Links are created between pins. @@ -154,63 +150,105 @@ public final class ImNodes { // // Each attribute id must be unique. - /** - * Create a static attribute block. A static attribute has no pin, and therefore can't be linked to - * anything. However, you can still use IsAttributeActive() and IsAnyAttributeActive() to check for - * attribute activity. - */ - public static native void beginStaticAttribute(int id); /* - ImNodes::BeginStaticAttribute(id); - */ - - public static native void endStaticAttribute(); /* - ImNodes::EndStaticAttribute(); - */ - /** * Create an input attribute block. The pin is rendered on left side. */ - public static void beginInputAttribute(final int id) { - beginInputAttribute(id, ImNodesPinShape.CircleFilled); - } - - public static native void beginInputAttribute(int id, int imNodesPinShape); /* + @BindingMethod + public static native void BeginInputAttribute(int id, @OptArg @ArgValue(staticCast = "ImNodesPinShape") int shape); /* ImNodes::BeginInputAttribute(id, (ImNodesPinShape)imNodesPinShape); */ - public static native void endInputAttribute(); /* - ImNodes::EndInputAttribute(); - */ + @BindingMethod + public static native void EndInputAttribute(); /** * Create an output attribute block. The pin is rendered on the right side. */ - public static void beginOutputAttribute(final int id) { - beginOutputAttribute(id, ImNodesPinShape.CircleFilled); - } + @BindingMethod + public static native void BeginOutputAttribute(int id, @OptArg @ArgValue(staticCast = "ImNodesPinShape") int shape); - public static native void beginOutputAttribute(int id, int imNodesPinShape); /* - ImNodes::BeginOutputAttribute(id, (ImNodesPinShape)imNodesPinShape); - */ + @BindingMethod + public static native void EndOutputAttribute(); + + /** + * Create a static attribute block. A static attribute has no pin, and therefore can't be linked to + * anything. However, you can still use IsAttributeActive() and IsAnyAttributeActive() to check for + * attribute activity. + */ + @BindingMethod + public static native void BeginStaticAttribute(int id); + + @BindingMethod + public static native void EndStaticAttribute(); /** * Push a single AttributeFlags value. By default, only AttributeFlags_None is set. */ - public static native void pushAttributeFlag(int imNodesAttributeFlags); /* - ImNodes::PushAttributeFlag((ImNodesAttributeFlags)imNodesAttributeFlags); - */ + @BindingMethod + public static native void PushAttributeFlag(@ArgValue(staticCast = "ImNodesAttributeFlags") int flag); - public static native void endOutputAttribute(); /* - ImNodes::EndOutputAttribute(); - */ + @BindingMethod + public static native void PopAttributeFlag(); + + /** + * Render a link between attributes. + * The attributes ids used here must match the ids used in Begin(Input|Output)Attribute function + * calls. The order of source and target doesn't make a difference for rendering the link. + */ + @BindingMethod + public static native void Link(int id, int source, int target); + + /** + * Enable or disable the ability to click and drag a specific node. + */ + @BindingMethod + public static native void SetNodeDraggable(int nodeId, boolean draggable); + + // The node's position can be expressed in three coordinate systems: + // * screen space coordinates, -- the origin is the upper left corner of the window. + // * editor space coordinates -- the origin is the upper left corner of the node editor window + // * grid space coordinates, -- the origin is the upper left corner of the node editor window, + // translated by the current editor panning vector (see EditorContextGetPanning() and + // EditorContextResetPanning()) + // Use the following functions to get and set the node's coordinates in these coordinate systems. + + @BindingMethod + public static native void SetNodeScreenSpacePos(int nodeId, ImVec2 screenSpacePos); + + @BindingMethod + public static native void SetNodeEditorSpacePos(int nodeId, ImVec2 editorSpacePos); + + @BindingMethod + public static native void SetNodeGridSpacePos(int nodeId, ImVec2 gridPos); + + @BindingMethod + public static native void GetNodeScreenSpacePos(int nodeId); + + @BindingMethod + public static native void GetNodeEditorSpacePos(int nodeId); + + @BindingMethod + public static native void GetNodeGridSpacePos(int nodeId); /** * Returns true if the current node editor canvas is being hovered over by the mouse, and is not * blocked by any other windows. */ - public static native boolean isEditorHovered(); /* - return ImNodes::IsEditorHovered(); - */ + @BindingMethod + public static native boolean IsEditorHovered(); + + // The following functions return true if a UI element is being hovered over by the mouse cursor. + // Assigns the id of the UI element being hovered over to the function argument. Use these functions + // after EndNodeEditor() has been called. + + @BindingMethod + public static native boolean IsNodeHovered(ImInt nodeId); + + @BindingMethod + public static native boolean IsLinkHovered(ImInt linkId); + + @BindingMethod + public static native boolean IsPinHovered(ImInt attributeId); // Binding notice: getHoveredNode(), getHoveredLink() and getHoveredPin() // return id of the hovered object. If there is no such object -1 will be returned. @@ -243,6 +281,75 @@ public final class ImNodes { return ImNodes::IsPinHovered(&i) ? i : -1; */ + /** + * Use The following two functions to query the number of selected nodes or links in the current + * editor. Use after calling EndNodeEditor(). + */ + @BindingMethod + public static native int NumSelectedNodes(); + + @BindingMethod + public static native int NumSelectedLinks(); + + /** + * Get the selected node/link ids. The pointer argument should point to an integer array with at + * least as many elements as the respective NumSelectedNodes/NumSelectedLinks function call + * returned. + */ + @BindingMethod + public static native void GetSelectedNodes(int[] nodeIds); + + /** + * Get the selected node/link ids. The pointer argument should point to an integer array with at + * least as many elements as the respective NumSelectedNodes/NumSelectedLinks function call + * returned. + */ + @BindingMethod + public static native void GetSelectedLinks(int[] linkIds); + + /** + * Clears the list of selected nodes/links. Useful if you want to delete a selected node or link. + */ + @BindingMethod + public static native void ClearNodeSelection(); + + /** + * Clears the list of selected nodes/links. Useful if you want to delete a selected node or link. + */ + @BindingMethod + public static native void ClearLinkSelection(); + + /** + * Manually select a node or link. + */ + @BindingMethod + public static native void SelectNode(int nodeId); + + @BindingMethod + public static native void ClearNodeSelection(int nodeId); + + @BindingMethod + public static native boolean IsNodeSelected(int nodeId); + + @BindingMethod + public static native void SelectLink(int linkId); + + @BindingMethod + public static native void ClearLinkSelection(int linkId); + + @BindingMethod + public static native boolean IsLinkSelected(int linkId); + + /** + * Was the previous attribute active? This will continuously return true while the left mouse button + * is being pressed over the UI content of the attribute. + */ + @BindingMethod + public static native boolean IsAttributeActive(); + + @BindingMethod + public static native boolean IsAnyAttributeActive(@OptArg ImInt attributeId); + /** * Binding notice: getActiveAttribute() returns id the active attribute. If there is no active attribute -1 will be returned. *

@@ -253,27 +360,14 @@ public final class ImNodes { return ImNodes::IsAnyAttributeActive(&i) ? i : -1; */ - /** - * Was the previous attribute active? This will continuously return true while the left mouse button - * is being pressed over the UI content of the attribute. - */ - public static native boolean isAttributeActive(); /* - return ImNodes::IsAttributeActive(); - */ - // Use the following functions to query a change of state for an existing link, or new link. Call // these after EndNodeEditor(). /** * Did the user start dragging a new link from a pin? */ - public static boolean isLinkStarted(final ImInt startAtAttributeId) { - return nIsLinkStarted(startAtAttributeId.getData()); - } - - private static native boolean nIsLinkStarted(int[] data); /* - return ImNodes::IsLinkStarted(&data[0]); - */ + @BindingMethod + public static native boolean IsLinkStarted(ImInt startedAtAttributeId); /** * Did the user drop the dragged link before attaching it to a pin? @@ -283,258 +377,52 @@ public final class ImNodes { * Use the including_detached_links flag to control whether this function triggers when the user * detaches a link and drops it. */ - public static boolean isLinkDropped(final ImInt startedAtAttributeId, final boolean includingDetachedLinks) { - return nIsLinkDropped(startedAtAttributeId.getData(), includingDetachedLinks); - } - - private static native boolean nIsLinkDropped(int[] data, boolean includingDetachedLinks); /* - return ImNodes::IsLinkDropped(&data[0], includingDetachedLinks); - */ + @BindingMethod + public static native boolean IsLinkDropped(@OptArg(callValue = "NULL") ImInt startedAtAttributeId, @OptArg boolean includingDetachedLinks); /** * Did the user finish creating a new link? */ - public static boolean isLinkCreated(final ImInt startedAtAttributeId, final ImInt endedAtAttributeId) { - return nIsLinkCreated(startedAtAttributeId.getData(), endedAtAttributeId.getData()); - } + @BindingMethod + public static native boolean IsLinkCreated(ImInt startedAtAttributeId, ImInt endedAtAttributeId, @OptArg ImBoolean createdFromSnap); - private static native boolean nIsLinkCreated(int[] sourceAttribute, int[] targetAttribute); /* - return ImNodes::IsLinkCreated(&sourceAttribute[0], &targetAttribute[0]); - */ - - public static boolean isLinkCreated(final ImInt startedAtNodeId, final ImInt startedAtAttributeId, - final ImInt endedAtNodeId, final ImInt endedAtAttributeId, - final ImBoolean createdFromSnap) { - return nIsLinkCreated(startedAtNodeId.getData(), startedAtAttributeId.getData(), endedAtNodeId.getData(), endedAtAttributeId.getData(), createdFromSnap.getData()); - } - - private static native boolean nIsLinkCreated(int[] startedAtNodeId, int[] startedAtAttributeId, int[] endedAtNodeId, int[] endedAtAttributeId, boolean[] createdFromSnap); /* - return ImNodes::IsLinkCreated(&startedAtNodeId[0], &startedAtAttributeId[0], &endedAtNodeId[0], &endedAtAttributeId[0], &createdFromSnap[0]); - */ + /** + * Did the user finish creating a new link? + */ + @BindingMethod + public static native boolean IsLinkCreated(ImInt startedAtNodeId, ImInt startedAtAttributeId, ImInt endedAtNodeId, ImInt endedAtAttributeId, @OptArg ImBoolean createdFromSnap); /** * Was an existing link detached from a pin by the user? The detached link's id is assigned to the * output argument link_id. */ - public static boolean isLinkDestroyed(final ImInt linkId) { - return nIsLinkDestroyed(linkId.getData()); - } - - private static native boolean nIsLinkDestroyed(int[] linkId); /* - return ImNodes::IsLinkDestroyed(&linkId[0]); - */ - - /** - * Use The following two functions to query the number of selected nodes or links in the current - * editor. Use after calling EndNodeEditor(). - */ - public static native int numSelectedNodes(); /* - return ImNodes::NumSelectedNodes(); - */ - - public static native int numSelectedLinks(); /* - return ImNodes::NumSelectedLinks(); - */ - - /** - * Get the selected node/link ids. The pointer argument should point to an integer array with at - * least as many elements as the respective NumSelectedNodes/NumSelectedLinks function call - * returned. - */ - public static native void getSelectedNodes(int[] nodeIds); /* - ImNodes::GetSelectedNodes(&nodeIds[0]); - */ - - public static native void getSelectedLinks(int[] linkIds); /* - ImNodes::GetSelectedLinks(&linkIds[0]); - */ - - /** - * Clears the list of selected nodes/links. Useful if you want to delete a selected node or link. - */ - public static native void clearNodeSelection(); /* - ImNodes::ClearNodeSelection(); - */ - - public static native void clearNodeSelection(int node); /* - ImNodes::ClearNodeSelection(node); - */ - - public static native void clearLinkSelection(); /* - ImNodes::ClearLinkSelection(); - */ - - public static native void clearLinkSelection(int link); /* - ImNodes::ClearLinkSelection(link); - */ - - /** - * Manually select a node or link. - */ - public static native void selectNode(int node); /* - ImNodes::SelectNode(node); - */ - - public static native void selectLink(int link); /* - ImNodes::SelectLink(link); - */ - - /** - * Check if a a specified node/link is selected. - */ - public static native boolean isNodeSelected(int node); /* - return ImNodes::IsNodeSelected(node); - */ - - public static native boolean isLinkSelected(int link); /* - return ImNodes::IsLinkSelected(link); - */ - - /** - * Enable or disable the ability to click and drag a specific node. - */ - public static native void setNodeDraggable(int node, boolean isDraggable); /* - ImNodes::SetNodeDraggable(node, isDraggable); - */ - - public static native void getNodeDimensions(int node, ImVec2 result); /* - ImVec2 dst = ImNodes::GetNodeDimensions(node); - Jni::ImVec2Cpy(env, &dst, result); - */ - - public static native float getNodeDimensionsX(int node); /* - return ImNodes::GetNodeDimensions(node).x; - */ - - public static native float getNodeDimensionsY(int node); /* - return ImNodes::GetNodeDimensions(node).y; - */ - - - // The node's position can be expressed in three coordinate systems: - // * screen space coordinates, -- the origin is the upper left corner of the window. - // * editor space coordinates -- the origin is the upper left corner of the node editor window - // * grid space coordinates, -- the origin is the upper left corner of the node editor window, - // translated by the current editor panning vector (see EditorContextGetPanning() and - // EditorContextResetPanning()) - // Use the following functions to get and set the node's coordinates in these coordinate systems. - - public static native void setNodeScreenSpacePos(int node, float x, float y); /* - ImNodes::SetNodeScreenSpacePos(node, ImVec2(x, y)); - */ - - public static native void setNodeEditorSpacePos(int node, float x, float y); /* - ImNodes::SetNodeEditorSpacePos(node, ImVec2(x, y)); - */ - - public static native void setNodeGridSpacePos(int node, float x, float y); /* - ImNodes::SetNodeGridSpacePos(node, ImVec2(x, y)); - */ - - public static native void getNodeScreenSpacePos(int node, ImVec2 result); /* - ImVec2 dst = ImNodes::GetNodeScreenSpacePos(node); - Jni::ImVec2Cpy(env, &dst, result); - */ - - public static native float getNodeScreenSpacePosX(int node); /* - return ImNodes::GetNodeScreenSpacePos(node).x; - */ - - public static native float getNodeScreenSpacePosY(int node); /* - return ImNodes::GetNodeScreenSpacePos(node).y; - */ - - public static native void getNodeEditorSpacePos(int node, ImVec2 result); /* - ImVec2 dst = ImNodes::GetNodeEditorSpacePos(node); - Jni::ImVec2Cpy(env, &dst, result); - */ - - public static native float getNodeEditorSpacePosX(int node); /* - return ImNodes::GetNodeEditorSpacePos(node).x; - */ - - public static native float getNodeEditorSpacePosY(int node); /* - return ImNodes::GetNodeEditorSpacePos(node).y; - */ - - public static native void getNodeGridSpacePos(int node, ImVec2 dst); /* - ImVec2 result = ImNodes::GetNodeGridSpacePos(node); - Jni::ImVec2Cpy(env, &result, dst); - */ - - public static native float getNodeGridSpacePosX(int node); /* - return ImNodes::GetNodeGridSpacePos(node).x; - */ - - public static native float getNodeGridSpacePosY(int node); /* - return ImNodes::GetNodeGridSpacePos(node).y; - */ - - public static native void editorResetPanning(float x, float y); /* - ImNodes::EditorContextResetPanning(ImVec2(x, y)); - */ - - public static native void editorContextGetPanning(ImVec2 result); /* - ImVec2 dst = ImNodes::EditorContextGetPanning(); - Jni::ImVec2Cpy(env, &dst, result); - */ - - public static native void editorMoveToNode(int node); /* - ImNodes::EditorContextMoveToNode(node); - */ + @BindingMethod + public static native boolean IsLinkDestroyed(ImInt linkId); // Use the following functions to write the editor context's state to a string, or directly to a // file. The editor context is serialized in the INI file format. - public static native String saveCurrentEditorStateToIniString(); /* - return env->NewStringUTF(ImNodes::SaveCurrentEditorStateToIniString(NULL)); - */ + @BindingMethod + public static native String SaveCurrentEditorStateToIniString(); - public static String saveEditorStateToIniString(final ImNodesContext context) { - return nSaveEditorStateToIniString(context.ptr); - } + @BindingMethod + public static native String SaveEditorStateToIniString(ImNodesEditorContext editor); - private static native String nSaveEditorStateToIniString(long context); /* - return env->NewStringUTF(ImNodes::SaveEditorStateToIniString((ImNodesEditorContext*)context, NULL)); - */ + @BindingMethod + public static native void LoadCurrentEditorStateFromIniString(String data, int dataSize); - public static native void loadCurrentEditorStateFromIniString(String data, int dataSize); /* - ImNodes::LoadCurrentEditorStateFromIniString(data, dataSize); - */ + @BindingMethod + public static native void LoadEditorStateFromIniString(ImNodesEditorContext editor, String data, int dataSize); - public static void loadEditorStateFromIniString(final ImNodesContext context, final String data, final int dataSize) { - nLoadEditorStateFromIniString(context.ptr, data, dataSize); - } + @BindingMethod + public static native void SaveCurrentEditorStateToIniFile(String fileName); - private static native void nLoadEditorStateFromIniString(long context, String data, int dataSize); /* - ImNodes::LoadEditorStateFromIniString((ImNodesEditorContext*)context, data, dataSize); - */ + @BindingMethod + public static native void SaveEditorStateToIniFile(ImNodesEditorContext editor, String fileName); - public static native void saveCurrentEditorStateToIniFile(String fileName); /* - ImNodes::SaveCurrentEditorStateToIniFile(fileName); - */ + @BindingMethod + public static native void LoadCurrentEditorStateFromIniFile(String fileName); - public static void saveEditorStateToIniFile(final ImNodesContext context, final String fileName) { - nSaveEditorStateToIniFile(context.ptr, fileName); - } - - private static native void nSaveEditorStateToIniFile(long context, String fileName); /* - ImNodes::SaveEditorStateToIniFile((ImNodesEditorContext*)context, fileName); - */ - - public static native void loadCurrentEditorStateFromIniFile(String fileName); /* - ImNodes::LoadCurrentEditorStateFromIniFile(fileName); - */ - - public static void loadEditorStateFromIniFile(final ImNodesContext context, final String fileName) { - nLoadEditorStateFromIniFile(context.ptr, fileName); - } - - private static native void nLoadEditorStateFromIniFile(long context, String fileName); /* - ImNodes::LoadEditorStateFromIniFile((ImNodesEditorContext*)context, fileName); - */ - - public static native void miniMap(float miniMapSizeFraction, int miniMapLocation); /* - ImNodes::MiniMap(miniMapSizeFraction, (ImNodesMiniMapLocation)miniMapLocation); - */ + @BindingMethod + public static native void LoadEditorStateFromIniFile(ImNodesEditorContext editor, String fileName); } diff --git a/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesContext.java b/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesContext.java index a6a6014..5f0f8be 100644 --- a/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesContext.java +++ b/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesContext.java @@ -1,36 +1,9 @@ package imgui.extension.imnodes; -import imgui.binding.ImGuiStructDestroyable; - -public final class ImNodesContext extends ImGuiStructDestroyable { - public ImNodesContext() { - } +import imgui.binding.ImGuiStruct; +public final class ImNodesContext extends ImGuiStruct { public ImNodesContext(final long ptr) { super(ptr); } - - /*JNI - #include "_imnodes.h" - - #define IMNODES_CONTEXT ((ImNodesEditorContext*)STRUCT_PTR) - */ - - @Override - protected long create() { - return nCreate(); - } - - @Override - public void destroy() { - nDestroy(); - } - - private native long nCreate(); /* - return (intptr_t)ImNodes::EditorContextCreate(); - */ - - private native void nDestroy(); /* - ImNodes::EditorContextFree(IMNODES_CONTEXT); - */ } diff --git a/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesEditorContext.java b/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesEditorContext.java new file mode 100644 index 0000000..4d960ef --- /dev/null +++ b/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesEditorContext.java @@ -0,0 +1,9 @@ +package imgui.extension.imnodes; + +import imgui.binding.ImGuiStruct; + +public final class ImNodesEditorContext extends ImGuiStruct { + public ImNodesEditorContext(final long ptr) { + super(ptr); + } +} diff --git a/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesIO.java b/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesIO.java new file mode 100644 index 0000000..aca050d --- /dev/null +++ b/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesIO.java @@ -0,0 +1,34 @@ +package imgui.extension.imnodes; + +import imgui.binding.ImGuiStruct; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingSource; + +@BindingSource +public final class ImNodesIO extends ImGuiStruct { + public ImNodesIO(final long ptr) { + super(ptr); + } + + /*JNI + #include "_imnodes.h" + #define THIS ((ImNodesIO*)STRUCT_PTR) + */ + + /** + * Holding alt mouse button pans the node area, by default middle mouse button will be used + * Set based on ImGuiMouseButton values + */ + @BindingField + public int AltMouseButton; + + /** + * Panning speed when dragging an element and mouse is outside the main editor view. + */ + @BindingField + public float AutoPanningSpeed; + + /*JNI + #undef THIS + */ +} diff --git a/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesStyle.java b/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesStyle.java index f25ad4a..a25b3dd 100644 --- a/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesStyle.java +++ b/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesStyle.java @@ -1,8 +1,13 @@ package imgui.extension.imnodes; import imgui.ImVec2; +import imgui.ImVec4; import imgui.binding.ImGuiStruct; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.TypeArray; +@BindingSource public final class ImNodesStyle extends ImGuiStruct { public ImNodesStyle(final long ptr) { super(ptr); @@ -10,183 +15,89 @@ public final class ImNodesStyle extends ImGuiStruct { /*JNI #include "_imnodes.h" - - #define IMNODES_STYLE ((ImNodesStyle*)STRUCT_PTR) + #define THIS ((ImNodesStyle*)STRUCT_PTR) */ - public native float getGridSpacing(); /* - return IMNODES_STYLE->GridSpacing; - */ + @BindingField + public float GridSpacing; - public native void setGridSpacing(float gridSpacing); /* - IMNODES_STYLE->GridSpacing = gridSpacing; - */ + @BindingField + public float NodeCornerRounding; - public native float getNodeCornerRounding(); /* - return IMNODES_STYLE->NodeCornerRounding; - */ + @BindingField + public ImVec2 NodePadding; - public native void setNodeCornerRounding(float nodeCornerRounding); /* - IMNODES_STYLE->NodeCornerRounding = nodeCornerRounding; - */ + @BindingField + public float NodeBorderThickness; - public native void getNodePadding(ImVec2 result); /* - Jni::ImVec2Cpy(env, &IMNODES_STYLE->NodePadding, result); - */ + @BindingField + public float LinkThickness; - public native void setNodePadding(float x, float y); /* - IMNODES_STYLE->NodePadding = ImVec2(x, y); - */ + @BindingField + public float LinkLineSegmentsPerLength; - public native float getNodeBorderThickness(); /* - return IMNODES_STYLE->NodeBorderThickness; - */ - - public native void setNodeBorderThickness(float nodeBorderThickness); /* - IMNODES_STYLE->NodeBorderThickness = nodeBorderThickness; - */ - - public native float getLinkThickness(); /* - return IMNODES_STYLE->LinkThickness; - */ - - public native void setLinkThickness(float linkThickness); /* - IMNODES_STYLE->LinkThickness = linkThickness; - */ - - public native float getLinkLineSegmentsPerLength(); /* - return IMNODES_STYLE->LinkLineSegmentsPerLength; - */ - - public native void setLinkLineSegmentsPerLength(float linkLineSegmentsPerLength); /* - IMNODES_STYLE->LinkLineSegmentsPerLength = linkLineSegmentsPerLength; - */ - - public native float getLinkHoverDistance(); /* - return IMNODES_STYLE->LinkHoverDistance; - */ - - public native void setLinkHoverDistance(float linkHoverDistance); /* - IMNODES_STYLE->LinkHoverDistance = linkHoverDistance; - */ + @BindingField + public float LinkHoverDistance; /** * The circle radius used when the pin shape is either PinShape_Circle or PinShape_CircleFilled. */ - public native float getPinCircleRadius(); /* - return IMNODES_STYLE->PinCircleRadius; - */ - - /** - * The circle radius used when the pin shape is either PinShape_Circle or PinShape_CircleFilled. - */ - public native void setPinCircleRadius(float pinCircleRadius); /* - IMNODES_STYLE->PinCircleRadius = pinCircleRadius; - */ + @BindingField + public float PinCircleRadius; /** * The quad side length used when the shape is either PinShape_Quad or PinShape_QuadFilled. */ - public native float getPinQuadSideLength(); /* - return IMNODES_STYLE->PinQuadSideLength; - */ - - /** - * The quad side length used when the shape is either PinShape_Quad or PinShape_QuadFilled. - */ - public native void setPinQuadSideLength(float pinQuadSideLength); /* - IMNODES_STYLE->PinQuadSideLength = pinQuadSideLength; - */ + @BindingField + public float PinQuadSideLength; /** * The equilateral triangle side length used when the pin shape is either PinShape_Triangle or PinShape_TriangleFilled. */ - public native float getPinTriangleSideLength(); /* - return IMNODES_STYLE->PinTriangleSideLength; - */ - - /** - * The equilateral triangle side length used when the pin shape is either PinShape_Triangle or PinShape_TriangleFilled. - */ - public native void setPinTriangleSideLength(float pinTriangleSideLength); /* - IMNODES_STYLE->PinTriangleSideLength = pinTriangleSideLength; - */ + @BindingField + public float PinTriangleSideLength; /** * The thickness of the line used when the pin shape is not filled. */ - public native float getPinLineThickness(); /* - return IMNODES_STYLE->PinLineThickness; - */ - - /** - * The thickness of the line used when the pin shape is not filled. - */ - public native void setPinLineThickness(float pinLineThickness); /* - IMNODES_STYLE->PinLineThickness = pinLineThickness; - */ + @BindingField + public float PinLineThickness; /** * The radius from the pin's center position inside of which it is detected as being hovered over. */ - public native float getPinHoverRadius(); /* - return IMNODES_STYLE->PinHoverRadius; - */ - - /** - * The radius from the pin's center position inside of which it is detected as being hovered over. - */ - public native void setPinHoverRadius(float pinHoverRadius); /* - IMNODES_STYLE->PinHoverRadius = pinHoverRadius; - */ + @BindingField + public float PinHoverRadius; /** * Offsets the pins' positions from the edge of the node to the outside of the node. */ - public native float getPinOffset(); /* - return IMNODES_STYLE->PinOffset; - */ - - /** - * Offsets the pins' positions from the edge of the node to the outside of the node. - */ - public native void setPinOffset(float pinOffset); /* - IMNODES_STYLE->PinOffset = pinOffset; - */ + @BindingField + public float PinOffset; /** * Mini-map padding size between mini-map edge and mini-map content. */ - public native void getMiniMapPadding(ImVec2 result); /* - Jni::ImVec2Cpy(env, &IMNODES_STYLE->MiniMapPadding, result); - */ - - /** - * Mini-map padding size between mini-map edge and mini-map content. - */ - public native void setMiniMapPadding(float x, float y); /* - IMNODES_STYLE->MiniMapPadding = ImVec2(x, y); - */ + @BindingField + public ImVec2 MiniMapPadding; /** * Mini-map offset from the screen side. */ - public native ImVec2 getMiniMapOffset(ImVec2 result); /* - Jni::ImVec2Cpy(env, &IMNODES_STYLE->MiniMapOffset, result); - */ + @BindingField + public ImVec2 MiniMapOffset; /** - * Mini-map offset from the screen side. + * By default, ImNodesStyleFlags_NodeOutline and ImNodesStyleFlags_Gridlines are enabled. */ - public native void setMiniMapOffset(float x, float y); /* - IMNODES_STYLE->MiniMapOffset = ImVec2(x, y); - */ + @BindingField(isFlag = true) + public int Flags; - public native int getFlags(); /* - return IMNODES_STYLE->Flags; - */ + @BindingField + @TypeArray(type = "int", size = "ImNodesCol_COUNT") + public int[] Colors; - public native void setFlags(int imNodesStyleFlags); /* - IMNODES_STYLE->Flags = (ImNodesStyleFlags)imNodesStyleFlags; - */ + /*JNI + #undef THIS + */ } diff --git a/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesAttributeFlags.java b/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesAttributeFlags.java index 102483b..a3281de 100644 --- a/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesAttributeFlags.java +++ b/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesAttributeFlags.java @@ -1,28 +1,16 @@ package imgui.extension.imnodes.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * This enum controls the way the attribute pins behave. */ +@BindingSource public final class ImNodesAttributeFlags { - private ImNodesAttributeFlags() { } - public static final int None = 0; - - /** - * Allow detaching a link by left-clicking and dragging the link at a pin it is connected to. - * NOTE: the user has to actually delete the link for this to work. A deleted link can be - * detected by calling IsLinkDestroyed() after EndNodeEditor(). - */ - public static final int EnableLinkDetachWithDragClick = 1; - - /** - * Visual snapping of an in progress link will trigger IsLink Created/Destroyed events. Allows - * for previewing the creation of a link while dragging it across attributes. See here for demo: - * https://github.com/Nelarius/imnodes/issues/41#issuecomment-647132113 NOTE: the user has to - * actually delete the link for this to work. A deleted link can be detected by calling - * IsLinkDestroyed() after EndNodeEditor(). - */ - public static final int EnableLinkCreationOnSnap = 1 << 1; + @BindingAstEnum(file = "ast-imnodes.json", qualType = "ImNodesAttributeFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesCol.java b/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesCol.java new file mode 100644 index 0000000..c4a2799 --- /dev/null +++ b/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesCol.java @@ -0,0 +1,13 @@ +package imgui.extension.imnodes.flag; + +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource +public final class ImNodesCol { + private ImNodesCol() { + } + + @BindingAstEnum(file = "ast-imnodes.json", qualType = "ImNodesCol_") + public Void __; +} diff --git a/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesMiniMapLocation.java b/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesMiniMapLocation.java index 441d059..07e3602 100644 --- a/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesMiniMapLocation.java +++ b/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesMiniMapLocation.java @@ -1,14 +1,16 @@ package imgui.extension.imnodes.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * This enum controls the minimap's location. */ +@BindingSource public final class ImNodesMiniMapLocation { private ImNodesMiniMapLocation() { } - public static final int BottomLeft = 0; - public static final int BottomRight = 1; - public static final int TopLeft = 2; - public static final int TopRight = 3; + @BindingAstEnum(file = "ast-imnodes.json", qualType = "ImNodesMiniMapLocation_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesPinShape.java b/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesPinShape.java index 987bf6b..4c82609 100644 --- a/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesPinShape.java +++ b/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesPinShape.java @@ -1,16 +1,16 @@ package imgui.extension.imnodes.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * This enum controls the way attribute pins look. */ +@BindingSource public final class ImNodesPinShape { private ImNodesPinShape() { } - public static final int Circle = 0; - public static final int CircleFilled = 1; - public static final int Triangle = 2; - public static final int TriangleFilled = 3; - public static final int Quad = 4; - public static final int QuadFilled = 5; + @BindingAstEnum(file = "ast-imnodes.json", qualType = "ImNodesPinShape_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesStyleFlags.java b/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesStyleFlags.java index 29d17e1..a0f9025 100644 --- a/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesStyleFlags.java +++ b/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesStyleFlags.java @@ -1,10 +1,13 @@ package imgui.extension.imnodes.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class ImNodesStyleFlags { private ImNodesStyleFlags() { } - public static final int None = 0; - public static final int NodeOutline = 1; - public static final int GridLines = 1 << 2; + @BindingAstEnum(file = "ast-imnodes.json", qualType = "ImNodesStyleFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesStyleVar.java b/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesStyleVar.java index 08b0a3c..19ab4e9 100644 --- a/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesStyleVar.java +++ b/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesStyleVar.java @@ -1,22 +1,13 @@ package imgui.extension.imnodes.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class ImNodesStyleVar { private ImNodesStyleVar() { } - public static final int GridSpacing = 0; - public static final int NodeCornerRounding = 1; - public static final int NodePadding = 2; - public static final int NodeBorderThickness = 3; - public static final int LinkThickness = 4; - public static final int LinkLineSegmentsPerLength = 5; - public static final int LinkHoverDistance = 6; - public static final int PinCircleRadius = 7; - public static final int PinQuadSideLength = 8; - public static final int PinTriangleSideLength = 9; - public static final int PinLineThickness = 10; - public static final int PinHoverRadius = 11; - public static final int PinOffset = 12; - public static final int MiniMapPadding = 13; - public static final int MiniMapOffset = 14; + @BindingAstEnum(file = "ast-imnodes.json", qualType = "ImNodesStyleVar_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/implot/ImPlot.java b/imgui-binding/src/main/java/imgui/extension/implot/ImPlot.java index 6dfb172..6ffa6ea 100644 --- a/imgui-binding/src/main/java/imgui/extension/implot/ImPlot.java +++ b/imgui-binding/src/main/java/imgui/extension/implot/ImPlot.java @@ -3,28 +3,23 @@ package imgui.extension.implot; import imgui.ImDrawList; import imgui.ImVec2; import imgui.ImVec4; -import imgui.extension.implot.flag.ImPlotYAxis; -import imgui.flag.ImGuiCond; -import imgui.flag.ImGuiMouseButton; +import imgui.binding.annotation.ArgValue; +import imgui.binding.annotation.BindingMethod; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.OptArg; +import imgui.binding.annotation.ReturnValue; +import imgui.internal.ImGuiContext; import imgui.type.ImBoolean; import imgui.type.ImDouble; +import imgui.type.ImFloat; +@BindingSource public final class ImPlot { - private static final ImDrawList IM_DRAW_LIST = new ImDrawList(0); - - private static final ImPlotContext IMPLOT_CONTEXT = new ImPlotContext(0); - private static final ImPlotPoint IMPLOT_POINT = new ImPlotPoint(0); - private static final ImPlotLimits IMPLOT_LIMITS = new ImPlotLimits(0); - private static final ImPlotStyle IMPLOT_STYLE = new ImPlotStyle(0); - private ImPlot() { - } /*JNI - #include "_common.h" #include "_implot.h" - */ //----------------------------------------------------------------------------- @@ -34,1255 +29,1458 @@ public final class ImPlot { /** * Creates a new ImPlot context. Call this after ImGui.createContext(). */ - public static ImPlotContext createContext() { - IMPLOT_CONTEXT.ptr = nCreateContext(); - return IMPLOT_CONTEXT; - } - - private static native long nCreateContext(); /* - return (intptr_t)ImPlot::CreateContext(); - */ + @BindingMethod + public static native ImPlotContext CreateContext(); /** * Destroys an ImPlot context. Call this before ImGui.destroyContext(). NULL = destroy current context. */ - public static void destroyContext(final ImPlotContext ctx) { - nDestroyContext(ctx.ptr); - } - - private static native void nDestroyContext(long ctx); /* - ImPlot::DestroyContext((ImPlotContext*)ctx); - */ + @BindingMethod + public static native void DestroyContext(@OptArg ImPlotContext ctx); /** * Returns the current ImPlot context. NULL if no context has ben set. */ - public static ImPlotContext getCurrentContext() { - IMPLOT_CONTEXT.ptr = nGetCurrentContext(); - return IMPLOT_CONTEXT; - } - - private static native long nGetCurrentContext(); /* - return (intptr_t)ImPlot::GetCurrentContext(); - */ + @BindingMethod + public static native ImPlotContext GetCurrentContext(); /** * Sets the current ImPlot context. */ - public static void setCurrentContext(final ImPlotContext ctx) { - nSetCurrentContext(ctx.ptr); - } + @BindingMethod + public static native void SetCurrentContext(ImPlotContext ctx); - private static native void nSetCurrentContext(long ctx); /* - ImPlot::SetCurrentContext((ImPlotContext*)ctx); - */ + @BindingMethod + public static native void SetImGuiContext(ImGuiContext ctx); //----------------------------------------------------------------------------- // Begin/End Plot //----------------------------------------------------------------------------- - /** - * Starts a 2D plotting context. If this function returns true, EndPlot() MUST - * be called! You are encouraged to use the following convention: - * - * if (ImPlot.beginPlot(...)) { - * ImPlot.plotLine(...); - * ... - * ImPlot.endPlot(); - * } - * - * Important notes: - * - * - #titleID must be unique to the current ImGui ID scope. If you need to avoid ID - * collisions or don't want to display a title in the plot, use double hashes - * (e.g. "MyPlot##HiddenIdText" or "##NoTitle"). - */ - public static native boolean beginPlot(String titleID); /* - return ImPlot::BeginPlot(titleID); - */ + // Starts a 2D plotting context. If this function returns true, EndPlot() MUST + // be called! You are encouraged to use the following convention: + // + // if (ImPlot.beginPlot(...)) { + // ImPlot.plotLine(...); + // ... + // ImPlot.endPlot(); + // } + // + // Important notes: + // + // - #titleID must be unique to the current ImGui ID scope. If you need to avoid ID + // collisions or don't want to display a title in the plot, use double hashes + // (e.g. "MyPlot##HiddenIdText" or "##NoTitle"). + // - If #xLabel and/or #yLabel are provided, axes labels will be displayed. + // - #size is the **frame** size of the plot widget, not the plot area. The default + // size of plots (i.e. when ImVec2(0,0)) can be modified in your ImPlotStyle + // (default is 400x300 px). + // - Auxiliary y-axes must be enabled with ImPlotFlags_YAxis2/3 to be displayed. + // - See ImPlotFlags and ImPlotAxisFlags for more available options. - /** - * Starts a 2D plotting context. If this function returns true, EndPlot() MUST - * be called! You are encouraged to use the following convention: - * - * if (ImPlot.beginPlot(...)) { - * ImPlot.plotLine(...); - * ... - * ImPlot.endPlot(); - * } - * - * Important notes: - * - * - #titleID must be unique to the current ImGui ID scope. If you need to avoid ID - * collisions or don't want to display a title in the plot, use double hashes - * (e.g. "MyPlot##HiddenIdText" or "##NoTitle"). - * - If #xLabel and/or #yLabel are provided, axes labels will be displayed. - */ - public static native boolean beginPlot(String titleID, String xLabel, String yLabel); /* - return ImPlot::BeginPlot(titleID, xLabel, yLabel); - */ - - /** - * Starts a 2D plotting context. If this function returns true, EndPlot() MUST - * be called! You are encouraged to use the following convention: - * - * if (ImPlot.beginPlot(...)) { - * ImPlot.plotLine(...); - * ... - * ImPlot.endPlot(); - * } - * - * Important notes: - * - * - #titleID must be unique to the current ImGui ID scope. If you need to avoid ID - * collisions or don't want to display a title in the plot, use double hashes - * (e.g. "MyPlot##HiddenIdText" or "##NoTitle"). - * - If #xLabel and/or #yLabel are provided, axes labels will be displayed. - * - #size is the **frame** size of the plot widget, not the plot area. The default - * size of plots (i.e. when ImVec2(0,0)) can be modified in your ImPlotStyle - * (default is 400x300 px). - */ - public static boolean beginPlot(final String titleID, final String xLabel, final String yLabel, final ImVec2 size) { - return nBeginPlot(titleID, xLabel, yLabel, size.x, size.y); - } - - private static native boolean nBeginPlot(String titleID, String xLabel, String yLabel, float x, float y); /* - return ImPlot::BeginPlot(titleID, xLabel, yLabel, ImVec2(x, y)); - */ - - /** - * Starts a 2D plotting context. If this function returns true, EndPlot() MUST - * be called! You are encouraged to use the following convention: - * - * if (ImPlot.beginPlot(...)) { - * ImPlot.plotLine(...); - * ... - * ImPlot.endPlot(); - * } - * - * Important notes: - * - * - #titleID must be unique to the current ImGui ID scope. If you need to avoid ID - * collisions or don't want to display a title in the plot, use double hashes - * (e.g. "MyPlot##HiddenIdText" or "##NoTitle"). - * - If #xLabel and/or #yLabel are provided, axes labels will be displayed. - * - #size is the **frame** size of the plot widget, not the plot area. The default - * size of plots (i.e. when ImVec2(0,0)) can be modified in your ImPlotStyle - * (default is 400x300 px). - * - See ImPlotFlags and ImPlotAxisFlags for more available options. - */ - public static boolean beginPlot(final String titleID, final String xLabel, final String yLabel, final ImVec2 size, final int flags, final int xFlags, final int yFlags) { - return nBeginPlot(titleID, xLabel, yLabel, size.x, size.y, flags, xFlags, yFlags); - } - - private static native boolean nBeginPlot(String titleID, String xLabel, String yLabel, float x, float y, int flags, int xFlags, int yFlags); /* - return ImPlot::BeginPlot(titleID, xLabel, yLabel, ImVec2(x, y), flags, xFlags, yFlags); - */ - - /** - * Starts a 2D plotting context. If this function returns true, EndPlot() MUST - * be called! You are encouraged to use the following convention: - * - * if (ImPlot.beginPlot(...)) { - * ImPlot.plotLine(...); - * ... - * ImPlot.endPlot(); - * } - * - * Important notes: - * - * - #titleID must be unique to the current ImGui ID scope. If you need to avoid ID - * collisions or don't want to display a title in the plot, use double hashes - * (e.g. "MyPlot##HiddenIdText" or "##NoTitle"). - * - If #xLabel and/or #yLabel are provided, axes labels will be displayed. - * - #size is the **frame** size of the plot widget, not the plot area. The default - * size of plots (i.e. when ImVec2(0,0)) can be modified in your ImPlotStyle - * (default is 400x300 px). - * - Auxiliary y-axes must be enabled with ImPlotFlags_YAxis2/3 to be displayed. - * - See ImPlotFlags and ImPlotAxisFlags for more available options. - */ - public static boolean beginPlot(final String titleID, - final String xLabel, - final String yLabel, - final ImVec2 size, - final int flags, - final int xFlags, - final int yFlags, - final int y2Flags, - final int y3Flags, - final String y2Label, - final String y3Label) { - return nBeginPlot(titleID, xLabel, yLabel, size.x, size.y, flags, xFlags, yFlags, y2Flags, y3Flags, y2Label, y3Label); - } - - private static native boolean nBeginPlot(String titleID, - String xLabel, - String yLabel, - float x, - float y, - int flags, - int xFlags, - int yFlags, - int y2Flags, - int y3Flags, - String y2Label, - String y3Label); /* - return ImPlot::BeginPlot(titleID, - xLabel, - yLabel, - ImVec2(x, y), - flags, - xFlags, - yFlags, - y2Flags, - y3Flags, - y2Label, - y3Label); - */ + @BindingMethod + public static native boolean BeginPlot(String titleID, + @OptArg String xLabel, + @OptArg String yLabel, + @OptArg(callValue = "ImVec2(-1,0)") ImVec2 size, + @OptArg int flags, + @OptArg int xFlags, + @OptArg int yFlags, + @OptArg int y2Flags, + @OptArg int y3Flags, + @OptArg String y2Label, + @OptArg String y3Label); /** * Only call EndPlot() if beginPlot() returns true! Typically called at the end * of an if statement conditioned on BeginPlot(). See example in beginPlot(). */ - public static native void endPlot(); /* - ImPlot::EndPlot(); - */ + @BindingMethod + public static native void EndPlot(); + + //----------------------------------------------------------------------------- + // Begin/EndSubplots + //----------------------------------------------------------------------------- + + // Starts a subdivided plotting context. If the function returns true, + // EndSubplots() MUST be called! Call BeginPlot/EndPlot AT MOST [rows*cols] + // times in between the begining and end of the subplot context. Plots are + // added in row major order. + // + // Example: + // + // if (BeginSubplots("My Subplot",2,3,ImVec2(800,400)) { + // for (int i = 0; i < 6; ++i) { + // if (BeginPlot(...)) { + // ImPlot::PlotLine(...); + // ... + // EndPlot(); + // } + // } + // EndSubplots(); + // } + // + // Produces: + // + // [0][1][2] + // [3][4][5] + // + // Important notes: + // + // - #title_id must be unique to the current ImGui ID scope. If you need to avoid ID + // collisions or don't want to display a title in the plot, use double hashes + // (e.g. "MyPlot##HiddenIdText" or "##NoTitle"). + // - #rows and #cols must be greater than 0. + // - #size is the size of the entire grid of subplots, not the individual plots + // - #row_ratios and #col_ratios must have AT LEAST #rows and #cols elements, + // respectively. These are the sizes of the rows and columns expressed in ratios. + // If the user adjusts the dimensions, the arrays are updated with new ratios. + // + // Important notes regarding BeginPlot from inside of BeginSubplots: + // + // - The #title_id parameter of _BeginPlot_ (see above) does NOT have to be + // unique when called inside of a subplot context. Subplot IDs are hashed + // for your convenience so you don't have call PushID or generate unique title + // strings. Simply pass an empty string to BeginPlot unless you want to title + // each subplot. + // - The #size parameter of _BeginPlot_ (see above) is ignored when inside of a + // subplot context. The actual size of the subplot will be based on the + // #size value you pass to _BeginSubplots_ and #row/#col_ratios if provided. + + @BindingMethod + public static native boolean BeginSubplots(String titleID, + int rows, + int cols, + ImVec2 size, + @OptArg(callValue = "ImPlotSubplotFlags_None") int flags, + @OptArg float[] rowRatios, + @OptArg float[] colRatios); + + /** + * Only call EndSubplots() if BeginSubplots() returns true! Typically called at the end + * of an if statement conditioned on BeginSublots(). See example above. + */ + @BindingMethod + public static native void EndSubplots(); //----------------------------------------------------------------------------- // Plot Items //----------------------------------------------------------------------------- - /** - * Make sure to initialize xsOut and ysOut with length xs.length, ys.length before passing them, or data may be lost/errors may occur + /*JNI + // For a proper type conversion, since C++ doesn't have a "long" type. + #define long ImS64 + #define LEN(arg) (int)env->GetArrayLength(obj_##arg) */ - private static void convertArrays(final T[] xs, final T[] ys, final double[] xsOut, final double[] ysOut) { - if (xs.length != ys.length) { - throw new IllegalArgumentException("Invalid length for arrays"); - } - for (int i = 0; i < xs.length; i++) { - xsOut[i] = xs[i].doubleValue(); - ysOut[i] = ys[i].doubleValue(); - } - } + // The template functions below are explicitly instantiated in implot_items.cpp. + // They are not intended to be used generically with custom types. You will get + // a linker error if you try! All functions support the following scalar types: + // + // float, double, ImS8, ImU8, ImS16, ImU16, ImS32, ImU32, ImS64, ImU64 + // + // + // If you need to plot custom or non-homogenous data you have a few options: + // + // 1. If your data is a simple struct/class (e.g. Vector2f), you can use striding. + // This is the most performant option if applicable. + // + // struct Vector2f { float X, Y; }; + // ... + // Vector2f data[42]; + // ImPlot::PlotLine("line", &data[0].x, &data[0].y, 42, 0, sizeof(Vector2f)); // or sizeof(float)*2 + // + // 2. Write a custom getter C function or C++ lambda and pass it and optionally your data to + // an ImPlot function post-fixed with a G (e.g. PlotScatterG). This has a slight performance + // cost, but probably not enough to worry about unless your data is very large. Examples: + // + // ImPlotPoint MyDataGetter(void* data, int idx) { + // MyData* my_data = (MyData*)data; + // ImPlotPoint p; + // p.x = my_data->GetTime(idx); + // p.y = my_data->GetValue(idx); + // return p + // } + // ... + // auto my_lambda = [](void*, int idx) { + // double t = idx / 999.0; + // return ImPlotPoint(t, 0.5+0.5*std::sin(2*PI*10*t)); + // }; + // ... + // if (ImPlot::BeginPlot("MyPlot")) { + // MyData my_data; + // ImPlot::PlotScatterG("scatter", MyDataGetter, &my_data, my_data.Size()); + // ImPlot::PlotLineG("line", my_lambda, nullptr, 1000); + // ImPlot::EndPlot(); + // } + // + // NB: All types are converted to double before plotting. You may lose information + // if you try plotting extremely large 64-bit integral types. Proceed with caution! - /** - * Make sure to initialize xsOut, ysOut1, and ysOut2 with length xs.length, ys1.length, and ys2.length before passing them, or data may be lost/errors may occur - */ - private static void convertArrays(final T[] xs, final T[] ys1, final T[] ys2, final double[] xsOut, final double[] ysOut1, final double[] ysOut2) { - if (xs.length != ys1.length || xs.length != ys2.length) { - throw new IllegalArgumentException("Invalid length for arrays"); - } - - for (int i = 0; i < xs.length; i++) { - xsOut[i] = xs[i].doubleValue(); - ysOut1[i] = ys1[i].doubleValue(); - ysOut2[i] = ys2[i].doubleValue(); - } - } - - /** - * Plots a standard 2D line plot. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! - */ - public static void plotLine(final String labelID, final T[] xs, final T[] ys) { - plotLine(labelID, xs, ys, 0); - } - - /** - * Plots a standard 2D line plot. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! - */ - public static void plotLine(final String labelID, final T[] xs, final T[] ys, final int offset) { - final double[] x = new double[xs.length]; - final double[] y = new double[ys.length]; - convertArrays(xs, ys, x, y); - - nPlotLine(labelID, x, y, x.length, offset); - } + // values /** * Plots a standard 2D line plot. */ - public static void plotLine(final String labelID, final double[] xs, final double[] ys, final int size, final int offset) { - nPlotLine(labelID, xs, ys, size, offset); - } - - private static native void nPlotLine(String labelID, double[] xs, double[] ys, int size, int offset); /* - ImPlot::PlotLine(labelID, xs, ys, size, offset); - */ + @BindingMethod + public static native void PlotLine(String labelId, short[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double xscale, @OptArg double x0, @OptArg int offset); /** - * Plots a standard 2D scatter plot. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots a standard 2D line plot. */ - public static void plotScatter(final String labelID, final T[] xs, final T[] ys) { - plotScatter(labelID, xs, ys, 0); - } + @BindingMethod + public static native void PlotLine(String labelId, int[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double xscale, @OptArg double x0, @OptArg int offset); /** - * Plots a standard 2D scatter plot. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots a standard 2D line plot. */ - public static void plotScatter(final String labelID, final T[] xs, final T[] ys, final int offset) { - final double[] x = new double[xs.length]; - final double[] y = new double[ys.length]; - convertArrays(xs, ys, x, y); - - nPlotScatter(labelID, x, y, x.length, offset); - } - - public static void plotScatter(final String labelID, final double[] xs, final double[] ys, final int size, final int offset) { - nPlotScatter(labelID, xs, ys, size, offset); - } - - private static native void nPlotScatter(String labelID, double[] xs, double[] ys, int size, int offset); /* - ImPlot::PlotScatter(labelID, xs, ys, size, offset); - */ + @BindingMethod + public static native void PlotLine(String labelId, long[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double xscale, @OptArg double x0, @OptArg int offset); /** - * Plots a a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots a standard 2D line plot. */ - public static void plotStairs(final String labelID, final T[] xs, final T[] ys) { - plotStairs(labelID, xs, ys, 0); - } + @BindingMethod + public static native void PlotLine(String labelId, float[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double xscale, @OptArg double x0, @OptArg int offset); /** - * Plots a a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots a standard 2D line plot. */ - public static void plotStairs(final String labelID, final T[] xs, final T[] ys, final int offset) { - final double[] x = new double[xs.length]; - final double[] y = new double[ys.length]; - convertArrays(xs, ys, x, y); + @BindingMethod + public static native void PlotLine(String labelId, double[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double xscale, @OptArg double x0, @OptArg int offset); - nPlotStairs(labelID, x, y, x.length, offset); - } + // xs,ys /** - * Plots a a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + * Plots a standard 2D line plot. */ - public static void plotStairs(final String labelID, final double[] xs, final double[] ys, final int size, final int offset) { - nPlotStairs(labelID, xs, ys, size, offset); - } - - private static native void nPlotStairs(String labelID, double[] xs, double[] ys, int size, int offset); /* - ImPlot::PlotStairs(labelID, xs, ys, size, offset); - */ + @BindingMethod + public static native void PlotLine(String labelId, short[] xs, short[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); /** - * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set yRef (default 0) to +/-INFINITY for infinite fill extents. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots a standard 2D line plot. */ - public static void plotShaded(final String labelID, final T[] xs, final T[] ys, final int yRef) { - plotShaded(labelID, xs, ys, yRef, 0); - } + @BindingMethod + public static native void PlotLine(String labelId, int[] xs, int[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); /** - * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots a standard 2D line plot. */ - public static void plotShaded(final String labelID, final T[] xs, final T[] ys1, final T[] ys2) { - plotShaded(labelID, xs, ys1, ys2, 0); - } + @BindingMethod + public static native void PlotLine(String labelId, long[] xs, long[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); /** - * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set yRef (default 0) to +/-INFINITY for infinite fill extents. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots a standard 2D line plot. */ - public static void plotShaded(final String labelID, final T[] xs, final T[] ys, final int yRef, final int offset) { - final double[] x = new double[xs.length]; - final double[] y = new double[ys.length]; - convertArrays(xs, ys, x, y); - - nPlotShaded(labelID, x, y, x.length, yRef, offset); - } + @BindingMethod + public static native void PlotLine(String labelId, float[] xs, float[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); /** - * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots a standard 2D line plot. */ - public static void plotShaded(final String labelID, final T[] xs, final T[] ys1, final T[] ys2, final int offset) { - final double[] x = new double[xs.length]; - final double[] y1 = new double[ys1.length]; - final double[] y2 = new double[ys2.length]; - convertArrays(xs, ys1, ys2, x, y1, y2); + @BindingMethod + public static native void PlotLine(String labelId, double[] xs, double[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); - nPlotShaded(labelID, x, y1, y2, x.length, offset); - } + // values /** - * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set yRef (default 0) to +/-INFINITY for infinite fill extents. + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. */ - public static void plotShaded(final String labelID, final double[] xs, final double[] ys, final int size, final int yRef, final int offset) { - nPlotShaded(labelID, xs, ys, size, yRef, offset); - } - - private static native void nPlotShaded(String labelID, double[] xs, double[] ys, int size, int yRef, int offset); /* - ImPlot::PlotShaded(labelID, xs, ys, size, yRef, offset); - */ + @BindingMethod + public static native void PlotScatter(String labelId, short[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double xscale, @OptArg double x0, @OptArg int offset); /** - * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. */ - public static void plotShaded(final String labelID, final double[] xs, final double[] ys1, final double[] ys2, final int size, final int offset) { - nPlotShaded(labelID, xs, ys1, ys2, size, offset); - } - - private static native void nPlotShaded(String labelID, double[] xs, double[] ys1, double[] ys2, int size, int offset); /* - ImPlot::PlotShaded(labelID, xs, ys1, ys2, size, offset); - */ + @BindingMethod + public static native void PlotScatter(String labelId, int[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double xscale, @OptArg double x0, @OptArg int offset); /** - * Plots a vertical bar graph. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. */ - public static void plotBars(final String labelID, final T[] xs, final T[] ys) { - plotBars(labelID, xs, ys, 0.67f, 0); - } + @BindingMethod + public static native void PlotScatter(String labelId, long[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double xscale, @OptArg double x0, @OptArg int offset); /** - * Plots a vertical bar graph. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! - * @param width is in X units + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. */ - public static void plotBars(final String labelID, final T[] xs, final T[] ys, final float width) { - plotBars(labelID, xs, ys, width, 0); - } + @BindingMethod + public static native void PlotScatter(String labelId, float[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double xscale, @OptArg double x0, @OptArg int offset); /** - * Plots a vertical bar graph. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! - * @param width is in X units + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. */ - public static void plotBars(final String labelID, final T[] xs, final T[] ys, final float width, final int offset) { - final double[] x = new double[xs.length]; - final double[] y = new double[ys.length]; - convertArrays(xs, ys, x, y); + @BindingMethod + public static native void PlotScatter(String labelId, double[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double xscale, @OptArg double x0, @OptArg int offset); - nPlotBars(labelID, x, y, x.length, width, offset); - } + // xs,ys /** - * Plots a vertical bar graph. - * @param width is in X units + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. */ - public static void plotBars(final String labelID, final double[] xs, final double[] ys, final int size, final float width, final int offset) { - nPlotBars(labelID, xs, ys, size, width, offset); - } - - private static native void nPlotBars(String labelID, double[] xs, double[] ys, int size, float width, int offset); /* - ImPlot::PlotBars(labelID, xs, ys, size, width, offset); - */ + @BindingMethod + public static native void PlotScatter(String labelId, short[] xs, short[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); /** - * Plots a horizontal bar graph. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. */ - public static void plotBarsH(final String labelID, final T[] xs, final T[] ys) { - plotBarsH(labelID, xs, ys, 0.67f, 0); - } + @BindingMethod + public static native void PlotScatter(String labelId, int[] xs, int[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); /** - * Plots a horizontal bar graph. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! - * @param height is in Y units + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. */ - public static void plotBarsH(final String labelID, final T[] xs, final T[] ys, final float height) { - plotBarsH(labelID, xs, ys, height, 0); - } + @BindingMethod + public static native void PlotScatter(String labelId, long[] xs, long[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); /** - * Plots a horizontal bar graph. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! - * @param height is in Y units + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. */ - public static void plotBarsH(final String labelID, final T[] xs, final T[] ys, final float height, final int offset) { - final double[] x = new double[xs.length]; - final double[] y = new double[ys.length]; - convertArrays(xs, ys, x, y); - - nPlotBarsH(labelID, x, y, x.length, height, offset); - } + @BindingMethod + public static native void PlotScatter(String labelId, float[] xs, float[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); /** - * Plots a horizontal bar graph. - * @param height is in Y units + * Plots a standard 2D scatter plot. Default marker is ImPlotMarker_Circle. */ - public static void plotBarsH(final String labelID, final double[] xs, final double[] ys, final int size, final float height, final int offset) { - nPlotBarsH(labelID, xs, ys, size, height, offset); - } + @BindingMethod + public static native void PlotScatter(String labelId, double[] xs, double[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); - private static native void nPlotBarsH(String labelID, double[] xs, double[] ys, int size, float height, int offset); /* - ImPlot::PlotBarsH(labelID, xs, ys, size, height, offset); - */ + // values /** - * Plots vertical error bar. The labelID should be the same as the labelID of the associated line or bar plot. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. */ - public static void plotErrorBars(final String labelID, final T[] xs, final T[] ys, final T[] err) { - plotErrorBars(labelID, xs, ys, err, 0); - } + @BindingMethod + public static native void PlotStairs(String labelId, short[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double xscale, @OptArg double x0, @OptArg int offset); /** - * Plots vertical error bar. The labelID should be the same as the labelID of the associated line or bar plot. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. */ - public static void plotErrorBars(final String labelID, final T[] xs, final T[] ys, final T[] err, final int offset) { - final double[] x = new double[xs.length]; - final double[] y = new double[ys.length]; - final double[] errOut = new double[err.length]; - convertArrays(xs, ys, x, y); - convertArrays(xs, err, x, errOut); //It's easier here to just do the X array twice than process the err array alone - - nPlotErrorBars(labelID, x, y, errOut, x.length, offset); - } + @BindingMethod + public static native void PlotStairs(String labelId, int[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double xscale, @OptArg double x0, @OptArg int offset); /** - * Plots vertical error bar. The labelID should be the same as the labelID of the associated line or bar plot. + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. */ - public static void plotErrorBars(final String labelID, final double[] xs, final double[] ys, final double[] err, final int size, final int offset) { - nPlotErrorBars(labelID, xs, ys, err, size, offset); - } - - private static native void nPlotErrorBars(String labelID, double[] xs, double[] ys, double[] err, int size, int offset); /* - ImPlot::PlotErrorBars(labelID, xs, ys, err, size, offset); - */ + @BindingMethod + public static native void PlotStairs(String labelId, long[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double xscale, @OptArg double x0, @OptArg int offset); /** - * Plots horizontal error bar. The labelID should be the same as the labelID of the associated line or bar plot. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. */ - public static void plotErrorBarsH(final String labelID, final T[] xs, final T[] ys, final T[] err) { - plotErrorBarsH(labelID, xs, ys, err, 0); - } + @BindingMethod + public static native void PlotStairs(String labelId, float[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double xscale, @OptArg double x0, @OptArg int offset); /** - * Plots horizontal error bar. The labelID should be the same as the labelID of the associated line or bar plot. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. */ - public static void plotErrorBarsH(final String labelID, final T[] xs, final T[] ys, final T[] err, final int offset) { - final double[] x = new double[xs.length]; - final double[] y = new double[ys.length]; - final double[] errOut = new double[err.length]; - convertArrays(xs, ys, x, y); - convertArrays(xs, err, x, errOut); //It's easier here to just do the X array twice than process the err array alone + @BindingMethod + public static native void PlotStairs(String labelId, double[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double xscale, @OptArg double x0, @OptArg int offset); - nPlotErrorBarsH(labelID, x, y, errOut, x.length, offset); - } + // xs,ys /** - * Plots horizontal error bar. The labelID should be the same as the labelID of the associated line or bar plot. + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. */ - public static void plotErrorBarsH(final String labelID, final double[] xs, final double[] ys, final double[] err, final int size, final int offset) { - nPlotErrorBarsH(labelID, xs, ys, err, size, offset); - } - - private static native void nPlotErrorBarsH(String labelID, double[] xs, double[] ys, double[] err, int size, int offset); /* - ImPlot::PlotErrorBarsH(labelID, xs, ys, err, size, offset); - */ + @BindingMethod + public static native void PlotStairs(String labelId, short[] xs, short[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); /** - * Plots vertical stems. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. */ - public static void plotStems(final String labelID, final T[] values, final int yRef) { - plotStems(labelID, values, yRef, 0); - } + @BindingMethod + public static native void PlotStairs(String labelId, int[] xs, int[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); /** - * Plots vertical stems. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. */ - public static void plotStems(final String labelID, final T[] values, final int yRef, final int offset) { - final double[] v = new double[values.length]; - for (int i = 0; i < values.length; i++) { - v[i] = values[i].doubleValue(); - } + @BindingMethod + public static native void PlotStairs(String labelId, long[] xs, long[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); - nPlotStems(labelID, v, v.length, yRef, offset); - } + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + @BindingMethod + public static native void PlotStairs(String labelId, float[] xs, float[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots a stairstep graph. The y value is continued constantly from every x position, i.e. the interval [x[i], x[i+1]) has the value y[i]. + */ + @BindingMethod + public static native void PlotStairs(String labelId, double[] xs, double[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + // values + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + @BindingMethod + public static native void PlotShaded(String labelId, short[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double yRef, @OptArg double xscale, @OptArg double x0, @OptArg int offset); + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + @BindingMethod + public static native void PlotShaded(String labelId, int[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double yRef, @OptArg double xscale, @OptArg double x0, @OptArg int offset); + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + @BindingMethod + public static native void PlotShaded(String labelId, long[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double yRef, @OptArg double xscale, @OptArg double x0, @OptArg int offset); + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + @BindingMethod + public static native void PlotShaded(String labelId, float[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double yRef, @OptArg double xscale, @OptArg double x0, @OptArg int offset); + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + @BindingMethod + public static native void PlotShaded(String labelId, double[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double yRef, @OptArg double xscale, @OptArg double x0, @OptArg int offset); + + // xs,ys + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + @BindingMethod + public static native void PlotShaded(String labelId, short[] xs, short[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg double yRef, @OptArg int offset); + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + @BindingMethod + public static native void PlotShaded(String labelId, int[] xs, int[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg double yRef, @OptArg int offset); + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + @BindingMethod + public static native void PlotShaded(String labelId, long[] xs, long[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg double yRef, @OptArg int offset); + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + @BindingMethod + public static native void PlotShaded(String labelId, float[] xs, float[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg double yRef, @OptArg int offset); + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + @BindingMethod + public static native void PlotShaded(String labelId, double[] xs, double[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg double yRef, @OptArg int offset); + + // xs,ys1,ys2 + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + @BindingMethod + public static native void PlotShaded(String labelId, short[] xs, short[] ys1, short[] ys2, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + @BindingMethod + public static native void PlotShaded(String labelId, int[] xs, int[] ys1, int[] ys2, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + @BindingMethod + public static native void PlotShaded(String labelId, long[] xs, long[] ys1, long[] ys2, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + @BindingMethod + public static native void PlotShaded(String labelId, float[] xs, float[] ys1, float[] ys2, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots a shaded (filled) region between two lines, or a line and a horizontal reference. Set y_ref to +/-INFINITY for infinite fill extents. + */ + @BindingMethod + public static native void PlotShaded(String labelId, double[] xs, double[] ys1, double[] ys2, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + // values + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + @BindingMethod + public static native void PlotBars(String labelId, short[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double width, @OptArg double shift, @OptArg int offset); + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + @BindingMethod + public static native void PlotBars(String labelId, int[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double width, @OptArg double shift, @OptArg int offset); + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + @BindingMethod + public static native void PlotBars(String labelId, long[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double width, @OptArg double shift, @OptArg int offset); + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + @BindingMethod + public static native void PlotBars(String labelId, float[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double width, @OptArg double shift, @OptArg int offset); + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + @BindingMethod + public static native void PlotBars(String labelId, double[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double width, @OptArg double shift, @OptArg int offset); + + // xs,ys + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + @BindingMethod + public static native void PlotBars(String labelId, short[] xs, short[] ys, @ArgValue(callValue = "LEN(xs)") Void count, double width, @OptArg int offset); + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + @BindingMethod + public static native void PlotBars(String labelId, int[] xs, int[] ys, @ArgValue(callValue = "LEN(xs)") Void count, double width, @OptArg int offset); + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + @BindingMethod + public static native void PlotBars(String labelId, long[] xs, long[] ys, @ArgValue(callValue = "LEN(xs)") Void count, double width, @OptArg int offset); + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + @BindingMethod + public static native void PlotBars(String labelId, float[] xs, float[] ys, @ArgValue(callValue = "LEN(xs)") Void count, double width, @OptArg int offset); + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + @BindingMethod + public static native void PlotBars(String labelId, double[] xs, double[] ys, @ArgValue(callValue = "LEN(xs)") Void count, double width, @OptArg int offset); + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + @BindingMethod + public static native void PlotBars(String labelId, short[] xs, short[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @ArgValue(callValue = "0.67") Void width, @OptArg int offset); + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + @BindingMethod + public static native void PlotBars(String labelId, int[] xs, int[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @ArgValue(callValue = "0.67") Void width, @OptArg int offset); + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + @BindingMethod + public static native void PlotBars(String labelId, long[] xs, long[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @ArgValue(callValue = "0.67") Void width, @OptArg int offset); + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + @BindingMethod + public static native void PlotBars(String labelId, float[] xs, float[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @ArgValue(callValue = "0.67") Void width, @OptArg int offset); + + /** + * Plots a vertical bar graph. #width and #shift are in X units. + */ + @BindingMethod + public static native void PlotBars(String labelId, double[] xs, double[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @ArgValue(callValue = "0.67") Void width, @OptArg int offset); + + // values + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + @BindingMethod + public static native void PlotBarsH(String labelId, short[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double height, @OptArg double shift, @OptArg int offset); + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + @BindingMethod + public static native void PlotBarsH(String labelId, int[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double height, @OptArg double shift, @OptArg int offset); + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + @BindingMethod + public static native void PlotBarsH(String labelId, long[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double height, @OptArg double shift, @OptArg int offset); + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + @BindingMethod + public static native void PlotBarsH(String labelId, float[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double height, @OptArg double shift, @OptArg int offset); + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + @BindingMethod + public static native void PlotBarsH(String labelId, double[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double height, @OptArg double shift, @OptArg int offset); + + // xs,ys + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + @BindingMethod + public static native void PlotBarsH(String labelId, short[] xs, short[] ys, @ArgValue(callValue = "LEN(xs)") Void count, double height, @OptArg int offset); + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + @BindingMethod + public static native void PlotBarsH(String labelId, int[] xs, int[] ys, @ArgValue(callValue = "LEN(xs)") Void count, double height, @OptArg int offset); + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + @BindingMethod + public static native void PlotBarsH(String labelId, long[] xs, long[] ys, @ArgValue(callValue = "LEN(xs)") Void count, double height, @OptArg int offset); + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + @BindingMethod + public static native void PlotBarsH(String labelId, float[] xs, float[] ys, @ArgValue(callValue = "LEN(xs)") Void count, double height, @OptArg int offset); + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + @BindingMethod + public static native void PlotBarsH(String labelId, double[] xs, double[] ys, @ArgValue(callValue = "LEN(xs)") Void count, double height, @OptArg int offset); + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + @BindingMethod + public static native void PlotBarsH(String labelId, short[] xs, short[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @ArgValue(callValue = "0.67") Void height, @OptArg int offset); + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + @BindingMethod + public static native void PlotBarsH(String labelId, int[] xs, int[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @ArgValue(callValue = "0.67") Void height, @OptArg int offset); + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + @BindingMethod + public static native void PlotBarsH(String labelId, long[] xs, long[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @ArgValue(callValue = "0.67") Void height, @OptArg int offset); + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + @BindingMethod + public static native void PlotBarsH(String labelId, float[] xs, float[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @ArgValue(callValue = "0.67") Void height, @OptArg int offset); + + /** + * Plots a horizontal bar graph. #height and #shift are in Y units. + */ + @BindingMethod + public static native void PlotBarsH(String labelId, double[] xs, double[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @ArgValue(callValue = "0.67") Void height, @OptArg int offset); + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + @BindingMethod + public static native void PlotErrorBars(String labelId, short[] xs, short[] ys, short[] err, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + @BindingMethod + public static native void PlotErrorBars(String labelId, int[] xs, int[] ys, int[] err, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + @BindingMethod + public static native void PlotErrorBars(String labelId, long[] xs, long[] ys, long[] err, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + @BindingMethod + public static native void PlotErrorBars(String labelId, float[] xs, float[] ys, float[] err, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + @BindingMethod + public static native void PlotErrorBars(String labelId, double[] xs, double[] ys, double[] err, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + @BindingMethod + public static native void PlotErrorBars(String labelId, short[] xs, short[] ys, short[] neg, short[] pos, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + @BindingMethod + public static native void PlotErrorBars(String labelId, int[] xs, int[] ys, int[] neg, int[] pos, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + @BindingMethod + public static native void PlotErrorBars(String labelId, long[] xs, long[] ys, long[] neg, long[] pos, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + @BindingMethod + public static native void PlotErrorBars(String labelId, float[] xs, float[] ys, float[] neg, float[] pos, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots vertical error bar. The label_id should be the same as the label_id of the associated line or bar plot. + */ + @BindingMethod + public static native void PlotErrorBars(String labelId, double[] xs, double[] ys, double[] neg, double[] pos, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + @BindingMethod + public static native void PlotErrorBarsH(String labelId, short[] xs, short[] ys, short[] err, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + @BindingMethod + public static native void PlotErrorBarsH(String labelId, int[] xs, int[] ys, int[] err, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + @BindingMethod + public static native void PlotErrorBarsH(String labelId, long[] xs, long[] ys, long[] err, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + @BindingMethod + public static native void PlotErrorBarsH(String labelId, float[] xs, float[] ys, float[] err, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + @BindingMethod + public static native void PlotErrorBarsH(String labelId, double[] xs, double[] ys, double[] err, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + @BindingMethod + public static native void PlotErrorBarsH(String labelId, short[] xs, short[] ys, short[] neg, short[] pos, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + @BindingMethod + public static native void PlotErrorBarsH(String labelId, int[] xs, int[] ys, int[] neg, int[] pos, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + @BindingMethod + public static native void PlotErrorBarsH(String labelId, long[] xs, long[] ys, long[] neg, long[] pos, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + @BindingMethod + public static native void PlotErrorBarsH(String labelId, float[] xs, float[] ys, float[] neg, float[] pos, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots horizontal error bars. The label_id should be the same as the label_id of the associated line or bar plot. + */ + @BindingMethod + public static native void PlotErrorBarsH(String labelId, double[] xs, double[] ys, double[] neg, double[] pos, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + // values /** * Plots vertical stems. */ - public static void plotStems(final String labelID, final double[] values, final int size, final int yRef, final int offset) { - nPlotStems(labelID, values, size, yRef, offset); - } - - private static native void nPlotStems(String labelID, double[] values, int size, int yRef, int offset); /* - ImPlot::PlotStems(labelID, values, size, yRef, offset); - */ + @BindingMethod + public static native void PlotStems(String labelId, short[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double yRef, @OptArg double xscale, @OptArg double x0, @OptArg int offset); /** - * Plots infinite vertical lines (e.g. for references or asymptotes). - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots vertical stems. */ - public static void plotVLines(final String labelID, final T[] values) { - plotVLines(labelID, values, 0); - } + @BindingMethod + public static native void PlotStems(String labelId, int[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double yRef, @OptArg double xscale, @OptArg double x0, @OptArg int offset); /** - *Plots infinite vertical lines (e.g. for references or asymptotes). - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots vertical stems. */ - public static void plotVLines(final String labelID, final T[] values, final int offset) { - final double[] v = new double[values.length]; - for (int i = 0; i < values.length; i++) { - v[i] = values[i].doubleValue(); - } - - nPlotVLines(labelID, v, v.length, offset); - } + @BindingMethod + public static native void PlotStems(String labelId, long[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double yRef, @OptArg double xscale, @OptArg double x0, @OptArg int offset); /** - * Plots infinite vertical lines (e.g. for references or asymptotes). + * Plots vertical stems. */ - public static void plotVLines(final String labelID, final double[] values, final int size, final int offset) { - nPlotVLines(labelID, values, size, offset); - } - - private static native void nPlotVLines(String labelID, double[] values, int size, int offset); /* - ImPlot::PlotVLines(labelID, values, size, offset); - */ + @BindingMethod + public static native void PlotStems(String labelId, float[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double yRef, @OptArg double xscale, @OptArg double x0, @OptArg int offset); /** - * Plots infinite horizontal lines (e.g. for references or asymptotes). - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots vertical stems. */ - public static void plotHLines(final String labelID, final T[] values) { - plotHLines(labelID, values, 0); - } + @BindingMethod + public static native void PlotStems(String labelId, double[] values, @ArgValue(callValue = "LEN(values)") Void count, @OptArg double yRef, @OptArg double xscale, @OptArg double x0, @OptArg int offset); + + // xs,ys /** - * Plots infinite horizontal lines (e.g. for references or asymptotes). - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots vertical stems. */ - public static void plotHLines(final String labelID, final T[] values, final int offset) { - final double[] v = new double[values.length]; - for (int i = 0; i < values.length; i++) { - v[i] = values[i].doubleValue(); - } - - nPlotHLines(labelID, v, v.length, offset); - } + @BindingMethod + public static native void PlotStems(String labelId, short[] xs, short[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg double yRef, @OptArg int offset); /** - * Plots infinite horizontal lines (e.g. for references or asymptotes). + * Plots vertical stems. */ - public static void plotHLines(final String labelID, final double[] values, final int size, final int offset) { - nPlotHLines(labelID, values, size, offset); - } - - private static native void nPlotHLines(String labelID, double[] values, int size, int offset); /* - ImPlot::PlotHLines(labelID, values, size, offset); - */ + @BindingMethod + public static native void PlotStems(String labelId, int[] xs, int[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg double yRef, @OptArg int offset); /** - * Plots a pie chart. If the sum of values {@code >} 1, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots vertical stems. */ - public static void plotPieChart(final String[] labelIDs, final T[] values, final double x, final double y, final double radius) { - final double[] v = new double[values.length]; - for (int i = 0; i < values.length; i++) { - v[i] = values[i].doubleValue(); - } - - String labelIDsSs = ""; - boolean first = true; - int maxSize = 0; - for (String s : labelIDs) { - if (first) { - first = false; - continue; - } else { - labelIDsSs += "\n"; - } - if (s.length() > maxSize) { - maxSize = s.length(); - } - - labelIDsSs += s.replace("\n", ""); - } - - nPlotPieChart(labelIDsSs, maxSize, v, v.length, x, y, radius); - } + @BindingMethod + public static native void PlotStems(String labelId, long[] xs, long[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg double yRef, @OptArg int offset); /** - * Plots a pie chart. If the sum of values {@code >} 1, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + * Plots vertical stems. */ - public static void plotPieChart(final String labelIDsSs, final int strLen, final double[] values, final int size, final double x, final double y, final double radius) { - nPlotPieChart(labelIDsSs, strLen, values, size, x, y, radius); - } - - //JNI function splits up passed string labelIDsSs to array for use in C++, as String[] is not converted by JNI - private static native void nPlotPieChart(String labelIDsSs, int strLen, double[] values, int size, double x, double y, double radius); /* - char** labelIDs = new char*[size]; - - for (int pos = 0; pos < size; pos++) { - char* str = new char[strLen + 1]; - char* str_i = str; - - while (*labelIDsSs != '\n' && *labelIDsSs != '\0') { - *str = *labelIDsSs; - labelIDsSs++; - str++; - } - labelIDsSs++; //move past \n - - labelIDs[pos] = str_i; - } - - ImPlot::PlotPieChart(labelIDs, values, size, x, y, radius); - - for (int i = 0; i < size; i++) { - delete labelIDs[i]; - } - delete[] labelIDs; - */ + @BindingMethod + public static native void PlotStems(String labelId, float[] xs, float[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg double yRef, @OptArg int offset); /** - * Plots a 2D heatmap chart. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! - * @param values must have fixed dimensions (all arrays are same length) + * Plots vertical stems. */ - public static void plotHeatmap(final String labelID, final T[][] values, final int offset) { - final double[] v = new double[values.length * values[0].length]; - int pos = 0; - for (T[] a : values) { - for (T p : a) { - v[pos++] = p.doubleValue(); - } - } - - nPlotHeatmap(labelID, v, values[0].length, values.length); - } + @BindingMethod + public static native void PlotStems(String labelId, double[] xs, double[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg double yRef, @OptArg int offset); /** - * Plots a 2D heatmap chart. - * @param values must have fixed dimensions (all arrays are same length) + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). */ - public static void plotHeatmap(final String labelID, final double[] values, final int rows, final int cols) { - nPlotHeatmap(labelID, values, rows, cols); - } - - private static native void nPlotHeatmap(String labelID, double[] values, int rows, int cols); /* - ImPlot::PlotHeatmap(labelID, values, rows, cols); - */ - -// // Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. -// // If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. -// // If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. -// template IMPLOT_API double PlotHistogram(const char* labelID, const T* values, int count, int bins=ImPlotBin_Sturges, bool cumulative=false, bool density=false, ImPlotRange range=ImPlotRange(), bool outliers=true, double bar_scale=1.0); -// + @BindingMethod + public static native void PlotVLines(String labelId, short[] xs, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); /** - * Plots a horizontal histogram - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). */ - public static double plotHistogram(final String labelID, final T[] values) { - final double[] v = new double[values.length]; - for (int i = 0; i < values.length; i++) { - v[i] = values[i].doubleValue(); - } - - return nPlotHistogram(labelID, v, v.length); - } + @BindingMethod + public static native void PlotVLines(String labelId, int[] xs, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); /** - * Plots a horizontal histogram. + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). */ - public static double plotHistogram(final String labelID, final double[] values, final int size) { - return nPlotHistogram(labelID, values, size); - } - - private static native double nPlotHistogram(String labelID, double[] values, int size); /* - return ImPlot::PlotHistogram(labelID, values, size); - */ + @BindingMethod + public static native void PlotVLines(String labelId, long[] xs, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); /** - * Plots two dimensional, bivariate histogram as a heatmap - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). */ - public static double plotHistogram2D(final String labelID, final T[] xs, final T[] ys) { - final double[] x = new double[xs.length]; - final double[] y = new double[ys.length]; - convertArrays(xs, ys, x, y); - - return nPlotHistogram2D(labelID, x, y, x.length); - } + @BindingMethod + public static native void PlotVLines(String labelId, float[] xs, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); /** - * Plots two dimensional, bivariate histogram as a heatmap. + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). */ - public static double plotHistogram2D(final String labelID, final double[] xs, final double[] ys, final int size) { - return nPlotHistogram2D(labelID, xs, ys, size); - } - - private static native double nPlotHistogram2D(String labelID, double[] xs, double[] ys, int size); /* - return ImPlot::PlotHistogram2D(labelID, xs, ys, size); - */ - -// // -// template IMPLOT_API void PlotDigital(const char* labelID, const T* xs, const T* ys, int count, int offset=0, int stride=sizeof(T)); -// IMPLOT_API void PlotDigitalG(const char* labelID, ImPlotPoint (*getter)(void* data, int idx), void* data, int count, int offset=0); -// + @BindingMethod + public static native void PlotVLines(String labelId, double[] xs, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); /** - * Plots digital data. Digital plots do not respond to y drag or zoom, and are always referenced to the bottom of the plot. - * Due to conversion from T to double, extremely large 64-bit integer (long) values may lose data! + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). */ - public static void plotDigital(final String labelID, final T[] xs, final T[] ys) { - final double[] x = new double[xs.length]; - final double[] y = new double[ys.length]; - convertArrays(xs, ys, x, y); + @BindingMethod + public static native void PlotHLines(String labelId, short[] ys, @ArgValue(callValue = "LEN(ys)") Void count, @OptArg int offset); - nPlotDigital(labelID, x, y, x.length); - } + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + @BindingMethod + public static native void PlotHLines(String labelId, int[] ys, @ArgValue(callValue = "LEN(ys)") Void count, @OptArg int offset); + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + @BindingMethod + public static native void PlotHLines(String labelId, long[] ys, @ArgValue(callValue = "LEN(ys)") Void count, @OptArg int offset); + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + @BindingMethod + public static native void PlotHLines(String labelId, float[] ys, @ArgValue(callValue = "LEN(ys)") Void count, @OptArg int offset); + + /** + * Plots infinite vertical or horizontal lines (e.g. for references or asymptotes). + */ + @BindingMethod + public static native void PlotHLines(String labelId, double[] ys, @ArgValue(callValue = "LEN(ys)") Void count, @OptArg int offset); + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + @BindingMethod + public static native void PlotPieChart(String[] labelIds, + short[] values, + @ArgValue(callValue = "LEN(values)") Void count, + double x, + double y, + double radius, + @OptArg(callValue = "false") boolean normalize, + @OptArg(callValue = "\"%.1f\"") String labelFmt, + @OptArg double angle0); + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + @BindingMethod + public static native void PlotPieChart(String[] labelIds, + int[] values, + @ArgValue(callValue = "LEN(values)") Void count, + double x, + double y, + double radius, + @OptArg(callValue = "false") boolean normalize, + @OptArg(callValue = "\"%.1f\"") String labelFmt, + @OptArg double angle0); + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + @BindingMethod + public static native void PlotPieChart(String[] labelIds, + long[] values, + @ArgValue(callValue = "LEN(values)") Void count, + double x, + double y, + double radius, + @OptArg(callValue = "false") boolean normalize, + @OptArg(callValue = "\"%.1f\"") String labelFmt, + @OptArg double angle0); + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + @BindingMethod + public static native void PlotPieChart(String[] labelIds, + float[] values, + @ArgValue(callValue = "LEN(values)") Void count, + double x, + double y, + double radius, + @OptArg(callValue = "false") boolean normalize, + @OptArg(callValue = "\"%.1f\"") String labelFmt, + @OptArg double angle0); + + /** + * Plots a pie chart. If the sum of values{@code >}1 or normalize is true, each value will be normalized. Center and radius are in plot units. #label_fmt can be set to NULL for no labels. + */ + @BindingMethod + public static native void PlotPieChart(String[] labelIds, + double[] values, + @ArgValue(callValue = "LEN(values)") Void count, + double x, + double y, + double radius, + @OptArg(callValue = "false") boolean normalize, + @OptArg(callValue = "\"%.1f\"") String labelFmt, + @OptArg double angle0); + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + @BindingMethod + public static native void PlotHeatmap(String labelId, + short[] values, + int rows, + int cols, + @OptArg double scaleMin, + @OptArg double scaleMax, + @OptArg(callValue = "\"%.1f\"") String labelFmt, + @OptArg ImPlotPoint boundsMin, + @OptArg ImPlotPoint boundsMax); + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + @BindingMethod + public static native void PlotHeatmap(String labelId, + int[] values, + int rows, + int cols, + @OptArg double scaleMin, + @OptArg double scaleMax, + @OptArg(callValue = "\"%.1f\"") String labelFmt, + @OptArg ImPlotPoint boundsMin, + @OptArg ImPlotPoint boundsMax); + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + @BindingMethod + public static native void PlotHeatmap(String labelId, + long[] values, + int rows, + int cols, + @OptArg double scaleMin, + @OptArg double scaleMax, + @OptArg(callValue = "\"%.1f\"") String labelFmt, + @OptArg ImPlotPoint boundsMin, + @OptArg ImPlotPoint boundsMax); + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + @BindingMethod + public static native void PlotHeatmap(String labelId, + float[] values, + int rows, + int cols, + @OptArg double scaleMin, + @OptArg double scaleMax, + @OptArg(callValue = "\"%.1f\"") String labelFmt, + @OptArg ImPlotPoint boundsMin, + @OptArg ImPlotPoint boundsMax); + + /** + * Plots a 2D heatmap chart. Values are expected to be in row-major order. Leave #scale_min and scale_max both at 0 for automatic color scaling, or set them to a predefined range. #label_fmt can be set to NULL for no labels. + */ + @BindingMethod + public static native void PlotHeatmap(String labelId, + double[] values, + int rows, + int cols, + @OptArg double scaleMin, + @OptArg double scaleMax, + @OptArg(callValue = "\"%.1f\"") String labelFmt, + @OptArg ImPlotPoint boundsMin, + @OptArg ImPlotPoint boundsMax); + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + @BindingMethod + public static native double PlotHistogram(String labelId, + short[] values, + @ArgValue(callValue = "LEN(values)") Void count, + @OptArg(callValue = "ImPlotBin_Sturges") int bins, + @OptArg boolean cumulative, + @OptArg boolean density, + @OptArg(callValue = "ImPlotRange()") ImPlotRange range, + @OptArg(callValue = "true") boolean outliers, + @OptArg double barScale); + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + @BindingMethod + public static native double PlotHistogram(String labelId, + int[] values, + @ArgValue(callValue = "LEN(values)") Void count, + @OptArg(callValue = "ImPlotBin_Sturges") int bins, + @OptArg boolean cumulative, + @OptArg boolean density, + @OptArg(callValue = "ImPlotRange()") ImPlotRange range, + @OptArg(callValue = "true") boolean outliers, + @OptArg double barScale); + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + @BindingMethod + public static native double PlotHistogram(String labelId, + long[] values, + @ArgValue(callValue = "LEN(values)") Void count, + @OptArg(callValue = "ImPlotBin_Sturges") int bins, + @OptArg boolean cumulative, + @OptArg boolean density, + @OptArg(callValue = "ImPlotRange()") ImPlotRange range, + @OptArg(callValue = "true") boolean outliers, + @OptArg double barScale); + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + @BindingMethod + public static native double PlotHistogram(String labelId, + float[] values, + @ArgValue(callValue = "LEN(values)") Void count, + @OptArg(callValue = "ImPlotBin_Sturges") int bins, + @OptArg boolean cumulative, + @OptArg boolean density, + @OptArg(callValue = "ImPlotRange()") ImPlotRange range, + @OptArg(callValue = "true") boolean outliers, + @OptArg double barScale); + + /** + * Plots a horizontal histogram. #bins can be a positive integer or an ImPlotBin_ method. If #cumulative is true, each bin contains its count plus the counts of all previous bins. + * If #density is true, the PDF is visualized. If both are true, the CDF is visualized. If #range is left unspecified, the min/max of #values will be used as the range. + * If #range is specified, outlier values outside of the range are not binned. However, outliers still count toward normalizing and cumulative counts unless #outliers is false. The largest bin count or density is returned. + */ + @BindingMethod + public static native double PlotHistogram(String labelId, + double[] values, + @ArgValue(callValue = "LEN(values)") Void count, + @OptArg(callValue = "ImPlotBin_Sturges") int bins, + @OptArg boolean cumulative, + @OptArg boolean density, + @OptArg(callValue = "ImPlotRange()") ImPlotRange range, + @OptArg(callValue = "true") boolean outliers, + @OptArg double barScale); + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + @BindingMethod + public static native double PlotHistogram2D(String labelId, + short[] xs, + short[] ys, + @ArgValue(callValue = "LEN(xs)") Void count, + @OptArg int xBins, + @OptArg int yBins, + @OptArg(callValue = "false") boolean density, + @OptArg(callValue = "ImPlotLimits()") ImPlotLimits range, + @OptArg boolean outliers); + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + @BindingMethod + public static native double PlotHistogram2D(String labelId, + int[] xs, + int[] ys, + @ArgValue(callValue = "LEN(xs)") Void count, + @OptArg int xBins, + @OptArg int yBins, + @OptArg(callValue = "false") boolean density, + @OptArg(callValue = "ImPlotLimits()") ImPlotLimits range, + @OptArg boolean outliers); + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + @BindingMethod + public static native double PlotHistogram2D(String labelId, + long[] xs, + long[] ys, + @ArgValue(callValue = "LEN(xs)") Void count, + @OptArg int xBins, + @OptArg int yBins, + @OptArg(callValue = "false") boolean density, + @OptArg(callValue = "ImPlotLimits()") ImPlotLimits range, + @OptArg boolean outliers); + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + @BindingMethod + public static native double PlotHistogram2D(String labelId, + float[] xs, + float[] ys, + @ArgValue(callValue = "LEN(xs)") Void count, + @OptArg int xBins, + @OptArg int yBins, + @OptArg(callValue = "false") boolean density, + @OptArg(callValue = "ImPlotLimits()") ImPlotLimits range, + @OptArg boolean outliers); + + /** + * Plots two dimensional, bivariate histogram as a heatmap. #x_bins and #y_bins can be a positive integer or an ImPlotBin. If #density is true, the PDF is visualized. + * If #range is left unspecified, the min/max of #xs an #ys will be used as the ranges. If #range is specified, outlier values outside of range are not binned. + * However, outliers still count toward the normalizing count for density plots unless #outliers is false. The largest bin count or density is returned. + */ + @BindingMethod + public static native double PlotHistogram2D(String labelId, + double[] xs, + double[] ys, + @ArgValue(callValue = "LEN(xs)") Void count, + @OptArg int xBins, + @OptArg int yBins, + @OptArg(callValue = "false") boolean density, + @OptArg(callValue = "ImPlotLimits()") ImPlotLimits range, + @OptArg boolean outliers); /** * Plots digital data. Digital plots do not respond to y drag or zoom, and are always referenced to the bottom of the plot. */ - public static void plotDigital(final String labelID, final double[] xs, final double[] ys, final int size) { - nPlotDigital(labelID, xs, ys, size); - } - - private static native void nPlotDigital(String labelID, double[] xs, double[] ys, int size); /* - ImPlot::PlotDigital(labelID, xs, ys, size); - */ - - //TODO not yet supported -// // Plots an axis-aligned image. #bounds_min/bounds_max are in plot coordinates (y-up) and #uv0/uv1 are in texture coordinates (y-down). -// IMPLOT_API void PlotImage(const char* labelID, ImTextureID user_texture_id, const ImPlotPoint& bounds_min, const ImPlotPoint& bounds_max, const ImVec2& uv0=ImVec2(0,0), const ImVec2& uv1=ImVec2(1,1), const ImVec4& tint_col=ImVec4(1,1,1,1)); + @BindingMethod + public static native void PlotDigital(String labelId, short[] xs, short[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); /** - * Plots a centered text label at point x,y + * Plots digital data. Digital plots do not respond to y drag or zoom, and are always referenced to the bottom of the plot. */ - public static void plotText(final String text, final double x, final double y) { - plotText(text, x, y, false); - } + @BindingMethod + public static native void PlotDigital(String labelId, int[] xs, int[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); /** - * Plots a centered text label at point x,y + * Plots digital data. Digital plots do not respond to y drag or zoom, and are always referenced to the bottom of the plot. */ - public static native void plotText(String text, double x, double y, boolean vertical); /* - ImPlot::PlotText(text, x, y, vertical); - */ + @BindingMethod + public static native void PlotDigital(String labelId, long[] xs, long[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots digital data. Digital plots do not respond to y drag or zoom, and are always referenced to the bottom of the plot. + */ + @BindingMethod + public static native void PlotDigital(String labelId, float[] xs, float[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots digital data. Digital plots do not respond to y drag or zoom, and are always referenced to the bottom of the plot. + */ + @BindingMethod + public static native void PlotDigital(String labelId, double[] xs, double[] ys, @ArgValue(callValue = "LEN(xs)") Void count, @OptArg int offset); + + /** + * Plots an axis-aligned image. #bounds_min/bounds_max are in plot coordinates (y-up) and #uv0/uv1 are in texture coordinates (y-down). + */ + @BindingMethod + public static native void PlotImage(String labelId, @ArgValue(callPrefix = "(ImTextureID)(intptr_t)") int userTextureId, ImPlotPoint boundsMin, ImPlotPoint boundsMax, @OptArg ImVec2 uv0, @OptArg ImVec2 uv1, @OptArg ImVec4 tintCol); + + /** + * Plots a centered text label at point x,y with an optional pixel offset. Text color can be changed with ImPlot::PushStyleColor(ImPlotCol_InlayText, ...). + */ + @BindingMethod + public static native void PlotText(String text, double x, double y, @OptArg(callValue = "false") boolean vertical, @OptArg ImVec2 pixOffset); /** * Plots a dummy item (i.e. adds a legend entry colored by ImPlotCol_Line) */ - public static native void plotDummy(String labelID); /* - ImPlot::PlotDummy(labelID); - */ + @BindingMethod + public static native void PlotDummy(String labelID); + + /*JNI + #undef LEN + #undef long + */ //----------------------------------------------------------------------------- // Plot Utils //----------------------------------------------------------------------------- /** - * This function MUST be called BEFORE beginPlot! * Set the axes range limits of the next plot. Call right before BeginPlot(). If ImGuiCond_Always is used, the axes limits will be locked. */ - public static native void setNextPlotLimits(double xmin, double xmax, double ymin, double ymax, int imguicond); /* - ImPlot::SetNextPlotLimits(xmin, xmax, ymin, ymax, imguicond); - */ + @BindingMethod + public static native void SetNextPlotLimits(double xMin, double xMax, double yMin, double yMax, @OptArg int cond); /** - * This function MUST be called BEFORE beginPlot! * Set the X axis range limits of the next plot. Call right before BeginPlot(). If ImGuiCond_Always is used, the X axis limits will be locked. */ - public static native void setNextPlotLimitsX(double xmin, double xmax, int imguicond); /* - ImPlot::SetNextPlotLimitsX(xmin, xmax, imguicond); - */ + @BindingMethod + public static native void SetNextPlotLimitsX(double xMin, double xMax, @OptArg int cond); /** - * This function MUST be called BEFORE beginPlot! * Set the Y axis range limits of the next plot. Call right before BeginPlot(). If ImGuiCond_Always is used, the Y axis limits will be locked. */ - public static native void setNextPlotLimitsY(double ymin, double ymax, int imguicond); /* - ImPlot::SetNextPlotLimitsY(ymin, ymax, imguicond); - */ + @BindingMethod + public static native void SetNextPlotLimitsY(double yMin, double yMax, @OptArg int cond); /** - * This function MUST be called BEFORE beginPlot! * Links the next plot limits to external values. Set to NULL for no linkage. The pointer data must remain valid until the matching call to EndPlot. */ - public static void linkNextPlotLimits(final ImDouble xmin, final ImDouble xmax, final ImDouble ymin, final ImDouble ymax) { - linkNextPlotLimits(xmin, xmax, ymin, ymax, null, null, null, null); - } + @BindingMethod + public static native void LinkNextPlotLimits(ImDouble xMin, ImDouble xMax, ImDouble yMin, ImDouble yMax, @OptArg ImDouble yMin2, @OptArg ImDouble yMax2, @OptArg ImDouble yMin3, @OptArg ImDouble yMax3); /** - * This function MUST be called BEFORE beginPlot! - * Links the next plot limits to external values. Set to NULL for no linkage. The pointer data must remain valid until the matching call to EndPlot. - */ - public static void linkNextPlotLimits(final ImDouble xmin, final ImDouble xmax, final ImDouble ymin, final ImDouble ymax, final ImDouble ymin2, final ImDouble ymax2) { - linkNextPlotLimits(xmin, xmax, ymin, ymax, ymin2, ymax2, null, null); - } - - /** - * This function MUST be called BEFORE beginPlot! - * Links the next plot limits to external values. Set to NULL for no linkage. The pointer data must remain valid until the matching call to EndPlot. - */ - public static void linkNextPlotLimits(final ImDouble xmin, final ImDouble xmax, final ImDouble ymin, final ImDouble ymax, final ImDouble ymin2, final ImDouble ymax2, final ImDouble ymin3, final ImDouble ymax3) { - nLinkNextPlotLimits(xmin.getData(), xmax.getData(), ymin.getData(), ymax.getData(), ymin2.getData(), ymax2.getData(), ymin3.getData(), ymax3.getData()); - } - - private static native void nLinkNextPlotLimits(double[] xmin, double[] xmax, double[] ymin, double[] ymax, double[] ymin2, double[] ymax2, double[] ymin3, double[] ymax3); /* - ImPlot::LinkNextPlotLimits(&xmin[0], &xmax[0], &ymin[0], &ymax[0], &ymin2[0], &ymax2[0], &ymin3[0], &ymax3[0]); - */ - - /** - * This function MUST be called BEFORE beginPlot! * Fits the next plot axes to all plotted data if they are unlocked (equivalent to double-clicks). */ - public static void fitNextPlotAxes() { - fitNextPlotAxes(true, true, true, true); - } + @BindingMethod + public static native void FitNextPlotAxes(@OptArg boolean x, @OptArg boolean y, @OptArg boolean y2, @OptArg boolean y3); /** - * This function MUST be called BEFORE beginPlot! - * Fits the next plot axes to all plotted data if they are unlocked (equivalent to double-clicks). + * Set the X axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. */ - public static void fitNextPlotAxes(final boolean x, final boolean y) { - fitNextPlotAxes(x, y, true, true); - } + @BindingMethod + public static native void SetNextPlotTicksX(double[] values, int nTicks, @OptArg(callValue = "NULL") String[] labels, @OptArg boolean keepDefault); /** - * This function MUST be called BEFORE beginPlot! - * Fits the next plot axes to all plotted data if they are unlocked (equivalent to double-clicks). + * Set the X axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. */ - public static native void fitNextPlotAxes(boolean x, boolean y, boolean y2, boolean y3); /* - ImPlot::FitNextPlotAxes(x, y, y2, y3); - */ - + @BindingMethod + public static native void SetNextPlotTicksX(double xMin, double xMax, int nTicks, @OptArg(callValue = "NULL") String[] labels, @OptArg boolean keepDefault); /** - * This function MUST be called BEFORE beginPlot! - * Set the X axis ticks and optionally the labels for the next plot. + * Set the Y axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. */ - public static void setNextPlotTicksX(final double xMin, final double xMax, final int nTicks) { - setNextPlotTicksX(xMin, xMax, nTicks, null, false); - } + @BindingMethod + public static native void SetNextPlotTicksY(double[] values, int nTicks, @OptArg(callValue = "NULL") String[] labels, @OptArg(callValue = "false") boolean keepDefault, @OptArg int yAxis); /** - * This function MUST be called BEFORE beginPlot! - * Set the X axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keepDefault=true. + * Set the Y axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keep_default=true. */ - public static void setNextPlotTicksX(final double xMin, final double xMax, final int nTicks, final String[] labels, final boolean keepDefault) { - final String[] labelStrings = new String[4]; - for (int i = 0; i < 4; i++) { - if (labels != null && i < labels.length) { - labelStrings[i] = labels[i]; - } else { - labelStrings[i] = null; - } - } - - nSetNextPlotTicksX(xMin, xMax, nTicks, labelStrings[0], labelStrings[1], labelStrings[2], labelStrings[3], keepDefault); - } + @BindingMethod + public static native void SetNextPlotTicksY(double yMin, double yMax, int nTicks, @OptArg(callValue = "NULL") String[] labels, @OptArg(callValue = "false") boolean keepDefault, @OptArg int yAxis); /** - * This function MUST be called BEFORE beginPlot! - * Set the X axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keepDefault=true. - */ - public static void setNextPlotTicksX(final double xMin, final double xMax, final int nTicks, final String s1, final String s2, final String s3, final String s4, final boolean keepDefault) { - nSetNextPlotTicksX(xMin, xMax, nTicks, s1, s2, s3, s4, keepDefault); - } - - private static native void nSetNextPlotTicksX(double xMin, double xMax, int nTicks, String s1, String s2, String s3, String s4, boolean keepDefault); /* - char* strings[] = {s1, s2, s3, s4}; - ImPlot::SetNextPlotTicksX(xMin, xMax, nTicks, strings, keepDefault); - */ - - /** - * This function MUST be called BEFORE beginPlot! - * Set the Y axis ticks and optionally the labels for the next plot. - */ - public static void setNextPlotTicksY(final double xMin, final double xMax, final int nTicks) { - setNextPlotTicksY(xMin, xMax, nTicks, null, false, ImPlotYAxis.YAxis_1); - } - - /** - * This function MUST be called BEFORE beginPlot! - * Set the Y axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keepDefault=true. - */ - public static void setNextPlotTicksY(final double xMin, final double xMax, final int nTicks, final String[] labels, final boolean keepDefault) { - setNextPlotTicksY(xMin, xMax, nTicks, labels, keepDefault, ImPlotYAxis.YAxis_1); - } - - /** - * This function MUST be called BEFORE beginPlot! - * Set the Y axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keepDefault=true. - */ - public static void setNextPlotTicksY(final double xMin, final double xMax, final int nTicks, final String[] labels, final boolean keepDefault, final int yAxis) { - final String[] labelStrings = new String[4]; - for (int i = 0; i < 4; i++) { - if (labels != null && i < labels.length) { - labelStrings[i] = labels[i]; - } else { - labelStrings[i] = null; - } - } - - nSetNextPlotTicksY(xMin, xMax, nTicks, labelStrings[0], labelStrings[1], labelStrings[2], labelStrings[3], keepDefault, yAxis); - } - - /** - * This function MUST be called BEFORE beginPlot! - * Set the Y axis ticks and optionally the labels for the next plot. To keep the default ticks, set #keepDefault=true. - */ - public static void setNextPlotTicksY(final double xMin, final double xMax, final int nTicks, final String s1, final String s2, final String s3, final String s4, final boolean keepDefault, final int yAxis) { - nSetNextPlotTicksY(xMin, xMax, nTicks, s1, s2, s3, s4, keepDefault, yAxis); - } - - private static native void nSetNextPlotTicksY(double xMin, double xMax, int nTicks, String s1, String s2, String s3, String s4, boolean keepDefault, int yAxis); /* - char* strings[] = {s1, s2, s3, s4}; - ImPlot::SetNextPlotTicksY(xMin, xMax, nTicks, strings, keepDefault, yAxis); - */ - - /** - * This function MUST be called BEFORE beginPlot! * Set the format for numeric X axis labels (default="%g"). Formated values will be doubles (i.e. don't supply %d, %i, etc.). Not applicable if ImPlotAxisFlags_Time enabled. */ - public static native void setNextPlotFormatX(String fmt); /* - ImPlot::SetNextPlotFormatX(fmt); - */ + @BindingMethod + public static native void SetNextPlotFormatX(String fmt); /** - * This function MUST be called BEFORE beginPlot! - * Set the format for numeric Y axis labels (default="%g"). Formated values will be doubles (i.e. don't supply %d, %i, etc.). Not applicable if ImPlotAxisFlags_Time enabled. + * Set the format for numeric Y axis labels (default="%g"). Formated values will be doubles (i.e. don't supply %d, %i, etc.). */ - public static void setNextPlotFormatY(final String fmt) { - setNextPlotFormatY(fmt, ImPlotYAxis.YAxis_1); - } + @BindingMethod + public static native void SetNextPlotFormatY(String fmt, @OptArg int yAxis); /** - * This function MUST be called BEFORE beginPlot! - * Set the format for numeric Y axis labels (default="%g"). Formated values will be doubles (i.e. don't supply %d, %i, etc.). Not applicable if ImPlotAxisFlags_Time enabled. - */ - public static native void setNextPlotFormatY(String fmt, int yAxis); /* - ImPlot::SetNextPlotFormatY(fmt, yAxis); - */ - - /** - * This function MUST be called BETWEEN begin/endPlot! * Select which Y axis will be used for subsequent plot elements. The default is ImPlotYAxis_1, or the first (left) Y axis. Enable 2nd and 3rd axes with ImPlotFlags_YAxisX. */ - public static native void setPlotYAxis(int yAxis); /* - ImPlot::SetPlotYAxis(yAxis); - */ + @BindingMethod + public static native void SetPlotYAxis(int yAxis); /** - * This function MUST be called BETWEEN begin/endPlot! - * Hides the next plot item. + * Hides the next plot item. Use ImGuiCond.Always if you need to forcefully set this every frame (default ImGuiCond.Once). */ - public static void hideNextItem() { - hideNextItem(true, ImGuiCond.Once); - } + @BindingMethod + public static native void HideNextItem(@OptArg(callValue = "true") boolean hidden, @OptArg int cond); /** - * This function MUST be called BETWEEN begin/endPlot! - * Hides the next plot item. Use ImGuiCond. Always if you need to forcefully set this every frame (default ImGuiCond.Once). - */ - public static native void hideNextItem(boolean hidden, int imguiCond); /* - ImPlot::HideNextItem(hidden, imguiCond); - */ - - /** - * This function MUST be called BETWEEN begin/endPlot! * Convert pixels to a position in the current plot's coordinate system. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). */ - public static ImPlotPoint pixelsToPlot(final ImVec2 pix, final int yAxis) { - IMPLOT_POINT.ptr = nPixelsToPlot(pix.x, pix.y, yAxis); - return IMPLOT_POINT; - } + @BindingMethod + public static native ImPlotPoint PixelsToPlot(ImVec2 pix, @OptArg int yAxis); /** - * This function MUST be called BETWEEN begin/endPlot! - * The returned ImPlotPoint should be manually deallocated with destroy()! - * Convert pixels to a position in the current plot's coordinate system. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). - */ - public static ImPlotPoint pixelsToPlot(final float x, final float y, final int yAxis) { - IMPLOT_POINT.ptr = nPixelsToPlot(x, y, yAxis); - return IMPLOT_POINT; - } - - private static native long nPixelsToPlot(float x, float y, int yAxis); /* - ImPlotPoint* p = new ImPlotPoint(ImPlot::PixelsToPlot(x, y, yAxis)); - return (intptr_t)p; - */ - - /** - * This function MUST be called BETWEEN begin/endPlot! * Convert a position in the current plot's coordinate system to pixels. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). */ - public static ImVec2 plotToPixels(final ImPlotPoint plt, final int yAxis) { - return plotToPixels(plt.getX(), plt.getY(), yAxis); - } + @BindingMethod + public static native ImVec2 PlotToPixels(ImPlotPoint plt, @OptArg int yAxis); /** - * This function MUST be called BETWEEN begin/endPlot! - * Convert a position in the current plot's coordinate system to pixels. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). - */ - public static ImVec2 plotToPixels(final double x, final double y, final int yAxis) { - final ImVec2 value = new ImVec2(); - nPlotToPixels(x, y, yAxis, value); - return value; - } - - private static native void nPlotToPixels(double x, double y, int yAxis, ImVec2 vec); /* - Jni::ImVec2Cpy(env, ImPlot::PlotToPixels(x, y, yAxis), vec); - */ - - - - /** - * This function MUST be called BETWEEN begin/endPlot! * Get the current Plot position (top-left) in pixels. */ - public static ImVec2 getPlotPos() { - final ImVec2 value = new ImVec2(); - getPlotPos(value); - return value; - } - - public static native void getPlotPos(ImVec2 vec); /* - Jni::ImVec2Cpy(env, ImPlot::GetPlotPos(), vec); - */ + @BindingMethod + public static native ImVec2 GetPlotPos(); /** - * This function MUST be called BETWEEN begin/endPlot! * Get the current Plot size in pixels. */ - public static ImVec2 getPlotSize() { - final ImVec2 value = new ImVec2(); - getPlotSize(value); - return value; - } + @BindingMethod + public static native ImVec2 GetPlotSize(); /** - * This function MUST be called BETWEEN begin/endPlot! - * Get the current Plot size in pixels. - */ - public static native void getPlotSize(ImVec2 vec); /* - Jni::ImVec2Cpy(env, ImPlot::GetPlotSize(), vec); - */ - - /** - * This function MUST be called BETWEEN begin/endPlot! * Returns true if the plot area in the current plot is hovered. */ - public static native boolean isPlotHovered(); /* - return ImPlot::IsPlotHovered(); - */ + @BindingMethod + public static native boolean IsPlotHovered(); /** - * This function MUST be called BETWEEN begin/endPlot! * Returns true if the XAxis plot area in the current plot is hovered. */ - public static native boolean isPlotXAxisHovered(); /* - return ImPlot::IsPlotXAxisHovered(); - */ + @BindingMethod + public static native boolean IsPlotXAxisHovered(); /** - * This function MUST be called BETWEEN begin/endPlot! * Returns true if the YAxis[n] plot area in the current plot is hovered. */ - public static native boolean isPlotYAxisHovered(int yAxis); /* - return ImPlot::IsPlotYAxisHovered(yAxis); - */ + @BindingMethod + public static native boolean IsPlotYAxisHovered(@OptArg int yAxis); /** - * This function MUST be called BETWEEN begin/endPlot! - * The returned ImPlotPoint should be manually deallocated with destroy()! * Returns the mouse position in x,y coordinates of the current plot. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). */ - public static ImPlotPoint getPlotMousePos(final int yAxis) { - IMPLOT_POINT.ptr = nGetPlotMousePos(yAxis); - return IMPLOT_POINT; - } - - private static native long nGetPlotMousePos(int yAxis); /* - ImPlotPoint* p = new ImPlotPoint(ImPlot::GetPlotMousePos(yAxis)); - return (intptr_t)p; - */ + @BindingMethod + public static native ImPlotPoint GetPlotMousePos(@OptArg int yAxis); /** - * This function MUST be called BETWEEN begin/endPlot! - * The returned ImPlotLimits should be manually deallocated with destroy()! * Returns the current plot axis range. A negative yAxis uses the current value of SetPlotYAxis (ImPlotYAxis_1 initially). */ - public static ImPlotLimits getPlotLimits(final int yAxis) { - IMPLOT_LIMITS.ptr = nGetPlotLimits(yAxis); - return IMPLOT_LIMITS; - } - - private static native long nGetPlotLimits(int yAxis); /* - ImPlotLimits* p = new ImPlotLimits(ImPlot::GetPlotLimits(yAxis)); - return (intptr_t)p; - */ + @BindingMethod + public static native ImPlotLimits GetPlotLimits(@OptArg int yAxis); /** - * This function MUST be called BETWEEN begin/endPlot! * Returns true if the current plot is being box selected. */ - public static native boolean isPlotSelected(); /* - return ImPlot::IsPlotSelected(); - */ + @BindingMethod + public static native boolean IsPlotSelected(); /** - * This function MUST be called BETWEEN begin/endPlot! - * The returned ImPlotLimits should be manually deallocated with destroy()! * Returns the current plot box selection bounds. */ - public static ImPlotLimits getPlotSelection(final int yAxis) { - IMPLOT_LIMITS.ptr = nGetPlotSelection(yAxis); - return IMPLOT_LIMITS; - } - - private static native long nGetPlotSelection(int yAxis); /* - ImPlotLimits* p = new ImPlotLimits(ImPlot::GetPlotSelection(yAxis)); - return (intptr_t)p; - */ + @BindingMethod + public static native ImPlotLimits GetPlotSelection(@OptArg int yAxis); /** - * This function MUST be called BETWEEN begin/endPlot! * Returns true if the current plot is being queried or has an active query. Query must be enabled with ImPlotFlags_Query. */ - public static native boolean isPlotQueried(); /* - return ImPlot::IsPlotQueried(); - */ + @BindingMethod + public static native boolean IsPlotQueried(); /** - * This function MUST be called BETWEEN begin/endPlot! - * The returned ImPlotLimits should be manually deallocated with destroy()! * Returns the current plot query bounds. Query must be enabled with ImPlotFlags_Query. */ - public static ImPlotLimits getPlotQuery(final int yAxis) { - IMPLOT_LIMITS.ptr = nGetPlotQuery(yAxis); - return IMPLOT_LIMITS; - } - - private static native long nGetPlotQuery(int yAxis); /* - ImPlotLimits* p = new ImPlotLimits(ImPlot::GetPlotQuery(yAxis)); - return (intptr_t)p; - */ + @BindingMethod + public static native ImPlotLimits GetPlotQuery(@OptArg int yAxis); /** - * This function MUST be called BETWEEN begin/endPlot! * Set the current plot query bounds. Query must be enabled with ImPlotFlags_Query. */ - public static void setPlotQuery(final ImPlotLimits query, final int yAxis) { - nSetPlotQuery(query.ptr, yAxis); - } + @BindingMethod + public static native void SetPlotQuery(ImPlotLimits query, @OptArg int yAxis); - private static native void nSetPlotQuery(long ptr, int yAxis); /* - ImPlotLimits* query = (ImPlotLimits*)ptr; - ImPlot::SetPlotQuery(*query, yAxis); - */ + /** + * Returns true if the bounding frame of a subplot is hovered + */ + @BindingMethod + public static native boolean IsSubplotsHovered(); + + //----------------------------------------------------------------------------- + // Aligned Plots + //----------------------------------------------------------------------------- + + // Consider using Begin/EndSubplots first. They are more feature rich and + // accomplish the same behaviour by default. The functions below offer lower + // level control of plot alignment. + + /** + * Align axis padding over multiple plots in a single row or column. If this function returns true, EndAlignedPlots() must be called. #group_id must be unique. + */ + @BindingMethod + public static native boolean BeginAlignedPlots(String groupId, @OptArg int orientation); + + /** + * Only call EndAlignedPlots() if BeginAlignedPlots() returns true! + */ + @BindingMethod + public static native void EndAlignedPlots(); //----------------------------------------------------------------------------- // Plot Tools @@ -1290,113 +1488,45 @@ public final class ImPlot { /** * Shows an annotation callout at a chosen point. - * Uses default color */ - public static void annotate(final double x, final double y, final ImVec2 pixOffset, final String... fmt) { - annotate(x, y, pixOffset, new ImVec4(0, 0, 0, 0), fmt); - } + @BindingMethod + public static native void Annotate(double x, double y, ImVec2 pixOffset, String fmt, Void NULL); /** * Shows an annotation callout at a chosen point. */ - public static void annotate(final double x, final double y, final ImVec2 pixOffset, final ImVec4 color, final String... fmt) { - nAnnotate(x, y, pixOffset.x, pixOffset.y, color.w, color.x, color.y, color.z, - fmt.length > 0 ? fmt[0] : null, - fmt.length > 1 ? fmt[1] : null, - fmt.length > 2 ? fmt[2] : null, - fmt.length > 3 ? fmt[3] : null, - fmt.length > 4 ? fmt[4] : null); - } - - private static native void nAnnotate(double x, double y, float pixX, float pixY, float colA, float colB, float colC, float colD, String a, String b, String c, String d, String e); /* - ImVec2 pixOffset(pixX, pixY); - ImVec4 col(colA, colB, colC, colD); - - if (b == nullptr) - ImPlot::Annotate(x, y, pixOffset, col, a); - else if (b == nullptr) - ImPlot::Annotate(x, y, pixOffset, col, a, b); - else if (b == nullptr) - ImPlot::Annotate(x, y, pixOffset, col, a, b, c); - else if (b == nullptr) - ImPlot::Annotate(x, y, pixOffset, col, a, b, c, d); - else - ImPlot::Annotate(x, y, pixOffset, col, a, b, c, d, e); - */ + @BindingMethod + public static native void Annotate(double x, double y, ImVec2 pixOffset, ImVec4 color, String fmt, Void NULL); /** - * Shows an annotation callout at a chosen point, clamped inside the plot area. - * Uses default color + * Same as above, but the annotation will always be clamped to stay inside the plot area. */ - public static void annotateClamped(final double x, final double y, final ImVec2 pixOffset, final String... fmt) { - annotateClamped(x, y, pixOffset, new ImVec4(0, 0, 0, 0), fmt); - } + @BindingMethod + public static native void AnnotateClamped(double x, double y, ImVec2 pixOffset, String fmt, Void NULL); /** - * Shows an annotation callout at a chosen point, clamped inside the plot area. + * Same as above, but the annotation will always be clamped to stay inside the plot area. */ - public static void annotateClamped(final double x, final double y, final ImVec2 pixOffset, final ImVec4 color, final String... fmt) { - nAnnotateClamped(x, y, pixOffset.x, pixOffset.y, color.w, color.x, color.y, color.z, - fmt.length > 0 ? fmt[0] : null, - fmt.length > 1 ? fmt[1] : null, - fmt.length > 2 ? fmt[2] : null, - fmt.length > 3 ? fmt[3] : null, - fmt.length > 4 ? fmt[4] : null); - } - - private static native void nAnnotateClamped(double x, double y, float pixX, float pixY, float colA, float colB, float colC, float colD, String a, String b, String c, String d, String e); /* - ImVec2 pixOffset(pixX, pixY); - ImVec4 col(colA, colB, colC, colD); - - if (b == nullptr) - ImPlot::AnnotateClamped(x, y, pixOffset, col, a); - else if (b == nullptr) - ImPlot::AnnotateClamped(x, y, pixOffset, col, a, b); - else if (b == nullptr) - ImPlot::AnnotateClamped(x, y, pixOffset, col, a, b, c); - else if (b == nullptr) - ImPlot::AnnotateClamped(x, y, pixOffset, col, a, b, c, d); - else - ImPlot::AnnotateClamped(x, y, pixOffset, col, a, b, c, d, e); - */ - -// -// // -// IMPLOT_API bool DragLineX(const char* id, double* xValue, bool showLabel = true, const ImVec4& col = IMPLOT_AUTO_COL, float thickness = 1); + @BindingMethod + public static native void AnnotateClamped(double x, double y, ImVec2 pixOffset, ImVec4 color, String fmt, Void NULL); /** - * Shows a draggable vertical guide line at an x-value. + * Shows a draggable vertical guide line at an x-value. #col defaults to ImGuiCol_Text. */ - public static boolean dragLineX(final String id, final double xValue, final boolean showLabel, final ImVec4 color, final float thickness) { - return nDragLineX(id, xValue, showLabel, color.w, color.x, color.y, color.z, thickness); - } - - private static native boolean nDragLineX(String id, double xValue, boolean showLabel, float w, float x, float y, float z, float thickness); /* - return ImPlot::DragLineX(id, &xValue, showLabel, ImVec4(w, x, y, z), thickness); - */ + @BindingMethod + public static native boolean DragLineX(String id, ImDouble xValue, @OptArg(callValue = "true") boolean showLabel, @OptArg(callValue = "IMPLOT_AUTO_COL") ImVec4 color, @OptArg float thickness); /** - * Shows a draggable horizontal guide line at a y-value. + * Shows a draggable horizontal guide line at a y-value. #col defaults to ImGuiCol_Text. */ - public static boolean dragLineY(final String id, final double yValue, final boolean showLabel, final ImVec4 color, final float thickness) { - return nDragLineY(id, yValue, showLabel, color.w, color.x, color.y, color.z, thickness); - } - - private static native boolean nDragLineY(String id, double yValue, boolean showLabel, float w, float x, float y, float z, float thickness); /* - return ImPlot::DragLineY(id, &yValue, showLabel, ImVec4(w, x, y, z), thickness); - */ + @BindingMethod + public static native boolean DragLineY(String id, ImDouble yValue, @OptArg(callValue = "true") boolean showLabel, @OptArg(callValue = "IMPLOT_AUTO_COL") ImVec4 color, @OptArg float thickness); /** - * Shows a draggable point at x,y. + * Shows a draggable point at x,y. #col defaults to ImGuiCol_Text. */ - public static boolean dragPoint(final String id, final double x, final double y, final boolean showLabel, final ImVec4 color, final float radius) { - return nDragPoint(id, x, y, showLabel, color.w, color.x, color.y, color.z, radius); - } - - private static native boolean nDragPoint(String id, double xValue, double yValue, boolean showLabel, float w, float x, float y, float z, float radius); /* - return ImPlot::DragPoint(id, &xValue, &yValue, showLabel, ImVec4(w, x, y, z), radius); - */ - + @BindingMethod + public static native boolean DragPoint(String id, ImDouble x, ImDouble y, @OptArg(callValue = "true") boolean showLabel, @OptArg(callValue = "IMPLOT_AUTO_COL") ImVec4 color, @OptArg float radius); //----------------------------------------------------------------------------- // Legend Utils and Tools @@ -1405,44 +1535,32 @@ public final class ImPlot { /** * Set the location of the current plot's legend */ - public static native void setLegendLocation(int location, int orientation, boolean outside); /* - ImPlot::SetLegendLocation(location, orientation, outside); - */ + @BindingMethod + public static native void SetLegendLocation(int location, @OptArg(callValue = "ImPlotOrientation_Vertical") int orientation, @OptArg boolean outside); /** * Set the location of the current plot's mouse position text */ - public static native void setMousePosLocation(int location); /* - ImPlot::SetMousePosLocation(location); - */ + @BindingMethod + public static native void SetMousePosLocation(int location); /** * Returns true if a plot item legend entry is hovered. */ - public static native boolean isLegendEntryHovered(String labelID); /* - return ImPlot::IsLegendEntryHovered(labelID); - */ + @BindingMethod + public static native boolean IsLegendEntryHovered(String labelId); /** * Begin a popup for a legend entry. */ - public static boolean beginLegendPopup(final String labelID) { - return beginLegendPopup(labelID, ImGuiMouseButton.Right); - } - - /** - * Begin a popup for a legend entry. - */ - public static native boolean beginLegendPopup(String labelID, int mouseButton); /* - return ImPlot::BeginLegendPopup(labelID, mouseButton); - */ + @BindingMethod + public static native boolean BeginLegendPopup(String labelID, @OptArg int mouseButton); /** * End a popup for a legend entry. */ - public static native void endLegendPopup(); /* - ImPlot::EndLegendPopup(); - */ + @BindingMethod + public static native void EndLegendPopup(); //----------------------------------------------------------------------------- // Drag and Drop Utils @@ -1451,116 +1569,133 @@ public final class ImPlot { /** * Turns the current plot's plotting area into a drag and drop target. Don't forget to call EndDragDropTarget! */ - public static native boolean beginDragDropTarget(); /* - return ImPlot::BeginDragDropTarget(); - */ + @BindingMethod + public static native boolean BeginDragDropTarget(); /** * Turns the current plot's X-axis into a drag and drop target. Don't forget to call EndDragDropTarget! */ - public static native boolean beginDragDropTargetX(); /* - return ImPlot::BeginDragDropTarget(); - */ + @BindingMethod + public static native boolean BeginDragDropTargetX(); /** * Turns the current plot's Y-Axis into a drag and drop target. Don't forget to call EndDragDropTarget! */ - public static native boolean beginDragDropTargetY(int yAxis); /* - return ImPlot::BeginDragDropTargetY(yAxis); - */ + @BindingMethod + public static native boolean BeginDragDropTargetY(@OptArg int yAxis); /** * Turns the current plot's legend into a drag and drop target. Don't forget to call EndDragDropTarget! */ - public static native boolean beginDragDropTargetLegend(); /* - return ImPlot::BeginDragDropTargetLegend(); - */ + @BindingMethod + public static native boolean BeginDragDropTargetLegend(); /** * Ends a drag and drop target. */ - public static native void endDragDropTarget(); /* - ImPlot::EndDragDropTarget(); - */ + @BindingMethod + public static native void EndDragDropTarget(); + + // NB: By default, plot and axes drag and drop *sources* require holding the Ctrl modifier to initiate the drag. + // You can change the modifier if desired. If ImGuiKeyModFlags_None is provided, the axes will be locked from panning. /** * Turns the current plot's plotting area into a drag and drop source. Don't forget to call EndDragDropSource! */ - public static native boolean beginDragDropSource(int keyMods, int dragDropFlags); /* - return ImPlot::BeginDragDropSource(keyMods, dragDropFlags); - */ + @BindingMethod + public static native boolean BeginDragDropSource(@OptArg int keyMods, @OptArg int dragDropFlags); /** * Turns the current plot's X-axis into a drag and drop source. Don't forget to call EndDragDropSource! */ - public static native boolean beginDragDropSourceX(int keyMods, int dragDropFlags); /* - return ImPlot::BeginDragDropSourceX(keyMods, dragDropFlags); - */ + @BindingMethod + public static native boolean BeginDragDropSourceX(@OptArg int keyMods, @OptArg int dragDropFlags); /** * Turns the current plot's Y-axis into a drag and drop source. Don't forget to call EndDragDropSource! */ - public static native boolean beginDragDropSourceY(int yAxis, int keyMods, int dragDropFlags); /* - return ImPlot::BeginDragDropSourceY(yAxis, keyMods, dragDropFlags); - */ + @BindingMethod + public static native boolean BeginDragDropSourceY(@OptArg int yAxis, @OptArg int keyMods, @OptArg int dragDropFlags); /** * Turns an item in the current plot's legend into drag and drop source. Don't forget to call EndDragDropSource! */ - public static native boolean beginDragDropSourceItem(String labelID, int dragDropFlags); /* - return ImPlot::BeginDragDropSourceItem(labelID, dragDropFlags); - */ + @BindingMethod + public static native boolean BeginDragDropSourceItem(String labelID, @OptArg int dragDropFlags); /** * Ends a drag and drop source. */ - public static native void endDragDropSource(); /* - ImPlot::EndDragDropSource(); - */ + @BindingMethod + public static native void EndDragDropSource(); //----------------------------------------------------------------------------- // Plot and Item Styling //----------------------------------------------------------------------------- + // Styling colors in ImPlot works similarly to styling colors in ImGui, but + // with one important difference. Like ImGui, all style colors are stored in an + // indexable array in ImPlotStyle. You can permanently modify these values through + // GetStyle().Colors, or temporarily modify them with Push/Pop functions below. + // However, by default all style colors in ImPlot default to a special color + // IMPLOT_AUTO_COL. The behavior of this color depends upon the style color to + // which it as applied: + // + // 1) For style colors associated with plot items (e.g. ImPlotCol_Line), + // IMPLOT_AUTO_COL tells ImPlot to color the item with the next unused + // color in the current colormap. Thus, every item will have a different + // color up to the number of colors in the colormap, at which point the + // colormap will roll over. For most use cases, you should not need to + // set these style colors to anything but IMPLOT_COL_AUTO; you are + // probably better off changing the current colormap. However, if you + // need to explicitly color a particular item you may either Push/Pop + // the style color around the item in question, or use the SetNextXXXStyle + // API below. If you permanently set one of these style colors to a specific + // color, or forget to call Pop, then all subsequent items will be styled + // with the color you set. + // + // 2) For style colors associated with plot styling (e.g. ImPlotCol_PlotBg), + // IMPLOT_AUTO_COL tells ImPlot to set that color from color data in your + // **ImGuiStyle**. The ImGuiCol_ that these style colors default to are + // detailed above, and in general have been mapped to produce plots visually + // consistent with your current ImGui style. Of course, you are free to + // manually set these colors to whatever you like, and further can Push/Pop + // them around individual plots for plot-specific styling (e.g. coloring axes). + /** * Provides access to plot style structure for permanant modifications to colors, sizes, etc. */ - public static ImPlotStyle getStyle() { - IMPLOT_STYLE.ptr = nGetStyle(); - return IMPLOT_STYLE; - } - - private static native long nGetStyle(); /* - return (intptr_t)&ImPlot::GetStyle(); - */ + @BindingMethod + @ReturnValue(isStatic = true, callPrefix = "&") + public static native ImPlotStyle GetStyle(); /** * Style plot colors for current ImGui style (default). */ - public static native void styleColorsAuto(); /* - ImPlot::StyleColorsAuto(); - */ + @BindingMethod + public static native void StyleColorsAuto(@OptArg ImPlotStyle dst); /** * Style plot colors for ImGui "Classic". */ - public static native void styleColorsClassic(); /* - ImPlot::StyleColorsClassic(); - */ + @BindingMethod + public static native void StyleColorsClassic(@OptArg ImPlotStyle dst); /** * Style plot colors for ImGui "Dark". */ - public static native void styleColorsDark(); /* - ImPlot::StyleColorsDark(); - */ + @BindingMethod + public static native void StyleColorsDark(@OptArg ImPlotStyle dst); /** * Style plot colors for ImGui "Light". */ - public static native void styleColorsLight(); /* - ImPlot::StyleColorsLight(); - */ + @BindingMethod + public static native void StyleColorsLight(@OptArg ImPlotStyle dst); + + // Use PushStyleX to temporarily modify your ImPlotStyle. The modification + // will last until the matching call to PopStyleX. You MUST call a pop for + // every push, otherwise you will leak memory! This behaves just like ImGui. /** * Temporarily modify a style color. Don't forget to call PopStyleColor! @@ -1572,243 +1707,188 @@ public final class ImPlot { /** * Temporarily modify a style color. Don't forget to call PopStyleColor! */ - public static void pushStyleColor(final int idx, final ImVec4 col) { - nPushStyleColor(idx, col.w, col.x, col.y, col.z); - } + @BindingMethod + public static native void PushStyleColor(int idx, @ArgValue(staticCast = "ImU32") int col); - private static native void nPushStyleColor(int idx, float w, float x, float y, float z); /* - ImPlot::PushStyleColor(idx, ImVec4(w, x, y, z)); - */ + /** + * Temporarily modify a style color. Don't forget to call PopStyleColor! + */ + @BindingMethod + public static native void PushStyleColor(int idx, ImVec4 col); - public static void popStyleColor() { - popStyleColor(1); - } - - public static native void popStyleColor(int count); /* - ImPlot::PopStyleColor(count); - */ + @BindingMethod + public static native void PopStyleColor(@OptArg int count); /** * Temporarily modify a style variable of float type. Don't forget to call PopStyleVar! */ - public static native void pushStyleVar(int idx, float val); /* - ImPlot::PushStyleVar(idx, val); - */ + @BindingMethod + public static native void PushStyleVar(int idx, @ArgValue(staticCast = "float") float val); /** * Temporarily modify a style variable of int type. Don't forget to call PopStyleVar! */ - public static native void pushStyleVar(int idx, int val); /* - ImPlot::PushStyleVar(idx, (int)val); - */ + @BindingMethod + public static native void PushStyleVar(int idx, @ArgValue(staticCast = "int") int val); /** * Temporarily modify a style variable of ImVec2 type. Don't forget to call PopStyleVar! */ - public static void pushStyleVar(final int idx, final ImVec2 val) { - nPushStyleVar(idx, val.x, val.y); - } - - private static native void nPushStyleVar(int idx, float x, float y); /* - ImPlot::PushStyleVar(idx, ImVec2(x, y)); - */ - + @BindingMethod + public static native void PushStyleVar(int idx, ImVec2 val); /** * Undo temporary style variable modification(s). Undo multiple pushes at once by increasing count. */ - public static void popStyleVar() { - popStyleVar(1); - } + @BindingMethod + public static native void PopStyleVar(@OptArg int count); /** - * Undo temporary style variable modification(s). Undo multiple pushes at once by increasing count. + * Set the line color and weight for the next item only. */ - public static native void popStyleVar(int count); /* - ImPlot::PopStyleVar(count); - */ + @BindingMethod + public static native void SetNextLineStyle(@OptArg(callValue = "IMPLOT_AUTO_COL") ImVec4 col, @OptArg float weight); + + /** + * Set the fill color for the next item only. + */ + @BindingMethod + public static native void SetNextFillStyle(@OptArg(callValue = "IMPLOT_AUTO_COL") ImVec4 col, @OptArg float alphaMod); + + /** + * Set the marker style for the next item only. + */ + @BindingMethod + public static native void SetNextMarkerStyle(@OptArg int marker, @OptArg float size, @OptArg ImVec4 fill, @OptArg(callValue = "IMPLOT_AUTO") float weight, @OptArg ImVec4 outline); + + /** + * Set the error bar style for the next item only. + */ + @BindingMethod + public static native void SetNextErrorBarStyle(@OptArg(callValue = "IMPLOT_AUTO_COL") ImVec4 col, @OptArg float size, @OptArg float weight); /** * Gets the last item primary color (i.e. its legend icon color) */ - public static ImVec4 getLastItemColor() { - return new ImVec4(nGetLastItemColorS(0), nGetLastItemColorS(1), nGetLastItemColorS(2), nGetLastItemColorS(3)); - } - - private static native float nGetLastItemColorS(int selection); /* - if (selection == 0) - return ImPlot::GetLastItemColor().w; - else if (selection == 1) - return ImPlot::GetLastItemColor().x; - else if (selection == 2) - return ImPlot::GetLastItemColor().y; - else - return ImPlot::GetLastItemColor().z; - */ + @BindingMethod + public static native ImVec4 GetLastItemColor(); /** * Returns the string name for an ImPlotCol. */ - public static native String getStyleColorName(int idx); /* - return env->NewStringUTF(ImPlot::GetStyleColorName(idx)); - */ + @BindingMethod + public static native String GetStyleColorName(int idx); /** * Returns the null terminated string name for an ImPlotMarker. */ - public static native String getMarkerName(int idx); /* - return env->NewStringUTF(ImPlot::GetMarkerName(idx)); - */ + @BindingMethod + public static native String GetMarkerName(int idx); //----------------------------------------------------------------------------- // Colormaps //----------------------------------------------------------------------------- - /** - * Add a new colormap. The color data will be copied. The colormap can be used by pushing either the returned index or the - * string name with PushColormap. The colormap name must be unique and the size must be greater than 1. You will receive - * an assert otherwise! Colormaps are considered to be qualitative (i.e. discrete). - */ - public static int addColormap(final String name, final ImVec4[] cols) { - final float[] w = new float[cols.length]; - final float[] x = new float[cols.length]; - final float[] y = new float[cols.length]; - final float[] z = new float[cols.length]; + // Item styling is based on colormaps when the relevant ImPlotCol_XXX is set to + // IMPLOT_AUTO_COL (default). Several built-in colormaps are available. You can + // add and then push/pop your own colormaps as well. To permanently set a colormap, + // modify the Colormap index member of your ImPlotStyle. - for (int i = 0; i < cols.length; i++) { - w[i] = cols[i].w; - x[i] = cols[i].x; - y[i] = cols[i].y; - z[i] = cols[i].z; - } + // Colormap data will be ignored and a custom color will be used if you have done one of the following: + // 1) Modified an item style color in your ImPlotStyle to anything other than IMPLOT_AUTO_COL. + // 2) Pushed an item style color using PushStyleColor(). + // 3) Set the next item style with a SetNextXXXStyle function. - return nAddColormap(name, w, x, y, z, cols.length); - } + // Add a new colormap. The color data will be copied. The colormap can be used by pushing either the returned index or the + // string name with PushColormap. The colormap name must be unique and the size must be greater than 1. You will receive + // an assert otherwise! By default colormaps are considered to be qualitative (i.e. discrete). If you want to create a + // continuous colormap, set #qual=false. This will treat the colors you provide as keys, and ImPlot will build a linearly + // interpolated lookup table. The memory footprint of this table will be exactly ((size-1)*255+1)*4 bytes. - private static native int nAddColormap(String name, float[] w, float[] x, float[] y, float[] z, int count); /* - ImVec4* cols = new ImVec4[count]; - for (int i = 0; i < count; i++) { - cols[i] = ImVec4(w[i], x[i], y[i], z[i]); - } + @BindingMethod + public static native int AddColormap(String name, ImVec4[] cols, @ArgValue(callValue = "env->GetArrayLength(obj_cols)") Void size, @OptArg boolean qual); - return ImPlot::AddColormap(name, cols, count); - */ + @BindingMethod + public static native int AddColormap(String name, @ArgValue(reinterpretCast = "ImU32*") int[] cols, @ArgValue(callValue = "env->GetArrayLength(obj_cols)") Void size, @OptArg boolean qual); /** * Returns the number of available colormaps (i.e. the built-in + user-added count). */ - public static native int getColormapCount(); /* - return ImPlot::GetColormapCount(); - */ + @BindingMethod + public static native int GetColormapCount(); /** * Returns a string name for a colormap given an index. */ - public static native String getColormapName(int cmap); /* - return env->NewStringUTF(ImPlot::GetColormapName(cmap)); - */ + @BindingMethod + public static native String GetColormapName(int cmap); /** * Returns an index number for a colormap given a valid string name. Returns -1 if the name is invalid. */ - public static native int getColormapIndex(String name); /* - return ImPlot::GetColormapIndex(name); - */ + @BindingMethod + public static native int GetColormapIndex(String name); /** * Temporarily switch to one of the built-in (i.e. ImPlotColormap_XXX) or user-added colormaps (i.e. a return value of AddColormap). Don't forget to call PopColormap! */ - public static native void pushColormap(int cmap); /* - ImPlot::PushColormap(cmap); - */ + @BindingMethod + public static native void PushColormap(int cmap); /** * Push a colormap by string name. Use built-in names such as "Default", "Deep", "Jet", etc. or a string you provided to AddColormap. Don't forget to call PopColormap! */ - public static native void pushColormap(String name); /* - ImPlot::PushColormap(name); - */ + @BindingMethod + public static native void PushColormap(String name); /** * Undo temporary colormap modification(s). Undo multiple pushes at once by increasing count. */ - public static void popColormap() { - popColormap(1); - } - - /** - * Undo temporary colormap modification(s). Undo multiple pushes at once by increasing count. - */ - public static native void popColormap(int count); /* - ImPlot::PopColormap(count); - */ + @BindingMethod + public static native void PopColormap(@OptArg int count); /** * Returns the next color from the current colormap and advances the colormap for the current plot. * Can also be used with no return value to skip colors if desired. You need to call this between Begin/EndPlot! */ - public static ImVec4 nextColormapColor() { - final ImVec4 vec = new ImVec4(); - nNextColormapColor(vec); - return vec; - } - - private static native void nNextColormapColor(ImVec4 vec); /* - Jni::ImVec4Cpy(env, ImPlot::NextColormapColor(), vec); - */ + @BindingMethod + public static native ImVec4 NextColormapColor(); /** * Returns the size of a colormap. */ - public static native int getColormapSize(int cmap); /* - return ImPlot::GetColormapSize(cmap); - */ + @BindingMethod + public static native int GetColormapSize(@OptArg int cmap); /** * Returns a color from a colormap given an index {@code >=} 0 (modulo will be performed). */ - public static ImVec4 getColormapColor(final int idx, final int cmap) { - final ImVec4 vec = new ImVec4(); - nGetColormapColor(idx, cmap, vec); - return vec; - } - - private static native void nGetColormapColor(int idx, int cmap, ImVec4 vec); /* - Jni::ImVec4Cpy(env, ImPlot::GetColormapColor(idx, cmap), vec); - */ + @BindingMethod + public static native ImVec4 GetColormapColor(int idx, @OptArg int cmap); /** * Sample a color from a colormap given t between 0 and 1 */ - public static ImVec4 sampleColormap(final float t, final int cmap) { - final ImVec4 vec = new ImVec4(); - nSampleColormap(t, cmap, vec); - return vec; - } - - private static native void nSampleColormap(float t, int cmap, ImVec4 vec); /* - Jni::ImVec4Cpy(env, ImPlot::SampleColormap(t, cmap), vec); - */ + @BindingMethod + public static native ImVec4 SampleColormap(float t, @OptArg int cmap); /** * Shows a vertical color scale with linear spaced ticks using the specified color map. Use double hashes to hide label (e.g. "##NoLabel"). */ - public static native void colormapScale(String label, double scaleMin, double scaleMax, int cmap); /* - ImPlot::ColormapScale(label, scaleMin, scaleMax, ImVec2(0,0), cmap); - */ + @BindingMethod + public static native void ColormapScale(String label, double scaleMin, double scaleMax, @OptArg(callValue = "ImVec2(0,0)") ImVec2 size, @OptArg(callValue = "IMPLOT_AUTO") int cmap, @OptArg String fmt); /** * Shows a horizontal slider with a colormap gradient background. + * TODO: support our argument */ - public static native boolean colormapSlider(String label, float t, int cmap); /* - return ImPlot::ColormapSlider(label, &t, NULL, "", cmap); - */ + @BindingMethod + public static native boolean ColormapSlider(String label, ImFloat t, Void NULL, @OptArg(callValue = "\"\"") String format, @OptArg int cmap); /** * Shows a button with a colormap gradient brackground. */ - public static native boolean colormapButton(String label, int cmap); /* - return ImPlot::ColormapButton(label, ImVec2(0,0), cmap); - */ + @BindingMethod + public static native boolean ColormapButton(String label, @OptArg(callValue = "ImVec2(0,0)") ImVec2 size, @OptArg int cmap); /** * When items in a plot sample their color from a colormap, the color is cached and does not change @@ -1819,105 +1899,71 @@ public final class ImPlot { * latter, this function must be called in the same ImGui ID scope that the plot is in. You should rarely if ever * need this function, but it is available for applications that require runtime colormap swaps (e.g. Heatmaps demo). */ - public static void bustColorCache() { - bustColorCache(null); - } - - /** - * When items in a plot sample their color from a colormap, the color is cached and does not change - * unless explicitly overriden. Therefore, if you change the colormap after the item has already been plotted, - * item colors will NOT update. If you need item colors to resample the new colormap, then use this - * function to bust the cached colors. If #plot_title_id is NULL, then every item in EVERY existing plot - * will be cache busted. Otherwise only the plot specified by #plot_title_id will be busted. For the - * latter, this function must be called in the same ImGui ID scope that the plot is in. You should rarely if ever - * need this function, but it is available for applications that require runtime colormap swaps (e.g. Heatmaps demo). - */ - public static native void bustColorCache(String plotTableID); /* - ImPlot::BustColorCache(plotTableID); - */ + @BindingMethod + public static native void BustColorCache(@OptArg String plotTitleId); //----------------------------------------------------------------------------- // Miscellaneous //----------------------------------------------------------------------------- - /** - * Render icons similar to those that appear in legends (nifty for data lists). - */ - public static void itemIcon(final ImVec4 col) { - nItemIcon(col.w, col.x, col.y, col.z); - } + // Render icons similar to those that appear in legends (nifty for data lists). - private static native void nItemIcon(double a, double b, double c, double d); /* - ImPlot::ItemIcon(ImVec4(a, b, c, d)); - */ + @BindingMethod + public static native void ItemIcon(ImVec4 col); - /** - * Render icons similar to those that appear in legends (nifty for data lists). - */ - public static native void colormapIcon(int colorMap); /* - ImPlot::ColormapIcon(colorMap); - */ + @BindingMethod + public static native void ItemIcon(@ArgValue(staticCast = "ImU32") int col); + + @BindingMethod + public static native void ColormapIcon(int cmap); /** * Get the plot draw list for custom rendering to the current plot area. Call between Begin/EndPlot. */ - public static ImDrawList getPlotDrawList() { - IM_DRAW_LIST.ptr = nGetPlotDrawList(); - return IM_DRAW_LIST; - } - - private static native long nGetPlotDrawList(); /* - return (intptr_t)ImPlot::GetPlotDrawList(); - */ + @BindingMethod + public static native ImDrawList GetPlotDrawList(); /** * Push clip rect for rendering to current plot area. The rect can be expanded or contracted by #expand pixels. Call between Begin/EndPlot. */ - public static native void pushPlotClipRect(float expand); /* - ImPlot::PushPlotClipRect(expand); - */ + @BindingMethod + public static native void PushPlotClipRect(@OptArg float expand); /** * Pop plot clip rect. Call between Begin/EndPlot. */ - public static native void popPlotClipRect(); /* - ImPlot::PopPlotClipRect(); - */ + @BindingMethod + public static native void PopPlotClipRect(); /** * Shows ImPlot style selector dropdown menu. */ - public static native boolean showStyleSelector(String label); /* - return ImPlot::ShowStyleSelector(label); - */ + @BindingMethod + public static native boolean ShowStyleSelector(String label); /** * Shows ImPlot colormap selector dropdown menu. */ - public static native boolean showColormapSelector(String label); /* - return ImPlot::ShowColormapSelector(label); - */ + @BindingMethod + public static native boolean ShowColormapSelector(String label); /** * Shows ImPlot style editor block (not a window). */ - public static native void showStyleEditor(); /* - ImPlot::ShowStyleEditor(NULL); - */ + @BindingMethod + public static native void ShowStyleEditor(@OptArg ImPlotStyle ref); /** * Add basic help/info block for end users (not a window). */ - public static native void showUserGuide(); /* - ImPlot::ShowUserGuide(); - */ + @BindingMethod + public static native void ShowUserGuide(); /** * Shows ImPlot metrics/debug information window. */ - public static native void showMetricsWindow(); /* - ImPlot::ShowMetricsWindow(NULL); - */ + @BindingMethod + public static native void ShowMetricsWindow(@OptArg ImBoolean pOpen); //----------------------------------------------------------------------------- // Demo @@ -1926,11 +1972,6 @@ public final class ImPlot { /** * Shows the ImPlot demo window. */ - public static void showDemoWindow(final ImBoolean pOpen) { - nShowDemoWindow(pOpen.getData()); - } - - private static native void nShowDemoWindow(boolean[] pOpen); /* - ImPlot::ShowDemoWindow(&pOpen[0]); - */ + @BindingMethod + public static native void ShowDemoWindow(@OptArg ImBoolean pOpen); } diff --git a/imgui-binding/src/main/java/imgui/extension/implot/ImPlotLimits.java b/imgui-binding/src/main/java/imgui/extension/implot/ImPlotLimits.java index fcd2f6d..0928e3c 100644 --- a/imgui-binding/src/main/java/imgui/extension/implot/ImPlotLimits.java +++ b/imgui-binding/src/main/java/imgui/extension/implot/ImPlotLimits.java @@ -1,119 +1,93 @@ package imgui.extension.implot; import imgui.ImVec2; -import imgui.binding.ImGuiStructDestroyable; -public final class ImPlotLimits extends ImGuiStructDestroyable { - public ImPlotLimits(final long ptr) { - super(ptr); - } +import java.util.Objects; + +public final class ImPlotLimits implements Cloneable { + public final ImPlotRange x = new ImPlotRange(); + public final ImPlotRange y = new ImPlotRange(); public ImPlotLimits() { - this(0, 0, 0, 0); } - public ImPlotLimits(final double xMin, final double xMax, final double yMin, final double yMax) { - this(0); - ptr = create(xMin, xMax, yMin, yMax); + public ImPlotLimits(final double xMin, final double yMin, final double xMax, final double yMax) { + set(xMin, yMin, xMax, yMax); } - /*JNI - #include "_common.h" - #include "_implot.h" + public ImPlotLimits(final ImVec2 min, final ImVec2 max) { + set(min, max); + } - #define IMPLOT_LIMITS ((ImPlotLimits*)STRUCT_PTR) - */ + public ImPlotLimits(final ImPlotLimits value) { + set(value); + } + + public boolean contains(final double x, final double y) { + return this.x.contains(x) && this.y.contains(y); + } + + public boolean contains(final ImPlotPoint value) { + return contains(value.x, value.y); + } + + public ImPlotPoint min() { + return new ImPlotPoint(x.min, y.min); + } + + public ImPlotPoint max() { + return new ImPlotPoint(x.max, y.max); + } + + public void set(final double xMin, final double yMin, final double xMax, final double yMax) { + this.x.min = xMin; + this.x.max = xMax; + this.y.min = yMin; + this.y.max = yMax; + } + + public void set(final ImVec2 min, final ImVec2 max) { + set(min.x, min.y, max.x, max.y); + } + + public void set(final ImPlotRange x, final ImPlotRange y) { + set(x.min, y.min, x.max, y.max); + } + + public void set(final ImPlotLimits value) { + set(value.x, value.y); + } @Override - protected native long create(); /* - return (intptr_t)(new ImPlotLimits(0, 0, 0, 0)); - */ - - protected native long create(double xMin, double xMax, double yMin, double yMax); /* - return (intptr_t)(new ImPlotLimits(xMin, xMax, yMin, yMax)); - */ - - public boolean contains(final ImPlotPoint plotPoint) { - return contains(plotPoint.getX(), plotPoint.getY()); + public String toString() { + return "ImPlotLimits{" + + "x=" + x + + ", y=" + y + + '}'; } - public native boolean contains(double x, double y); /* - return IMPLOT_LIMITS->Contains(x, y); - */ + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } - /** - * Returns the same as min(), but instead as an ImVec2. - */ - public ImVec2 minVec() { - final ImPlotPoint val = min(); - final ImVec2 vec = new ImVec2((float) val.getX(), (float) val.getY()); - val.destroy(); - return vec; + if (o == null || getClass() != o.getClass()) { + return false; + } + + final ImPlotLimits imPlotLimits = (ImPlotLimits) o; + return Objects.equals(x, imPlotLimits.x) && Objects.equals(y, imPlotLimits.y); } - /** - * The returned ImPlotPoint should be manually deallocated with destroy()! - */ - public ImPlotPoint min() { - return new ImPlotPoint(nMin()); + @Override + public int hashCode() { + return Objects.hash(x, y); } - private native long nMin(); /* - ImPlotPoint* p = new ImPlotPoint(IMPLOT_LIMITS->Min()); - return (intptr_t)p; - */ - - /** - * The returned ImPlotPoint should be manually deallocated with destroy()! - */ - public ImPlotPoint max() { - return new ImPlotPoint(nMax()); + @Override + @SuppressWarnings("MethodDoesntCallSuperMethod") + public ImPlotLimits clone() { + return new ImPlotLimits(this); } - - /** - * Returns the same as max(), but instead as an ImVec2. - */ - public ImVec2 maxVec() { - final ImPlotPoint val = max(); - final ImVec2 vec = new ImVec2((float) val.getX(), (float) val.getY()); - val.destroy(); - return vec; - } - - private native long nMax(); /* - ImPlotPoint* p = new ImPlotPoint(IMPLOT_LIMITS->Max()); - return (intptr_t)p; - */ - - public ImPlotRange getX() { - return new ImPlotRange(nGetX(this.ptr)); - } - - private native long nGetX(long ptr); /* - return (intptr_t)&(IMPLOT_LIMITS->X); - */ - - public ImPlotRange getY() { - return new ImPlotRange(nGetY(this.ptr)); - } - - private native long nGetY(long ptr); /* - return (intptr_t)&(IMPLOT_LIMITS->Y); - */ - - public void setX(final ImPlotRange value) { - nSetX(value.ptr); - } - - private native void nSetX(long valueptr); /* - IMPLOT_LIMITS->X = *((ImPlotRange*)valueptr); - */ - - public void setY(final ImPlotRange value) { - nSetY(value.ptr); - } - - private native void nSetY(long valueptr); /* - IMPLOT_LIMITS->Y = *((ImPlotRange*)valueptr); - */ } diff --git a/imgui-binding/src/main/java/imgui/extension/implot/ImPlotPoint.java b/imgui-binding/src/main/java/imgui/extension/implot/ImPlotPoint.java index bebc36f..1809962 100644 --- a/imgui-binding/src/main/java/imgui/extension/implot/ImPlotPoint.java +++ b/imgui-binding/src/main/java/imgui/extension/implot/ImPlotPoint.java @@ -1,55 +1,100 @@ package imgui.extension.implot; import imgui.ImVec2; -import imgui.binding.ImGuiStructDestroyable; -public final class ImPlotPoint extends ImGuiStructDestroyable { - public ImPlotPoint(final long ptr) { - super(ptr); - } +import java.util.Objects; + +public final class ImPlotPoint implements Cloneable { + public double x; + public double y; public ImPlotPoint() { - this(0, 0); - } - - public ImPlotPoint(final ImVec2 vec) { - this(vec.x, vec.y); } public ImPlotPoint(final double x, final double y) { - this(0); - ptr = create(x, y); + set(x, y); } - /*JNI - #include "_common.h" - #include "_implot.h" + public ImPlotPoint(final ImVec2 value) { + set(value.x, value.y); + } - #define IMPLOT_POINT ((ImPlotPoint*)STRUCT_PTR) - */ + public ImPlotPoint(final ImPlotPoint value) { + set(value.x, value.y); + } + + public ImPlotPoint set(final double x, final double y) { + this.x = x; + this.y = y; + return this; + } + + public ImPlotPoint set(final ImPlotPoint value) { + return set(value.x, value.y); + } + + public ImPlotPoint set(final ImVec2 value) { + return set(value.x, value.y); + } + + public ImPlotPoint plus(final double x, final double y) { + this.x += x; + this.y += y; + return this; + } + + public ImPlotPoint plus(final ImPlotPoint value) { + return plus(value.x, value.y); + } + + public ImPlotPoint minus(final double x, final double y) { + this.x -= x; + this.y -= y; + return this; + } + + public ImPlotPoint minus(final ImPlotPoint value) { + return minus(value.x, value.y); + } + + public ImPlotPoint times(final double x, final double y) { + this.x *= x; + this.y *= y; + return this; + } + + public ImPlotPoint times(final ImPlotPoint value) { + return times(value.x, value.y); + } @Override - protected native long create(); /* - return (intptr_t)(new ImPlotPoint(0, 0)); - */ + public String toString() { + return "ImPlotPoint{" + + "x=" + x + + ", y=" + y + + '}'; + } - protected native long create(double x, double y); /* - return (intptr_t)(new ImPlotPoint(x, y)); - */ + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final ImPlotPoint imPlotPoint = (ImPlotPoint) o; + return Double.compare(imPlotPoint.x, x) == 0 && Double.compare(imPlotPoint.y, y) == 0; + } - public native double getX(); /* - return IMPLOT_POINT->x; - */ + @Override + public int hashCode() { + return Objects.hash(x, y); + } - public native double getY(); /* - return IMPLOT_POINT->y; - */ - - public native void setX(double value); /* - IMPLOT_POINT->x = value; - */ - - public native void setY(double value); /* - IMPLOT_POINT->y = value; - */ + @Override + @SuppressWarnings("MethodDoesntCallSuperMethod") + public ImPlotPoint clone() { + return new ImPlotPoint(this); + } } diff --git a/imgui-binding/src/main/java/imgui/extension/implot/ImPlotRange.java b/imgui-binding/src/main/java/imgui/extension/implot/ImPlotRange.java index d242a17..cf6ee50 100644 --- a/imgui-binding/src/main/java/imgui/extension/implot/ImPlotRange.java +++ b/imgui-binding/src/main/java/imgui/extension/implot/ImPlotRange.java @@ -1,58 +1,98 @@ package imgui.extension.implot; -import imgui.binding.ImGuiStructDestroyable; +import java.util.Objects; -public final class ImPlotRange extends ImGuiStructDestroyable { - public ImPlotRange(final long ptr) { - super(ptr); - } +public final class ImPlotRange implements Cloneable { + public double min; + public double max; public ImPlotRange() { - this(0, 0); } public ImPlotRange(final double min, final double max) { - this(0); - ptr = create(min, max); + set(min, max); } - /*JNI - #include "_common.h" - #include "_implot.h" + public ImPlotRange(final ImPlotRange value) { + set(value.min, value.max); + } - #define IMPLOT_RANGE ((ImPlotRange*)STRUCT_PTR) - */ + public boolean contains(final double value) { + return value >= min && value <= max; + } + + public double size() { + return max - min; + } + + public ImPlotRange set(final double min, final double max) { + this.min = min; + this.max = max; + return this; + } + + public ImPlotRange set(final ImPlotRange value) { + return set(value.min, value.max); + } + + public ImPlotRange plus(final double min, final double max) { + this.min += min; + this.max += max; + return this; + } + + public ImPlotRange plus(final ImPlotRange value) { + return plus(value.min, value.max); + } + + public ImPlotRange minus(final double min, final double max) { + this.min -= min; + this.max -= max; + return this; + } + + public ImPlotRange minus(final ImPlotRange value) { + return minus(value.min, value.max); + } + + public ImPlotRange times(final double min, final double max) { + this.min *= min; + this.max *= max; + return this; + } + + public ImPlotRange times(final ImPlotRange value) { + return times(value.min, value.max); + } @Override - protected native long create(); /* - return (intptr_t)(new ImPlotRange(0, 0)); - */ + public String toString() { + return "ImPlotRange{" + + "min=" + min + + ", max=" + max + + '}'; + } - protected native long create(double min, double max); /* - return (intptr_t)(new ImPlotRange(min, max)); - */ + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final ImPlotRange ImPlotRange = (ImPlotRange) o; + return Double.compare(ImPlotRange.min, min) == 0 && Double.compare(ImPlotRange.max, max) == 0; + } - public native boolean contains(double value); /* - return IMPLOT_RANGE->Contains(value); - */ + @Override + public int hashCode() { + return Objects.hash(min, max); + } - public native double size(); /* - return IMPLOT_RANGE->Size(); - */ - - public native double getMin(); /* - return IMPLOT_RANGE->Min; - */ - - public native double getMax(); /* - return IMPLOT_RANGE->Max; - */ - - public native void setMin(double min); /* - IMPLOT_RANGE->Min = min; - */ - - public native void nSetMax(double max); /* - IMPLOT_RANGE->Max = max; - */ + @Override + @SuppressWarnings("MethodDoesntCallSuperMethod") + public ImPlotRange clone() { + return new ImPlotRange(this); + } } diff --git a/imgui-binding/src/main/java/imgui/extension/implot/ImPlotStyle.java b/imgui-binding/src/main/java/imgui/extension/implot/ImPlotStyle.java index 0471b77..bf28c04 100644 --- a/imgui-binding/src/main/java/imgui/extension/implot/ImPlotStyle.java +++ b/imgui-binding/src/main/java/imgui/extension/implot/ImPlotStyle.java @@ -2,524 +2,135 @@ package imgui.extension.implot; import imgui.ImVec2; import imgui.ImVec4; -import imgui.binding.ImGuiStruct; -import imgui.extension.implot.flag.ImPlotCol; +import imgui.binding.ImGuiStructDestroyable; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.TypeArray; + +@BindingSource +public final class ImPlotStyle extends ImGuiStructDestroyable { + public ImPlotStyle() { + } -public final class ImPlotStyle extends ImGuiStruct { public ImPlotStyle(final long ptr) { super(ptr); } + @Override + protected long create() { + return nCreate(); + } + /*JNI - #include "_common.h" #include "_implot.h" - - #define IMPLOT_STYLE ((ImPlotStyle*)STRUCT_PTR) + #define THIS ((ImPlotStyle*)STRUCT_PTR) */ - //Line weight - public native float getLineWeight(); /* - return IMPLOT_STYLE->LineWeight; + private native long nCreate(); /* + return (intptr_t)(new ImPlotStyle()); */ - public native void setLineWeight(float lineWeight); /* - IMPLOT_STYLE->LineWeight = lineWeight; - */ - - //Marker - public native int getMarker(); /* - return IMPLOT_STYLE->Marker; - */ - - public native void setMarker(float input); /* - IMPLOT_STYLE->Marker = input; - */ - - //Marker size - public native float getMarkerSize(); /* - return IMPLOT_STYLE->MarkerSize; - */ - - public native void setMarkerSize(float input); /* - IMPLOT_STYLE->MarkerSize = input; - */ - - //Marker weight - public native float getMarkerWeight(); /* - return IMPLOT_STYLE->MarkerWeight; - */ - - public native void setMarkerWeight(float input); /* - IMPLOT_STYLE->MarkerWeight = input; - */ - - //Fill alpha - public native float getFillAlpha(); /* - return IMPLOT_STYLE->FillAlpha; - */ - - public native void setFillAlpha(float input); /* - IMPLOT_STYLE->FillAlpha = input; - */ - - //Error bar size - public native float getErrorBarSize(); /* - return IMPLOT_STYLE->ErrorBarSize; - */ - - public native void setErrorBarSize(float input); /* - IMPLOT_STYLE->ErrorBarSize = input; - */ - - //Error bar weight - public native float getErrorBarWeight(); /* - return IMPLOT_STYLE->ErrorBarWeight; - */ - - public native void setErrorBarWeight(float input); /* - IMPLOT_STYLE->ErrorBarWeight = input; - */ - - //Digital big height - public native float getDigitalBitHeight(); /* - return IMPLOT_STYLE->DigitalBitHeight; - */ - - public native void setDigitalBitHeight(float input); /* - IMPLOT_STYLE->DigitalBitHeight = input; - */ - - //Digital bit gap - public native float getDigitalBitGap(); /* - return IMPLOT_STYLE->DigitalBitGap; - */ - - public native void setDigitalBitGap(float input); /* - IMPLOT_STYLE->DigitalBitGap = input; - */ - - //Plot border size - public native float getPlotBorderSize(); /* - return IMPLOT_STYLE->PlotBorderSize; - */ - - public native void setPlotBorderSize(float input); /* - IMPLOT_STYLE->PlotBorderSize = input; - */ - - //Minor alpha - public native float getMinorAlpha(); /* - return IMPLOT_STYLE->MinorAlpha; - */ - - public native void setMinorAlpha(float input); /* - IMPLOT_STYLE->MinorAlpha = input; - */ - - //Major tick length - public ImVec2 getMajorTickLen() { - final ImVec2 vec = new ImVec2(); - nGetMajorTickLen(vec); - return vec; - } - - private native void nGetMajorTickLen(ImVec2 vec); /* - Jni::ImVec2Cpy(env, IMPLOT_STYLE->MajorTickLen, vec); - */ - - public void setMajorTickLen(final ImVec2 majorTickLen) { - nSetMajorTickLen(majorTickLen.x, majorTickLen.y); - } - - private native void nSetMajorTickLen(float x, float y); /* - IMPLOT_STYLE->MajorTickLen = ImVec2(x, y); - */ - - //Minor tick length - public ImVec2 getMinorTickLen() { - final ImVec2 vec = new ImVec2(); - nGetMinorTickLen(vec); - return vec; - } - - private native void nGetMinorTickLen(ImVec2 vec); /* - Jni::ImVec2Cpy(env, IMPLOT_STYLE->MinorTickLen, vec); - */ - - public void setMinorTickLen(final ImVec2 minorTickLen) { - nSetMinorTickLen(minorTickLen.x, minorTickLen.y); - } - - private native void nSetMinorTickLen(float x, float y); /* - IMPLOT_STYLE->MinorTickLen = ImVec2(x, y); - */ - - //Major tick size - public ImVec2 getMajorTickSize() { - final ImVec2 vec = new ImVec2(); - nGetMajorTickSize(vec); - return vec; - } - - private native void nGetMajorTickSize(ImVec2 vec); /* - Jni::ImVec2Cpy(env, IMPLOT_STYLE->MajorTickSize, vec); - */ - - public void setMajorTickSize(final ImVec2 majorTickSize) { - nSetMajorTickSize(majorTickSize.x, majorTickSize.y); - } - - private native void nSetMajorTickSize(float x, float y); /* - IMPLOT_STYLE->MajorTickSize = ImVec2(x, y); - */ - - //Minor tick size - public ImVec2 getMinorTickSize() { - final ImVec2 vec = new ImVec2(); - nGetMinorTickSize(vec); - return vec; - } - - private native void nGetMinorTickSize(ImVec2 vec); /* - Jni::ImVec2Cpy(env, IMPLOT_STYLE->MinorTickSize, vec); - */ - - public void setMinorTickSize(final ImVec2 minorTickSize) { - nSetMinorTickSize(minorTickSize.x, minorTickSize.y); - } - - private native void nSetMinorTickSize(float x, float y); /* - IMPLOT_STYLE->MinorTickSize = ImVec2(x, y); - */ - - //Major grid size - public ImVec2 getMajorGridSize() { - final ImVec2 vec = new ImVec2(); - nGetMajorGridSize(vec); - return vec; - } - - private native void nGetMajorGridSize(ImVec2 vec); /* - Jni::ImVec2Cpy(env, IMPLOT_STYLE->MajorGridSize, vec); - */ - - public void setMajorGridSize(final ImVec2 majorGridSize) { - nSetMajorGridSize(majorGridSize.x, majorGridSize.y); - } - - private native void nSetMajorGridSize(float x, float y); /* - IMPLOT_STYLE->MajorGridSize = ImVec2(x, y); - */ - - //Minor grid size - public ImVec2 getMinorGridSize() { - final ImVec2 vec = new ImVec2(); - nGetMinorGridSize(vec); - return vec; - } - - private native void nGetMinorGridSize(ImVec2 vec); /* - Jni::ImVec2Cpy(env, IMPLOT_STYLE->MinorGridSize, vec); - */ - - public void setMinorGridSize(final ImVec2 minorGridSize) { - nSetMinorGridSize(minorGridSize.x, minorGridSize.y); - } - - private native void nSetMinorGridSize(float x, float y); /* - IMPLOT_STYLE->MinorGridSize = ImVec2(x, y); - */ - - //Plot padding - public ImVec2 getPlotPadding() { - final ImVec2 vec = new ImVec2(); - nGetPlotPadding(vec); - return vec; - } - - private native void nGetPlotPadding(ImVec2 vec); /* - Jni::ImVec2Cpy(env, IMPLOT_STYLE->PlotPadding, vec); - */ - - public void setPlotPadding(final ImVec2 plotPadding) { - nSetPlotPadding(plotPadding.x, plotPadding.y); - } - - private native void nSetPlotPadding(float x, float y); /* - IMPLOT_STYLE->PlotPadding = ImVec2(x, y); - */ - - //Label padding - public ImVec2 getLabelPadding() { - final ImVec2 vec = new ImVec2(); - nGetLabelPadding(vec); - return vec; - } - - private native void nGetLabelPadding(ImVec2 vec); /* - Jni::ImVec2Cpy(env, IMPLOT_STYLE->LabelPadding, vec); - */ - - public void setLabelPadding(final ImVec2 labelPadding) { - nSetLabelPadding(labelPadding.x, labelPadding.y); - } - - private native void nSetLabelPadding(float x, float y); /* - IMPLOT_STYLE->LabelPadding = ImVec2(x, y); - */ - - //Legend padding - public ImVec2 getLegendPadding() { - final ImVec2 vec = new ImVec2(); - nGetLegendPadding(vec); - return vec; - } - - private native void nGetLegendPadding(ImVec2 vec); /* - Jni::ImVec2Cpy(env, IMPLOT_STYLE->LegendPadding, vec); - */ - - public void setLegendPadding(final ImVec2 legendPadding) { - nSetLegendPadding(legendPadding.x, legendPadding.y); - } - - private native void nSetLegendPadding(float x, float y); /* - IMPLOT_STYLE->LegendPadding = ImVec2(x, y); - */ - - //Legend inner padding - public ImVec2 getLegendInnerPadding() { - final ImVec2 vec = new ImVec2(); - nGetLegendInnerPadding(vec); - return vec; - } - - private native void nGetLegendInnerPadding(ImVec2 vec); /* - Jni::ImVec2Cpy(env, IMPLOT_STYLE->LegendInnerPadding, vec); - */ - - public void setLegendInnerPadding(final ImVec2 legendInnerPadding) { - nSetLegendInnerPadding(legendInnerPadding.x, legendInnerPadding.y); - } - - private native void nSetLegendInnerPadding(float x, float y); /* - IMPLOT_STYLE->LegendInnerPadding = ImVec2(x, y); - */ - - //Legend spacing - public ImVec2 getLegendSpacing() { - final ImVec2 vec = new ImVec2(); - nGetLegendSpacing(vec); - return vec; - } - - private native void nGetLegendSpacing(ImVec2 vec); /* - Jni::ImVec2Cpy(env, IMPLOT_STYLE->LegendSpacing, vec); - */ - - public void setLegendSpacing(final ImVec2 legendSpacing) { - nSetLegendSpacing(legendSpacing.x, legendSpacing.y); - } - - private native void nSetLegendSpacing(float x, float y); /* - IMPLOT_STYLE->LegendSpacing = ImVec2(x, y); - */ - - //Mouse position padding - public ImVec2 getMousePosPadding() { - final ImVec2 vec = new ImVec2(); - nGetMousePosPadding(vec); - return vec; - } - - private native void nGetMousePosPadding(ImVec2 vec); /* - Jni::ImVec2Cpy(env, IMPLOT_STYLE->MousePosPadding, vec); - */ - - public void setMousePosPadding(final ImVec2 mousePosPadding) { - nSetMousePosPadding(mousePosPadding.x, mousePosPadding.y); - } - - private native void nSetMousePosPadding(float x, float y); /* - IMPLOT_STYLE->MousePosPadding = ImVec2(x, y); - */ - - //Annotation padding - public ImVec2 getAnnotationPadding() { - final ImVec2 vec = new ImVec2(); - nGetAnnotationPadding(vec); - return vec; - } - - private native void nGetAnnotationPadding(ImVec2 vec); /* - Jni::ImVec2Cpy(env, IMPLOT_STYLE->AnnotationPadding, vec); - */ - - public void setAnnotationPadding(final ImVec2 annotationPadding) { - nSetAnnotationPadding(annotationPadding.x, annotationPadding.y); - } - - private native void nSetAnnotationPadding(float x, float y); /* - IMPLOT_STYLE->AnnotationPadding = ImVec2(x, y); - */ - - //Fit padding - public ImVec2 getFitPadding() { - final ImVec2 vec = new ImVec2(); - nGetFitPadding(vec); - return vec; - } - - private native void nGetFitPadding(ImVec2 vec); /* - Jni::ImVec2Cpy(env, IMPLOT_STYLE->FitPadding, vec); - */ - - public void setFitPadding(final ImVec2 fitPadding) { - nSetFitPadding(fitPadding.x, fitPadding.y); - } - - private native void nSetFitPadding(float x, float y); /* - IMPLOT_STYLE->FitPadding = ImVec2(x, y); - */ - - //Plot default size - public ImVec2 getPlotDefaultSize() { - final ImVec2 vec = new ImVec2(); - nGetPlotDefaultSize(vec); - return vec; - } - - private native void nGetPlotDefaultSize(ImVec2 vec); /* - Jni::ImVec2Cpy(env, IMPLOT_STYLE->PlotDefaultSize, vec); - */ - - public void setPlotDefaultSize(final ImVec2 plotDefaultSize) { - nSetPlotDefaultSize(plotDefaultSize.x, plotDefaultSize.y); - } - - private native void nSetPlotDefaultSize(float x, float y); /* - IMPLOT_STYLE->PlotDefaultSize = ImVec2(x, y); - */ - - //Plot minimum size - public ImVec2 getPlotMinSize() { - final ImVec2 vec = new ImVec2(); - nGetPlotMinSize(vec); - return vec; - } - - private native void nGetPlotMinSize(ImVec2 vec); /* - Jni::ImVec2Cpy(env, IMPLOT_STYLE->PlotMinSize, vec); - */ - - public void setPlotMinSize(final ImVec2 plotMinSize) { - nSetPlotMinSize(plotMinSize.x, plotMinSize.y); - } - - private native void nSetPlotMinSize(float x, float y); /* - IMPLOT_STYLE->PlotMinSize = ImVec2(x, y); - */ - - //Colors - public ImVec4[] getColors() { - final float[] w = new float[ImPlotCol.COUNT]; - final float[] x = new float[ImPlotCol.COUNT]; - final float[] y = new float[ImPlotCol.COUNT]; - final float[] z = new float[ImPlotCol.COUNT]; - - nGetColors(w, x, y, z, ImPlotCol.COUNT); - - final ImVec4[] colors = new ImVec4[ImPlotCol.COUNT]; - for (int i = 0; i < ImPlotCol.COUNT; i++) { - colors[i] = new ImVec4(w[i], x[i], y[i], z[i]); - } - return colors; - } - - private native void nGetColors(float[] w, float[] x, float[] y, float[] z, int count); /* - ImVec4* colors = IMPLOT_STYLE->Colors; - - for (int i = 0; i < count; i++) { - w[i] = colors->w; - x[i] = colors->x; - y[i] = colors->y; - z[i] = colors->z; - - colors++; - } - */ - - public void setColors(final ImVec4[] colors) { - final float[] w = new float[ImPlotCol.COUNT]; - final float[] x = new float[ImPlotCol.COUNT]; - final float[] y = new float[ImPlotCol.COUNT]; - final float[] z = new float[ImPlotCol.COUNT]; - - for (int i = 0; i < ImPlotCol.COUNT; i++) { - w[i] = colors[i].w; - x[i] = colors[i].x; - y[i] = colors[i].y; - z[i] = colors[i].z; - } - - nSetColors(w, x, y, z, ImPlotCol.COUNT); - } - - private native void nSetColors(float[] w, float[] x, float[] y, float[] z, int count); /* - ImVec4* colors = IMPLOT_STYLE->Colors; - - for (int i = 0; i < count; i++) { - colors->w = w[i]; - colors->x = x[i]; - colors->y = y[i]; - colors->z = z[i]; - - colors++; - } - */ - - //Colormap - public native int getColormap(); /* - return IMPLOT_STYLE->Colormap; - */ - - public native void setColormap(int input); /* - IMPLOT_STYLE->Colormap = input; - */ - - //Antialiasing - public native boolean isAntiAliasedLines(); /* - return IMPLOT_STYLE->AntiAliasedLines; - */ - - public native void setAntiAliasedLines(boolean input); /* - IMPLOT_STYLE->AntiAliasedLines = input; - */ - - //Local time - public native boolean isUseLocalTime(); /* - return IMPLOT_STYLE->UseLocalTime; - */ - - public native void setUseLocalTime(boolean input); /* - IMPLOT_STYLE->UseLocalTime = input; - */ - - //ISO 8601 - public native boolean isUseISO8601(); /* - return IMPLOT_STYLE->UseISO8601; - */ - - public native void setUseISO8601(boolean input); /* - IMPLOT_STYLE->UseISO8601 = input; - */ - - //24HR clock - public native boolean isUse24HourClock(); /* - return IMPLOT_STYLE->Use24HourClock; - */ - - public native void setUse24HourClock(boolean input); /* - IMPLOT_STYLE->Use24HourClock = input; + @BindingField + public float LineWeight; + + @BindingField + public int Marker; + + @BindingField + public float MarkerSize; + + @BindingField + public float MarkerWeight; + + @BindingField + public float FillAlpha; + + @BindingField + public float ErrorBarSize; + + @BindingField + public float ErrorBarWeight; + + @BindingField + public float DigitalBitHeight; + + @BindingField + public float DigitalBitGap; + + @BindingField + public float PlotBorderSize; + + @BindingField + public float MinorAlpha; + + @BindingField + public ImVec2 MajorTickLen; + + @BindingField + public ImVec2 MinorTickLen; + + @BindingField + public ImVec2 MajorTickSize; + + @BindingField + public ImVec2 MinorTickSize; + + @BindingField + public ImVec2 MajorGridSize; + + @BindingField + public ImVec2 MinorGridSize; + + @BindingField + public ImVec2 PlotPadding; + + @BindingField + public ImVec2 LabelPadding; + + @BindingField + public ImVec2 LegendPadding; + + @BindingField + public ImVec2 LegendInnerPadding; + + @BindingField + public ImVec2 LegendSpacing; + + @BindingField + public ImVec2 MousePosPadding; + + @BindingField + public ImVec2 AnnotationPadding; + + @BindingField + public ImVec2 FitPadding; + + @BindingField + public ImVec2 PlotDefaultSize; + + @BindingField + public ImVec2 PlotMinSize; + + @BindingField + @TypeArray(type = "ImVec4", size = "ImPlotCol_COUNT") + public ImVec4[] Colors; + + @BindingField + public int Colormap; + + @BindingField + public boolean AntiAliasedLines; + + @BindingField + public boolean UseLocalTime; + + @BindingField + public boolean UseISO8601; + + @BindingField + public boolean Use24HourClock; + + /*JNI + #undef THIS */ } diff --git a/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotAxisFlags.java b/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotAxisFlags.java index 9fddd1a..ff1ed18 100644 --- a/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotAxisFlags.java +++ b/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotAxisFlags.java @@ -1,37 +1,13 @@ package imgui.extension.implot.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class ImPlotAxisFlags { private ImPlotAxisFlags() { } - /** default */ - public static final int None = 0; - /** the axis label will not be displayed (axis labels also hidden if the supplied string name is NULL) */ - public static final int NoLabel = 1; - /** no grid lines will be displayed */ - public static final int NoGridLines = 1 << 1; - /** no tick marks will be displayed */ - public static final int NoTickMarks = 1 << 2; - /** no text labels will be displayed */ - public static final int NoTickLabels = 1 << 3; - /** grid lines will be displayed in the foreground (i.e. on top of data) in stead of the background */ - public static final int Foreground = 1 << 4; - /** a logartithmic (base 10) axis scale will be used (mutually exclusive with ImPlotAxisFlags_Time) */ - public static final int LogScale = 1 << 5; - /** axis will display date/time formatted labels (mutually exclusive with ImPlotAxisFlags_LogScale) */ - public static final int Time = 1 << 6; - /** the axis will be inverted */ - public static final int Invert = 1 << 7; - /** axis will not be initially fit to data extents on the first rendered frame (also the case if SetNextPlotLimits explicitly called) */ - public static final int NoInitialFit = 1 << 8; - /** axis will be auto-fitting to data extents */ - public static final int AutoFit = 1 << 9; - /** axis will only fit points if the point is in the visible range of the **orthoganol** axis */ - public static final int RangeFit = 1 << 10; - /** the axis minimum value will be locked when panning/zooming */ - public static final int LockMin = 1 << 11; - /** the axis maximum value will be locked when panning/zooming */ - public static final int LockMax = 1 << 12; - public static final int Lock = LockMin | LockMax; - public static final int NoDecorations = NoLabel | NoGridLines | NoTickMarks | NoTickLabels; + @BindingAstEnum(file = "ast-implot.json", qualType = "ImPlotAxisFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotBin.java b/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotBin.java index 89f0383..1773047 100644 --- a/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotBin.java +++ b/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotBin.java @@ -1,15 +1,13 @@ package imgui.extension.implot.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class ImPlotBin { private ImPlotBin() { } - /** k = sqrt(n) */ - public static final int Sqrt = -1; - /** k = 1 + log2(n) */ - public static final int Sturges = -2; - /** k = 2 * cbrt(n) */ - public static final int Rice = -3; - /** w = 3.49 * sigma / cbrt(n) */ - public static final int Scott = -4; + @BindingAstEnum(file = "ast-implot.json", qualType = "ImPlotBin_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotCol.java b/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotCol.java index b8a0779..4b1a7dd 100644 --- a/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotCol.java +++ b/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotCol.java @@ -1,57 +1,13 @@ package imgui.extension.implot.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class ImPlotCol { private ImPlotCol() { } - /** plot line/outline color (defaults to next unused color in current colormap)*/ - public static final int Line = 0; - /** plot fill color for bars (defaults to the current line color)*/ - public static final int Fill = 1; - /** marker outline color (defaults to the current line color)*/ - public static final int MarkerOutline = 2; - /** marker fill color (defaults to the current line color)*/ - public static final int MarkerFill = 3; - /** error bar color (defaults to ImGuiCol_Text)*/ - public static final int ErrorBar = 4; - // plot styling colors - /** plot frame background color (defaults to ImGuiCol_FrameBg) */ - public static final int FrameBg = 5; - /** plot area background color (defaults to ImGuiCol_WindowBg) */ - public static final int PlotBg = 6; - /** plot area border color (defaults to ImGuiCol_Border) */ - public static final int PlotBorder = 7; - /** legend background color (defaults to ImGuiCol_PopupBg) */ - public static final int LegendBg = 8; - /** legend border color (defaults to ImPlotCol_PlotBorder) */ - public static final int LegendBorder = 9; - /** legend text color (defaults to ImPlotCol_InlayText) */ - public static final int LegendText = 10; - /** plot title text color (defaults to ImGuiCol_Text) */ - public static final int TitleText = 11; - /** color of text appearing inside of plots (defaults to ImGuiCol_Text) */ - public static final int InlayText = 12; - /** x-axis label and tick lables color (defaults to ImGuiCol_Text) */ - public static final int XAxis = 13; - /** x-axis grid color (defaults to 25% ImPlotCol_XAxis) */ - public static final int XAxisGrid = 14; - /** y-axis label and tick labels color (defaults to ImGuiCol_Text) */ - public static final int YAxis = 15; - /** y-axis grid color (defaults to 25% ImPlotCol_YAxis) */ - public static final int YAxisGrid = 16; - /** 2nd y-axis label and tick labels color (defaults to ImGuiCol_Text) */ - public static final int YAxis2 = 17; - /** 2nd y-axis grid/label color (defaults to 25% ImPlotCol_YAxis2) */ - public static final int YAxisGrid2 = 18; - /** 3rd y-axis label and tick labels color (defaults to ImGuiCol_Text) */ - public static final int YAxis3 = 19; - /** 3rd y-axis grid/label color (defaults to 25% ImPlotCol_YAxis3) */ - public static final int YAxisGrid3 = 21; - /** box-selection color (defaults to yellow) */ - public static final int Selection = 22; - /** box-query color (defaults to green) */ - public static final int Query = 23; - /** crosshairs color (defaults to ImPlotCol_PlotBorder) */ - public static final int Crosshairs = 24; - public static final int COUNT = 25; + @BindingAstEnum(file = "ast-implot.json", qualType = "ImPlotCol_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotColormap.java b/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotColormap.java index 709f43c..998e84c 100644 --- a/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotColormap.java +++ b/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotColormap.java @@ -1,39 +1,13 @@ package imgui.extension.implot.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class ImPlotColormap { private ImPlotColormap() { } - /** a.k.a. seaborn deep (qual=true, n=10) (default) */ - public static final int Deep = 0; - /** a.k.a. matplotlib "Set1" (qual=true, n=9 ) */ - public static final int Dark = 1; - /** a.k.a. matplotlib "Pastel1" (qual=true, n=9 ) */ - public static final int Pastel = 2; - /** a.k.a. matplotlib "Paired" (qual=true, n=12) */ - public static final int Paired = 3; - /** a.k.a. matplotlib "viridis" (qual=false, n=11) */ - public static final int Viridis = 4; - /** a.k.a. matplotlib "plasma" (qual=false, n=11) */ - public static final int Plasma = 5; - /** a.k.a. matplotlib/MATLAB "hot" (qual=false, n=11) */ - public static final int Hot = 6; - /** a.k.a. matplotlib/MATLAB "cool" (qual=false, n=11) */ - public static final int Cool = 7; - /** a.k.a. matplotlib/MATLAB "pink" (qual=false, n=11) */ - public static final int Pink = 8; - /** a.k.a. MATLAB "jet" (qual=false, n=11) */ - public static final int Jet = 9; - /** a.k.a. matplotlib "twilight" (qual=false, n=11) */ - public static final int Twilight = 10; - /** red/blue, Color Brewer (qual=false, n=11) */ - public static final int RdBu = 11; - /** brown/blue-green, Color Brewer (qual=false, n=11) */ - public static final int BrBG = 12; - /** pink/yellow-green, Color Brewer (qual=false, n=11) */ - public static final int PiYG = 13; - /** color spectrum, Color Brewer (qual=false, n=11) */ - public static final int Spectral = 14; - /** white/black (qual=false, n=2 ) */ - public static final int Greys = 15; + @BindingAstEnum(file = "ast-implot.json", qualType = "ImPlotColormap_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotFlags.java b/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotFlags.java index 33390b6..0de3840 100644 --- a/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotFlags.java +++ b/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotFlags.java @@ -1,36 +1,13 @@ package imgui.extension.implot.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class ImPlotFlags { private ImPlotFlags() { } - /** default */ - 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") */ - public static final int NoTitle = 1; - /** the legend will not be displayed */ - public static final int NoLegend = 1 << 1; - /** the user will not be able to open context menus with right-click */ - public static final int NoMenus = 1 << 2; - /** the user will not be able to box-select with right-click drag */ - public static final int NoBoxSelect = 1 << 3; - /** the mouse position, in plot coordinates, will not be displayed inside of the plot */ - public static final int NoMousePos = 1 << 4; - /** plot items will not be highlighted when their legend entry is hovered */ - public static final int NoHighlight = 1 << 5; - /** a child window region will not be used to capture mouse scroll (can boost performance for single ImGui window applications) */ - public static final int NoChild = 1 << 6; - /** primary x and y axes will be constrained to have the same units/pixel (does not apply to auxiliary y-axes) */ - public static final int Equal = 1 << 7; - /** enable a 2nd y-axis on the right side */ - public static final int YAxis2 = 1 << 8; - /** enable a 3rd y-axis on the right side */ - public static final int YAxis3 = 1 << 9; - /** the user will be able to draw query rects with middle-mouse or CTRL + right-click drag */ - public static final int Query = 1 << 1; - /** the default mouse cursor will be replaced with a crosshair when hovered */ - public static final int Crosshairs = 1 << 1; - /** plot lines will be software anti-aliased (not recommended for high density plots, prefer MSAA) */ - public static final int AntiAliased = 1 << 1; - public static final int CanvasOnly = NoTitle | NoLegend | NoMenus | NoBoxSelect | NoMousePos; + @BindingAstEnum(file = "ast-implot.json", qualType = "ImPlotFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotLocation.java b/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotLocation.java index 40d820e..30223b1 100644 --- a/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotLocation.java +++ b/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotLocation.java @@ -1,25 +1,13 @@ package imgui.extension.implot.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class ImPlotLocation { private ImPlotLocation() { } - /** center-center */ - public static final int Center = 0; - /** top-center */ - public static final int North = 1; - /** bottom-center */ - public static final int South = 1 << 1; - /** center-left */ - public static final int West = 1 << 2; - /** center-right */ - public static final int East = 1 << 3; - /** top-left */ - public static final int NorthWest = North | West; - /** top-right */ - public static final int NorthEast = North | East; - /** bottom-left */ - public static final int SouthWest = South | West; - /** bottom-right */ - public static final int SouthEast = South | East; + @BindingAstEnum(file = "ast-implot.json", qualType = "ImPlotLocation_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotMarker.java b/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotMarker.java index 04800c7..68c1658 100644 --- a/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotMarker.java +++ b/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotMarker.java @@ -1,30 +1,13 @@ package imgui.extension.implot.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class ImPlotMarker { private ImPlotMarker() { } - /** no marker */ - public static final int None = -1; - /** a circle marker */ - public static final int Circle = 0; - /** a square maker */ - public static final int Square = 1; - /** a diamond marker */ - public static final int Diamond = 2; - /** an upward-pointing triangle marker */ - public static final int Up = 3; - /** an downward-pointing triangle marker */ - public static final int Down = 4; - /** an leftward-pointing triangle marker */ - public static final int Left = 5; - /** an rightward-pointing triangle marker */ - public static final int Right = 6; - /** a cross marker (not fillable) */ - public static final int Cross = 7; - /** a plus marker (not fillable) */ - public static final int Plus = 8; - /** a asterisk marker (not fillable) */ - public static final int Asterisk = 9; - public static final int COUNT = 10; + @BindingAstEnum(file = "ast-implot.json", qualType = "ImPlotMarker_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotOrientation.java b/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotOrientation.java index edc07bb..bfd81ea 100644 --- a/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotOrientation.java +++ b/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotOrientation.java @@ -1,11 +1,13 @@ package imgui.extension.implot.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class ImPlotOrientation { private ImPlotOrientation() { } - /** left/right */ - public static final int Horizontal = 0; - /** up/down */ - public static final int Vertical = 1; + @BindingAstEnum(file = "ast-implot.json", qualType = "ImPlotOrientation_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotStyleVar.java b/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotStyleVar.java index 95dba55..346ef71 100644 --- a/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotStyleVar.java +++ b/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotStyleVar.java @@ -1,62 +1,13 @@ package imgui.extension.implot.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class ImPlotStyleVar { private ImPlotStyleVar() { } - /** float, plot item line weight in pixels */ - public static final int LineWeight = 0; - /** int, marker specification */ - public static final int Marker = 1; - /** float, marker size in pixels (roughly the marker's "radius") */ - public static final int MarkerSize = 2; - /** float, plot outline weight of markers in pixels */ - public static final int MarkerWeight = 3; - /** float, alpha modifier applied to all plot item fills */ - public static final int FillAlpha = 4; - /** float, error bar whisker width in pixels */ - public static final int ErrorBarSize = 5; - /** float, error bar whisker weight in pixels */ - public static final int ErrorBarWeight = 6; - /** float, digital channels bit height (at 1) in pixels */ - public static final int DigitalBitHeight = 7; - /** float, digital channels bit padding gap in pixels */ - public static final int DigitalBitGap = 8; - /** float, thickness of border around plot area */ - public static final int PlotBorderSize = 9; - /** float, alpha multiplier applied to minor axis grid lines */ - public static final int MinorAlpha = 10; - /** ImVec2, major tick lengths for X and Y axes */ - public static final int MajorTickLen = 12; - /** ImVec2, minor tick lengths for X and Y axes */ - public static final int MinorTickLen = 13; - /** ImVec2, line thickness of major ticks */ - public static final int MajorTickSize = 14; - /** ImVec2, line thickness of minor ticks */ - public static final int MinorTickSize = 15; - /** ImVec2, line thickness of major grid lines */ - public static final int MajorGridSize = 16; - /** ImVec2, line thickness of minor grid lines */ - public static final int MinorGridSize = 17; - /** ImVec2, padding between widget frame and plot area, labels, or outside legends (i.e. main padding) */ - public static final int PlotPadding = 18; - /** ImVec2, padding between axes labels, tick labels, and plot edge */ - public static final int LabelPadding = 19; - /** ImVec2, legend padding from plot edges */ - public static final int LegendPadding = 20; - /** ImVec2, legend inner padding from legend edges */ - public static final int LegendInnerPadding = 21; - /** ImVec2, spacing between legend entries */ - public static final int LegendSpacing = 22; - /** ImVec2, padding between plot edge and interior info text */ - public static final int MousePosPadding = 23; - /** ImVec2, text padding around annotation labels */ - public static final int AnnotationPadding = 24; - /** ImVec2, additional fit padding as a percentage of the fit extents (e.g. ImVec2(0.1f,0.1f) adds 10% to the fit extents of X and Y) */ - public static final int FitPadding = 25; - /** ImVec2, default size used when ImVec2(0,0) is passed to BeginPlot */ - public static final int PlotDefaultSize = 26; - /** ImVec2, minimum size plot frame can be when shrunk */ - public static final int PlotMinSize = 27; - public static final int COUNT = 28; + @BindingAstEnum(file = "ast-implot.json", qualType = "ImPlotStyleVar_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotYAxis.java b/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotYAxis.java index a1cea8f..61eda01 100644 --- a/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotYAxis.java +++ b/imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotYAxis.java @@ -1,13 +1,13 @@ package imgui.extension.implot.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class ImPlotYAxis { private ImPlotYAxis() { } - /** left (default) */ - public static final int YAxis_1 = 0; - /** first on right side */ - public static final int YAxis_2 = 1; - /** second on right side */ - public static final int YAxis_3 = 2; + @BindingAstEnum(file = "ast-implot.json", qualType = "ImPlotYAxis_", sanitizeName = "ImPlot") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/memedit/MemoryEditor.java b/imgui-binding/src/main/java/imgui/extension/memedit/MemoryEditor.java index 793b56d..1505710 100644 --- a/imgui-binding/src/main/java/imgui/extension/memedit/MemoryEditor.java +++ b/imgui-binding/src/main/java/imgui/extension/memedit/MemoryEditor.java @@ -1,21 +1,19 @@ package imgui.extension.memedit; import imgui.binding.ImGuiStructDestroyable; +import imgui.binding.annotation.ArgValue; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingMethod; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.OptArg; /** * ImGui Club Memory Editor extension for ImGui - * Repo: https://github.com/ocornut/imgui_club + * Repo: https://github.com/ocornut/imgui_club */ +@BindingSource public final class MemoryEditor extends ImGuiStructDestroyable { - - /*JNI - #include "_memedit.h" - - #define MEMORY_EDITOR ((MemoryEditor*)STRUCT_PTR) - */ - public MemoryEditor() { - } public MemoryEditor(final long ptr) { @@ -27,51 +25,75 @@ public final class MemoryEditor extends ImGuiStructDestroyable { return nCreate(); } + /*JNI + #include "_memedit.h" + #define THIS ((MemoryEditor*)STRUCT_PTR) + #define MemoryEditorSizes MemoryEditor::Sizes + */ + private native long nCreate(); /* return (intptr_t)(new MemoryEditor()); */ - public native void gotoAddrAndHighlight(long addrMin, long addrMax); /* - MEMORY_EDITOR->GotoAddrAndHighlight(addrMin, addrMax); - */ + @BindingField + public boolean Open; - public void calcSizes(final MemoryEditorSizes s, final long memSize, final long baseDisplayAddr) { - nCalcSizes(s.ptr, memSize, baseDisplayAddr); - } + @BindingField + public boolean ReadOnly; - public native void nCalcSizes(long ptr, long memSize, long baseDisplayAddr); /* - MEMORY_EDITOR->CalcSizes(*((MemoryEditor::Sizes*)ptr), static_cast(memSize), static_cast(baseDisplayAddr)); - */ + @BindingField + public int Cols; - public void drawWindow(final String title, final long memData, final long memSize) { - drawWindow(title, memData, memSize, 0x000); - } + @BindingField + public boolean OptShowOptions; - public native void drawWindow(String title, long memData, long memSize, long baseDisplayAddr); /* - MEMORY_EDITOR->DrawWindow(title, reinterpret_cast(memData), static_cast(memSize), static_cast(baseDisplayAddr)); - */ + @BindingField + public boolean OptShowDataPreview; - public void drawContents(final long memData, final long memSize) { - drawContents(memData, memSize, 0x0000); - } + @BindingField + public boolean OptShowHexII; - public native void drawContents(long memData, long memSize, long baseDisplayAddr); /* - MEMORY_EDITOR->DrawContents(reinterpret_cast(memData), static_cast(memSize), static_cast(baseDisplayAddr)); - */ + @BindingField + public boolean OptShowAscii; - public void drawOptionsLine(final MemoryEditorSizes s, final long memData, final long memSize, final long baseDisplayAddr) { - nDrawOptionsLine(s.ptr, memData, memSize, baseDisplayAddr); - } + @BindingField + public boolean OptGreyOutZeroes; - public native void nDrawOptionsLine(long ptr, long memData, long memSize, long baseDisplayAddr); /* - MEMORY_EDITOR->DrawOptionsLine(*((MemoryEditor::Sizes*)ptr), reinterpret_cast(memData), static_cast(memSize), static_cast(baseDisplayAddr)); - */ + @BindingField + public boolean OptUpperCaseHex; - public void drawPreviewLine(final MemoryEditorSizes s, final long memDataVoid, final long memSize, final long baseDisplayAddr) { - nDrawPreviewLine(s.ptr, memDataVoid, memSize, baseDisplayAddr); - } + @BindingField + public int OptMidColsCount; - public native void nDrawPreviewLine(long ptr, long memDataVoid, long memSize, long baseDisplayAddr); /* - MEMORY_EDITOR->DrawPreviewLine(*((MemoryEditor::Sizes*)ptr), reinterpret_cast(memDataVoid), static_cast(memSize), static_cast(baseDisplayAddr)); - */ + @BindingField + public int OptAddrDigitsCount; + + @BindingField + public float OptFooterExtraHeight; + + @BindingField + public int HighlightColor; + + @BindingMethod + public native void GotoAddrAndHighlight(long addrMin, long addrMax); + + @BindingMethod + public native void CalcSizes(@ArgValue(callPrefix = "*") MemoryEditorSizes s, long memSize, long baseDisplayAddr); + + @BindingMethod + public native void DrawWindow(String title, @ArgValue(reinterpretCast = "void*") long memData, long memSize, @OptArg long baseDisplayAddr); + + @BindingMethod + public native void DrawContents(@ArgValue(reinterpretCast = "void*") long memData, long memSize, @OptArg long baseDisplayAddr); + + @BindingMethod + public native void DrawOptionsLine(@ArgValue(callPrefix = "*") MemoryEditorSizes s, @ArgValue(reinterpretCast = "void*") long memData, long memSize, long baseDisplayAddr); + + @BindingMethod + public native void DrawPreviewLine(@ArgValue(callPrefix = "*") MemoryEditorSizes s, @ArgValue(reinterpretCast = "void*") long memDataVoid, long memSize, long baseDisplayAddr); + + /*JNI + #undef MemoryEditorSizes + #undef THIS + */ } diff --git a/imgui-binding/src/main/java/imgui/extension/memedit/MemoryEditorSizes.java b/imgui-binding/src/main/java/imgui/extension/memedit/MemoryEditorSizes.java index 18da413..777b8fe 100644 --- a/imgui-binding/src/main/java/imgui/extension/memedit/MemoryEditorSizes.java +++ b/imgui-binding/src/main/java/imgui/extension/memedit/MemoryEditorSizes.java @@ -1,17 +1,12 @@ package imgui.extension.memedit; import imgui.binding.ImGuiStructDestroyable; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingSource; +@BindingSource public final class MemoryEditorSizes extends ImGuiStructDestroyable { - - /*JNI - #include "_memedit.h" - - #define MEMORY_EDITOR_SIZES ((MemoryEditor::Sizes*)STRUCT_PTR) - */ - public MemoryEditorSizes() { - } public MemoryEditorSizes(final long ptr) { @@ -23,87 +18,46 @@ public final class MemoryEditorSizes extends ImGuiStructDestroyable { return nCreate(); } + /*JNI + #include "_memedit.h" + #define THIS ((MemoryEditor::Sizes*)STRUCT_PTR) + */ + private native long nCreate(); /* return (intptr_t)(new MemoryEditor::Sizes()); */ - public native void setAddrDigitsCount(int addrDigitsCount); /* - MEMORY_EDITOR_SIZES->AddrDigitsCount = addrDigitsCount; - */ + @BindingField + public int AddrDigitsCount; - public native int getAddrDigitsCount(); /* - return MEMORY_EDITOR_SIZES->AddrDigitsCount; - */ + @BindingField + public float LineHeight; - public native void setLineHeight(float lineHeight); /* - MEMORY_EDITOR_SIZES->LineHeight = lineHeight; - */ + @BindingField + public float GlyphWidth; - public native float getLineHeight(); /* - return MEMORY_EDITOR_SIZES->LineHeight; - */ + @BindingField + public float HexCellWidth; - public native void setGlyphWidth(float glyphWidth); /* - MEMORY_EDITOR_SIZES->GlyphWidth = glyphWidth; - */ + @BindingField + public float SpacingBetweenMidCols; - public native float getGlyphWidth(); /* - return MEMORY_EDITOR_SIZES->GlyphWidth; - */ + @BindingField + public float PosHexStart; - public native void setHexCellWidth(float hexCellWidth); /* - MEMORY_EDITOR_SIZES->HexCellWidth = hexCellWidth; - */ + @BindingField + public float PosHexEnd; - public native float getHexCellWidth(); /* - return MEMORY_EDITOR_SIZES->HexCellWidth; - */ + @BindingField + public float PosAsciiStart; - public native void setSpacingBetweenMidCols(float spacingBetweenMidCols); /* - MEMORY_EDITOR_SIZES->SpacingBetweenMidCols = spacingBetweenMidCols; - */ + @BindingField + public float PosAsciiEnd; - public native float getSpacingBetweenMidCols(); /* - return MEMORY_EDITOR_SIZES->SpacingBetweenMidCols; - */ + @BindingField + public float WindowWidth; - public native void setPosHexStart(float posHexStart); /* - MEMORY_EDITOR_SIZES->PosHexStart = posHexStart; - */ - - public native float getPosHexStart(); /* - return MEMORY_EDITOR_SIZES->PosHexStart; - */ - - public native void setPosHexEnd(float posHexEnd); /* - MEMORY_EDITOR_SIZES->PosHexEnd = posHexEnd; - */ - - public native float getPosHexEnd(); /* - return MEMORY_EDITOR_SIZES->PosHexEnd; - */ - - public native void setPosAsciiStart(float posAsciiStart); /* - MEMORY_EDITOR_SIZES->PosAsciiStart = posAsciiStart; - */ - - public native float getPosAsciiStart(); /* - return MEMORY_EDITOR_SIZES->PosAsciiStart; - */ - - public native void setPosAsciiEnd(float posAsciiEnd); /* - MEMORY_EDITOR_SIZES->PosAsciiEnd = posAsciiEnd; - */ - - public native float getPosAsciiEnd(); /* - return MEMORY_EDITOR_SIZES->PosAsciiEnd; - */ - - public native void setWindowWidth(float windowWidth); /* - MEMORY_EDITOR_SIZES->WindowWidth = windowWidth; - */ - - public native float getWindowWidth(); /* - return MEMORY_EDITOR_SIZES->WindowWidth; - */ + /*JNI + #undef THIS + */ } diff --git a/imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditor.java b/imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditor.java index ee20d20..85c4077 100644 --- a/imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditor.java +++ b/imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditor.java @@ -2,542 +2,406 @@ package imgui.extension.nodeditor; import imgui.ImDrawList; import imgui.ImVec2; +import imgui.ImVec4; +import imgui.binding.annotation.ArgValue; +import imgui.binding.annotation.BindingMethod; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.OptArg; +import imgui.binding.annotation.ReturnValue; import imgui.type.ImLong; /** * Bindings for Imgui Node Editor (https://github.com/thedmd/imgui-node-editor) * Original library author - Michał Cichoń (https://github.com/thedmd) - * + *

* An implementation of node editor with ImGui-like API. * Project purpose is to serve as a basis for more complex solutions like blueprint editors. - * + *

* Refer to the library's Github page for examples and support - * + *

* Before you can start drawing editor you have to create ImNodeEditorContext * (either by invoking constructor directly or using ImNodeEditor.createEditor()) and switch * current editor via ImNodeEditor.setCurrentEditor(NodeEditorContext) - * + *

* Binding notice: instead of special types for ids of nodes, links and pins which used in native library * we use longs to reduce boilerplate and garbage production */ +@BindingSource(callPtr = "ax::NodeEditor") public final class NodeEditor { - private static final ImDrawList HINT_FOREGROUND_DRAW_LIST = new ImDrawList(0); - private static final ImDrawList HINT_BACKGROUND_DRAW_LIST = new ImDrawList(0); - private static final ImDrawList NODE_BACKGROUND_DRAW_LIST = new ImDrawList(0); - - private static final NodeEditorStyle STYLE = new NodeEditorStyle(0); - private NodeEditor() { } /*JNI #include "_nodeeditor.h" - - namespace ed = ax::NodeEditor; + #define NodeEditorConfig ax::NodeEditor::Config + #define NodeEditorStyle ax::NodeEditor::Style + #define NodeEditorContext ax::NodeEditor::EditorContext */ - /** - * This method exists for api consistency and you can just call NodeEditorContext manually - */ - public static NodeEditorContext createEditor() { - return new NodeEditorContext(); - } + @BindingMethod + public static native void SetCurrentEditor(NodeEditorContext ctx); - public static NodeEditorContext createEditor(final NodeEditorConfig config) { - return new NodeEditorContext(config); - } + @BindingMethod + public static native NodeEditorContext GetCurrentEditor(); - /** - * This method exists for api consistency and you can just call NodeEditorContext.destroy() manually - */ - public static void destroyEditor(final NodeEditorContext editorContext) { - editorContext.destroy(); - } + @BindingMethod + public static native NodeEditorContext CreateEditor(@OptArg NodeEditorConfig config); - public static void setCurrentEditor(final NodeEditorContext editorContext) { - nSetCurrentEditor(editorContext.ptr); - } + @BindingMethod + public static native void DestroyEditor(NodeEditorContext ctx); - private static native void nSetCurrentEditor(long editor); /* - ed::SetCurrentEditor((ed::EditorContext*)editor); - */ + @BindingMethod + @ReturnValue(isStatic = true, callPrefix = "&") + public static native NodeEditorStyle GetStyle(); - public static native void begin(String title); /* - ed::Begin(title); - */ + @BindingMethod + public static native String GetStyleColorName(@ArgValue(staticCast = "ax::NodeEditor::StyleColor") int colorIndex); - public static native void beginNode(long id); /* - ed::BeginNode(id); - */ + @BindingMethod + public static native void PushStyleColor(@ArgValue(staticCast = "ax::NodeEditor::StyleColor") int colorIndex, ImVec4 color); - public static native void group(float w, float h); /* - ed::Group(ImVec2(w, h)); - */ + @BindingMethod + public static native void PopStyleColor(@OptArg int count); - public static native boolean beginGroupHint(long id); /* - return ed::BeginGroupHint(id); - */ + @BindingMethod + public static native void PushStyleVar(@ArgValue(staticCast = "ax::NodeEditor::StyleVar")int varIndex, float value); + @BindingMethod + public static native void PushStyleVar(@ArgValue(staticCast = "ax::NodeEditor::StyleVar")int varIndex, ImVec2 value); - public static native void beginPin(long pin, int imNodeEditorPinKind); /* - ed::BeginPin(pin, (ed::PinKind)imNodeEditorPinKind); - */ + @BindingMethod + public static native void PushStyleVar(@ArgValue(staticCast = "ax::NodeEditor::StyleVar")int varIndex, ImVec4 value); - public static native void endGroupHint(); /* - ed::EndGroupHint(); - */ + @BindingMethod + public static native void PopStyleVar(@OptArg int count); - public static native void endPin(); /* - ed::EndPin(); - */ + @BindingMethod + public static native void Begin(String id, @OptArg ImVec2 size); - public static native void endNode(); /* - ed::EndNode(); - */ + @BindingMethod + public static native void End(); - public static native void end(); /* - ed::End(); - */ + @BindingMethod + public static native void BeginNode(long id); - public static native float getScreenSizeX(); /* - return ed::GetScreenSize().x; - */ + @BindingMethod + public static native void BeginPin(long id, @ArgValue(staticCast = "ax::NodeEditor::PinKind") int kind); - public static native float getScreenSizeY(); /* - return ed::GetScreenSize().y; - */ + @BindingMethod + public static native void PinRect(ImVec2 a, ImVec2 b); - public static native float toCanvasX(float screenSpacePosX); /* - return ed::ScreenToCanvas(ImVec2(screenSpacePosX, 0.0f)).x; - */ + @BindingMethod + public static native void PinPivotRect(ImVec2 a, ImVec2 b); - public static native float toCanvasY(float screenSpacePosY); /* - return ed::ScreenToCanvas(ImVec2(0.0f, screenSpacePosY)).y; - */ + @BindingMethod + public static native void PinPivotSize(ImVec2 size); - public static native float toScreenX(float canvasSpacePosX); /* - return ed::CanvasToScreen(ImVec2(canvasSpacePosX, 0.0f)).x; - */ + @BindingMethod + public static native void PinPivotScale(ImVec2 scale); - public static native float toScreenY(float canvasSpacePosY); /* - return ed::CanvasToScreen(ImVec2(0.0f, canvasSpacePosY)).y; - */ + @BindingMethod + public static native void PinPivotAlignment(ImVec2 alignment); - public static NodeEditorStyle getStyle() { - STYLE.ptr = nGetStyle(); - return STYLE; - } + @BindingMethod + public static native void EndPin(); - private static native long nGetStyle(); /* - return (intptr_t)&ed::GetStyle(); - */ + @BindingMethod + public static native void Group(ImVec2 size); - public static native String getStyleColorName(int imNodeEditorStyleColor); /* - return env->NewStringUTF(ed::GetStyleColorName((ed::StyleColor)imNodeEditorStyleColor)); - */ + @BindingMethod + public static native void EndNode(); - public static native void pushStyleColor(int imNodeEditorStyleColor, float r, float g, float b, float a); /* - ed::PushStyleColor((ed::StyleColor)imNodeEditorStyleColor, ImVec4(r, g, b, a)); - */ + @BindingMethod + public static native boolean BeginGroupHint(long nodeId); - public static native void popStyleColor(int count); /* - ed::PopStyleColor(count); - */ + @BindingMethod + public static native ImVec2 GetGroupMin(); - public static native void pushStyleVar(int imNodeEditorStyleVar, float v); /* - ed::PushStyleVar((ed::StyleVar)imNodeEditorStyleVar, v); - */ + @BindingMethod + public static native ImVec2 GetGroupMax(); - public static native void pushStyleVar(int imNodeEditorStyleVar, float x, float y); /* - ed::PushStyleVar((ed::StyleVar)imNodeEditorStyleVar, ImVec2(x, y)); - */ + @BindingMethod + @ReturnValue(isStatic = true) + public static native ImDrawList GetHintForegroundDrawList(); - public static native void pushStyleVar(int imNodeEditorStyleVar, float r, float g, float b, float a); /* - ed::PushStyleVar((ed::StyleVar)imNodeEditorStyleVar, ImVec4(r, g, b, a)); - */ + @BindingMethod + @ReturnValue(isStatic = true) + public static native ImDrawList GetHintBackgroundDrawList(); - public static native void popStyleVar(int count); /* - ed::PopStyleVar(count); - */ + @BindingMethod + public static native void EndGroupHint(); - public static native float getGroupMinX(); /* - return ed::GetGroupMin().x; - */ + @BindingMethod + @ReturnValue(isStatic = true) + public static native ImDrawList GetNodeBackgroundDrawList(long nodeId); - public static native float getGroupMinY(); /* - return ed::GetGroupMin().y; - */ + @BindingMethod + public static native boolean Link(long id, long startPinId, long endPinId, @OptArg(callValue = "ImVec4(1,1,1,1)") ImVec4 color, @OptArg float thickness); - public static native float getGroupMaxX(); /* - return ed::GetGroupMax().x; - */ + @BindingMethod + public static native void Flow(long linkId, @OptArg @ArgValue(staticCast = "ax::NodeEditor::FlowDirection") int direction); - public static native float getGroupMaxY(); /* - return ed::GetGroupMax().y; - */ + @BindingMethod + public static native boolean BeginCreate(@OptArg(callValue = "ImVec4(1,1,1,1)") ImVec4 color, @OptArg float thickness); - /** - * Binding notice: both getHintForegroundDrawList(), getHintBackgroundDrawList() and getNodeBackgroundDrawList(long) - * return singleton objects which shouldn't be used outside of the scope of current hint/node - */ + @BindingMethod + public static native boolean QueryNewLink(@ArgValue(reinterpretCast = "ax::NodeEditor::PinId*") ImLong startId, @ArgValue(reinterpretCast = "ax::NodeEditor::PinId*") ImLong endId); - public static ImDrawList getHintForegroundDrawList() { - HINT_FOREGROUND_DRAW_LIST.ptr = nGetHintForegroundDrawList(); - return HINT_FOREGROUND_DRAW_LIST; - } + @BindingMethod + public static native boolean QueryNewLink(@ArgValue(reinterpretCast = "ax::NodeEditor::PinId*") ImLong startId, @ArgValue(reinterpretCast = "ax::NodeEditor::PinId*") ImLong endId, ImVec4 color, @OptArg float thickness); - public static ImDrawList getHintBackgroundDrawList() { - HINT_BACKGROUND_DRAW_LIST.ptr = nGetHintBackgroundDrawList(); - return HINT_BACKGROUND_DRAW_LIST; - } + @BindingMethod + public static native boolean QueryNewNode(@ArgValue(reinterpretCast = "ax::NodeEditor::PinId*") ImLong pinId); - public static ImDrawList getNodeBackgroundDrawList(final long nodeId) { - NODE_BACKGROUND_DRAW_LIST.ptr = nGetNodeBackgroundDrawList(nodeId); - return NODE_BACKGROUND_DRAW_LIST; - } + @BindingMethod + public static native boolean QueryNewNode(@ArgValue(reinterpretCast = "ax::NodeEditor::PinId*") ImLong pinId, ImVec4 color, @OptArg float thickness); - private static native long nGetHintForegroundDrawList(); /* - return (intptr_t)(uintptr_t)ed::GetHintForegroundDrawList(); - */ + @BindingMethod + public static native boolean AcceptNewItem(); - private static native long nGetHintBackgroundDrawList(); /* - return (intptr_t)(uintptr_t)ed::GetHintBackgroundDrawList(); - */ + @BindingMethod + public static native boolean AcceptNewItem(ImVec4 color, @OptArg float thickness); - private static native long nGetNodeBackgroundDrawList(long nodeId); /* - return (intptr_t)(uintptr_t)ed::GetNodeBackgroundDrawList(nodeId); - */ + @BindingMethod + public static native void RejectNewItem(); - public static native long getDoubleClickedNode(); /* - return (intptr_t)(uintptr_t)ed::GetDoubleClickedNode(); - */ + @BindingMethod + public static native void RejectNewItem(ImVec4 color, @OptArg float thickness); - public static native long getDoubleClickedPin(); /* - return (intptr_t)(uintptr_t)ed::GetDoubleClickedPin(); - */ + @BindingMethod + public static native void EndCreate(); - public static native long getDoubleClickedLink(); /* - return (intptr_t)(uintptr_t)ed::GetDoubleClickedLink(); - */ + @BindingMethod + public static native boolean BeginDelete(); - public static native boolean isBackgroundClicked(); /* - return ed::IsBackgroundClicked(); - */ + @BindingMethod + public static native boolean QueryDeletedLink(@ArgValue(reinterpretCast = "ax::NodeEditor::LinkId*") ImLong linkId, @OptArg @ArgValue(reinterpretCast = "ax::NodeEditor::PinId*") ImLong startId, @OptArg @ArgValue(reinterpretCast = "ax::NodeEditor::PinId*") ImLong endId); - public static native boolean isBackgroundDoubleClicked(); /* - return ed::IsBackgroundDoubleClicked(); - */ + @BindingMethod + public static native boolean QueryDeletedNode(@ArgValue(reinterpretCast = "ax::NodeEditor::NodeId*") ImLong nodeId); - public static native boolean pinHadAnyLinks(long pinId); /* - return ed::PinHadAnyLinks(pinId); - */ + @BindingMethod + public static native boolean AcceptDeletedItem(@OptArg boolean deleteDependencies); - public static native float getCurrentZoom(); /* - return ed::GetCurrentZoom(); - */ + @BindingMethod + public static native void RejectDeletedItem(); - public static native void pinRect(float x, float y, float w, float h); /* - ed::PinRect(ImVec2(x, y), ImVec2(w, h)); - */ + @BindingMethod + public static native void EndDelete(); - public static native void pinPivotRect(float x, float y, float w, float h); /* - ed::PinPivotRect(ImVec2(x, y), ImVec2(w, h)); - */ + @BindingMethod + public static native void SetNodePosition(long nodeId, ImVec2 editorPosition); - public static native void pinPivotSize(float w, float h); /* - ed::PinPivotSize(ImVec2(w, h)); - */ + @BindingMethod + public static native void SetGroupSize(long nodeId, ImVec2 size); - public static native void pinPivotScale(float w, float h); /* - ed::PinPivotScale(ImVec2(w, h)); - */ + @BindingMethod + public static native ImVec2 GetNodePosition(long nodeId); - public static native void pinPivotAlignment(float x, float y); /* - ed::PinPivotAlignment(ImVec2(x, y)); - */ + @BindingMethod + public static native ImVec2 GetNodeSize(long nodeId); - public static boolean showNodeContextMenu(final ImLong nodeId) { - return nShowNodeContextMenu(nodeId.getData()); - } + @BindingMethod + public static native void CenterNodeOnScreen(long nodeId); - private static native boolean nShowNodeContextMenu(long[] nodeId); /* - return ed::ShowNodeContextMenu((ed::NodeId*)&nodeId[0]); - */ + @BindingMethod + public static native void SetNodeZPosition(long nodeId, float z); - public static boolean showPinContextMenu(final ImLong pinId) { - return nShowPinContextMenu(pinId.getData()); - } + @BindingMethod + public static native float GetNodeZPosition(long nodeId); - private static native boolean nShowPinContextMenu(long[] pinId); /* - return ed::ShowPinContextMenu((ed::PinId*)&pinId[0]); - */ + @BindingMethod + public static native void RestoreNodeState(long nodeId); - public static boolean showLinkContextMenu(final ImLong linkId) { - return nShowLinkContextMenu(linkId.getData()); - } + @BindingMethod + public static native void Suspend(); - private static native boolean nShowLinkContextMenu(long[] linkId); /* - return ed::ShowLinkContextMenu((ed::LinkId*)&linkId[0]); - */ + @BindingMethod + public static native void Resume(); - /** - * Binding notice: getNodeWithContextMenu(), getPinWithContextMenu() and getLinkWithContextMenu() - * return id of the object for which context menu should be shown. If there is no such object -1 will be returned. - *

- * These methods implemented as convenient alternative to showNodeContextMenu(ImLong), showPinContextMenu(ImLong) and - * showLinkContextMenu(ImLong) - */ + @BindingMethod + public static native boolean IsSuspended(); + + @BindingMethod + public static native boolean IsActive(); + + @BindingMethod + public static native boolean HasSelectionChanged(); + + @BindingMethod + public static native int GetSelectedObjectCount(); + + @BindingMethod + public static native int GetSelectedNodes(@ArgValue(reinterpretCast = "ax::NodeEditor::NodeId*") long[] nodes, int size); + + @BindingMethod + public static native int GetSelectedLinks(@ArgValue(reinterpretCast = "ax::NodeEditor::LinkId*") long[] links, int size); + + @BindingMethod + public static native boolean IsNodeSelected(long nodeId); + + @BindingMethod + public static native boolean IsLinkSelected(long linkId); + + @BindingMethod + public static native void ClearSelection(); + + @BindingMethod + public static native void SelectNode(long nodeId, @OptArg boolean append); + + @BindingMethod + public static native void SelectLink(long linkId, @OptArg boolean append); + + @BindingMethod + public static native void DeselectNode(long nodeId); + + @BindingMethod + public static native void DeselectLink(long linkId); + + @BindingMethod + public static native boolean DeleteNode(long nodeId); + + @BindingMethod + public static native boolean DeleteLink(long linkId); + + @BindingMethod(callName = "HasAnyLinks") + public static native boolean HasAnyLinksNode(@ArgValue(staticCast = "ax::NodeEditor::NodeId") long nodeId); + + @BindingMethod(callName = "HasAnyLinks") + public static native boolean HasAnyLinksPin(@ArgValue(staticCast = "ax::NodeEditor::PinId") long pinId); + + @BindingMethod(callName = "BreakLinks") + public static native int BreakLinksNode(@ArgValue(staticCast = "ax::NodeEditor::NodeId") long nodeId); + + @BindingMethod(callName = "BreakLinks") + public static native int BreakLinksPin(@ArgValue(staticCast = "ax::NodeEditor::PinId") long pinId); + + @BindingMethod + public static native void NavigateToContent(@OptArg float duration); + + @BindingMethod + public static native void NavigateToSelection(@OptArg(callValue = "false") boolean zoomIn, @OptArg float duration); + + @BindingMethod + public static native boolean ShowNodeContextMenu(@ArgValue(reinterpretCast = "ax::NodeEditor::NodeId*") ImLong nodeId); + + @BindingMethod + public static native boolean ShowPinContextMenu(@ArgValue(reinterpretCast = "ax::NodeEditor::PinId*") ImLong pinId); + + @BindingMethod + public static native boolean ShowLinkContextMenu(@ArgValue(reinterpretCast = "ax::NodeEditor::LinkId*") ImLong linkId); public static native long getNodeWithContextMenu(); /* - ed::NodeId id; - return ed::ShowNodeContextMenu(&id) ? (intptr_t)(uintptr_t)id : -1; + ax::NodeEditor::NodeId id; + return ax::NodeEditor::ShowNodeContextMenu(&id) ? (intptr_t)(uintptr_t)id : -1; */ public static native long getPinWithContextMenu(); /* - ed::PinId id; - return ed::ShowPinContextMenu(&id) ? (intptr_t)(uintptr_t)id : -1; + ax::NodeEditor::PinId id; + return ax::NodeEditor::ShowPinContextMenu(&id) ? (intptr_t)(uintptr_t)id : -1; */ public static native long getLinkWithContextMenu(); /* - ed::LinkId id; - return ed::ShowLinkContextMenu(&id) ? (intptr_t)(uintptr_t)id : -1; + ax::NodeEditor::LinkId id; + return ax::NodeEditor::ShowLinkContextMenu(&id) ? (intptr_t)(uintptr_t)id : -1; */ - public static native boolean showBackgroundContextMenu(); /* - return ed::ShowBackgroundContextMenu(); - */ + @BindingMethod + public static native boolean ShowBackgroundContextMenu(); - public static native void restoreNodeState(long node); /* - ed::RestoreNodeState(node); - */ + @BindingMethod + public static native void EnableShortcuts(boolean enable); - public static native void suspend(); /* - ed::Suspend(); - */ + @BindingMethod + public static native boolean AreShortcutsEnabled(); - public static native void resume(); /* - ed::Resume(); - */ + @BindingMethod + public static native boolean BeginShortcut(); - public static native boolean isSuspended(); /* - return ed::IsSuspended(); - */ + @BindingMethod + public static native boolean AcceptCut(); - public static native boolean isActive(); /* - return ed::IsActive(); - */ + @BindingMethod + public static native boolean AcceptCopy(); - public static native void setNodePosition(long node, float x, float y); /* - ed::SetNodePosition(node, ImVec2(x, y)); - */ + @BindingMethod + public static native boolean AcceptPaste(); - public static void link(final long id, final long startPinId, final long endPinId) { - link(id, startPinId, endPinId, 1, 1, 1, 1, 1); - } + @BindingMethod + public static native boolean AcceptDuplicate(); - public static native void link(long id, long startPinId, long endPinId, float r, float g, float b, float a, - float thickness); /* - ed::Link(id, startPinId, endPinId, ImVec4(r, g, b, a), thickness); - */ + @BindingMethod + public static native boolean AcceptCreateNode(); - public static native void flow(long linkId); /* - ed::Flow(linkId); - */ + @BindingMethod + public static native int GetActionContextSize(); - public static boolean beginCreate() { - return beginCreate(1, 1, 1, 1, 1); - } + @BindingMethod + public static native int GetActionContextNodes(@ArgValue(reinterpretCast = "ax::NodeEditor::NodeId*") long[] nodes, int size); - public static native boolean beginCreate(float r, float g, float b, float a, float thickness); /* - return ed::BeginCreate(ImVec4(r, g, b, a), thickness); - */ + @BindingMethod + public static native int GetActionContextLinks(@ArgValue(reinterpretCast = "ax::NodeEditor::LinkId*") long[] links, int size); - public static boolean queryNewLink(final ImLong startId, final ImLong endId) { - return nQueryNewLink(startId.getData(), endId.getData(), 1, 1, 1, 1, 1); - } + @BindingMethod + public static native void EndShortcut(); - public static boolean queryNewLink(final ImLong startId, final ImLong endId, final float r, final float g, final float b, final float a, final float thickness) { - return nQueryNewLink(startId.getData(), endId.getData(), r, g, b, a, thickness); - } + @BindingMethod + public static native float GetCurrentZoom(); - private static native boolean nQueryNewLink(long[] startId, long[] endId, float r, float g, float b, float a, float thickness); /* - return ed::QueryNewLink((ed::PinId*)&startId[0], (ed::PinId*)&endId[0], ImVec4(r, g, b, a), thickness); - */ + @BindingMethod + @ReturnValue(callPrefix = "(intptr_t)(uintptr_t)") + public static native long GetHoveredNode(); - public static boolean acceptNewItem() { - return acceptNewItem(1, 1, 1, 1, 1); - } + @BindingMethod + @ReturnValue(callPrefix = "(intptr_t)(uintptr_t)") + public static native long GetHoveredPin(); - public static native boolean acceptNewItem(float r, float g, float b, float a, float thickness); /* - return ed::AcceptNewItem(ImVec4(r, g, b, a), thickness); - */ + @BindingMethod + @ReturnValue(callPrefix = "(intptr_t)(uintptr_t)") + public static native long GetHoveredLink(); - public static void rejectNewItem() { - rejectNewItem(1, 1, 1, 1, 1); - } + @BindingMethod + @ReturnValue(callPrefix = "(intptr_t)(uintptr_t)") + public static native long GetDoubleClickedNode(); - public static native void rejectNewItem(float r, float g, float b, float a, float thickness); /* - ed::RejectNewItem(ImVec4(r, g, b, a), thickness); - */ + @BindingMethod + @ReturnValue(callPrefix = "(intptr_t)(uintptr_t)") + public static native long GetDoubleClickedPin(); - public static native void endCreate(); /* - ed::EndCreate(); - */ + @BindingMethod + @ReturnValue(callPrefix = "(intptr_t)(uintptr_t)") + public static native long GetDoubleClickedLink(); - public static native boolean beginDelete(); /* - return ed::BeginDelete(); - */ + @BindingMethod + public static native boolean IsBackgroundClicked(); - public static boolean queryDeletedLink(final ImLong linkId, final ImLong startId, final ImLong endId) { - return nQueryDeletedLink(linkId.getData(), startId.getData(), endId.getData()); - } + @BindingMethod + public static native boolean IsBackgroundDoubleClicked(); - private static native boolean nQueryDeletedLink(long[] linkId, long[] startId, long[] endId); /* - return ed::QueryDeletedLink((ed::LinkId*)&linkId[0], (ed::PinId*)&startId[0], (ed::PinId*)&endId[0]); - */ + @BindingMethod + public static native boolean GetLinkPins(@ArgValue(staticCast = "ax::NodeEditor::LinkId") long linkId, @ArgValue(reinterpretCast = "ax::NodeEditor::PinId*") ImLong startPinId, @ArgValue(reinterpretCast = "ax::NodeEditor::PinId*") ImLong endPinId); - public static boolean queryDeletedNode(final ImLong nodeId) { - return nQueryDeletedNode(nodeId.getData()); - } + @BindingMethod + public static native boolean PinHadAnyLinks(@ArgValue(staticCast = "ax::NodeEditor::PinId") long pinId); - private static native boolean nQueryDeletedNode(long[] nodeId); /* - return ed::QueryDeletedNode((ed::NodeId*)&nodeId[0]); - */ + @BindingMethod + public static native ImVec2 GetScreenSize(); - public static native boolean acceptDeletedItem(); /* - return ed::AcceptDeletedItem(); - */ + @BindingMethod + public static native ImVec2 ScreenToCanvas(ImVec2 pos); - public static native void rejectDeletedItem(); /* - ed::RejectDeletedItem(); - */ + @BindingMethod + public static native ImVec2 CanvasToScreen(ImVec2 pos); - public static native void endDelete(); /* - ed::EndDelete(); - */ + @BindingMethod + public static native int GetNodeCount(); - public static native void navigateToContent(float duration); /* - ed::NavigateToContent(duration); - */ + @BindingMethod + public static native int GetOrderedNodeIds(@ArgValue(reinterpretCast = "ax::NodeEditor::NodeId*") long[] nodes, int size); - public static native void navigateToSelection(boolean zoomIn, float duration); /* - ed::NavigateToSelection(zoomIn, duration); - */ - - public static native void getNodePosition(long node, ImVec2 dst); /* - ImVec2 result = ed::GetNodePosition(node); - Jni::ImVec2Cpy(env, &result, dst); - */ - - public static native float getNodePositionX(long node); /* - return ed::GetNodePosition(node).x; - */ - - public static native float getNodePositionY(long node); /* - return ed::GetNodePosition(node).y; - */ - - public static native float getNodeSizeX(long node); /* - return ed::GetNodeSize(node).x; - */ - - public static native float getNodeSizeY(long node); /* - return ed::GetNodeSize(node).y; - */ - - public static native void centerNodeOnScreen(long node); /* - ed::CenterNodeOnScreen(node); - */ - - public static native boolean hasSelectionChanged(); /* - return ed::HasSelectionChanged(); - */ - - public static native int getSelectedObjectCount(); /* - return ed::GetSelectedObjectCount(); - */ - - public static native int getSelectedNodes(long[] nodes, int size); /* - return ed::GetSelectedNodes((ed::NodeId*)&nodes[0], size); - */ - - public static native int getSelectedLinks(long[] links, int size); /* - return ed::GetSelectedLinks((ed::LinkId*)&links[0], size); - */ - - public static native void clearSelection(); /* - return ed::ClearSelection(); - */ - - public static native void selectNode(long id, boolean append); /* - ed::SelectNode(id, append); - */ - - public static native void selectLink(long id, boolean append); /* - ed::SelectLink(id, append); - */ - - public static native void deselectNode(long id); /* - ed::DeselectNode(id); - */ - - public static native void deselectLink(long id); /* - ed::DeselectLink(id); - */ - - public static native boolean deleteNode(long nodeId); /* - return ed::DeleteNode(nodeId); - */ - - public static native boolean deleteLink(long linkId); /* - return ed::DeleteLink(linkId); - */ - - public static native void enableShortcuts(boolean enable); /* - ed::EnableShortcuts(enable); - */ - - public static native boolean areShortcutsEnabled(); /* - return ed::AreShortcutsEnabled(); - */ - - public static native boolean beginShortcut(); /* - return ed::BeginShortcut(); - */ - - public static native boolean acceptCut(); /* - return ed::AcceptCut(); - */ - - public static native boolean acceptCopy(); /* - return ed::AcceptCopy(); - */ - - public static native boolean acceptPaste(); /* - return ed::AcceptPaste(); - */ - - public static native boolean acceptDuplicate(); /* - return ed::AcceptDuplicate(); - */ - - public static native boolean acceptCreateNode(); /* - return ed::AcceptCreateNode(); - */ - - public static native int getActionContextSize(); /* - return ed::GetActionContextSize(); - */ - - public static native int getActionContextNodes(long[] nodes, int size); /* - return ed::GetActionContextNodes((ed::NodeId*)&nodes[0], size); - */ - - public static native int getActionContextLinks(long[] links, int size); /* - return ed::GetActionContextLinks((ed::LinkId*)&links[0], size); - */ - - public static native void endShortcut(); /* - ed::EndShortcut(); - */ + /*JNI + #undef NodeEditorConfig + #undef NodeEditorStyle + #undef NodeEditorContext + */ } diff --git a/imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditorConfig.java b/imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditorConfig.java index c6cdd77..090e477 100644 --- a/imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditorConfig.java +++ b/imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditorConfig.java @@ -1,37 +1,41 @@ package imgui.extension.nodeditor; import imgui.binding.ImGuiStructDestroyable; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingSource; +@BindingSource public final class NodeEditorConfig extends ImGuiStructDestroyable { - public NodeEditorConfig() { - } - - public NodeEditorConfig(final long ptr) { - super(ptr); - } - - /*JNI - #include "_nodeeditor.h" - - namespace ed = ax::NodeEditor; - - #define IM_NODE_EDITOR_CONFIG ((ed::Config*)STRUCT_PTR) - */ - @Override protected long create() { return nCreate(); } + /*JNI + #include "_nodeeditor.h" + #define THIS ((ax::NodeEditor::Config*)STRUCT_PTR) + */ + private native long nCreate(); /* - return (intptr_t)(new ed::Config()); + return (intptr_t)(new ax::NodeEditor::Config()); */ - public native String getSettingsFile(); /* - return env->NewStringUTF(IM_NODE_EDITOR_CONFIG->SettingsFile); - */ + @BindingField + public String SettingsFile; - public native void setSettingsFile(String settingsFile); /*MANUAL - IM_NODE_EDITOR_CONFIG->SettingsFile = obj_settingsFile == NULL ? NULL : (char*)env->GetStringUTFChars(obj_settingsFile, JNI_FALSE); - */ + @BindingField + public int DragButtonIndex; + + @BindingField + public int SelectButtonIndex; + + @BindingField + public int NavigateButtonIndex; + + @BindingField + public int ContextMenuButtonIndex; + + /*JNI + #undef THIS + */ } diff --git a/imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditorContext.java b/imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditorContext.java index c383944..6777acc 100644 --- a/imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditorContext.java +++ b/imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditorContext.java @@ -1,46 +1,9 @@ package imgui.extension.nodeditor; -import imgui.binding.ImGuiStructDestroyable; - -public final class NodeEditorContext extends ImGuiStructDestroyable { - public NodeEditorContext() { - } - - public NodeEditorContext(final NodeEditorConfig config) { - this(nCreate(config.ptr)); - } +import imgui.binding.ImGuiStruct; +public final class NodeEditorContext extends ImGuiStruct { public NodeEditorContext(final long ptr) { super(ptr); } - - /*JNI - #include "_nodeeditor.h" - - namespace ed = ax::NodeEditor; - - #define IM_NODE_EDITOR_CONTEXT ((ed::EditorContext*)STRUCT_PTR) - */ - - @Override - protected long create() { - return nCreate(); - } - - @Override - public void destroy() { - nDestroyEditorContext(); - } - - private native long nCreate(); /* - return (intptr_t)ed::CreateEditor(); - */ - - private static native long nCreate(long cfgPtr); /* - return (intptr_t)ed::CreateEditor((ed::Config*)cfgPtr); - */ - - private native void nDestroyEditorContext(); /* - ed::DestroyEditor(IM_NODE_EDITOR_CONTEXT); - */ } diff --git a/imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditorStyle.java b/imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditorStyle.java index 443a10e..3d409e8 100644 --- a/imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditorStyle.java +++ b/imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditorStyle.java @@ -3,8 +3,11 @@ package imgui.extension.nodeditor; import imgui.ImVec2; import imgui.ImVec4; import imgui.binding.ImGuiStruct; -import imgui.extension.nodeditor.flag.NodeEditorStyleColor; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.TypeArray; +@BindingSource public final class NodeEditorStyle extends ImGuiStruct { public NodeEditorStyle(final long ptr) { super(ptr); @@ -12,340 +15,83 @@ public final class NodeEditorStyle extends ImGuiStruct { /*JNI #include "_nodeeditor.h" - - namespace ed = ax::NodeEditor; - - #define IM_NODE_EDITOR_STYLE ((ed::Style*)STRUCT_PTR) + #define THIS ((ax::NodeEditor::Style*)STRUCT_PTR) */ - public ImVec4 getNodePadding() { - final ImVec4 value = new ImVec4(); - getNodePadding(value); - return value; - } + @BindingField + public ImVec4 NodePadding; + @BindingField + public float NodeRounding; - public native void getNodePadding(ImVec4 dstImVec4); /* - Jni::ImVec4Cpy(env, IM_NODE_EDITOR_STYLE->NodePadding, dstImVec4); - */ + @BindingField + public float NodeBorderWidth; - public native void setNodePadding(float x, float y, float z, float w); /* - IM_NODE_EDITOR_STYLE->NodePadding.x = x; - IM_NODE_EDITOR_STYLE->NodePadding.y = y; - IM_NODE_EDITOR_STYLE->NodePadding.z = z; - IM_NODE_EDITOR_STYLE->NodePadding.w = w; - */ + @BindingField + public float HoveredNodeBorderWidth; - public native float getNodeRounding(); /* - return IM_NODE_EDITOR_STYLE->NodeRounding; - */ + @BindingField + public float SelectedNodeBorderWidth; - public native void setNodeRounding(float nodeRounding); /* - IM_NODE_EDITOR_STYLE->NodeRounding = nodeRounding; - */ + @BindingField + public float PinRounding; - public native float getNodeBorderWidth(); /* - return IM_NODE_EDITOR_STYLE->NodeBorderWidth; - */ + @BindingField + public float PinBorderWidth; - public native void setNodeBorderWidth(float nodeBorderWidth); /* - IM_NODE_EDITOR_STYLE->NodeBorderWidth = nodeBorderWidth; - */ + @BindingField + public float LinkStrength; - public native float getHoveredNodeBorderWidth(); /* - return IM_NODE_EDITOR_STYLE->HoveredNodeBorderWidth; - */ + @BindingField + public ImVec2 SourceDirection; - public native void setHoveredNodeBorderWidth(float hoveredNodeBorderWidth); /* - IM_NODE_EDITOR_STYLE->HoveredNodeBorderWidth = hoveredNodeBorderWidth; - */ + @BindingField + public ImVec2 TargetDirection; - public native float getSelectedNodeBorderWidth(); /* - return IM_NODE_EDITOR_STYLE->SelectedNodeBorderWidth; - */ + @BindingField + public float ScrollDuration; - public native void setSelectedNodeBorderWidth(float selectedNodeBorderWidth); /* - IM_NODE_EDITOR_STYLE->SelectedNodeBorderWidth = selectedNodeBorderWidth; - */ + @BindingField + public float FlowMarkerDistance; - public native float getPinRounding(); /* - return IM_NODE_EDITOR_STYLE->PinRounding; - */ + @BindingField + public float FlowSpeed; - public native void setPinRounding(float pinRounding); /* - IM_NODE_EDITOR_STYLE->PinRounding = pinRounding; - */ + @BindingField + public float FlowDuration; - public native float getPinBorderWidth(); /* - return IM_NODE_EDITOR_STYLE->PinBorderWidth; - */ + @BindingField + public ImVec2 PivotAlignment; - public native void setPinBorderWidth(float pinBorderWidth); /* - IM_NODE_EDITOR_STYLE->PinBorderWidth = pinBorderWidth; - */ + @BindingField + public ImVec2 PivotSize; - public native float getLinkStrength(); /* - return IM_NODE_EDITOR_STYLE->LinkStrength; - */ + @BindingField + public ImVec2 PivotScale; - public native void setLinkStrength(float linkStrength); /* - IM_NODE_EDITOR_STYLE->LinkStrength = linkStrength; - */ + @BindingField + public float PinCorners; - public ImVec2 getSourceDirection() { - final ImVec2 value = new ImVec2(); - getSourceDirection(value); - return value; - } + @BindingField + public float PinRadius; - public native void getSourceDirection(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IM_NODE_EDITOR_STYLE->SourceDirection, dstImVec2); - */ + @BindingField + public float PinArrowSize; - public native float getSourceDirectionX(); /* - return IM_NODE_EDITOR_STYLE->SourceDirection.x; - */ + @BindingField + public float PinArrowWidth; - public native float getSourceDirectionY(); /* - return IM_NODE_EDITOR_STYLE->SourceDirection.y; - */ + @BindingField + public float GroupRounding; - public native void setSourceDirection(float x, float y); /* - IM_NODE_EDITOR_STYLE->SourceDirection.x = x; - IM_NODE_EDITOR_STYLE->SourceDirection.y = y; - */ + @BindingField + public float GroupBorderWidth; - public ImVec2 getTargetDirection() { - final ImVec2 value = new ImVec2(); - getTargetDirection(value); - return value; - } + @BindingField + @TypeArray(type = "ImVec4", size = "ax::NodeEditor::StyleColor_Count") + public ImVec4[] Colors; - public native void getTargetDirection(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IM_NODE_EDITOR_STYLE->TargetDirection, dstImVec2); - */ - - - public native float getTargetDirectionX(); /* - return IM_NODE_EDITOR_STYLE->TargetDirection.x; - */ - - public native float getTargetDirectionY(); /* - return IM_NODE_EDITOR_STYLE->TargetDirection.y; - */ - - public native void setTargetDirection(float x, float y); /* - IM_NODE_EDITOR_STYLE->TargetDirection.x = x; - IM_NODE_EDITOR_STYLE->TargetDirection.y = y; - */ - - public native float getScrollDuration(); /* - return IM_NODE_EDITOR_STYLE->ScrollDuration; - */ - - public native void setScrollDuration(float scrollDuration); /* - IM_NODE_EDITOR_STYLE->ScrollDuration = scrollDuration; - */ - - public native float getFlowMarkerDistance(); /* - return IM_NODE_EDITOR_STYLE->FlowMarkerDistance; - */ - - public native void setFlowMarkerDistance(float flowMarkerDistance); /* - IM_NODE_EDITOR_STYLE->FlowMarkerDistance = flowMarkerDistance; - */ - - public native float getFlowSpeed(); /* - return IM_NODE_EDITOR_STYLE->FlowSpeed; - */ - - public native void setFlowSpeed(float flowSpeed); /* - IM_NODE_EDITOR_STYLE->FlowSpeed = flowSpeed; - */ - - public native float getFlowDuration(); /* - return IM_NODE_EDITOR_STYLE->FlowDuration; - */ - - public native void setFlowDuration(float flowDuration); /* - IM_NODE_EDITOR_STYLE->FlowDuration = flowDuration; - */ - - public ImVec2 getPivotAlignment() { - final ImVec2 value = new ImVec2(); - getPivotAlignment(value); - return value; - } - - public native void getPivotAlignment(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IM_NODE_EDITOR_STYLE->PivotAlignment, dstImVec2); - */ - - public native float getPivotAlignmentX(); /* - return IM_NODE_EDITOR_STYLE->PivotAlignment.x; - */ - - public native float getPivotAlignmentY(); /* - return IM_NODE_EDITOR_STYLE->PivotAlignment.y; - */ - - public native void setPivotAlignment(float x, float y); /* - IM_NODE_EDITOR_STYLE->PivotAlignment.x = x; - IM_NODE_EDITOR_STYLE->PivotAlignment.y = y; - */ - - public ImVec2 getPivotSize() { - final ImVec2 value = new ImVec2(); - getPivotSize(value); - return value; - } - - public native void getPivotSize(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IM_NODE_EDITOR_STYLE->PivotSize, dstImVec2); - */ - - public native float getPivotSizeX(); /* - return IM_NODE_EDITOR_STYLE->PivotSize.x; - */ - - public native float getPivotSizeY(); /* - return IM_NODE_EDITOR_STYLE->PivotSize.y; - */ - - public native void setPivotSize(float x, float y); /* - IM_NODE_EDITOR_STYLE->PivotSize.x = x; - IM_NODE_EDITOR_STYLE->PivotSize.y = y; - */ - - public ImVec2 getPivotScale() { - final ImVec2 value = new ImVec2(); - getPivotScale(value); - return value; - } - - public native void getPivotScale(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IM_NODE_EDITOR_STYLE->PivotScale, dstImVec2); - */ - - public native float getPivotScaleX(); /* - return IM_NODE_EDITOR_STYLE->PivotScale.x; - */ - - public native float getPivotScaleY(); /* - return IM_NODE_EDITOR_STYLE->PivotScale.y; - */ - - public native void setPivotScale(float x, float y); /* - IM_NODE_EDITOR_STYLE->PivotScale.x = x; - IM_NODE_EDITOR_STYLE->PivotScale.y = y; - */ - - public native float getPinCorners(); /* - return IM_NODE_EDITOR_STYLE->PinCorners; - */ - - public native void setPinCorners(float pinCorners); /* - IM_NODE_EDITOR_STYLE->PinCorners = pinCorners; - */ - - public native float getPinRadius(); /* - return IM_NODE_EDITOR_STYLE->PinRadius; - */ - - public native void setPinRadius(float pinRadius); /* - IM_NODE_EDITOR_STYLE->PinRadius = pinRadius; - */ - - public native float getPinArrowSize(); /* - return IM_NODE_EDITOR_STYLE->PinArrowSize; - */ - - public native void setPinArrowSize(float pinArrowSize); /* - IM_NODE_EDITOR_STYLE->PinArrowSize = pinArrowSize; - */ - - public native float getPinArrowWidth(); /* - return IM_NODE_EDITOR_STYLE->PinArrowWidth; - */ - - public native void setPinArrowWidth(float pinArrowWidth); /* - IM_NODE_EDITOR_STYLE->PinArrowWidth = pinArrowWidth; - */ - - public native float getGroupRounding(); /* - return IM_NODE_EDITOR_STYLE->GroupRounding; - */ - - public native void setGroupRounding(float groupRounding); /* - IM_NODE_EDITOR_STYLE->GroupRounding = groupRounding; - */ - - public native float getGroupBorderWidth(); /* - return IM_NODE_EDITOR_STYLE->GroupBorderWidth; - */ - - public native void setGroupBorderWidth(float groupBorderWidth); /* - IM_NODE_EDITOR_STYLE->GroupBorderWidth = groupBorderWidth; - */ - - public float[][] getColors() { - final float[][] colors = new float[NodeEditorStyleColor.COUNT][4]; - getColors(colors); - return colors; - } - - public native void getColors(float[][] buff); /* - for (int i = 0; i < ed::StyleColor_Count; i++) { - jfloatArray jColors = (jfloatArray)env->GetObjectArrayElement(buff, i); - jfloat* jBuffColor = env->GetFloatArrayElements(jColors, 0); - - jBuffColor[0] = IM_NODE_EDITOR_STYLE->Colors[i].x; - jBuffColor[1] = IM_NODE_EDITOR_STYLE->Colors[i].y; - jBuffColor[2] = IM_NODE_EDITOR_STYLE->Colors[i].z; - jBuffColor[3] = IM_NODE_EDITOR_STYLE->Colors[i].w; - - env->ReleaseFloatArrayElements(jColors, jBuffColor, 0); - env->DeleteLocalRef(jColors); - } - */ - - /** - * BINDING NOTICE: colors is a 2d array with sizes: [StyleColor_Count][4] + /*JNI + #undef THIS */ - public native void setColors(float[][] colors); /* - for (int i = 0; i < ed::StyleColor_Count; i++) { - jfloatArray jColors = (jfloatArray)env->GetObjectArrayElement(colors, i); - jfloat* jColor = env->GetFloatArrayElements(jColors, 0); - - IM_NODE_EDITOR_STYLE->Colors[i].x = jColor[0]; - IM_NODE_EDITOR_STYLE->Colors[i].y = jColor[1]; - IM_NODE_EDITOR_STYLE->Colors[i].z = jColor[2]; - IM_NODE_EDITOR_STYLE->Colors[i].w = jColor[3]; - - env->ReleaseFloatArrayElements(jColors, jColor, 0); - env->DeleteLocalRef(jColors); - } - */ - - public ImVec4 getColor(final int styleColor) { - final ImVec4 value = new ImVec4(); - getColor(styleColor, value); - return value; - } - - public native void getColor(int styleColor, ImVec4 dstImVec4); /* - Jni::ImVec4Cpy(env, IM_NODE_EDITOR_STYLE->Colors[styleColor], dstImVec4); - */ - - public native void setColor(int styleColor, float r, float g, float b, float a); /* - IM_NODE_EDITOR_STYLE->Colors[styleColor] = ImColor((float)r, (float)g, (float)b, (float)a); - */ - - public native void setColor(int styleColor, int r, int g, int b, int a); /* - IM_NODE_EDITOR_STYLE->Colors[styleColor] = ImColor((int)r, (int)g, (int)b, (int)a); - */ - - public native void setColor(int styleColor, int col); /* - IM_NODE_EDITOR_STYLE->Colors[styleColor] = ImColor(col); - */ } diff --git a/imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorFlowDirection.java b/imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorFlowDirection.java new file mode 100644 index 0000000..6116dd4 --- /dev/null +++ b/imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorFlowDirection.java @@ -0,0 +1,13 @@ +package imgui.extension.nodeditor.flag; + +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource +public final class NodeEditorFlowDirection { + private NodeEditorFlowDirection() { + } + + @BindingAstEnum(file = "ast-imgui_node_editor.json", qualType = "ax::NodeEditor::FlowDirection") + public Void __; +} diff --git a/imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorPinKind.java b/imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorPinKind.java index 2af53cf..c21310d 100644 --- a/imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorPinKind.java +++ b/imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorPinKind.java @@ -1,9 +1,13 @@ package imgui.extension.nodeditor.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class NodeEditorPinKind { private NodeEditorPinKind() { } - public static final int Input = 0; - public static final int Output = 1; + @BindingAstEnum(file = "ast-imgui_node_editor.json", qualType = "ax::NodeEditor::PinKind") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorStyleColor.java b/imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorStyleColor.java index b1c9889..5c6fc73 100644 --- a/imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorStyleColor.java +++ b/imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorStyleColor.java @@ -1,26 +1,13 @@ package imgui.extension.nodeditor.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class NodeEditorStyleColor { private NodeEditorStyleColor() { } - public static final int Bg = 0; - public static final int Grid = 1; - public static final int NodeBg = 2; - public static final int NodeBorder = 3; - public static final int HovNodeBorder = 4; - public static final int SelNodeBorder = 5; - public static final int NodeSelRect = 6; - public static final int NodeSelRectBorder = 7; - public static final int HovLinkBorder = 8; - public static final int SelLinkBorder = 9; - public static final int LinkSelRect = 10; - public static final int LinkSelRectBorder = 11; - public static final int PinRect = 12; - public static final int PinRectBorder = 13; - public static final int Flow = 14; - public static final int FlowMarker = 15; - public static final int GroupBg = 16; - public static final int GroupBorder = 17; - public static final int COUNT = 18; + @BindingAstEnum(file = "ast-imgui_node_editor.json", qualType = "ax::NodeEditor::StyleColor", sanitizeName = "StyleColor_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorStyleVar.java b/imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorStyleVar.java index 4480724..476b8d0 100644 --- a/imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorStyleVar.java +++ b/imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorStyleVar.java @@ -1,30 +1,13 @@ package imgui.extension.nodeditor.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class NodeEditorStyleVar { private NodeEditorStyleVar() { } - public static final int NodePadding = 0; - public static final int NodeRounding = 1; - public static final int NodeBorderWidth = 2; - public static final int HoveredNodeBorderWidth = 3; - public static final int SelectedNodeBorderWidth = 4; - public static final int PinRounding = 5; - public static final int PinBorderWidth = 6; - public static final int LinkStrength = 7; - public static final int SourceDirection = 8; - public static final int TargetDirection = 9; - public static final int ScrollDuration = 10; - public static final int FlowMarkerDistance = 11; - public static final int FlowSpeed = 12; - public static final int FlowDuration = 13; - public static final int PivotAlignment = 14; - public static final int PivotSize = 15; - public static final int PivotScale = 16; - public static final int PinCorners = 17; - public static final int PinRadius = 18; - public static final int PinArrowSize = 19; - public static final int PinArrowWidth = 20; - public static final int GroupRounding = 21; - public static final int GroupBorderWidth = 22; + @BindingAstEnum(file = "ast-imgui_node_editor.json", qualType = "ax::NodeEditor::StyleVar", sanitizeName = "StyleVar_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/texteditor/TextEditor.java b/imgui-binding/src/main/java/imgui/extension/texteditor/TextEditor.java index cf0a876..4829c56 100644 --- a/imgui-binding/src/main/java/imgui/extension/texteditor/TextEditor.java +++ b/imgui-binding/src/main/java/imgui/extension/texteditor/TextEditor.java @@ -1,16 +1,17 @@ package imgui.extension.texteditor; +import imgui.ImVec2; import imgui.binding.ImGuiStructDestroyable; +import imgui.binding.annotation.ArgValue; +import imgui.binding.annotation.BindingMethod; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.OptArg; +import imgui.binding.annotation.ReturnValue; import java.util.Map; +@BindingSource public final class TextEditor extends ImGuiStructDestroyable { - /*JNI - #include "_texteditor.h" - - #define TEXT_EDITOR ((TextEditor*)STRUCT_PTR) - */ - public TextEditor() { } @@ -23,30 +24,31 @@ public final class TextEditor extends ImGuiStructDestroyable { return nCreate(); } + /*JNI + #include "_texteditor.h" + #define THIS ((TextEditor*)STRUCT_PTR) + #define TextEditorLanguageDefinition TextEditor::LanguageDefinition + */ + private native long nCreate(); /* return (intptr_t)(new TextEditor()); */ - public void setLanguageDefinition(final TextEditorLanguageDefinition definition) { - nSetLanguageDefinition(definition.ptr); - } + @BindingMethod + public native void SetLanguageDefinition(@ArgValue(callPrefix = "*") TextEditorLanguageDefinition aLanguageDef); - public native void nSetLanguageDefinition(long ptr); /* - TEXT_EDITOR->SetLanguageDefinition(*((TextEditor::LanguageDefinition*)ptr)); - */ + @BindingMethod + @ReturnValue(callPrefix = "&") + public native TextEditorLanguageDefinition GetLanguageDefinition(); public native int[] getPalette(); /* - const auto& palette = TEXT_EDITOR->GetPalette(); - + const auto& palette = THIS->GetPalette(); jintArray res = env->NewIntArray(palette.size()); - jint arr[palette.size()]; for (int i = 0; i < palette.size(); i++) { arr[i] = palette[i]; } - env->SetIntArrayRegion(res, 0, palette.size(), arr); - return res; */ @@ -56,33 +58,28 @@ public final class TextEditor extends ImGuiStructDestroyable { public native void nSetPalette(int[] palette, int length); /* std::array arr; - for (int i = 0; i < length; i++) { arr[i] = palette[i]; } - - TEXT_EDITOR->SetPalette(arr); + THIS->SetPalette(arr); */ public void setErrorMarkers(final Map errorMarkers) { final int[] keys = errorMarkers.keySet().stream().mapToInt(i -> i).toArray(); final String[] values = errorMarkers.values().toArray(new String[0]); - nSetErrorMarkers(keys, keys.length, values, values.length); } private native void nSetErrorMarkers(int[] keys, int keysLen, String[] values, int valuesLen); /* std::map markers; - for (int i = 0; i < keysLen; i++) { int key = keys[i]; jstring string = (jstring)env->GetObjectArrayElement(values, i); const char* value = env->GetStringUTFChars(string, JNI_FALSE); - markers.emplace(std::pair(key, std::string(value))); + env->ReleaseStringUTFChars(string, value); } - - TEXT_EDITOR->SetErrorMarkers(markers); + THIS->SetErrorMarkers(markers); */ public void setBreakpoints(final int[] breakpoints) { @@ -91,25 +88,21 @@ public final class TextEditor extends ImGuiStructDestroyable { private native void nSetBreakpoints(int[] breakpoints, int length); /* std::unordered_set set; - for (int i = 0; i < length; i++) { set.emplace(breakpoints[i]); } - - TEXT_EDITOR->SetBreakpoints(set); + THIS->SetBreakpoints(set); */ - public native void render(String title); /* - TEXT_EDITOR->Render(title); - */ + @BindingMethod + public native void Render(String title, @OptArg(callValue = "ImVec2()") ImVec2 aSize, @OptArg boolean aBorder); - public native void setText(String text); /* - TEXT_EDITOR->SetText(text); - */ + @BindingMethod + public native void SetText(String text); - public native String getText(); /* - return env->NewStringUTF(TEXT_EDITOR->GetText().c_str()); - */ + @BindingMethod + @ReturnValue(callSuffix = ".c_str()") + public native String GetText(); public void setTextLines(final String[] lines) { nSetTextLines(lines, lines.length); @@ -118,260 +111,203 @@ public final class TextEditor extends ImGuiStructDestroyable { private native void nSetTextLines(String[] lines, int length); /* std::vector vec; vec.reserve(length); - for (int i = 0; i < length; i++) { jstring string = (jstring)env->GetObjectArrayElement(lines, i); const char* raw = env->GetStringUTFChars(string, JNI_FALSE); - vec.emplace_back(std::string(raw)); + env->ReleaseStringUTFChars(string, raw); } - - TEXT_EDITOR->SetTextLines(vec); + THIS->SetTextLines(vec); */ public native String[] getTextLines(); /* - const auto lines = TEXT_EDITOR->GetTextLines(); + const auto lines = THIS->GetTextLines(); - jobjectArray arr = (jobjectArray)env->NewObjectArray(lines.size(), + jobjectArray arr = env->NewObjectArray( + lines.size(), env->FindClass("java/lang/String"), - env->NewStringUTF("")); + env->NewStringUTF("") + ); for (int i = 0; i < lines.size(); i++) { const auto& str = lines[i]; - env->SetObjectArrayElement(arr, i, env->NewStringUTF(str.c_str())); } - return arr; */ - public native String getSelectedText(); /* - return env->NewStringUTF(TEXT_EDITOR->GetSelectedText().c_str()); - */ + @BindingMethod + @ReturnValue(callSuffix = ".c_str()") + public native String GetSelectedText(); - public native String getCurrentLineText(); /* - return env->NewStringUTF(TEXT_EDITOR->GetCurrentLineText().c_str()); - */ + @BindingMethod + @ReturnValue(callSuffix = ".c_str()") + public native String GetCurrentLineText(); - public native int getTotalLines(); /* - return TEXT_EDITOR->GetTotalLines(); - */ + @BindingMethod + public native int GetTotalLines(); - public native boolean isOverwrite(); /* - return TEXT_EDITOR->IsOverwrite(); - */ + @BindingMethod + public native boolean IsOverwrite(); - public native void setReadOnly(boolean value); /* - TEXT_EDITOR->SetReadOnly(value); - */ + @BindingMethod + public native void SetReadOnly(boolean aValue); - public native boolean isReadOnly(); /* - return TEXT_EDITOR->IsReadOnly(); - */ + @BindingMethod + public native boolean IsReadOnly(); - public native boolean isTextChanged(); /* - return TEXT_EDITOR->IsTextChanged(); - */ + @BindingMethod + public native boolean IsTextChanged(); - public native boolean isCursorPositionChanged(); /* - return TEXT_EDITOR->IsCursorPositionChanged(); - */ + @BindingMethod + public native boolean IsCursorPositionChanged(); - public native boolean isColorizerEnabled(); /* - return TEXT_EDITOR->IsColorizerEnabled(); - */ + @BindingMethod + public native boolean IsColorizerEnabled(); - public native void setColorizerEnable(boolean value); /* - TEXT_EDITOR->SetColorizerEnable(value); - */ + @BindingMethod + public native void SetColorizerEnable(boolean aValue); - public native int getCursorPositionLine(); /* - return TEXT_EDITOR->GetCursorPosition().mLine; - */ + @BindingMethod + public native TextEditorCoordinates GetCursorPosition(); - public native int getCursorPositionColumn(); /* - return TEXT_EDITOR->GetCursorPosition().mColumn; - */ + @BindingMethod + public native void SetCursorPosition(TextEditorCoordinates aPosition); - public native void setCursorPosition(int line, int column); /* - TEXT_EDITOR->SetCursorPosition({ line, column }); - */ + @BindingMethod + public native void SetHandleMouseInputs(boolean aValue); - public native void setHandleMouseInputs(boolean value); /* - TEXT_EDITOR->SetHandleMouseInputs(value); - */ + @BindingMethod + public native boolean IsHandleMouseInputsEnabled(); - public native boolean isHandleMouseInputsEnabled(); /* - return TEXT_EDITOR->IsHandleMouseInputsEnabled(); - */ + @BindingMethod + public native void SetHandleKeyboardInputs(boolean aValue); - public native void setHandleKeyboardInputs(boolean value); /* - TEXT_EDITOR->SetHandleKeyboardInputs(value); - */ + @BindingMethod + public native boolean IsHandleKeyboardInputsEnabled(); - public native boolean isHandleKeyboardInputsEnabled(); /* - return TEXT_EDITOR->IsHandleKeyboardInputsEnabled(); - */ + @BindingMethod + public native void SetImGuiChildIgnored(boolean aValue); - public native void setImGuiChildIgnored(boolean value); /* - TEXT_EDITOR->SetImGuiChildIgnored(value); - */ + @BindingMethod + public native boolean IsImGuiChildIgnored(); - public native boolean isImGuiChildIgnored(); /* - return TEXT_EDITOR->IsImGuiChildIgnored(); - */ + @BindingMethod + public native void SetShowWhitespaces(boolean aValue); - public native void setShowWhitespaces(boolean value); /* - TEXT_EDITOR->SetShowWhitespaces(value); - */ + @BindingMethod + public native boolean IsShowingWhitespaces(); - public native boolean isShowingWhitespaces(); /* - return TEXT_EDITOR->IsShowingWhitespaces(); - */ + @BindingMethod + public native void SetTabSize(int aValue); - public native void setTabSize(int value); /* - TEXT_EDITOR->SetTabSize(value); - */ + @BindingMethod + public native int GetTabSize(); - public native int getTabSize(); /* - return TEXT_EDITOR->GetTabSize(); - */ + @BindingMethod + public native void InsertText(String aValue); - public native void insertText(String value); /* - TEXT_EDITOR->InsertText(value); - */ + @BindingMethod + public native void MoveUp(@OptArg int aAmount, @OptArg boolean aSelect); - public native void moveUp(int amount, boolean select); /* - TEXT_EDITOR->MoveUp(amount, select); - */ + @BindingMethod + public native void MoveDown(@OptArg int aAmount, @OptArg boolean aSelect); - public native void moveDown(int amount, boolean select); /* - TEXT_EDITOR->MoveDown(amount, select); - */ + @BindingMethod + public native void MoveLeft(@OptArg int aAmount, @OptArg boolean aSelect, @OptArg boolean aWordMode); - public native void moveLeft(int amount, boolean select, boolean wordMode); /* - TEXT_EDITOR->MoveLeft(amount, select, wordMode); - */ + @BindingMethod + public native void MoveRight(@OptArg int aAmount, @OptArg boolean aSelect, @OptArg boolean aWordMode); - public native void moveRight(int amount, boolean select, boolean wordMode); /* - TEXT_EDITOR->MoveRight(amount, select, wordMode); - */ + @BindingMethod + public native void MoveTop(@OptArg boolean aSelect); - public native void moveTop(boolean select); /* - TEXT_EDITOR->MoveTop(select); - */ + @BindingMethod + public native void MoveBottom(@OptArg boolean aSelect); - public native void moveBottom(boolean select); /* - TEXT_EDITOR->MoveBottom(select); - */ + @BindingMethod + public native void MoveHome(@OptArg boolean aSelect); - public native void moveHome(boolean select); /* - TEXT_EDITOR->MoveHome(select); - */ + @BindingMethod + public native void MoveEnd(@OptArg boolean aSelect); - public native void moveEnd(boolean select); /* - TEXT_EDITOR->MoveEnd(select); - */ + @BindingMethod + public native void SetSelectionStart(TextEditorCoordinates aPosition); - public native void setSelectionStart(int line, int column); /* - TEXT_EDITOR->SetSelectionStart({ line, column }); - */ + @BindingMethod + public native void SetSelectionEnd(TextEditorCoordinates aPosition); - public native void setSelectionEnd(int line, int column); /* - TEXT_EDITOR->SetSelectionEnd({ line, column }); - */ + @BindingMethod + public native void SetSelection(TextEditorCoordinates aStart, TextEditorCoordinates aEnd, @OptArg @ArgValue(staticCast = "TextEditor::SelectionMode") int aMode); - public native void setSelection(int lineStart, int columnStart, int lineEnd, int columnEnd, int selectionMode); /* - TEXT_EDITOR->SetSelection({ lineStart, columnStart }, { lineEnd, columnEnd }, - static_cast(selectionMode)); - */ + @BindingMethod + public native void SelectWordUnderCursor(); - public native void selectWordUnderCursor(); /* - TEXT_EDITOR->SelectWordUnderCursor(); - */ + @BindingMethod + public native void SelectAll(); - public native void selectAll(); /* - TEXT_EDITOR->SelectAll(); - */ + @BindingMethod + public native boolean HasSelection(); - public native boolean hasSelection(); /* - return TEXT_EDITOR->HasSelection(); - */ + @BindingMethod + public native void Copy(); - public native void copy(); /* - TEXT_EDITOR->Copy(); - */ + @BindingMethod + public native void Cut(); - public native void cut(); /* - TEXT_EDITOR->Cut(); - */ + @BindingMethod + public native void Paste(); - public native void paste(); /* - TEXT_EDITOR->Paste(); - */ + @BindingMethod + public native void Delete(); - public native void delete(); /* - TEXT_EDITOR->Delete(); - */ + @BindingMethod + public native boolean CanUndo(); - public native boolean canUndo(); /* - return TEXT_EDITOR->CanUndo(); - */ + @BindingMethod + public native boolean CanRedo(); - public native boolean canRedo(); /* - return TEXT_EDITOR->CanRedo(); - */ + @BindingMethod + public native void Undo(@OptArg int aSteps); - public native void undo(int steps); /* - TEXT_EDITOR->Undo(steps); - */ - - public native void redo(int steps); /* - TEXT_EDITOR->Redo(steps); - */ + @BindingMethod + public native void Redo(@OptArg int aSteps); public native int[] getDarkPalette(); /* - const auto& palette = TEXT_EDITOR->GetDarkPalette(); - + const auto& palette = THIS->GetDarkPalette(); jintArray res = env->NewIntArray(palette.size()); - jint arr[palette.size()]; for (int i = 0; i < palette.size(); i++) { arr[i] = palette[i]; } - env->SetIntArrayRegion(res, 0, palette.size(), arr); - return res; */ public native int[] getLightPalette(); /* - const auto& palette = TEXT_EDITOR->GetLightPalette(); - + const auto& palette = THIS->GetLightPalette(); jintArray res = env->NewIntArray(palette.size()); - jint arr[palette.size()]; for (int i = 0; i < palette.size(); i++) { arr[i] = palette[i]; } - env->SetIntArrayRegion(res, 0, palette.size(), arr); - return res; */ public native int[] getRetroBluePalette(); /* - const auto& palette = TEXT_EDITOR->GetRetroBluePalette(); - + const auto& palette = THIS->GetRetroBluePalette(); jintArray res = env->NewIntArray(palette.size()); - jint arr[palette.size()]; for (int i = 0; i < palette.size(); i++) { arr[i] = palette[i]; } - env->SetIntArrayRegion(res, 0, palette.size(), arr); - return res; */ + + /*JNI + #undef TextEditorLanguageDefinition + #undef THIS + */ } diff --git a/imgui-binding/src/main/java/imgui/extension/texteditor/TextEditorCoordinates.java b/imgui-binding/src/main/java/imgui/extension/texteditor/TextEditorCoordinates.java new file mode 100644 index 0000000..9dabb22 --- /dev/null +++ b/imgui-binding/src/main/java/imgui/extension/texteditor/TextEditorCoordinates.java @@ -0,0 +1,90 @@ +package imgui.extension.texteditor; + +import java.util.Objects; + +public final class TextEditorCoordinates implements Cloneable { + public int mLine; + public int mColumn; + + public TextEditorCoordinates() { + } + + public TextEditorCoordinates(final int mLine, final int mColumn) { + set(mLine, mColumn); + } + + public TextEditorCoordinates(final TextEditorCoordinates value) { + set(value.mLine, value.mColumn); + } + + public TextEditorCoordinates set(final int mLine, final int mColumn) { + this.mLine = mLine; + this.mColumn = mColumn; + return this; + } + + public TextEditorCoordinates set(final TextEditorCoordinates value) { + return set(value.mLine, value.mColumn); + } + + public TextEditorCoordinates plus(final int mLine, final int mColumn) { + this.mLine += mLine; + this.mColumn += mColumn; + return this; + } + + public TextEditorCoordinates plus(final TextEditorCoordinates value) { + return plus(value.mLine, value.mColumn); + } + + public TextEditorCoordinates minus(final int mLine, final int mColumn) { + this.mLine -= mLine; + this.mColumn -= mColumn; + return this; + } + + public TextEditorCoordinates minus(final TextEditorCoordinates value) { + return minus(value.mLine, value.mColumn); + } + + public TextEditorCoordinates times(final int mLine, final int mColumn) { + this.mLine *= mLine; + this.mColumn *= mColumn; + return this; + } + + public TextEditorCoordinates times(final TextEditorCoordinates value) { + return times(value.mLine, value.mColumn); + } + + @Override + public String toString() { + return "TextEditorCoordinates{" + + "mLine=" + mLine + + ", mColumn=" + mColumn + + '}'; + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final TextEditorCoordinates textEditorCoordinates = (TextEditorCoordinates) o; + return textEditorCoordinates.mLine == mLine && textEditorCoordinates.mColumn == mColumn; + } + + @Override + public int hashCode() { + return Objects.hash(mLine, mColumn); + } + + @Override + @SuppressWarnings("MethodDoesntCallSuperMethod") + public TextEditorCoordinates clone() { + return new TextEditorCoordinates(this); + } +} diff --git a/imgui-binding/src/main/java/imgui/extension/texteditor/TextEditorLanguageDefinition.java b/imgui-binding/src/main/java/imgui/extension/texteditor/TextEditorLanguageDefinition.java index 322a0df..13b6fe4 100644 --- a/imgui-binding/src/main/java/imgui/extension/texteditor/TextEditorLanguageDefinition.java +++ b/imgui-binding/src/main/java/imgui/extension/texteditor/TextEditorLanguageDefinition.java @@ -1,16 +1,15 @@ package imgui.extension.texteditor; import imgui.binding.ImGuiStructDestroyable; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingMethod; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.ReturnValue; import java.util.Map; +@BindingSource public final class TextEditorLanguageDefinition extends ImGuiStructDestroyable { - /*JNI - #include "_texteditor.h" - - #define LANG_DEF ((TextEditor::LanguageDefinition*)STRUCT_PTR) - */ - public TextEditorLanguageDefinition() { } @@ -23,13 +22,19 @@ public final class TextEditorLanguageDefinition extends ImGuiStructDestroyable { return nCreate(); } + /*JNI + #include "_texteditor.h" + #define THIS ((TextEditor::LanguageDefinition*)STRUCT_PTR) + #define TextEditorLanguageDefinition TextEditor::LanguageDefinition + */ + private native long nCreate(); /* return (intptr_t)(new TextEditor::LanguageDefinition()); */ - public native void setName(String name); /* - LANG_DEF->mName = name; - */ + @BindingField(callName = "mName") + @ReturnValue(callSuffix = ".c_str()") + public String Name; public void setKeywords(final String[] keywords) { nSetKeywords(keywords, keywords.length); @@ -37,169 +42,133 @@ public final class TextEditorLanguageDefinition extends ImGuiStructDestroyable { private native void nSetKeywords(String[] keywords, int length); /* std::unordered_set set; - for (int i = 0; i < length; i++) { jstring string = (jstring)env->GetObjectArrayElement(keywords, i); const char* raw = env->GetStringUTFChars(string, JNI_FALSE); - set.emplace(std::string(raw)); + env->ReleaseStringUTFChars(string, raw); } - - LANG_DEF->mKeywords = set; + THIS->mKeywords = set; */ public void setIdentifiers(final Map identifiers) { final String[] keys = identifiers.keySet().toArray(new String[0]); final String[] decl = identifiers.values().toArray(new String[0]); - nSetIdentifiers(keys, keys.length, decl, decl.length); } private native void nSetIdentifiers(String[] keys, int keysLen, String[] decl, int declLen); /* std::unordered_map identifiers; - for (int i = 0; i < keysLen; i++) { jstring string1 = (jstring)env->GetObjectArrayElement(keys, i); - const char* key = env->GetStringUTFChars(string1, JNI_FALSE); - jstring string2 = (jstring)env->GetObjectArrayElement(decl, i); + const char* key = env->GetStringUTFChars(string1, JNI_FALSE); const char* value = env->GetStringUTFChars(string2, JNI_FALSE); - TextEditor::Identifier id; id.mDeclaration = std::string(value); - identifiers.insert(std::pair(std::string(key), id)); + env->ReleaseStringUTFChars(string1, key); + env->ReleaseStringUTFChars(string2, value); } - - LANG_DEF->mIdentifiers = identifiers; + THIS->mIdentifiers = identifiers; */ public void setPreprocIdentifiers(final Map identifiers) { final String[] keys = identifiers.keySet().toArray(new String[0]); final String[] decl = identifiers.values().toArray(new String[0]); - nSetPreprocIdentifiers(keys, keys.length, decl, decl.length); } private native void nSetPreprocIdentifiers(String[] keys, int keysLen, String[] decl, int declLen); /* std::unordered_map preprocIdentifiers; - for (int i = 0; i < keysLen; i++) { jstring string1 = (jstring)env->GetObjectArrayElement(keys, i); - const char* key = env->GetStringUTFChars(string1, JNI_FALSE); - jstring string2 = (jstring)env->GetObjectArrayElement(decl, i); + const char* key = env->GetStringUTFChars(string1, JNI_FALSE); const char* value = env->GetStringUTFChars(string2, JNI_FALSE); - TextEditor::Identifier id; id.mDeclaration = std::string(value); - preprocIdentifiers.insert(std::pair(std::string(key), id)); + env->ReleaseStringUTFChars(string1, key); + env->ReleaseStringUTFChars(string2, value); } - - LANG_DEF->mPreprocIdentifiers = preprocIdentifiers; + THIS->mPreprocIdentifiers = preprocIdentifiers; */ - public native void setCommentStart(String value); /* - LANG_DEF->mCommentStart = value; - */ + @BindingField(callName = "mCommentStart") + @ReturnValue(callSuffix = ".c_str()") + public String CommentStart; - public native void setCommentEnd(String value); /* - LANG_DEF->mCommentEnd = value; - */ + @BindingField(callName = "mCommentEnd") + @ReturnValue(callSuffix = ".c_str()") + public String CommentEnd; - public native void setSingleLineComment(String value); /* - LANG_DEF->mSingleLineComment = value; - */ + @BindingField(callName = "mSingleLineComment") + @ReturnValue(callSuffix = ".c_str()") + public String SingleLineComment; - public native void setPreprocChar(char value); /* - LANG_DEF->mPreprocChar = value; - */ + @BindingField(callName = "mPreprocChar") + public char PreprocChar; - public native void setAutoIdentation(boolean value); /* - LANG_DEF->mAutoIndentation = value; - */ + @BindingField(callName = "mAutoIndentation") + public boolean AutoIndentation; public void setTokenRegexStrings(final Map tokenRegexStrings) { final String[] keys = tokenRegexStrings.keySet().toArray(new String[0]); final int[] paletteIndexes = tokenRegexStrings.values().stream().mapToInt(i -> i).toArray(); - nSetTokenRegexStrings(keys, keys.length, paletteIndexes, paletteIndexes.length); } private native void nSetTokenRegexStrings(String[] keys, int keysLen, int[] paletteIndexes, int paletteIndexesLen); /* std::vector> tokenRegexStrings; - for (int i = 0; i < keysLen; i++) { jstring string = (jstring)env->GetObjectArrayElement(keys, i); const char* key = env->GetStringUTFChars(string, JNI_FALSE); - int value = paletteIndexes[i]; - - tokenRegexStrings.emplace_back(std::pair(std::string(key), - static_cast(value))); + tokenRegexStrings.emplace_back( + std::pair( + std::string(key), + static_cast(value) + ) + ); + env->ReleaseStringUTFChars(string, key); } - - LANG_DEF->mTokenRegexStrings = tokenRegexStrings; + THIS->mTokenRegexStrings = tokenRegexStrings; */ - private native void setCaseSensitive(boolean value); /* - LANG_DEF->mCaseSensitive = value; - */ + @BindingField + public boolean mCaseSensitive; - public static TextEditorLanguageDefinition cPlusPlus() { - return new TextEditorLanguageDefinition(nCPlusPlus()); - } + @BindingMethod(name = "CPlusPlus") + @ReturnValue(isStatic = true, callPrefix = "&") + public static native TextEditorLanguageDefinition CPlusPlus(); - public static TextEditorLanguageDefinition hlsl() { - return new TextEditorLanguageDefinition(nHLSL()); - } + @BindingMethod(name = "HLSL") + @ReturnValue(isStatic = true, callPrefix = "&") + public static native TextEditorLanguageDefinition HLSL(); - public static TextEditorLanguageDefinition glsl() { - return new TextEditorLanguageDefinition(nGLSL()); - } + @BindingMethod(name = "GLSL") + @ReturnValue(isStatic = true, callPrefix = "&") + public static native TextEditorLanguageDefinition GLSL(); - public static TextEditorLanguageDefinition c() { - return new TextEditorLanguageDefinition(nC()); - } + @BindingMethod(name = "C") + @ReturnValue(isStatic = true, callPrefix = "&") + public static native TextEditorLanguageDefinition C(); - public static TextEditorLanguageDefinition sql() { - return new TextEditorLanguageDefinition(nSQL()); - } + @BindingMethod(name = "SQL") + @ReturnValue(isStatic = true, callPrefix = "&") + public static native TextEditorLanguageDefinition SQL(); - public static TextEditorLanguageDefinition angelScript() { - return new TextEditorLanguageDefinition(nAngelScript()); - } + @BindingMethod(name = "AngelScript") + @ReturnValue(isStatic = true, callPrefix = "&") + public static native TextEditorLanguageDefinition AngelScript(); - public static TextEditorLanguageDefinition lua() { - return new TextEditorLanguageDefinition(nLua()); - } + @BindingMethod(name = "Lua") + @ReturnValue(isStatic = true, callPrefix = "&") + public static native TextEditorLanguageDefinition Lua(); - private static native long nCPlusPlus(); /* - return (intptr_t)&TextEditor::LanguageDefinition::CPlusPlus(); - */ - - private static native long nHLSL(); /* - return (intptr_t)&TextEditor::LanguageDefinition::HLSL(); - */ - - private static native long nGLSL(); /* - return (intptr_t)&TextEditor::LanguageDefinition::GLSL(); - */ - - private static native long nC(); /* - return (intptr_t)&TextEditor::LanguageDefinition::C(); - */ - - private static native long nSQL(); /* - return (intptr_t)&TextEditor::LanguageDefinition::SQL(); - */ - - private static native long nAngelScript(); /* - return (intptr_t)&TextEditor::LanguageDefinition::AngelScript(); - */ - - private static native long nLua(); /* - return (intptr_t)&TextEditor::LanguageDefinition::Lua(); - */ + /*JNI + #undef TextEditorLanguageDefinition + #undef THIS + */ } diff --git a/imgui-binding/src/main/java/imgui/extension/texteditor/flag/TextEditorPaletteIndex.java b/imgui-binding/src/main/java/imgui/extension/texteditor/flag/TextEditorPaletteIndex.java index 4829aa7..198726a 100644 --- a/imgui-binding/src/main/java/imgui/extension/texteditor/flag/TextEditorPaletteIndex.java +++ b/imgui-binding/src/main/java/imgui/extension/texteditor/flag/TextEditorPaletteIndex.java @@ -1,29 +1,13 @@ package imgui.extension.texteditor.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class TextEditorPaletteIndex { private TextEditorPaletteIndex() { } - public static final int Default = 0; - public static final int Keyword = 1; - public static final int Number = 2; - public static final int String = 3; - public static final int CharLiteral = 4; - public static final int Punctuation = 5; - public static final int Preprocessor = 6; - public static final int Identifier = 7; - public static final int KnownIdentifier = 8; - public static final int PreprocIdentifier = 9; - public static final int Comment = 10; - public static final int MultiLineComment = 11; - public static final int Background = 12; - public static final int Cursor = 13; - public static final int Selection = 14; - public static final int ErrorMarker = 15; - public static final int Breakpoint = 16; - public static final int LineNumber = 17; - public static final int CurrentLineFill = 18; - public static final int CurrentLineFillInactive = 19; - public static final int CurrentLineEdge = 20; - public static final int Max = 21; + @BindingAstEnum(file = "ast-TextEditor.json", qualType = "TextEditor::PaletteIndex") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/extension/texteditor/flag/TextEditorSelectionMode.java b/imgui-binding/src/main/java/imgui/extension/texteditor/flag/TextEditorSelectionMode.java index 1ff5034..cbce7af 100644 --- a/imgui-binding/src/main/java/imgui/extension/texteditor/flag/TextEditorSelectionMode.java +++ b/imgui-binding/src/main/java/imgui/extension/texteditor/flag/TextEditorSelectionMode.java @@ -1,10 +1,13 @@ package imgui.extension.texteditor.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class TextEditorSelectionMode { private TextEditorSelectionMode() { } - public static final int Normal = 0; - public static final int Word = 1; - public static final int Line = 2; + @BindingAstEnum(file = "ast-TextEditor.json", qualType = "TextEditor::SelectionMode") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImDrawFlags.java b/imgui-binding/src/main/java/imgui/flag/ImDrawFlags.java index a3684d2..d1634d3 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImDrawFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImDrawFlags.java @@ -1,42 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +/** + * Flags for ImDrawList functions + */ +@BindingSource public final class ImDrawFlags { private ImDrawFlags() { } - public static final int None = 0; - /** - * PathStroke(), AddPolyline(): specify that shape should be closed (Important: this is always == 1 for legacy reason) - */ - public static final int Closed = 1; - /** - * AddRect(), AddRectFilled(), PathRect(): enable rounding top-left corner only (when rounding {@code >} 0.0f, we default to all corners). Was 0x01. - */ - public static final int RoundCornersTopLeft = 1 << 4; - /** - * AddRect(), AddRectFilled(), PathRect(): enable rounding top-right corner only (when rounding {@code >} 0.0f, we default to all corners). Was 0x02. - */ - public static final int RoundCornersTopRight = 1 << 5; - /** - * AddRect(), AddRectFilled(), PathRect(): enable rounding bottom-left corner only (when rounding {@code >} 0.0f, we default to all corners). Was 0x04. - */ - public static final int RoundCornersBottomLeft = 1 << 6; - /** - * AddRect(), AddRectFilled(), PathRect(): enable rounding bottom-right corner only (when rounding {@code >} 0.0f, we default to all corners). Wax 0x08. - */ - public static final int RoundCornersBottomRight = 1 << 7; - /** - * AddRect(), AddRectFilled(), PathRect(): disable rounding on all corners (when rounding {@code >} 0.0f). This is NOT zero, NOT an implicit flag! - */ - public static final int RoundCornersNone = 1 << 8; - public static final int RoundCornersTop = RoundCornersTopLeft | RoundCornersTopRight; - public static final int RoundCornersBottom = RoundCornersBottomLeft | RoundCornersBottomRight; - public static final int RoundCornersLeft = RoundCornersBottomLeft | RoundCornersTopLeft; - public static final int RoundCornersRight = RoundCornersBottomRight | RoundCornersTopRight; - public static final int RoundCornersAll = RoundCornersTopLeft | RoundCornersTopRight | RoundCornersBottomLeft | RoundCornersBottomRight; - /** - * Default to ALL corners if none of the _RoundCornersXX flags are specified. - */ - public static final int RoundCornersDefault = RoundCornersAll; - public static final int RoundCornersMask = RoundCornersAll | RoundCornersNone; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImDrawFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImDrawListFlags.java b/imgui-binding/src/main/java/imgui/flag/ImDrawListFlags.java index 5512664..e028ddf 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImDrawListFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImDrawListFlags.java @@ -1,28 +1,17 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Flags for ImDrawList. Those are set automatically by ImGui:: functions from ImGuiIO settings, and generally not manipulated directly. * It is however possible to temporarily alter flags between calls to ImDrawList:: functions. */ +@BindingSource public final class ImDrawListFlags { private ImDrawListFlags() { } - public static final int None = 0; - /** - * Enable anti-aliased lines/borders (*2 the number of triangles for 1.0f wide line or lines thin enough to be drawn using textures, otherwise *3 the number of triangles) - */ - public static final int AntiAliasedLines = 1; - /** - * Enable anti-aliased lines/borders using textures when possible. Require backend to render with bilinear filtering. - */ - public static final int AntiAliasedLinesUseTex = 1 << 1; - /** - * Enable anti-aliased edge around filled shapes (rounded rectangles, circles). - */ - public static final int AntiAliasedFill = 1 << 2; - /** - * Can emit 'VtxOffset {@code >} 0' to allow large meshes. Set when 'ImGuiBackendFlags_RendererHasVtxOffset' is enabled. - */ - public static final int AllowVtxOffset = 1 << 3; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImDrawListFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImFontAtlasFlags.java b/imgui-binding/src/main/java/imgui/flag/ImFontAtlasFlags.java index 44fbb36..d1752f0 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImFontAtlasFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImFontAtlasFlags.java @@ -1,24 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Flags for ImFontAtlas build */ +@BindingSource public final class ImFontAtlasFlags { private ImFontAtlasFlags() { } - public static final int None = 0; - /** - * Don't round the height to next power of two - */ - public static final int NoPowerOfTwoHeight = 1; - /** - * Don't build software mouse cursors into the atlas - */ - public static final int NoMouseCursors = 1 << 1; - /** - * Don't build thick line textures into the atlas (save a little texture memory). - * The AntiAliasedLinesUseTex features uses them, otherwise they will be rendered using polygons (more expensive for CPU/GPU). - */ - public static final int NoBakedLines = 1 << 2; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImFontAtlasFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiBackendFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiBackendFlags.java index 93a4e59..d7b16d7 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiBackendFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiBackendFlags.java @@ -1,44 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Backend capabilities flags stored in io.BackendFlags. Set by imgui_impl_xxx or custom backend. */ +@BindingSource public final class ImGuiBackendFlags { private ImGuiBackendFlags() { } - public static final int None = 0; - /** - * Backend Platform supports gamepad and currently has one connected. - */ - public static final int HasGamepad = 1; - /** - * Backend Platform supports honoring GetMouseCursor() value to change the OS cursor shape. - */ - public static final int HasMouseCursors = 1 << 1; - /** - * Backend Platform supports io.WantSetMousePos requests to reposition the OS mouse position (only used if ImGuiConfigFlags_NavEnableSetMousePos is set). - */ - public static final int HasSetMousePos = 1 << 2; - /** - * Backend Renderer supports ImDrawCmd::VtxOffset. This enables output of large meshes (64K+ vertices) while still using 16-bit indices. - */ - public static final int RendererHasVtxOffset = 1 << 3; - - // [BETA] Viewports - - /** - * Backend Platform supports multiple viewports. - */ - public static final int PlatformHasViewports = 1 << 10; - /** - * Backend Platform supports setting io.MouseHoveredViewport to the viewport directly under the mouse _IGNORING_ viewports - * with the ImGuiViewportFlags_NoInputs flag and _REGARDLESS_ of whether another viewport is focused and may be capturing the mouse. - * This information is _NOT EASY_ to provide correctly with most high-level engines! Don't set this without studying how the examples/ backend handle it! - */ - public static final int HasMouseHoveredViewport = 1 << 11; - /** - * Backend Renderer supports multiple viewports. - */ - public static final int RendererHasViewports = 1 << 12; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiBackendFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiButtonFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiButtonFlags.java index 513f9a7..f56d02d 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiButtonFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiButtonFlags.java @@ -1,20 +1,13 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class ImGuiButtonFlags { private ImGuiButtonFlags() { } - public static final int None = 0; - /** - * React on left mouse button (default). - */ - public static final int MouseButtonLeft = 0; - /** - * React on right mouse button. - */ - public static final int MouseButtonRight = 1 << 1; - /** - * React on center mouse button. - */ - public static final int MouseButtonMiddle = 1 << 2; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiButtonFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiCol.java b/imgui-binding/src/main/java/imgui/flag/ImGuiCol.java index 4090de7..80853ca 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiCol.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiCol.java @@ -1,114 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Enumeration for PushStyleColor() / PopStyleColor() */ +@BindingSource public final class ImGuiCol { private ImGuiCol() { } - public static final int Text = 0; - public static final int TextDisabled = 1; - /** - * Background of normal windows - */ - public static final int WindowBg = 2; - /** - * Background of child windows - */ - public static final int ChildBg = 3; - /** - * Background of popups, menus, tooltips windows - */ - public static final int PopupBg = 4; - public static final int Border = 5; - public static final int BorderShadow = 6; - /** - * Background of checkbox, radio button, plot, slider, text input - */ - public static final int FrameBg = 7; - public static final int FrameBgHovered = 8; - public static final int FrameBgActive = 9; - public static final int TitleBg = 10; - public static final int TitleBgActive = 11; - public static final int TitleBgCollapsed = 12; - public static final int MenuBarBg = 13; - public static final int ScrollbarBg = 14; - public static final int ScrollbarGrab = 15; - public static final int ScrollbarGrabHovered = 16; - public static final int ScrollbarGrabActive = 17; - public static final int CheckMark = 18; - public static final int SliderGrab = 19; - public static final int SliderGrabActive = 20; - public static final int Button = 21; - public static final int ButtonHovered = 22; - public static final int ButtonActive = 23; - /** - * Header* colors are used for CollapsingHeader, TreeNode, Selectable, MenuItem - */ - public static final int Header = 24; - public static final int HeaderHovered = 25; - public static final int HeaderActive = 26; - public static final int Separator = 27; - public static final int SeparatorHovered = 28; - public static final int SeparatorActive = 29; - public static final int ResizeGrip = 30; - public static final int ResizeGripHovered = 31; - public static final int ResizeGripActive = 32; - public static final int Tab = 33; - public static final int TabHovered = 34; - public static final int TabActive = 35; - public static final int TabUnfocused = 36; - public static final int TabUnfocusedActive = 37; - /** - * Preview overlay color when about to docking something - */ - public static final int DockingPreview = 38; - /** - * Background color for empty node (e.g. CentralNode with no window docked into it) - */ - public static final int DockingEmptyBg = 39; - public static final int PlotLines = 40; - public static final int PlotLinesHovered = 41; - public static final int PlotHistogram = 42; - public static final int PlotHistogramHovered = 43; - /** - * Table header background - */ - public static final int TableHeaderBg = 44; - /** - * Table outer and header borders (prefer using Alpha=1.0 here) - */ - public static final int TableBorderStrong = 45; - /** - * Table inner borders (prefer using Alpha=1.0 here) - */ - public static final int TableBorderLight = 46; - /** - * Table row background (even rows) - */ - public static final int TableRowBg = 47; - /** - * Table row background (odd rows) - */ - public static final int TableRowBgAlt = 48; - public static final int TextSelectedBg = 49; - public static final int DragDropTarget = 50; - /** - * Gamepad/keyboard: current highlighted item - */ - public static final int NavHighlight = 51; - /** - * Highlight window when using CTRL+TAB - */ - public static final int NavWindowingHighlight = 52; - /** - * Darken/colorize entire screen behind the CTRL+TAB window list, when active - */ - public static final int NavWindowingDimBg = 53; - /** - * Darken/colorize entire screen behind a modal window, when one is active - */ - public static final int ModalWindowDimBg = 54; - public static final int COUNT = 55; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiCol_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiColorEditFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiColorEditFlags.java index 07ce4f8..3fc9e7c 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiColorEditFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiColorEditFlags.java @@ -1,126 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Flags for ColorEdit3() / ColorEdit4() / ColorPicker3() / ColorPicker4() / ColorButton() */ +@BindingSource public final class ImGuiColorEditFlags { private ImGuiColorEditFlags() { } - public static final int None = 0; - /** - * ColorEdit, ColorPicker, ColorButton: ignore Alpha component (will only read 3 components from the input pointer). - */ - public static final int NoAlpha = 1 << 1; - /** - * ColorEdit: disable picker when clicking on colored square. - */ - public static final int NoPicker = 1 << 2; - /** - * ColorEdit: disable toggling options menu when right-clicking on inputs/small preview. - */ - public static final int NoOptions = 1 << 3; - /** - * ColorEdit, ColorPicker: disable colored square preview next to the inputs. (e.g. to show only the inputs) - */ - public static final int NoSmallPreview = 1 << 4; - /** - * ColorEdit, ColorPicker: disable inputs sliders/text widgets (e.g. to show only the small preview colored square). - */ - public static final int NoInputs = 1 << 5; - /** - * ColorEdit, ColorPicker, ColorButton: disable tooltip when hovering the preview. - */ - public static final int NoTooltip = 1 << 6; - /** - * ColorEdit, ColorPicker: disable display of inline text label (the label is still forwarded to the tooltip and picker). - */ - public static final int NoLabel = 1 << 7; - /** - * ColorPicker: disable bigger color preview on right side of the picker, use small colored square preview instead. - */ - public static final int NoSidePreview = 1 << 8; - /** - * ColorEdit: disable drag and drop target. ColorButton: disable drag and drop source. - */ - public static final int NoDragDrop = 1 << 9; - /** - * ColorButton: disable border (which is enforced by default) - */ - public static final int NoBorder = 1 << 10; - - // User Options (right-click on widget to change some of them). - - /** - * ColorEdit, ColorPicker: show vertical alpha bar/gradient in picker. - */ - public static final int AlphaBar = 1 << 16; - /** - * ColorEdit, ColorPicker, ColorButton: display preview as a transparent color over a checkerboard, instead of opaque. - */ - public static final int AlphaPreview = 1 << 17; - /** - * ColorEdit, ColorPicker, ColorButton: display half opaque / half checkerboard, instead of opaque. - */ - public static final int AlphaPreviewHalf = 1 << 18; - /** - * (WIP) ColorEdit: Currently only disable 0.0f..1.0f limits in RGBA edition (note: you probably want to use ImGuiColorEditFlags_Float flag as well). - */ - public static final int HDR = 1 << 19; - /** - * [Display] - *

- * ColorEdit: override _display_ type among RGB/HSV/Hex. ColorPicker: select any combination using one or more of RGB/HSV/Hex. - */ - public static final int DisplayRGB = 1 << 20; - /** - * [Display] - */ - public static final int DisplayHSV = 1 << 21; - /** - * [Display] - */ - public static final int DisplayHex = 1 << 22; - /** - * [DataType] - *

- * ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0..255. - */ - public static final int Uint8 = 1 << 23; - /** - * [DataType] - *

- * ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0.0f..1.0f floats instead of 0..255 integers. No round-trip of value via integers. - */ - public static final int Float = 1 << 24; - /** - * [Picker] - *

- * ColorPicker: bar for Hue, rectangle for Sat/Value. - */ - public static final int PickerHueBar = 1 << 25; - /** - * [Picker] - *

- * ColorPicker: wheel for Hue, triangle for Sat/Value. - */ - public static final int PickerHueWheel = 1 << 26; - /** - * [Input] - *

- * ColorEdit, ColorPicker: input and output data in RGB format. - */ - public static final int InputRGB = 1 << 27; - /** - * [Input] - *

- * ColorEdit, ColorPicker: input and output data in HSV format. - */ - public static final int InputHSV = 1 << 28; - - /** - * Defaults Options. You can set application defaults using SetColorEditOptions(). The intent is that you probably don't want to - * override them in most of your calls. Let the user choose via the option menu and/or call SetColorEditOptions() once during startup. - */ - public static final int OptionsDefault = Uint8 | DisplayRGB | InputRGB | PickerHueBar; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiColorEditFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiComboFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiComboFlags.java index 91c1f23..56b92bb 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiComboFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiComboFlags.java @@ -1,40 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Flags for ImGui::BeginCombo() */ +@BindingSource public final class ImGuiComboFlags { private ImGuiComboFlags() { } - public static final int None = 0; - /** - * Align the popup toward the left by default - */ - public static final int PopupAlignLeft = 1; - /** - * Max ~4 items visible. Tip: If you want your combo popup to be a specific size you can use SetNextWindowSizeConstraints() prior to calling BeginCombo() - */ - public static final int HeightSmall = 1 << 1; - /** - * Max ~8 items visible (default) - */ - public static final int HeightRegular = 1 << 2; - /** - * Max ~20 items visible - */ - public static final int HeightLarge = 1 << 3; - /** - * As many fitting items as possible - */ - public static final int HeightLargest = 1 << 4; - /** - * Display on the preview box without the square arrow button - */ - public static final int NoArrowButton = 1 << 5; - /** - * Display only a square arrow button - */ - public static final int NoPreview = 1 << 6; - public static final int HeightMask_ = HeightSmall | HeightRegular | HeightLarge | HeightLargest; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiComboFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiCond.java b/imgui-binding/src/main/java/imgui/flag/ImGuiCond.java index 5e22930..49fe3c5 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiCond.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiCond.java @@ -1,32 +1,18 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Enumeration for ImGui::SetWindow***(), SetNextWindow***(), SetNextItem***() functions * Represent a condition. * Important: Treat as a regular enum! Do NOT combine multiple values using binary operators! All the functions above treat 0 as a shortcut to ImGuiCond_Always. */ +@BindingSource public final class ImGuiCond { private ImGuiCond() { } - /** - * No condition (always set the variable), same as Always. - */ - public static final int None = 0; - /** - * No condition (always set the variable) - */ - public static final int Always = 1; - /** - * Set the variable once per runtime session (only the first call will succeed) - */ - public static final int Once = 1 << 1; - /** - * Set the variable if the object/window has no persistently saved data (no entry in .ini file) - */ - public static final int FirstUseEver = 1 << 2; - /** - * Set the variable if the object/window is appearing after being hidden/inactive (or the first time) - */ - public static final int Appearing = 1 << 3; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiCond_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiConfigFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiConfigFlags.java index 165269a..c0bff08 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiConfigFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiConfigFlags.java @@ -1,74 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Configuration flags stored in io.ConfigFlags. Set by user/application. */ +@BindingSource public final class ImGuiConfigFlags { private ImGuiConfigFlags() { } - public static final int None = 0; - /** - * Master keyboard navigation enable flag. NewFrame() will automatically fill io.NavInputs[] based on io.KeysDown[]. - */ - public static final int NavEnableKeyboard = 1; - /** - * Master gamepad navigation enable flag. This is mostly to instruct your imgui backend to fill io.NavInputs[]. Backend also needs to set ImGuiBackendFlags_HasGamepad. - */ - public static final int NavEnableGamepad = 1 << 1; - /** - * 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 binding, otherwise ImGui will react as if the mouse is jumping around back and forth. - */ - public static final int NavEnableSetMousePos = 1 << 2; - /** - * Instruct navigation to not set the io.WantCaptureKeyboard flag when io.NavActive is set. - */ - public static final int NavNoCaptureKeyboard = 1 << 3; - /** - * Instruct imgui to clear mouse position/buttons in NewFrame(). This allows ignoring the mouse information set by the backend. - */ - public static final int NoMouse = 1 << 4; - /** - * Instruct backend to not alter mouse cursor shape and visibility. - * Use if the backend cursor changes are interfering with yours and you don't want to use SetMouseCursor() to change mouse cursor. - * You may want to honor requests from imgui by reading GetMouseCursor() yourself instead. - */ - public static final int NoMouseCursorChange = 1 << 5; - - /** - * [BETA] Docking - * Docking enable flags. - */ - public static final int DockingEnable = 1 << 6; - - // [BETA] Viewports - // When using viewports it is recommended that your default value for ImGuiCol_WindowBg is opaque (Alpha=1.0) so transition to a viewport won't be noticeable. - - /** - * Viewport enable flags (require both ImGuiBackendFlags_PlatformHasViewports + ImGuiBackendFlags_RendererHasViewports set by the respective backends) - */ - public static final int ViewportsEnable = 1 << 10; - /** - * [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. - */ - public static final int DpiEnableScaleViewports = 1 << 14; - /** - * [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. - */ - public static final int DpiEnableScaleFonts = 1 << 15; - - // User storage (to allow your backend/engine to communicate to code that may be shared between multiple projects. Those flags are not used by core Dear ImGui) - - /** - * Application is SRGB-aware. - */ - public static final int IsSRGB = 1 << 20; - /** - * Application is using a touch screen instead of a mouse. - */ - public static final int IsTouchScreen = 1 << 21; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiConfigFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiDataType.java b/imgui-binding/src/main/java/imgui/flag/ImGuiDataType.java index 55412f8..ca3e91d 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiDataType.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiDataType.java @@ -1,51 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * A primary data type */ +@BindingSource public final class ImGuiDataType { private ImGuiDataType() { } - /** - * signed char / char (with sensible compilers) - */ - public static final int S8 = 0; - /** - * unsigned char - */ - public static final int U8 = 1; - /** - * short - */ - public static final int S16 = 2; - /** - * unsigned short - */ - public static final int U16 = 3; - /** - * int - */ - public static final int S32 = 4; - /** - * unsigned int - */ - public static final int U32 = 5; - /** - * long long / __int64 - */ - public static final int S64 = 6; - /** - * unsigned long long / unsigned __int64 - */ - public static final int U64 = 7; - /** - * float - */ - public static final int Float = 8; - /** - * double - */ - public static final int Double = 9; - public static final int COUNT = 10; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiDataType_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiDir.java b/imgui-binding/src/main/java/imgui/flag/ImGuiDir.java index fd30efd..eb0e4c0 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiDir.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiDir.java @@ -1,16 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * A cardinal direction */ +@BindingSource public final class ImGuiDir { private ImGuiDir() { } - public static final int None = -1; - public static final int Left = 0; - public static final int Right = 1; - public static final int Up = 2; - public static final int Down = 3; - public static final int COUNT = 5; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiDir_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiDockNodeFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiDockNodeFlags.java index 657a82f..2537314 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiDockNodeFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiDockNodeFlags.java @@ -1,42 +1,17 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Flags for ImGui::DockSpace(), shared/inherited by child nodes. * (Some flags can be applied to individual nodes directly) */ -@SuppressWarnings("HideUtilityClassConstructor") -public class ImGuiDockNodeFlags { - public static final int None = 0; - /** - * Don't display the dockspace node but keep it alive. Windows docked into this dockspace node won't be undocked. - */ - public static final int KeepAliveOnly = 1; - /** - * Disable Central Node (the node which can stay empty) - */ - public static final int NoCentralNode = 1 << 1; - /** - * Disable docking inside the Central Node, which will be always kept empty. - */ - public static final int NoDockingInCentralNode = 1 << 2; - /** - * Enable passthru dockspace: 1) DockSpace() will render a ImGuiCol_WindowBg background covering everything excepted the Central - * Node when empty. Meaning the host window should probably use SetNextWindowBgAlpha(0.0f) prior to Begin() when using this. 2) - * When Central Node is empty: let inputs pass-through + won't display a DockingEmptyBg background. See demo for details. - */ - public static final int PassthruCentralNode = 1 << 3; - /** - * Disable splitting the node into smaller nodes. - * Useful e.g. when embedding dockspaces into a main root one (the root one may have splitting disabled to reduce confusion). - * Note: when turned off, existing splits will be preserved. - */ - public static final int NoSplit = 1 << 4; - /** - * Disable resizing node using the splitter/separators. Useful with programatically setup dockspaces. - */ - public static final int NoResize = 1 << 5; - /** - * Tab bar will automatically hide when there is a single window in the dock node. - */ - public static final int AutoHideTabBar = 1 << 6; +@BindingSource +public final class ImGuiDockNodeFlags { + private ImGuiDockNodeFlags() { + } + + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiDockNodeFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiDragDropFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiDragDropFlags.java index c96ada4..4232270 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiDragDropFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiDragDropFlags.java @@ -1,61 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Flags for ImGui::BeginDragDropSource(), ImGui::AcceptDragDropPayload() */ +@BindingSource public final class ImGuiDragDropFlags { private ImGuiDragDropFlags() { } - public static final int None = 0; - - // BeginDragDropSource() flags - - /** - * By default, a successful call to BeginDragDropSource opens a tooltip so you can display a preview or description of the source contents. This flag disable this behavior. - */ - public static final int SourceNoPreviewTooltip = 1; - /** - * By default, when dragging we clear data so that IsItemHovered() will return false, to avoid subsequent user code submitting tooltips. - * This flag disable this behavior so you can still call IsItemHovered() on the source item. - */ - public static final int SourceNoDisableHover = 1 << 1; - /** - * Disable the behavior that allows to open tree nodes and collapsing header by holding over them while dragging a source item. - */ - public static final int SourceNoHoldToOpenOthers = 1 << 2; - /** - * Allow items such as Text(), Image() that have no unique identifier to be used as drag source, - * by manufacturing a temporary identifier based on their window-relative position. - * This is extremely unusual within the dear imgui ecosystem and so we made it explicit. - */ - public static final int SourceAllowNullID = 1 << 3; - /** - * External source (from outside of dear imgui), won't attempt to read current item/window info. Will always return true. - * Only one Extern source can be active simultaneously. - */ - public static final int SourceExtern = 1 << 4; - /** - * Automatically expire the payload if the source cease to be submitted (otherwise payloads are persisting while being dragged) - */ - public static final int SourceAutoExpirePayload = 1 << 5; - - // AcceptDragDropPayload() flags - - /** - * AcceptDragDropPayload() will returns true even before the mouse button is released. You can then call IsDelivery() to test if the payload needs to be delivered. - */ - public static final int AcceptBeforeDelivery = 1 << 10; - /** - * Do not draw the default highlight rectangle when hovering over target. - */ - public static final int AcceptNoDrawDefaultRect = 1 << 11; - /** - * Request hiding the BeginDragDropSource tooltip from the BeginDragDropTarget site. - */ - public static final int AcceptNoPreviewTooltip = 1 << 12; - /** - * For peeking ahead and inspecting the payload before delivery. - */ - public static final int AcceptPeekOnly = AcceptBeforeDelivery | AcceptNoDrawDefaultRect; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiDragDropFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiFocusedFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiFocusedFlags.java index 307fed1..69650a0 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiFocusedFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiFocusedFlags.java @@ -1,39 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Flags for ImGui::IsWindowFocused() */ +@BindingSource public final class ImGuiFocusedFlags { private ImGuiFocusedFlags() { } - public static final int None = 0; - - /** - * Return true if any children of the window is focused - */ - public static final int ChildWindows = 1; - - /** - * Test from root window (top most parent of the current hierarchy) - */ - public static final int RootWindow = 1 << 1; - - /** - * Return true if any window is focused. Important: If you are trying to tell how to dispatch your low-level inputs, do NOT use this. - * Use 'io.WantCaptureMouse' instead! Please read the FAQ! - */ - public static final int AnyWindow = 1 << 2; - - /** - * Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow) - */ - public static final int NoPopupHierarchy = 1 << 3; - - /** - * Consider docking hierarchy (treat dockspace host as parent of docked window) (when used with _ChildWindows or _RootWindow) - */ - public static final int DockHierarchy = 1 << 4; - - public static final int RootAndChildWindows = RootWindow | ChildWindows; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiFocusedFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiFreeTypeBuilderFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiFreeTypeBuilderFlags.java index 8a6b0d5..b4f6c94 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiFreeTypeBuilderFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiFreeTypeBuilderFlags.java @@ -1,45 +1,13 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class ImGuiFreeTypeBuilderFlags { private ImGuiFreeTypeBuilderFlags() { } - /** - * Disable hinting. This generally generates 'blurrier' bitmap glyphs when the glyph are rendered in any of the anti-aliased modes. - */ - public static final int NoHinting = 1; - /** - * Disable auto-hinter. - */ - public static final int NoAutoHint = 1 << 1; - /** - * Indicates that the auto-hinter is preferred over the font's native hinter. - */ - public static final int ForceAutoHint = 1 << 2; - /** - * A lighter hinting algorithm for gray-level modes. Many generated glyphs are fuzzier but better resemble their original shape. - * This is achieved by snapping glyphs to the pixel grid only vertically (Y-axis), as is done by Microsoft's ClearType and Adobe's proprietary font renderer. - * This preserves inter-glyph spacing in horizontal text. - */ - public static final int LightHinting = 1 << 3; - /** - * Strong hinting algorithm that should only be used for monochrome output. - */ - public static final int MonoHinting = 1 << 4; - /** - * Styling: Should we artificially embolden the font? - */ - public static final int Bold = 1 << 5; - /** - * Styling: Should we slant the font, emulating italic style? - */ - public static final int Oblique = 1 << 6; - /** - * Disable anti-aliasing. Combine this with MonoHinting for best results! - */ - public static final int Monochrome = 1 << 7; - /** - * Enable FreeType color-layered glyphs1 - */ - public static final int LoadColor = 1 << 8; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiFreeTypeBuilderFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiHoveredFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiHoveredFlags.java index 62f5fba..9d2ec20 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiHoveredFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiHoveredFlags.java @@ -1,67 +1,18 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Flags for ImGui::IsItemHovered(), ImGui::IsWindowHovered() * Note:if you are trying to check whether your mouse should be dispatched to Dear ImGui or to your app, * you should use'io.WantCaptureMouse'instead!Please read the FAQ!Note: windows with the ImGuiWindowFlags_NoInputs flag are ignored by IsWindowHovered() calls. */ +@BindingSource public final class ImGuiHoveredFlags { private ImGuiHoveredFlags() { } - /** - * Return true if directly over the item/window, not obstructed by another window, not obstructed by an active popup or modal blocking inputs under them. - */ - public static final int None = 0; - - /** - * IsWindowHovered() only: Return true if any children of the window is hovered - */ - public static final int ChildWindows = 1; - - /** - * IsWindowHovered() only: Test from root window (top most parent of the current hierarchy) - */ - public static final int RootWindow = 1 << 1; - - /** - * IsWindowHovered() only: Return true if any window is hovered - */ - public static final int AnyWindow = 1 << 2; - - /** - * IsWindowHovered() only: Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow) - */ - public static final int NoPopupHierarchy = 1 << 3; - - /** - * IsWindowHovered() only: Consider docking hierarchy (treat dockspace host as parent of docked window) (when used with _ChildWindows or _RootWindow) - */ - public static final int DockHierarchy = 1 << 4; - - /** - * Return true even if a popup window is normally blocking access to this item/window - */ - public static final int AllowWhenBlockedByPopup = 1 << 5; - - //ImGuiHoveredFlags_AllowWhenBlockedByModal = 1 << 6, //Return true even if a modal popup window is normally blocking access to this item/window. FIXME-TODO: Unavailable yet. - - /** - * Return true even if an active item is blocking access to this item/window. Useful for Drag and Drop patterns. - */ - public static final int AllowWhenBlockedByActiveItem = 1 << 7; - - /** - * Return true even if the position is obstructed or overlapped by another window - */ - public static final int AllowWhenOverlapped = 1 << 8; - - /** - * Return true even if the item is disabled - */ - public static final int AllowWhenDisabled = 1 << 9; - - public static final int RectOnly = AllowWhenBlockedByPopup | AllowWhenBlockedByActiveItem | AllowWhenOverlapped; - - public static final int RootAndChildWindows = RootWindow | ChildWindows; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiHoveredFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiInputTextFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiInputTextFlags.java index 1f16cbe..f3483a2 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiInputTextFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiInputTextFlags.java @@ -1,93 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Flags for ImGui::InputText() */ +@BindingSource public final class ImGuiInputTextFlags { private ImGuiInputTextFlags() { } - public static final int None = 0; - /** - * Allow 0123456789.+-* / - */ - public static final int CharsDecimal = 1; - /** - * Allow 0123456789ABCDEFabcdef - */ - public static final int CharsHexadecimal = 1 << 1; - /** - * Turn a..z into A..Z - */ - public static final int CharsUppercase = 1 << 2; - /** - * Filter out spaces, tabs - */ - public static final int CharsNoBlank = 1 << 3; - /** - * Select entire text when first taking mouse focus - */ - public static final int AutoSelectAll = 1 << 4; - /** - * Return 'true' when Enter is pressed (as opposed to every time the value was modified). Consider looking at the IsItemDeactivatedAfterEdit() function. - */ - public static final int EnterReturnsTrue = 1 << 5; - /** - * Callback on pressing TAB (for completion handling) - */ - public static final int CallbackCompletion = 1 << 6; - /** - * Callback on pressing Up/Down arrows (for history handling) - */ - public static final int CallbackHistory = 1 << 7; - /** - * Callback on each iteration. User code may query cursor position, modify text buffer. - */ - public static final int CallbackAlways = 1 << 8; - /** - * Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard. - */ - public static final int CallbackCharFilter = 1 << 9; - /** - * Pressing TAB input a '\t' character into the text field - */ - public static final int AllowTabInput = 1 << 10; - /** - * In multi-line mode, unfocus with Enter, add new line with Ctrl+Enter (default is opposite: unfocus with Ctrl+Enter, add line with Enter). - */ - public static final int CtrlEnterForNewLine = 1 << 11; - /** - * Disable following the cursor horizontally - */ - public static final int NoHorizontalScroll = 1 << 12; - /** - * Overwrite mode - */ - public static final int AlwaysOverwrite = 1 << 13; - /** - * Read-only mode - */ - public static final int ReadOnly = 1 << 14; - /** - * Password mode, display all characters as '*' - */ - public static final int Password = 1 << 15; - /** - * Disable undo/redo. Note that input text owns the text data while active, if you want to provide your own undo/redo stack you need e.g. to call ClearActiveID(). - */ - public static final int NoUndoRedo = 1 << 16; - /** - * Allow 0123456789.+-* /eE (Scientific notation input) - */ - public static final int CharsScientific = 1 << 17; - /** - * 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) - */ - public static final int CallbackResize = 1 << 18; - /** - * 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). - */ - public static final int CallbackEdit = 1 << 19; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiInputTextFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiKey.java b/imgui-binding/src/main/java/imgui/flag/ImGuiKey.java index ef1dafa..d431354 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiKey.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiKey.java @@ -1,51 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * User fill ImGuiIO.KeyMap[] array with indices into the ImGuiIO.KeysDown[512] array */ +@BindingSource public final class ImGuiKey { private ImGuiKey() { } - public static final int Tab = 0; - public static final int LeftArrow = 1; - public static final int RightArrow = 2; - public static final int UpArrow = 3; - public static final int DownArrow = 4; - public static final int PageUp = 5; - public static final int PageDown = 6; - public static final int Home = 7; - public static final int End = 8; - public static final int Insert = 9; - public static final int Delete = 10; - public static final int Backspace = 11; - public static final int Space = 12; - public static final int Enter = 13; - public static final int Escape = 14; - public static final int KeyPadEnter = 15; - /** - * for text edit CTRL+A: select all - */ - public static final int A = 16; - /** - * for text edit CTRL+C: copy - */ - public static final int C = 17; - /** - * for text edit CTRL+V: paste - */ - public static final int V = 18; - /** - * for text edit CTRL+X: cut - */ - public static final int X = 19; - /** - * for text edit CTRL+Y: redo - */ - public static final int Y = 20; - /** - * for text edit CTRL+Z: undo - */ - public static final int Z = 21; - public static final int COUNT = 22; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiKey_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiKeyModFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiKeyModFlags.java index 5f5cfe0..f6643eb 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiKeyModFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiKeyModFlags.java @@ -1,15 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * To test io.KeyMods (which is a combination of individual fields io.KeyCtrl, io.KeyShift, io.KeyAlt set by user/backend) */ +@BindingSource public final class ImGuiKeyModFlags { private ImGuiKeyModFlags() { } - public static final int None = 0; - public static final int Ctrl = 1; - public static final int Shift = 1 << 1; - public static final int Alt = 1 << 2; - public static final int Super = 1 << 3; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiKeyModFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiMouseButton.java b/imgui-binding/src/main/java/imgui/flag/ImGuiMouseButton.java index 2e6d5ee..1d1c8be 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiMouseButton.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiMouseButton.java @@ -1,15 +1,17 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Identify a mouse button. * Those values are guaranteed to be stable and we frequently use 0/1 directly. Named enums provided for convenience. */ +@BindingSource public final class ImGuiMouseButton { private ImGuiMouseButton() { } - public static final int Left = 0; - public static final int Right = 1; - public static final int Middle = 2; - public static final int COUNT = 5; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiMouseButton_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiMouseCursor.java b/imgui-binding/src/main/java/imgui/flag/ImGuiMouseCursor.java index 2bd8d40..214113c 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiMouseCursor.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiMouseCursor.java @@ -1,46 +1,17 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Enumeration for GetMouseCursor() * User code may request binding to display given cursor by calling SetMouseCursor(), which is why we have some cursors that are marked unused here */ +@BindingSource public final class ImGuiMouseCursor { private ImGuiMouseCursor() { } - public static final int None = -1; - public static final int Arrow = 0; - /** - * When hovering over InputText, etc. - */ - public static final int TextInput = 1; - /** - * (Unused by Dear ImGui functions) - */ - public static final int ResizeAll = 2; - /** - * When hovering over an horizontal border - */ - public static final int ResizeNS = 3; - /** - * When hovering over a vertical border or a column - */ - public static final int ResizeEW = 4; - /** - * When hovering over the bottom-left corner of a window - */ - public static final int ResizeNESW = 5; - /** - * When hovering over the bottom-right corner of a window - */ - public static final int ResizeNWSE = 6; - /** - * (Unused by Dear ImGui functions. Use for e.g. hyperlinks) - */ - public static final int Hand = 7; - /** - * When hovering something with disallowed interaction. Usually a crossed circle. - */ - public static final int NotAllowed = 8; - public static final int COUNT = 9; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiMouseCursor_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiNavInput.java b/imgui-binding/src/main/java/imgui/flag/ImGuiNavInput.java index 51e7260..04f3ce6 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiNavInput.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiNavInput.java @@ -1,5 +1,8 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Gamepad/Keyboard directional navigation * Keyboard: Set io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard to enable. @@ -9,90 +12,11 @@ package imgui.flag; * Note that io.NavInputs[] is cleared by EndFrame(). * Read instructions in imgui.cpp for more details. Download PNG/PSD at http://dearimgui.org/controls_sheets. */ +@BindingSource public final class ImGuiNavInput { private ImGuiNavInput() { } - /** - * activate / open / toggle / tweak value - * e.g. Cross (PS4), A (Xbox), A (Switch), Space (Keyboard) - */ - public static final int Activate = 0; - /** - * cancel / close / exit - * e.g. Circle (PS4), B (Xbox), B (Switch), Escape (Keyboard) - */ - public static final int Cancel = 1; - /** - * text input / on-screen keyboard - * e.g. Triang.(PS4), Y (Xbox), X (Switch), Return (Keyboard) - */ - public static final int Input = 2; - /** - * tap: toggle menu / hold: focus, move, resize - * e.g. Square (PS4), X (Xbox), Y (Switch), Alt (Keyboard) - */ - public static final int Menu = 3; - /** - * move / tweak / resize window (w/ PadMenu) - * e.g. D-pad Left/Right/Up/Down (Gamepads), Arrow keys (Keyboard) - */ - public static final int DpadLeft = 4; - public static final int DpadRight = 5; - public static final int DpadUp = 6; - public static final int DpadDown = 7; - /** - * scroll / move window (w/ PadMenu) - * e.g. Left Analog Stick Left/Right/Up/Down - */ - public static final int LStickLeft = 8; - public static final int LStickRight = 9; - public static final int LStickUp = 10; - public static final int LStickDown = 11; - /** - * next window (w/ PadMenu) - * e.g. L1 or L2 (PS4), LB or LT (Xbox), L or ZL (Switch) - */ - public static final int FocusPrev = 12; - /** - * prev window (w/ PadMenu) - * e.g. R1 or R2 (PS4), RB or RT (Xbox), R or ZL (Switch) - */ - public static final int FocusNext = 13; - /** - * slower tweaks - * e.g. L1 or L2 (PS4), LB or LT (Xbox), L or ZL (Switch) - */ - public static final int TweakSlow = 14; - /** - * faster tweaks - * e.g. R1 or R2 (PS4), RB or RT (Xbox), R or ZL (Switch) - */ - public static final int TweakFast = 15; - - // [Internal] Don't use directly! This is used internally to differentiate keyboard from gamepad inputs for behaviors that require to differentiate them. - // Keyboard behavior that have no corresponding gamepad mapping (e.g. CTRL+TAB) will be directly reading from io.KeysDown[] instead of io.NavInputs[]. - - /** - * Toggle menu. - */ - public static final int KeyMenu = 16; - /** - * Move left. - */ - public static final int KeyLeft = 17; - /** - * Move right. - */ - public static final int KeyRight = 18; - /** - * Move up. - */ - public static final int KeyUp = 19; - /** - * Move down. - */ - public static final int KeyDown = 20; - - public static final int COUNT = 21; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiNavInput_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiPopupFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiPopupFlags.java index 0691205..6501b1f 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiPopupFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiPopupFlags.java @@ -1,5 +1,8 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Flags for OpenPopup*(), BeginPopupContext*(), IsPopupOpen() functions. * - To be backward compatible with older API which took an 'int mouse_button = 1' argument, we need to treat @@ -8,40 +11,11 @@ package imgui.flag; * - For the same reason, we exceptionally default the ImGuiPopupFlags argument of BeginPopupContextXXX functions to 1 instead of 0. * - Multiple buttons currently cannot be combined/or-ed in those functions (we could allow it later). */ +@BindingSource public final class ImGuiPopupFlags { private ImGuiPopupFlags() { } - public static final int None = 0; - /** - * For BeginPopupContext*(): open on Left Mouse release. Guaranteed to always be == 0 (same as ImGuiMouseButton_Left) - */ - public static final int MouseButtonLeft = 0; - /** - * For BeginPopupContext*(): open on Right Mouse release. Guaranteed to always be == 1 (same as ImGuiMouseButton_Right) - */ - public static final int MouseButtonRight = 1; - /** - * For BeginPopupContext*(): open on Middle Mouse release. Guaranteed to always be == 2 (same as ImGuiMouseButton_Middle) - */ - public static final int MouseButtonMiddle = 2; - public static final int MouseButtonMask = 0x1F; - public static final int MouseButtonDefault = 1; - /** - * For OpenPopup*(), BeginPopupContext*(): don't open if there's already a popup at the same level of the popup stack - */ - public static final int NoOpenOverExistingPopup = 1 << 5; - /** - * For BeginPopupContextWindow(): don't return true when hovering items, only when hovering empty space - */ - public static final int NoOpenOverItems = 1 << 6; - /** - * For IsPopupOpen(): ignore the ImGuiID parameter and test for any popup. - */ - public static final int AnyPopupId = 1 << 7; - /** - * For IsPopupOpen(): search/test at any level of the popup stack (default test in the current level) - */ - public static final int AnyPopupLevel = 1 << 8; - public static final int AnyPopup = AnyPopupId | AnyPopupLevel; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiPopupFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiSelectableFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiSelectableFlags.java index e41797c..0a6b068 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiSelectableFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiSelectableFlags.java @@ -1,31 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Flags for ImGui::Selectable() */ +@BindingSource public final class ImGuiSelectableFlags { private ImGuiSelectableFlags() { } - public static final int None = 0; - /** - * Clicking this don't close parent popup window - */ - public static final int DontClosePopups = 1; - /** - * Selectable frame can span all columns (text will still fit in current column) - */ - public static final int SpanAllColumns = 1 << 1; - /** - * Generate press events on double clicks too - */ - public static final int AllowDoubleClick = 1 << 2; - /** - * Cannot be selected, display grayed out text - */ - public static final int Disabled = 1 << 3; - /** - * (WIP) Hit testing to allow subsequent widgets to overlap this one - */ - public static final int AllowItemOverlap = 1 << 4; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiSelectableFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiSliderFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiSliderFlags.java index 9d965e7..6e974f4 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiSliderFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiSliderFlags.java @@ -1,25 +1,13 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class ImGuiSliderFlags { 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. - */ - public static final int AlwaysClamp = 1 << 4; - /** - * Make the widget logarithmic (linear otherwise). - * Consider using ImGuiSliderFlags_NoRoundToFormat with this if using a format-string with small amount of digits. - */ - public static final int Logarithmic = 1 << 5; - /** - * Disable rounding underlying value to match precision of the display format string (e.g. %.3f values are rounded to those 3 digits). - */ - public static final int NoRoundToFormat = 1 << 6; - /** - * Disable CTRL+Click or Enter key allowing to input text directly into the widget - */ - public static final int NoInput = 1 << 7; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiSliderFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiSortDirection.java b/imgui-binding/src/main/java/imgui/flag/ImGuiSortDirection.java index 4687f32..1e82c7d 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiSortDirection.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiSortDirection.java @@ -1,19 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * A sorting direction */ +@BindingSource public final class ImGuiSortDirection { private ImGuiSortDirection() { } - public static final int None = 0; - /** - * Ascending = {@code 0->9, A->Z} etc. - */ - public static final int Ascending = 1; - /** - * Descending = {@code 9->0, Z->A} etc. - */ - public static final int Descending = 2; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiSortDirection_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiStyleVar.java b/imgui-binding/src/main/java/imgui/flag/ImGuiStyleVar.java index 5d318a8..2e3e223 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiStyleVar.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiStyleVar.java @@ -1,5 +1,8 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Enumeration for PushStyleVar() / PopStyleVar() to temporarily modify the ImGuiStyle structure. * - The enum only refers to fields of ImGuiStyle which makes sense to be pushed/popped inside UI code. @@ -9,109 +12,11 @@ package imgui.flag; * With Visual Assist installed: ALT+G ("VAssistX.GoToImplementation") can also follow symbols in comments. * - When changing this enum, you need to update the associated internal table GStyleVarInfo[] accordingly. This is where we link enum values to members offset/type. */ +@BindingSource public final class ImGuiStyleVar { private ImGuiStyleVar() { } - /** - * float Alpha - */ - public static final int Alpha = 0; - /** - * float DisabledAlpha - */ - public static final int DisabledAlpha = 1; - /** - * ImVec2 WindowPadding - */ - public static final int WindowPadding = 2; - /** - * float WindowRounding - */ - public static final int WindowRounding = 3; - /** - * float WindowBorderSize - */ - public static final int WindowBorderSize = 4; - /** - * ImVec2 WindowMinSize - */ - public static final int WindowMinSize = 5; - /** - * ImVec2 WindowTitleAlign - */ - public static final int WindowTitleAlign = 6; - /** - * float ChildRounding - */ - public static final int ChildRounding = 7; - /** - * float ChildBorderSize - */ - public static final int ChildBorderSize = 8; - /** - * float PopupRounding - */ - public static final int PopupRounding = 9; - /** - * float PopupBorderSize - */ - public static final int PopupBorderSize = 10; - /** - * ImVec2 FramePadding - */ - public static final int FramePadding = 11; - /** - * float FrameRounding - */ - public static final int FrameRounding = 12; - /** - * float FrameBorderSize - */ - public static final int FrameBorderSize = 13; - /** - * ImVec2 ItemSpacing - */ - public static final int ItemSpacing = 14; - /** - * ImVec2 ItemInnerSpacing - */ - public static final int ItemInnerSpacing = 15; - /** - * float IndentSpacing - */ - public static final int IndentSpacing = 16; - /** - * ImVec2 CellPadding - */ - public static final int CellPadding = 17; - /** - * float ScrollbarSize - */ - public static final int ScrollbarSize = 18; - /** - * float ScrollbarRounding - */ - public static final int ScrollbarRounding = 19; - /** - * float GrabMinSize - */ - public static final int GrabMinSize = 20; - /** - * float GrabRounding - */ - public static final int GrabRounding = 21; - /** - * float TabRounding - */ - public static final int TabRounding = 22; - /** - * ImVec2 ButtonTextAlign - */ - public static final int ButtonTextAlign = 23; - /** - * ImVec2 SelectableTextAlign - */ - public static final int SelectableTextAlign = 24; - public static final int COUNT = 25; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiStyleVar_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiTabBarFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiTabBarFlags.java index b73bc94..0ed7958 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiTabBarFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiTabBarFlags.java @@ -1,46 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Flags for ImGui::BeginTabBar() */ +@BindingSource public final class ImGuiTabBarFlags { private ImGuiTabBarFlags() { } - public static final int None = 0; - /** - * Allow manually dragging tabs to re-order them + New tabs are appended at the end of list - */ - public static final int Reorderable = 1; - /** - * Automatically select new tabs when they appear - */ - public static final int AutoSelectNewTabs = 1 << 1; - /** - * Disable buttons to open the tab list popup - */ - public static final int TabListPopupButton = 1 << 2; - /** - * Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. - * You can still repro this behavior on user's side with if (IsItemHovered() {@code &&} IsMouseClicked(2)) *p_open = false. - */ - public static final int NoCloseWithMiddleMouseButton = 1 << 3; - /** - * Disable scrolling buttons (apply when fitting policy is ImGuiTabBarFlags_FittingPolicyScroll) - */ - public static final int NoTabListScrollingButtons = 1 << 4; - /** - * Disable tooltips when hovering a tab - */ - public static final int NoTooltip = 1 << 5; - /** - * Resize tabs when they don't fit - */ - public static final int FittingPolicyResizeDown = 1 << 6; - /** - * Add scroll buttons when tabs don't fit - */ - public static final int FittingPolicyScroll = 1 << 7; - public static final int FittingPolicyMask_ = FittingPolicyResizeDown | FittingPolicyScroll; - public static final int FittingPolicyDefault_ = FittingPolicyResizeDown; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiTabBarFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiTabItemFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiTabItemFlags.java index 3e9863c..30d94c5 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiTabItemFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiTabItemFlags.java @@ -1,45 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Flags for ImGui::BeginTabItem() */ +@BindingSource public final class ImGuiTabItemFlags { private ImGuiTabItemFlags() { } - public static final int None = 0; - /** - * Append '*' to title without affecting the ID, as a convenience to avoid using the ### operator. - * Also: tab is selected on closure and closure is deferred by one frame to allow code to undo it without flicker. - */ - public static final int UnsavedDocument = 1; - /** - * Trigger flag to programmatically make the tab selected when calling BeginTabItem() - */ - public static final int SetSelected = 1 << 1; - /** - * Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. - * You can still repro this behavior on user's side with if (IsItemHovered() {@code &&} IsMouseClicked(2)) *p_open = false. - */ - public static final int NoCloseWithMiddleMouseButton = 1 << 2; - /** - * Don't call PushID(tab.ID)/PopID() on BeginTabItem()/EndTabItem() - */ - public static final int NoPushId = 1 << 3; - /** - * Disable tooltip for the given tab - */ - public static final int NoTooltip = 1 << 4; - /** - * Disable reordering this tab or having another tab cross over this tab - */ - public static final int NoReorder = 1 << 5; - /** - * Enforce the tab position to the left of the tab bar (after the tab list popup button) - */ - public static final int Leading = 1 << 6; - /** - * Enforce the tab position to the right of the tab bar (before the scrolling buttons) - */ - public static final int Trailing = 1 << 7; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiTabItemFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiTableBgTarget.java b/imgui-binding/src/main/java/imgui/flag/ImGuiTableBgTarget.java index 1706be7..5ed465c 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiTableBgTarget.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiTableBgTarget.java @@ -1,5 +1,8 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Enum for ImGui::TableSetBgColor() * Background colors are rendering in 3 layers: @@ -11,21 +14,11 @@ package imgui.flag; * If you set the color of RowBg0 target, your color will override the existing RowBg0 color. * If you set the color of RowBg1 or ColumnBg1 target, your color will blend over the RowBg0 color. */ +@BindingSource public final class ImGuiTableBgTarget { private ImGuiTableBgTarget() { } - public static final int None = 0; - /** - * Set row background color 0 (generally used for background, automatically set when ImGuiTableFlags_RowBg is used) - */ - public static final int RowBg0 = 1; - /** - * Set row background color 1 (generally used for selection marking) - */ - public static final int RowBg1 = 2; - /** - * Set cell background color (top-most color) - */ - public static final int CellBg = 3; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiTableBgTarget_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiTableColumnFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiTableColumnFlags.java index bdb74b0..134848c 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiTableColumnFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiTableColumnFlags.java @@ -1,102 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Flags for {@link imgui.ImGui#tableSetupColumn(String, int)} */ +@BindingSource public final class ImGuiTableColumnFlags { private ImGuiTableColumnFlags() { } - // Input configuration flags - public static final int None = 0; - /** - * Overriding/master disable flag: hide column, won't show in context menu (unlike calling TableSetColumnEnabled() which manipulates the user accessible state) - */ - public static final int Disabled = 1; - /** - * Default as a hidden/disabled column. - */ - public static final int DefaultHide = 1 << 1; - /** - * Default as a sorting column. - */ - public static final int DefaultSort = 1 << 2; - /** - * Column will stretch. Preferable with horizontal scrolling disabled (default if table sizing policy is _SizingStretchSame or _SizingStretchProp). - */ - public static final int WidthStretch = 1 << 3; - /** - * Column will not stretch. Preferable with horizontal scrolling enabled (default if table sizing policy is _SizingFixedFit and table is resizable). - */ - public static final int WidthFixed = 1 << 4; - /** - * Disable manual resizing. - */ - public static final int NoResize = 1 << 5; - /** - * Disable manual reordering this column, this will also prevent other columns from crossing over this column. - */ - public static final int NoReorder = 1 << 6; - /** - * Disable ability to hide/disable this column. - */ - public static final int NoHide = 1 << 7; - /** - * Disable clipping for this column (all NoClip columns will render in a same draw command). - */ - public static final int NoClip = 1 << 8; - /** - * Disable ability to sort on this field (even if ImGuiTableFlags_Sortable is set on the table). - */ - public static final int NoSort = 1 << 9; - /** - * Disable ability to sort in the ascending direction. - */ - public static final int NoSortAscending = 1 << 10; - /** - * Disable ability to sort in the descending direction. - */ - public static final int NoSortDescending = 1 << 11; - /** - * TableHeadersRow() will not submit label for this column. Convenient for some small columns. Name will still appear in context menu. - */ - public static final int NoHeaderLabel = 1 << 12; - /** - * Disable header text width contribution to automatic column width. - */ - public static final int NoHeaderWidth = 1 << 13; - /** - * Make the initial sort direction Ascending when first sorting on this column (default). - */ - public static final int PreferSortAscending = 1 << 14; - /** - * Make the initial sort direction Descending when first sorting on this column. - */ - public static final int PreferSortDescending = 1 << 15; - /** - * Use current Indent value when entering cell (default for column 0). - */ - public static final int IndentEnable = 1 << 16; - /** - * Ignore current Indent value when entering cell (default for columns {@code >} 0). Indentation changes _within_ the cell will still be honored. - */ - public static final int IndentDisable = 1 << 17; - - // Output status flags, read-only via TableGetColumnFlags() - /** - * Status: is enabled == not hidden by user/api (referred to as "Hide" in _DefaultHide and _NoHide) flags. - */ - public static final int IsEnabled = 1 << 24; - /** - * Status: is visible == is enabled AND not clipped by scrolling. - */ - public static final int IsVisible = 1 << 25; - /** - * Status: is currently part of the sort specs - */ - public static final int IsSorted = 1 << 26; - /** - * Status: is hovered by mouse - */ - public static final int IsHovered = 1 << 27; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiTableColumnFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiTableFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiTableFlags.java index ccfa9f6..bc30301 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiTableFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiTableFlags.java @@ -1,5 +1,8 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Flags for ImGui::BeginTable() * [BETA API] API may evolve slightly! If you use this, please update to the next version when it comes out! @@ -25,160 +28,11 @@ package imgui.flag; * If you specify a value for 'inner_width' then effectively the scrolling space is known and Stretch or mixed Fixed/Stretch columns become meaningful again. * - Read on documentation at the top of imgui_tables.cpp for details. */ +@BindingSource public final class ImGuiTableFlags { private ImGuiTableFlags() { } - // Features - public static final int None = 0; - /** - * Enable resizing columns. - */ - public static final int Resizable = 1; - /** - * Enable reordering columns in header row (need calling TableSetupColumn() + TableHeadersRow() to display headers) - */ - public static final int Reorderable = 1 << 1; - /** - * Enable hiding/disabling columns in context menu. - */ - public static final int Hideable = 1 << 2; - /** - * Enable sorting. Call TableGetSortSpecs() to obtain sort specs. Also see SortMulti and SortTristate. - */ - public static final int Sortable = 1 << 3; - /** - * Disable persisting columns order, width and sort settings in the .ini file. - */ - public static final int NoSavedSettings = 1 << 4; - /** - * Right-click on columns body/contents will display table context menu. By default it is available in TableHeadersRow(). - */ - public static final int ContextMenuInBody = 1 << 5; - - // Decorations - /** - * Set each RowBg color with ImGuiCol_TableRowBg or ImGuiCol_TableRowBgAlt (equivalent of calling TableSetBgColor with ImGuiTableBgFlags_RowBg0 on each row manually) - */ - public static final int RowBg = 1 << 6; - /** - * Draw horizontal borders between rows. - */ - public static final int BordersInnerH = 1 << 7; - /** - * Draw horizontal borders at the top and bottom. - */ - public static final int BordersOuterH = 1 << 8; - /** - * Draw vertical borders between columns. - */ - public static final int BordersInnerV = 1 << 9; - /** - * Draw vertical borders on the left and right sides. - */ - public static final int BordersOuterV = 1 << 10; - /** - * Draw horizontal borders. - */ - public static final int BordersH = BordersInnerH | BordersOuterH; - /** - * Draw vertical borders. - */ - public static final int BordersV = BordersInnerV | BordersOuterV; - /** - * Draw inner borders. - */ - public static final int BordersInner = BordersInnerV | BordersInnerH; - /** - * Draw outer borders. - */ - public static final int BordersOuter = BordersOuterV | BordersOuterH; - /** - * Draw all borders. - */ - public static final int Borders = BordersInner | BordersOuter; - /** - * [ALPHA] Disable vertical borders in columns Body (borders will always appears in Headers). {@code ->} May move to style - */ - public static final int NoBordersInBody = 1 << 11; - /** - * [ALPHA] Disable vertical borders in columns Body until hovered for resize (borders will always appears in Headers). {@code ->} May move to style - */ - public static final int NoBordersInBodyUntilResize = 1 << 12; - - // Sizing Policy (read above for defaults) - /** - * Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching contents width. - */ - public static final int SizingFixedFit = 1 << 13; - /** - * Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching the maximum contents width of all columns. Implicitly enable NoKeepColumnsVisible. - */ - public static final int SizingFixedSame = 2 << 13; - /** - * Columns default to _WidthStretch with default weights proportional to each columns contents widths. - */ - public static final int SizingStretchProp = 3 << 13; - /** - * Columns default to _WidthStretch with default weights all equal, unless overriden by TableSetupColumn(). - */ - public static final int SizingStretchSame = 4 << 13; - - // Sizing Extra Options - /** - * Make outer width auto-fit to columns, overriding outer_size.x value. Only available when ScrollX/ScrollY are disabled and Stretch columns are not used. - */ - public static final int NoHostExtendX = 1 << 16; - /** - * Make outer height stop exactly at outer_size.y (prevent auto-extending table past the limit). Only available when ScrollX/ScrollY are disabled. Data below the limit will be clipped and not visible. - */ - public static final int NoHostExtendY = 1 << 17; - /** - * Disable keeping column always minimally visible when ScrollX is off and table gets too small. Not recommended if columns are resizable. - */ - public static final int NoKeepColumnsVisible = 1 << 18; - /** - * Disable distributing remainder width to stretched columns (width allocation on a 100-wide table with 3 columns: Without this flag: 33,33,34. With this flag: 33,33,33). - * With larger number of columns, resizing will appear to be less smooth. - */ - public static final int PreciseWidths = 1 << 19; - - // Clipping - /** - * Disable clipping rectangle for every individual columns (reduce draw command count, items will be able to overflow into other columns). Generally incompatible with TableSetupScrollFreeze(). - */ - public static final int NoClip = 1 << 20; - - // Padding - /** - * Default if BordersOuterV is on. Enable outer-most padding. Generally desirable if you have headers. - */ - public static final int PadOuterX = 1 << 21; - /** - * Default if BordersOuterV is off. Disable outer-most padding. - */ - public static final int NoPadOuterX = 1 << 22; - - public static final int NoPadInnerX = 1 << 23; - - // Scrolling - /** - * Enable horizontal scrolling. Require 'outer_size' parameter of BeginTable() to specify the container size. Changes default sizing policy. - * Because this create a child window, ScrollY is currently generally recommended when using ScrollX. - */ - public static final int ScrollX = 1 << 24; - /** - * Enable vertical scrolling. Require 'outer_size' parameter of BeginTable() to specify the container size. - */ - public static final int ScrollY = 1 << 25; - - // Sorting - /** - * Hold shift when clicking headers to sort on multiple column. TableGetSortSpecs() may return specs where (SpecsCount {@code >} 1). - */ - public static final int SortMulti = 1 << 26; - /** - * Allow no sorting, disable default sorting. TableGetSortSpecs() may return specs where (SpecsCount == 0). - */ - public static final int SortTristate = 1 << 27; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiTableFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiTableRowFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiTableRowFlags.java index 1e86ace..74e56eb 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiTableRowFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiTableRowFlags.java @@ -1,15 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Flags for {@link imgui.ImGui#tableNextRow(int)} */ +@BindingSource public final class ImGuiTableRowFlags { private ImGuiTableRowFlags() { } - public static final int None = 0; - /** - * Identify header row (set default background color + width of its contents accounted different for auto column width) - */ - public static final int Headers = 1; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiTableRowFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiTreeNodeFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiTreeNodeFlags.java index 9c6199b..25dfb30 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiTreeNodeFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiTreeNodeFlags.java @@ -1,71 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Flags for ImGui::TreeNodeEx(), ImGui::CollapsingHeader*() */ +@BindingSource public final class ImGuiTreeNodeFlags { private ImGuiTreeNodeFlags() { } - public static final int None = 0; - /** - * Draw as selected - */ - public static final int Selected = 1; - /** - * Full colored frame (e.g. for CollapsingHeader) - */ - public static final int Framed = 1 << 1; - /** - * Hit testing to allow subsequent widgets to overlap this one - */ - public static final int AllowItemOverlap = 1 << 2; - /** - * Don't do a TreePush() when open (e.g. for CollapsingHeader) = no extra indent nor pushing on ID stack - */ - public static final int NoTreePushOnOpen = 1 << 3; - /** - * Don't automatically and temporarily open node when Logging is active (by default logging will automatically open tree nodes) - */ - public static final int NoAutoOpenOnLog = 1 << 4; - /** - * Default node to be open - */ - public static final int DefaultOpen = 1 << 5; - /** - * Need double-click to open node - */ - public static final int OpenOnDoubleClick = 1 << 6; - /** - * Only open when clicking on the arrow part. If ImGuiTreeNodeFlags_OpenOnDoubleClick is also set, single-click arrow or double-click all box to open. - */ - public static final int OpenOnArrow = 1 << 7; - /** - * No collapsing, no arrow (use as a convenience for leaf nodes). - */ - public static final int Leaf = 1 << 8; - /** - * Display a bullet instead of arrow - */ - public static final int Bullet = 1 << 9; - /** - * Use FramePadding (even for an unframed text node) to vertically align text baseline to regular widget height. Equivalent to calling AlignTextToFramePadding(). - */ - public static final int FramePadding = 1 << 10; - /** - * Extend hit box to the right-most edge, even if not framed. - * This is not the default in order to allow adding other items on the same line. - * In the future we may refactor the hit system to be front-to-back, allowing natural overlaps and then this can become the default. - */ - public static final int SpanAvailWidth = 1 << 11; - /** - * Extend hit box to the left-most and right-most edges (bypass the indented area). - */ - public static final int SpanFullWidth = 1 << 12; - /** - * (WIP) Nav: left direction may move to this TreeNode() from any of its child (items submitted between TreeNode and TreePop) - */ - public static final int NavLeftJumpsBackHere = 1 << 13; - //ImGuiTreeNodeFlags_NoScrollOnOpen = 1 << 14; // FIXME: TODO: Disable automatic scroll on TreePop() if node got just open and contents is not visible - public static final int CollapsingHeader = Framed | NoTreePushOnOpen | NoAutoOpenOnLog; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiTreeNodeFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiViewportFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiViewportFlags.java index c243ed3..320cb41 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiViewportFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiViewportFlags.java @@ -1,66 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Flags stored in ImGuiViewport::Flags, giving indications to the platform backends. */ +@BindingSource public final class ImGuiViewportFlags { private ImGuiViewportFlags() { } - public static final int None = 0; - /** - * Represent a Platform Window. - */ - public static final int IsPlatformWindow = 1; - /** - * Represent a Platform Monitor (unused yet) - */ - public static final int IsPlatformMonitor = 1 << 1; - /** - * Platform Window: is created/managed by the application (rather than a dear imgui backend) - */ - public static final int OwnedByApp = 1 << 2; - /** - * Platform Window: Disable platform decorations: title bar, borders, etc. - * (generally set all windows, but if ImGuiConfigFlags_ViewportsDecoration is set we only set this on popups/tooltips) - */ - public static final int NoDecoration = 1 << 3; - /** - * Platform Window: Disable platform task bar icon (generally set on popups/tooltips, or all windows if ImGuiConfigFlags_ViewportsNoTaskBarIcon is set) - */ - public static final int NoTaskBarIcon = 1 << 4; - /** - * Platform Window: Don't take focus when created. - */ - public static final int NoFocusOnAppearing = 1 << 5; - /** - * Platform Window: Don't take focus when clicked on. - */ - public static final int NoFocusOnClick = 1 << 6; - /** - * Platform Window: Make mouse pass through so we can drag this window while peaking behind it. - */ - public static final int NoInputs = 1 << 7; - /** - * Platform Window: Renderer doesn't need to clear the framebuffer ahead (because we will fill it entirely). - */ - public static final int NoRendererClear = 1 << 8; - /** - * Platform Window: Display on top (for tooltips only). - */ - public static final int TopMost = 1 << 9; - /** - * Platform Window: Window is minimized, can skip render. - * When minimized we tend to avoid using the viewport pos/size for clipping window or testing if they are contained in the viewport. - */ - public static final int Minimized = 1 << 10; - /** - * Platform Window: Avoid merging this window into another host window. - * This can only be set via ImGuiWindowClass viewport flags override (because we need to now ahead if we are going to create a viewport in the first place!). - */ - public static final int NoAutoMerge = 1 << 11; - /** - * Main viewport: can host multiple imgui windows (secondary viewports are associated to a single window). - */ - public static final int CanHostOtherWindows = 1 << 12; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiViewportFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/flag/ImGuiWindowFlags.java b/imgui-binding/src/main/java/imgui/flag/ImGuiWindowFlags.java index 43ed8d7..74440bd 100644 --- a/imgui-binding/src/main/java/imgui/flag/ImGuiWindowFlags.java +++ b/imgui-binding/src/main/java/imgui/flag/ImGuiWindowFlags.java @@ -1,95 +1,16 @@ package imgui.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Flags for ImGui::Begin() */ +@BindingSource public final class ImGuiWindowFlags { private ImGuiWindowFlags() { } - public static final int None = 0; - public static final int NoTitleBar = 1; - /** - * Disable user resizing with the lower-right grip - */ - public static final int NoResize = 1 << 1; - /** - * Disable user moving the window - */ - public static final int NoMove = 1 << 2; - /** - * Disable scrollbars (window can still scroll with mouse or programmatically) - */ - public static final int NoScrollbar = 1 << 3; - /** - * Disable user vertically scrolling with mouse wheel. On child window, mouse wheel will be forwarded to the parent unless NoScrollbar is also set. - */ - public static final int NoScrollWithMouse = 1 << 4; - /** - * Disable user collapsing window by double-clicking on it - */ - public static final int NoCollapse = 1 << 5; - /** - * Resize every window to its content every frame - */ - public static final int AlwaysAutoResize = 1 << 6; - /** - * Disable drawing background color (WindowBg, etc.) and outside border. Similar as using SetNextWindowBgAlpha(0.0f). - */ - public static final int NoBackground = 1 << 7; - /** - * Never load/save settings in .ini file - */ - public static final int NoSavedSettings = 1 << 8; - /** - * Disable catching mouse, hovering test with pass through. - */ - public static final int NoMouseInputs = 1 << 9; - /** - * Has a menu-bar - */ - public static final int MenuBar = 1 << 10; - /** - * Allow horizontal scrollbar to appear (off by default). You may use SetNextWindowContentSize(ImVec2(width,0.0f)); prior to calling Begin() to specify width. Read code in imgui_demo in the "Horizontal Scrolling" section. - */ - public static final int HorizontalScrollbar = 1 << 11; - /** - * Disable taking focus when transitioning from hidden to visible state - */ - public static final int NoFocusOnAppearing = 1 << 12; - /** - * Disable bringing window to front when taking focus (e.g. clicking on it or programmatically giving it focus) - */ - public static final int NoBringToFrontOnFocus = 1 << 13; - /** - * Always show vertical scrollbar (even if ContentSize.y {@code <} Size.y) - */ - public static final int AlwaysVerticalScrollbar = 1 << 14; - /** - * Always show horizontal scrollbar (even if ContentSize.x {@code <} Size.x) - */ - public static final int AlwaysHorizontalScrollbar = 1 << 15; - /** - * Ensure child windows without border uses style.WindowPadding (ignored by default for non-bordered child windows, because more convenient) - */ - public static final int AlwaysUseWindowPadding = 1 << 16; - /** - * No gamepad/keyboard navigation within the window - */ - public static final int NoNavInputs = 1 << 17; - /** - * No focusing toward this window with gamepad/keyboard navigation (e.g. skipped by CTRL+TAB) - */ - public static final int NoNavFocus = 1 << 18; - /** - * Append '*' to title without affecting the ID, as a convenience to avoid using the ### operator. When used in a tab/docking context, tab is selected on closure and closure is deferred by one frame to allow code to cancel the closure (with a confirmation popup, etc.) without flicker. - */ - public static final int UnsavedDocument = 1 << 20; - /** - * Disable docking of this window - */ - public static final int NoDocking = 1 << 21; - public static final int NoNav = NoNavInputs | NoNavFocus; - public static final int NoDecoration = NoTitleBar | NoResize | NoScrollbar | NoCollapse; - public static final int NoInputs = NoMouseInputs | NoNavInputs | NoNavFocus; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiWindowFlags_") + 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 a29db22..cc595ac 100644 --- a/imgui-binding/src/main/java/imgui/internal/ImGui.java +++ b/imgui-binding/src/main/java/imgui/internal/ImGui.java @@ -1,46 +1,41 @@ package imgui.internal; import imgui.ImVec2; +import imgui.binding.annotation.ArgValue; +import imgui.binding.annotation.BindingMethod; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.OptArg; import imgui.type.ImFloat; import imgui.type.ImInt; +@BindingSource public final class ImGui extends imgui.ImGui { - private static final ImGuiDockNode DOCK_NODE = new ImGuiDockNode(0); - - private static final ImGuiWindow IMGUI_CURRENT_WINDOW = new ImGuiWindow(0); - /*JNI #include "_common.h" - #include + #include "_internal.h" */ + static { + nInit(); + } + + public static void init() { + } + + private static native void nInit(); /* + Jni::InitInternal(env); + */ + // Basic Helpers for widget code - public static ImVec2 calcItemSize(float sizeX, float sizeY, float defaultW, float defaultH) { - final ImVec2 value = new ImVec2(); - calcItemSize(sizeX, sizeY, defaultW, defaultH, value); - return value; - } + @BindingMethod + public static native ImVec2 CalcItemSize(ImVec2 size, float defaultW, float defaultH); - public static native void calcItemSize(float sizeX, float sizeY, float defaultW, float defaultH, ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, ImGui::CalcItemSize(ImVec2(sizeX, sizeY), defaultW, defaultH), dstImVec2); - */ + @BindingMethod + public static native void PushItemFlag(int imGuiItemFlags, boolean enabled); - public static native float calcItemSizeX(float sizeX, float sizeY, float defaultW, float defaultH); /* - return ImGui::CalcItemSize(ImVec2(sizeX, sizeY), defaultW, defaultH).x; - */ - - public static native float calcItemSizeY(float sizeX, float sizeY, float defaultW, float defaultH); /* - return ImGui::CalcItemSize(ImVec2(sizeX, sizeY), defaultW, defaultH).y; - */ - - public static native void pushItemFlag(int imGuiItemFlags, boolean enabled); /* - ImGui::PushItemFlag(imGuiItemFlags, enabled); - */ - - public static native void popItemFlag(); /* - ImGui::PopItemFlag(); - */ + @BindingMethod + public static native void PopItemFlag(); // Docking - Builder function needs to be generally called before the node is used/submitted. // - The DockBuilderXXX functions are designed to _eventually_ become a public API, but it is too early to expose it and guarantee stability. @@ -52,147 +47,61 @@ public final class ImGui extends imgui.ImGui { // to call DockBuilderSetNodeSize() beforehand. If you don't, the resulting split sizes may not be reliable. // - Call DockBuilderFinish() after you are done. - public static native void dockBuilderDockWindow(String windowName, int nodeId); /* - ImGui::DockBuilderDockWindow(windowName, nodeId); - */ + @BindingMethod + public static native void DockBuilderDockWindow(String windowName, int nodeId); - public static ImGuiDockNode dockBuilderGetNode(final int nodeId) { - DOCK_NODE.ptr = nDockBuilderGetNode(nodeId); - return DOCK_NODE; - } + @BindingMethod + public static native ImGuiDockNode DockBuilderGetNode(final int nodeId); - private static native long nDockBuilderGetNode(int nodeId); /* - return (intptr_t)ImGui::DockBuilderGetNode(nodeId); - */ + @BindingMethod + public static native ImGuiDockNode DockBuilderGetCentralNode(final int nodeId); - public static ImGuiDockNode dockBuilderGetCentralNode(final int nodeId) { - DOCK_NODE.ptr = nDockBuilderGetCentralNode(nodeId); - return DOCK_NODE; - } - - private static native long nDockBuilderGetCentralNode(int nodeId); /* - return (intptr_t)ImGui::DockBuilderGetCentralNode(nodeId); - */ - - public static native int dockBuilderAddNode(); /* - return ImGui::DockBuilderAddNode(); - */ - - public static native int dockBuilderAddNode(int nodeId); /* - return ImGui::DockBuilderAddNode(nodeId); - */ - - public static native int dockBuilderAddNode(int nodeId, int flags); /* - return ImGui::DockBuilderAddNode(nodeId, flags); - */ + @BindingMethod + public static native int DockBuilderAddNode(@OptArg int nodeId, @OptArg int flags); /** * Remove node and all its child, undock all windows. */ - public static native void dockBuilderRemoveNode(int nodeId); /* - ImGui::DockBuilderRemoveNode(nodeId); - */ + @BindingMethod + public static native void DockBuilderRemoveNode(int nodeId); - public static native void dockBuilderRemoveNodeDockedWindows(int nodeId); /* - ImGui::DockBuilderRemoveNodeDockedWindows(nodeId); - */ - - public static native void dockBuilderRemoveNodeDockedWindows(int nodeId, boolean clearSettingsRefs); /* - ImGui::DockBuilderRemoveNodeDockedWindows(nodeId, clearSettingsRefs); - */ + @BindingMethod + public static native void DockBuilderRemoveNodeDockedWindows(int nodeId, @OptArg boolean clearSettingsRefs); /** * Remove all split/hierarchy. All remaining docked windows will be re-docked to the remaining root node (node_id). */ - public static native void dockBuilderRemoveNodeChildNodes(int nodeId); /* - ImGui::DockBuilderRemoveNodeChildNodes(nodeId); - */ + @BindingMethod + public static native void DockBuilderRemoveNodeChildNodes(int nodeId); - public static native void dockBuilderSetNodePos(int nodeId, float posX, float posY); /* - ImGui::DockBuilderSetNodePos(nodeId, ImVec2(posX, posY)); - */ + @BindingMethod + public static native void DockBuilderSetNodePos(int nodeId, ImVec2 pos); - public static native void dockBuilderSetNodeSize(int nodeId, float sizeX, float sizeY); /* - ImGui::DockBuilderSetNodeSize(nodeId, ImVec2(sizeX, sizeY)); - */ + @BindingMethod + public static native void DockBuilderSetNodeSize(int nodeId, ImVec2 size); /** * Create 2 child nodes in this parent node. */ - public static int dockBuilderSplitNode(int nodeId, int splitDir, float sizeRatioForNodeAtDir, ImInt outIdAtDir, ImInt outIdAtOppositeDir) { - if (outIdAtDir == null && outIdAtOppositeDir != null) { - return nDockBuilderSplitNode(nodeId, splitDir, sizeRatioForNodeAtDir, 0, outIdAtOppositeDir.getData()); - } else if (outIdAtDir != null && outIdAtOppositeDir == null) { - return nDockBuilderSplitNode(nodeId, splitDir, sizeRatioForNodeAtDir, outIdAtDir.getData()); - } else if (outIdAtDir != null) { - return nDockBuilderSplitNode(nodeId, splitDir, sizeRatioForNodeAtDir, outIdAtDir.getData(), outIdAtOppositeDir.getData()); - } else { - return nDockBuilderSplitNode(nodeId, splitDir, sizeRatioForNodeAtDir); - } - } - - private static native int nDockBuilderSplitNode(int nodeId, int splitDir, float sizeRatioForNodeAtDir, int[] outIdAtDir, int[] outIdAtOppositeDir); /* - return ImGui::DockBuilderSplitNode(nodeId, splitDir, sizeRatioForNodeAtDir, (ImGuiID*)&outIdAtDir[0], (ImGuiID*)&outIdAtOppositeDir[0]); - */ - - private static native int nDockBuilderSplitNode(int nodeId, int splitDir, float sizeRatioForNodeAtDir); /* - return ImGui::DockBuilderSplitNode(nodeId, splitDir, sizeRatioForNodeAtDir, NULL, NULL); - */ - - private static native int nDockBuilderSplitNode(int nodeId, int splitDir, float sizeRatioForNodeAtDir, int[] outIdAtDir); /* - return ImGui::DockBuilderSplitNode(nodeId, splitDir, sizeRatioForNodeAtDir, (ImGuiID*)&outIdAtDir[0], NULL); - */ - - private static native int nDockBuilderSplitNode(int nodeId, int splitDir, float sizeRatioForNodeAtDir, int o, int[] outIdAtOppositeDir); /* - return ImGui::DockBuilderSplitNode(nodeId, splitDir, sizeRatioForNodeAtDir, NULL, (ImGuiID*)&outIdAtOppositeDir[0]); - */ + @BindingMethod + public static native int DockBuilderSplitNode(int nodeId, int splitDir, float sizeRatioForNodeAtDir, @ArgValue(reinterpretCast = "ImGuiID*") ImInt outIdAtDir, @ArgValue(reinterpretCast = "ImGuiID*") ImInt outIdAtOppositeDir); // TODO DockBuilderCopyDockSpace, DockBuilderCopyNode - public static native void dockBuilderCopyWindowSettings(String srcName, String dstName); /* - ImGui::DockBuilderCopyWindowSettings(srcName, dstName); - */ + @BindingMethod + public static native void DockBuilderCopyWindowSettings(String srcName, String dstName); - public static native void dockBuilderFinish(int nodeId); /* - ImGui::DockBuilderFinish(nodeId); - */ + @BindingMethod + public static native void DockBuilderFinish(int nodeId); // Widgets low-level behaviors - public static boolean splitterBehavior(float bbMinX, float bbMinY, float bbMaxX, float bbMaxY, int id, int imGuiAxis, ImFloat size1, ImFloat size2, float minSize1, float minSize2) { - return splitterBehavior(bbMinX, bbMinY, bbMaxX, bbMaxY, id, imGuiAxis, size1, size2, minSize1, minSize2, 0, 0, 0); - } + @BindingMethod + public static native boolean SplitterBehavior(ImRect bb, int id, @ArgValue(staticCast = "ImGuiAxis") int axis, ImFloat size1, ImFloat size2, float minSize1, float minSize2, @OptArg float hoverExtend, @OptArg float hoverVisibilityDelay, @OptArg int bgCol); - public static boolean splitterBehavior(float bbMinX, float bbMinY, float bbMaxX, float bbMaxY, int id, int imGuiAxis, ImFloat size1, ImFloat size2, float minSize1, float minSize2, float hoverExtend) { - return splitterBehavior(bbMinX, bbMinY, bbMaxX, bbMaxY, id, imGuiAxis, size1, size2, minSize1, minSize2, hoverExtend, 0, 0); - } + @BindingMethod + public static native ImGuiWindow GetCurrentWindow(); - public static boolean splitterBehavior(float bbMinX, float bbMinY, float bbMaxX, float bbMaxY, int id, int imGuiAxis, ImFloat size1, ImFloat size2, float minSize1, float minSize2, float hoverExtend, float hoverVisibilityDelay, int bgCol) { - return nSplitterBehaviour(bbMinX, bbMinY, bbMaxX, bbMaxY, id, imGuiAxis, size1.getData(), size2.getData(), minSize1, minSize2, hoverExtend, hoverVisibilityDelay, bgCol); - } - - private static native boolean nSplitterBehaviour(float bbMinX, float bbMinY, float bbMaxX, float bbMaxY, int id, int imGuiAxis, float[] size1, float[] size2, float minSize1, float minSize2, float hoverExtend, float hoverVisibilityDelay, int bgCol); /* - return ImGui::SplitterBehavior(ImRect(bbMinX, bbMinY, bbMaxX, bbMaxY), id, (ImGuiAxis)imGuiAxis, &size1[0], &size2[0], minSize1, minSize2, hoverExtend, hoverVisibilityDelay, bgCol); - */ - - public static ImGuiWindow getCurrentWindow() { - IMGUI_CURRENT_WINDOW.ptr = nGetCurrentWindow(); - return IMGUI_CURRENT_WINDOW; - } - - private static native long nGetCurrentWindow(); /* - return (intptr_t)ImGui::GetCurrentWindow(); - */ - - public static ImRect getWindowScrollbarRect(final ImGuiWindow imGuiWindow, int axis) { - final ImRect imRect = new ImRect(); - nGetWindowScrollbarRect(imGuiWindow.ptr, axis, imRect.min, imRect.max); - return imRect; - } - - private static native void nGetWindowScrollbarRect(long windowPtr, int axis, ImVec2 minDstImVec2, ImVec2 maxDstImVec2); /* - ImRect rect = ImGui::GetWindowScrollbarRect((ImGuiWindow*)windowPtr, static_cast(axis)); - Jni::ImVec2Cpy(env, &rect.Min, minDstImVec2); - Jni::ImVec2Cpy(env, &rect.Max, maxDstImVec2); - */ + @BindingMethod + public static native ImRect GetWindowScrollbarRect(ImGuiWindow imGuiWindow, @ArgValue(staticCast = "ImGuiAxis") int axis); } diff --git a/imgui-binding/src/main/java/imgui/internal/ImGuiContext.java b/imgui-binding/src/main/java/imgui/internal/ImGuiContext.java index 0a0712c..2176344 100644 --- a/imgui-binding/src/main/java/imgui/internal/ImGuiContext.java +++ b/imgui-binding/src/main/java/imgui/internal/ImGuiContext.java @@ -5,5 +5,6 @@ import imgui.binding.ImGuiStruct; public class ImGuiContext extends ImGuiStruct { public ImGuiContext(final long ptr) { super(ptr); + ImGui.init(); } } diff --git a/imgui-binding/src/main/java/imgui/internal/ImGuiDockNode.java b/imgui-binding/src/main/java/imgui/internal/ImGuiDockNode.java index 4ae1f38..11c0ae5 100644 --- a/imgui-binding/src/main/java/imgui/internal/ImGuiDockNode.java +++ b/imgui-binding/src/main/java/imgui/internal/ImGuiDockNode.java @@ -3,150 +3,65 @@ package imgui.internal; import imgui.ImGuiWindowClass; import imgui.ImVec2; import imgui.binding.ImGuiStruct; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingMethod; +import imgui.binding.annotation.BindingSource; +import imgui.binding.annotation.ReturnValue; +@BindingSource public final class ImGuiDockNode extends ImGuiStruct { - private static final ImGuiDockNode PARENT_NODE = new ImGuiDockNode(0); - private static final ImGuiDockNode CHILD_NODE_FIRST = new ImGuiDockNode(0); - private static final ImGuiDockNode CHILD_NODE_SECOND = new ImGuiDockNode(0); - private static final ImGuiWindowClass WINDOW_CLASS = new ImGuiWindowClass(0); - private static final ImGuiDockNode CENTRAL_NODE = new ImGuiDockNode(0); - private static final ImGuiDockNode ONLY_NODE_WITH_WINDOWS = new ImGuiDockNode(0); - private static final ImRect RECT = new ImRect(); - public ImGuiDockNode(final long ptr) { super(ptr); + ImGui.init(); } /*JNI #include "_common.h" - #include - - #define IMGUI_DOCK_NODE ((ImGuiDockNode*)STRUCT_PTR) + #include "_internal.h" + #define THIS ((ImGuiDockNode*)STRUCT_PTR) */ - public native int getID(); /* - return IMGUI_DOCK_NODE->ID; - */ - - - public native void setID(int imGuiID); /* - IMGUI_DOCK_NODE->ID = imGuiID; - */ + @BindingField + public int ID; /** * Flags shared by all nodes of a same dockspace hierarchy (inherited from the root node) */ - public native int getSharedFlags(); /* - return IMGUI_DOCK_NODE->SharedFlags; - */ - - /** - * Flags shared by all nodes of a same dockspace hierarchy (inherited from the root node) - */ - public native void setSharedFlags(int sharedFlags); /* - IMGUI_DOCK_NODE->SharedFlags = sharedFlags; - */ - - /** - * Flags shared by all nodes of a same dockspace hierarchy (inherited from the root node) - */ - public void addSharedFlags(final int flags) { - setSharedFlags(getSharedFlags() | flags); - } - - /** - * Flags shared by all nodes of a same dockspace hierarchy (inherited from the root node) - */ - public void removeSharedFlags(final int flags) { - setSharedFlags(getSharedFlags() & ~(flags)); - } + @BindingField(isFlag = true) + public int SharedFlags; /** * Flags specific to this node */ - public native int getLocalFlags(); /* - return IMGUI_DOCK_NODE->LocalFlags; - */ - - /** - * Flags specific to this node - */ - public native void setLocalFlags(int flags); /* - IMGUI_DOCK_NODE->SetLocalFlags(flags); - */ - - /** - * Flags specific to this node - */ - public void addLocalFlags(final int flags) { - setLocalFlags(getLocalFlags() | flags); - } - - /** - * Flags specific to this node - */ - public void removeLocalFlags(final int flags) { - setLocalFlags(getLocalFlags() & ~(flags)); - } - /** - * Flags specific to this node, applied from windows - */ - public native int getLocalFlagsInWindows(); /* - return IMGUI_DOCK_NODE->LocalFlagsInWindows; - */ + @BindingField(isFlag = true) + public int LocalFlags; /** * Flags specific to this node, applied from windows */ - public native void setLocalFlagsInWindows(int flags); /* - IMGUI_DOCK_NODE->LocalFlagsInWindows = flags; - */ + @BindingField(isFlag = true) + public int LocalFlagsInWindows; /** - * Flags specific to this node, applied from windows + * Effective flags (== SharedFlags | LocalFlagsInNode | LocalFlagsInWindows) */ - public void addLocalFlagsInWindows(final int flags) { - setLocalFlagsInWindows(getLocalFlagsInWindows() | flags); - } + @BindingField(isFlag = true, accessors = BindingField.Accessor.GETTER) + public int MergedFlags; - /** - * Flags specific to this node, applied from windows - */ - public void removeLocalFlagsInWindows(final int flags) { - setLocalFlagsInWindows(getLocalFlagsInWindows() & ~(flags)); - } + // TODO: State - public native int getMergedFlags(); /* - return IMGUI_DOCK_NODE->MergedFlags; - */ - - public ImGuiDockNode getParentNode() { - PARENT_NODE.ptr = nGetParentNode(); - return PARENT_NODE; - } - - private native long nGetParentNode(); /* - return (intptr_t)IMGUI_DOCK_NODE->ParentNode; - */ - - public void setParentNode(final ImGuiDockNode imGuiDockNode) { - nSetParentNode(imGuiDockNode.ptr); - } - - private native void nSetParentNode(long imGuiDockNodePtr); /* - IMGUI_DOCK_NODE->ParentNode = (ImGuiDockNode*)imGuiDockNodePtr; - */ + @BindingField + public ImGuiDockNode ParentNode; /** * [Split node only] Child nodes (left/right or top/bottom). Consider switching to an array. */ public ImGuiDockNode getChildNodeFirst() { - CHILD_NODE_FIRST.ptr = nGetChildNodeFirst(); - return CHILD_NODE_FIRST; + return new ImGuiDockNode(nGetChildNodeFirst()); } private native long nGetChildNodeFirst(); /* - return (intptr_t)IMGUI_DOCK_NODE->ChildNodes[0]; + return (intptr_t)THIS->ChildNodes[0]; */ /** @@ -157,19 +72,18 @@ public final class ImGuiDockNode extends ImGuiStruct { } private native void nSetChildNodeFirst(long imGuiDockNodePtr); /* - IMGUI_DOCK_NODE->ChildNodes[0] = (ImGuiDockNode*)imGuiDockNodePtr; + THIS->ChildNodes[0] = (ImGuiDockNode*)imGuiDockNodePtr; */ /** * [Split node only] Child nodes (left/right or top/bottom). Consider switching to an array. */ public ImGuiDockNode getChildNodeSecond() { - CHILD_NODE_SECOND.ptr = nGetChildNodeSecond(); - return CHILD_NODE_SECOND; + return new ImGuiDockNode(nGetChildNodeSecond()); } private native long nGetChildNodeSecond(); /* - return (intptr_t)IMGUI_DOCK_NODE->ChildNodes[1]; + return (intptr_t)THIS->ChildNodes[1]; */ /** @@ -180,493 +94,190 @@ public final class ImGuiDockNode extends ImGuiStruct { } private native void nSetChildNodeSecond(long imGuiDockNodePtr); /* - IMGUI_DOCK_NODE->ChildNodes[1] = (ImGuiDockNode*)imGuiDockNodePtr; + THIS->ChildNodes[1] = (ImGuiDockNode*)imGuiDockNodePtr; */ // TODO Windows, TabBar - /** - * [Root node only] - */ - public ImGuiWindowClass getWindowClass() { - WINDOW_CLASS.ptr = nGetWindowClass(); - return WINDOW_CLASS; - } - - /** - * [Root node only] - */ - private native long nGetWindowClass(); /* - return (intptr_t)&IMGUI_DOCK_NODE->WindowClass; - */ - - /** - * [Root node only] - */ - public void setWindowClass(final ImGuiWindowClass imGuiWindowClass) { - nSetWindowClass(imGuiWindowClass.ptr); - } - - /** - * [Root node only] - */ - private native void nSetWindowClass(long imGuiWindowClassPtr); /* - IMGUI_DOCK_NODE->WindowClass = *((ImGuiWindowClass*)imGuiWindowClassPtr); - */ - /** * Current position */ - public ImVec2 getPos() { - final ImVec2 value = new ImVec2(); - getPos(value); - return value; - } - - /** - * Current position - */ - public native void getPos(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IMGUI_DOCK_NODE->Pos, dstImVec2); - */ - - /** - * Current position - */ - public native float getPosX(); /* - return IMGUI_DOCK_NODE->Pos.x; - */ - - /** - * Current position - */ - public native float getPosY(); /* - return IMGUI_DOCK_NODE->Pos.y; - */ - - /** - * Current position - */ - public native void setPos(float x, float y); /* - IMGUI_DOCK_NODE->Pos.x = x; - IMGUI_DOCK_NODE->Pos.y = y; - */ + @BindingField + public ImVec2 Pos; /** * Current size */ - public ImVec2 getSize() { - final ImVec2 value = new ImVec2(); - getSize(value); - return value; - } - - /** - * Current size - */ - public native void getSize(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IMGUI_DOCK_NODE->Size, dstImVec2); - */ - - /** - * Current size - */ - public native float getSizeX(); /* - return IMGUI_DOCK_NODE->Size.x; - */ - - /** - * Current size - */ - public native float getSizeY(); /* - return IMGUI_DOCK_NODE->Size.y; - */ - - /** - * Current size - */ - public native void setSize(float x, float y); /* - IMGUI_DOCK_NODE->Size.x = x; - IMGUI_DOCK_NODE->Size.y = y; - */ + @BindingField + public ImVec2 Size; /** * [Split node only] Last explicitly written-to size (overridden when using a splitter affecting the node), used to calculate Size. */ - public ImVec2 getSizeRef() { - final ImVec2 value = new ImVec2(); - getSizeRef(value); - return value; - } - - /** - * [Split node only] Last explicitly written-to size (overridden when using a splitter affecting the node), used to calculate Size. - */ - public native void getSizeRef(ImVec2 dstImVec2); /* - Jni::ImVec2Cpy(env, &IMGUI_DOCK_NODE->SizeRef, dstImVec2); - */ - - /** - * [Split node only] Last explicitly written-to size (overridden when using a splitter affecting the node), used to calculate Size. - */ - public native float getSizeRefX(); /* - return IMGUI_DOCK_NODE->SizeRef.x; - */ - - /** - * [Split node only] Last explicitly written-to size (overridden when using a splitter affecting the node), used to calculate Size. - */ - public native float getSizeRefY(); /* - return IMGUI_DOCK_NODE->SizeRef.y; - */ - - /** - * [Split node only] Last explicitly written-to size (overridden when using a splitter affecting the node), used to calculate Size. - */ - public native void setSizeRef(float x, float y); /* - IMGUI_DOCK_NODE->SizeRef.x = x; - IMGUI_DOCK_NODE->SizeRef.y = y; - */ + @BindingField + public ImVec2 SizeRef; /** * [Split node only] Split axis (X or Y) */ - public native int getSplitAxis(); /* - return IMGUI_DOCK_NODE->SplitAxis; - */ + @BindingField(accessors = BindingField.Accessor.GETTER) + public int SplitAxis; /** - * [Split node only] Split axis (X or Y) + * [Root node only] */ - public native void setSplitAxis(int splitAxis); /* - IMGUI_DOCK_NODE->SplitAxis = (ImGuiAxis)splitAxis; - */ + @BindingField(accessors = BindingField.Accessor.GETTER) + @ReturnValue(callPrefix = "&") + public ImGuiWindowClass WindowClass; + @BindingField + public int LastBgColor; - public native int getState(); /* - return IMGUI_DOCK_NODE->State; - */ + @BindingField + public ImGuiWindow HostWindow; - - public native void setState(int state); /* - IMGUI_DOCK_NODE->State = (ImGuiDockNodeState)state; - */ - - // TODO HostWindow, VisibleWindow + /** + * Generally point to window which is ID is == SelectedTabID, but when CTRL+Tabbing this can be a different window. + */ + @BindingField + public ImGuiWindow VisibleWindow; /** * [Root node only] Pointer to central node. */ - public ImGuiDockNode getCentralNode() { - CENTRAL_NODE.ptr = nGetCentralNode(); - return PARENT_NODE; - } - - private native long nGetCentralNode(); /* - return (intptr_t)IMGUI_DOCK_NODE->CentralNode; - */ - - /** - * [Root node only] Pointer to central node. - */ - public void setCentralNode(final ImGuiDockNode imGuiDockNode) { - nSetCentralNode(imGuiDockNode.ptr); - } - - private native void nSetCentralNode(long imGuiDockNodePtr); /* - IMGUI_DOCK_NODE->CentralNode = (ImGuiDockNode*)imGuiDockNodePtr; - */ + @BindingField + public ImGuiDockNode CentralNode; /** * [Root node only] Set when there is a single visible node within the hierarchy. */ - public ImGuiDockNode getOnlyNodeWithWindows() { - ONLY_NODE_WITH_WINDOWS.ptr = nGetOnlyNodeWithWindows(); - return PARENT_NODE; - } - - private native long nGetOnlyNodeWithWindows(); /* - return (intptr_t)IMGUI_DOCK_NODE->OnlyNodeWithWindows; - */ - - /** - * [Root node only] Set when there is a single visible node within the hierarchy. - */ - public void setOnlyNodeWithWindows(final ImGuiDockNode imGuiDockNode) { - nSetOnlyNodeWithWindows(imGuiDockNode.ptr); - } - - private native void nSetOnlyNodeWithWindows(long imGuiDockNodePtr); /* - IMGUI_DOCK_NODE->OnlyNodeWithWindows = (ImGuiDockNode*)imGuiDockNodePtr; - */ + @BindingField + public ImGuiDockNode OnlyNodeWithWindows; /** * Last frame number the node was updated or kept alive explicitly with DockSpace() + int_KeepAliveOnly */ - public native int getLastFrameAlive(); /* - return IMGUI_DOCK_NODE->LastFrameAlive; - */ - - /** - * Last frame number the node was updated or kept alive explicitly with DockSpace() + int_KeepAliveOnly - */ - public native void setLastFrameAlive(int lastFrameAlive); /* - IMGUI_DOCK_NODE->LastFrameAlive = lastFrameAlive; - */ + @BindingField + public int LastFrameAlive; /** * Last frame number the node was updated. */ - public native int getLastFrameActive(); /* - return IMGUI_DOCK_NODE->LastFrameActive; - */ - - /** - * Last frame number the node was updated. - */ - public native void setLastFrameActive(int lastFrameActive); /* - IMGUI_DOCK_NODE->LastFrameActive = lastFrameActive; - */ + @BindingField + public int LastFrameActive; /** * Last frame number the node was focused. */ - public native int getLastFrameFocused(); /* - return IMGUI_DOCK_NODE->LastFrameFocused; - */ - - /** - * Last frame number the node was focused. - */ - public native void setLastFrameFocused(int lastFrameFocused); /* - IMGUI_DOCK_NODE->LastFrameFocused = lastFrameFocused; - */ + @BindingField + public int LastFrameFocused; /** * [Root node only] Which of our child docking node (any ancestor in the hierarchy) was last focused. */ - public native int getLastFocusedNodeId(); /* - return IMGUI_DOCK_NODE->LastFocusedNodeId; - */ - - /** - * [Root node only] Which of our child docking node (any ancestor in the hierarchy) was last focused. - */ - public native void setLastFocusedNodeId(int lastFocusedNodeId); /* - IMGUI_DOCK_NODE->LastFocusedNodeId = lastFocusedNodeId; - */ + @BindingField + public int LastFocusedNodeId; /** * [Leaf node only] Which of our tab/window is selected. */ - public native int getSelectedTabId(); /* - return IMGUI_DOCK_NODE->SelectedTabId; - */ - - /** - * [Leaf node only] Which of our tab/window is selected. - */ - public native void setSelectedTabId(int selectedTabId); /* - IMGUI_DOCK_NODE->SelectedTabId = selectedTabId; - */ + @BindingField + public int SelectedTabId; /** * [Leaf node only] Set when closing a specific tab/window. */ - public native int getWantCloseTabId(); /* - return IMGUI_DOCK_NODE->WantCloseTabId; - */ + @BindingField + public int WantCloseTabId; - /** - * [Leaf node only] Set when closing a specific tab/window. - */ - public native void setWantCloseTabId(int wantCloseTabId); /* - IMGUI_DOCK_NODE->WantCloseTabId = wantCloseTabId; - */ + @BindingField + public int AuthorityForPos; + @BindingField + public int AuthorityForSize; - public native int getAuthorityForPos(); /* - return IMGUI_DOCK_NODE->AuthorityForPos; - */ - - - public native void setAuthorityForPos(int authorityForPos); /* - IMGUI_DOCK_NODE->AuthorityForPos = authorityForPos; - */ - - - public native int getAuthorityForSize(); /* - return IMGUI_DOCK_NODE->AuthorityForSize; - */ - - - public native void setAuthorityForSize(int authorityForSize); /* - IMGUI_DOCK_NODE->AuthorityForSize = authorityForSize; - */ - - - public native int getAuthorityForViewport(); /* - return IMGUI_DOCK_NODE->AuthorityForViewport; - */ - - - public native void setAuthorityForViewport(int authorityForViewport); /* - IMGUI_DOCK_NODE->AuthorityForViewport = authorityForViewport; - */ + @BindingField + public int AuthorityForViewport; /** * Set to false when the node is hidden (usually disabled as it has no active window) */ - public native boolean getIsVisible(); /* - return IMGUI_DOCK_NODE->IsVisible; - */ + @BindingField + public boolean IsVisible; - /** - * Set to false when the node is hidden (usually disabled as it has no active window) - */ - public native void setIsVisible(boolean isVisible); /* - IMGUI_DOCK_NODE->IsVisible = isVisible; - */ + @BindingField + public boolean IsFocused; + @BindingField + public boolean HasCloseButton; - public native boolean getIsFocused(); /* - return IMGUI_DOCK_NODE->IsFocused; - */ + @BindingField + public boolean HasWindowMenuButton; - - public native void setIsFocused(boolean isFocused); /* - IMGUI_DOCK_NODE->IsFocused = isFocused; - */ - - - public native boolean getHasCloseButton(); /* - return IMGUI_DOCK_NODE->HasCloseButton; - */ - - - public native void setHasCloseButton(boolean hasCloseButton); /* - IMGUI_DOCK_NODE->HasCloseButton = hasCloseButton; - */ - - - public native boolean getHasWindowMenuButton(); /* - return IMGUI_DOCK_NODE->HasWindowMenuButton; - */ - - - public native void setHasWindowMenuButton(boolean hasWindowMenuButton); /* - IMGUI_DOCK_NODE->HasWindowMenuButton = hasWindowMenuButton; - */ + @BindingField + public boolean HasCentralNodeChild; /** * Set when closing all tabs at once. */ - public native boolean getWantCloseAll(); /* - return IMGUI_DOCK_NODE->WantCloseAll; - */ + @BindingField + public boolean WantCloseAll; - /** - * Set when closing all tabs at once. - */ - public native void setWantCloseAll(boolean wantCloseAll); /* - IMGUI_DOCK_NODE->WantCloseAll = wantCloseAll; - */ - - - public native boolean getWantLockSizeOnce(); /* - return IMGUI_DOCK_NODE->WantLockSizeOnce; - */ - - - public native void setWantLockSizeOnce(boolean wantLockSizeOnce); /* - IMGUI_DOCK_NODE->WantLockSizeOnce = wantLockSizeOnce; - */ + @BindingField + public boolean WantLockSizeOnce; /** * After a node extraction we need to transition toward moving the newly created host window */ - public native boolean getWantMouseMove(); /* - return IMGUI_DOCK_NODE->WantMouseMove; - */ + @BindingField + public boolean WantMouseMove; - /** - * After a node extraction we need to transition toward moving the newly created host window - */ - public native void setWantMouseMove(boolean wantMouseMove); /* - IMGUI_DOCK_NODE->WantMouseMove = wantMouseMove; - */ + @BindingField + public boolean WantHiddenTabBarUpdate; + @BindingField + public boolean WantHiddenTabBarToggle; - public native boolean getWantHiddenTabBarUpdate(); /* - return IMGUI_DOCK_NODE->WantHiddenTabBarUpdate; - */ + @BindingMethod + public native boolean IsRootNode(); + @BindingMethod + public native boolean IsDockSpace(); - public native void setWantHiddenTabBarUpdate(boolean wantHiddenTabBarUpdate); /* - IMGUI_DOCK_NODE->WantHiddenTabBarUpdate = wantHiddenTabBarUpdate; - */ + @BindingMethod + public native boolean IsFloatingNode(); - - public native boolean getWantHiddenTabBarToggle(); /* - return IMGUI_DOCK_NODE->WantHiddenTabBarToggle; - */ - - - public native void setWantHiddenTabBarToggle(boolean wantHiddenTabBarToggle); /* - IMGUI_DOCK_NODE->WantHiddenTabBarToggle = wantHiddenTabBarToggle; - */ - - public native boolean isRootNode(); /* - return IMGUI_DOCK_NODE->IsRootNode(); - */ - - public native boolean isDockSpace(); /* - return IMGUI_DOCK_NODE->IsDockSpace(); - */ - - public native boolean isFloatingNode(); /* - return IMGUI_DOCK_NODE->IsFloatingNode(); - */ - - public native boolean isCentralNode(); /* - return IMGUI_DOCK_NODE->IsCentralNode(); - */ + @BindingMethod + public native boolean IsCentralNode(); /** * Hidden tab bar can be shown back by clicking the small triangle */ - public native boolean isHiddenTabBar(); /* - return IMGUI_DOCK_NODE->IsHiddenTabBar(); - */ + @BindingMethod + public native boolean IsHiddenTabBar(); /** * Never show a tab bar */ - public native boolean isNoTabBar(); /* - return IMGUI_DOCK_NODE->IsNoTabBar(); - */ + @BindingMethod + public native boolean IsNoTabBar(); - public native boolean isSplitNode(); /* - return IMGUI_DOCK_NODE->IsSplitNode(); - */ + @BindingMethod + public native boolean IsSplitNode(); - public native boolean isLeafNode(); /* - return IMGUI_DOCK_NODE->IsLeafNode(); - */ + @BindingMethod + public native boolean IsLeafNode(); - public native boolean isEmpty(); /* - return IMGUI_DOCK_NODE->IsEmpty(); - */ + @BindingMethod + public native boolean IsEmpty(); - public ImRect rect() { - nRect(RECT.min, RECT.max); - return RECT; - } + @BindingMethod + public native ImRect Rect(); - private native void nRect(ImVec2 minDstImVec2, ImVec2 maxDstImVec2); /* - ImRect rect = IMGUI_DOCK_NODE->Rect(); - Jni::ImVec2Cpy(env, &rect.Min, minDstImVec2); - Jni::ImVec2Cpy(env, &rect.Max, maxDstImVec2); - */ + @BindingMethod + public native void UpdateMergedFlags(); + + /*JNI + #undef THIS + */ } - diff --git a/imgui-binding/src/main/java/imgui/internal/ImGuiWindow.java b/imgui-binding/src/main/java/imgui/internal/ImGuiWindow.java index 5e77c30..6a4d139 100644 --- a/imgui-binding/src/main/java/imgui/internal/ImGuiWindow.java +++ b/imgui-binding/src/main/java/imgui/internal/ImGuiWindow.java @@ -1,31 +1,35 @@ package imgui.internal; import imgui.binding.ImGuiStruct; +import imgui.binding.annotation.BindingField; +import imgui.binding.annotation.BindingSource; +@BindingSource public class ImGuiWindow extends ImGuiStruct { public ImGuiWindow(final long ptr) { super(ptr); + ImGui.init(); } /*JNI #include "_common.h" - #include - - #define IMGUI_WINDOW ((ImGuiWindow*)STRUCT_PTR) + #include "_internal.h" + #define THIS ((ImGuiWindow*)STRUCT_PTR) */ /** * Is scrollbar visible? */ - public native boolean isScrollbarX(); /* - return IMGUI_WINDOW->ScrollbarX; - */ + @BindingField(accessors = BindingField.Accessor.GETTER) + public boolean ScrollbarX; /** * Is scrollbar visible? */ - public native boolean isScrollbarY(); /* - return IMGUI_WINDOW->ScrollbarY; - */ + @BindingField(accessors = BindingField.Accessor.GETTER) + public boolean ScrollbarY; + /*JNI + #undef THIS + */ } diff --git a/imgui-binding/src/main/java/imgui/internal/ImRect.java b/imgui-binding/src/main/java/imgui/internal/ImRect.java index 05a2ef9..a2ed91b 100644 --- a/imgui-binding/src/main/java/imgui/internal/ImRect.java +++ b/imgui-binding/src/main/java/imgui/internal/ImRect.java @@ -21,29 +21,31 @@ public final class ImRect implements Cloneable { public ImRect() { } + public ImRect(final float minX, final float minY, final float maxX, final float maxY) { + set(minX, minY, maxX, maxY); + } + public ImRect(final ImVec2 min, final ImVec2 max) { - this.min.x = min.x; - this.min.y = min.y; - this.max.x = max.x; - this.max.y = max.y; + set(min, max); } - public ImRect(final float x1, final float y1, final float x2, final float y2) { - min.x = x1; - min.y = y1; - max.x = x2; - max.y = y2; + public ImRect(final ImRect value) { + set(value); } - public ImRect(final ImRect imRect) { - this(imRect.min, imRect.max); + public void set(final float minX, final float minY, final float maxX, final float maxY) { + this.min.x = minX; + this.min.y = minY; + this.max.x = maxX; + this.max.y = maxY; + } + + public void set(final ImVec2 min, final ImVec2 max) { + set(min.x, min.y, max.x, max.y); } public void set(final ImRect value) { - min.x = value.min.x; - min.y = value.min.y; - max.x = value.max.x; - max.y = value.max.y; + set(value.min, value.max); } @Override @@ -74,6 +76,7 @@ public final class ImRect implements Cloneable { } @Override + @SuppressWarnings("MethodDoesntCallSuperMethod") public ImRect clone() { return new ImRect(this); } diff --git a/imgui-binding/src/main/java/imgui/internal/flag/ImGuiAxis.java b/imgui-binding/src/main/java/imgui/internal/flag/ImGuiAxis.java index 19e9796..175a3ff 100644 --- a/imgui-binding/src/main/java/imgui/internal/flag/ImGuiAxis.java +++ b/imgui-binding/src/main/java/imgui/internal/flag/ImGuiAxis.java @@ -1,10 +1,13 @@ package imgui.internal.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class ImGuiAxis { private ImGuiAxis() { } - public static final int None = -1; - public static final int X = 0; - public static final int Y = 1; + @BindingAstEnum(file = "ast-imgui_internal.json", qualType = "ImGuiAxis", sanitizeName = "ImGuiAxis_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/internal/flag/ImGuiDataAuthority.java b/imgui-binding/src/main/java/imgui/internal/flag/ImGuiDataAuthority.java index 4a45106..0cd40a3 100644 --- a/imgui-binding/src/main/java/imgui/internal/flag/ImGuiDataAuthority.java +++ b/imgui-binding/src/main/java/imgui/internal/flag/ImGuiDataAuthority.java @@ -1,13 +1,16 @@ package imgui.internal.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Store the source authority (dock node vs window) of a field */ +@BindingSource public final class ImGuiDataAuthority { private ImGuiDataAuthority() { } - public static final int Auto = 0; - public static final int DockNode = 1; - public static final int Window = 2; + @BindingAstEnum(file = "ast-imgui_internal.json", qualType = "ImGuiDataAuthority_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/internal/flag/ImGuiDockNodeFlags.java b/imgui-binding/src/main/java/imgui/internal/flag/ImGuiDockNodeFlags.java index 5f42d6b..e80440a 100644 --- a/imgui-binding/src/main/java/imgui/internal/flag/ImGuiDockNodeFlags.java +++ b/imgui-binding/src/main/java/imgui/internal/flag/ImGuiDockNodeFlags.java @@ -1,53 +1,19 @@ package imgui.internal.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Extend ImGuiDockNodeFlags */ -public final class ImGuiDockNodeFlags extends imgui.flag.ImGuiDockNodeFlags { +@BindingSource +public final class ImGuiDockNodeFlags { private ImGuiDockNodeFlags() { } - /** - * A dockspace is a node that occupy space within an existing user window. Otherwise the node is floating and create its own window. - */ - public static final int DockSpace = 1 << 10; - /** - * The central node has 2 main properties: stay visible when empty, only use "remaining" spaces from its neighbor. - */ - public static final int CentralNode = 1 << 11; - /** - * Tab bar is completely unavailable. No triangle in the corner to enable it back. - */ - public static final int NoTabBar = 1 << 12; - /** - * Tab bar is hidden, with a triangle in the corner to show it again (NB: actual tab-bar instance may be destroyed as this is only used for single-window tab bar) - */ - public static final int HiddenTabBar = 1 << 13; - /** - * Disable window/docking menu (that one that appears instead of the collapse button) - */ - public static final int NoWindowMenuButton = 1 << 14; - public static final int NoCloseButton = 1 << 15; - /** - * Disable any form of docking in this dockspace or individual node. (On a whole dockspace, this pretty much defeat the purpose of using a dockspace at all). Note: when turned on, existing docked nodes will be preserved. - */ - public static final int NoDocking = 1 << 16; - /** - * [EXPERIMENTAL] Prevent another window/node from splitting this node. - */ - public static final int NoDockingSplitMe = 1 << 17; - /** - * [EXPERIMENTAL] Prevent this node from splitting another window/node. - */ - public static final int NoDockingSplitOther = 1 << 18; - /** - * [EXPERIMENTAL] Prevent another window/node to be docked over this node. - */ - public static final int NoDockingOverMe = 1 << 19; - /** - * [EXPERIMENTAL] Prevent this node to be docked over another window/node. - */ - public static final int NoDockingOverOther = 1 << 20; - public static final int NoResizeX = 1 << 21; - public static final int NoResizeY = 1 << 22; + @BindingAstEnum(file = "ast-imgui.json", qualType = "ImGuiDockNodeFlags_") + public Void __; + + @BindingAstEnum(file = "ast-imgui_internal.json", qualType = "ImGuiDockNodeFlagsPrivate_", sanitizeName = "ImGuiDockNodeFlags_") + public Void ___; } diff --git a/imgui-binding/src/main/java/imgui/internal/flag/ImGuiDockNodeState.java b/imgui-binding/src/main/java/imgui/internal/flag/ImGuiDockNodeState.java index 75a6ca4..009ec5c 100644 --- a/imgui-binding/src/main/java/imgui/internal/flag/ImGuiDockNodeState.java +++ b/imgui-binding/src/main/java/imgui/internal/flag/ImGuiDockNodeState.java @@ -1,11 +1,13 @@ package imgui.internal.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + +@BindingSource public final class ImGuiDockNodeState { private ImGuiDockNodeState() { } - public static final int Unknown = 0; - public static final int HostWindowHiddenBecauseSingleWindow = 1; - public static final int HostWindowHiddenBecauseWindowsAreResizing = 2; - public static final int HostWindowVisible = 3; + @BindingAstEnum(file = "ast-imgui_internal.json", qualType = "ImGuiDockNodeState", sanitizeName = "ImGuiDockNodeState_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/internal/flag/ImGuiItemFlags.java b/imgui-binding/src/main/java/imgui/internal/flag/ImGuiItemFlags.java index 8579e48..01cea25 100644 --- a/imgui-binding/src/main/java/imgui/internal/flag/ImGuiItemFlags.java +++ b/imgui-binding/src/main/java/imgui/internal/flag/ImGuiItemFlags.java @@ -1,36 +1,17 @@ package imgui.internal.flag; +import imgui.binding.annotation.BindingAstEnum; +import imgui.binding.annotation.BindingSource; + /** * Transient per-window flags, reset at the beginning of the frame. For child window, inherited from parent on first Begin(). * This is going to be exposed in imgui.h when stabilized enough. */ +@BindingSource public final class ImGuiItemFlags { private ImGuiItemFlags() { } - public static final int None = 0; - public static final int NoTabStop = 1; - /** - * Button() will return true multiple times based on io.KeyRepeatDelay and io.KeyRepeatRate settings. - */ - public static final int ButtonRepeat = 1 << 1; - /** - * [BETA] Disable interactions but doesn't affect visuals yet. See github.com/ocornut/imgui/issues/211 - */ - public static final int Disabled = 1 << 2; - public static final int NoNav = 1 << 3; - public static final int NoNavDefaultFocus = 1 << 4; - /** - * MenuItem/Selectable() automatically closes current Popup window - */ - public static final int SelectableDontClosePopup = 1 << 5; - /** - * [BETA] Represent a mixed/indeterminate value, generally multi-selection where values differ. - * Currently only supported by Checkbox() (later should support all sorts of widgets) - */ - public static final int MixedValue = 1 << 6; - /** - * [ALPHA] Allow hovering interactions but underlying value is not changed. - */ - public static final int ReadOnly = 1 << 7; + @BindingAstEnum(file = "ast-imgui_internal.json", qualType = "ImGuiItemFlags_") + public Void __; } diff --git a/imgui-binding/src/main/java/imgui/lwjgl3/glfw/ImGuiImplGlfwNative.java b/imgui-binding/src/main/java/imgui/lwjgl3/glfw/ImGuiImplGlfwNative.java index 7f0917c..ba17324 100644 --- a/imgui-binding/src/main/java/imgui/lwjgl3/glfw/ImGuiImplGlfwNative.java +++ b/imgui-binding/src/main/java/imgui/lwjgl3/glfw/ImGuiImplGlfwNative.java @@ -6,7 +6,7 @@ public final class ImGuiImplGlfwNative { /*JNI #if defined(_WIN32) - #include + #include "windows.h" #endif */ diff --git a/imgui-binding/src/main/native/_base.h b/imgui-binding/src/main/native/_base.h deleted file mode 100644 index c5555af..0000000 --- a/imgui-binding/src/main/native/_base.h +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once - -#include -#include diff --git a/imgui-binding/src/main/native/_binding.h b/imgui-binding/src/main/native/_binding.h deleted file mode 100644 index c5c06a1..0000000 --- a/imgui-binding/src/main/native/_binding.h +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once - -#include "jni_jvm.h" -#include "jni_common.h" -#include "jni_callbacks.h" -#include "jni_binding_struct.h" -#include "jni_assertion.h" diff --git a/imgui-binding/src/main/native/_common.h b/imgui-binding/src/main/native/_common.h index 0ef2379..815e5ca 100644 --- a/imgui-binding/src/main/native/_common.h +++ b/imgui-binding/src/main/native/_common.h @@ -1,4 +1,11 @@ #pragma once -#include "_base.h" -#include "_binding.h" +#include "stdint.h" + +#include "imgui.h" + +#include "jni_jvm.h" +#include "jni_common.h" +#include "jni_callbacks.h" +#include "jni_binding_struct.h" +#include "jni_assertion.h" diff --git a/imgui-binding/src/main/native/_imguifiledialog.h b/imgui-binding/src/main/native/_imguifiledialog.h index 6044b3a..6c98da7 100644 --- a/imgui-binding/src/main/native/_imguifiledialog.h +++ b/imgui-binding/src/main/native/_imguifiledialog.h @@ -2,5 +2,6 @@ #include #include + #include "_common.h" #include "ImGuiFileDialog.h" diff --git a/imgui-binding/src/main/native/_imguiknobs.h b/imgui-binding/src/main/native/_imguiknobs.h index a725f6b..234ab35 100644 --- a/imgui-binding/src/main/native/_imguiknobs.h +++ b/imgui-binding/src/main/native/_imguiknobs.h @@ -1,4 +1,6 @@ #pragma once + #include + #include "_common.h" #include "imgui-knobs.h" diff --git a/imgui-binding/src/main/native/_imnodes.h b/imgui-binding/src/main/native/_imnodes.h index 0e2be4b..8942eeb 100644 --- a/imgui-binding/src/main/native/_imnodes.h +++ b/imgui-binding/src/main/native/_imnodes.h @@ -1,4 +1,4 @@ #pragma once #include "_common.h" -#include +#include "imnodes.h" diff --git a/imgui-binding/src/main/native/_implot.h b/imgui-binding/src/main/native/_implot.h index 3511474..b8046dd 100644 --- a/imgui-binding/src/main/native/_implot.h +++ b/imgui-binding/src/main/native/_implot.h @@ -1,5 +1,7 @@ #pragma once #include "_common.h" -#include +#include "_internal.h" #include "implot.h" + +#include "jni_implot.h" diff --git a/imgui-binding/src/main/native/_internal.h b/imgui-binding/src/main/native/_internal.h new file mode 100644 index 0000000..c6bd2cf --- /dev/null +++ b/imgui-binding/src/main/native/_internal.h @@ -0,0 +1,4 @@ +#pragma once + +#include "imgui_internal.h" +#include "jni_internal.h" diff --git a/imgui-binding/src/main/native/_nodeeditor.h b/imgui-binding/src/main/native/_nodeeditor.h index 85f9701..42d38ab 100644 --- a/imgui-binding/src/main/native/_nodeeditor.h +++ b/imgui-binding/src/main/native/_nodeeditor.h @@ -1,5 +1,5 @@ #pragma once #include "_common.h" -#include -#include +#include "imgui_node_editor.h" +#include "imgui_node_editor_internal.h" diff --git a/imgui-binding/src/main/native/_texteditor.h b/imgui-binding/src/main/native/_texteditor.h index 4c2c7ad..5859f7a 100644 --- a/imgui-binding/src/main/native/_texteditor.h +++ b/imgui-binding/src/main/native/_texteditor.h @@ -8,5 +8,8 @@ #include #include #include + #include "_common.h" #include "TextEditor.h" + +#include "jni_texteditor.h" diff --git a/imgui-binding/src/main/native/jni_assertion.h b/imgui-binding/src/main/native/jni_assertion.h index 8c5d76d..4cf0a0e 100644 --- a/imgui-binding/src/main/native/jni_assertion.h +++ b/imgui-binding/src/main/native/jni_assertion.h @@ -1,7 +1,7 @@ #pragma once #include "jni_jvm.h" -#include +#include "assert.h" namespace Jni { diff --git a/imgui-binding/src/main/native/jni_binding_struct.h b/imgui-binding/src/main/native/jni_binding_struct.h index 076872b..661a79b 100644 --- a/imgui-binding/src/main/native/jni_binding_struct.h +++ b/imgui-binding/src/main/native/jni_binding_struct.h @@ -1,6 +1,6 @@ #pragma once -#include +#include "jni.h" #ifndef STRUCT_PTR #define STRUCT_PTR env->GetLongField(object, Jni::GetBindingStructPtrID()) diff --git a/imgui-binding/src/main/native/jni_callbacks.cpp b/imgui-binding/src/main/native/jni_callbacks.cpp index 06d320f..4b4cb90 100644 --- a/imgui-binding/src/main/native/jni_callbacks.cpp +++ b/imgui-binding/src/main/native/jni_callbacks.cpp @@ -48,7 +48,7 @@ namespace Jni jImPlatformFuncViewportSuppFloatGetMID = env->GetMethodID(jImPlatformFuncViewportSuppFloat, "get", "(Limgui/ImGuiViewport;)F"); jclass jImGuiFileDialogPaneFun = env->FindClass("imgui/extension/imguifiledialog/callback/ImGuiFileDialogPaneFun"); - jImGuiFileDialogPaneFunMID = env->GetMethodID(jImGuiFileDialogPaneFun, "paneFun", "(Ljava/lang/String;JZ)V"); + jImGuiFileDialogPaneFunMID = env->GetMethodID(jImGuiFileDialogPaneFun, "accept", "(Ljava/lang/String;JZ)V"); } void CallImListClipperCallback(JNIEnv* env, jobject consumer, int index) { diff --git a/imgui-binding/src/main/native/jni_callbacks.h b/imgui-binding/src/main/native/jni_callbacks.h index 9724fe5..21a4e6c 100644 --- a/imgui-binding/src/main/native/jni_callbacks.h +++ b/imgui-binding/src/main/native/jni_callbacks.h @@ -1,6 +1,6 @@ #pragma once -#include +#include "jni.h" namespace Jni { diff --git a/imgui-binding/src/main/native/jni_common.cpp b/imgui-binding/src/main/native/jni_common.cpp index 475999a..04d212f 100644 --- a/imgui-binding/src/main/native/jni_common.cpp +++ b/imgui-binding/src/main/native/jni_common.cpp @@ -1,12 +1,12 @@ #include "jni_common.h" -jfieldID imVec2XID; -jfieldID imVec2YID; +static jfieldID imVec2XID; +static jfieldID imVec2YID; -jfieldID imVec4XID; -jfieldID imVec4YID; -jfieldID imVec4ZID; -jfieldID imVec4WID; +static jfieldID imVec4XID; +static jfieldID imVec4YID; +static jfieldID imVec4ZID; +static jfieldID imVec4WID; namespace Jni { @@ -50,4 +50,51 @@ namespace Jni env->SetFloatField(dst, imVec4ZID, src.z); env->SetFloatField(dst, imVec4WID, src.w); } + + void ImVec4Cpy(JNIEnv* env, jobject src, ImVec4* dst) { + dst->x = env->GetFloatField(src, imVec4XID); + dst->y = env->GetFloatField(src, imVec4YID); + dst->z = env->GetFloatField(src, imVec4ZID); + dst->w = env->GetFloatField(src, imVec4WID); + } + + jobjectArray NewImVec2Array(JNIEnv* env, ImVec2* src, int size) { + jclass cls = env->FindClass("imgui/ImVec2"); + jmethodID cstr = env->GetMethodID(cls, "", "(FF)V"); + jobjectArray dst = env->NewObjectArray(size, cls, NULL); + for (int i = 0; i < size; ++i) { + jobject vec = env->NewObject(cls, cstr, src[i].x, src[i].y); + env->SetObjectArrayElement(dst, i, vec); + env->DeleteLocalRef(vec); + } + return dst; + } + + jobjectArray NewImVec4Array(JNIEnv* env, ImVec4* src, int size) { + jclass cls = env->FindClass("imgui/ImVec4"); + jmethodID cstr = env->GetMethodID(cls, "", "(FFFF)V"); + jobjectArray dst = env->NewObjectArray(size, cls, NULL); + for (int i = 0; i < size; ++i) { + jobject vec = env->NewObject(cls, cstr, src[i].x, src[i].y, src[i].z, src[i].w); + env->SetObjectArrayElement(dst, i, vec); + env->DeleteLocalRef(vec); + } + return dst; + } + + void ImVec2ArrayCpy(JNIEnv* env, jobjectArray src, ImVec2* dst, int size) { + for (int i = 0; i < size; i++) { + jobject value = env->GetObjectArrayElement(src, i); + Jni::ImVec2Cpy(env, value, &dst[i]); + env->DeleteLocalRef(value); + } + } + + void ImVec4ArrayCpy(JNIEnv* env, jobjectArray src, ImVec4* dst, int size) { + for (int i = 0; i < size; i++) { + jobject value = env->GetObjectArrayElement(src, i); + Jni::ImVec4Cpy(env, value, &dst[i]); + env->DeleteLocalRef(value); + } + } } diff --git a/imgui-binding/src/main/native/jni_common.h b/imgui-binding/src/main/native/jni_common.h index 7031924..6df25f4 100644 --- a/imgui-binding/src/main/native/jni_common.h +++ b/imgui-binding/src/main/native/jni_common.h @@ -1,7 +1,7 @@ #pragma once -#include -#include +#include "jni.h" +#include "imgui.h" namespace Jni { @@ -9,9 +9,15 @@ namespace Jni void ImVec2Cpy(JNIEnv* env, ImVec2* src, jobject dst); void ImVec2Cpy(JNIEnv* env, ImVec2 src, jobject dst); - void ImVec2Cpy(JNIEnv* env, jobject src, ImVec2* dst); void ImVec4Cpy(JNIEnv* env, ImVec4* src, jobject dst); void ImVec4Cpy(JNIEnv* env, ImVec4 src, jobject dst); + void ImVec4Cpy(JNIEnv* env, jobject src, ImVec4* dst); + + jobjectArray NewImVec2Array(JNIEnv* env, ImVec2* src, int size); + jobjectArray NewImVec4Array(JNIEnv* env, ImVec4* src, int size); + + void ImVec2ArrayCpy(JNIEnv* env, jobjectArray src, ImVec2* dst, int size); + void ImVec4ArrayCpy(JNIEnv* env, jobjectArray src, ImVec4* dst, int size); } diff --git a/imgui-binding/src/main/native/jni_implot.cpp b/imgui-binding/src/main/native/jni_implot.cpp new file mode 100644 index 0000000..e86a780 --- /dev/null +++ b/imgui-binding/src/main/native/jni_implot.cpp @@ -0,0 +1,94 @@ +#include "jni_implot.h" + +static jfieldID imPlotPointXID; +static jfieldID imPlotPointYID; + +static jfieldID imPlotRangeMinID; +static jfieldID imPlotRangeMaxID; + +static jfieldID imPlotLimitsX; +static jfieldID imPlotLimitsY; + +static void initialize(JNIEnv* env) { + static bool initialized = false; + if (initialized) { + return; + } + + jclass jImPlotPointClass = env->FindClass("imgui/extension/implot/ImPlotPoint"); + imPlotPointXID = env->GetFieldID(jImPlotPointClass, "x", "D"); + imPlotPointYID = env->GetFieldID(jImPlotPointClass, "y", "D"); + + jclass jImPlotRangeClass = env->FindClass("imgui/extension/implot/ImPlotRange"); + imPlotRangeMinID = env->GetFieldID(jImPlotRangeClass, "min", "D"); + imPlotRangeMaxID = env->GetFieldID(jImPlotRangeClass, "max", "D"); + + jclass jImPlotLimitsClass = env->FindClass("imgui/extension/implot/ImPlotLimits"); + imPlotLimitsX = env->GetFieldID(jImPlotLimitsClass, "x", "Limgui/extension/implot/ImPlotRange;"); + imPlotLimitsY = env->GetFieldID(jImPlotLimitsClass, "y", "Limgui/extension/implot/ImPlotRange;"); + + initialized = true; +} + +namespace Jni +{ + void ImPlotPointCpy(JNIEnv* env, ImPlotPoint* src, jobject dst) { + initialize(env); + env->SetDoubleField(dst, imPlotPointXID, src->x); + env->SetDoubleField(dst, imPlotPointYID, src->y); + } + + void ImPlotPointCpy(JNIEnv* env, ImPlotPoint src, jobject dst) { + initialize(env); + env->SetDoubleField(dst, imPlotPointXID, src.x); + env->SetDoubleField(dst, imPlotPointYID, src.y); + } + + void ImPlotPointCpy(JNIEnv* env, jobject src, ImPlotPoint* dst) { + initialize(env); + dst->x = env->GetDoubleField(src, imPlotPointXID); + dst->y = env->GetDoubleField(src, imPlotPointYID); + } + + void ImPlotRangeCpy(JNIEnv* env, ImPlotRange* src, jobject dst) { + initialize(env); + env->SetDoubleField(dst, imPlotRangeMinID, src->Min); + env->SetDoubleField(dst, imPlotRangeMaxID, src->Max); + } + + void ImPlotRangeCpy(JNIEnv* env, ImPlotRange src, jobject dst) { + initialize(env); + env->SetDoubleField(dst, imPlotRangeMinID, src.Min); + env->SetDoubleField(dst, imPlotRangeMaxID, src.Max); + } + + void ImPlotRangeCpy(JNIEnv* env, jobject src, ImPlotRange* dst) { + initialize(env); + dst->Min = env->GetDoubleField(src, imPlotRangeMinID); + dst->Max = env->GetDoubleField(src, imPlotRangeMaxID); + } + + void ImPlotLimitsCpy(JNIEnv* env, ImPlotLimits* src, jobject dst) { + initialize(env); + jobject x = env->GetObjectField(dst, imPlotLimitsX); + jobject y = env->GetObjectField(dst, imPlotLimitsY); + Jni::ImPlotRangeCpy(env, src->X, x); + Jni::ImPlotRangeCpy(env, src->Y, y); + } + + void ImPlotLimitsCpy(JNIEnv* env, ImPlotLimits src, jobject dst) { + initialize(env); + jobject x = env->GetObjectField(dst, imPlotLimitsX); + jobject y = env->GetObjectField(dst, imPlotLimitsY); + Jni::ImPlotRangeCpy(env, src.X, x); + Jni::ImPlotRangeCpy(env, src.Y, y); + } + + void ImPlotLimitsCpy(JNIEnv* env, jobject src, ImPlotLimits* dst) { + initialize(env); + jobject x = env->GetObjectField(src, imPlotLimitsX); + jobject y = env->GetObjectField(src, imPlotLimitsY); + Jni::ImPlotRangeCpy(env, x, &dst->X); + Jni::ImPlotRangeCpy(env, y, &dst->Y); + } +} diff --git a/imgui-binding/src/main/native/jni_implot.h b/imgui-binding/src/main/native/jni_implot.h new file mode 100644 index 0000000..75a3599 --- /dev/null +++ b/imgui-binding/src/main/native/jni_implot.h @@ -0,0 +1,19 @@ +#pragma once + +#include "jni.h" +#include "implot.h" + +namespace Jni +{ + void ImPlotPointCpy(JNIEnv* env, ImPlotPoint* src, jobject dst); + void ImPlotPointCpy(JNIEnv* env, ImPlotPoint src, jobject dst); + void ImPlotPointCpy(JNIEnv* env, jobject src, ImPlotPoint* dst); + + void ImPlotRangeCpy(JNIEnv* env, ImPlotRange* src, jobject dst); + void ImPlotRangeCpy(JNIEnv* env, ImPlotRange src, jobject dst); + void ImPlotRangeCpy(JNIEnv* env, jobject src, ImPlotRange* dst); + + void ImPlotLimitsCpy(JNIEnv* env, ImPlotLimits* src, jobject dst); + void ImPlotLimitsCpy(JNIEnv* env, ImPlotLimits src, jobject dst); + void ImPlotLimitsCpy(JNIEnv* env, jobject src, ImPlotLimits* dst); +} diff --git a/imgui-binding/src/main/native/jni_internal.cpp b/imgui-binding/src/main/native/jni_internal.cpp new file mode 100644 index 0000000..168fe4e --- /dev/null +++ b/imgui-binding/src/main/native/jni_internal.cpp @@ -0,0 +1,34 @@ +#include "jni_internal.h" + +static jfieldID imRectMin; +static jfieldID imRectMax; + +namespace Jni +{ + void InitInternal(JNIEnv* env) { + jclass jImRectClass = env->FindClass("imgui/internal/ImRect"); + imRectMin = env->GetFieldID(jImRectClass, "min", "Limgui/ImVec2;"); + imRectMax = env->GetFieldID(jImRectClass, "max", "Limgui/ImVec2;"); + } + + void ImRectCpy(JNIEnv* env, ImRect* src, jobject dst) { + jobject min = env->GetObjectField(dst, imRectMin); + jobject max = env->GetObjectField(dst, imRectMax); + Jni::ImVec2Cpy(env, src->Min, min); + Jni::ImVec2Cpy(env, src->Max, max); + } + + void ImRectCpy(JNIEnv* env, ImRect src, jobject dst) { + jobject min = env->GetObjectField(dst, imRectMin); + jobject max = env->GetObjectField(dst, imRectMax); + Jni::ImVec2Cpy(env, src.Min, min); + Jni::ImVec2Cpy(env, src.Max, max); + } + + void ImRectCpy(JNIEnv* env, jobject src, ImRect* dst) { + jobject min = env->GetObjectField(src, imRectMin); + jobject max = env->GetObjectField(src, imRectMax); + Jni::ImVec2Cpy(env, min, &dst->Min); + Jni::ImVec2Cpy(env, max, &dst->Max); + } +} diff --git a/imgui-binding/src/main/native/jni_internal.h b/imgui-binding/src/main/native/jni_internal.h new file mode 100644 index 0000000..4375887 --- /dev/null +++ b/imgui-binding/src/main/native/jni_internal.h @@ -0,0 +1,13 @@ +#pragma once + +#include "imgui_internal.h" +#include "jni_common.h" + +namespace Jni +{ + void InitInternal(JNIEnv* env); + + void ImRectCpy(JNIEnv* env, ImRect* src, jobject dst); + void ImRectCpy(JNIEnv* env, ImRect src, jobject dst); + void ImRectCpy(JNIEnv* env, jobject src, ImRect* dst); +} diff --git a/imgui-binding/src/main/native/jni_jvm.h b/imgui-binding/src/main/native/jni_jvm.h index 32cfeb4..8e09ea5 100644 --- a/imgui-binding/src/main/native/jni_jvm.h +++ b/imgui-binding/src/main/native/jni_jvm.h @@ -1,7 +1,7 @@ #pragma once -#include -#include +#include "jni.h" +#include "assert.h" namespace Jni { diff --git a/imgui-binding/src/main/native/jni_texteditor.cpp b/imgui-binding/src/main/native/jni_texteditor.cpp new file mode 100644 index 0000000..d154cd4 --- /dev/null +++ b/imgui-binding/src/main/native/jni_texteditor.cpp @@ -0,0 +1,38 @@ +#include "jni_texteditor.h" + +static jfieldID coordinatesLineID; +static jfieldID coordinatesColumnID; + +static void initialize(JNIEnv* env) { + static bool initialized = false; + if (initialized) { + return; + } + + jclass coordinatesClass = env->FindClass("imgui/extension/texteditor/TextEditorCoordinates"); + coordinatesLineID = env->GetFieldID(coordinatesClass, "mLine", "I"); + coordinatesColumnID = env->GetFieldID(coordinatesClass, "mColumn", "I"); + + initialized = true; +} + +namespace Jni +{ + void TextEditorCoordinatesCpy(JNIEnv* env, TextEditor::Coordinates* src, jobject dst) { + initialize(env); + env->SetIntField(dst, coordinatesLineID, src->mLine); + env->SetIntField(dst, coordinatesColumnID, src->mColumn); + } + + void TextEditorCoordinatesCpy(JNIEnv* env, TextEditor::Coordinates src, jobject dst) { + initialize(env); + env->SetIntField(dst, coordinatesLineID, src.mLine); + env->SetIntField(dst, coordinatesColumnID, src.mColumn); + } + + void TextEditorCoordinatesCpy(JNIEnv* env, jobject src, TextEditor::Coordinates* dst) { + initialize(env); + dst->mLine = env->GetIntField(src, coordinatesLineID); + dst->mColumn = env->GetIntField(src, coordinatesColumnID); + } +} diff --git a/imgui-binding/src/main/native/jni_texteditor.h b/imgui-binding/src/main/native/jni_texteditor.h new file mode 100644 index 0000000..93c2d54 --- /dev/null +++ b/imgui-binding/src/main/native/jni_texteditor.h @@ -0,0 +1,11 @@ +#pragma once + +#include "jni.h" +#include "TextEditor.h" + +namespace Jni +{ + void TextEditorCoordinatesCpy(JNIEnv* env, TextEditor::Coordinates* src, jobject dst); + void TextEditorCoordinatesCpy(JNIEnv* env, TextEditor::Coordinates src, jobject dst); + void TextEditorCoordinatesCpy(JNIEnv* env, jobject src, TextEditor::Coordinates* dst); +} diff --git a/imgui-lwjgl3/src/main/java/imgui/gl3/ImGuiImplGl3.java b/imgui-lwjgl3/src/main/java/imgui/gl3/ImGuiImplGl3.java index 08fa71c..a02ecc4 100644 --- a/imgui-lwjgl3/src/main/java/imgui/gl3/ImGuiImplGl3.java +++ b/imgui-lwjgl3/src/main/java/imgui/gl3/ImGuiImplGl3.java @@ -169,7 +169,7 @@ public final class ImGuiImplGl3 { glBufferData(GL_ELEMENT_ARRAY_BUFFER, drawData.getCmdListIdxBufferData(cmdListIdx), GL_STREAM_DRAW); for (int cmdBufferIdx = 0; cmdBufferIdx < drawData.getCmdListCmdBufferSize(cmdListIdx); cmdBufferIdx++) { - drawData.getCmdListCmdBufferClipRect(cmdListIdx, cmdBufferIdx, clipRect); + drawData.getCmdListCmdBufferClipRect(clipRect, cmdListIdx, cmdBufferIdx); final float clipMinX = (clipRect.x - clipOffX) * clipScaleX; final float clipMinY = (clipRect.y - clipOffY) * clipScaleY; @@ -188,7 +188,7 @@ public final class ImGuiImplGl3 { final int elemCount = drawData.getCmdListCmdBufferElemCount(cmdListIdx, cmdBufferIdx); final int idxBufferOffset = drawData.getCmdListCmdBufferIdxOffset(cmdListIdx, cmdBufferIdx); final int vtxBufferOffset = drawData.getCmdListCmdBufferVtxOffset(cmdListIdx, cmdBufferIdx); - final int indices = idxBufferOffset * ImDrawData.SIZEOF_IM_DRAW_IDX; + final int indices = idxBufferOffset * ImDrawData.sizeOfImDrawIdx(); glBindTexture(GL_TEXTURE_2D, textureId); @@ -420,9 +420,9 @@ public final class ImGuiImplGl3 { glEnableVertexAttribArray(gAttribLocationVtxPos); glEnableVertexAttribArray(gAttribLocationVtxUV); glEnableVertexAttribArray(gAttribLocationVtxColor); - glVertexAttribPointer(gAttribLocationVtxPos, 2, GL_FLOAT, false, ImDrawData.SIZEOF_IM_DRAW_VERT, 0); - glVertexAttribPointer(gAttribLocationVtxUV, 2, GL_FLOAT, false, ImDrawData.SIZEOF_IM_DRAW_VERT, 8); - glVertexAttribPointer(gAttribLocationVtxColor, 4, GL_UNSIGNED_BYTE, true, ImDrawData.SIZEOF_IM_DRAW_VERT, 16); + glVertexAttribPointer(gAttribLocationVtxPos, 2, GL_FLOAT, false, ImDrawData.sizeOfImDrawVert(), 0); + glVertexAttribPointer(gAttribLocationVtxUV, 2, GL_FLOAT, false, ImDrawData.sizeOfImDrawVert(), 8); + glVertexAttribPointer(gAttribLocationVtxColor, 4, GL_UNSIGNED_BYTE, true, ImDrawData.sizeOfImDrawVert(), 16); } private void unbind() {