dear-imgui-raw-1.0.0: src/DearImGui/Raw/Enums/ImGuiTableFlags.hsc
{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}
-- This file was generated by dear-bindings-ffi. Do not edit by hand.
module DearImGui.Raw.Enums.ImGuiTableFlags
( ImGuiTableFlags
, pattern Borders
, pattern BordersH
, pattern BordersInner
, pattern BordersInnerH
, pattern BordersInnerV
, pattern BordersOuter
, pattern BordersOuterH
, pattern BordersOuterV
, pattern BordersV
, pattern ContextMenuInBody
, pattern Hideable
, pattern HighlightHoveredColumn
, pattern NoBordersInBody
, pattern NoBordersInBodyUntilResize
, pattern NoClip
, pattern NoHostExtendX
, pattern NoHostExtendY
, pattern NoKeepColumnsVisible
, pattern NoPadInnerX
, pattern NoPadOuterX
, pattern NoSavedSettings
, pattern None
, pattern PadOuterX
, pattern PreciseWidths
, pattern Reorderable
, pattern Resizable
, pattern RowBg
, pattern ScrollX
, pattern ScrollY
, pattern SizingFixedFit
, pattern SizingFixedSame
, pattern SizingMask_
, pattern SizingStretchProp
, pattern SizingStretchSame
, pattern SortMulti
, pattern SortTristate
, pattern Sortable
) where
import Foreign.C.Types
#include "dcimgui_nodefaultargfunctions.h"
-- typedefs
-- | Flags for ImGui::BeginTable()
-- - Important! Sizing policies have complex and subtle side effects, much more so than you would expect.
-- Read comments/demos carefully + experiment with live demos to get acquainted with them.
-- - The DEFAULT sizing policies are:
-- - Default to ImGuiTableFlags_SizingFixedFit if ScrollX is on, or if host window has ImGuiWindowFlags_AlwaysAutoResize.
-- - Default to ImGuiTableFlags_SizingStretchSame if ScrollX is off.
-- - When ScrollX is off:
-- - Table defaults to ImGuiTableFlags_SizingStretchSame -> all Columns defaults to ImGuiTableColumnFlags_WidthStretch with same weight.
-- - Columns sizing policy allowed: Stretch (default), Fixed/Auto.
-- - Fixed Columns (if any) will generally obtain their requested width (unless the table cannot fit them all).
-- - Stretch Columns will share the remaining width according to their respective weight.
-- - Mixed Fixed/Stretch columns is possible but has various side-effects on resizing behaviors.
-- The typical use of mixing sizing policies is: any number of LEADING Fixed columns, followed by one or two TRAILING Stretch columns.
-- (this is because the visible order of columns have subtle but necessary effects on how they react to manual resizing).
-- - When ScrollX is on:
-- - Table defaults to ImGuiTableFlags_SizingFixedFit -> all Columns defaults to ImGuiTableColumnFlags_WidthFixed
-- - Columns sizing policy allowed: Fixed/Auto mostly.
-- - Fixed Columns can be enlarged as needed. Table will show a horizontal scrollbar if needed.
-- - When using auto-resizing (non-resizable) fixed columns, querying the content width to use item right-alignment e.g. SetNextItemWidth(-FLT_MIN) doesn't make sense, would create a feedback loop.
-- - Using Stretch columns OFTEN DOES NOT MAKE SENSE if ScrollX is on, UNLESS you have specified a value for 'inner_width' in BeginTable().
-- If you specify a value for 'inner_width' then effectively the scrolling space is known and Stretch or mixed Fixed/Stretch columns become meaningful again.
-- - Read on documentation at the top of imgui_tables.cpp for details.
type ImGuiTableFlags = CInt
-- enums
-- | Features
pattern None :: ImGuiTableFlags
pattern None = #{const ImGuiTableFlags_None}
-- | Enable resizing columns.
pattern Resizable :: ImGuiTableFlags
pattern Resizable = #{const ImGuiTableFlags_Resizable}
-- | Enable reordering columns in header row. (Need calling TableSetupColumn() + TableHeadersRow() to display headers, or using ImGuiTableFlags_ContextMenuInBody to access context-menu without headers).
pattern Reorderable :: ImGuiTableFlags
pattern Reorderable = #{const ImGuiTableFlags_Reorderable}
-- | Enable hiding/disabling columns in context menu.
pattern Hideable :: ImGuiTableFlags
pattern Hideable = #{const ImGuiTableFlags_Hideable}
-- | Enable sorting. Call TableGetSortSpecs() to obtain sort specs. Also see ImGuiTableFlags_SortMulti and ImGuiTableFlags_SortTristate.
pattern Sortable :: ImGuiTableFlags
pattern Sortable = #{const ImGuiTableFlags_Sortable}
-- | Disable persisting columns order, width, visibility and sort settings in the .ini file.
pattern NoSavedSettings :: ImGuiTableFlags
pattern NoSavedSettings = #{const ImGuiTableFlags_NoSavedSettings}
-- | Right-click on columns body/contents will also display table context menu. By default it is available in TableHeadersRow().
pattern ContextMenuInBody :: ImGuiTableFlags
pattern ContextMenuInBody = #{const ImGuiTableFlags_ContextMenuInBody}
-- | Decorations
-- Set each RowBg color with ImGuiCol_TableRowBg or ImGuiCol_TableRowBgAlt (equivalent of calling TableSetBgColor with ImGuiTableBgFlags_RowBg0 on each row manually)
pattern RowBg :: ImGuiTableFlags
pattern RowBg = #{const ImGuiTableFlags_RowBg}
-- | Draw horizontal borders between rows.
pattern BordersInnerH :: ImGuiTableFlags
pattern BordersInnerH = #{const ImGuiTableFlags_BordersInnerH}
-- | Draw horizontal borders at the top and bottom.
pattern BordersOuterH :: ImGuiTableFlags
pattern BordersOuterH = #{const ImGuiTableFlags_BordersOuterH}
-- | Draw vertical borders between columns.
pattern BordersInnerV :: ImGuiTableFlags
pattern BordersInnerV = #{const ImGuiTableFlags_BordersInnerV}
-- | Draw vertical borders on the left and right sides.
pattern BordersOuterV :: ImGuiTableFlags
pattern BordersOuterV = #{const ImGuiTableFlags_BordersOuterV}
-- | Draw horizontal borders.
pattern BordersH :: ImGuiTableFlags
pattern BordersH = #{const ImGuiTableFlags_BordersH}
-- | Draw vertical borders.
pattern BordersV :: ImGuiTableFlags
pattern BordersV = #{const ImGuiTableFlags_BordersV}
-- | Draw inner borders.
pattern BordersInner :: ImGuiTableFlags
pattern BordersInner = #{const ImGuiTableFlags_BordersInner}
-- | Draw outer borders.
pattern BordersOuter :: ImGuiTableFlags
pattern BordersOuter = #{const ImGuiTableFlags_BordersOuter}
-- | Draw all borders.
pattern Borders :: ImGuiTableFlags
pattern Borders = #{const ImGuiTableFlags_Borders}
-- | [ALPHA] Disable vertical borders in columns Body (borders will always appear in Headers). -> May move to style
pattern NoBordersInBody :: ImGuiTableFlags
pattern NoBordersInBody = #{const ImGuiTableFlags_NoBordersInBody}
-- | [ALPHA] Disable vertical borders in columns Body until hovered for resize (borders will always appear in Headers). -> May move to style
pattern NoBordersInBodyUntilResize :: ImGuiTableFlags
pattern NoBordersInBodyUntilResize = #{const ImGuiTableFlags_NoBordersInBodyUntilResize}
-- | Sizing Policy (read above for defaults)
-- Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching contents width.
pattern SizingFixedFit :: ImGuiTableFlags
pattern SizingFixedFit = #{const ImGuiTableFlags_SizingFixedFit}
-- | Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching the maximum contents width of all columns. Implicitly enable ImGuiTableFlags_NoKeepColumnsVisible.
pattern SizingFixedSame :: ImGuiTableFlags
pattern SizingFixedSame = #{const ImGuiTableFlags_SizingFixedSame}
-- | Columns default to _WidthStretch with default weights proportional to each columns contents widths.
pattern SizingStretchProp :: ImGuiTableFlags
pattern SizingStretchProp = #{const ImGuiTableFlags_SizingStretchProp}
-- | Columns default to _WidthStretch with default weights all equal, unless overridden by TableSetupColumn().
pattern SizingStretchSame :: ImGuiTableFlags
pattern SizingStretchSame = #{const ImGuiTableFlags_SizingStretchSame}
-- | Sizing Extra Options
-- Make outer width auto-fit to columns, overriding outer_size.x value. Only available when ScrollX/ScrollY are disabled and Stretch columns are not used.
pattern NoHostExtendX :: ImGuiTableFlags
pattern NoHostExtendX = #{const ImGuiTableFlags_NoHostExtendX}
-- | Make outer height stop exactly at outer_size.y (prevent auto-extending table past the limit). Only available when ScrollX/ScrollY are disabled. Data below the limit will be clipped and not visible.
pattern NoHostExtendY :: ImGuiTableFlags
pattern NoHostExtendY = #{const ImGuiTableFlags_NoHostExtendY}
-- | Disable keeping column always minimally visible when ScrollX is off and table gets too small. Not recommended if columns are resizable.
pattern NoKeepColumnsVisible :: ImGuiTableFlags
pattern NoKeepColumnsVisible = #{const ImGuiTableFlags_NoKeepColumnsVisible}
-- | Disable distributing remainder width to stretched columns (width allocation on a 100-wide table with 3 columns: Without this flag: 33,33,34. With this flag: 33,33,33). With larger number of columns, resizing will appear to be less smooth.
pattern PreciseWidths :: ImGuiTableFlags
pattern PreciseWidths = #{const ImGuiTableFlags_PreciseWidths}
-- | Clipping
-- Disable clipping rectangle for every individual columns (reduce draw command count, items will be able to overflow into other columns). Generally incompatible with TableSetupScrollFreeze().
pattern NoClip :: ImGuiTableFlags
pattern NoClip = #{const ImGuiTableFlags_NoClip}
-- | Padding
-- Default if BordersOuterV is on. Enable outermost padding. Generally desirable if you have headers.
pattern PadOuterX :: ImGuiTableFlags
pattern PadOuterX = #{const ImGuiTableFlags_PadOuterX}
-- | Default if BordersOuterV is off. Disable outermost padding.
pattern NoPadOuterX :: ImGuiTableFlags
pattern NoPadOuterX = #{const ImGuiTableFlags_NoPadOuterX}
-- | Disable inner padding between columns (double inner padding if BordersOuterV is on, single inner padding if BordersOuterV is off).
pattern NoPadInnerX :: ImGuiTableFlags
pattern NoPadInnerX = #{const ImGuiTableFlags_NoPadInnerX}
-- | Scrolling
-- Enable horizontal scrolling. Require 'outer_size' parameter of BeginTable() to specify the container size. Changes default sizing policy. Because this creates a child window, ScrollY is currently generally recommended when using ScrollX.
pattern ScrollX :: ImGuiTableFlags
pattern ScrollX = #{const ImGuiTableFlags_ScrollX}
-- | Enable vertical scrolling. Require 'outer_size' parameter of BeginTable() to specify the container size.
pattern ScrollY :: ImGuiTableFlags
pattern ScrollY = #{const ImGuiTableFlags_ScrollY}
-- | Sorting
-- Hold shift when clicking headers to sort on multiple column. TableGetSortSpecs() may return specs where (SpecsCount > 1).
pattern SortMulti :: ImGuiTableFlags
pattern SortMulti = #{const ImGuiTableFlags_SortMulti}
-- | Allow no sorting, disable default sorting. TableGetSortSpecs() may return specs where (SpecsCount == 0).
pattern SortTristate :: ImGuiTableFlags
pattern SortTristate = #{const ImGuiTableFlags_SortTristate}
-- | Miscellaneous
-- Highlight column headers when hovered (may evolve into a fuller highlight)
pattern HighlightHoveredColumn :: ImGuiTableFlags
pattern HighlightHoveredColumn = #{const ImGuiTableFlags_HighlightHoveredColumn}
-- | [Internal] Combinations and masks
pattern SizingMask_ :: ImGuiTableFlags
pattern SizingMask_ = #{const ImGuiTableFlags_SizingMask_}