packages feed

dear-imgui-raw-imnodes-1.0.0: src/DearImGui/Raw/ImNodes.hsc

{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}

-- This file was generated by dear-bindings-ffi. Do not edit by hand.

module DearImGui.Raw.ImNodes
  ( MiniMapNodeHoveringCallback
  , MiniMapNodeHoveringCallbackUserData
  , beginInputAttribute
  , beginNode
  , beginNodeEditor
  , beginNodeTitleBar
  , beginOutputAttribute
  , beginStaticAttribute
  , c_editorContextGetPanning
  , c_editorContextResetPanning
  , c_getNodeDimensions
  , c_getNodeEditorSpacePos
  , c_getNodeGridSpacePos
  , c_getNodeScreenSpacePos
  , c_pushStyleVarImVec2
  , c_setNodeEditorSpacePos
  , c_setNodeGridSpacePos
  , c_setNodeScreenSpacePos
  , clearLinkSelection
  , clearLinkSelectionInt
  , clearNodeSelection
  , clearNodeSelectionInt
  , createContext
  , destroyContext
  , editorContextCreate
  , editorContextFree
  , editorContextGetPanning
  , editorContextMoveToNode
  , editorContextResetPanning
  , editorContextSet
  , endInputAttribute
  , endNode
  , endNodeEditor
  , endNodeTitleBar
  , endOutputAttribute
  , endStaticAttribute
  , getCurrentContext
  , getIO
  , getNodeDimensions
  , getNodeEditorSpacePos
  , getNodeGridSpacePos
  , getNodeScreenSpacePos
  , getSelectedLinks
  , getSelectedNodes
  , getStyle
  , getStyleColorName
  , isAnyAttributeActive
  , isAttributeActive
  , isEditorHovered
  , isLinkCreated
  , isLinkCreatedIntPtr
  , isLinkDestroyed
  , isLinkDropped
  , isLinkHovered
  , isLinkSelected
  , isLinkStarted
  , isNodeHovered
  , isNodeSelected
  , isPinHovered
  , link
  , loadCurrentEditorStateFromIniFile
  , loadCurrentEditorStateFromIniString
  , loadEditorStateFromIniFile
  , loadEditorStateFromIniString
  , miniMap
  , numSelectedLinks
  , numSelectedNodes
  , popAttributeFlag
  , popColorStyle
  , popStyleVar
  , pushAttributeFlag
  , pushColorStyle
  , pushStyleVar
  , pushStyleVarImVec2
  , saveCurrentEditorStateToIniFile
  , saveCurrentEditorStateToIniString
  , saveEditorStateToIniFile
  , saveEditorStateToIniString
  , selectLink
  , selectNode
  , setCurrentContext
  , setImGuiContext
  , setNodeDraggable
  , setNodeEditorSpacePos
  , setNodeGridSpacePos
  , setNodeScreenSpacePos
  , snapNodeToGrid
  , styleColorsClassic
  , styleColorsDark
  , styleColorsLight
  ) where

import DearImGui.Raw.ImGuiContext (ImGuiContext)
import DearImGui.Raw.ImNodes.Context (Context)
import DearImGui.Raw.ImNodes.EditorContext (EditorContext)
import DearImGui.Raw.ImNodes.Enums.AttributeFlags (AttributeFlags)
import DearImGui.Raw.ImNodes.Enums.Col (Col)
import DearImGui.Raw.ImNodes.Enums.MiniMapLocation (MiniMapLocation)
import DearImGui.Raw.ImNodes.Enums.PinShape (PinShape)
import DearImGui.Raw.ImNodes.Enums.StyleVar (StyleVar)
import DearImGui.Raw.ImNodes.ImNodesIO (ImNodesIO)
import DearImGui.Raw.ImNodes.Style (Style)
import DearImGui.Raw.ImVec2 (ImVec2)
import Foreign.C.String (CString)
import Foreign.C.Types
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Utils (with)
import Foreign.Ptr (FunPtr, Ptr)
import Foreign.Storable (Storable (..))

