packages feed

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

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

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

module DearImGui.Raw.ImGuiStyle
  ( ImGuiStyle
  , colorsLength
  , destroy
  , init
  , scaleAllSizes
  , withDefault
  ) where

import Control.Exception (bracket_)
import DearImGui.Raw.Enums.ImGuiDir (ImGuiDir)
import DearImGui.Raw.Enums.ImGuiHoveredFlags (ImGuiHoveredFlags)
import DearImGui.Raw.Enums.ImGuiTreeNodeFlags (ImGuiTreeNodeFlags)
import DearImGui.Raw.ImVec2 (ImVec2)
import DearImGui.Raw.ImVec4 (ImVec4)
import Foreign.C.Types
import Foreign.Marshal.Alloc (alloca)
import Foreign.Ptr (Ptr, plusPtr)
import Foreign.Storable (Storable (..))
import GHC.Records (HasField (..))
import Prelude hiding (init)

#include "dcimgui_nodefaultargfunctions.h"

-- structs (opaque)

data ImGuiStyle
instance Storable ImGuiStyle where
  sizeOf _    = #{size ImGuiStyle}
  alignment _ = #{alignment ImGuiStyle}
  peek _ = error "ImGuiStyle: opaque struct, peek not supported in v0"
  poke _ _ = error "ImGuiStyle: opaque struct, poke not supported in v0"

instance HasField "fontSizeBase" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, FontSizeBase}

instance HasField "fontScaleMain" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, FontScaleMain}

instance HasField "fontScaleDpi" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, FontScaleDpi}

instance HasField "alpha" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, Alpha}

instance HasField "disabledAlpha" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, DisabledAlpha}

instance HasField "windowPadding" (Ptr ImGuiStyle) (Ptr ImVec2) where
  getField = #{ptr ImGuiStyle, WindowPadding}

instance HasField "windowRounding" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, WindowRounding}

instance HasField "windowBorderSize" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, WindowBorderSize}

instance HasField "windowBorderHoverPadding" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, WindowBorderHoverPadding}

instance HasField "windowMinSize" (Ptr ImGuiStyle) (Ptr ImVec2) where
  getField = #{ptr ImGuiStyle, WindowMinSize}

instance HasField "windowTitleAlign" (Ptr ImGuiStyle) (Ptr ImVec2) where
  getField = #{ptr ImGuiStyle, WindowTitleAlign}

instance HasField "windowMenuButtonPosition" (Ptr ImGuiStyle) (Ptr ImGuiDir) where
  getField = #{ptr ImGuiStyle, WindowMenuButtonPosition}

instance HasField "childRounding" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, ChildRounding}

instance HasField "childBorderSize" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, ChildBorderSize}

instance HasField "popupRounding" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, PopupRounding}

instance HasField "popupBorderSize" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, PopupBorderSize}

instance HasField "framePadding" (Ptr ImGuiStyle) (Ptr ImVec2) where
  getField = #{ptr ImGuiStyle, FramePadding}

instance HasField "frameRounding" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, FrameRounding}

instance HasField "frameBorderSize" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, FrameBorderSize}

instance HasField "itemSpacing" (Ptr ImGuiStyle) (Ptr ImVec2) where
  getField = #{ptr ImGuiStyle, ItemSpacing}

instance HasField "itemInnerSpacing" (Ptr ImGuiStyle) (Ptr ImVec2) where
  getField = #{ptr ImGuiStyle, ItemInnerSpacing}

instance HasField "cellPadding" (Ptr ImGuiStyle) (Ptr ImVec2) where
  getField = #{ptr ImGuiStyle, CellPadding}

instance HasField "touchExtraPadding" (Ptr ImGuiStyle) (Ptr ImVec2) where
  getField = #{ptr ImGuiStyle, TouchExtraPadding}

instance HasField "indentSpacing" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, IndentSpacing}

instance HasField "columnsMinSpacing" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, ColumnsMinSpacing}

instance HasField "scrollbarSize" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, ScrollbarSize}

instance HasField "scrollbarRounding" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, ScrollbarRounding}

instance HasField "scrollbarPadding" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, ScrollbarPadding}

instance HasField "grabMinSize" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, GrabMinSize}

instance HasField "grabRounding" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, GrabRounding}

instance HasField "logSliderDeadzone" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, LogSliderDeadzone}

instance HasField "imageRounding" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, ImageRounding}

instance HasField "imageBorderSize" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, ImageBorderSize}

instance HasField "tabRounding" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, TabRounding}

instance HasField "tabBorderSize" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, TabBorderSize}

instance HasField "tabMinWidthBase" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, TabMinWidthBase}

instance HasField "tabMinWidthShrink" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, TabMinWidthShrink}

instance HasField "tabCloseButtonMinWidthSelected" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, TabCloseButtonMinWidthSelected}

instance HasField "tabCloseButtonMinWidthUnselected" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, TabCloseButtonMinWidthUnselected}

instance HasField "tabBarBorderSize" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, TabBarBorderSize}

instance HasField "tabBarOverlineSize" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, TabBarOverlineSize}

instance HasField "tableAngledHeadersAngle" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, TableAngledHeadersAngle}

instance HasField "tableAngledHeadersTextAlign" (Ptr ImGuiStyle) (Ptr ImVec2) where
  getField = #{ptr ImGuiStyle, TableAngledHeadersTextAlign}

