Commit Graph
100 Commits
Author SHA1 Message Date
omar 518f02f4de Demo: better demo for SetKeyboardFocusHere() 2017-10-05 18:10:59 -07:00
omar f2c9bd8d4f Nav: Fixed uninitialized context variables for sanity. 2017-10-05 16:39:59 -07:00
omar a3d0755181 Merge branch 'master' into navigation 2017-10-05 10:31:37 -07:00
omar f326fac64a Nav: Menus and popups now have move request wrap around vertically (using the move request forward thing added recently). (#787) 2017-10-05 10:29:17 -07:00
omar a8788e51a7 SetKeyboardFocusHere() added assert to prevent passing values smaller than -1 as we may have to outlaw them (I think nobody was using that) 2017-10-05 09:53:07 -07:00
omar 63cd2bf9b1 Removed obsolete comment. 2017-10-05 09:40:06 -07:00
omar b3099d650c Examples: Adding Roboto to the commented-out font list, and removing the unnecessary ProggyClean from there. 2017-10-04 19:28:04 -07:00
omar 3ddcdcf6e7 Merge branch 'master' into navigation 2017-10-04 18:46:09 -07:00
omar 67ac7da30f Styles: Added ImGuiStyle::ScaleAllSizes(float) helper to make it easier to have application transition to e.g. High DPI with a matching style. 2017-10-04 18:13:57 -07:00
omar 89ab4b5e07 TODO update 2017-10-04 15:42:03 -07:00
omar 42ee537be3 Comments 2017-10-04 10:45:35 -07:00
omar a56b71e866 Nav: Added code to render thin highlight type. (#787) 2017-10-04 10:44:27 -07:00
omar 6ea90af6b7 Nav: Highlight clipped within host window then extruded out. (#787) 2017-10-03 13:53:17 -07:00
omar cb4e6c8212 Nav: Selectable(): activating selectable also sets NavId + removed the MouseDelta test (added in 43ee5d73e9, #323) as I don't think it is needed. (#787) 2017-10-03 13:44:48 -07:00
omar 64a51327d3 Nav: Added NavMoveResultParentId internal info to record when the parent/context of a given NavId. Useful for various algorithms (currently looking at range selection stuff) (#787) 2017-10-03 13:25:40 -07:00
omar 74da533c93 Nav: Added NavJustNavigatedId internal info to record when we land on a given item after a navigation request, useful for various algorithms (currently looking at range selection stuff) (#787) 2017-10-03 11:22:38 -07:00
omar 7f58bb03c1 Changed the internal name formatting of child windows to use slashes as separator, more readable. 2017-10-02 16:07:34 -07:00
omar cbc9730798 Metrics: Draw window bounding boxes when hovering Pos/Size. List all draw layers, trimming empty commands like Render() does. 2017-10-02 16:07:33 -07:00
omar 491edfd8d8 Nav: Fixed a crash introduced yesterday. 2017-09-30 23:46:23 +02:00
omar 0046c618b0 Nav: Allow to collapse tree nodes with NavLeft and open them with NavRight (#787, #1079) 2017-09-30 00:47:07 +02:00
omar ecd72cc0c7 Nav: Disabled the final axial check when considering candidates in most situations except menubars.
It's definitively undesirable inside Menu as we want to catch nav request failures reliably.
I think it may be considered as an option if we find this desirable i some circumstances. Right now ideally I'd remove it totally but with current scoring setup, without it we can't easily reach the Window Close button. (#787)
2017-09-30 00:26:55 +02:00
omar 88a354585a Nav: It's now possible to navigate sibling of a menu-bar while navigating inside one of their child. If a Left<>Right navigation request fails to find a match we forward the request to the root menu. (#787, #126)
Currently the sibling menu is isn't automatically opened, that's still left to it (and even that can be anoying in Windows when the first menu-item is a child menu)
2017-09-29 23:39:34 +02:00
omar 587e637db0 Nav: Taking note that we should aim to remove MenuBarAppending later. 2017-09-29 23:37:14 +02:00
omar 1eaa9d0621 Nav: Fixed uninitialized variable (that had no side-effects due to the code/data flow involved) 2017-09-29 23:37:14 +02:00
omar f4e4c38705 BeginMenu(): fixed logic to distinguish vertical menu from one layed out in a menu bar. Makes MenuItem() in a regular window behave more consistently, and this will be also needed by upcoming menu-navigation changes in the nav branch. (#126, #787) 2017-09-29 23:37:14 +02:00
omar 9912f7eef8 BeginMenu(): fixed logic to distinguish vertical menu from one layed out in a menu bar. Makes MenuItem() in a regular window behave more consistently, and this will be also needed by upcoming menu-navigation changes in the nav branch. (#126, #787) 2017-09-29 22:19:53 +02:00
omar cf3b21179b Nav: Comments 2017-09-29 20:03:02 +02:00
omar 5a9ebeca9e Nav: Fix typo from 9712a81f85 2017-09-29 19:49:20 +02:00
omar bfaa426f7f Nav: Minor tidying up (adding local variables to be a little more sane). 2017-09-29 19:48:16 +02:00
omar 8a5a29f0be Nav: Renamed internal field. 2017-09-29 19:28:19 +02:00
omar 9712a81f85 Nav: Rectangle rectangle stored per window and per layer as well. Makes things simpler, allows enable us to visualize more data. 2017-09-29 19:26:03 +02:00
omar 54eb4c485e Nav: Marked misleading/broken code that will never execute. 2017-09-29 19:15:24 +02:00
omar e3c89aeb10 Nav: Fixed menuitems/selectable on menu layer (layer 1) from storing themselves in wrong layer of LastNavIds when hovered.causing inconsistencies and bugs when hovering menu with mouse then pressing ALT to return to layer 0).
NB: this is not a new bug introduced by the previous commit (which is related to nav layers), bug has been there for a while. (#787)
2017-09-29 18:24:43 +02:00
omar 9737efb2f1 Nav: Store per-window last nav id also per-layer so we can easily query them for menu navigation code. (#787) 2017-09-29 17:58:25 +02:00
omar 8a814487fe Merge branch 'master' into navigation
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
2017-09-29 16:30:43 +02:00
omar fba9353c60 BeginMenu: Shuffling braces around to clarify flow 2017-09-29 16:29:00 +02:00
omar cf308f4039 Nav: Fixed SetItemDefaultFocus from stealing default focus when we are initializing default focus for a menu bar layer (#787) 2017-09-29 00:20:51 +02:00
omar f4398226cc Nav: Support for fallback horizontal scrolling with PadLeft/PadRight (nb: fallback scrolling is only used to navigate windows that have no interactive items). (#787) 2017-09-29 00:01:26 +02:00
omar 30b1d85962 Nav: Commiting some better organized Debug helper because this going to stay for a bit. 2017-09-28 23:48:30 +02:00
omar 3b85a8b6a0 Demo: Added an extra test related to baseline and fixed an id collision. 2017-09-28 22:01:08 +02:00
omar 164f22d5b7 Comments 2017-09-28 22:00:49 +02:00
omar 1f7f54e196 Removed extraneous test. 2017-09-28 22:00:17 +02:00
omar df366b230e ColorPicker4: Use nav flag to provide a slighly better experience when using navigation (#787, #346) 2017-09-28 20:22:30 +02:00
omar 7c2926de17 Demo: Added an extra test related to baseline and fixed an id collision. 2017-09-28 20:15:32 +02:00
omar 2d859dee4e Nav: Added ImGuiItemFlags_NoNav item flag 2017-09-28 19:58:01 +02:00
omar 878fa96896 Nav: Re-arranged ItemAdd() to maximize early out (#787) 2017-09-28 19:57:24 +02:00
omar dd0855de5c ButtonBehavior: Tidying up. 2017-09-28 19:47:45 +02:00
omar 4b4e455c40 Nav: Internal nenaming 2017-09-28 19:41:30 +02:00
omar 50ba543743 Comments 2017-09-28 19:35:10 +02:00
omar e0a2a832cd Nav: Changed internal flag to NoNavDefaultFocus to be false by allow, and more consistent (#787) 2017-09-28 19:18:41 +02:00
omar af38749ea1 Nav: Fixed ButtonBehavior mistakenly setting active id when the Activate button is held and we have a new NavId, which affected browsing some popups (#787) 2017-09-28 19:07:52 +02:00
omar ca4db8c905 Merge branch 'master' into navigation
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
2017-09-28 17:40:25 +02:00
omar e8f7c83138 Begin: Shallow tweak to minimize diff with nav branch 2017-09-28 17:37:55 +02:00
omar 926c1cf9a4 Merged from Navigation branch: ImGuiItemFlags_SelectableDontClosePopup flag 2017-09-28 17:02:28 +02:00
omar f99348711b Added VerticalSeparator() entry point in imgui_internal. Seperator() in an horizontal layout context still does that. 2017-09-28 16:41:01 +02:00
omar 9142002121 Separator(): Tweak Logging so that the separator text is aligned according to tree padding. 2017-09-28 16:40:28 +02:00
omar d394c7ad0b Merge branch 'master' into navigation
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
2017-09-28 15:45:35 +02:00
omar 0106dcbd02 Fixed IsItemHovered() - part of the processing has to be done in ItemAdd() because the widget may alter clipping rectangle temporarily. 2017-09-28 15:43:26 +02:00
omar 2a8eb618dc Nav: Fixed NavDown to open menu from a menu bar (#787) 2017-09-28 00:36:58 +02:00
omar 35f65e05ed Merge branch 'master' into navigation 2017-09-28 00:33:29 +02:00
omar fafe65a8fc Refactor to move the responsability of SetHovered() to ItemHoverable() - previously IsHovered(). Simpler and the parallel to ItemAdd is clearer with the new name. 2017-09-28 00:21:47 +02:00
omar 2159629e9e Removed another msileading difference between the hovered functions (IsWindowContentHoverable() uses the root window already). Sorry for the commit spam! (making small commit to easily be able to Bisect those in case I make a mistake) 2017-09-28 00:05:35 +02:00
omar eca74d55c7 IsItemHovered(), IsHovered(): Shallow tweaks, eventually removed all the braces. 2017-09-28 00:05:18 +02:00
omar 2b7d4c713e Internals: Moved IsWindowContentHoverable() in the file 2017-09-27 23:31:03 +02:00
omar c5a79deb38 IsItemHovered(), IsHovered(): Shallow tweaks to make them more symetrical. Removed one set of braces. 2017-09-27 23:10:46 +02:00
omar 7bcb1d3816 Internals: ButtonBehavior(), IsHovered() moved the responsability of flatten_child higher level to ButtonBehavior() - not super sure about the elegance of this 2017-09-27 22:59:40 +02:00
omar 79ef64430c Nav: Fixed merge cc26db8ec7 2017-09-27 17:27:21 +02:00
omar cc26db8ec7 Merge branch 'master' into navigation 2017-09-27 17:25:50 +02:00
omar 0adcddac39 IsItemHovered(), ItemAdd(): finishing cleaning up, moved the code to IsItemHovered() so ItemAdd() is more lightweight and the two IsXXXHovered functions are now very similar, making their differences less confusing. 2017-09-27 17:21:50 +02:00
omar 19e22baa06 ItemAdd(): more re-ordering of tests to match IsHovered() + comments 2017-09-27 17:06:07 +02:00
omar 344d48be31 IsItemHovered(), ItemAdd(): Fixed seemingly unnecessary comparaison of root windows, makes IsItemHovered() more consistent with internal IsHovered().
Original test was added in 6e99688fa7 should not have been using RootWindow in the first place.
The difference between public-facing and internal versions would only be noticeable with overlapped child windows, which doesn't really happen anyway
2017-09-27 16:49:25 +02:00
omar c075786d8b ItemAdd(): re-ordering the tests, submission should now be faster. 2017-09-27 16:29:46 +02:00
omar 99c7622a1b ItemAdd(), not performing computation for IsItemRectHovered() which does them itself, allowing us in the next commit to optimize ItemAdd() and make its logic more consistent with IsHovered(). 2017-09-27 16:20:53 +02:00
omar e87ad328e4 Moved implementation of Hovered-related functions next to each others + comments, before I attempt to work on them. No functional change here. 2017-09-27 16:07:47 +02:00
omar 842e88a8e3 Examples: Avoid using ImColor() to not tempt newcomers into looking at it 2017-09-27 15:47:08 +02:00
omar 869732c456 Nav: Removed unnecessary combo code (that kept the combo arrow highlighted after reverting to mouse controls). (#787) 2017-09-27 12:34:18 +02:00
omar a2b2e56e8e Merge branch 'master' into navigation 2017-09-27 12:31:12 +02:00
omar e56eba44fe Fixed not being able to move a window by clicking on one of its child window (#1337, #635), broken by https://github.com/ocornut/imgui/commit/313d388bba42e0634a02b976dcdbae238d25eddc 2017-09-27 12:25:40 +02:00
omar 8374a454da Removed extraneous ImGui:: prefixes. Declared ColorEditOptionsPopup in imgui_internals.h. Tweaked internal signatures. 2017-09-27 11:39:13 +02:00
omar 09f6f564d9 ImFontAtlas: Fixed calling Clear() and rebuilding (broken in 3fe2ecfd4c) thanks @pdoane @mikesart 2017-09-27 11:21:42 +02:00
omar bbd6d5d5b5 Combo: Cleaned up, removed unnecessary code (looks like this part went untouched for a long time!). 2017-09-27 00:20:09 +02:00
omar 8fd4beddb8 Merge branch 'master' into navigation 2017-09-26 20:28:40 +02:00
omar 3fe2ecfd4c ImFontAtlas: Added support for CustomRect API to submit custom rectangles to be packed into the atlas / and map them as font glyphs 2017-09-26 20:24:27 +02:00
omar 501e73feed Minor comments 2017-09-26 20:18:14 +02:00
omar 9e1ad7295f ImFont: Renamed (supposedly internal) fields (e.g. XAdvance to AdvanceX). Custom text renderers might be affected if they didn't use the GetCharAdvance() helper function. 2017-09-26 20:05:16 +02:00
omar 10bb9524eb ImFont: Renamed ImFont::Glyph to ImFontGlyph (for consistency and so ImFontAtlas types can use it without ordering half of the file). Left a redirection type. 2017-09-26 19:54:30 +02:00
omar 072d6d8cb5 ImFontAtlas: Refactored internals API to 1) avoid building lookup table multiple times for merged fonts + 2) allow the mapping of custom icons inside fonts (wip, uncommited) 2017-09-26 19:26:16 +02:00
omar 2170b0b278 ImFontAtlas: Comments and minor reorganization of declaration in header file. 2017-09-26 19:10:29 +02:00
omar 529ca279a4 ImFont: Split some building code into a AddGlyph() helper (that custom rect code and imgui_freetype can use) 2017-09-26 18:41:21 +02:00
omar f1a20ec66d Merge branch 'master' into navigation 2017-09-26 16:54:37 +02:00
omar be03882a15 Separator(): output vertical separator when used in horizontal layout mode, so it works in menu bars. 2017-09-26 15:43:48 +02:00
omar c7a606ab7e Horizontal layout does the minimum job to be usable internally - not exposed (#97) 2017-09-26 15:42:55 +02:00
omar 728deff56c Comments, debug code (commented), todo list 2017-09-26 15:33:57 +02:00
omar 99b9f1c93c Fix static misusage error with decent compilers. Error introduced in 4b82759598 2017-09-26 11:23:06 +02:00
omar 82748df71a WantCaptureMouse: Tweaked logic so WantCaptureMouse can stay false when e.g. hovering over void while an InputText() is active. (#621) 2017-09-26 01:12:09 +02:00
omar 69d0d33451 Exposed PushMultiItemsWidths() to imgui_internal.h 2017-09-25 22:45:10 +02:00
omar 9577ebf008 Merge branch 'master' into navigation 2017-09-25 22:14:37 +02:00
omar 7e8069dd23 Merge branch 'master' into navigation 2017-09-25 22:08:38 +02:00
omar c0547d358d Begin: Fixed auto-fit calculation code that predict the presence of ascrollbar so it works in the case size constraints are used. I actually don't need this fix now, but earlier experiment with BeginCombo() required this fix. 2017-09-25 22:04:39 +02:00
omar 4b2781fe87 Begin: Moving some code into a CalcSizeAutoFit() function. 2017-09-25 21:57:42 +02:00