mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-04 07:01:04 +01:00 
			
		
		
		
	Inputs: tweak comments, typos.
This commit is contained in:
		@@ -1274,7 +1274,7 @@ struct ImGuiInputEvent
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Input function taking an 'ImGuiID owner_id' argument defaults to (ImGuiKeyOwner_Any == 0) aka don't test ownership, which matches legacy behavior.
 | 
			
		||||
#define ImGuiKeyOwner_Any           ((ImGuiID)0)    // Accept key that have an owner, UNLESS a call to SetKeyOwner() explicitely used ImGuiInputFlags_LockThisFrame or ImGuiInputFlags_LockUntilRelease.
 | 
			
		||||
#define ImGuiKeyOwner_Any           ((ImGuiID)0)    // Accept key that have an owner, UNLESS a call to SetKeyOwner() explicitly used ImGuiInputFlags_LockThisFrame or ImGuiInputFlags_LockUntilRelease.
 | 
			
		||||
#define ImGuiKeyOwner_None          ((ImGuiID)-1)   // Require key to have no owner.
 | 
			
		||||
 | 
			
		||||
typedef ImS16 ImGuiKeyRoutingIndex;
 | 
			
		||||
@@ -1291,7 +1291,7 @@ struct ImGuiKeyRoutingData
 | 
			
		||||
    ImGuiKeyRoutingData()           { NextEntryIndex = -1; Mods = 0; RoutingNextScore = 255; RoutingCurr = RoutingNext = ImGuiKeyOwner_None; }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Routing table maintain a desired owner for each possible key-chord (key + mods), and setup owner in NewFrame() when mods are matching.
 | 
			
		||||
// Routing table: maintain a desired owner for each possible key-chord (key + mods), and setup owner in NewFrame() when mods are matching.
 | 
			
		||||
// Stored in main context (1 instance)
 | 
			
		||||
