diff --git a/.gitmodules b/.gitmodules index d9ea751..94badad 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,6 @@ [submodule "include/imgui"] path = include/imgui url = https://github.com/ocornut/imgui -[submodule "include/imgui-node-editor"] - path = include/imgui-node-editor - url = https://github.com/thedmd/imgui-node-editor [submodule "include/imnodes"] path = include/imnodes url = https://github.com/Nelarius/imnodes @@ -19,3 +16,6 @@ [submodule "include/ImGuiFileDialog"] path = include/ImGuiFileDialog url = https://github.com/aiekick/ImGuiFileDialog +[submodule "include/imgui-node-editor"] + path = include/imgui-node-editor + url = https://github.com/thedmd/imgui-node-editor diff --git a/example/src/main/java/ExampleImNodes.java b/example/src/main/java/ExampleImNodes.java index 481f01a..1f03add 100644 --- a/example/src/main/java/ExampleImNodes.java +++ b/example/src/main/java/ExampleImNodes.java @@ -1,6 +1,7 @@ import imgui.extension.imnodes.ImNodes; import imgui.extension.imnodes.ImNodesContext; import imgui.extension.imnodes.flag.ImNodesPinShape; +import imgui.extension.imnodes.flag.ImNodesMiniMapLocation; import imgui.flag.ImGuiCond; import imgui.flag.ImGuiMouseButton; import imgui.internal.ImGui; @@ -70,6 +71,7 @@ public class ExampleImNodes { final boolean isEditorHovered = ImNodes.isEditorHovered(); + ImNodes.miniMap(0.2f, ImNodesMiniMapLocation.BottomRight); ImNodes.endNodeEditor(); if (ImNodes.isLinkCreated(LINK_A, LINK_B)) { 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 342f579..9d49172 100644 --- a/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodes.java +++ b/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodes.java @@ -24,7 +24,7 @@ public final class ImNodes { // 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 + // 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() { @@ -40,18 +40,18 @@ public final class ImNodes { } private static native void nEditorContextSet(long ptr); /* - imnodes::EditorContextSet((imnodes::EditorContext*)ptr); + ImNodes::EditorContextSet((ImNodesEditorContext*)ptr); */ /** * Initialize the node editor system. */ public static native void createContext(); /* - imnodes::CreateContext(); + ImNodes::CreateContext(); */ public static native void destroyContext(); /* - imnodes::DestroyContext(); + ImNodes::DestroyContext(); */ /** @@ -63,40 +63,40 @@ public final class ImNodes { } private static native long nGetStyle(); /* - return (intptr_t)&imnodes::GetStyle(); + return (intptr_t)&ImNodes::GetStyle(); */ // Style presets matching the dear imgui styles of the same name. public static native void styleColorsDark(); /* - imnodes::StyleColorsDark(); + ImNodes::StyleColorsDark(); */ public static native void styleColorsClassic(); /* - imnodes::StyleColorsClassic(); + ImNodes::StyleColorsClassic(); */ public static native void styleColorsLight(); /* - imnodes::StyleColorsLight(); + ImNodes::StyleColorsLight(); */ /** * Use PushColorStyle and PopColorStyle to modify ImNodesColorStyle mid-frame. */ public static native void pushColorStyle(int imNodesStyleColor, int color); /* - imnodes::PushColorStyle((imnodes::ColorStyle)imNodesStyleColor, color); + ImNodes::PushColorStyle((ImNodesCol)imNodesStyleColor, color); */ public static native void popColorStyle(); /* - imnodes::PopColorStyle(); + ImNodes::PopColorStyle(); */ public static native void pushStyleVar(int imNodesStyleVar, float value); /* - imnodes::PushStyleVar((imnodes::StyleVar)imNodesStyleVar, value); + ImNodes::PushStyleVar((ImNodesStyleVar)imNodesStyleVar, value); */ public static native void popStyleVar(); /* - imnodes::PopStyleVar(); + ImNodes::PopStyleVar(); */ /** @@ -104,19 +104,19 @@ public final class ImNodes { * will result the node editor grid workspace being rendered. */ public static native void beginNodeEditor(); /* - imnodes::BeginNodeEditor(); + ImNodes::BeginNodeEditor(); */ public static native void endNodeEditor(); /* - imnodes::EndNodeEditor(); + ImNodes::EndNodeEditor(); */ public static native void beginNode(int node); /* - imnodes::BeginNode(node); + ImNodes::BeginNode(node); */ public static native void endNode(); /* - imnodes::EndNode(); + ImNodes::EndNode(); */ /** @@ -125,7 +125,7 @@ public final class ImNodes { * calls. The order of source and target doesn't make a difference for rendering the link. */ public static native void link(int id, int source, int target); /* - imnodes::Link(id, source, target); + ImNodes::Link(id, source, target); */ /** @@ -134,11 +134,11 @@ public final class ImNodes { * layout of the node will be incorrect. */ public static native void beginNodeTitleBar(); /* - imnodes::BeginNodeTitleBar(); + ImNodes::BeginNodeTitleBar(); */ public static native void endNodeTitleBar(); /* - imnodes::EndNodeTitleBar(); + ImNodes::EndNodeTitleBar(); */ // Attributes are ImGui UI elements embedded within the node. Attributes can have pin shapes @@ -156,11 +156,11 @@ public final class ImNodes { * attribute activity. */ public static native void beginStaticAttribute(int id); /* - imnodes::BeginStaticAttribute(id); + ImNodes::BeginStaticAttribute(id); */ public static native void endStaticAttribute(); /* - imnodes::EndStaticAttribute(); + ImNodes::EndStaticAttribute(); */ /** @@ -171,11 +171,11 @@ public final class ImNodes { } public static native void beginInputAttribute(int id, int imNodesPinShape); /* - imnodes::BeginInputAttribute(id, (imnodes::PinShape)imNodesPinShape); + ImNodes::BeginInputAttribute(id, (ImNodesPinShape)imNodesPinShape); */ public static native void endInputAttribute(); /* - imnodes::EndInputAttribute(); + ImNodes::EndInputAttribute(); */ /** @@ -186,18 +186,18 @@ public final class ImNodes { } public static native void beginOutputAttribute(int id, int imNodesPinShape); /* - imnodes::BeginOutputAttribute(id, (imnodes::PinShape)imNodesPinShape); + ImNodes::BeginOutputAttribute(id, (ImNodesPinShape)imNodesPinShape); */ /** * Push a single AttributeFlags value. By default, only AttributeFlags_None is set. */ public static native void pushAttributeFlag(int imNodesAttributeFlags); /* - imnodes::PushAttributeFlag((imnodes::AttributeFlags)imNodesAttributeFlags); + ImNodes::PushAttributeFlag((ImNodesAttributeFlags)imNodesAttributeFlags); */ public static native void endOutputAttribute(); /* - imnodes::EndOutputAttribute(); + ImNodes::EndOutputAttribute(); */ /** @@ -205,22 +205,22 @@ public final class ImNodes { * blocked by any other windows. */ public static native boolean isEditorHovered(); /* - return imnodes::IsEditorHovered(); + return ImNodes::IsEditorHovered(); */ // 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. + // 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 ImNodes::IsNodeHovered(&i) ? i : -1; */ /** @@ -228,7 +228,7 @@ public final class ImNodes { */ public static native int getHoveredLink(); /* int i; - return imnodes::IsLinkHovered(&i) ? i : -1; + return ImNodes::IsLinkHovered(&i) ? i : -1; */ /** @@ -236,17 +236,17 @@ public final class ImNodes { */ public static native int getHoveredPin(); /* int i; - return imnodes::IsPinHovered(&i) ? i : -1; + return ImNodes::IsPinHovered(&i) ? i : -1; */ /** * 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. + * 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; + return ImNodes::IsAnyAttributeActive(&i) ? i : -1; */ /** @@ -254,7 +254,7 @@ public final class ImNodes { * is being pressed over the UI content of the attribute. */ public static native boolean isAttributeActive(); /* - return imnodes::IsAttributeActive(); + return ImNodes::IsAttributeActive(); */ // Use the following functions to query a change of state for an existing link, or new link. Call @@ -268,7 +268,7 @@ public final class ImNodes { } private static native boolean nIsLinkStarted(int[] data); /* - return imnodes::IsLinkStarted(&data[0]); + return ImNodes::IsLinkStarted(&data[0]); */ /** @@ -284,7 +284,7 @@ public final class ImNodes { } private static native boolean nIsLinkDropped(int[] data, boolean includingDetachedLinks); /* - return imnodes::IsLinkDropped(&data[0], includingDetachedLinks); + return ImNodes::IsLinkDropped(&data[0], includingDetachedLinks); */ /** @@ -295,7 +295,7 @@ public final class ImNodes { } private static native boolean nIsLinkCreated(int[] sourceAttribute, int[] targetAttribute); /* - return imnodes::IsLinkCreated(&sourceAttribute[0], &targetAttribute[0]); + return ImNodes::IsLinkCreated(&sourceAttribute[0], &targetAttribute[0]); */ public static boolean isLinkCreated(final ImInt startedAtNodeId, final ImInt startedAtAttributeId, @@ -305,7 +305,7 @@ public final class ImNodes { } 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]); + return ImNodes::IsLinkCreated(&startedAtNodeId[0], &startedAtAttributeId[0], &endedAtNodeId[0], &endedAtAttributeId[0], &createdFromSnap[0]); */ /** @@ -317,7 +317,7 @@ public final class ImNodes { } private static native boolean nIsLinkDestroyed(int[] linkId); /* - return imnodes::IsLinkDestroyed(&linkId[0]); + return ImNodes::IsLinkDestroyed(&linkId[0]); */ /** @@ -325,11 +325,11 @@ public final class ImNodes { * editor. Use after calling EndNodeEditor(). */ public static native int numSelectedNodes(); /* - return imnodes::NumSelectedNodes(); + return ImNodes::NumSelectedNodes(); */ public static native int numSelectedLinks(); /* - return imnodes::NumSelectedLinks(); + return ImNodes::NumSelectedLinks(); */ /** @@ -338,42 +338,42 @@ public final class ImNodes { * returned. */ public static native void getSelectedNodes(int[] nodeIds); /* - imnodes::GetSelectedNodes(&nodeIds[0]); + ImNodes::GetSelectedNodes(&nodeIds[0]); */ public static native void getSelectedLinks(int[] linkIds); /* - imnodes::GetSelectedLinks(&linkIds[0]); + 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(); + ImNodes::ClearNodeSelection(); */ public static native void clearLinkSelection(); /* - imnodes::ClearLinkSelection(); + ImNodes::ClearLinkSelection(); */ /** * 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); + ImNodes::SetNodeDraggable(node, isDraggable); */ public static native void getNodeDimensions(int node, ImVec2 result); /* - ImVec2 dst = imnodes::GetNodeDimensions(node); + ImVec2 dst = ImNodes::GetNodeDimensions(node); Jni::ImVec2Cpy(env, &dst, result); */ public static native float getNodeDimensionsX(int node); /* - return imnodes::GetNodeDimensions(node).x; + return ImNodes::GetNodeDimensions(node).x; */ public static native float getNodeDimensionsY(int node); /* - return imnodes::GetNodeDimensions(node).y; + return ImNodes::GetNodeDimensions(node).y; */ @@ -386,69 +386,69 @@ public final class ImNodes { // 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)); + ImNodes::SetNodeScreenSpacePos(node, ImVec2(x, y)); */ public static native void setNodeEditorSpacePos(int node, float x, float y); /* - imnodes::SetNodeEditorSpacePos(node, ImVec2(x, y)); + ImNodes::SetNodeEditorSpacePos(node, ImVec2(x, y)); */ public static native void setNodeGridSpacePos(int node, float x, float y); /* - imnodes::SetNodeGridSpacePos(node, ImVec2(x, y)); + ImNodes::SetNodeGridSpacePos(node, ImVec2(x, y)); */ public static native void getNodeScreenSpacePos(int node, ImVec2 result); /* - ImVec2 dst = imnodes::GetNodeScreenSpacePos(node); + ImVec2 dst = ImNodes::GetNodeScreenSpacePos(node); Jni::ImVec2Cpy(env, &dst, result); */ public static native float getNodeScreenSpacePosX(int node); /* - return imnodes::GetNodeScreenSpacePos(node).x; + return ImNodes::GetNodeScreenSpacePos(node).x; */ public static native float getNodeScreenSpacePosY(int node); /* - return imnodes::GetNodeScreenSpacePos(node).y; + return ImNodes::GetNodeScreenSpacePos(node).y; */ public static native void getNodeEditorSpacePos(int node, ImVec2 result); /* - ImVec2 dst = imnodes::GetNodeEditorSpacePos(node); + ImVec2 dst = ImNodes::GetNodeEditorSpacePos(node); Jni::ImVec2Cpy(env, &dst, result); */ public static native float getNodeEditorSpacePosX(int node); /* - return imnodes::GetNodeEditorSpacePos(node).x; + return ImNodes::GetNodeEditorSpacePos(node).x; */ public static native float getNodeEditorSpacePosY(int node); /* - return imnodes::GetNodeEditorSpacePos(node).y; + return ImNodes::GetNodeEditorSpacePos(node).y; */ public static native void getNodeGridSpacePos(int node, ImVec2 dst); /* - ImVec2 result = imnodes::GetNodeGridSpacePos(node); + ImVec2 result = ImNodes::GetNodeGridSpacePos(node); Jni::ImVec2Cpy(env, &result, dst); */ public static native float getNodeGridSpacePosX(int node); /* - return imnodes::GetNodeGridSpacePos(node).x; + return ImNodes::GetNodeGridSpacePos(node).x; */ public static native float getNodeGridSpacePosY(int node); /* - return imnodes::GetNodeGridSpacePos(node).y; + return ImNodes::GetNodeGridSpacePos(node).y; */ public static native void editorResetPanning(float x, float y); /* - imnodes::EditorContextResetPanning(ImVec2(x, y)); + ImNodes::EditorContextResetPanning(ImVec2(x, y)); */ public static native void editorMoveToNode(int node); /* - imnodes::EditorContextMoveToNode(node); + ImNodes::EditorContextMoveToNode(node); */ // 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)); + return env->NewStringUTF(ImNodes::SaveCurrentEditorStateToIniString(NULL)); */ public static String saveEditorStateToIniString(final ImNodesContext context) { @@ -456,11 +456,11 @@ public final class ImNodes { } private static native String nSaveEditorStateToIniString(long context); /* - return env->NewStringUTF(imnodes::SaveEditorStateToIniString((imnodes::EditorContext*)context, NULL)); + return env->NewStringUTF(ImNodes::SaveEditorStateToIniString((ImNodesEditorContext*)context, NULL)); */ public static native void loadCurrentEditorStateFromIniString(String data, int dataSize); /* - imnodes::LoadCurrentEditorStateFromIniString(data, dataSize); + ImNodes::LoadCurrentEditorStateFromIniString(data, dataSize); */ public static void loadEditorStateFromIniString(final ImNodesContext context, final String data, final int dataSize) { @@ -468,11 +468,11 @@ public final class ImNodes { } private static native void nLoadEditorStateFromIniString(long context, String data, int dataSize); /* - imnodes::LoadEditorStateFromIniString((imnodes::EditorContext*)context, data, dataSize); + ImNodes::LoadEditorStateFromIniString((ImNodesEditorContext*)context, data, dataSize); */ public static native void saveCurrentEditorStateToIniFile(String fileName); /* - imnodes::SaveCurrentEditorStateToIniFile(fileName); + ImNodes::SaveCurrentEditorStateToIniFile(fileName); */ public static void saveEditorStateToIniFile(final ImNodesContext context, final String fileName) { @@ -480,11 +480,11 @@ public final class ImNodes { } private static native void nSaveEditorStateToIniFile(long context, String fileName); /* - imnodes::SaveEditorStateToIniFile((imnodes::EditorContext*)context, fileName); + ImNodes::SaveEditorStateToIniFile((ImNodesEditorContext*)context, fileName); */ public static native void loadCurrentEditorStateFromIniFile(String fileName); /* - imnodes::LoadCurrentEditorStateFromIniFile(fileName); + ImNodes::LoadCurrentEditorStateFromIniFile(fileName); */ public static void loadEditorStateFromIniFile(final ImNodesContext context, final String fileName) { @@ -492,6 +492,10 @@ public final class ImNodes { } private static native void nLoadEditorStateFromIniFile(long context, String fileName); /* - imnodes::LoadEditorStateFromIniFile((imnodes::EditorContext*)context, fileName); + ImNodes::LoadEditorStateFromIniFile((ImNodesEditorContext*)context, fileName); + */ + + public static native void miniMap(float miniMapSizeFraction, int miniMapLocation); /* + ImNodes::MiniMap(miniMapSizeFraction, (ImNodesMiniMapLocation)miniMapLocation); */ } 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 da621e4..a6a6014 100644 --- a/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesContext.java +++ b/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesContext.java @@ -13,7 +13,7 @@ public final class ImNodesContext extends ImGuiStructDestroyable { /*JNI #include "_imnodes.h" - #define IMNODES_CONTEXT ((imnodes::EditorContext*)STRUCT_PTR) + #define IMNODES_CONTEXT ((ImNodesEditorContext*)STRUCT_PTR) */ @Override @@ -27,10 +27,10 @@ public final class ImNodesContext extends ImGuiStructDestroyable { } private native long nCreate(); /* - return (intptr_t)imnodes::EditorContextCreate(); + return (intptr_t)ImNodes::EditorContextCreate(); */ private native void nDestroy(); /* - imnodes::EditorContextFree(IMNODES_CONTEXT); + ImNodes::EditorContextFree(IMNODES_CONTEXT); */ } 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 9d10ce3..f25ad4a 100644 --- a/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesStyle.java +++ b/imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesStyle.java @@ -1,5 +1,6 @@ package imgui.extension.imnodes; +import imgui.ImVec2; import imgui.binding.ImGuiStruct; public final class ImNodesStyle extends ImGuiStruct { @@ -10,162 +11,182 @@ public final class ImNodesStyle extends ImGuiStruct { /*JNI #include "_imnodes.h" - #define IMNODES_STYLE ((imnodes::Style*)STRUCT_PTR) + #define IMNODES_STYLE ((ImNodesStyle*)STRUCT_PTR) */ public native float getGridSpacing(); /* - return IMNODES_STYLE->grid_spacing; + return IMNODES_STYLE->GridSpacing; */ public native void setGridSpacing(float gridSpacing); /* - IMNODES_STYLE->grid_spacing = gridSpacing; + IMNODES_STYLE->GridSpacing = gridSpacing; */ public native float getNodeCornerRounding(); /* - return IMNODES_STYLE->node_corner_rounding; + return IMNODES_STYLE->NodeCornerRounding; */ public native void setNodeCornerRounding(float nodeCornerRounding); /* - IMNODES_STYLE->node_corner_rounding = nodeCornerRounding; + IMNODES_STYLE->NodeCornerRounding = nodeCornerRounding; */ - public native float getNodePaddingHorizontal(); /* - return IMNODES_STYLE->node_padding_horizontal; + public native void getNodePadding(ImVec2 result); /* + Jni::ImVec2Cpy(env, &IMNODES_STYLE->NodePadding, result); */ - public native void setNodePaddingHorizontal(float nodePaddingHorizontal); /* - IMNODES_STYLE->node_padding_horizontal = nodePaddingHorizontal; - */ - - public native float getNodePaddingVertical(); /* - return IMNODES_STYLE->node_padding_vertical; - */ - - public native void setNodePaddingVertical(float nodePaddingVertical); /* - IMNODES_STYLE->node_padding_vertical = nodePaddingVertical; + public native void setNodePadding(float x, float y); /* + IMNODES_STYLE->NodePadding = ImVec2(x, y); */ public native float getNodeBorderThickness(); /* - return IMNODES_STYLE->node_border_thickness; + return IMNODES_STYLE->NodeBorderThickness; */ public native void setNodeBorderThickness(float nodeBorderThickness); /* - IMNODES_STYLE->node_border_thickness = nodeBorderThickness; + IMNODES_STYLE->NodeBorderThickness = nodeBorderThickness; */ public native float getLinkThickness(); /* - return IMNODES_STYLE->link_thickness; + return IMNODES_STYLE->LinkThickness; */ public native void setLinkThickness(float linkThickness); /* - IMNODES_STYLE->link_thickness = linkThickness; + IMNODES_STYLE->LinkThickness = linkThickness; */ public native float getLinkLineSegmentsPerLength(); /* - return IMNODES_STYLE->link_line_segments_per_length; + return IMNODES_STYLE->LinkLineSegmentsPerLength; */ public native void setLinkLineSegmentsPerLength(float linkLineSegmentsPerLength); /* - IMNODES_STYLE->link_line_segments_per_length = linkLineSegmentsPerLength; + IMNODES_STYLE->LinkLineSegmentsPerLength = linkLineSegmentsPerLength; */ public native float getLinkHoverDistance(); /* - return IMNODES_STYLE->link_hover_distance; + return IMNODES_STYLE->LinkHoverDistance; */ public native void setLinkHoverDistance(float linkHoverDistance); /* - IMNODES_STYLE->link_hover_distance = linkHoverDistance; + IMNODES_STYLE->LinkHoverDistance = linkHoverDistance; */ /** * The circle radius used when the pin shape is either PinShape_Circle or PinShape_CircleFilled. */ public native float getPinCircleRadius(); /* - return IMNODES_STYLE->pin_circle_radius; + 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->pin_circle_radius = pinCircleRadius; + IMNODES_STYLE->PinCircleRadius = pinCircleRadius; */ /** * The quad side length used when the shape is either PinShape_Quad or PinShape_QuadFilled. */ public native float getPinQuadSideLength(); /* - return IMNODES_STYLE->pin_quad_side_length; + 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->pin_quad_side_length = pinQuadSideLength; + IMNODES_STYLE->PinQuadSideLength = 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->pin_triangle_side_length; + 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->pin_triangle_side_length = pinTriangleSideLength; + IMNODES_STYLE->PinTriangleSideLength = pinTriangleSideLength; */ /** * The thickness of the line used when the pin shape is not filled. */ public native float getPinLineThickness(); /* - return IMNODES_STYLE->pin_line_thickness; + 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->pin_line_thickness = pinLineThickness; + IMNODES_STYLE->PinLineThickness = 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->pin_hover_radius; + 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->pin_hover_radius = pinHoverRadius; + IMNODES_STYLE->PinHoverRadius = pinHoverRadius; */ /** * Offsets the pins' positions from the edge of the node to the outside of the node. */ public native float getPinOffset(); /* - return IMNODES_STYLE->pin_offset; + 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->pin_offset = pinOffset; + IMNODES_STYLE->PinOffset = 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); + */ + + /** + * Mini-map offset from the screen side. + */ + public native ImVec2 getMiniMapOffset(ImVec2 result); /* + Jni::ImVec2Cpy(env, &IMNODES_STYLE->MiniMapOffset, result); + */ + + /** + * Mini-map offset from the screen side. + */ + public native void setMiniMapOffset(float x, float y); /* + IMNODES_STYLE->MiniMapOffset = ImVec2(x, y); */ public native int getFlags(); /* - return IMNODES_STYLE->flags; + return IMNODES_STYLE->Flags; */ public native void setFlags(int imNodesStyleFlags); /* - IMNODES_STYLE->flags = (imnodes::StyleFlags)imNodesStyleFlags; + IMNODES_STYLE->Flags = (ImNodesStyleFlags)imNodesStyleFlags; */ } diff --git a/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesColorStyle.java b/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesColorStyle.java index 912b8a5..851e563 100644 --- a/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesColorStyle.java +++ b/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesColorStyle.java @@ -20,5 +20,17 @@ public final class ImNodesColorStyle { public static final int BoxSelectorOutline = 13; public static final int GridBackground = 14; public static final int GridLine = 15; - public static final int COUNT = 16; + 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/main/java/imgui/extension/imnodes/flag/ImNodesMiniMapLocation.java b/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesMiniMapLocation.java new file mode 100644 index 0000000..441d059 --- /dev/null +++ b/imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesMiniMapLocation.java @@ -0,0 +1,14 @@ +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/include/imnodes b/include/imnodes index 857cc86..e563371 160000 --- a/include/imnodes +++ b/include/imnodes @@ -1 +1 @@ -Subproject commit 857cc860af05ac0f6a4039c2af33d982377b6cf4 +Subproject commit e563371cee49eb42da08cca1e0209d30d452c665