GPUI Dependency Types
These are GPUI types, not Vektra types. Vektra uses them at public callback boundaries without copying their full definitions. Every link is pinned to commit fd82517a115d97a07835b52f0512b22b38e38ccf.
ClickEvent
Used only by raw activation entries such as Clickable::on_click. Changeable::on_change carries no click event because changes may also originate from arrow keys, Home, or End. Pinned source.
Window
The current window's focus, input, drawing, and platform-state entry point. Vektra callbacks receive &mut Window. Pinned source.
App
GPUI's application-level context. Standard builder callbacks receive &mut App. Pinned source.
Context<T>
The update context for Entity T. *_in methods use Context::listener to bind standard callbacks to the host Entity and retain GPUI's weak-reference/no-op behavior after destruction. Pinned source.
Entity<T> and SharedString
Input requires the caller to own an Entity<InputState>, keeping editing state stable across renders. SharedString is Input's public value/event string type, while InputState::value() exposes content as &str.
Internally, Input implements the pinned revision's EntityInputHandler and connects it through ElementInputHandler for platform text input, IME, UTF-16 selection, and range bounds. These are implementation details and require no global handler registration by the host.
This Entity-bound example is compiled into the real WASM preview:
.on_focus_in(cx, move |this, _, cx| {
this.record_focus(controlled, true, cx);
})
.on_blur_in(cx, move |this, _, cx| {
this.record_focus(controlled, false, cx);
}),If GPUI later publishes stable official docs that match this revision, these links can move there. Until then, pinned source remains the signature authority.