#include "dcimnodes.h"

-- typedefs

type MiniMapNodeHoveringCallback = FunPtr (CInt -> (Ptr ()) -> IO ())

type MiniMapNodeHoveringCallbackUserData = Ptr ()

-- functions

-- C: void ImNodes::BeginInputAttribute(int id, ImNodesPinShape shape)
foreign import capi unsafe "dcimnodes.h ImNodesBeginInputAttribute"
  beginInputAttribute
    :: CInt -- ^ id
    -> PinShape -- ^ shape
    -> IO ()

-- C: void ImNodes::BeginNode(int id)
foreign import capi unsafe "dcimnodes.h ImNodesBeginNode"
  beginNode
    :: CInt -- ^ id
    -> IO ()

-- C: void ImNodes::BeginNodeEditor()
foreign import capi unsafe "dcimnodes.h ImNodesBeginNodeEditor"
  beginNodeEditor :: IO ()

-- C: void ImNodes::BeginNodeTitleBar()
foreign import capi unsafe "dcimnodes.h ImNodesBeginNodeTitleBar"
  beginNodeTitleBar :: IO ()

-- C: void ImNodes::BeginOutputAttribute(int id, ImNodesPinShape shape)
foreign import capi unsafe "dcimnodes.h ImNodesBeginOutputAttribute"
  beginOutputAttribute
    :: CInt -- ^ id
    -> PinShape -- ^ shape
    -> IO ()

-- C: void ImNodes::BeginStaticAttribute(int id)
foreign import capi unsafe "dcimnodes.h ImNodesBeginStaticAttribute"
  beginStaticAttribute
    :: CInt -- ^ id
    -> IO ()

-- C: void ImNodes::ClearLinkSelection()
foreign import capi unsafe "dcimnodes.h ImNodesClearLinkSelection"
  clearLinkSelection :: IO ()

-- C: void ImNodes::ClearLinkSelection(int link_id)
foreign import capi unsafe "dcimnodes.h ImNodesClearLinkSelectionInt"
  clearLinkSelectionInt
    :: CInt -- ^ link_id
    -> IO ()

-- C: void ImNodes::ClearNodeSelection()
foreign import capi unsafe "dcimnodes.h ImNodesClearNodeSelection"
  clearNodeSelection :: IO ()

-- C: void ImNodes::ClearNodeSelection(int node_id)
foreign import capi unsafe "dcimnodes.h ImNodesClearNodeSelectionInt"
  clearNodeSelectionInt
    :: CInt -- ^ node_id
    -> IO ()

-- C: ImNodesContext* ImNodes::CreateContext()
foreign import capi unsafe "dcimnodes.h ImNodesCreateContext"
  createContext :: IO (Ptr Context)

-- C: void ImNodes::DestroyContext(ImNodesContext* ctx)
foreign import capi unsafe "dcimnodes.h ImNodesDestroyContext"
  destroyContext
    :: (Ptr Context) -- ^ ctx
    -> IO ()

-- C: ImNodesEditorContext* ImNodes::EditorContextCreate()
foreign import capi unsafe "dcimnodes.h ImNodesEditorContextCreate"
  editorContextCreate :: IO (Ptr EditorContext)

-- C: void ImNodes::EditorContextFree(ImNodesEditorContext* __unnamed_arg0__)
foreign import capi unsafe "dcimnodes.h ImNodesEditorContextFree"
  editorContextFree
    :: (Ptr EditorContext) -- ^ __unnamed_arg0__
    -> IO ()

foreign import capi unsafe "DearImGuiWrappers.h ImNodesEditorContextGetPanning_wrap"
  c_editorContextGetPanning
    :: (Ptr ImVec2) -- ^ out
    -> IO ()

editorContextGetPanning :: IO ImVec2
editorContextGetPanning =
  alloca $ \outPtr -> c_editorContextGetPanning outPtr >> peek outPtr