instance HasField "treeLinesFlags" (Ptr ImGuiStyle) (Ptr ImGuiTreeNodeFlags) where
  getField = #{ptr ImGuiStyle, TreeLinesFlags}

instance HasField "treeLinesSize" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, TreeLinesSize}

instance HasField "treeLinesRounding" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, TreeLinesRounding}

instance HasField "menuItemRounding" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, MenuItemRounding}

instance HasField "selectableRounding" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, SelectableRounding}

instance HasField "dragDropTargetRounding" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, DragDropTargetRounding}

instance HasField "dragDropTargetBorderSize" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, DragDropTargetBorderSize}

instance HasField "dragDropTargetPadding" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, DragDropTargetPadding}

instance HasField "colorMarkerSize" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, ColorMarkerSize}

instance HasField "colorButtonPosition" (Ptr ImGuiStyle) (Ptr ImGuiDir) where
  getField = #{ptr ImGuiStyle, ColorButtonPosition}

instance HasField "buttonTextAlign" (Ptr ImGuiStyle) (Ptr ImVec2) where
  getField = #{ptr ImGuiStyle, ButtonTextAlign}

instance HasField "selectableTextAlign" (Ptr ImGuiStyle) (Ptr ImVec2) where
  getField = #{ptr ImGuiStyle, SelectableTextAlign}

instance HasField "inputTextCursorSize" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, InputTextCursorSize}

instance HasField "separatorSize" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, SeparatorSize}

instance HasField "separatorTextBorderSize" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, SeparatorTextBorderSize}

instance HasField "separatorTextAlign" (Ptr ImGuiStyle) (Ptr ImVec2) where
  getField = #{ptr ImGuiStyle, SeparatorTextAlign}

instance HasField "separatorTextPadding" (Ptr ImGuiStyle) (Ptr ImVec2) where
  getField = #{ptr ImGuiStyle, SeparatorTextPadding}

instance HasField "displayWindowPadding" (Ptr ImGuiStyle) (Ptr ImVec2) where
  getField = #{ptr ImGuiStyle, DisplayWindowPadding}

instance HasField "displaySafeAreaPadding" (Ptr ImGuiStyle) (Ptr ImVec2) where
  getField = #{ptr ImGuiStyle, DisplaySafeAreaPadding}

instance HasField "dockingNodeHasCloseButton" (Ptr ImGuiStyle) (Ptr CBool) where
  getField = #{ptr ImGuiStyle, DockingNodeHasCloseButton}

instance HasField "dockingSeparatorSize" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, DockingSeparatorSize}

instance HasField "mouseCursorScale" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, MouseCursorScale}

instance HasField "antiAliasedLines" (Ptr ImGuiStyle) (Ptr CBool) where
  getField = #{ptr ImGuiStyle, AntiAliasedLines}

instance HasField "antiAliasedLineEnds" (Ptr ImGuiStyle) (Ptr CBool) where
  getField = #{ptr ImGuiStyle, AntiAliasedLineEnds}

instance HasField "antiAliasedFill" (Ptr ImGuiStyle) (Ptr CBool) where
  getField = #{ptr ImGuiStyle, AntiAliasedFill}

instance HasField "curveTessellationMaxError" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, CurveTessellationMaxError}

instance HasField "circleTessellationMaxError" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, CircleTessellationMaxError}

instance HasField "colors" (Ptr ImGuiStyle) (Ptr ImVec4) where
  getField = #{ptr ImGuiStyle, Colors}

colorsLength :: Int
colorsLength = #{const ImGuiCol_COUNT}

instance HasField "hoverStationaryDelay" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, HoverStationaryDelay}

instance HasField "hoverDelayShort" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, HoverDelayShort}

instance HasField "hoverDelayNormal" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, HoverDelayNormal}

instance HasField "hoverFlagsForTooltipMouse" (Ptr ImGuiStyle) (Ptr ImGuiHoveredFlags) where
  getField = #{ptr ImGuiStyle, HoverFlagsForTooltipMouse}

instance HasField "hoverFlagsForTooltipNav" (Ptr ImGuiStyle) (Ptr ImGuiHoveredFlags) where
  getField = #{ptr ImGuiStyle, HoverFlagsForTooltipNav}

instance HasField "_MainScale" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, _MainScale}

instance HasField "_NextFrameFontSizeBase" (Ptr ImGuiStyle) (Ptr Float) where
  getField = #{ptr ImGuiStyle, _NextFrameFontSizeBase}

foreign import capi unsafe "DearImGuiWrappers.h ImGuiStyle_Init_wrap"
  init
    :: Ptr ImGuiStyle
    -> IO ()

foreign import capi unsafe "DearImGuiWrappers.h ImGuiStyle_Destroy_wrap"
  destroy
    :: Ptr ImGuiStyle
    -> IO ()

withDefault :: (Ptr ImGuiStyle -> IO a) -> IO a
withDefault k = alloca $ \p -> bracket_ (init p) (destroy p) (k p)

-- functions

-- C: void ScaleAllSizes(ImGuiStyle* self, float scale_factor)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGuiStyle_ScaleAllSizes"
  scaleAllSizes
    :: (Ptr ImGuiStyle) -- ^ self
    -> Float -- ^ scale_factor
    -> IO ()