{-# language DerivingStrategies #-}
{-# language DuplicateRecordFields #-}
{-# language GeneralizedNewtypeDeriving #-}
{-# language NamedFieldPuns #-}
{-# language OverloadedStrings #-}
{-# language PatternSynonyms #-}
{-# language TemplateHaskell #-}
module DearImGui.Context where
import qualified Data.Map.Strict as Map
import Language.C.Inline.Context
  ( Context(..) )
import Language.C.Types
  ( pattern TypeName )
import DearImGui.Structs
import DearImGui.Generator
  ( enumerationsTypesTable )
imguiContext :: Context
imguiContext :: Context
imguiContext = forall a. Monoid a => a
mempty
  { ctxTypesTable :: TypesTable
ctxTypesTable = TypesTable
enumerationsTypesTable forall a. Semigroup a => a -> a -> a
<>
    forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList
      [ ( CIdentifier -> TypeSpecifier
TypeName CIdentifier
"ImVec2", [t| ImVec2 |] )
      , ( CIdentifier -> TypeSpecifier
TypeName CIdentifier
"ImVec3", [t| ImVec3 |] )
      , ( CIdentifier -> TypeSpecifier
TypeName CIdentifier
"ImVec4", [t| ImVec4 |] )
      , ( CIdentifier -> TypeSpecifier
TypeName CIdentifier
"ImU32", [t| ImU32 |] )
      , ( CIdentifier -> TypeSpecifier
TypeName CIdentifier
"ImGuiID", [t| ImGuiID |] )
      , ( CIdentifier -> TypeSpecifier
TypeName CIdentifier
"ImWchar", [t| ImWchar |] )
      , ( CIdentifier -> TypeSpecifier
TypeName CIdentifier
"ImDrawList", [t| ImDrawList |] )
      , ( CIdentifier -> TypeSpecifier
TypeName CIdentifier
"ImGuiContext", [t| ImGuiContext |] )
      , ( CIdentifier -> TypeSpecifier
TypeName CIdentifier
"ImFont", [t| ImFont |] )
      , ( CIdentifier -> TypeSpecifier
TypeName CIdentifier
"ImFontConfig", [t| ImFontConfig |] )
      , ( CIdentifier -> TypeSpecifier
TypeName CIdentifier
"ImFontGlyphRangesBuilder", [t| ImFontGlyphRangesBuilder |] )
      , ( CIdentifier -> TypeSpecifier
TypeName CIdentifier
"ImGuiListClipper", [t| ImGuiListClipper |] )
      , ( CIdentifier -> TypeSpecifier
TypeName CIdentifier
"ImGuiTableSortSpecs", [t| ImGuiTableSortSpecs |] )
      ]
  }