struct ImGuiKeyRoutingTable
 | 
			
		||||
{
 | 
			
		||||
@@ -1303,8 +1303,8 @@ struct ImGuiKeyRoutingTable
 | 
			
		||||
    void Clear()                    { for (int n = 0; n < IM_ARRAYSIZE(Index); n++) Index[n] = -1; Entries.clear(); EntriesNext.clear(); }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// This extend ImGuiKeyData but only for named keys (legacy keys don't support the new features)
 | 
			
		||||
// Stored in main context (1 per named key). In the future might be merged into ImGuiKeyData.
 | 
			
		||||
// This extends ImGuiKeyData but only for named keys (legacy keys don't support the new features)
 | 
			
		||||
// Stored in main context (1 per named key). In the future it might be merged into ImGuiKeyData.
 | 
			
		||||
struct ImGuiKeyOwnerData
 | 
			
		||||
{
 | 
			
		||||
    ImGuiID     OwnerCurr;
 | 
			
		||||
@@ -1334,8 +1334,8 @@ enum ImGuiInputFlags_
 | 
			
		||||
    ImGuiInputFlags_CondMask_           = ImGuiInputFlags_CondHovered | ImGuiInputFlags_CondActive,
 | 
			
		||||
 | 
			
		||||
    // Flags for SetKeyOwner(), SetItemKeyOwner()
 | 
			
		||||
    ImGuiInputFlags_LockThisFrame       = 1 << 6,   // Access to key data will requires EXPLICIT owner ID (ImGuiKeyOwner_Any/0 will NOT accepted for polling). Cleared at end of frame. This is useful to make input-owner-aware code steal keys from non-input-owner-aware code.
 | 
			
		||||
    ImGuiInputFlags_LockUntilRelease    = 1 << 7,   // Access to key data will requires EXPLICIT owner ID (ImGuiKeyOwner_Any/0 will NOT accepted for polling). Cleared when key is released or at end of frame is not down. This is useful to make input-owner-aware code steal keys from non-input-owner-aware code.
 | 
			
		||||
    ImGuiInputFlags_LockThisFrame       = 1 << 6,   // Access to key data will require EXPLICIT owner ID (ImGuiKeyOwner_Any/0 will NOT accepted for polling). Cleared at end of frame. This is useful to make input-owner-aware code steal keys from non-input-owner-aware code.
 | 
			
		||||
    ImGuiInputFlags_LockUntilRelease    = 1 << 7,   // Access to key data will require EXPLICIT owner ID (ImGuiKeyOwner_Any/0 will NOT accepted for polling). Cleared when the key is released or at end of each frame if key is released. This is useful to make input-owner-aware code steal keys from non-input-owner-aware code.
 | 
			
		||||
 | 
			
		||||
    // Routing policies for Shortcut() + low-level SetShortcutRouting()
 | 
			
		||||
    // - The general idea is that several callers register interest in a shortcut, and only one owner gets it.
 | 
			
		||||
@@ -1767,7 +1767,7 @@ struct ImGuiContext
 | 
			
		||||
    ImU32                   ActiveIdUsingNavDirMask;            // Active widget will want to read those nav move requests (e.g. can activate a button and move away from it)
 | 
			
		||||
    bool                    ActiveIdUsingAllKeyboardKeys;       // Active widget will want to read all keyboard keys inputs. (FIXME: This is a shortcut for not taking ownership of 100+ keys but perhaps best to not have the inconsistency)
 | 
			
		||||
#ifndef IMGUI_DISABLE_OBSOLETE_KEYIO
 | 
			
		||||
    ImU32                   ActiveIdUsingNavInputMask;          // If you used this. Since (IMGUI_VERSION_NUM >= 18804) : 'g.ActiveIdUsingNavInputMask |= (1 << ImGuiNavInput_Cancel);' becomes 'SetActiveIdUsingKey(ImGuiKey_Escape); SetActiveIdUsingKey(ImGuiKey_NavGamepadCancel);'
 | 
			
		||||
    ImU32                   ActiveIdUsingNavInputMask;          // If you used this. Since (IMGUI_VERSION_NUM >= 18804) : 'g.ActiveIdUsingNavInputMask |= (1 << ImGuiNavInput_Cancel);' becomes 'SetKeyOwner(ImGuiKey_Escape, g.ActiveId) and/or SetKeyOwner(ImGuiKey_NavGamepadCancel, g.ActiveId);'
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    // Next window/item data
 | 
			
		||||
@@ -2845,12 +2845,12 @@ namespace ImGui
 | 
			
		||||
    inline bool             IsActiveIdUsingNavDir(ImGuiDir dir)                         { ImGuiContext& g = *GImGui; return (g.ActiveIdUsingNavDirMask & (1 << dir)) != 0; }
 | 
			
		||||
 | 
			
		||||
    // [EXPERIMENTAL] Low-Level: Key/Input Ownership
 | 
			
		||||
    // - The idea is that instead of "eating" a given input, we can link to an owner.
 | 
			
		||||
    // - The idea is that instead of "eating" a given input, we can link to an owner id.
 | 
			
		||||
    // - Ownership is most often claimed as a result of reacting to a press/down event (but occasionally may be claimed ahead).
 | 
			
		||||
    // - Input queries can then read input by specifying ImGuiKeyOwner_Any (== 0), ImGuiKeyOwner_None (== -1) or a custom ID.
 | 
			
		||||
    // - Legacy input queries (without specifying an owner or _Any or _None) are equivalent to using ImGuiKeyOwner_Any (== 0).
 | 
			
		||||
    // - Input ownership is automatically released on the frame after a key is released. Therefore:
 | 
			
		||||
    //   - for ownership registration happening a result of a down/press event, the SetKeyOwner() call may be done once (common case).
 | 
			
		||||
    //   - for ownership registration happening as a result of a down/press event, the SetKeyOwner() call may be done once (common case).
 | 
			
		||||
    //   - for ownership registration happening ahead of a down/press event, the SetKeyOwner() call needs to be made every frame (happens if e.g. claiming ownership on hover).
 | 
			
		||||
    // - SetItemKeyOwner() is a shortcut for common simple case. A custom widget will probably want to call SetKeyOwner() multiple times directly based on its interaction state.
 | 
			
		||||
    // - This is marked experimental because not all widgets are fully honoring the Set/Test idioms. We will need to move forward step by step.
 | 
			
		||||
@@ -2865,7 +2865,7 @@ namespace ImGui
 | 
			
		||||
    // - Important: legacy IsKeyPressed(ImGuiKey, bool repeat=true) _DEFAULTS_ to repeat, new IsKeyPressed() requires _EXPLICIT_ ImGuiInputFlags_Repeat flag.
 | 
			
		||||
    // - Expected to be later promoted to public API, the prototypes are designed to replace existing ones (since owner_id can default to Any == 0)
 | 
			
		||||
    // - Specifying a value for 'ImGuiID owner' will test that EITHER the key is NOT owned (UNLESS locked), EITHER the key is owned by 'owner'.
 | 
			
		||||
    //   Legacy functions use ImGuiKeyOwner_Any meaning that they typically ignore ownership, unless a call to SetKeyOwner() explicitely used ImGuiInputFlags_LockThisFrame or ImGuiInputFlags_LockUntilRelease.
 | 
			
		||||
    //   Legacy functions use ImGuiKeyOwner_Any meaning that they typically ignore ownership, unless a call to SetKeyOwner() explicitly used ImGuiInputFlags_LockThisFrame or ImGuiInputFlags_LockUntilRelease.
 | 
			
		||||
    // - Binding generators may want to ignore those for now, or suffix them with Ex() until we decide if this gets moved into public API.
 | 
			
		||||
    IMGUI_API bool              IsKeyDown(ImGuiKey key, ImGuiID owner_id);
 | 
			
		||||
    IMGUI_API bool              IsKeyPressed(ImGuiKey key, ImGuiID owner_id, ImGuiInputFlags flags = 0);    // Important: when transitioning from old to new IsKeyPressed(): old API has "bool repeat = true", so would default to repeat. New API requiress explicit ImGuiInputFlags_Repeat.
 | 
			
		||||
@@ -2882,7 +2882,7 @@ namespace ImGui
 | 
			
		||||
    // - When using one of the routing flags (e.g. ImGuiInputFlags_RouteFocused): routes requested ahead of time given a chord (key + modifiers) and a routing policy.
 | 
			
		||||
    // - Routes are resolved during NewFrame(): if keyboard modifiers are matching current ones: SetKeyOwner() is called + route is granted for the frame.
 | 
			
		||||
    // - Route is granted to a single owner. When multiple requests are made we have policies to select the winning route.
 | 
			
		||||
    // - Multiple read sites may use a same owner and will all get the granted route.
 | 
			
		||||
    // - Multiple read sites may use the same owner id and will all get the granted route.
 | 
			
		||||
    // - For routing: when owner_id is 0 we use the current Focus Scope ID as a default owner in order to identify our location.
 | 
			
		||||
    IMGUI_API bool              Shortcut(ImGuiKeyChord key_chord, ImGuiID owner_id = 0, ImGuiInputFlags flags = 0);
 | 
			
		||||
    IMGUI_API bool              SetShortcutRouting(ImGuiKeyChord key_chord, ImGuiID owner_id = 0, ImGuiInputFlags flags = 0);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user