-- C: void ImNodes::EditorContextMoveToNode(const int node_id)
foreign import capi unsafe "dcimnodes.h ImNodesEditorContextMoveToNode"
  editorContextMoveToNode
    :: CInt -- ^ node_id
    -> IO ()

foreign import capi unsafe "DearImGuiWrappers.h ImNodesEditorContextResetPanning_wrap"
  c_editorContextResetPanning
    :: (Ptr ImVec2) -- ^ pos
    -> IO ()

editorContextResetPanning
  :: ImVec2 -- ^ pos
  -> IO ()
editorContextResetPanning pos =
  with pos $ \posPtr -> c_editorContextResetPanning posPtr

-- C: void ImNodes::EditorContextSet(ImNodesEditorContext* __unnamed_arg0__)
foreign import capi unsafe "dcimnodes.h ImNodesEditorContextSet"
  editorContextSet
    :: (Ptr EditorContext) -- ^ __unnamed_arg0__
    -> IO ()

-- C: void ImNodes::EndInputAttribute()
foreign import capi unsafe "dcimnodes.h ImNodesEndInputAttribute"
  endInputAttribute :: IO ()

-- C: void ImNodes::EndNode()
foreign import capi unsafe "dcimnodes.h ImNodesEndNode"
  endNode :: IO ()

-- C: void ImNodes::EndNodeEditor()
foreign import capi unsafe "dcimnodes.h ImNodesEndNodeEditor"
  endNodeEditor :: IO ()

-- C: void ImNodes::EndNodeTitleBar()
foreign import capi unsafe "dcimnodes.h ImNodesEndNodeTitleBar"
  endNodeTitleBar :: IO ()

-- C: void ImNodes::EndOutputAttribute()
foreign import capi unsafe "dcimnodes.h ImNodesEndOutputAttribute"
  endOutputAttribute :: IO ()

-- C: void ImNodes::EndStaticAttribute()
foreign import capi unsafe "dcimnodes.h ImNodesEndStaticAttribute"
  endStaticAttribute :: IO ()

-- C: ImNodesContext* ImNodes::GetCurrentContext()
foreign import capi unsafe "dcimnodes.h ImNodesGetCurrentContext"
  getCurrentContext :: IO (Ptr Context)

-- C: ImNodesIO* ImNodes::GetIO()
foreign import capi unsafe "dcimnodes.h ImNodesGetIO"
  getIO :: IO (Ptr ImNodesIO)

foreign import capi unsafe "DearImGuiWrappers.h ImNodesGetNodeDimensions_wrap"
  c_getNodeDimensions
    :: CInt -- ^ id
    -> (Ptr ImVec2) -- ^ out
    -> IO ()

getNodeDimensions
  :: CInt -- ^ id
  -> IO ImVec2
getNodeDimensions id_ =
  alloca $ \outPtr -> c_getNodeDimensions id_ outPtr >> peek outPtr

foreign import capi unsafe "DearImGuiWrappers.h ImNodesGetNodeEditorSpacePos_wrap"
  c_getNodeEditorSpacePos
    :: CInt -- ^ node_id
    -> (Ptr ImVec2) -- ^ out
    -> IO ()

getNodeEditorSpacePos
  :: CInt -- ^ node_id
  -> IO ImVec2
getNodeEditorSpacePos node_id =
  alloca $ \outPtr -> c_getNodeEditorSpacePos node_id outPtr >> peek outPtr

foreign import capi unsafe "DearImGuiWrappers.h ImNodesGetNodeGridSpacePos_wrap"
  c_getNodeGridSpacePos
    :: CInt -- ^ node_id
    -> (Ptr ImVec2) -- ^ out
    -> IO ()

getNodeGridSpacePos
  :: CInt -- ^ node_id
  -> IO ImVec2
getNodeGridSpacePos node_id =
  alloca $ \outPtr -> c_getNodeGridSpacePos node_id outPtr >> peek outPtr

