packages feed

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

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

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

module DearImGui.Raw.Enums.ImGuiPopupFlags
  ( ImGuiPopupFlags
  , pattern AnyPopup
  , pattern AnyPopupId
  , pattern AnyPopupLevel
  , pattern InvalidMask_
  , pattern MouseButtonLeft
  , pattern MouseButtonMask_
  , pattern MouseButtonMiddle
  , pattern MouseButtonRight
  , pattern MouseButtonShift_
  , pattern NoOpenOverExistingPopup
  , pattern NoOpenOverItems
  , pattern NoReopen
  , pattern None
  ) where

import Foreign.C.Types

#include "dcimgui_nodefaultargfunctions.h"

-- typedefs

-- | Flags for OpenPopup*(), BeginPopupContext*(), IsPopupOpen() functions.
-- - IMPORTANT: If you ever used the left mouse button with BeginPopupContextXXX() helpers before 1.92.6: Read "API BREAKING CHANGES" 2026/01/07 (1.92.6) entry in imgui.cpp or GitHub topic #9157.
-- - Multiple buttons currently cannot be combined/or-ed in those functions (we could allow it later).
type ImGuiPopupFlags = CInt

-- enums

pattern None :: ImGuiPopupFlags
pattern None = #{const ImGuiPopupFlags_None}

-- | For BeginPopupContext*(): open on Left Mouse release. Only one button allowed!
pattern MouseButtonLeft :: ImGuiPopupFlags
pattern MouseButtonLeft = #{const ImGuiPopupFlags_MouseButtonLeft}

-- | For BeginPopupContext*(): open on Right Mouse release. Only one button allowed! (default)
pattern MouseButtonRight :: ImGuiPopupFlags
pattern MouseButtonRight = #{const ImGuiPopupFlags_MouseButtonRight}

-- | For BeginPopupContext*(): open on Middle Mouse release. Only one button allowed!
pattern MouseButtonMiddle :: ImGuiPopupFlags
pattern MouseButtonMiddle = #{const ImGuiPopupFlags_MouseButtonMiddle}

-- | For OpenPopup*(), BeginPopupContext*(): don't reopen same popup if already open (won't reposition, won't reinitialize navigation)
pattern NoReopen :: ImGuiPopupFlags
pattern NoReopen = #{const ImGuiPopupFlags_NoReopen}

-- | ImGuiPopupFlags_NoReopenAlwaysNavInit = 1 << 6,   // For OpenPopup*(), BeginPopupContext*(): focus and initialize navigation even when not reopening.
-- For OpenPopup*(), BeginPopupContext*(): don't open if there's already a popup at the same level of the popup stack
pattern NoOpenOverExistingPopup :: ImGuiPopupFlags
pattern NoOpenOverExistingPopup = #{const ImGuiPopupFlags_NoOpenOverExistingPopup}

-- | For BeginPopupContextWindow(): don't return true when hovering items, only when hovering empty space
pattern NoOpenOverItems :: ImGuiPopupFlags
pattern NoOpenOverItems = #{const ImGuiPopupFlags_NoOpenOverItems}

-- | For IsPopupOpen(): ignore the ImGuiID parameter and test for any popup.
pattern AnyPopupId :: ImGuiPopupFlags
pattern AnyPopupId = #{const ImGuiPopupFlags_AnyPopupId}

-- | For IsPopupOpen(): search/test at any level of the popup stack (default test in the current level)
pattern AnyPopupLevel :: ImGuiPopupFlags
pattern AnyPopupLevel = #{const ImGuiPopupFlags_AnyPopupLevel}

pattern AnyPopup :: ImGuiPopupFlags
pattern AnyPopup = #{const ImGuiPopupFlags_AnyPopup}

-- | [Internal]
pattern MouseButtonShift_ :: ImGuiPopupFlags
pattern MouseButtonShift_ = #{const ImGuiPopupFlags_MouseButtonShift_}

-- | [Internal]
pattern MouseButtonMask_ :: ImGuiPopupFlags
pattern MouseButtonMask_ = #{const ImGuiPopupFlags_MouseButtonMask_}

-- | [Internal] Reserve legacy bits 0-1 to detect incorrectly passing 1 or 2 to the function.
pattern InvalidMask_ :: ImGuiPopupFlags
pattern InvalidMask_ = #{const ImGuiPopupFlags_InvalidMask_}