packages feed

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

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

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

module DearImGui.Raw.Enums.ImGuiTreeNodeFlags
  ( ImGuiTreeNodeFlags
  , pattern AllowOverlap
  , pattern Bullet
  , pattern CollapsingHeader
  , pattern DefaultOpen
  , pattern DrawLinesFull
  , pattern DrawLinesNone
  , pattern DrawLinesToNodes
  , pattern FramePadding
  , pattern Framed
  , pattern LabelSpanAllColumns
  , pattern Leaf
  , pattern NavLeftJumpsToParent
  , pattern NoAutoOpenOnLog
  , pattern NoTreePushOnOpen
  , pattern None
  , pattern OpenOnArrow
  , pattern OpenOnDoubleClick
  , pattern Selected
  , pattern SpanAllColumns
  , pattern SpanAvailWidth
  , pattern SpanFullWidth
  , pattern SpanLabelWidth
  ) where

import Foreign.C.Types

#include "dcimgui_nodefaultargfunctions.h"

-- typedefs

-- | Flags for ImGui::TreeNodeEx(), ImGui::CollapsingHeader*()
type ImGuiTreeNodeFlags = CInt

-- enums

pattern None :: ImGuiTreeNodeFlags
pattern None = #{const ImGuiTreeNodeFlags_None}

-- | Draw as selected
pattern Selected :: ImGuiTreeNodeFlags
pattern Selected = #{const ImGuiTreeNodeFlags_Selected}

-- | Draw frame with background (e.g. for CollapsingHeader)
pattern Framed :: ImGuiTreeNodeFlags
pattern Framed = #{const ImGuiTreeNodeFlags_Framed}

-- | Hit testing will allow subsequent widgets to overlap this one. Require previous frame HoveredId to match before being usable. Shortcut to calling SetNextItemAllowOverlap().
pattern AllowOverlap :: ImGuiTreeNodeFlags
pattern AllowOverlap = #{const ImGuiTreeNodeFlags_AllowOverlap}

-- | Don't do a TreePush() when open (e.g. for CollapsingHeader) = no extra indent nor pushing on ID stack
pattern NoTreePushOnOpen :: ImGuiTreeNodeFlags
pattern NoTreePushOnOpen = #{const ImGuiTreeNodeFlags_NoTreePushOnOpen}

-- | Don't automatically and temporarily open node when Logging is active (by default logging will automatically open tree nodes)
pattern NoAutoOpenOnLog :: ImGuiTreeNodeFlags
pattern NoAutoOpenOnLog = #{const ImGuiTreeNodeFlags_NoAutoOpenOnLog}

-- | Default node to be open
pattern DefaultOpen :: ImGuiTreeNodeFlags
pattern DefaultOpen = #{const ImGuiTreeNodeFlags_DefaultOpen}

-- | Open on double-click instead of simple click (default for multi-select unless any _OpenOnXXX behavior is set explicitly). Both behaviors may be combined.
pattern OpenOnDoubleClick :: ImGuiTreeNodeFlags
pattern OpenOnDoubleClick = #{const ImGuiTreeNodeFlags_OpenOnDoubleClick}

-- | Open when clicking on the arrow part (default for multi-select unless any _OpenOnXXX behavior is set explicitly). Both behaviors may be combined.
pattern OpenOnArrow :: ImGuiTreeNodeFlags
pattern OpenOnArrow = #{const ImGuiTreeNodeFlags_OpenOnArrow}

-- | No collapsing, no arrow (use as a convenience for leaf nodes). Note: will always open a tree/id scope and return true. If you never use that scope, add ImGuiTreeNodeFlags_NoTreePushOnOpen.
pattern Leaf :: ImGuiTreeNodeFlags
pattern Leaf = #{const ImGuiTreeNodeFlags_Leaf}

-- | Display a bullet instead of arrow. IMPORTANT: node can still be marked open/close if you don't set the _Leaf flag!
pattern Bullet :: ImGuiTreeNodeFlags
pattern Bullet = #{const ImGuiTreeNodeFlags_Bullet}

-- | Use FramePadding (even for an unframed text node) to vertically align text baseline to regular widget height. Equivalent to calling AlignTextToFramePadding() before the node.
pattern FramePadding :: ImGuiTreeNodeFlags
pattern FramePadding = #{const ImGuiTreeNodeFlags_FramePadding}

-- | Extend hit box to the right-most edge, even if not framed. This is not the default in order to allow adding other items on the same line without using AllowOverlap mode.
pattern SpanAvailWidth :: ImGuiTreeNodeFlags
pattern SpanAvailWidth = #{const ImGuiTreeNodeFlags_SpanAvailWidth}

-- | Extend hit box to the left-most and right-most edges (cover the indent area).
pattern SpanFullWidth :: ImGuiTreeNodeFlags
pattern SpanFullWidth = #{const ImGuiTreeNodeFlags_SpanFullWidth}

-- | Narrow hit box + narrow hovering highlight, will only cover the label text.
pattern SpanLabelWidth :: ImGuiTreeNodeFlags
pattern SpanLabelWidth = #{const ImGuiTreeNodeFlags_SpanLabelWidth}

-- | Frame will span all columns of its container table (label will still fit in current column)
pattern SpanAllColumns :: ImGuiTreeNodeFlags
pattern SpanAllColumns = #{const ImGuiTreeNodeFlags_SpanAllColumns}

-- | Label will span all columns of its container table
pattern LabelSpanAllColumns :: ImGuiTreeNodeFlags
pattern LabelSpanAllColumns = #{const ImGuiTreeNodeFlags_LabelSpanAllColumns}

-- | ImGuiTreeNodeFlags_NoScrollOnOpen     = 1 << 16,  // FIXME: TODO: Disable automatic scroll on TreePop() if node got just open and contents is not visible
-- Nav: left arrow moves back to parent. This is processed in TreePop() when there's an unfulfilled Left nav request remaining.
pattern NavLeftJumpsToParent :: ImGuiTreeNodeFlags
pattern NavLeftJumpsToParent = #{const ImGuiTreeNodeFlags_NavLeftJumpsToParent}

pattern CollapsingHeader :: ImGuiTreeNodeFlags
pattern CollapsingHeader = #{const ImGuiTreeNodeFlags_CollapsingHeader}

-- | [EXPERIMENTAL] Draw lines connecting TreeNode hierarchy. Discuss in GitHub issue #2920.
-- Default value is pulled from style.TreeLinesFlags. May be overridden in TreeNode calls.
-- No lines drawn
pattern DrawLinesNone :: ImGuiTreeNodeFlags
pattern DrawLinesNone = #{const ImGuiTreeNodeFlags_DrawLinesNone}

-- | Horizontal lines to child nodes. Vertical line drawn down to TreePop() position: cover full contents. Faster (for large trees).
pattern DrawLinesFull :: ImGuiTreeNodeFlags
pattern DrawLinesFull = #{const ImGuiTreeNodeFlags_DrawLinesFull}

-- | Horizontal lines to child nodes. Vertical line drawn down to bottom-most child node. Slower (for large trees).
pattern DrawLinesToNodes :: ImGuiTreeNodeFlags
pattern DrawLinesToNodes = #{const ImGuiTreeNodeFlags_DrawLinesToNodes}