foreign import capi unsafe "DearImGuiWrappers.h ImNodesGetNodeScreenSpacePos_wrap"
  c_getNodeScreenSpacePos
    :: CInt -- ^ node_id
    -> (Ptr ImVec2) -- ^ out
    -> IO ()

getNodeScreenSpacePos
  :: CInt -- ^ node_id
  -> IO ImVec2
getNodeScreenSpacePos node_id =
  alloca $ \outPtr -> c_getNodeScreenSpacePos node_id outPtr >> peek outPtr

-- C: void ImNodes::GetSelectedLinks(int* link_ids)
foreign import capi unsafe "dcimnodes.h ImNodesGetSelectedLinks"
  getSelectedLinks
    :: (Ptr CInt) -- ^ link_ids
    -> IO ()

-- C: void ImNodes::GetSelectedNodes(int* node_ids)
foreign import capi unsafe "dcimnodes.h ImNodesGetSelectedNodes"
  getSelectedNodes
    :: (Ptr CInt) -- ^ node_ids
    -> IO ()

-- C: ImNodesStyle* ImNodes::GetStyle()
foreign import capi unsafe "dcimnodes.h ImNodesGetStyle"
  getStyle :: IO (Ptr Style)

-- C: const char* ImNodes::GetStyleColorName(ImNodesCol idx)
foreign import capi unsafe "dcimnodes.h ImNodesGetStyleColorName"
  getStyleColorName
    :: Col -- ^ idx
    -> IO CString

-- C: bool ImNodes::IsAnyAttributeActive(int* attribute_id)
foreign import capi unsafe "dcimnodes.h ImNodesIsAnyAttributeActive"
  isAnyAttributeActive
    :: (Ptr CInt) -- ^ attribute_id
    -> IO CBool

-- C: bool ImNodes::IsAttributeActive()
foreign import capi unsafe "dcimnodes.h ImNodesIsAttributeActive"
  isAttributeActive :: IO CBool

-- C: bool ImNodes::IsEditorHovered()
foreign import capi unsafe "dcimnodes.h ImNodesIsEditorHovered"
  isEditorHovered :: IO CBool

-- C: bool ImNodes::IsLinkCreated(int* started_at_attribute_id, int* ended_at_attribute_id, bool* created_from_snap)
foreign import capi unsafe "dcimnodes.h ImNodesIsLinkCreated"
  isLinkCreated
    :: (Ptr CInt) -- ^ started_at_attribute_id
    -> (Ptr CInt) -- ^ ended_at_attribute_id
    -> (Ptr CBool) -- ^ created_from_snap
    -> IO CBool

-- C: bool ImNodes::IsLinkCreated(int* started_at_node_id, int* started_at_attribute_id, int* ended_at_node_id, int* ended_at_attribute_id, bool* created_from_snap)
foreign import capi unsafe "dcimnodes.h ImNodesIsLinkCreatedIntPtr"
  isLinkCreatedIntPtr
    :: (Ptr CInt) -- ^ started_at_node_id
    -> (Ptr CInt) -- ^ started_at_attribute_id
    -> (Ptr CInt) -- ^ ended_at_node_id
    -> (Ptr CInt) -- ^ ended_at_attribute_id
    -> (Ptr CBool) -- ^ created_from_snap
    -> IO CBool

-- C: bool ImNodes::IsLinkDestroyed(int* link_id)
foreign import capi unsafe "dcimnodes.h ImNodesIsLinkDestroyed"
  isLinkDestroyed
    :: (Ptr CInt) -- ^ link_id
    -> IO CBool

-- C: bool ImNodes::IsLinkDropped(int* started_at_attribute_id, bool including_detached_links)
foreign import capi unsafe "dcimnodes.h ImNodesIsLinkDropped"
  isLinkDropped
    :: (Ptr CInt) -- ^ started_at_attribute_id
    -> CBool -- ^ including_detached_links
    -> IO CBool

