packages feed

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

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

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

module DearImGui.Raw.ImGui
  ( acceptDragDropPayload
  , alignTextToFramePadding
  , arrowButton
  , begin
  , beginChild
  , beginChildID
  , beginCombo
  , beginDisabled
  , beginDragDropSource
  , beginDragDropTarget
  , beginGroup
  , beginItemTooltip
  , beginListBox
  , beginMainMenuBar
  , beginMenu
  , beginMenuBar
  , beginMultiSelect
  , beginPopup
  , beginPopupContextItem
  , beginPopupContextVoid
  , beginPopupContextWindow
  , beginPopupModal
  , beginTabBar
  , beginTabItem
  , beginTable
  , beginTooltip
  , bullet
  , bulletTextUnformatted
  , button
  , c_beginChild
  , c_beginChildID
  , c_beginListBox
  , c_beginTable
  , c_button
  , c_calcTextSize
  , c_colorButton
  , c_colorConvertFloat4ToU32
  , c_colorConvertU32ToFloat4
  , c_dockSpace
  , c_dummy
  , c_getColorU32ImVec4
  , c_getContentRegionAvail
  , c_getCursorPos
  , c_getCursorScreenPos
  , c_getCursorStartPos
  , c_getFontTexUvWhitePixel
  , c_getItemRectMax
  , c_getItemRectMin
  , c_getItemRectSize
  , c_getMouseDragDelta
  , c_getMousePos
  , c_getMousePosOnOpeningCurrentPopup
  , c_getWindowPos
  , c_getWindowSize
  , c_image
  , c_imageButton
  , c_imageWithBg
  , c_inputTextMultiline
  , c_invisibleButton
  , c_isMouseHoveringRect
  , c_isRectVisible
  , c_isRectVisibleBySize
  , c_plotHistogram
  , c_plotHistogramCallback
  , c_plotLines
  , c_plotLinesCallback
  , c_progressBar
  , c_pushClipRect
  , c_pushStyleColorImVec4
  , c_pushStyleVarImVec2
  , c_selectable
  , c_selectableBoolPtr
  , c_setCursorPos
  , c_setCursorScreenPos
  , c_setNextWindowContentSize
  , c_setNextWindowPos
  , c_setNextWindowScroll
  , c_setNextWindowSize
  , c_setNextWindowSizeConstraints
  , c_setWindowPos
  , c_setWindowPosStr
  , c_setWindowSize
  , c_setWindowSizeStr
  , c_textColoredUnformatted
  , c_vSliderFloat
  , c_vSliderInt
  , c_vSliderScalar
  , calcItemWidth
  , calcTextSize
  , checkbox
  , checkboxFlagsIntPtr
  , checkboxFlagsUintPtr
  , closeCurrentPopup
  , collapsingHeader
  , collapsingHeaderBoolPtr
  , colorButton
  , colorConvertFloat4ToU32
  , colorConvertHSVtoRGB
  , colorConvertRGBtoHSV
  , colorConvertU32ToFloat4
  , colorEdit3
  , colorEdit4
  , colorPicker3
  , colorPicker4
  , columns
  , combo
  , comboCallback
  , comboChar
  , createContext
  , debugCheckVersionAndDataLayout
  , debugFlashStyleColor
  , debugLogUnformatted
  , debugStartItemPicker
  , debugTextEncoding
  , destroyContext
  , destroyPlatformWindows
  , dockSpace
  , dockSpaceOverViewport
  , dragFloat
  , dragFloat2
  , dragFloat3
  , dragFloat4
  , dragFloatRange2
  , dragInt
  , dragInt2
  , dragInt3
  , dragInt4
  , dragIntRange2
  , dragScalar
  , dragScalarN
  , dummy
  , end
  , endChild
  , endCombo
  , endDisabled
  , endDragDropSource
  , endDragDropTarget
  , endFrame
  , endGroup
  , endListBox
  , endMainMenuBar
  , endMenu
  , endMenuBar
  , endMultiSelect
  , endPopup
  , endTabBar
  , endTabItem
  , endTable
  , endTooltip
  , findViewportByID
  , findViewportByPlatformHandle
  , getAllocatorFunctions
  , getBackgroundDrawList
  , getClipboardText
  , getColorU32
  , getColorU32ImU32
  , getColorU32ImVec4
  , getColumnIndex
  , getColumnOffset
  , getColumnWidth
  , getColumnsCount
  , getContentRegionAvail
  , getCurrentContext
  , getCursorPos
  , getCursorPosX
  , getCursorPosY
  , getCursorScreenPos
  , getCursorStartPos
  , getDragDropPayload
  , getDrawData
  , getDrawListSharedData
  , getFont
  , getFontBaked
  , getFontSize
  , getFontTexUvWhitePixel
  , getForegroundDrawList
  , getFrameCount
  , getFrameHeight
  , getFrameHeightWithSpacing
  , getID
  , getIDInt
  , getIDPtr
  , getIDStr
  , getIO
  , getItemClickedCountWithSingleClickDelay
  , getItemFlags
  , getItemID
  , getItemRectMax
  , getItemRectMin
  , getItemRectSize
  , getKeyName
  , getKeyPressedAmount
  , getMainViewport
  , getMouseClickedCount
  , getMouseCursor
  , getMouseDragDelta
  , getMousePos
  , getMousePosOnOpeningCurrentPopup
  , getPlatformIO
  , getScrollMaxX
  , getScrollMaxY
  , getScrollX
  , getScrollY
  , getStateStorage
  , getStyle
  , getStyleColorName
  , getStyleColorVec4
  , getTextLineHeight
  , getTextLineHeightWithSpacing
  , getTime
  , getTreeNodeToLabelSpacing
  , getVersion
  , getWindowDockID
  , getWindowDpiScale
  , getWindowDrawList
  , getWindowHeight
  , getWindowPos
  , getWindowSize
  , getWindowViewport
  , getWindowWidth
  , image
  , imageButton
  , imageWithBg
  , indent
  , inputDouble
  , inputFloat
  , inputFloat2
  , inputFloat3
  , inputFloat4
  , inputInt
  , inputInt2
  , inputInt3
  , inputInt4
  , inputScalar
  , inputScalarN
  , inputText
  , inputTextMultiline
  , inputTextWithHint
  , invisibleButton
  , isAnyItemActive
  , isAnyItemFocused
  , isAnyItemHovered
  , isAnyMouseDown
  , isItemActivated
  , isItemActive
  , isItemClicked
  , isItemDeactivated
  , isItemDeactivatedAfterEdit
  , isItemEdited
  , isItemFocused
  , isItemHovered
  , isItemToggledOpen
  , isItemToggledSelection
  , isItemVisible
  , isKeyChordPressed
  , isKeyDown
  , isKeyPressed
  , isKeyReleased
  , isMouseClicked
  , isMouseDoubleClicked
  , isMouseDown
  , isMouseDragging
  , isMouseHoveringRect
  , isMousePosValid
  , isMouseReleased
  , isMouseReleasedWithDelay
  , isPopupOpen
  , isRectVisible
  , isRectVisibleBySize
  , isWindowAppearing
  , isWindowCollapsed
  , isWindowDocked
  , isWindowFocused
  , isWindowHovered
  , labelTextUnformatted
  , listBox
  , listBoxCallback
  , loadIniSettingsFromDisk
  , loadIniSettingsFromMemory
  , logButtons
  , logFinish
  , logTextUnformatted
  , logToClipboard
  , logToFile
  , logToTTY
  , memAlloc
  , memFree
  , menuItem
  , menuItemBoolPtr
  , newFrame
  , newLine
  , nextColumn
  , openPopup
  , openPopupID
  , openPopupOnItemClick
  , plotHistogram
  , plotHistogramCallback
  , plotLines
  , plotLinesCallback
  , popClipRect
  , popFont
  , popID
  , popItemFlag
  , popItemWidth
  , popStyleColor
  , popStyleVar
  , popTextWrapPos
  , progressBar
  , pushClipRect
  , pushFontFloat
  , pushID
  , pushIDInt
  , pushIDPtr
  , pushIDStr
  , pushItemFlag
  , pushItemWidth
  , pushStyleColor
  , pushStyleColorImVec4
  , pushStyleVar
  , pushStyleVarImVec2
  , pushStyleVarX
  , pushStyleVarY
  , pushTextWrapPos
  , radioButton
  , radioButtonIntPtr
  , render
  , renderPlatformWindowsDefault
  , resetMouseDragDelta
  , sameLine
  , saveIniSettingsToDisk
  , saveIniSettingsToMemory
  , selectable
  , selectableBoolPtr
  , separator
  , separatorText
  , setAllocatorFunctions
  , setClipboardText
  , setColumnOffset
  , setColumnWidth
  , setCurrentContext
  , setCursorPos
  , setCursorPosX
  , setCursorPosY
  , setCursorScreenPos
  , setDragDropPayload
  , setItemDefaultFocus
  , setItemKeyOwner
  , setItemTooltipUnformatted
  , setKeyboardFocusHere
  , setMouseCursor
  , setNavCursorVisible
  , setNextFrameWantCaptureKeyboard
  , setNextFrameWantCaptureMouse
  , setNextItemAllowOverlap
  , setNextItemOpen
  , setNextItemSelectionUserData
  , setNextItemShortcut
  , setNextItemStorageID
  , setNextItemWidth
  , setNextWindowBgAlpha
  , setNextWindowClass
  , setNextWindowCollapsed
  , setNextWindowContentSize
  , setNextWindowDockID
  , setNextWindowFocus
  , setNextWindowPos
  , setNextWindowScroll
  , setNextWindowSize
  , setNextWindowSizeConstraints
  , setNextWindowViewport
  , setScrollFromPosX
  , setScrollFromPosY
  , setScrollHereX
  , setScrollHereY
  , setScrollX
  , setScrollY
  , setStateStorage
  , setTabItemClosed
  , setTooltipUnformatted
  , setWindowCollapsed
  , setWindowCollapsedStr
  , setWindowFocus
  , setWindowFocusStr
  , setWindowPos
  , setWindowPosStr
  , setWindowSize
  , setWindowSizeStr
  , shortcut
  , showAboutWindow
  , showDebugLogWindow
  , showDemoWindow
  , showFontSelector
  , showIDStackToolWindow
  , showMetricsWindow
  , showStyleEditor
  , showStyleSelector
  , showUserGuide
  , sliderAngle
  , sliderFloat
  , sliderFloat2
  , sliderFloat3
  , sliderFloat4
  , sliderInt
  , sliderInt2
  , sliderInt3
  , sliderInt4
  , sliderScalar
  , sliderScalarN
  , smallButton
  , spacing
  , styleColorsClassic
  , styleColorsDark
  , styleColorsLight
  , tabItemButton
  , tableAngledHeadersRow
  , tableGetColumnCount
  , tableGetColumnFlags
  , tableGetColumnIndex
  , tableGetColumnName
  , tableGetHoveredColumn
  , tableGetRowIndex
  , tableGetSortSpecs
  , tableHeader
  , tableHeadersRow
  , tableNextColumn
  , tableNextRow
  , tableSetBgColor
  , tableSetColumnEnabled
  , tableSetColumnIndex
  , tableSetupColumn
  , tableSetupScrollFreeze
  , textColoredUnformatted
  , textDisabledUnformatted
  , textLink
  , textLinkOpenURL
  , textUnformatted
  , textWrappedUnformatted
  , treeNode
  , treeNodeEx
  , treeNodeExPtrUnformatted
  , treeNodeExStrUnformatted
  , treeNodeGetOpen
  , treeNodePtrUnformatted
  , treeNodeStrUnformatted
  , treePop
  , treePush
  , treePushPtr
  , unindent
  , updatePlatformWindows
  , vSliderFloat
  , vSliderInt
  , vSliderScalar
  ) where

import DearImGui.Raw (ImGuiID, ImGuiInputTextCallback, ImGuiKeyChord, ImGuiMemAllocFunc, ImGuiMemFreeFunc, ImGuiSelectionUserData, ImGuiSizeCallback, ImU32)
import DearImGui.Raw.Enums.ImGuiButtonFlags (ImGuiButtonFlags)
import DearImGui.Raw.Enums.ImGuiChildFlags (ImGuiChildFlags)
import DearImGui.Raw.Enums.ImGuiCol (ImGuiCol)
import DearImGui.Raw.Enums.ImGuiColorEditFlags (ImGuiColorEditFlags)
import DearImGui.Raw.Enums.ImGuiComboFlags (ImGuiComboFlags)
import DearImGui.Raw.Enums.ImGuiCond (ImGuiCond)
import DearImGui.Raw.Enums.ImGuiDataType (ImGuiDataType)
import DearImGui.Raw.Enums.ImGuiDir (ImGuiDir)
import DearImGui.Raw.Enums.ImGuiDockNodeFlags (ImGuiDockNodeFlags)
import DearImGui.Raw.Enums.ImGuiDragDropFlags (ImGuiDragDropFlags)
import DearImGui.Raw.Enums.ImGuiFocusedFlags (ImGuiFocusedFlags)
import DearImGui.Raw.Enums.ImGuiHoveredFlags (ImGuiHoveredFlags)
import DearImGui.Raw.Enums.ImGuiInputFlags (ImGuiInputFlags)
import DearImGui.Raw.Enums.ImGuiInputTextFlags (ImGuiInputTextFlags)
import DearImGui.Raw.Enums.ImGuiItemFlags (ImGuiItemFlags)
import DearImGui.Raw.Enums.ImGuiKey (ImGuiKey)
import DearImGui.Raw.Enums.ImGuiMouseButton (ImGuiMouseButton)
import DearImGui.Raw.Enums.ImGuiMouseCursor (ImGuiMouseCursor)
import DearImGui.Raw.Enums.ImGuiMultiSelectFlags (ImGuiMultiSelectFlags)
import DearImGui.Raw.Enums.ImGuiPopupFlags (ImGuiPopupFlags)
import DearImGui.Raw.Enums.ImGuiSelectableFlags (ImGuiSelectableFlags)
import DearImGui.Raw.Enums.ImGuiSliderFlags (ImGuiSliderFlags)
import DearImGui.Raw.Enums.ImGuiStyleVar (ImGuiStyleVar)
import DearImGui.Raw.Enums.ImGuiTabBarFlags (ImGuiTabBarFlags)
import DearImGui.Raw.Enums.ImGuiTabItemFlags (ImGuiTabItemFlags)
import DearImGui.Raw.Enums.ImGuiTableBgTarget (ImGuiTableBgTarget)
import DearImGui.Raw.Enums.ImGuiTableColumnFlags (ImGuiTableColumnFlags)
import DearImGui.Raw.Enums.ImGuiTableFlags (ImGuiTableFlags)
import DearImGui.Raw.Enums.ImGuiTableRowFlags (ImGuiTableRowFlags)
import DearImGui.Raw.Enums.ImGuiTreeNodeFlags (ImGuiTreeNodeFlags)
import DearImGui.Raw.Enums.ImGuiWindowFlags (ImGuiWindowFlags)
import DearImGui.Raw.ImDrawData (ImDrawData)
import DearImGui.Raw.ImDrawList (ImDrawList)
import DearImGui.Raw.ImDrawListSharedData (ImDrawListSharedData)
import DearImGui.Raw.ImFont (ImFont)
import DearImGui.Raw.ImFontAtlas (ImFontAtlas)
import DearImGui.Raw.ImFontBaked (ImFontBaked)
import DearImGui.Raw.ImGuiContext (ImGuiContext)
import DearImGui.Raw.ImGuiIO (ImGuiIO)
import DearImGui.Raw.ImGuiMultiSelectIO (ImGuiMultiSelectIO)
import DearImGui.Raw.ImGuiPayload (ImGuiPayload)
import DearImGui.Raw.ImGuiPlatformIO (ImGuiPlatformIO)
import DearImGui.Raw.ImGuiStorage (ImGuiStorage)
import DearImGui.Raw.ImGuiStyle (ImGuiStyle)
import DearImGui.Raw.ImGuiTableSortSpecs (ImGuiTableSortSpecs)
import DearImGui.Raw.ImGuiViewport (ImGuiViewport)
import DearImGui.Raw.ImGuiWindowClass (ImGuiWindowClass)
import DearImGui.Raw.ImTextureRef (ImTextureRef)
import DearImGui.Raw.ImVec2 (ImVec2)
import DearImGui.Raw.ImVec4 (ImVec4)
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 "dcimgui_nodefaultargfunctions.h"

