Class ModalSession<T>
- Namespace
- Forma
- Assembly
- Forma.dll
Owns one detached popup and its compiled control lifetime. Construct, open, accept, cancel and dispose on the context's creation thread. Token callbacks only latch; Update drains cancellation. Acceptance linearizes under the same lock as cancellation, after result validation. A cancellation already signalled at that point wins. Cleanup precedes completion; cleanup failure faults it. Context disposal terminates even an unopened session and prevents further session reservations. The caller supplies result validation and is responsible for immutable result ownership.
public sealed class ModalSession<T> : IDisposable
Type Parameters
T
- Inheritance
-
ModalSession<T>
- Implements
- Inherited Members
Constructors
ModalSession(UIContext, Popup, Action<T>, IDisposable, CancellationToken)
public ModalSession(UIContext context, Popup popup, Action<T> validateResult, IDisposable lifetime = null, CancellationToken cancellationToken = default)
Parameters
contextUIContextpopupPopupvalidateResultAction<T>lifetimeIDisposablecancellationTokenCancellationToken
Properties
Completion
public Task<ModalOutcome<T>> Completion { get; }
Property Value
- Task<ModalOutcome<T>>
Methods
Cancel(ModalCancelReason)
public void Cancel(ModalCancelReason reason = ModalCancelReason.User)
Parameters
reasonModalCancelReason
Dispose()
public void Dispose()
Open(Vector2, Control)
public void Open(Vector2 position, Control initialFocus = null)
Parameters
positionVector2initialFocusControl
TryAccept(T)
Returns false if already closed or cancellation wins; invalid results always throw.
public bool TryAccept(T result)
Parameters
resultT