packages feed

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

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

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

module DearImGui.Raw.Enums.ImGuiItemFlags
  ( ImGuiItemFlags
  , pattern AllowDuplicateId
  , pattern AutoClosePopups
  , pattern ButtonRepeat
  , pattern Disabled
  , pattern LiveEditOnInput
  , pattern LiveEditOnInputScalar
  , pattern LiveEditOnInputText
  , pattern MixedValue
  , pattern NoNav
  , pattern NoNavDefaultFocus
  , pattern NoTabStop
  , pattern None
  ) where

import Foreign.C.Types

#include "dcimgui_nodefaultargfunctions.h"

-- typedefs

-- | Flags for ImGui::PushItemFlag()
-- (Those are shared by all submitted items)
type ImGuiItemFlags = CInt

-- enums

-- | Default:
pattern None :: ImGuiItemFlags
pattern None = #{const ImGuiItemFlags_None}

-- | false    // Disable keyboard tabbing. This is a "lighter" version of ImGuiItemFlags_NoNav.
pattern NoTabStop :: ImGuiItemFlags
pattern NoTabStop = #{const ImGuiItemFlags_NoTabStop}

-- | false    // Disable any form of focusing: keyboard/gamepad directional navigation and SetKeyboardFocusHere() calls.
pattern NoNav :: ImGuiItemFlags
pattern NoNav = #{const ImGuiItemFlags_NoNav}

-- | false    // Disable item being a candidate for default focus (e.g. used by title bar items).
pattern NoNavDefaultFocus :: ImGuiItemFlags
pattern NoNavDefaultFocus = #{const ImGuiItemFlags_NoNavDefaultFocus}

-- | false    // Any button-like behavior will have repeat mode enabled (based on io.KeyRepeatDelay and io.KeyRepeatRate values). Note that you can also call IsItemActive() after any button to tell if it is being held.
pattern ButtonRepeat :: ImGuiItemFlags
pattern ButtonRepeat = #{const ImGuiItemFlags_ButtonRepeat}

-- | true     // MenuItem()/Selectable() automatically close their parent popup window.
pattern AutoClosePopups :: ImGuiItemFlags
pattern AutoClosePopups = #{const ImGuiItemFlags_AutoClosePopups}

-- | false    // Allow submitting an item with the same identifier as an item already submitted this frame without triggering a warning tooltip if io.ConfigDebugHighlightIdConflicts is set.
pattern AllowDuplicateId :: ImGuiItemFlags
pattern AllowDuplicateId = #{const ImGuiItemFlags_AllowDuplicateId}

-- | false    // [Internal] Disable interactions. DOES NOT affect visuals. This is used by BeginDisabled()/EndDisabled() and only provided here so you can read back via GetItemFlags().
pattern Disabled :: ImGuiItemFlags
pattern Disabled = #{const ImGuiItemFlags_Disabled}

-- | ---------------------------------------------------------------------------------
-- LiveEdit refers to applying edits to backing variables _while_ typing a value using the keyboard.
-- Widget:                          | Input:   | w/ LiveEdit:    | Output:
--   InputText()                    |   "123"  |   on(default)   |  "1" then "12" then "123"
--   InputText()                    |   "123"  |   off           |  "123" after validating or tabbing out or losing focus.
--   DragFloat(), SliderInt(), etc. |   "123"  |   on*           |  1 then 12 then 123
--   DragFloat(), SliderInt(), etc. |   "123"  |   off(default)* |  123 after validation or tabbing out or losing focus.
-- (*) Since 1.92.9 (July 2026), ImGuiItemFlags_LiveEditOnInputScalar is OFF by default. In prior version it was ON for everything.
-- ---------------------------------------------------------------------------------
-- true     // InputText: apply keyboard edits to backing value while typing. Otherwise, edits are applied when validating, tabbing out or losing focus.
pattern LiveEditOnInputText :: ImGuiItemFlags
pattern LiveEditOnInputText = #{const ImGuiItemFlags_LiveEditOnInputText}

-- | false    // DragXXX, SliderXXX, InputScalar: apply keyboard edits to backing value while typing. Otherwise, edits are applied when validating, tabbing out or losing focus.
pattern LiveEditOnInputScalar :: ImGuiItemFlags
pattern LiveEditOnInputScalar = #{const ImGuiItemFlags_LiveEditOnInputScalar}

pattern LiveEditOnInput :: ImGuiItemFlags
pattern LiveEditOnInput = #{const ImGuiItemFlags_LiveEditOnInput}

-- | ---------------------------------------------------------------------------------
-- [BETA] MixedValue mode used to represent a mixed/indeterminate state, typically for multi-selection.
-- - Replace value display with "-" or a custom label.
-- - Enter key validation apply an edit and return true even if value hasn't changed (in order to apply to all).
-- - Supported by selected widgets: Checkbox, RadioButton, Sliders, Drags, Inputs, Combo.
-- - Note: InputText-side Undo cannot be reliably combined with MixedValue + LiveEdit On:
--   - Both the initial edit and subsequent undo/revert will typically make your app code write to all backing objects.
--   - If you use MixedMode and the simplest solution is to ensure LiveEdit is off but widgets where this applies.
-- ---------------------------------------------------------------------------------
-- false    // [BETA] Represent a mixed/indeterminate value. Replace value label with "-" and apply edits on validation.
pattern MixedValue :: ImGuiItemFlags
pattern MixedValue = #{const ImGuiItemFlags_MixedValue}