-- C: bool ImNodes::IsLinkHovered(int* link_id)
foreign import capi unsafe "dcimnodes.h ImNodesIsLinkHovered"
  isLinkHovered
    :: (Ptr CInt) -- ^ link_id
    -> IO CBool

-- C: bool ImNodes::IsLinkSelected(int link_id)
foreign import capi unsafe "dcimnodes.h ImNodesIsLinkSelected"
  isLinkSelected
    :: CInt -- ^ link_id
    -> IO CBool

-- C: bool ImNodes::IsLinkStarted(int* started_at_attribute_id)
foreign import capi unsafe "dcimnodes.h ImNodesIsLinkStarted"
  isLinkStarted
    :: (Ptr CInt) -- ^ started_at_attribute_id
    -> IO CBool

-- C: bool ImNodes::IsNodeHovered(int* node_id)
foreign import capi unsafe "dcimnodes.h ImNodesIsNodeHovered"
  isNodeHovered
    :: (Ptr CInt) -- ^ node_id
    -> IO CBool

-- C: bool ImNodes::IsNodeSelected(int node_id)
foreign import capi unsafe "dcimnodes.h ImNodesIsNodeSelected"
  isNodeSelected
    :: CInt -- ^ node_id
    -> IO CBool

-- C: bool ImNodes::IsPinHovered(int* attribute_id)
foreign import capi unsafe "dcimnodes.h ImNodesIsPinHovered"
  isPinHovered
    :: (Ptr CInt) -- ^ attribute_id
    -> IO CBool

-- C: void ImNodes::Link(int id, int start_attribute_id, int end_attribute_id)
foreign import capi unsafe "dcimnodes.h ImNodesLink"
  link
    :: CInt -- ^ id
    -> CInt -- ^ start_attribute_id
    -> CInt -- ^ end_attribute_id
    -> IO ()

-- C: void ImNodes::LoadCurrentEditorStateFromIniFile(const char* file_name)
foreign import capi unsafe "dcimnodes.h ImNodesLoadCurrentEditorStateFromIniFile"
  loadCurrentEditorStateFromIniFile
    :: CString -- ^ file_name
    -> IO ()

-- C: void ImNodes::LoadCurrentEditorStateFromIniString(const char* data, size_t data_size)
foreign import capi unsafe "dcimnodes.h ImNodesLoadCurrentEditorStateFromIniString"
  loadCurrentEditorStateFromIniString
    :: CString -- ^ data
    -> CSize -- ^ data_size
    -> IO ()

-- C: void ImNodes::LoadEditorStateFromIniFile(ImNodesEditorContext* editor, const char* file_name)
foreign import capi unsafe "dcimnodes.h ImNodesLoadEditorStateFromIniFile"
  loadEditorStateFromIniFile
    :: (Ptr EditorContext) -- ^ editor
    -> CString -- ^ file_name
    -> IO ()

-- C: void ImNodes::LoadEditorStateFromIniString(ImNodesEditorContext* editor, const char* data, size_t data_size)
foreign import capi unsafe "dcimnodes.h ImNodesLoadEditorStateFromIniString"
  loadEditorStateFromIniString
    :: (Ptr EditorContext) -- ^ editor
    -> CString -- ^ data
    -> CSize -- ^ data_size
    -> IO ()

-- C: void ImNodes::MiniMap(const float minimap_size_fraction, const ImNodesMiniMapLocation location, const ImNodesMiniMapNodeHoveringCallback node_hovering_callback, const ImNodesMiniMapNodeHoveringCallbackUserData node_hovering_callback_data)
foreign import capi safe "dcimnodes.h ImNodesMiniMap"
  miniMap
    :: Float -- ^ minimap_size_fraction
    -> MiniMapLocation -- ^ location
    -> MiniMapNodeHoveringCallback -- ^ node_hovering_callback
    -> MiniMapNodeHoveringCallbackUserData -- ^ node_hovering_callback_data
    -> IO ()