-- functions

-- C: const ImGuiPayload* ImGui::AcceptDragDropPayload(const char* type, ImGuiDragDropFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_AcceptDragDropPayload"
  acceptDragDropPayload
    :: CString -- ^ type
    -> ImGuiDragDropFlags -- ^ flags
    -> IO (Ptr ImGuiPayload)

-- C: void ImGui::AlignTextToFramePadding()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_AlignTextToFramePadding"
  alignTextToFramePadding :: IO ()

-- C: bool ImGui::ArrowButton(const char* str_id, ImGuiDir dir)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_ArrowButton"
  arrowButton
    :: CString -- ^ str_id
    -> ImGuiDir -- ^ dir
    -> IO CBool

-- C: bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_Begin"
  begin
    :: CString -- ^ name
    -> (Ptr CBool) -- ^ p_open
    -> ImGuiWindowFlags -- ^ flags
    -> IO CBool

foreign import capi unsafe "DearImGuiWrappers.h ImGui_BeginChild_wrap"
  c_beginChild
    :: CString -- ^ str_id
    -> (Ptr ImVec2) -- ^ size
    -> ImGuiChildFlags -- ^ child_flags
    -> ImGuiWindowFlags -- ^ window_flags
    -> IO CBool

beginChild
  :: CString -- ^ str_id
  -> ImVec2 -- ^ size
  -> ImGuiChildFlags -- ^ child_flags
  -> ImGuiWindowFlags -- ^ window_flags
  -> IO CBool
beginChild str_id size child_flags window_flags =
  with size $ \sizePtr -> c_beginChild str_id sizePtr child_flags window_flags

foreign import capi unsafe "DearImGuiWrappers.h ImGui_BeginChildID_wrap"
  c_beginChildID
    :: ImGuiID -- ^ id
    -> (Ptr ImVec2) -- ^ size
    -> ImGuiChildFlags -- ^ child_flags
    -> ImGuiWindowFlags -- ^ window_flags
    -> IO CBool

beginChildID
  :: ImGuiID -- ^ id
  -> ImVec2 -- ^ size
  -> ImGuiChildFlags -- ^ child_flags
  -> ImGuiWindowFlags -- ^ window_flags
  -> IO CBool
beginChildID id_ size child_flags window_flags =
  with size $ \sizePtr -> c_beginChildID id_ sizePtr child_flags window_flags

-- C: bool ImGui::BeginCombo(const char* label, const char* preview_value, ImGuiComboFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_BeginCombo"
  beginCombo
    :: CString -- ^ label
    -> CString -- ^ preview_value
    -> ImGuiComboFlags -- ^ flags
    -> IO CBool

-- C: void ImGui::BeginDisabled(bool disabled)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_BeginDisabled"
  beginDisabled
    :: CBool -- ^ disabled
    -> IO ()

-- C: bool ImGui::BeginDragDropSource(ImGuiDragDropFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_BeginDragDropSource"
  beginDragDropSource
    :: ImGuiDragDropFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::BeginDragDropTarget()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_BeginDragDropTarget"
  beginDragDropTarget :: IO CBool

-- C: void ImGui::BeginGroup()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_BeginGroup"
  beginGroup :: IO ()

-- C: bool ImGui::BeginItemTooltip()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_BeginItemTooltip"
  beginItemTooltip :: IO CBool

foreign import capi unsafe "DearImGuiWrappers.h ImGui_BeginListBox_wrap"
  c_beginListBox
    :: CString -- ^ label
    -> (Ptr ImVec2) -- ^ size
    -> IO CBool

beginListBox
  :: CString -- ^ label
  -> ImVec2 -- ^ size
  -> IO CBool
beginListBox label size =
  with size $ \sizePtr -> c_beginListBox label sizePtr

-- C: bool ImGui::BeginMainMenuBar()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_BeginMainMenuBar"
  beginMainMenuBar :: IO CBool

-- C: bool ImGui::BeginMenu(const char* label, bool enabled)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_BeginMenu"
  beginMenu
    :: CString -- ^ label
    -> CBool -- ^ enabled
    -> IO CBool

-- C: bool ImGui::BeginMenuBar()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_BeginMenuBar"
  beginMenuBar :: IO CBool

-- C: ImGuiMultiSelectIO* ImGui::BeginMultiSelect(ImGuiMultiSelectFlags flags, int selection_size, int items_count)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_BeginMultiSelect"
  beginMultiSelect
    :: ImGuiMultiSelectFlags -- ^ flags
    -> CInt -- ^ selection_size
    -> CInt -- ^ items_count
    -> IO (Ptr ImGuiMultiSelectIO)

-- C: bool ImGui::BeginPopup(const char* str_id, ImGuiWindowFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_BeginPopup"
  beginPopup
    :: CString -- ^ str_id
    -> ImGuiWindowFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::BeginPopupContextItem(const char* str_id, ImGuiPopupFlags popup_flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_BeginPopupContextItem"
  beginPopupContextItem
    :: CString -- ^ str_id
    -> ImGuiPopupFlags -- ^ popup_flags
    -> IO CBool

-- C: bool ImGui::BeginPopupContextVoid(const char* str_id, ImGuiPopupFlags popup_flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_BeginPopupContextVoid"
  beginPopupContextVoid
    :: CString -- ^ str_id
    -> ImGuiPopupFlags -- ^ popup_flags
    -> IO CBool

-- C: bool ImGui::BeginPopupContextWindow(const char* str_id, ImGuiPopupFlags popup_flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_BeginPopupContextWindow"
  beginPopupContextWindow
    :: CString -- ^ str_id
    -> ImGuiPopupFlags -- ^ popup_flags
    -> IO CBool

-- C: bool ImGui::BeginPopupModal(const char* name, bool* p_open, ImGuiWindowFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_BeginPopupModal"
  beginPopupModal
    :: CString -- ^ name
    -> (Ptr CBool) -- ^ p_open
    -> ImGuiWindowFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::BeginTabBar(const char* str_id, ImGuiTabBarFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_BeginTabBar"
  beginTabBar
    :: CString -- ^ str_id
    -> ImGuiTabBarFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::BeginTabItem(const char* label, bool* p_open, ImGuiTabItemFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_BeginTabItem"
  beginTabItem
    :: CString -- ^ label
    -> (Ptr CBool) -- ^ p_open
    -> ImGuiTabItemFlags -- ^ flags
    -> IO CBool

foreign import capi unsafe "DearImGuiWrappers.h ImGui_BeginTable_wrap"
  c_beginTable
    :: CString -- ^ str_id
    -> CInt -- ^ columns
    -> ImGuiTableFlags -- ^ flags
    -> (Ptr ImVec2) -- ^ outer_size
    -> Float -- ^ inner_width
    -> IO CBool

beginTable
  :: CString -- ^ str_id
  -> CInt -- ^ columns
  -> ImGuiTableFlags -- ^ flags
  -> ImVec2 -- ^ outer_size
  -> Float -- ^ inner_width
  -> IO CBool
beginTable str_id columns flags outer_size inner_width =
  with outer_size $ \outer_sizePtr -> c_beginTable str_id columns flags outer_sizePtr inner_width

-- C: bool ImGui::BeginTooltip()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_BeginTooltip"
  beginTooltip :: IO CBool

-- C: void ImGui::Bullet()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_Bullet"
  bullet :: IO ()

-- C: void ImGui::BulletText(const char* text)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_BulletTextUnformatted"
  bulletTextUnformatted
    :: CString -- ^ text
    -> IO ()

foreign import capi unsafe "DearImGuiWrappers.h ImGui_Button_wrap"
  c_button
    :: CString -- ^ label
    -> (Ptr ImVec2) -- ^ size
    -> IO CBool

button
  :: CString -- ^ label
  -> ImVec2 -- ^ size
  -> IO CBool
button label size =
  with size $ \sizePtr -> c_button label sizePtr

-- C: float ImGui::CalcItemWidth()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_CalcItemWidth"
  calcItemWidth :: IO Float

foreign import capi unsafe "DearImGuiWrappers.h ImGui_CalcTextSize_wrap"
  c_calcTextSize
    :: CString -- ^ text
    -> CString -- ^ text_end
    -> CBool -- ^ hide_text_after_double_hash
    -> Float -- ^ wrap_width
    -> (Ptr ImVec2) -- ^ out
    -> IO ()

calcTextSize
  :: CString -- ^ text
  -> CString -- ^ text_end
  -> CBool -- ^ hide_text_after_double_hash
  -> Float -- ^ wrap_width
  -> IO ImVec2
calcTextSize text text_end hide_text_after_double_hash wrap_width =
  alloca $ \outPtr -> c_calcTextSize text text_end hide_text_after_double_hash wrap_width outPtr >> peek outPtr

-- C: bool ImGui::Checkbox(const char* label, bool* v)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_Checkbox"
  checkbox
    :: CString -- ^ label
    -> (Ptr CBool) -- ^ v
    -> IO CBool

-- C: bool ImGui::CheckboxFlags(const char* label, int* flags, int flags_value)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_CheckboxFlagsIntPtr"
  checkboxFlagsIntPtr
    :: CString -- ^ label
    -> (Ptr CInt) -- ^ flags
    -> CInt -- ^ flags_value
    -> IO CBool

-- C: bool ImGui::CheckboxFlags(const char* label, unsigned int* flags, unsigned int flags_value)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_CheckboxFlagsUintPtr"
  checkboxFlagsUintPtr
    :: CString -- ^ label
    -> (Ptr CUInt) -- ^ flags
    -> CUInt -- ^ flags_value
    -> IO CBool

-- C: void ImGui::CloseCurrentPopup()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_CloseCurrentPopup"
  closeCurrentPopup :: IO ()

-- C: bool ImGui::CollapsingHeader(const char* label, ImGuiTreeNodeFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_CollapsingHeader"
  collapsingHeader
    :: CString -- ^ label
    -> ImGuiTreeNodeFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::CollapsingHeader(const char* label, bool* p_visible, ImGuiTreeNodeFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_CollapsingHeaderBoolPtr"
  collapsingHeaderBoolPtr
    :: CString -- ^ label
    -> (Ptr CBool) -- ^ p_visible
    -> ImGuiTreeNodeFlags -- ^ flags
    -> IO CBool

foreign import capi unsafe "DearImGuiWrappers.h ImGui_ColorButton_wrap"
  c_colorButton
    :: CString -- ^ desc_id
    -> (Ptr ImVec4) -- ^ col
    -> ImGuiColorEditFlags -- ^ flags
    -> (Ptr ImVec2) -- ^ size
    -> IO CBool

colorButton
  :: CString -- ^ desc_id
  -> ImVec4 -- ^ col
  -> ImGuiColorEditFlags -- ^ flags
  -> ImVec2 -- ^ size
  -> IO CBool
colorButton desc_id col flags size =
  with col $ \colPtr -> with size $ \sizePtr -> c_colorButton desc_id colPtr flags sizePtr

foreign import capi unsafe "DearImGuiWrappers.h ImGui_ColorConvertFloat4ToU32_wrap"
  c_colorConvertFloat4ToU32
    :: (Ptr ImVec4) -- ^ in
    -> IO ImU32

colorConvertFloat4ToU32
  :: ImVec4 -- ^ in
  -> IO ImU32
colorConvertFloat4ToU32 in_ =
  with in_ $ \in_Ptr -> c_colorConvertFloat4ToU32 in_Ptr

-- C: void ImGui::ColorConvertHSVtoRGB(float h, float s, float v, float* out_r, float* out_g, float* out_b)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_ColorConvertHSVtoRGB"
  colorConvertHSVtoRGB
    :: Float -- ^ h
    -> Float -- ^ s
    -> Float -- ^ v
    -> (Ptr Float) -- ^ out_r
    -> (Ptr Float) -- ^ out_g
    -> (Ptr Float) -- ^ out_b
    -> IO ()

-- C: void ImGui::ColorConvertRGBtoHSV(float r, float g, float b, float* out_h, float* out_s, float* out_v)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_ColorConvertRGBtoHSV"
  colorConvertRGBtoHSV
    :: Float -- ^ r
    -> Float -- ^ g
    -> Float -- ^ b
    -> (Ptr Float) -- ^ out_h
    -> (Ptr Float) -- ^ out_s
    -> (Ptr Float) -- ^ out_v
    -> IO ()

foreign import capi unsafe "DearImGuiWrappers.h ImGui_ColorConvertU32ToFloat4_wrap"
  c_colorConvertU32ToFloat4
    :: ImU32 -- ^ in
    -> (Ptr ImVec4) -- ^ out
    -> IO ()

colorConvertU32ToFloat4
  :: ImU32 -- ^ in
  -> IO ImVec4
colorConvertU32ToFloat4 in_ =
  alloca $ \outPtr -> c_colorConvertU32ToFloat4 in_ outPtr >> peek outPtr

-- C: bool ImGui::ColorEdit3(const char* label, float[3] col, ImGuiColorEditFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_ColorEdit3"
  colorEdit3
    :: CString -- ^ label
    -> (Ptr Float) -- ^ col
    -> ImGuiColorEditFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::ColorEdit4(const char* label, float[4] col, ImGuiColorEditFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_ColorEdit4"
  colorEdit4
    :: CString -- ^ label
    -> (Ptr Float) -- ^ col
    -> ImGuiColorEditFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::ColorPicker3(const char* label, float[3] col, ImGuiColorEditFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_ColorPicker3"
  colorPicker3
    :: CString -- ^ label
    -> (Ptr Float) -- ^ col
    -> ImGuiColorEditFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::ColorPicker4(const char* label, float[4] col, ImGuiColorEditFlags flags, const float* ref_col)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_ColorPicker4"
  colorPicker4
    :: CString -- ^ label
    -> (Ptr Float) -- ^ col
    -> ImGuiColorEditFlags -- ^ flags
    -> (Ptr Float) -- ^ ref_col
    -> IO CBool

-- C: void ImGui::Columns(int count, const char* id, bool borders)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_Columns"
  columns
    :: CInt -- ^ count
    -> CString -- ^ id
    -> CBool -- ^ borders
    -> IO ()

-- C: bool ImGui::Combo(const char* label, int* current_item, const char* items_separated_by_zeros, int popup_max_height_in_items)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_Combo"
  combo
    :: CString -- ^ label
    -> (Ptr CInt) -- ^ current_item
    -> CString -- ^ items_separated_by_zeros
    -> CInt -- ^ popup_max_height_in_items
    -> IO CBool

-- C: bool ImGui::Combo(const char* label, int* current_item, const char* (*getter)(void* user_data, int idx) getter, void* user_data, int items_count, int popup_max_height_in_items)
foreign import capi safe "dcimgui_nodefaultargfunctions.h ImGui_ComboCallback"
  comboCallback
    :: CString -- ^ label
    -> (Ptr CInt) -- ^ current_item
    -> (FunPtr ((Ptr ()) -> CInt -> IO CString)) -- ^ getter
    -> (Ptr ()) -- ^ user_data
    -> CInt -- ^ items_count
    -> CInt -- ^ popup_max_height_in_items
    -> IO CBool

-- C: bool ImGui::Combo(const char* label, int* current_item, const char*const[] items, int items_count, int popup_max_height_in_items)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_ComboChar"
  comboChar
    :: CString -- ^ label
    -> (Ptr CInt) -- ^ current_item
    -> (Ptr CString) -- ^ items
    -> CInt -- ^ items_count
    -> CInt -- ^ popup_max_height_in_items
    -> IO CBool

-- C: ImGuiContext* ImGui::CreateContext(ImFontAtlas* shared_font_atlas)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_CreateContext"
  createContext
    :: (Ptr ImFontAtlas) -- ^ shared_font_atlas
    -> IO (Ptr ImGuiContext)

-- C: bool ImGui::DebugCheckVersionAndDataLayout(const char* version_str, size_t sz_io, size_t sz_style, size_t sz_vec2, size_t sz_vec4, size_t sz_drawvert, size_t sz_drawidx)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_DebugCheckVersionAndDataLayout"
  debugCheckVersionAndDataLayout
    :: CString -- ^ version_str
    -> CSize -- ^ sz_io
    -> CSize -- ^ sz_style
    -> CSize -- ^ sz_vec2
    -> CSize -- ^ sz_vec4
    -> CSize -- ^ sz_drawvert
    -> CSize -- ^ sz_drawidx
    -> IO CBool

-- C: void ImGui::DebugFlashStyleColor(ImGuiCol idx)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_DebugFlashStyleColor"
  debugFlashStyleColor
    :: ImGuiCol -- ^ idx
    -> IO ()

-- C: void ImGui::DebugLog(const char* text)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_DebugLogUnformatted"
  debugLogUnformatted
    :: CString -- ^ text
    -> IO ()

-- C: void ImGui::DebugStartItemPicker()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_DebugStartItemPicker"
  debugStartItemPicker :: IO ()

-- C: void ImGui::DebugTextEncoding(const char* text)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_DebugTextEncoding"
  debugTextEncoding
    :: CString -- ^ text
    -> IO ()

-- C: void ImGui::DestroyContext(ImGuiContext* ctx)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_DestroyContext"
  destroyContext
    :: (Ptr ImGuiContext) -- ^ ctx
    -> IO ()

-- C: void ImGui::DestroyPlatformWindows()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_DestroyPlatformWindows"
  destroyPlatformWindows :: IO ()

foreign import capi unsafe "DearImGuiWrappers.h ImGui_DockSpace_wrap"
  c_dockSpace
    :: ImGuiID -- ^ dockspace_id
    -> (Ptr ImVec2) -- ^ size
    -> ImGuiDockNodeFlags -- ^ flags
    -> (Ptr ImGuiWindowClass) -- ^ window_class
    -> IO ImGuiID

dockSpace
  :: ImGuiID -- ^ dockspace_id
  -> ImVec2 -- ^ size
  -> ImGuiDockNodeFlags -- ^ flags
  -> (Ptr ImGuiWindowClass) -- ^ window_class
  -> IO ImGuiID
dockSpace dockspace_id size flags window_class =
  with size $ \sizePtr -> c_dockSpace dockspace_id sizePtr flags window_class

-- C: ImGuiID ImGui::DockSpaceOverViewport(ImGuiID dockspace_id, const ImGuiViewport* viewport, ImGuiDockNodeFlags flags, const ImGuiWindowClass* window_class)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_DockSpaceOverViewport"
  dockSpaceOverViewport
    :: ImGuiID -- ^ dockspace_id
    -> (Ptr ImGuiViewport) -- ^ viewport
    -> ImGuiDockNodeFlags -- ^ flags
    -> (Ptr ImGuiWindowClass) -- ^ window_class
    -> IO ImGuiID

-- C: bool ImGui::DragFloat(const char* label, float* v, float v_speed, float v_min, float v_max, const char* format, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_DragFloat"
  dragFloat
    :: CString -- ^ label
    -> (Ptr Float) -- ^ v
    -> Float -- ^ v_speed
    -> Float -- ^ v_min
    -> Float -- ^ v_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::DragFloat2(const char* label, float[2] v, float v_speed, float v_min, float v_max, const char* format, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_DragFloat2"
  dragFloat2
    :: CString -- ^ label
    -> (Ptr Float) -- ^ v
    -> Float -- ^ v_speed
    -> Float -- ^ v_min
    -> Float -- ^ v_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::DragFloat3(const char* label, float[3] v, float v_speed, float v_min, float v_max, const char* format, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_DragFloat3"
  dragFloat3
    :: CString -- ^ label
    -> (Ptr Float) -- ^ v
    -> Float -- ^ v_speed
    -> Float -- ^ v_min
    -> Float -- ^ v_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::DragFloat4(const char* label, float[4] v, float v_speed, float v_min, float v_max, const char* format, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_DragFloat4"
  dragFloat4
    :: CString -- ^ label
    -> (Ptr Float) -- ^ v
    -> Float -- ^ v_speed
    -> Float -- ^ v_min
    -> Float -- ^ v_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::DragFloatRange2(const char* label, float* v_current_min, float* v_current_max, float v_speed, float v_min, float v_max, const char* format, const char* format_max, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_DragFloatRange2"
  dragFloatRange2
    :: CString -- ^ label
    -> (Ptr Float) -- ^ v_current_min
    -> (Ptr Float) -- ^ v_current_max
    -> Float -- ^ v_speed
    -> Float -- ^ v_min
    -> Float -- ^ v_max
    -> CString -- ^ format
    -> CString -- ^ format_max
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::DragInt(const char* label, int* v, float v_speed, int v_min, int v_max, const char* format, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_DragInt"
  dragInt
    :: CString -- ^ label
    -> (Ptr CInt) -- ^ v
    -> Float -- ^ v_speed
    -> CInt -- ^ v_min
    -> CInt -- ^ v_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::DragInt2(const char* label, int[2] v, float v_speed, int v_min, int v_max, const char* format, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_DragInt2"
  dragInt2
    :: CString -- ^ label
    -> (Ptr CInt) -- ^ v
    -> Float -- ^ v_speed
    -> CInt -- ^ v_min
    -> CInt -- ^ v_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::DragInt3(const char* label, int[3] v, float v_speed, int v_min, int v_max, const char* format, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_DragInt3"
  dragInt3
    :: CString -- ^ label
    -> (Ptr CInt) -- ^ v
    -> Float -- ^ v_speed
    -> CInt -- ^ v_min
    -> CInt -- ^ v_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::DragInt4(const char* label, int[4] v, float v_speed, int v_min, int v_max, const char* format, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_DragInt4"
  dragInt4
    :: CString -- ^ label
    -> (Ptr CInt) -- ^ v
    -> Float -- ^ v_speed
    -> CInt -- ^ v_min
    -> CInt -- ^ v_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::DragIntRange2(const char* label, int* v_current_min, int* v_current_max, float v_speed, int v_min, int v_max, const char* format, const char* format_max, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_DragIntRange2"
  dragIntRange2
    :: CString -- ^ label
    -> (Ptr CInt) -- ^ v_current_min
    -> (Ptr CInt) -- ^ v_current_max
    -> Float -- ^ v_speed
    -> CInt -- ^ v_min
    -> CInt -- ^ v_max
    -> CString -- ^ format
    -> CString -- ^ format_max
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::DragScalar(const char* label, ImGuiDataType data_type, void* p_data, float v_speed, const void* p_min, const void* p_max, const char* format, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_DragScalar"
  dragScalar
    :: CString -- ^ label
    -> ImGuiDataType -- ^ data_type
    -> (Ptr ()) -- ^ p_data
    -> Float -- ^ v_speed
    -> (Ptr ()) -- ^ p_min
    -> (Ptr ()) -- ^ p_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::DragScalarN(const char* label, ImGuiDataType data_type, void* p_data, int components, float v_speed, const void* p_min, const void* p_max, const char* format, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_DragScalarN"
  dragScalarN
    :: CString -- ^ label
    -> ImGuiDataType -- ^ data_type
    -> (Ptr ()) -- ^ p_data
    -> CInt -- ^ components
    -> Float -- ^ v_speed
    -> (Ptr ()) -- ^ p_min
    -> (Ptr ()) -- ^ p_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

foreign import capi unsafe "DearImGuiWrappers.h ImGui_Dummy_wrap"
  c_dummy
    :: (Ptr ImVec2) -- ^ size
    -> IO ()

dummy
  :: ImVec2 -- ^ size
  -> IO ()
dummy size =
  with size $ \sizePtr -> c_dummy sizePtr

-- C: void ImGui::End()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_End"
  end :: IO ()

-- C: void ImGui::EndChild()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_EndChild"
  endChild :: IO ()

-- C: void ImGui::EndCombo()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_EndCombo"
  endCombo :: IO ()

-- C: void ImGui::EndDisabled()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_EndDisabled"
  endDisabled :: IO ()

-- C: void ImGui::EndDragDropSource()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_EndDragDropSource"
  endDragDropSource :: IO ()

-- C: void ImGui::EndDragDropTarget()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_EndDragDropTarget"
  endDragDropTarget :: IO ()

-- C: void ImGui::EndFrame()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_EndFrame"
  endFrame :: IO ()

-- C: void ImGui::EndGroup()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_EndGroup"
  endGroup :: IO ()

-- C: void ImGui::EndListBox()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_EndListBox"
  endListBox :: IO ()

-- C: void ImGui::EndMainMenuBar()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_EndMainMenuBar"
  endMainMenuBar :: IO ()

-- C: void ImGui::EndMenu()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_EndMenu"
  endMenu :: IO ()

-- C: void ImGui::EndMenuBar()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_EndMenuBar"
  endMenuBar :: IO ()

-- C: ImGuiMultiSelectIO* ImGui::EndMultiSelect()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_EndMultiSelect"
  endMultiSelect :: IO (Ptr ImGuiMultiSelectIO)

-- C: void ImGui::EndPopup()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_EndPopup"
  endPopup :: IO ()

-- C: void ImGui::EndTabBar()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_EndTabBar"
  endTabBar :: IO ()

-- C: void ImGui::EndTabItem()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_EndTabItem"
  endTabItem :: IO ()

-- C: void ImGui::EndTable()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_EndTable"
  endTable :: IO ()

-- C: void ImGui::EndTooltip()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_EndTooltip"
  endTooltip :: IO ()

-- C: ImGuiViewport* ImGui::FindViewportByID(ImGuiID viewport_id)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_FindViewportByID"
  findViewportByID
    :: ImGuiID -- ^ viewport_id
    -> IO (Ptr ImGuiViewport)

-- C: ImGuiViewport* ImGui::FindViewportByPlatformHandle(void* platform_handle)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_FindViewportByPlatformHandle"
  findViewportByPlatformHandle
    :: (Ptr ()) -- ^ platform_handle
    -> IO (Ptr ImGuiViewport)

-- C: void ImGui::GetAllocatorFunctions(ImGuiMemAllocFunc* p_alloc_func, ImGuiMemFreeFunc* p_free_func, void** p_user_data)
foreign import capi safe "dcimgui_nodefaultargfunctions.h ImGui_GetAllocatorFunctions"
  getAllocatorFunctions
    :: (Ptr ImGuiMemAllocFunc) -- ^ p_alloc_func
    -> (Ptr ImGuiMemFreeFunc) -- ^ p_free_func
    -> (Ptr (Ptr ())) -- ^ p_user_data
    -> IO ()

-- C: ImDrawList* ImGui::GetBackgroundDrawList(ImGuiViewport* viewport)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetBackgroundDrawList"
  getBackgroundDrawList
    :: (Ptr ImGuiViewport) -- ^ viewport
    -> IO (Ptr ImDrawList)

-- C: const char* ImGui::GetClipboardText()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetClipboardText"
  getClipboardText :: IO CString

-- C: ImU32 ImGui::GetColorU32(ImGuiCol idx, float alpha_mul)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetColorU32"
  getColorU32
    :: ImGuiCol -- ^ idx
    -> Float -- ^ alpha_mul
    -> IO ImU32

-- C: ImU32 ImGui::GetColorU32(ImU32 col, float alpha_mul)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetColorU32ImU32"
  getColorU32ImU32
    :: ImU32 -- ^ col
    -> Float -- ^ alpha_mul
    -> IO ImU32

foreign import capi unsafe "DearImGuiWrappers.h ImGui_GetColorU32ImVec4_wrap"
  c_getColorU32ImVec4
    :: (Ptr ImVec4) -- ^ col
    -> IO ImU32

getColorU32ImVec4
  :: ImVec4 -- ^ col
  -> IO ImU32
getColorU32ImVec4 col =
  with col $ \colPtr -> c_getColorU32ImVec4 colPtr

-- C: int ImGui::GetColumnIndex()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetColumnIndex"
  getColumnIndex :: IO CInt

-- C: float ImGui::GetColumnOffset(int column_index)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetColumnOffset"
  getColumnOffset
    :: CInt -- ^ column_index
    -> IO Float

-- C: float ImGui::GetColumnWidth(int column_index)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetColumnWidth"
  getColumnWidth
    :: CInt -- ^ column_index
    -> IO Float

-- C: int ImGui::GetColumnsCount()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetColumnsCount"
  getColumnsCount :: IO CInt

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

getContentRegionAvail :: IO ImVec2
getContentRegionAvail =
  alloca $ \outPtr -> c_getContentRegionAvail outPtr >> peek outPtr

-- C: ImGuiContext* ImGui::GetCurrentContext()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetCurrentContext"
  getCurrentContext :: IO (Ptr ImGuiContext)

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

getCursorPos :: IO ImVec2
getCursorPos =
  alloca $ \outPtr -> c_getCursorPos outPtr >> peek outPtr

-- C: float ImGui::GetCursorPosX()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetCursorPosX"
  getCursorPosX :: IO Float

-- C: float ImGui::GetCursorPosY()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetCursorPosY"
  getCursorPosY :: IO Float

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

getCursorScreenPos :: IO ImVec2
getCursorScreenPos =
  alloca $ \outPtr -> c_getCursorScreenPos outPtr >> peek outPtr

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

getCursorStartPos :: IO ImVec2
getCursorStartPos =
  alloca $ \outPtr -> c_getCursorStartPos outPtr >> peek outPtr

-- C: const ImGuiPayload* ImGui::GetDragDropPayload()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetDragDropPayload"
  getDragDropPayload :: IO (Ptr ImGuiPayload)

-- C: ImDrawData* ImGui::GetDrawData()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetDrawData"
  getDrawData :: IO (Ptr ImDrawData)

-- C: ImDrawListSharedData* ImGui::GetDrawListSharedData()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetDrawListSharedData"
  getDrawListSharedData :: IO (Ptr ImDrawListSharedData)

-- C: ImFont* ImGui::GetFont()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetFont"
  getFont :: IO (Ptr ImFont)

-- C: ImFontBaked* ImGui::GetFontBaked()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetFontBaked"
  getFontBaked :: IO (Ptr ImFontBaked)

-- C: float ImGui::GetFontSize()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetFontSize"
  getFontSize :: IO Float

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

getFontTexUvWhitePixel :: IO ImVec2
getFontTexUvWhitePixel =
  alloca $ \outPtr -> c_getFontTexUvWhitePixel outPtr >> peek outPtr

-- C: ImDrawList* ImGui::GetForegroundDrawList(ImGuiViewport* viewport)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetForegroundDrawList"
  getForegroundDrawList
    :: (Ptr ImGuiViewport) -- ^ viewport
    -> IO (Ptr ImDrawList)

-- C: int ImGui::GetFrameCount()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetFrameCount"
  getFrameCount :: IO CInt

-- C: float ImGui::GetFrameHeight()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetFrameHeight"
  getFrameHeight :: IO Float

-- C: float ImGui::GetFrameHeightWithSpacing()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetFrameHeightWithSpacing"
  getFrameHeightWithSpacing :: IO Float

-- C: ImGuiID ImGui::GetID(const char* str_id)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetID"
  getID
    :: CString -- ^ str_id
    -> IO ImGuiID

-- C: ImGuiID ImGui::GetID(int int_id)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetIDInt"
  getIDInt
    :: CInt -- ^ int_id
    -> IO ImGuiID

-- C: ImGuiID ImGui::GetID(const void* ptr_id)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetIDPtr"
  getIDPtr
    :: (Ptr ()) -- ^ ptr_id
    -> IO ImGuiID

-- C: ImGuiID ImGui::GetID(const char* str_id_begin, const char* str_id_end)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetIDStr"
  getIDStr
    :: CString -- ^ str_id_begin
    -> CString -- ^ str_id_end
    -> IO ImGuiID

-- C: ImGuiIO* ImGui::GetIO()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetIO"
  getIO :: IO (Ptr ImGuiIO)

-- C: int ImGui::GetItemClickedCountWithSingleClickDelay(ImGuiMouseButton mouse_button, float delay)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetItemClickedCountWithSingleClickDelay"
  getItemClickedCountWithSingleClickDelay
    :: ImGuiMouseButton -- ^ mouse_button
    -> Float -- ^ delay
    -> IO CInt

-- C: ImGuiItemFlags ImGui::GetItemFlags()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetItemFlags"
  getItemFlags :: IO ImGuiItemFlags

-- C: ImGuiID ImGui::GetItemID()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetItemID"
  getItemID :: IO ImGuiID

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

getItemRectMax :: IO ImVec2
getItemRectMax =
  alloca $ \outPtr -> c_getItemRectMax outPtr >> peek outPtr

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

getItemRectMin :: IO ImVec2
getItemRectMin =
  alloca $ \outPtr -> c_getItemRectMin outPtr >> peek outPtr

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

getItemRectSize :: IO ImVec2
getItemRectSize =
  alloca $ \outPtr -> c_getItemRectSize outPtr >> peek outPtr

-- C: const char* ImGui::GetKeyName(ImGuiKey key)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetKeyName"
  getKeyName
    :: ImGuiKey -- ^ key
    -> IO CString

-- C: int ImGui::GetKeyPressedAmount(ImGuiKey key, float repeat_delay, float rate)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetKeyPressedAmount"
  getKeyPressedAmount
    :: ImGuiKey -- ^ key
    -> Float -- ^ repeat_delay
    -> Float -- ^ rate
    -> IO CInt

-- C: ImGuiViewport* ImGui::GetMainViewport()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetMainViewport"
  getMainViewport :: IO (Ptr ImGuiViewport)

-- C: int ImGui::GetMouseClickedCount(ImGuiMouseButton button)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetMouseClickedCount"
  getMouseClickedCount
    :: ImGuiMouseButton -- ^ button
    -> IO CInt

-- C: ImGuiMouseCursor ImGui::GetMouseCursor()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetMouseCursor"
  getMouseCursor :: IO ImGuiMouseCursor

foreign import capi unsafe "DearImGuiWrappers.h ImGui_GetMouseDragDelta_wrap"
  c_getMouseDragDelta
    :: ImGuiMouseButton -- ^ button
    -> Float -- ^ lock_threshold
    -> (Ptr ImVec2) -- ^ out
    -> IO ()

getMouseDragDelta
  :: ImGuiMouseButton -- ^ button
  -> Float -- ^ lock_threshold
  -> IO ImVec2
getMouseDragDelta button lock_threshold =
  alloca $ \outPtr -> c_getMouseDragDelta button lock_threshold outPtr >> peek outPtr

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

getMousePos :: IO ImVec2
getMousePos =
  alloca $ \outPtr -> c_getMousePos outPtr >> peek outPtr

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

getMousePosOnOpeningCurrentPopup :: IO ImVec2
getMousePosOnOpeningCurrentPopup =
  alloca $ \outPtr -> c_getMousePosOnOpeningCurrentPopup outPtr >> peek outPtr

-- C: ImGuiPlatformIO* ImGui::GetPlatformIO()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetPlatformIO"
  getPlatformIO :: IO (Ptr ImGuiPlatformIO)

-- C: float ImGui::GetScrollMaxX()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetScrollMaxX"
  getScrollMaxX :: IO Float

-- C: float ImGui::GetScrollMaxY()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetScrollMaxY"
  getScrollMaxY :: IO Float

-- C: float ImGui::GetScrollX()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetScrollX"
  getScrollX :: IO Float

-- C: float ImGui::GetScrollY()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetScrollY"
  getScrollY :: IO Float

-- C: ImGuiStorage* ImGui::GetStateStorage()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetStateStorage"
  getStateStorage :: IO (Ptr ImGuiStorage)

-- C: ImGuiStyle* ImGui::GetStyle()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetStyle"
  getStyle :: IO (Ptr ImGuiStyle)

-- C: const char* ImGui::GetStyleColorName(ImGuiCol idx)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetStyleColorName"
  getStyleColorName
    :: ImGuiCol -- ^ idx
    -> IO CString

-- C: const ImVec4* ImGui::GetStyleColorVec4(ImGuiCol idx)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetStyleColorVec4"
  getStyleColorVec4
    :: ImGuiCol -- ^ idx
    -> IO (Ptr ImVec4)

-- C: float ImGui::GetTextLineHeight()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetTextLineHeight"
  getTextLineHeight :: IO Float

-- C: float ImGui::GetTextLineHeightWithSpacing()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetTextLineHeightWithSpacing"
  getTextLineHeightWithSpacing :: IO Float

-- C: double ImGui::GetTime()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetTime"
  getTime :: IO Double

-- C: float ImGui::GetTreeNodeToLabelSpacing()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetTreeNodeToLabelSpacing"
  getTreeNodeToLabelSpacing :: IO Float

-- C: const char* ImGui::GetVersion()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetVersion"
  getVersion :: IO CString

-- C: ImGuiID ImGui::GetWindowDockID()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetWindowDockID"
  getWindowDockID :: IO ImGuiID

-- C: float ImGui::GetWindowDpiScale()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetWindowDpiScale"
  getWindowDpiScale :: IO Float

-- C: ImDrawList* ImGui::GetWindowDrawList()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetWindowDrawList"
  getWindowDrawList :: IO (Ptr ImDrawList)

-- C: float ImGui::GetWindowHeight()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetWindowHeight"
  getWindowHeight :: IO Float

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

getWindowPos :: IO ImVec2
getWindowPos =
  alloca $ \outPtr -> c_getWindowPos outPtr >> peek outPtr

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

getWindowSize :: IO ImVec2
getWindowSize =
  alloca $ \outPtr -> c_getWindowSize outPtr >> peek outPtr

-- C: ImGuiViewport* ImGui::GetWindowViewport()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetWindowViewport"
  getWindowViewport :: IO (Ptr ImGuiViewport)

-- C: float ImGui::GetWindowWidth()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_GetWindowWidth"
  getWindowWidth :: IO Float

foreign import capi unsafe "DearImGuiWrappers.h ImGui_Image_wrap"
  c_image
    :: (Ptr ImTextureRef) -- ^ tex_ref
    -> (Ptr ImVec2) -- ^ image_size
    -> (Ptr ImVec2) -- ^ uv0
    -> (Ptr ImVec2) -- ^ uv1
    -> IO ()

image
  :: ImTextureRef -- ^ tex_ref
  -> ImVec2 -- ^ image_size
  -> ImVec2 -- ^ uv0
  -> ImVec2 -- ^ uv1
  -> IO ()
image tex_ref image_size uv0 uv1 =
  with tex_ref $ \tex_refPtr -> with image_size $ \image_sizePtr -> with uv0 $ \uv0Ptr -> with uv1 $ \uv1Ptr -> c_image tex_refPtr image_sizePtr uv0Ptr uv1Ptr

foreign import capi unsafe "DearImGuiWrappers.h ImGui_ImageButton_wrap"
  c_imageButton
    :: CString -- ^ str_id
    -> (Ptr ImTextureRef) -- ^ tex_ref
    -> (Ptr ImVec2) -- ^ image_size
    -> (Ptr ImVec2) -- ^ uv0
    -> (Ptr ImVec2) -- ^ uv1
    -> (Ptr ImVec4) -- ^ bg_col
    -> (Ptr ImVec4) -- ^ tint_col
    -> IO CBool

imageButton
  :: CString -- ^ str_id
  -> ImTextureRef -- ^ tex_ref
  -> ImVec2 -- ^ image_size
  -> ImVec2 -- ^ uv0
  -> ImVec2 -- ^ uv1
  -> ImVec4 -- ^ bg_col
  -> ImVec4 -- ^ tint_col
  -> IO CBool
imageButton str_id tex_ref image_size uv0 uv1 bg_col tint_col =
  with tex_ref $ \tex_refPtr -> with image_size $ \image_sizePtr -> with uv0 $ \uv0Ptr -> with uv1 $ \uv1Ptr -> with bg_col $ \bg_colPtr -> with tint_col $ \tint_colPtr -> c_imageButton str_id tex_refPtr image_sizePtr uv0Ptr uv1Ptr bg_colPtr tint_colPtr

foreign import capi unsafe "DearImGuiWrappers.h ImGui_ImageWithBg_wrap"
  c_imageWithBg
    :: (Ptr ImTextureRef) -- ^ tex_ref
    -> (Ptr ImVec2) -- ^ image_size
    -> (Ptr ImVec2) -- ^ uv0
    -> (Ptr ImVec2) -- ^ uv1
    -> (Ptr ImVec4) -- ^ bg_col
    -> (Ptr ImVec4) -- ^ tint_col
    -> IO ()

imageWithBg
  :: ImTextureRef -- ^ tex_ref
  -> ImVec2 -- ^ image_size
  -> ImVec2 -- ^ uv0
  -> ImVec2 -- ^ uv1
  -> ImVec4 -- ^ bg_col
  -> ImVec4 -- ^ tint_col
  -> IO ()
imageWithBg tex_ref image_size uv0 uv1 bg_col tint_col =
  with tex_ref $ \tex_refPtr -> with image_size $ \image_sizePtr -> with uv0 $ \uv0Ptr -> with uv1 $ \uv1Ptr -> with bg_col $ \bg_colPtr -> with tint_col $ \tint_colPtr -> c_imageWithBg tex_refPtr image_sizePtr uv0Ptr uv1Ptr bg_colPtr tint_colPtr

-- C: void ImGui::Indent(float indent_w)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_Indent"
  indent
    :: Float -- ^ indent_w
    -> IO ()

-- C: bool ImGui::InputDouble(const char* label, double* v, double step, double step_fast, const char* format, ImGuiInputTextFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_InputDouble"
  inputDouble
    :: CString -- ^ label
    -> (Ptr Double) -- ^ v
    -> Double -- ^ step
    -> Double -- ^ step_fast
    -> CString -- ^ format
    -> ImGuiInputTextFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::InputFloat(const char* label, float* v, float step, float step_fast, const char* format, ImGuiInputTextFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_InputFloat"
  inputFloat
    :: CString -- ^ label
    -> (Ptr Float) -- ^ v
    -> Float -- ^ step
    -> Float -- ^ step_fast
    -> CString -- ^ format
    -> ImGuiInputTextFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::InputFloat2(const char* label, float[2] v, const char* format, ImGuiInputTextFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_InputFloat2"
  inputFloat2
    :: CString -- ^ label
    -> (Ptr Float) -- ^ v
    -> CString -- ^ format
    -> ImGuiInputTextFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::InputFloat3(const char* label, float[3] v, const char* format, ImGuiInputTextFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_InputFloat3"
  inputFloat3
    :: CString -- ^ label
    -> (Ptr Float) -- ^ v
    -> CString -- ^ format
    -> ImGuiInputTextFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::InputFloat4(const char* label, float[4] v, const char* format, ImGuiInputTextFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_InputFloat4"
  inputFloat4
    :: CString -- ^ label
    -> (Ptr Float) -- ^ v
    -> CString -- ^ format
    -> ImGuiInputTextFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::InputInt(const char* label, int* v, int step, int step_fast, ImGuiInputTextFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_InputInt"
  inputInt
    :: CString -- ^ label
    -> (Ptr CInt) -- ^ v
    -> CInt -- ^ step
    -> CInt -- ^ step_fast
    -> ImGuiInputTextFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::InputInt2(const char* label, int[2] v, ImGuiInputTextFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_InputInt2"
  inputInt2
    :: CString -- ^ label
    -> (Ptr CInt) -- ^ v
    -> ImGuiInputTextFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::InputInt3(const char* label, int[3] v, ImGuiInputTextFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_InputInt3"
  inputInt3
    :: CString -- ^ label
    -> (Ptr CInt) -- ^ v
    -> ImGuiInputTextFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::InputInt4(const char* label, int[4] v, ImGuiInputTextFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_InputInt4"
  inputInt4
    :: CString -- ^ label
    -> (Ptr CInt) -- ^ v
    -> ImGuiInputTextFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::InputScalar(const char* label, ImGuiDataType data_type, void* p_data, const void* p_step, const void* p_step_fast, const char* format, ImGuiInputTextFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_InputScalar"
  inputScalar
    :: CString -- ^ label
    -> ImGuiDataType -- ^ data_type
    -> (Ptr ()) -- ^ p_data
    -> (Ptr ()) -- ^ p_step
    -> (Ptr ()) -- ^ p_step_fast
    -> CString -- ^ format
    -> ImGuiInputTextFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::InputScalarN(const char* label, ImGuiDataType data_type, void* p_data, int components, const void* p_step, const void* p_step_fast, const char* format, ImGuiInputTextFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_InputScalarN"
  inputScalarN
    :: CString -- ^ label
    -> ImGuiDataType -- ^ data_type
    -> (Ptr ()) -- ^ p_data
    -> CInt -- ^ components
    -> (Ptr ()) -- ^ p_step
    -> (Ptr ()) -- ^ p_step_fast
    -> CString -- ^ format
    -> ImGuiInputTextFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::InputText(const char* label, char* buf, size_t buf_size, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data)
foreign import capi safe "dcimgui_nodefaultargfunctions.h ImGui_InputText"
  inputText
    :: CString -- ^ label
    -> (Ptr CChar) -- ^ buf
    -> CSize -- ^ buf_size
    -> ImGuiInputTextFlags -- ^ flags
    -> ImGuiInputTextCallback -- ^ callback
    -> (Ptr ()) -- ^ user_data
    -> IO CBool

foreign import capi safe "DearImGuiWrappers.h ImGui_InputTextMultiline_wrap"
  c_inputTextMultiline
    :: CString -- ^ label
    -> (Ptr CChar) -- ^ buf
    -> CSize -- ^ buf_size
    -> (Ptr ImVec2) -- ^ size
    -> ImGuiInputTextFlags -- ^ flags
    -> ImGuiInputTextCallback -- ^ callback
    -> (Ptr ()) -- ^ user_data
    -> IO CBool

inputTextMultiline
  :: CString -- ^ label
  -> (Ptr CChar) -- ^ buf
  -> CSize -- ^ buf_size
  -> ImVec2 -- ^ size
  -> ImGuiInputTextFlags -- ^ flags
  -> ImGuiInputTextCallback -- ^ callback
  -> (Ptr ()) -- ^ user_data
  -> IO CBool
inputTextMultiline label buf buf_size size flags callback user_data =
  with size $ \sizePtr -> c_inputTextMultiline label buf buf_size sizePtr flags callback user_data

-- C: bool ImGui::InputTextWithHint(const char* label, const char* hint, char* buf, size_t buf_size, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data)
foreign import capi safe "dcimgui_nodefaultargfunctions.h ImGui_InputTextWithHint"
  inputTextWithHint
    :: CString -- ^ label
    -> CString -- ^ hint
    -> (Ptr CChar) -- ^ buf
    -> CSize -- ^ buf_size
    -> ImGuiInputTextFlags -- ^ flags
    -> ImGuiInputTextCallback -- ^ callback
    -> (Ptr ()) -- ^ user_data
    -> IO CBool

foreign import capi unsafe "DearImGuiWrappers.h ImGui_InvisibleButton_wrap"
  c_invisibleButton
    :: CString -- ^ str_id
    -> (Ptr ImVec2) -- ^ size
    -> ImGuiButtonFlags -- ^ flags
    -> IO CBool

invisibleButton
  :: CString -- ^ str_id
  -> ImVec2 -- ^ size
  -> ImGuiButtonFlags -- ^ flags
  -> IO CBool
invisibleButton str_id size flags =
  with size $ \sizePtr -> c_invisibleButton str_id sizePtr flags

-- C: bool ImGui::IsAnyItemActive()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsAnyItemActive"
  isAnyItemActive :: IO CBool

-- C: bool ImGui::IsAnyItemFocused()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsAnyItemFocused"
  isAnyItemFocused :: IO CBool

-- C: bool ImGui::IsAnyItemHovered()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsAnyItemHovered"
  isAnyItemHovered :: IO CBool

-- C: bool ImGui::IsAnyMouseDown()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsAnyMouseDown"
  isAnyMouseDown :: IO CBool

-- C: bool ImGui::IsItemActivated()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsItemActivated"
  isItemActivated :: IO CBool

-- C: bool ImGui::IsItemActive()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsItemActive"
  isItemActive :: IO CBool

-- C: bool ImGui::IsItemClicked(ImGuiMouseButton mouse_button)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsItemClicked"
  isItemClicked
    :: ImGuiMouseButton -- ^ mouse_button
    -> IO CBool

-- C: bool ImGui::IsItemDeactivated()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsItemDeactivated"
  isItemDeactivated :: IO CBool

-- C: bool ImGui::IsItemDeactivatedAfterEdit()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsItemDeactivatedAfterEdit"
  isItemDeactivatedAfterEdit :: IO CBool

-- C: bool ImGui::IsItemEdited()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsItemEdited"
  isItemEdited :: IO CBool

-- C: bool ImGui::IsItemFocused()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsItemFocused"
  isItemFocused :: IO CBool

-- C: bool ImGui::IsItemHovered(ImGuiHoveredFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsItemHovered"
  isItemHovered
    :: ImGuiHoveredFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::IsItemToggledOpen()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsItemToggledOpen"
  isItemToggledOpen :: IO CBool

-- C: bool ImGui::IsItemToggledSelection()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsItemToggledSelection"
  isItemToggledSelection :: IO CBool

-- C: bool ImGui::IsItemVisible()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsItemVisible"
  isItemVisible :: IO CBool

-- C: bool ImGui::IsKeyChordPressed(ImGuiKeyChord key_chord)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsKeyChordPressed"
  isKeyChordPressed
    :: ImGuiKeyChord -- ^ key_chord
    -> IO CBool

-- C: bool ImGui::IsKeyDown(ImGuiKey key)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsKeyDown"
  isKeyDown
    :: ImGuiKey -- ^ key
    -> IO CBool

-- C: bool ImGui::IsKeyPressed(ImGuiKey key, bool repeat)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsKeyPressed"
  isKeyPressed
    :: ImGuiKey -- ^ key
    -> CBool -- ^ repeat
    -> IO CBool

-- C: bool ImGui::IsKeyReleased(ImGuiKey key)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsKeyReleased"
  isKeyReleased
    :: ImGuiKey -- ^ key
    -> IO CBool

-- C: bool ImGui::IsMouseClicked(ImGuiMouseButton button, bool repeat)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsMouseClicked"
  isMouseClicked
    :: ImGuiMouseButton -- ^ button
    -> CBool -- ^ repeat
    -> IO CBool

-- C: bool ImGui::IsMouseDoubleClicked(ImGuiMouseButton button)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsMouseDoubleClicked"
  isMouseDoubleClicked
    :: ImGuiMouseButton -- ^ button
    -> IO CBool

-- C: bool ImGui::IsMouseDown(ImGuiMouseButton button)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsMouseDown"
  isMouseDown
    :: ImGuiMouseButton -- ^ button
    -> IO CBool

-- C: bool ImGui::IsMouseDragging(ImGuiMouseButton button, float lock_threshold)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsMouseDragging"
  isMouseDragging
    :: ImGuiMouseButton -- ^ button
    -> Float -- ^ lock_threshold
    -> IO CBool

foreign import capi unsafe "DearImGuiWrappers.h ImGui_IsMouseHoveringRect_wrap"
  c_isMouseHoveringRect
    :: (Ptr ImVec2) -- ^ r_min
    -> (Ptr ImVec2) -- ^ r_max
    -> CBool -- ^ clip
    -> IO CBool

isMouseHoveringRect
  :: ImVec2 -- ^ r_min
  -> ImVec2 -- ^ r_max
  -> CBool -- ^ clip
  -> IO CBool
isMouseHoveringRect r_min r_max clip =
  with r_min $ \r_minPtr -> with r_max $ \r_maxPtr -> c_isMouseHoveringRect r_minPtr r_maxPtr clip

-- C: bool ImGui::IsMousePosValid(const ImVec2* mouse_pos)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsMousePosValid"
  isMousePosValid
    :: (Ptr ImVec2) -- ^ mouse_pos
    -> IO CBool

-- C: bool ImGui::IsMouseReleased(ImGuiMouseButton button)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsMouseReleased"
  isMouseReleased
    :: ImGuiMouseButton -- ^ button
    -> IO CBool

-- C: bool ImGui::IsMouseReleasedWithDelay(ImGuiMouseButton button, float delay)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsMouseReleasedWithDelay"
  isMouseReleasedWithDelay
    :: ImGuiMouseButton -- ^ button
    -> Float -- ^ delay
    -> IO CBool

-- C: bool ImGui::IsPopupOpen(const char* str_id, ImGuiPopupFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsPopupOpen"
  isPopupOpen
    :: CString -- ^ str_id
    -> ImGuiPopupFlags -- ^ flags
    -> IO CBool

foreign import capi unsafe "DearImGuiWrappers.h ImGui_IsRectVisible_wrap"
  c_isRectVisible
    :: (Ptr ImVec2) -- ^ rect_min
    -> (Ptr ImVec2) -- ^ rect_max
    -> IO CBool

isRectVisible
  :: ImVec2 -- ^ rect_min
  -> ImVec2 -- ^ rect_max
  -> IO CBool
isRectVisible rect_min rect_max =
  with rect_min $ \rect_minPtr -> with rect_max $ \rect_maxPtr -> c_isRectVisible rect_minPtr rect_maxPtr

foreign import capi unsafe "DearImGuiWrappers.h ImGui_IsRectVisibleBySize_wrap"
  c_isRectVisibleBySize
    :: (Ptr ImVec2) -- ^ size
    -> IO CBool

isRectVisibleBySize
  :: ImVec2 -- ^ size
  -> IO CBool
isRectVisibleBySize size =
  with size $ \sizePtr -> c_isRectVisibleBySize sizePtr

-- C: bool ImGui::IsWindowAppearing()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsWindowAppearing"
  isWindowAppearing :: IO CBool

-- C: bool ImGui::IsWindowCollapsed()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsWindowCollapsed"
  isWindowCollapsed :: IO CBool

-- C: bool ImGui::IsWindowDocked()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsWindowDocked"
  isWindowDocked :: IO CBool

-- C: bool ImGui::IsWindowFocused(ImGuiFocusedFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsWindowFocused"
  isWindowFocused
    :: ImGuiFocusedFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::IsWindowHovered(ImGuiHoveredFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_IsWindowHovered"
  isWindowHovered
    :: ImGuiHoveredFlags -- ^ flags
    -> IO CBool

-- C: void ImGui::LabelText(const char* label, const char* text)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_LabelTextUnformatted"
  labelTextUnformatted
    :: CString -- ^ label
    -> CString -- ^ text
    -> IO ()

-- C: bool ImGui::ListBox(const char* label, int* current_item, const char*const[] items, int items_count, int height_in_items)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_ListBox"
  listBox
    :: CString -- ^ label
    -> (Ptr CInt) -- ^ current_item
    -> (Ptr CString) -- ^ items
    -> CInt -- ^ items_count
    -> CInt -- ^ height_in_items
    -> IO CBool

-- C: bool ImGui::ListBox(const char* label, int* current_item, const char* (*getter)(void* user_data, int idx) getter, void* user_data, int items_count, int height_in_items)
foreign import capi safe "dcimgui_nodefaultargfunctions.h ImGui_ListBoxCallback"
  listBoxCallback
    :: CString -- ^ label
    -> (Ptr CInt) -- ^ current_item
    -> (FunPtr ((Ptr ()) -> CInt -> IO CString)) -- ^ getter
    -> (Ptr ()) -- ^ user_data
    -> CInt -- ^ items_count
    -> CInt -- ^ height_in_items
    -> IO CBool

-- C: void ImGui::LoadIniSettingsFromDisk(const char* ini_filename)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_LoadIniSettingsFromDisk"
  loadIniSettingsFromDisk
    :: CString -- ^ ini_filename
    -> IO ()

-- C: void ImGui::LoadIniSettingsFromMemory(const char* ini_data, size_t ini_size)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_LoadIniSettingsFromMemory"
  loadIniSettingsFromMemory
    :: CString -- ^ ini_data
    -> CSize -- ^ ini_size
    -> IO ()

-- C: void ImGui::LogButtons()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_LogButtons"
  logButtons :: IO ()

-- C: void ImGui::LogFinish()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_LogFinish"
  logFinish :: IO ()

-- C: void ImGui::LogText(const char* text)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_LogTextUnformatted"
  logTextUnformatted
    :: CString -- ^ text
    -> IO ()

-- C: void ImGui::LogToClipboard(int auto_open_depth)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_LogToClipboard"
  logToClipboard
    :: CInt -- ^ auto_open_depth
    -> IO ()

-- C: void ImGui::LogToFile(int auto_open_depth, const char* filename)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_LogToFile"
  logToFile
    :: CInt -- ^ auto_open_depth
    -> CString -- ^ filename
    -> IO ()

-- C: void ImGui::LogToTTY(int auto_open_depth)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_LogToTTY"
  logToTTY
    :: CInt -- ^ auto_open_depth
    -> IO ()

-- C: void* ImGui::MemAlloc(size_t size)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_MemAlloc"
  memAlloc
    :: CSize -- ^ size
    -> IO (Ptr ())

-- C: void ImGui::MemFree(void* ptr)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_MemFree"
  memFree
    :: (Ptr ()) -- ^ ptr
    -> IO ()

-- C: bool ImGui::MenuItem(const char* label, const char* shortcut, bool selected, bool enabled)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_MenuItem"
  menuItem
    :: CString -- ^ label
    -> CString -- ^ shortcut
    -> CBool -- ^ selected
    -> CBool -- ^ enabled
    -> IO CBool

-- C: bool ImGui::MenuItem(const char* label, const char* shortcut, bool* p_selected, bool enabled)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_MenuItemBoolPtr"
  menuItemBoolPtr
    :: CString -- ^ label
    -> CString -- ^ shortcut
    -> (Ptr CBool) -- ^ p_selected
    -> CBool -- ^ enabled
    -> IO CBool

-- C: void ImGui::NewFrame()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_NewFrame"
  newFrame :: IO ()

-- C: void ImGui::NewLine()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_NewLine"
  newLine :: IO ()

-- C: void ImGui::NextColumn()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_NextColumn"
  nextColumn :: IO ()

-- C: bool ImGui::OpenPopup(const char* str_id, ImGuiPopupFlags popup_flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_OpenPopup"
  openPopup
    :: CString -- ^ str_id
    -> ImGuiPopupFlags -- ^ popup_flags
    -> IO CBool

-- C: bool ImGui::OpenPopup(ImGuiID id, ImGuiPopupFlags popup_flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_OpenPopupID"
  openPopupID
    :: ImGuiID -- ^ id
    -> ImGuiPopupFlags -- ^ popup_flags
    -> IO CBool

-- C: bool ImGui::OpenPopupOnItemClick(const char* str_id, ImGuiPopupFlags popup_flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_OpenPopupOnItemClick"
  openPopupOnItemClick
    :: CString -- ^ str_id
    -> ImGuiPopupFlags -- ^ popup_flags
    -> IO CBool

foreign import capi unsafe "DearImGuiWrappers.h ImGui_PlotHistogram_wrap"
  c_plotHistogram
    :: CString -- ^ label
    -> (Ptr Float) -- ^ values
    -> CInt -- ^ values_count
    -> CInt -- ^ values_offset
    -> CString -- ^ overlay_text
    -> Float -- ^ scale_min
    -> Float -- ^ scale_max
    -> (Ptr ImVec2) -- ^ graph_size
    -> CInt -- ^ stride
    -> IO ()

plotHistogram
  :: CString -- ^ label
  -> (Ptr Float) -- ^ values
  -> CInt -- ^ values_count
  -> CInt -- ^ values_offset
  -> CString -- ^ overlay_text
  -> Float -- ^ scale_min
  -> Float -- ^ scale_max
  -> ImVec2 -- ^ graph_size
  -> CInt -- ^ stride
  -> IO ()
plotHistogram label values values_count values_offset overlay_text scale_min scale_max graph_size stride =
  with graph_size $ \graph_sizePtr -> c_plotHistogram label values values_count values_offset overlay_text scale_min scale_max graph_sizePtr stride

foreign import capi safe "DearImGuiWrappers.h ImGui_PlotHistogramCallback_wrap"
  c_plotHistogramCallback
    :: CString -- ^ label
    -> (FunPtr ((Ptr ()) -> CInt -> IO Float)) -- ^ values_getter
    -> (Ptr ()) -- ^ data
    -> CInt -- ^ values_count
    -> CInt -- ^ values_offset
    -> CString -- ^ overlay_text
    -> Float -- ^ scale_min
    -> Float -- ^ scale_max
    -> (Ptr ImVec2) -- ^ graph_size
    -> IO ()

plotHistogramCallback
  :: CString -- ^ label
  -> (FunPtr ((Ptr ()) -> CInt -> IO Float)) -- ^ values_getter
  -> (Ptr ()) -- ^ data
  -> CInt -- ^ values_count
  -> CInt -- ^ values_offset
  -> CString -- ^ overlay_text
  -> Float -- ^ scale_min
  -> Float -- ^ scale_max
  -> ImVec2 -- ^ graph_size
  -> IO ()
plotHistogramCallback label values_getter data_ values_count values_offset overlay_text scale_min scale_max graph_size =
  with graph_size $ \graph_sizePtr -> c_plotHistogramCallback label values_getter data_ values_count values_offset overlay_text scale_min scale_max graph_sizePtr

foreign import capi unsafe "DearImGuiWrappers.h ImGui_PlotLines_wrap"
  c_plotLines
    :: CString -- ^ label
    -> (Ptr Float) -- ^ values
    -> CInt -- ^ values_count
    -> CInt -- ^ values_offset
    -> CString -- ^ overlay_text
    -> Float -- ^ scale_min
    -> Float -- ^ scale_max
    -> (Ptr ImVec2) -- ^ graph_size
    -> CInt -- ^ stride
    -> IO ()

plotLines
  :: CString -- ^ label
  -> (Ptr Float) -- ^ values
  -> CInt -- ^ values_count
  -> CInt -- ^ values_offset
  -> CString -- ^ overlay_text
  -> Float -- ^ scale_min
  -> Float -- ^ scale_max
  -> ImVec2 -- ^ graph_size
  -> CInt -- ^ stride
  -> IO ()
plotLines label values values_count values_offset overlay_text scale_min scale_max graph_size stride =
  with graph_size $ \graph_sizePtr -> c_plotLines label values values_count values_offset overlay_text scale_min scale_max graph_sizePtr stride

foreign import capi safe "DearImGuiWrappers.h ImGui_PlotLinesCallback_wrap"
  c_plotLinesCallback
    :: CString -- ^ label
    -> (FunPtr ((Ptr ()) -> CInt -> IO Float)) -- ^ values_getter
    -> (Ptr ()) -- ^ data
    -> CInt -- ^ values_count
    -> CInt -- ^ values_offset
    -> CString -- ^ overlay_text
    -> Float -- ^ scale_min
    -> Float -- ^ scale_max
    -> (Ptr ImVec2) -- ^ graph_size
    -> IO ()

plotLinesCallback
  :: CString -- ^ label
  -> (FunPtr ((Ptr ()) -> CInt -> IO Float)) -- ^ values_getter
  -> (Ptr ()) -- ^ data
  -> CInt -- ^ values_count
  -> CInt -- ^ values_offset
  -> CString -- ^ overlay_text
  -> Float -- ^ scale_min
  -> Float -- ^ scale_max
  -> ImVec2 -- ^ graph_size
  -> IO ()
plotLinesCallback label values_getter data_ values_count values_offset overlay_text scale_min scale_max graph_size =
  with graph_size $ \graph_sizePtr -> c_plotLinesCallback label values_getter data_ values_count values_offset overlay_text scale_min scale_max graph_sizePtr

-- C: void ImGui::PopClipRect()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_PopClipRect"
  popClipRect :: IO ()

-- C: void ImGui::PopFont()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_PopFont"
  popFont :: IO ()

-- C: void ImGui::PopID()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_PopID"
  popID :: IO ()

-- C: void ImGui::PopItemFlag()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_PopItemFlag"
  popItemFlag :: IO ()

-- C: void ImGui::PopItemWidth()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_PopItemWidth"
  popItemWidth :: IO ()

-- C: void ImGui::PopStyleColor(int count)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_PopStyleColor"
  popStyleColor
    :: CInt -- ^ count
    -> IO ()

-- C: void ImGui::PopStyleVar(int count)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_PopStyleVar"
  popStyleVar
    :: CInt -- ^ count
    -> IO ()

-- C: void ImGui::PopTextWrapPos()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_PopTextWrapPos"
  popTextWrapPos :: IO ()

foreign import capi unsafe "DearImGuiWrappers.h ImGui_ProgressBar_wrap"
  c_progressBar
    :: Float -- ^ fraction
    -> (Ptr ImVec2) -- ^ size_arg
    -> CString -- ^ overlay
    -> IO ()

progressBar
  :: Float -- ^ fraction
  -> ImVec2 -- ^ size_arg
  -> CString -- ^ overlay
  -> IO ()
progressBar fraction size_arg overlay =
  with size_arg $ \size_argPtr -> c_progressBar fraction size_argPtr overlay

foreign import capi unsafe "DearImGuiWrappers.h ImGui_PushClipRect_wrap"
  c_pushClipRect
    :: (Ptr ImVec2) -- ^ clip_rect_min
    -> (Ptr ImVec2) -- ^ clip_rect_max
    -> CBool -- ^ intersect_with_current_clip_rect
    -> IO ()

pushClipRect
  :: ImVec2 -- ^ clip_rect_min
  -> ImVec2 -- ^ clip_rect_max
  -> CBool -- ^ intersect_with_current_clip_rect
  -> IO ()
pushClipRect clip_rect_min clip_rect_max intersect_with_current_clip_rect =
  with clip_rect_min $ \clip_rect_minPtr -> with clip_rect_max $ \clip_rect_maxPtr -> c_pushClipRect clip_rect_minPtr clip_rect_maxPtr intersect_with_current_clip_rect

-- C: void ImGui::PushFont(ImFont* font, float font_size_base_unscaled)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_PushFontFloat"
  pushFontFloat
    :: (Ptr ImFont) -- ^ font
    -> Float -- ^ font_size_base_unscaled
    -> IO ()

-- C: void ImGui::PushID(const char* str_id)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_PushID"
  pushID
    :: CString -- ^ str_id
    -> IO ()

-- C: void ImGui::PushID(int int_id)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_PushIDInt"
  pushIDInt
    :: CInt -- ^ int_id
    -> IO ()

-- C: void ImGui::PushID(const void* ptr_id)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_PushIDPtr"
  pushIDPtr
    :: (Ptr ()) -- ^ ptr_id
    -> IO ()

-- C: void ImGui::PushID(const char* str_id_begin, const char* str_id_end)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_PushIDStr"
  pushIDStr
    :: CString -- ^ str_id_begin
    -> CString -- ^ str_id_end
    -> IO ()

-- C: void ImGui::PushItemFlag(ImGuiItemFlags option, bool enabled)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_PushItemFlag"
  pushItemFlag
    :: ImGuiItemFlags -- ^ option
    -> CBool -- ^ enabled
    -> IO ()

-- C: void ImGui::PushItemWidth(float item_width)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_PushItemWidth"
  pushItemWidth
    :: Float -- ^ item_width
    -> IO ()

-- C: void ImGui::PushStyleColor(ImGuiCol idx, ImU32 col)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_PushStyleColor"
  pushStyleColor
    :: ImGuiCol -- ^ idx
    -> ImU32 -- ^ col
    -> IO ()

foreign import capi unsafe "DearImGuiWrappers.h ImGui_PushStyleColorImVec4_wrap"
  c_pushStyleColorImVec4
    :: ImGuiCol -- ^ idx
    -> (Ptr ImVec4) -- ^ col
    -> IO ()

pushStyleColorImVec4
  :: ImGuiCol -- ^ idx
  -> ImVec4 -- ^ col
  -> IO ()
pushStyleColorImVec4 idx col =
  with col $ \colPtr -> c_pushStyleColorImVec4 idx colPtr

-- C: void ImGui::PushStyleVar(ImGuiStyleVar idx, float val)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_PushStyleVar"
  pushStyleVar
    :: ImGuiStyleVar -- ^ idx
    -> Float -- ^ val
    -> IO ()

foreign import capi unsafe "DearImGuiWrappers.h ImGui_PushStyleVarImVec2_wrap"
  c_pushStyleVarImVec2
    :: ImGuiStyleVar -- ^ idx
    -> (Ptr ImVec2) -- ^ val
    -> IO ()

pushStyleVarImVec2
  :: ImGuiStyleVar -- ^ idx
  -> ImVec2 -- ^ val
  -> IO ()
pushStyleVarImVec2 idx val =
  with val $ \valPtr -> c_pushStyleVarImVec2 idx valPtr

-- C: void ImGui::PushStyleVarX(ImGuiStyleVar idx, float val_x)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_PushStyleVarX"
  pushStyleVarX
    :: ImGuiStyleVar -- ^ idx
    -> Float -- ^ val_x
    -> IO ()

-- C: void ImGui::PushStyleVarY(ImGuiStyleVar idx, float val_y)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_PushStyleVarY"
  pushStyleVarY
    :: ImGuiStyleVar -- ^ idx
    -> Float -- ^ val_y
    -> IO ()

-- C: void ImGui::PushTextWrapPos(float wrap_local_pos_x)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_PushTextWrapPos"
  pushTextWrapPos
    :: Float -- ^ wrap_local_pos_x
    -> IO ()

-- C: bool ImGui::RadioButton(const char* label, bool active)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_RadioButton"
  radioButton
    :: CString -- ^ label
    -> CBool -- ^ active
    -> IO CBool

-- C: bool ImGui::RadioButton(const char* label, int* v, int v_button)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_RadioButtonIntPtr"
  radioButtonIntPtr
    :: CString -- ^ label
    -> (Ptr CInt) -- ^ v
    -> CInt -- ^ v_button
    -> IO CBool

-- C: void ImGui::Render()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_Render"
  render :: IO ()

-- C: void ImGui::RenderPlatformWindowsDefault(void* platform_render_arg, void* renderer_render_arg)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_RenderPlatformWindowsDefault"
  renderPlatformWindowsDefault
    :: (Ptr ()) -- ^ platform_render_arg
    -> (Ptr ()) -- ^ renderer_render_arg
    -> IO ()

-- C: void ImGui::ResetMouseDragDelta(ImGuiMouseButton button)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_ResetMouseDragDelta"
  resetMouseDragDelta
    :: ImGuiMouseButton -- ^ button
    -> IO ()

-- C: void ImGui::SameLine(float offset_from_start_x, float spacing)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SameLine"
  sameLine
    :: Float -- ^ offset_from_start_x
    -> Float -- ^ spacing
    -> IO ()

-- C: void ImGui::SaveIniSettingsToDisk(const char* ini_filename)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SaveIniSettingsToDisk"
  saveIniSettingsToDisk
    :: CString -- ^ ini_filename
    -> IO ()

-- C: const char* ImGui::SaveIniSettingsToMemory(size_t* out_ini_size)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SaveIniSettingsToMemory"
  saveIniSettingsToMemory
    :: (Ptr CSize) -- ^ out_ini_size
    -> IO CString

foreign import capi unsafe "DearImGuiWrappers.h ImGui_Selectable_wrap"
  c_selectable
    :: CString -- ^ label
    -> CBool -- ^ selected
    -> ImGuiSelectableFlags -- ^ flags
    -> (Ptr ImVec2) -- ^ size
    -> IO CBool

selectable
  :: CString -- ^ label
  -> CBool -- ^ selected
  -> ImGuiSelectableFlags -- ^ flags
  -> ImVec2 -- ^ size
  -> IO CBool
selectable label selected flags size =
  with size $ \sizePtr -> c_selectable label selected flags sizePtr

foreign import capi unsafe "DearImGuiWrappers.h ImGui_SelectableBoolPtr_wrap"
  c_selectableBoolPtr
    :: CString -- ^ label
    -> (Ptr CBool) -- ^ p_selected
    -> ImGuiSelectableFlags -- ^ flags
    -> (Ptr ImVec2) -- ^ size
    -> IO CBool

selectableBoolPtr
  :: CString -- ^ label
  -> (Ptr CBool) -- ^ p_selected
  -> ImGuiSelectableFlags -- ^ flags
  -> ImVec2 -- ^ size
  -> IO CBool
selectableBoolPtr label p_selected flags size =
  with size $ \sizePtr -> c_selectableBoolPtr label p_selected flags sizePtr

-- C: void ImGui::Separator()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_Separator"
  separator :: IO ()

-- C: void ImGui::SeparatorText(const char* label)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SeparatorText"
  separatorText
    :: CString -- ^ label
    -> IO ()

-- C: void ImGui::SetAllocatorFunctions(ImGuiMemAllocFunc alloc_func, ImGuiMemFreeFunc free_func, void* user_data)
foreign import capi safe "dcimgui_nodefaultargfunctions.h ImGui_SetAllocatorFunctions"
  setAllocatorFunctions
    :: ImGuiMemAllocFunc -- ^ alloc_func
    -> ImGuiMemFreeFunc -- ^ free_func
    -> (Ptr ()) -- ^ user_data
    -> IO ()

-- C: void ImGui::SetClipboardText(const char* text)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetClipboardText"
  setClipboardText
    :: CString -- ^ text
    -> IO ()

-- C: void ImGui::SetColumnOffset(int column_index, float offset_x)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetColumnOffset"
  setColumnOffset
    :: CInt -- ^ column_index
    -> Float -- ^ offset_x
    -> IO ()

-- C: void ImGui::SetColumnWidth(int column_index, float width)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetColumnWidth"
  setColumnWidth
    :: CInt -- ^ column_index
    -> Float -- ^ width
    -> IO ()

-- C: void ImGui::SetCurrentContext(ImGuiContext* ctx)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetCurrentContext"
  setCurrentContext
    :: (Ptr ImGuiContext) -- ^ ctx
    -> IO ()

foreign import capi unsafe "DearImGuiWrappers.h ImGui_SetCursorPos_wrap"
  c_setCursorPos
    :: (Ptr ImVec2) -- ^ local_pos
    -> IO ()

setCursorPos
  :: ImVec2 -- ^ local_pos
  -> IO ()
setCursorPos local_pos =
  with local_pos $ \local_posPtr -> c_setCursorPos local_posPtr

-- C: void ImGui::SetCursorPosX(float local_x)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetCursorPosX"
  setCursorPosX
    :: Float -- ^ local_x
    -> IO ()

-- C: void ImGui::SetCursorPosY(float local_y)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetCursorPosY"
  setCursorPosY
    :: Float -- ^ local_y
    -> IO ()

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

setCursorScreenPos
  :: ImVec2 -- ^ pos
  -> IO ()
setCursorScreenPos pos =
  with pos $ \posPtr -> c_setCursorScreenPos posPtr

-- C: bool ImGui::SetDragDropPayload(const char* type, const void* data, size_t sz, ImGuiCond cond)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetDragDropPayload"
  setDragDropPayload
    :: CString -- ^ type
    -> (Ptr ()) -- ^ data
    -> CSize -- ^ sz
    -> ImGuiCond -- ^ cond
    -> IO CBool

-- C: void ImGui::SetItemDefaultFocus()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetItemDefaultFocus"
  setItemDefaultFocus :: IO ()

-- C: bool ImGui::SetItemKeyOwner(ImGuiKey key)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetItemKeyOwner"
  setItemKeyOwner
    :: ImGuiKey -- ^ key
    -> IO CBool

-- C: void ImGui::SetItemTooltip(const char* text)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetItemTooltipUnformatted"
  setItemTooltipUnformatted
    :: CString -- ^ text
    -> IO ()

-- C: void ImGui::SetKeyboardFocusHere(int offset)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetKeyboardFocusHere"
  setKeyboardFocusHere
    :: CInt -- ^ offset
    -> IO ()

-- C: void ImGui::SetMouseCursor(ImGuiMouseCursor cursor_type)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetMouseCursor"
  setMouseCursor
    :: ImGuiMouseCursor -- ^ cursor_type
    -> IO ()

-- C: void ImGui::SetNavCursorVisible(bool visible)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetNavCursorVisible"
  setNavCursorVisible
    :: CBool -- ^ visible
    -> IO ()

-- C: void ImGui::SetNextFrameWantCaptureKeyboard(bool want_capture_keyboard)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetNextFrameWantCaptureKeyboard"
  setNextFrameWantCaptureKeyboard
    :: CBool -- ^ want_capture_keyboard
    -> IO ()

-- C: void ImGui::SetNextFrameWantCaptureMouse(bool want_capture_mouse)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetNextFrameWantCaptureMouse"
  setNextFrameWantCaptureMouse
    :: CBool -- ^ want_capture_mouse
    -> IO ()

-- C: void ImGui::SetNextItemAllowOverlap()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetNextItemAllowOverlap"
  setNextItemAllowOverlap :: IO ()

-- C: void ImGui::SetNextItemOpen(bool is_open, ImGuiCond cond)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetNextItemOpen"
  setNextItemOpen
    :: CBool -- ^ is_open
    -> ImGuiCond -- ^ cond
    -> IO ()

-- C: void ImGui::SetNextItemSelectionUserData(ImGuiSelectionUserData selection_user_data)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetNextItemSelectionUserData"
  setNextItemSelectionUserData
    :: ImGuiSelectionUserData -- ^ selection_user_data
    -> IO ()

-- C: void ImGui::SetNextItemShortcut(ImGuiKeyChord key_chord, ImGuiInputFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetNextItemShortcut"
  setNextItemShortcut
    :: ImGuiKeyChord -- ^ key_chord
    -> ImGuiInputFlags -- ^ flags
    -> IO ()

-- C: void ImGui::SetNextItemStorageID(ImGuiID storage_id)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetNextItemStorageID"
  setNextItemStorageID
    :: ImGuiID -- ^ storage_id
    -> IO ()

-- C: void ImGui::SetNextItemWidth(float item_width)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetNextItemWidth"
  setNextItemWidth
    :: Float -- ^ item_width
    -> IO ()

-- C: void ImGui::SetNextWindowBgAlpha(float alpha)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetNextWindowBgAlpha"
  setNextWindowBgAlpha
    :: Float -- ^ alpha
    -> IO ()

-- C: void ImGui::SetNextWindowClass(const ImGuiWindowClass* window_class)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetNextWindowClass"
  setNextWindowClass
    :: (Ptr ImGuiWindowClass) -- ^ window_class
    -> IO ()

-- C: void ImGui::SetNextWindowCollapsed(bool collapsed, ImGuiCond cond)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetNextWindowCollapsed"
  setNextWindowCollapsed
    :: CBool -- ^ collapsed
    -> ImGuiCond -- ^ cond
    -> IO ()

foreign import capi unsafe "DearImGuiWrappers.h ImGui_SetNextWindowContentSize_wrap"
  c_setNextWindowContentSize
    :: (Ptr ImVec2) -- ^ size
    -> IO ()

setNextWindowContentSize
  :: ImVec2 -- ^ size
  -> IO ()
setNextWindowContentSize size =
  with size $ \sizePtr -> c_setNextWindowContentSize sizePtr

-- C: void ImGui::SetNextWindowDockID(ImGuiID dock_id, ImGuiCond cond)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetNextWindowDockID"
  setNextWindowDockID
    :: ImGuiID -- ^ dock_id
    -> ImGuiCond -- ^ cond
    -> IO ()

-- C: void ImGui::SetNextWindowFocus()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetNextWindowFocus"
  setNextWindowFocus :: IO ()

foreign import capi unsafe "DearImGuiWrappers.h ImGui_SetNextWindowPos_wrap"
  c_setNextWindowPos
    :: (Ptr ImVec2) -- ^ pos
    -> ImGuiCond -- ^ cond
    -> (Ptr ImVec2) -- ^ pivot
    -> IO ()

setNextWindowPos
  :: ImVec2 -- ^ pos
  -> ImGuiCond -- ^ cond
  -> ImVec2 -- ^ pivot
  -> IO ()
setNextWindowPos pos cond pivot =
  with pos $ \posPtr -> with pivot $ \pivotPtr -> c_setNextWindowPos posPtr cond pivotPtr

foreign import capi unsafe "DearImGuiWrappers.h ImGui_SetNextWindowScroll_wrap"
  c_setNextWindowScroll
    :: (Ptr ImVec2) -- ^ scroll
    -> IO ()

setNextWindowScroll
  :: ImVec2 -- ^ scroll
  -> IO ()
setNextWindowScroll scroll =
  with scroll $ \scrollPtr -> c_setNextWindowScroll scrollPtr

foreign import capi unsafe "DearImGuiWrappers.h ImGui_SetNextWindowSize_wrap"
  c_setNextWindowSize
    :: (Ptr ImVec2) -- ^ size
    -> ImGuiCond -- ^ cond
    -> IO ()

setNextWindowSize
  :: ImVec2 -- ^ size
  -> ImGuiCond -- ^ cond
  -> IO ()
setNextWindowSize size cond =
  with size $ \sizePtr -> c_setNextWindowSize sizePtr cond

foreign import capi safe "DearImGuiWrappers.h ImGui_SetNextWindowSizeConstraints_wrap"
  c_setNextWindowSizeConstraints
    :: (Ptr ImVec2) -- ^ size_min
    -> (Ptr ImVec2) -- ^ size_max
    -> ImGuiSizeCallback -- ^ custom_callback
    -> (Ptr ()) -- ^ custom_callback_data
    -> IO ()

setNextWindowSizeConstraints
  :: ImVec2 -- ^ size_min
  -> ImVec2 -- ^ size_max
  -> ImGuiSizeCallback -- ^ custom_callback
  -> (Ptr ()) -- ^ custom_callback_data
  -> IO ()
setNextWindowSizeConstraints size_min size_max custom_callback custom_callback_data =
  with size_min $ \size_minPtr -> with size_max $ \size_maxPtr -> c_setNextWindowSizeConstraints size_minPtr size_maxPtr custom_callback custom_callback_data

-- C: void ImGui::SetNextWindowViewport(ImGuiID viewport_id)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetNextWindowViewport"
  setNextWindowViewport
    :: ImGuiID -- ^ viewport_id
    -> IO ()

-- C: void ImGui::SetScrollFromPosX(float local_x, float center_x_ratio)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetScrollFromPosX"
  setScrollFromPosX
    :: Float -- ^ local_x
    -> Float -- ^ center_x_ratio
    -> IO ()

-- C: void ImGui::SetScrollFromPosY(float local_y, float center_y_ratio)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetScrollFromPosY"
  setScrollFromPosY
    :: Float -- ^ local_y
    -> Float -- ^ center_y_ratio
    -> IO ()

-- C: void ImGui::SetScrollHereX(float center_x_ratio)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetScrollHereX"
  setScrollHereX
    :: Float -- ^ center_x_ratio
    -> IO ()

-- C: void ImGui::SetScrollHereY(float center_y_ratio)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetScrollHereY"
  setScrollHereY
    :: Float -- ^ center_y_ratio
    -> IO ()

-- C: void ImGui::SetScrollX(float scroll_x)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetScrollX"
  setScrollX
    :: Float -- ^ scroll_x
    -> IO ()

-- C: void ImGui::SetScrollY(float scroll_y)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetScrollY"
  setScrollY
    :: Float -- ^ scroll_y
    -> IO ()

-- C: void ImGui::SetStateStorage(ImGuiStorage* storage)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetStateStorage"
  setStateStorage
    :: (Ptr ImGuiStorage) -- ^ storage
    -> IO ()

-- C: void ImGui::SetTabItemClosed(const char* tab_or_docked_window_label)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetTabItemClosed"
  setTabItemClosed
    :: CString -- ^ tab_or_docked_window_label
    -> IO ()

-- C: void ImGui::SetTooltip(const char* text)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetTooltipUnformatted"
  setTooltipUnformatted
    :: CString -- ^ text
    -> IO ()

-- C: void ImGui::SetWindowCollapsed(bool collapsed, ImGuiCond cond)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetWindowCollapsed"
  setWindowCollapsed
    :: CBool -- ^ collapsed
    -> ImGuiCond -- ^ cond
    -> IO ()

-- C: void ImGui::SetWindowCollapsed(const char* name, bool collapsed, ImGuiCond cond)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetWindowCollapsedStr"
  setWindowCollapsedStr
    :: CString -- ^ name
    -> CBool -- ^ collapsed
    -> ImGuiCond -- ^ cond
    -> IO ()

-- C: void ImGui::SetWindowFocus()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetWindowFocus"
  setWindowFocus :: IO ()

-- C: void ImGui::SetWindowFocus(const char* name)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SetWindowFocusStr"
  setWindowFocusStr
    :: CString -- ^ name
    -> IO ()

foreign import capi unsafe "DearImGuiWrappers.h ImGui_SetWindowPos_wrap"
  c_setWindowPos
    :: (Ptr ImVec2) -- ^ pos
    -> ImGuiCond -- ^ cond
    -> IO ()

setWindowPos
  :: ImVec2 -- ^ pos
  -> ImGuiCond -- ^ cond
  -> IO ()
setWindowPos pos cond =
  with pos $ \posPtr -> c_setWindowPos posPtr cond

foreign import capi unsafe "DearImGuiWrappers.h ImGui_SetWindowPosStr_wrap"
  c_setWindowPosStr
    :: CString -- ^ name
    -> (Ptr ImVec2) -- ^ pos
    -> ImGuiCond -- ^ cond
    -> IO ()

setWindowPosStr
  :: CString -- ^ name
  -> ImVec2 -- ^ pos
  -> ImGuiCond -- ^ cond
  -> IO ()
setWindowPosStr name pos cond =
  with pos $ \posPtr -> c_setWindowPosStr name posPtr cond

foreign import capi unsafe "DearImGuiWrappers.h ImGui_SetWindowSize_wrap"
  c_setWindowSize
    :: (Ptr ImVec2) -- ^ size
    -> ImGuiCond -- ^ cond
    -> IO ()

setWindowSize
  :: ImVec2 -- ^ size
  -> ImGuiCond -- ^ cond
  -> IO ()
setWindowSize size cond =
  with size $ \sizePtr -> c_setWindowSize sizePtr cond

foreign import capi unsafe "DearImGuiWrappers.h ImGui_SetWindowSizeStr_wrap"
  c_setWindowSizeStr
    :: CString -- ^ name
    -> (Ptr ImVec2) -- ^ size
    -> ImGuiCond -- ^ cond
    -> IO ()

setWindowSizeStr
  :: CString -- ^ name
  -> ImVec2 -- ^ size
  -> ImGuiCond -- ^ cond
  -> IO ()
setWindowSizeStr name size cond =
  with size $ \sizePtr -> c_setWindowSizeStr name sizePtr cond

-- C: bool ImGui::Shortcut(ImGuiKeyChord key_chord, ImGuiInputFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_Shortcut"
  shortcut
    :: ImGuiKeyChord -- ^ key_chord
    -> ImGuiInputFlags -- ^ flags
    -> IO CBool

-- C: void ImGui::ShowAboutWindow(bool* p_open)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_ShowAboutWindow"
  showAboutWindow
    :: (Ptr CBool) -- ^ p_open
    -> IO ()

-- C: void ImGui::ShowDebugLogWindow(bool* p_open)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_ShowDebugLogWindow"
  showDebugLogWindow
    :: (Ptr CBool) -- ^ p_open
    -> IO ()

-- C: void ImGui::ShowDemoWindow(bool* p_open)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_ShowDemoWindow"
  showDemoWindow
    :: (Ptr CBool) -- ^ p_open
    -> IO ()

-- C: void ImGui::ShowFontSelector(const char* label)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_ShowFontSelector"
  showFontSelector
    :: CString -- ^ label
    -> IO ()

-- C: void ImGui::ShowIDStackToolWindow(bool* p_open)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_ShowIDStackToolWindow"
  showIDStackToolWindow
    :: (Ptr CBool) -- ^ p_open
    -> IO ()

-- C: void ImGui::ShowMetricsWindow(bool* p_open)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_ShowMetricsWindow"
  showMetricsWindow
    :: (Ptr CBool) -- ^ p_open
    -> IO ()

-- C: void ImGui::ShowStyleEditor(ImGuiStyle* ref)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_ShowStyleEditor"
  showStyleEditor
    :: (Ptr ImGuiStyle) -- ^ ref
    -> IO ()

-- C: bool ImGui::ShowStyleSelector(const char* label)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_ShowStyleSelector"
  showStyleSelector
    :: CString -- ^ label
    -> IO CBool

-- C: void ImGui::ShowUserGuide()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_ShowUserGuide"
  showUserGuide :: IO ()

-- C: bool ImGui::SliderAngle(const char* label, float* v_rad, float v_degrees_min, float v_degrees_max, const char* format, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SliderAngle"
  sliderAngle
    :: CString -- ^ label
    -> (Ptr Float) -- ^ v_rad
    -> Float -- ^ v_degrees_min
    -> Float -- ^ v_degrees_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::SliderFloat(const char* label, float* v, float v_min, float v_max, const char* format, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SliderFloat"
  sliderFloat
    :: CString -- ^ label
    -> (Ptr Float) -- ^ v
    -> Float -- ^ v_min
    -> Float -- ^ v_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::SliderFloat2(const char* label, float[2] v, float v_min, float v_max, const char* format, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SliderFloat2"
  sliderFloat2
    :: CString -- ^ label
    -> (Ptr Float) -- ^ v
    -> Float -- ^ v_min
    -> Float -- ^ v_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::SliderFloat3(const char* label, float[3] v, float v_min, float v_max, const char* format, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SliderFloat3"
  sliderFloat3
    :: CString -- ^ label
    -> (Ptr Float) -- ^ v
    -> Float -- ^ v_min
    -> Float -- ^ v_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::SliderFloat4(const char* label, float[4] v, float v_min, float v_max, const char* format, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SliderFloat4"
  sliderFloat4
    :: CString -- ^ label
    -> (Ptr Float) -- ^ v
    -> Float -- ^ v_min
    -> Float -- ^ v_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::SliderInt(const char* label, int* v, int v_min, int v_max, const char* format, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SliderInt"
  sliderInt
    :: CString -- ^ label
    -> (Ptr CInt) -- ^ v
    -> CInt -- ^ v_min
    -> CInt -- ^ v_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::SliderInt2(const char* label, int[2] v, int v_min, int v_max, const char* format, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SliderInt2"
  sliderInt2
    :: CString -- ^ label
    -> (Ptr CInt) -- ^ v
    -> CInt -- ^ v_min
    -> CInt -- ^ v_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::SliderInt3(const char* label, int[3] v, int v_min, int v_max, const char* format, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SliderInt3"
  sliderInt3
    :: CString -- ^ label
    -> (Ptr CInt) -- ^ v
    -> CInt -- ^ v_min
    -> CInt -- ^ v_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::SliderInt4(const char* label, int[4] v, int v_min, int v_max, const char* format, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SliderInt4"
  sliderInt4
    :: CString -- ^ label
    -> (Ptr CInt) -- ^ v
    -> CInt -- ^ v_min
    -> CInt -- ^ v_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::SliderScalar(const char* label, ImGuiDataType data_type, void* p_data, const void* p_min, const void* p_max, const char* format, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SliderScalar"
  sliderScalar
    :: CString -- ^ label
    -> ImGuiDataType -- ^ data_type
    -> (Ptr ()) -- ^ p_data
    -> (Ptr ()) -- ^ p_min
    -> (Ptr ()) -- ^ p_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::SliderScalarN(const char* label, ImGuiDataType data_type, void* p_data, int components, const void* p_min, const void* p_max, const char* format, ImGuiSliderFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SliderScalarN"
  sliderScalarN
    :: CString -- ^ label
    -> ImGuiDataType -- ^ data_type
    -> (Ptr ()) -- ^ p_data
    -> CInt -- ^ components
    -> (Ptr ()) -- ^ p_min
    -> (Ptr ()) -- ^ p_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::SmallButton(const char* label)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_SmallButton"
  smallButton
    :: CString -- ^ label
    -> IO CBool

-- C: void ImGui::Spacing()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_Spacing"
  spacing :: IO ()

-- C: void ImGui::StyleColorsClassic(ImGuiStyle* dst)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_StyleColorsClassic"
  styleColorsClassic
    :: (Ptr ImGuiStyle) -- ^ dst
    -> IO ()

-- C: void ImGui::StyleColorsDark(ImGuiStyle* dst)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_StyleColorsDark"
  styleColorsDark
    :: (Ptr ImGuiStyle) -- ^ dst
    -> IO ()

-- C: void ImGui::StyleColorsLight(ImGuiStyle* dst)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_StyleColorsLight"
  styleColorsLight
    :: (Ptr ImGuiStyle) -- ^ dst
    -> IO ()

-- C: bool ImGui::TabItemButton(const char* label, ImGuiTabItemFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TabItemButton"
  tabItemButton
    :: CString -- ^ label
    -> ImGuiTabItemFlags -- ^ flags
    -> IO CBool

-- C: void ImGui::TableAngledHeadersRow()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TableAngledHeadersRow"
  tableAngledHeadersRow :: IO ()

-- C: int ImGui::TableGetColumnCount()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TableGetColumnCount"
  tableGetColumnCount :: IO CInt

-- C: ImGuiTableColumnFlags ImGui::TableGetColumnFlags(int column_n)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TableGetColumnFlags"
  tableGetColumnFlags
    :: CInt -- ^ column_n
    -> IO ImGuiTableColumnFlags

-- C: int ImGui::TableGetColumnIndex()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TableGetColumnIndex"
  tableGetColumnIndex :: IO CInt

-- C: const char* ImGui::TableGetColumnName(int column_n)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TableGetColumnName"
  tableGetColumnName
    :: CInt -- ^ column_n
    -> IO CString

-- C: int ImGui::TableGetHoveredColumn()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TableGetHoveredColumn"
  tableGetHoveredColumn :: IO CInt

-- C: int ImGui::TableGetRowIndex()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TableGetRowIndex"
  tableGetRowIndex :: IO CInt

-- C: ImGuiTableSortSpecs* ImGui::TableGetSortSpecs()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TableGetSortSpecs"
  tableGetSortSpecs :: IO (Ptr ImGuiTableSortSpecs)

-- C: void ImGui::TableHeader(const char* label)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TableHeader"
  tableHeader
    :: CString -- ^ label
    -> IO ()

-- C: void ImGui::TableHeadersRow()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TableHeadersRow"
  tableHeadersRow :: IO ()

-- C: bool ImGui::TableNextColumn()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TableNextColumn"
  tableNextColumn :: IO CBool

-- C: void ImGui::TableNextRow(ImGuiTableRowFlags row_flags, float min_row_height)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TableNextRow"
  tableNextRow
    :: ImGuiTableRowFlags -- ^ row_flags
    -> Float -- ^ min_row_height
    -> IO ()

-- C: void ImGui::TableSetBgColor(ImGuiTableBgTarget target, ImU32 color, int column_n)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TableSetBgColor"
  tableSetBgColor
    :: ImGuiTableBgTarget -- ^ target
    -> ImU32 -- ^ color
    -> CInt -- ^ column_n
    -> IO ()

-- C: void ImGui::TableSetColumnEnabled(int column_n, bool v)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TableSetColumnEnabled"
  tableSetColumnEnabled
    :: CInt -- ^ column_n
    -> CBool -- ^ v
    -> IO ()

-- C: bool ImGui::TableSetColumnIndex(int column_n)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TableSetColumnIndex"
  tableSetColumnIndex
    :: CInt -- ^ column_n
    -> IO CBool

-- C: void ImGui::TableSetupColumn(const char* label, ImGuiTableColumnFlags flags, float init_width_or_weight, ImGuiID user_data)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TableSetupColumn"
  tableSetupColumn
    :: CString -- ^ label
    -> ImGuiTableColumnFlags -- ^ flags
    -> Float -- ^ init_width_or_weight
    -> ImGuiID -- ^ user_data
    -> IO ()

-- C: void ImGui::TableSetupScrollFreeze(int cols, int rows)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TableSetupScrollFreeze"
  tableSetupScrollFreeze
    :: CInt -- ^ cols
    -> CInt -- ^ rows
    -> IO ()

foreign import capi unsafe "DearImGuiWrappers.h ImGui_TextColoredUnformatted_wrap"
  c_textColoredUnformatted
    :: (Ptr ImVec4) -- ^ col
    -> CString -- ^ text
    -> IO ()

textColoredUnformatted
  :: ImVec4 -- ^ col
  -> CString -- ^ text
  -> IO ()
textColoredUnformatted col text =
  with col $ \colPtr -> c_textColoredUnformatted colPtr text

-- C: void ImGui::TextDisabled(const char* text)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TextDisabledUnformatted"
  textDisabledUnformatted
    :: CString -- ^ text
    -> IO ()

-- C: bool ImGui::TextLink(const char* label)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TextLink"
  textLink
    :: CString -- ^ label
    -> IO CBool

-- C: bool ImGui::TextLinkOpenURL(const char* label, const char* url)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TextLinkOpenURL"
  textLinkOpenURL
    :: CString -- ^ label
    -> CString -- ^ url
    -> IO CBool

-- C: void ImGui::TextUnformatted(const char* text, const char* text_end)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TextUnformatted"
  textUnformatted
    :: CString -- ^ text
    -> CString -- ^ text_end
    -> IO ()

-- C: void ImGui::TextWrapped(const char* text)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TextWrappedUnformatted"
  textWrappedUnformatted
    :: CString -- ^ text
    -> IO ()

-- C: bool ImGui::TreeNode(const char* label)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TreeNode"
  treeNode
    :: CString -- ^ label
    -> IO CBool

-- C: bool ImGui::TreeNodeEx(const char* label, ImGuiTreeNodeFlags flags)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TreeNodeEx"
  treeNodeEx
    :: CString -- ^ label
    -> ImGuiTreeNodeFlags -- ^ flags
    -> IO CBool

-- C: bool ImGui::TreeNodeEx(const void* ptr_id, ImGuiTreeNodeFlags flags, const char* text)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TreeNodeExPtrUnformatted"
  treeNodeExPtrUnformatted
    :: (Ptr ()) -- ^ ptr_id
    -> ImGuiTreeNodeFlags -- ^ flags
    -> CString -- ^ text
    -> IO CBool

-- C: bool ImGui::TreeNodeEx(const char* str_id, ImGuiTreeNodeFlags flags, const char* text)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TreeNodeExStrUnformatted"
  treeNodeExStrUnformatted
    :: CString -- ^ str_id
    -> ImGuiTreeNodeFlags -- ^ flags
    -> CString -- ^ text
    -> IO CBool

-- C: bool ImGui::TreeNodeGetOpen(ImGuiID storage_id)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TreeNodeGetOpen"
  treeNodeGetOpen
    :: ImGuiID -- ^ storage_id
    -> IO CBool

-- C: bool ImGui::TreeNode(const void* ptr_id, const char* text)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TreeNodePtrUnformatted"
  treeNodePtrUnformatted
    :: (Ptr ()) -- ^ ptr_id
    -> CString -- ^ text
    -> IO CBool

-- C: bool ImGui::TreeNode(const char* str_id, const char* text)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TreeNodeStrUnformatted"
  treeNodeStrUnformatted
    :: CString -- ^ str_id
    -> CString -- ^ text
    -> IO CBool

-- C: void ImGui::TreePop()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TreePop"
  treePop :: IO ()

-- C: void ImGui::TreePush(const char* str_id)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TreePush"
  treePush
    :: CString -- ^ str_id
    -> IO ()

-- C: void ImGui::TreePush(const void* ptr_id)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_TreePushPtr"
  treePushPtr
    :: (Ptr ()) -- ^ ptr_id
    -> IO ()

-- C: void ImGui::Unindent(float indent_w)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_Unindent"
  unindent
    :: Float -- ^ indent_w
    -> IO ()

-- C: void ImGui::UpdatePlatformWindows()
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGui_UpdatePlatformWindows"
  updatePlatformWindows :: IO ()

foreign import capi unsafe "DearImGuiWrappers.h ImGui_VSliderFloat_wrap"
  c_vSliderFloat
    :: CString -- ^ label
    -> (Ptr ImVec2) -- ^ size
    -> (Ptr Float) -- ^ v
    -> Float -- ^ v_min
    -> Float -- ^ v_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

vSliderFloat
  :: CString -- ^ label
  -> ImVec2 -- ^ size
  -> (Ptr Float) -- ^ v
  -> Float -- ^ v_min
  -> Float -- ^ v_max
  -> CString -- ^ format
  -> ImGuiSliderFlags -- ^ flags
  -> IO CBool
vSliderFloat label size v v_min v_max format flags =
  with size $ \sizePtr -> c_vSliderFloat label sizePtr v v_min v_max format flags

foreign import capi unsafe "DearImGuiWrappers.h ImGui_VSliderInt_wrap"
  c_vSliderInt
    :: CString -- ^ label
    -> (Ptr ImVec2) -- ^ size
    -> (Ptr CInt) -- ^ v
    -> CInt -- ^ v_min
    -> CInt -- ^ v_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

vSliderInt
  :: CString -- ^ label
  -> ImVec2 -- ^ size
  -> (Ptr CInt) -- ^ v
  -> CInt -- ^ v_min
  -> CInt -- ^ v_max
  -> CString -- ^ format
  -> ImGuiSliderFlags -- ^ flags
  -> IO CBool
vSliderInt label size v v_min v_max format flags =
  with size $ \sizePtr -> c_vSliderInt label sizePtr v v_min v_max format flags

foreign import capi unsafe "DearImGuiWrappers.h ImGui_VSliderScalar_wrap"
  c_vSliderScalar
    :: CString -- ^ label
    -> (Ptr ImVec2) -- ^ size
    -> ImGuiDataType -- ^ data_type
    -> (Ptr ()) -- ^ p_data
    -> (Ptr ()) -- ^ p_min
    -> (Ptr ()) -- ^ p_max
    -> CString -- ^ format
    -> ImGuiSliderFlags -- ^ flags
    -> IO CBool

vSliderScalar
  :: CString -- ^ label
  -> ImVec2 -- ^ size
  -> ImGuiDataType -- ^ data_type
  -> (Ptr ()) -- ^ p_data
  -> (Ptr ()) -- ^ p_min
  -> (Ptr ()) -- ^ p_max
  -> CString -- ^ format
  -> ImGuiSliderFlags -- ^ flags
  -> IO CBool
vSliderScalar label size data_type p_data p_min p_max format flags =
  with size $ \sizePtr -> c_vSliderScalar label sizePtr data_type p_data p_min p_max format flags