packages feed

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

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

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

module DearImGui.Raw.Enums.ImGuiMultiSelectFlags
  ( ImGuiMultiSelectFlags
  , pattern BoxSelect1d
  , pattern BoxSelect2d
  , pattern BoxSelectNoScroll
  , pattern CheckboxMode_
  , pattern ClearOnClickVoid
  , pattern ClearOnEscape
  , pattern NavWrapX
  , pattern NoAutoClear
  , pattern NoAutoClearOnReselect
  , pattern NoAutoSelect
  , pattern NoRangeSelect
  , pattern NoSelectAll
  , pattern NoSelectOnRightClick
  , pattern None
  , pattern ScopeRect
  , pattern ScopeWindow
  , pattern SelectOnAuto
  , pattern SelectOnClickAlways
  , pattern SelectOnClickRelease
  , pattern SelectOnMask_
  , pattern SingleSelect
  ) where

import Foreign.C.Types

#include "dcimgui_nodefaultargfunctions.h"

-- typedefs

-- | Flags for BeginMultiSelect()
type ImGuiMultiSelectFlags = CInt

-- enums

pattern None :: ImGuiMultiSelectFlags
pattern None = #{const ImGuiMultiSelectFlags_None}

-- | Disable selecting more than one item. This is available to allow single-selection code to share same code/logic if desired. It essentially disables the main purpose of BeginMultiSelect() tho!
pattern SingleSelect :: ImGuiMultiSelectFlags
pattern SingleSelect = #{const ImGuiMultiSelectFlags_SingleSelect}

-- | Disable Ctrl+A shortcut to select all.
pattern NoSelectAll :: ImGuiMultiSelectFlags
pattern NoSelectAll = #{const ImGuiMultiSelectFlags_NoSelectAll}

-- | Disable Shift+selection mouse/keyboard support (useful for unordered 2D selection). With BoxSelect is also ensure contiguous SetRange requests are not combined into one. This allows not handling interpolation in SetRange requests.
pattern NoRangeSelect :: ImGuiMultiSelectFlags
pattern NoRangeSelect = #{const ImGuiMultiSelectFlags_NoRangeSelect}

-- | Disable selecting items when navigating (useful for e.g. supporting range-select in a list of checkboxes).
pattern NoAutoSelect :: ImGuiMultiSelectFlags
pattern NoAutoSelect = #{const ImGuiMultiSelectFlags_NoAutoSelect}

-- | Disable clearing selection when navigating or selecting another one (generally used with ImGuiMultiSelectFlags_NoAutoSelect. useful for e.g. supporting range-select in a list of checkboxes).
pattern NoAutoClear :: ImGuiMultiSelectFlags
pattern NoAutoClear = #{const ImGuiMultiSelectFlags_NoAutoClear}

-- | Disable clearing selection when clicking/selecting an already selected item.
pattern NoAutoClearOnReselect :: ImGuiMultiSelectFlags
pattern NoAutoClearOnReselect = #{const ImGuiMultiSelectFlags_NoAutoClearOnReselect}

-- | Enable box-selection with same width and same x pos items (e.g. full row Selectable()). Box-selection works better with little bit of spacing between items hit-box in order to be able to aim at empty space.
pattern BoxSelect1d :: ImGuiMultiSelectFlags
pattern BoxSelect1d = #{const ImGuiMultiSelectFlags_BoxSelect1d}

-- | Enable box-selection with varying width or varying x pos items support (e.g. different width labels, or 2D layout/grid). This is slower: alters clipping logic so that e.g. horizontal movements will update selection of normally clipped items.
pattern BoxSelect2d :: ImGuiMultiSelectFlags
pattern BoxSelect2d = #{const ImGuiMultiSelectFlags_BoxSelect2d}

-- | Disable scrolling when box-selecting and moving mouse near edges of scope.
pattern BoxSelectNoScroll :: ImGuiMultiSelectFlags
pattern BoxSelectNoScroll = #{const ImGuiMultiSelectFlags_BoxSelectNoScroll}

-- | Clear selection when pressing Escape while scope is focused.
pattern ClearOnEscape :: ImGuiMultiSelectFlags
pattern ClearOnEscape = #{const ImGuiMultiSelectFlags_ClearOnEscape}

-- | Clear selection when clicking on empty location within scope.
pattern ClearOnClickVoid :: ImGuiMultiSelectFlags
pattern ClearOnClickVoid = #{const ImGuiMultiSelectFlags_ClearOnClickVoid}

-- | Scope for _BoxSelect and _ClearOnClickVoid is whole window (Default). Use if BeginMultiSelect() covers a whole window or used a single time in same window.
pattern ScopeWindow :: ImGuiMultiSelectFlags
pattern ScopeWindow = #{const ImGuiMultiSelectFlags_ScopeWindow}

-- | Scope for _BoxSelect and _ClearOnClickVoid is rectangle encompassing BeginMultiSelect()/EndMultiSelect(). Use if BeginMultiSelect() is called multiple times in same window.
pattern ScopeRect :: ImGuiMultiSelectFlags
pattern ScopeRect = #{const ImGuiMultiSelectFlags_ScopeRect}

-- | Apply selection on mouse down when clicking on unselected item, on mouse up when clicking on selected item. (Default)
pattern SelectOnAuto :: ImGuiMultiSelectFlags
pattern SelectOnAuto = #{const ImGuiMultiSelectFlags_SelectOnAuto}

-- | Apply selection on mouse down when clicking on any items. Prevents Drag and Drop from being used on multiple-selection, but allows e.g. BoxSelect to always reselect even when clicking inside an existing selection. (Excel style behavior)
pattern SelectOnClickAlways :: ImGuiMultiSelectFlags
pattern SelectOnClickAlways = #{const ImGuiMultiSelectFlags_SelectOnClickAlways}

-- | Apply selection on mouse release when clicking an unselected item. Allow dragging an unselected item without altering selection.
pattern SelectOnClickRelease :: ImGuiMultiSelectFlags
pattern SelectOnClickRelease = #{const ImGuiMultiSelectFlags_SelectOnClickRelease}

-- | ImGuiMultiSelectFlags_RangeSelect2d       = 1 << 15,  // Shift+Selection uses 2d geometry instead of linear sequence, so possible to use Shift+up/down to select vertically in grid. Analogous to what BoxSelect does.
-- [Temporary] Enable navigation wrapping on X axis. Provided as a convenience because we don't have a design for the general Nav API for this yet. When the more general feature be public we may obsolete this flag in favor of new one.
pattern NavWrapX :: ImGuiMultiSelectFlags
pattern NavWrapX = #{const ImGuiMultiSelectFlags_NavWrapX}

-- | Disable default right-click processing, which selects item on mouse down, and is designed for context-menus.
pattern NoSelectOnRightClick :: ImGuiMultiSelectFlags
pattern NoSelectOnRightClick = #{const ImGuiMultiSelectFlags_NoSelectOnRightClick}

pattern SelectOnMask_ :: ImGuiMultiSelectFlags
pattern SelectOnMask_ = #{const ImGuiMultiSelectFlags_SelectOnMask_}

-- | [Internal]
pattern CheckboxMode_ :: ImGuiMultiSelectFlags
pattern CheckboxMode_ = #{const ImGuiMultiSelectFlags_CheckboxMode_}