-- C: int ImNodes::NumSelectedLinks()
foreign import capi unsafe "dcimnodes.h ImNodesNumSelectedLinks"
  numSelectedLinks :: IO CInt

-- C: int ImNodes::NumSelectedNodes()
foreign import capi unsafe "dcimnodes.h ImNodesNumSelectedNodes"
  numSelectedNodes :: IO CInt

-- C: void ImNodes::PopAttributeFlag()
foreign import capi unsafe "dcimnodes.h ImNodesPopAttributeFlag"
  popAttributeFlag :: IO ()

-- C: void ImNodes::PopColorStyle()
foreign import capi unsafe "dcimnodes.h ImNodesPopColorStyle"
  popColorStyle :: IO ()

-- C: void ImNodes::PopStyleVar(int count)
foreign import capi unsafe "dcimnodes.h ImNodesPopStyleVar"
  popStyleVar
    :: CInt -- ^ count
    -> IO ()

-- C: void ImNodes::PushAttributeFlag(ImNodesAttributeFlags flag)
foreign import capi unsafe "dcimnodes.h ImNodesPushAttributeFlag"
  pushAttributeFlag
    :: AttributeFlags -- ^ flag
    -> IO ()

-- C: void ImNodes::PushColorStyle(ImNodesCol item, unsigned int color)
foreign import capi unsafe "dcimnodes.h ImNodesPushColorStyle"
  pushColorStyle
    :: Col -- ^ item
    -> CUInt -- ^ color
    -> IO ()

-- C: void ImNodes::PushStyleVar(ImNodesStyleVar style_item, float value)
foreign import capi unsafe "dcimnodes.h ImNodesPushStyleVar"
  pushStyleVar
    :: StyleVar -- ^ style_item
    -> Float -- ^ value
    -> IO ()

foreign import capi unsafe "DearImGuiWrappers.h ImNodesPushStyleVarImVec2_wrap"
  c_pushStyleVarImVec2
    :: StyleVar -- ^ style_item
    -> (Ptr ImVec2) -- ^ value
    -> IO ()

pushStyleVarImVec2
  :: StyleVar -- ^ style_item
  -> ImVec2 -- ^ value
  -> IO ()
pushStyleVarImVec2 style_item value =
  with value $ \valuePtr -> c_pushStyleVarImVec2 style_item valuePtr

-- C: void ImNodes::SaveCurrentEditorStateToIniFile(const char* file_name)
foreign import capi unsafe "dcimnodes.h ImNodesSaveCurrentEditorStateToIniFile"
  saveCurrentEditorStateToIniFile
    :: CString -- ^ file_name
    -> IO ()

-- C: const char* ImNodes::SaveCurrentEditorStateToIniString(size_t* data_size)
foreign import capi unsafe "dcimnodes.h ImNodesSaveCurrentEditorStateToIniString"
  saveCurrentEditorStateToIniString
    :: (Ptr CSize) -- ^ data_size
    -> IO CString

-- C: void ImNodes::SaveEditorStateToIniFile(const ImNodesEditorContext* editor, const char* file_name)
foreign import capi unsafe "dcimnodes.h ImNodesSaveEditorStateToIniFile"
  saveEditorStateToIniFile
    :: (Ptr EditorContext) -- ^ editor
    -> CString -- ^ file_name
    -> IO ()

-- C: const char* ImNodes::SaveEditorStateToIniString(const ImNodesEditorContext* editor, size_t* data_size)
foreign import capi unsafe "dcimnodes.h ImNodesSaveEditorStateToIniString"
  saveEditorStateToIniString
    :: (Ptr EditorContext) -- ^ editor
    -> (Ptr CSize) -- ^ data_size
    -> IO CString

-- C: void ImNodes::SelectLink(int link_id)
foreign import capi unsafe "dcimnodes.h ImNodesSelectLink"
  selectLink
    :: CInt -- ^ link_id
    -> IO ()

