192 Commits (3776ba565f91be00dfe12c9fd99223c2310b37c5)

Author SHA1 Message Date
ocornut 1ad5502f18 Tables: Closer to zero-clear constructor. Lazily clearing name offsets to avoid an iteration in BeginTable(). Removed unused TableSetColumnIsEnabled(), signature went faulty anyway. 4 years ago
ocornut 76964a27ce Tables: moved TableNextRow(), TableBeginRow(), TableEndRow(), TableNextColumn(), TableBeginCell(), TableEndCell() to their own section. 4 years ago
ocornut e6b875c09b Tables: Ditch old columns flags/setting if not called again. Displaying right-most border when using _SameWidths. Moving Width-related functions to their own section.
Effectively removed the TableFixColumnFlags() in first loop of TableUpdateLayout() to replace it with similar one but only when column not declared. I think this should be the right thing.
4 years ago
ocornut 17536f9add Tables: more consistent use of CellPadding.x*2 and clip-rect on right-most side of non-bordered column + fix cellbg for standalone TableHeader call.
Using CellPadding.x on both sides when BorderV is off, generally most consistent and with default value (4,2) promotes at-glance visible spacing between non-bordered columns. Effectively double horizontal padding on non-bordered columns.
Made ClipRect.Max.x matches WorkMaxX which is where we'd like to go for windows themselves.
TableHeader() submit single cell bg color if not already submitted as a full header row.
Misc comments/docs updates.
4 years ago
ocornut 0b14dd9e55 Tables: fixed propagation of line height from outside the table. Added outer-width demo. 4 years ago
ocornut 6e38026627 Tables: changelog. removed TableGetHoveredColumn() from public API in favor of using TableGetColumnFlags(). renamed ImGuiTableSortSpecsColumn to ImGuiTableColumnSortSpecs. 4 years ago
ocornut 7a61f3407b Tables: support internal TableResetSettings(), clarify lifetime, fixed missing auto-fit on column unhidden after first run, fixed resize assert when changing column sizing policy to stretch mid-frame (before of -1.0f weight) 4 years ago
ocornut b194df413c Tables: exposed status flags via TableGetColumnFlags(), removed TableGetColumnIsSorted()
Scoped width auto calc.
4 years ago
ocornut 984c4cb5f8 Tables: distinguishing per-column IsVisible from IsRequestOutput which is returned to user. Clarified clipping rules/requirements. Comments. 4 years ago
ocornut f70bf69e3b Tables: comments and tweaks on TableUpdateLayout(). changed "apply final width" loop to use natural column order. 4 years ago
ocornut 155b8bb816 Tables: Shared menu item id for "Size all" variations. Avoid allocation on single sort specs. Fix TableGetColumnIsEnabled(). Massage TableHeaderRows(). 4 years ago
ocornut e126a64782 Tables: using a typedef in internal code to specify column/draw channel index storage. 4 years ago
ocornut 6aa8388e9f Tables: index tweaks, fixed some inconsistent spacings. 4 years ago
ocornut 5877b9d722 Tables: moved TablePushBackgroundChannel(), TablePopBackgroundChannel(), TableDrawBorders() to their own section. 4 years ago
ocornut 5180025de5 Tables: moved + renamed TableSetupDrawChannels(), TableMergeDrawChannels() to their own section. 4 years ago
ocornut b7c83e4bac Tables: moved TableGetSortSpecs(), TableGetColumnIsSorted(), TableFixColumnSortDirection(), TableSetColumnSortDirection() to their own section. 4 years ago
ocornut d6b1f0d13d Tables: moved TableHeadersRow(), TableHeader() to their own section. 4 years ago
ocornut 592fc69054 Tables: moved TableDrawContextMenu(), TableOpenContextMenu() to their own section. 4 years ago
ocornut 7aed4b152b Tables: improve index, file structure tweaks. 4 years ago
ocornut 082f1d10d0 Tables: renamed TableBeginUpdateColumns to TableBeginApplyRequests, moved code to TableUpdateLayout, in order to ensure that enable state is not inconsistent due to TableSetupColumn column hiding requests.
All the fields moved from TableBeginUpdateColumns to TableUpdateLayout are not used before.
4 years ago
ocornut 79c9eaa78e Tables: Internals: renamed Visible to Enabled to avoid confusion with visibility checks. 4 years ago
ocornut 5ef7b831c2 Tables: removed ImGuiTableSortSpecs::ColumnsMask because it needlessly exposes our 64-columns limitation which we'd eventually would like to lift
+ shuffle declarations in internals
4 years ago
ocornut e09454aec4 Tables: removed TableGetColumnIsVisible from public api, re-specced as TableGetColumnIsHidden() returning same flag as setter, clipper increase CurrentRow. 4 years ago
ocornut a70c6aae9f Tables: demo synced tables + fix resizing indented synced tables. 4 years ago
ocornut 0c9ab0acdd Tables: setup and maintain ItemWidth per column. 4 years ago
ocornut 8f126d5d95 Tables: rename ImGuiTableFlags_SizingPolicyStretchX to ImGuiTableFlags_ColumnsWidthStretch, ImGuiTableFlags_SizingPolicyFixedX to ImGuiTableFlags_ColumnsWidthFixed. 4 years ago
ocornut 41f89e0f59 Tables: added ImGuiTableFlags_SameWidths, used in demo. Reordered columns flags and exposed them all in Columns Flags section. 4 years ago
ocornut 3a2f0bfc04 Tables: demo inner_size + scrollx + stretch, added TableGetRowIndex(), renamed _WidthAlwaysAutoResize to _WidthAutoResize. 4 years ago
ocornut 3b3503e60f Tables: decent support for auto-resize of stretch columns (trickier than it sounds)
Four cases:
1. visible columns are all stretch, resize all : "size all to default" reset to default weight
2. visible columns are all stretch, resize one: "size one to fit" set weight, reapply weight (todo: improve weight redistribution in case of >1 siblings)
3. visible columns are mixed, resize all: "size all to fit/default" reset stretchs to default weight, set fixed to auto width
4. visible columns are mixed, resize one: "size one to fit", redistribute weight the same way as a manual resize
+ TableSetupColumn() more consistently clear AutoFitQueue.
+ zero-clear RowCellData buffer.
4 years ago
ocornut c5dcf2fde1 Tables: rework keep-visible/max-width code to be less incorrect, but right-most column may effectively has few pixels less of visible cliprect width.
See table_width_distrib and table_width_keep_visible tests.
+ fix minor left-side clipping on post-frozen column
+ made TableHeader() use reliable column->MaxX
4 years ago
ocornut 197e9c085b Tables: separate bg0 and bg1 draw channels, selectable above bg color + will facilitate drawing of borders in EndTable().
+ unused code to strip out dummy draw channel calls.
4 years ago
ocornut 52f24df668 Tables: comments, tweaks, added internal TableSetColumnVisible(), merged the two TableSetColumnWidth(). 4 years ago
ocornut bf197c74f6 Tables: storing WorkMaxX, made offset_x == MinX to be clearer, clip rect merge uses ClipRect.max.x directly, removed unused ShrinkWidth code, metrics. 4 years ago
ocornut 5465d30d67 Tables: added ImGuiTableFlags_PreciseStretchWidths. 4 years ago
ocornut 10db896813 Tables: store RawData in a simple void* pointer, rename ContentMinX > WorkMinX, misc tidying up.
Removed unnecessary casts when using CheckboxFlags().
4 years ago
ocornut 82cf41d804 Tables: tooltip on clipped TableHeader() (amended) 4 years ago
ocornut 507db499e4 Tables: work on background draw channel handling (amend "create a separate background draw channel") + Selectable disable spacing when spanning. 4 years ago
ocornut fe6131168a Tables: Additionally commentary about clipper in the demo + minor padding tweak. 4 years ago
ocornut 94d99f9d0b Tables: Fixed crash when increaasing columns count with bound settings. 4 years ago
ocornut 24a7c45b02 Tables: Fix for 64 columns (maximum of 131 temporary draw channels). 4 years ago
ocornut e5a5256971 Tables: Garbage collection to relieve draw splitter buffers + for test engine: compact settings, remove table. 4 years ago
ocornut f80097ca96 Tables: Fix applying WorkRect in non-scrolling tables. Fix inverted BackgroundClipRect being passed to ImDrawCmd. 4 years ago
ocornut 557253e776 Tables: create a separate background draw channel for rows below the frozen line. 4 years ago
ocornut fae362fd0b Tables: fixed auto-fitting columns not marking settings as dirty + fixed CellBg fill not narrow clipping on ScrollX + freeze. 4 years ago
ocornut 9918b2f147 Tables: Shuffled ordering of draw channels merge group so vertically unfrozen ones come, allowing us to split background channels in two. 4 years ago
ocornut d3222086f0 Tables: Moved TableSetupScrollFreeze(), TableUpdateDrawChannels() lower in more adequate spots.
+ rename IsFreezeRowsPassed to IsUnfrozen.
4 years ago
ocornut d9ca3939e1 Tables: Tidy up comments. Replaced some Columns by Tables in demo. Removed ImGuiTableFlags_Scroll (combining ScrollX/ScrollY) because each axis inccur different requirements/constraints. 4 years ago
ocornut 51abdd53e3 Tables: renamed somehow-duplicate ContentWidth members (implicitly == Max - Min), renamed StartX to ContentMinX for consistency. 4 years ago
ocornut 1731ae5a09 Tables: Reworked padding/spacing/width.
All widths are stored without padding.
Decorelate padding from presence of border.
Added ImGuiTableFlags_Pad/NoPad flags.
Added demo.
Merge StartXHeaders and StartXRows into StartX.
Distinguish CellSpacingX1 and CellSpacingX2 for clarity and to avoid loss of width on non-even spacing values.
4 years ago
ocornut 75c5f534e8 Tables: Avoid allocating into ColumnsName for empty strings, changed TableGetColumnName() to return "" on missing name, generally more friendly. 4 years ago
ocornut f4800db178 Tables: Extracted parts of BeginTable() into TableFixFlags() and TableBeginInitMemory(). 4 years ago
ocornut ac5b1648e6 Tables: Various internal renaming + merge StartXHeaders/StartXRows into StartX. 4 years ago
ocornut 77e561aaf3 Tables: Made demo options consistently compact, replaced constants with font-based sizes, added comments on memory allocations. 4 years ago
ocornut 02b27b75a4 Tables: Added ImGuiTableFlags_NoBordersInBody, ImGuiTableFlags_NoBordersInBodyUntilResize, removed ImGuiTableFlags_BordersFullHeightV. 4 years ago
ocornut 172704c079 Tables: Add demo code. Remove dead code + seemingly duplicate border in TableDrawBorders(). 4 years ago
ocornut 2ee20fdb7c Tables: Frozen rows/columns in nav menu layer, fixed conflict between column id and holding child id. 4 years ago
ocornut e66b28693a Tables: Added ImGuiTableFlags_ContextMenuInBody flag.
Worked to get TableOpenContextMenu() in public API but kept it internal.
4 years ago
ocornut 6182973bde Tables: (Breaking) Rename TableNextCell() to TableNextColumn(), made TableNextRow() NOT enter into first column. 4 years ago
ocornut b1ebf964f5 Tables: Moved TableSetColumnIndex() next to TableNextCell() since they are so similar + made NextCell() crash proof. 4 years ago
ocornut 248960d64c Tables: Fix ImGuiTableColumnFlags_WidthAlwaysAutoResize columns when clipped (which would be default behavior without _Resizable and when clipping/scrolling) 4 years ago
omar 25b5cc2f95 Tables: Fixes to support any number of frozen rows (over modifications to clipper code in master) + make clipper run eval after clipect update 4 years ago
ocornut cc12ea084b Tables: Added TableSetColumnSortDirection() + added in default context menu code (disabled, feels unnecessary, but work is done to ensure programmatic access) 4 years ago
ocornut 9b37087fbe Tables: (Breaking) Rename TableAutoHeaders() to TableHeadersRow() + added TableGetColumnCount(). 4 years ago
ocornut 3021608392 Tables: (Breaking) Add TableSetupScrollFreeze() api, remove ImGuiTableFlags_ScrollFreezeXXX flags, tweak comments, move columns block.
Avoid awkwardly named ScrollFreeze flags, raise limit over 3, and will allow for future api maybe freezing bottom/right side.
4 years ago
ocornut 36b2f3b4f1 Tables: renamed ImGuiTableFlags_NoClipX to ImGuiTableFlags_NoClip, clarified purpose, moved lower in the list as it doesn't need to be so prominent. 4 years ago
omar 8ec05fc034 Tables: Fixed holding on table pointers accross resize/invalidation of the pool buffer. 4 years ago
omar 931829f701 Tables: (Breaking change) Sorting: Made it users responsability to clear SpecsDirty back to false, so TableGetSortSpecs() doesn't have side-effect any more. + comments 4 years ago
ocornut f6800e9d3b Tables: Extend outer-most clip limits to match those of host when merging draw calls.
Generally clarify/simplify ClipRect extending/merging code in TableReorderDrawChannelsForMerge().
Amend/fix Sep 23
4 years ago
ocornut 3d573103b6 Tables: Fixed lower clipping when using ImGuiTableFlags_NoHostExtendY. 4 years ago
omar 8e97cdf8e8 Tables: Fix for calling TableSetBgColor(ImGuiTableBgTarget_CellBg) multiple times on the same cell. 4 years ago
ocornut 45a80716b1 Tables: Fixed three bugs + metrics tweaks.
- Fixed bug when ending a table within another (outer table column offset was overwritten instead of restored).
- Fixed assert when settings data has mismatching column count.
- Fixed restoring g.CurrentTable when calling EndChild() from inside table inner window.
- Made inactive tables grey in metrics.
- Fix warning.
(amended twice)
4 years ago
omar eb18636e02 Tables: Fix settings not being saved in child window (issue 3367) + fix for change in master. 4 years ago
omar 9d8b40414a Tables: Added TableSetBgColor() api with color for RowBg and CellBg colors. 4 years ago
omar b6405a291d Tables: Fixed TableHeader() not declaring its height properly. Do NOT declare width. 4 years ago
omar 0847373b98 Tables: Comments on Sizing Policies + Rename border V/H flags HInner -> InnerH + offset every flags by two. 4 years ago
omar 30e21eb280 Tables: non-resizable columns also submit their requested width for auto-fit, 4 years ago
omar a0e6aa1766 Tables: Fix calculation of auto-fit (remove padding). Demo setting a width in columns setup + ImGuiTableFlags_NoKeepColumnsVisible. 4 years ago
omar c96c84b6dc Tables: Store submitted column width and avoid saving default default widths. 4 years ago
omar 57916b891b Tables: Simplified TableHeader() and not relying on Selectable(), fixed various padding issues. Added work-around for CellRect.Min.x offset by CellSpacing.x. 4 years ago
omar fcdfde2bc6 Tables: Extracted border size into a named variable. 4 years ago
omar 03c8bfaf23 Tables: Removed extra +1.0f pixels initially allocated to make right-most column visible, fix visible padding asymmetry. Tweaked debug code in demo.
Seems visible enough without. Whole thing is/was fishy, may return to it but right cleaning up seems viable.
4 years ago
omar 745d8cdb49 Tables: Made TableHeader() responsible for opening per-column context menu to move responsibility away from TableAutoHeaders(). 4 years ago
ocornut 27e779b3ef Tables: Removed dubious window->SkipItem assignment in TableAutoHeaders(). 4 years ago
ocornut 7ca70dcb81 Tables: Using same seed ID regardless of when using a child window or not. 4 years ago
ocornut 798aed729a Tables: Added TableGetHoveredColumn(), extracted some context menu code out, simplifying TableAutoHeaders() toward aim of it being a user-land function. 4 years ago
ocornut 4c4882ffe4 Tables: Fixed channel merge when resizing columns with headers. Disable unnecessary and broken merge when using _NoClipX. 4 years ago
omar 8530b6af3d Tables: Not flagging whole column as SkipItems based on clipping visibility (breaks layout) 4 years ago
omar 363eae94e6 Tables: Further fix #3293, #3163 + fixed for row unfreezing border not always showing due to unset clip rect. 4 years ago
omar b741639468 Tables: Fix rendering of row bg and line separators (#3293, broken by fixes #3163, code was accidently relying on SetCurrentChannel not updating rectangle)
+ Used shortcut in PushTableBackground/PopTableBackground
4 years ago
ocornut 58411f27cb Tables: Avoid TableGetSortSpecs() having a side-effect on sort specs sanitization. 4 years ago
ocornut dc915c86ca Tables: Fixed a manual resize path not marking settings as dirty, TableSortSpecsSanitize() doesn't need to test table->IsInitializing 4 years ago
Rokas Kupstys 8690d1f9ce Tables: Fix sort specs sometimes incorrectly reporting sort spec count when table loses _MultiSortable flag during runtime. 4 years ago
ocornut af992d1321 Tables: Tweak settings functions to more prominently clarify the two levels of function. 4 years ago
omar 7513842284 Tables: Fix assert/crash when a visible column is clipped in a multi clip group situation. 4 years ago
omar e41fc7b5b0 Tables: Fix TableDrawMergeChannels() mistakenly merging unfrozen columns cliprect with host cliprect. Comments, debug. 4 years ago
omar fec9d7d226 Tables: Rescale fixed widths when font size change to support varying dpi scale at runtime and on .ini reload. 4 years ago
omar 6bc0bbccf3 Tables: Restore width/weight saving/loading code. Non-weighted width currently not font/DPI change friendly. 4 years ago
omar af52a0cea2 Tables: Resizing weighted column preserve sum of weights. Fix ResizedColumn init leading to undesirable TableSetColumnWidth() on first run. Rework TableSettingsHandler_ReadLine() structure to allow other types of line. 4 years ago
omar bc170e7325 Tables: Renamed ResizeWeight->WidthStretchWeight, WidthRequested->WidthFixedRequest, clarififications, comments. 4 years ago
omar 23c60b2814 Tables: Renamed internal fields: Active->Visible, Visible->VisibleUnclipped to be less misleading. 4 years ago