Commit Graph

  • d7e605d430 Merge branch 'features/range_select' ocornut 2024-07-18 18:21:31 +0200
  • 02c31a8dd1 MultiSelect: added Changelog for the feature. Removed IMGUI_HAS_MULTI_SELECT. ocornut 2024-07-01 19:15:18 +0200
  • 2688562fd2 MultiSelect: Better document how TreeNode() is not trivially usable yet. ocornut 2024-07-18 18:05:45 +0200
  • 7814518049 MultiSelect: ImGuiSelectionBasicStorage: optimized for smaller insertion amounts in larger sets + fix caling batch select with same value. ocornut 2024-07-01 19:54:35 +0200
  • 1b63522446 MultiSelect: Box-Select: handle Esc to disable box-select. ocornut 2024-06-28 19:35:24 +0200
  • 2697cfe354 MultiSelect: Box-Select: uses SetActiveIdUsingAllKeyboardKeys() to avoid nav interference, much like most drag operations. ocornut 2024-06-28 19:11:05 +0200
  • 7d4de84ee3 MultiSelect: added courtesy ImGuiMultiSelectFlags_NavWrapX flag so we can demo this until a nav api is designed. ocornut 2024-06-28 19:01:18 +0200
  • d411c9054a MultiSelect: minor tidying up. ocornut 2024-06-28 18:36:53 +0200
  • 3f34c83bc6 MultiSelect: added ImGuiMultiSelectFlags_NoAutoClearOnReselect + tweak flags comments. (#7424) ocornut 2024-06-28 11:55:22 +0200
  • 529c73ba21 MultiSelect: Shift+Tab doesn't enable Shift select on landing item. ocornut 2024-06-27 19:13:19 +0200
  • a8a1f29512 MultiSelect: (breaking) renamed ImGuiMultiSelectFlags_BoxSelect -> ImGuiMultiSelectFlags_BoxSelect2d. Which include not assuming one flag imply the other. ocornut 2024-06-26 20:26:06 +0200
  • c52346850d MultiSelect: ImGuiSelectionBasicStorage: added PreserveOrder, maintain implicit order data in storage. ocornut 2024-06-26 18:41:21 +0200
  • df664329cb MultiSelect: provide RangeDirection to allow selection handler to handler backward shift+click. ocornut 2024-06-26 18:29:30 +0200
  • 3ac367ff41 MultiSelect: ImGuiSelectionBasicStorage: (breaking) rework GetNextSelectedItem() api to avoid ambiguity/failure when user uses a zero id. ocornut 2024-06-26 17:00:52 +0200
  • f472f17054 Demo: Assets Browser: added a way to disable sorting and hide sorting options. ocornut 2024-06-11 20:56:41 +0200
  • c07864f64a MultiSelect: ImGuiSelectionBasicStorage: move function bodies to cpp file. ocornut 2024-06-11 19:45:21 +0200
  • 2af3b2ac81 MultiSelect: ImGuiSelectionBasicStorage: simplify by removing compacting code (compacting may be opt-in?). ocornut 2024-06-11 18:50:30 +0200
  • e61612a687 MultiSelect: ImGuiSelectionBasicStorage: rework to accept massive selections requests without flinching. ocornut 2024-06-11 18:26:22 +0200
  • e1fd25051e MultiSelect: ImGuiSelectionBasicStorage: added GetNextSelectedItem() to abstract selection storage from user. Amend Assets Browser demo to handle drag and drop correctly. ocornut 2024-06-11 17:14:00 +0200
  • c3d7aa252b MultiSelect: comments, header tweaks., simplication (some of it on wiki). ocornut 2024-06-06 14:40:57 +0200
  • db4898cb91 MultiSelect: added ImGuiSelectionExternalStorage helper. Simplify bool demo. ocornut 2024-06-05 19:00:13 +0200
  • f9caf4447a MultiSelect: fixed ImGuiSelectionBasicStorage::Swap() helper. ocornut 2024-06-05 18:32:59 +0200
  • c94cf6f01f MultiSelect: added ImGuiSelectionBasicStorage::GetStorageIdFromIndex() indirection to be easier on the reader. ocornut 2024-06-05 17:16:06 +0200
  • ab995d3d4f MultiSelect: (breaking) Added 'items_count' parameter to BeginMultiSelect(). Will enable extra features, and remove equivalent param from ImGuiSelectionBasicStorage::ApplyRequests(. ocornut 2024-06-05 17:04:55 +0200
  • 443b034895 MultiSelect: mark parent child window as navigable into, with highlight. Assume user will always submit interactive items. ocornut 2024-06-04 15:10:07 +0200
  • f6b5caf82c MultiSelect: (breaking) renamed ImGuiMultiSelectFlags_BoxSelect -> ImGuiMultiSelectFlags_BoxSelect1d, ImGuiMultiSelectFlags_BoxSelect2d -> ImGuiMultiSelectFlags_BoxSelect. ocornut 2024-05-31 21:57:10 +0200
  • 7bbbbea200 MultiSelect: Box-Select: fixes for checkboxes support. Comments. ocornut 2024-05-31 21:37:45 +0200
  • 2f56df4839 MultiSelect: (breaking) renamed ImGuiSelectionBasicStorage::AdapterData to UserData. ocornut 2024-05-30 18:44:57 +0200
  • 1113f13f83 MultiSelect: Box-Select: fixed "when dragging from void" implementation messing with calling BeginMultiSelect() without a selection size. ocornut 2024-05-31 20:18:57 +0200
  • 81548cb6bf MultiSelect: added GetMultiSelectState() + store LastSelectionSize as provided by user, convenient for quick debugging and testing. ocornut 2024-05-29 15:22:32 +0200
  • dc0a1682e3 MultiSelect: Box-Select: when dragging from void, first hit item sets NavId by simulating a press, so navigation can resume from that spot. ocornut 2024-05-29 15:01:52 +0200
  • 65ebc0513b MultiSelect: Box-Select: minor refactor, tidying up. ocornut 2024-05-29 14:33:41 +0200
  • 9435a3185a RangeSelect/MultiSelect: (Breaking) Added current_selection_size to BeginMultiSelect(). ocornut 2023-12-19 14:06:58 +0100
  • 955210ae5b MultiSelect: Demo: use Shortcut(). ocornut 2024-05-23 18:56:31 +0200
  • 0be238ec58 MultiSelect: Box-Select: fix preventing focus. amend determination of scope_hovered for decorated/non-child windows + avoid stealing NavId. (#7424) ocornut 2024-04-18 15:35:29 +0200
  • e7a734f78d MultiSelect: added ImGuiMultiSelectFlags_NoAutoSelect, ImGuiMultiSelectFlags_NoAutoClear features + added Checkbox Demo ocornut 2024-03-07 16:26:22 +0100
  • a639346fba MultiSelect: Demo: make various child windows resizable, with synched heights for the dual list box demo. ocornut 2024-03-07 15:52:30 +0100
  • 2111e3597b MultiSelect: Comments + tweaked location for widgets to test ImGuiItemFlags_IsMultiSelect to avoid misleading into thinking doing it before ItemAdd() is necessary. ocornut 2024-03-06 15:33:50 +0100
  • dbc67bbf23 MultiSelect: Simplified ImGuiSelectionBasicStorage by using a single SetItemSelected() entry point. ocornut 2024-03-06 15:04:03 +0100
  • f36a03c317 MultiSelect: (Breaking) merge ImGuiSelectionRequestType_Clear and ImGuiSelectionRequestType_SelectAll into ImGuiSelectionRequestType_SetAll., rename ImGuiSelectionRequest::RangeSelected to Selected. ocornut 2024-03-06 14:22:38 +0100
  • b13a78e6b2 MultiSelect: Fixed ImGuiMultiSelectFlags_SelectOnClickRelease over tree node arrow. ocornut 2024-01-12 12:05:03 +0100
  • 9337151a01 MultiSelect: Box-Select: Fixed initial drag from not claiming hovered id, preventing window behind to move for a frame. ocornut 2024-01-04 20:05:05 +0100
  • 3141d87ef8 MultiSelect: Box-Select: Fixed CTRL+drag from void clearing items. ocornut 2024-01-04 19:13:42 +0100
  • 8312c75fef MultiSelect: Added ImGuiMultiSelectFlags_NoRangeSelect. Fixed ImGuiMultiSelectFlags_ScopeRect not querying proper window hover. ocornut 2024-01-04 18:41:20 +0100
  • d439f590ab MultiSelect: Comments + Assets Browser : Tweak colors. ocornut 2023-12-21 15:12:17 +0100
  • 6c4bf8e56e MultiSelect: Fixed ImGuiSelectionBasicStorage::ApplyRequests() incorrectly maintaining selection size on SelectAll. ocornut 2023-12-21 14:29:01 +0100
  • f3d77d8e71 MultiSelect: Box-Select: Further refactor to extra mode code away from multi-select function into box-select funcitons. ocornut 2023-12-20 22:34:50 +0100
  • 907268a430 MultiSelect: Box-Select: Fixed scrolling on high framerates. ocornut 2023-12-20 22:31:07 +0100
  • 5d9de14493 MultiSelect: Box-Select: Refactor: Renames. ocornut 2023-12-20 22:19:55 +0100
  • 75bac1aac6 MultiSelect: Box-Select: Refactor into its own structure, designed for single-instance but closer to being reusable outside Multi-Select. ocornut 2023-12-20 22:07:28 +0100
  • 15391762dd MultiSelect: Box-Select: Added ImGuiMultiSelectFlags_BoxSelect2d support. Enabled in Asset Browser. Selectable() supports it. ocornut 2023-12-20 21:14:09 +0100
  • 1ac469b50f MultiSelect: Box-Select: Fixed holes when using with clipper (in 1D list.) ocornut 2023-12-20 11:34:25 +0100
  • 7546a2d345 MultiSelect: Demo: Assets Browser: track scrolling target so we can roughly land on hovered item. ocornut 2023-12-12 17:26:02 +0100
  • 750e23998f MultiSelect: Demo: Assets Browser: added deletion support. Store ID in selection. Moved QueueDeletion to local var to emphasis that this is a user extension. ocornut 2023-12-06 16:55:55 +0100
  • 51fe0bfcf6 MultiSelect: reworked comments in imgui.h now that we have our own section. ocornut 2023-12-05 18:36:00 +0100
  • 0f633c1d99 MultiSelect: move demo's ExampleSelection to main api as a convenient ImGuiSelectionBasicStorage for basic users. ocornut 2023-12-01 17:49:47 +0100
  • e0282347db MultiSelect: remove ImGuiSelectionRequest/ImGuiMultiSelectIO details from public api to reduce confusion + comments. ocornut 2023-12-01 15:03:43 +0100
  • 0af6fbb51d MultiSelect: added support for nested/stacked BeginMultiSelect(). ocornut 2023-10-26 17:20:33 +0200
  • b747d6fe59 MultiSelect: Demo: rework and move selection adapter inside ExampleSelection. ocornut 2023-10-06 17:10:52 +0200
  • aa4d64be92 MultiSelect: Box-Select: added scroll support. ocornut 2023-09-26 13:44:10 +0200
  • f904a6646c MultiSelect: Box-Select: added support for ImGuiMultiSelectFlags_BoxSelect. ocornut 2023-08-29 16:27:31 +0200
  • 90305c57e4 MultiSelect: (breaking) renamed ImGuiMultiSelectFlags_ClearOnClickWindowVoid -> ImGuiMultiSelectFlags_ClearOnClickVoid. Added ImGuiMultiSelectFlags_ScopeWindow, ImGuiMultiSelectFlags_ScopeRect. ocornut 2023-09-25 19:53:02 +0200
  • bf01795483 Demo: Assets Browser: add hit spacing, requierd for box-select patterns. ocornut 2023-09-25 17:21:19 +0200
  • 3d41994a63 MultiSelect: simplify clearing ImGuiMultiSelectTempData. ocornut 2023-09-27 14:24:23 +0200
  • 33fc61a091 MultiSelect: use a single ImGuiMultiSelectIO buffer. ocornut 2023-09-22 15:34:25 +0200
  • 5941edd9f7 MultiSelect: added support for recovery in ErrorCheckEndWindowRecover(). ocornut 2023-09-22 15:28:04 +0200
  • c527cba470 MultiSelect: we don't need to ever write to EndIO.RangeSrcItem as this is not meant to be used. ocornut 2023-09-22 15:05:38 +0200
  • 6feff6ff05 MultiSelect: (Breaking) io contains a ImVector<ImGuiSelectionRequest> list. ocornut 2023-09-22 14:23:40 +0200
  • a6adfb2b49 MultiSelect: added missing call on Shutdown(). Better reuse selection buffer. ocornut 2023-09-22 14:30:56 +0200
  • c3998b70cc MultiSelect: clarified purpose and use of IsItemToggledSelection(). Added assert. Moved to multi-selection section of imgui.h. ocornut 2023-09-21 20:40:21 +0200
  • 2765fdb43e MultiSelect: removed seemingly unnecessary block in BeginMultiSelect(). ocornut 2023-09-20 19:10:08 +0200
  • 88df590145 Demo: Assets Browser: store items, sorting, type overlay. ocornut 2023-09-01 14:54:28 +0200
  • d18e57e673 Demo: Assets Browser: Added assets browser demo. ocornut 2023-08-31 20:06:22 +0200
  • 82de6c470b MultiSelect: Added ImGuiMultiSelectFlags_SelectOnClickRelease to allow dragging an unselected item without altering selection + update drag and drop demo. ocornut 2023-08-31 15:50:01 +0200
  • 5628dda5a5 MultiSelect: move shared logic to MultiSelectItemHeader(). ocornut 2023-08-31 15:03:51 +0200
  • 9da4efed2a MultiSelect: moved RequestClear output so it'll match request list version better. Use Storage->RangeSrcItem in EndMultiSelect(). ocornut 2023-08-29 18:53:58 +0200
  • a6f43dfadd MultiSelect: ImGuiMultiSelectIO's field are not used during loop anymore, stripping them out of comments. ocornut 2023-08-29 18:18:24 +0200
  • dce02f5c4b Demo: Dual List Box: Added a dual list box (6648) ocornut 2023-08-23 15:53:50 +0200
  • ba698df7bb MultiSelect: Demo: Deletion: Various renames to clarify. Use adapter and item list in both ApplyDeletion functions. ocornut 2023-08-28 16:33:30 +0200
  • e1d2109208 MultiSelect: Demo: Deletion: Rework ApplyDeletionPreLoop to use adapter + fix PostLoop not using right value of RequestFocusItem. ocornut 2023-08-23 16:48:04 +0200
  • fa516c3d76 MultiSelect: Demo: Make ExampleSelection use ImGuiID. More self-explanatory. ocornut 2023-08-28 17:36:59 +0200
  • 530155d85a MultiSelect: Demo: Remove UserDataToIndex from ExampleSelectionAdapter. ocornut 2023-09-01 16:09:41 +0200
  • 8c1f659b3d MultiSelect: Demo: rework ExampleSelection with an ExampleSelectionAdapter layer, allowing to share more code accross examples using different storage systems. ocornut 2023-08-23 15:53:20 +0200
  • 8fe6b31952 MultiSelect: (Breaking) Removed RangeSrcPassedBy in favor of favoring user to call IncludeByIndex(RangeSrcItem) which is easier/simpler to honor. ocornut 2023-08-23 20:45:02 +0200
  • 6ddc5f38af MultiSelect: Demo: added simpler demo using Clipper. Clarify RangeSrcPassedBy doc. ocornut 2023-08-23 19:47:24 +0200
  • c3753809b1 MultiSelect: Demo: rework ExampleSelection names to map better to typical user code + variety of Comments tweaks. ocornut 2023-08-22 17:46:19 +0200
  • ff95fdb668 MultiSelect: (Breaking) RequestSetRange's parameter are RangeFirstItem...RangeLastItem (which was always ordered unlike RangeSrcItem...RangeDstItme). Removed RangeDstItem. Removed RangeDirection. ocornut 2023-08-21 19:20:51 +0200
  • af83a3eea4 MultiSelect: clear selection when leaving a scope with a nav directional request. ocornut 2023-08-15 18:11:14 +0200
  • 6821401a3f MultiSelect: Tweak debug log to print decimal+hex values for item data. ocornut 2023-08-08 14:47:50 +0200
  • c9eb3714e8 MultiSelect: move HasSelectionData to ImGuiItemFlags to facilitate copying around in standardized fieds. ocornut 2023-08-07 18:53:57 +0200
  • e82b49d2d4 MultiSelect: (Breaking) Use ImGuiSelectionUserData (= ImS64) instead of void* for selection user data. ocornut 2023-08-07 12:38:24 +0200
  • 140a2f0565 MultiSelect: Comments, tweaks. ocornut 2023-08-07 12:34:20 +0200
  • 847b1dde8c MultiSelect: (Breaking) Fix + Rename ImGuiMultiSelectFlags_NoMultiSelect to ImGuiMultiSelectFlags_SingleSelect as it seems easier to grasp. ocornut 2023-08-04 10:23:44 +0200
  • 0cf376348b MultiSelect: Cleanup unused comments/code. ocornut 2023-06-08 15:01:10 +0200
  • ab9326f4ae MultiSelect: Fixed right-click handling in MultiSelectItemFooter() when not focused. ocornut 2023-06-07 17:40:59 +0200
  • e3616e151f MultiSelect: Demo: Delete items from menu. ocornut 2023-06-07 17:28:22 +0200
  • c0035705ca MultiSelect: Further simplication of user code to support Deletion. ocornut 2023-06-02 15:29:55 +0200
  • df1eeb9a20 MultiSelect: Maintain NavIdSelected for user. Simplify deletion demo. ocornut 2023-06-02 15:17:01 +0200
  • 9223ffc255 MultiSelect: (Breaking) BeginMultiSelect() doesn't need two last params maintained by users. Moving some storage from user to core. Proper deletion demo. ocornut 2023-06-02 14:34:22 +0200
  • 564dde0ee3 MultiSelect: Demo: first-draft of user-side deletion idioms. ocornut 2023-06-02 14:22:13 +0200