-- C: void ImNodes::SelectNode(int node_id)
foreign import capi unsafe "dcimnodes.h ImNodesSelectNode"
  selectNode
    :: CInt -- ^ node_id
    -> IO ()

-- C: void ImNodes::SetCurrentContext(ImNodesContext* ctx)
foreign import capi unsafe "dcimnodes.h ImNodesSetCurrentContext"
  setCurrentContext
    :: (Ptr Context) -- ^ ctx
    -> IO ()

-- C: void ImNodes::SetImGuiContext(ImGuiContext* ctx)
foreign import capi unsafe "dcimnodes.h ImNodesSetImGuiContext"
  setImGuiContext
    :: (Ptr ImGuiContext) -- ^ ctx
    -> IO ()

-- C: void ImNodes::SetNodeDraggable(int node_id, const bool draggable)
foreign import capi unsafe "dcimnodes.h ImNodesSetNodeDraggable"
  setNodeDraggable
    :: CInt -- ^ node_id
    -> CBool -- ^ draggable
    -> IO ()

foreign import capi unsafe "DearImGuiWrappers.h ImNodesSetNodeEditorSpacePos_wrap"
  c_setNodeEditorSpacePos
    :: CInt -- ^ node_id
    -> (Ptr ImVec2) -- ^ editor_space_pos
    -> IO ()

setNodeEditorSpacePos
  :: CInt -- ^ node_id
  -> ImVec2 -- ^ editor_space_pos
  -> IO ()
setNodeEditorSpacePos node_id editor_space_pos =
  with editor_space_pos $ \editor_space_posPtr -> c_setNodeEditorSpacePos node_id editor_space_posPtr

foreign import capi unsafe "DearImGuiWrappers.h ImNodesSetNodeGridSpacePos_wrap"
  c_setNodeGridSpacePos
    :: CInt -- ^ node_id
    -> (Ptr ImVec2) -- ^ grid_pos
    -> IO ()

setNodeGridSpacePos
  :: CInt -- ^ node_id
  -> ImVec2 -- ^ grid_pos
  -> IO ()
setNodeGridSpacePos node_id grid_pos =
  with grid_pos $ \grid_posPtr -> c_setNodeGridSpacePos node_id grid_posPtr

foreign import capi unsafe "DearImGuiWrappers.h ImNodesSetNodeScreenSpacePos_wrap"
  c_setNodeScreenSpacePos
    :: CInt -- ^ node_id
    -> (Ptr ImVec2) -- ^ screen_space_pos
    -> IO ()

setNodeScreenSpacePos
  :: CInt -- ^ node_id
  -> ImVec2 -- ^ screen_space_pos
  -> IO ()
setNodeScreenSpacePos node_id screen_space_pos =
  with screen_space_pos $ \screen_space_posPtr -> c_setNodeScreenSpacePos node_id screen_space_posPtr

-- C: void ImNodes::SnapNodeToGrid(int node_id)
foreign import capi unsafe "dcimnodes.h ImNodesSnapNodeToGrid"
  snapNodeToGrid
    :: CInt -- ^ node_id
    -> IO ()

-- C: void ImNodes::StyleColorsClassic(ImNodesStyle* dest)
foreign import capi unsafe "dcimnodes.h ImNodesStyleColorsClassic"
  styleColorsClassic
    :: (Ptr Style) -- ^ dest
    -> IO ()

-- C: void ImNodes::StyleColorsDark(ImNodesStyle* dest)
foreign import capi unsafe "dcimnodes.h ImNodesStyleColorsDark"
  styleColorsDark
    :: (Ptr Style) -- ^ dest
    -> IO ()

-- C: void ImNodes::StyleColorsLight(ImNodesStyle* dest)
foreign import capi unsafe "dcimnodes.h ImNodesStyleColorsLight"
  styleColorsLight
    :: (Ptr Style) -- ^ dest
    -> IO ()