pub struct WindowState { /* private fields */ }Expand description
A refcounted handle to a single window’s reactive state.
Cloning gives you another handle to the same underlying state.
Widgets should store a WindowState clone when they need to read
or write window-level signals outside of a single build() call.
Implementations§
Source§impl WindowState
impl WindowState
Sourcepub fn new(init: WindowStateInit) -> WindowState
pub fn new(init: WindowStateInit) -> WindowState
Construct a new state from initial values.
Wires an observer on every signal that pushes a matching
WindowCommand onto the pending queue, guarded by
WindowStateInner::applying_from_os.
pub fn id(&self) -> TeksiloWindowId
pub fn string_id(&self) -> Option<&str>
pub fn placement(&self) -> &Signal<WindowPlacement>
pub fn title(&self) -> &Signal<String>
pub fn size(&self) -> &Signal<(u32, u32)>
pub fn position(&self) -> &Signal<(i32, i32)>
pub fn focused(&self) -> &Signal<bool>
pub fn resizable(&self) -> &Signal<bool>
pub fn always_on_top(&self) -> &Signal<bool>
Sourcepub fn caps_lock(&self) -> &Signal<bool>
pub fn caps_lock(&self) -> &Signal<bool>
Caps Lock active state. OS-driven only — the window manager
toggles it on each Key::CapsLock press. Read this (e.g. via
ctx.window()) to drive a Caps Lock warning on password fields.
Sourcepub fn alt_down(&self) -> &Signal<bool>
pub fn alt_down(&self) -> &Signal<bool>
Whether the Alt key is currently held down. OS-driven only — the
window manager flips this on Key::Alt KeyDown / KeyUp. Read
this to drive mnemonic-underline visibility on menus and menubars.
See the menubar key-dispatch documentation for the full Alt-tap
/ Alt+letter / mnemonic-underline contract.
Sourcepub fn other_key_pressed_during_alt(&self) -> bool
pub fn other_key_pressed_during_alt(&self) -> bool
Read whether any non-Alt key has been pressed during the
current Alt-hold window. false means the user has not
composed a chord since pressing Alt; the next Alt-release
counts as a bare-Alt-tap. Read by the MenuBar dispatcher.
Install (or replace) the per-window menubar key dispatcher.
Returns a super::menubar_dispatcher::MenubarGuard that
clears the slot on drop iff it still points at this exact
dispatcher (Rc::ptr_eq).
At most one dispatcher is supported per window. A second
install while another is still live debug_assert!s and
overwrites in release. This matches the “one MenuBar per
window” invariant the framework enforces upstream.
Snapshot of the currently-installed menubar dispatcher. Used by
teksilo-app’s key-event arm to consult the menubar BEFORE
focus-based dispatch. Returns None when no MenuBar is
mounted in this window.
Sourcepub fn request_attention(&self, kind: UserAttentionKind)
pub fn request_attention(&self, kind: UserAttentionKind)
Request user attention (bouncing dock icon on macOS, flashing
taskbar on Windows). Queues a WindowCommand::RequestAttention
command for the next drain.
Sourcepub fn focus(&self)
pub fn focus(&self)
Focus this window — raise it above others and give it keyboard
focus. Queues a WindowCommand::Focus command for the next
drain, carrying (and clearing) any token set via
WindowState::set_activation_token.
Sourcepub fn set_activation_token(&self, token: String)
pub fn set_activation_token(&self, token: String)
Stash an xdg_activation_v1 token — an opaque string minted by the
focused requester and handed across a process boundary — to be consumed
by the next WindowState::focus. Only affects a Wayland raise;
ignored on every other platform, where focus() raises on its own.
Sourcepub fn close(&self)
pub fn close(&self)
Close this window. Queues a WindowCommand::Close command
for the next drain.
Source§impl WindowState
impl WindowState
Sourcepub fn drain_os_commands(&self) -> Vec<WindowCommand>
pub fn drain_os_commands(&self) -> Vec<WindowCommand>
Drain the pending OS-command queue.
Sourcepub fn set_placement_from_os(&self, p: WindowPlacement)
pub fn set_placement_from_os(&self, p: WindowPlacement)
OS-originated placement write. Observers do not push back to the OS while the guard is set.
pub fn set_title_from_os(&self, title: String)
pub fn set_size_from_os(&self, size: (u32, u32))
pub fn set_position_from_os(&self, position: (i32, i32))
pub fn set_focused_from_os(&self, focused: bool)
pub fn set_resizable_from_os(&self, resizable: bool)
pub fn set_always_on_top_from_os(&self, on_top: bool)
Sourcepub fn set_caps_lock_from_os(&self, active: bool)
pub fn set_caps_lock_from_os(&self, active: bool)
Update Caps Lock state from the OS. No observer / command is wired (the app never drives the keyboard lock), so this writes the signal directly. Idempotent: skips the write when unchanged to avoid spurious repaints on auto-repeat.
Sourcepub fn set_alt_from_os(&self, active: bool)
pub fn set_alt_from_os(&self, active: bool)
Update Alt-held state from the OS. Resets the
other_key_pressed_during_alt flag on every Alt KeyDown
edge so each Alt-hold window starts fresh. Idempotent.
Sourcepub fn note_non_alt_keydown_during_alt(&self)
pub fn note_non_alt_keydown_during_alt(&self)
Mark that a non-Alt key was pressed while Alt is currently
held. Sticky — only cleared by the next
set_alt_from_os(true) edge. No-op
when Alt is not held. Idempotent.
Trait Implementations§
Source§impl Clone for WindowState
impl Clone for WindowState
Source§fn clone(&self) -> WindowState
fn clone(&self) -> WindowState
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for WindowState
impl !Send for WindowState
impl !Sync for WindowState
impl !UnwindSafe for WindowState
impl Freeze for WindowState
impl Unpin for WindowState
impl UnsafeUnpin for WindowState
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more