pub struct SystemWindowTabController { /* private fields */ }Expand description
A global that tracks which windows are grouped into native window tabs.
Stored as a Global. Call SystemWindowTabController::init once at startup.
The methods that take cx read and update this global.
Implementations§
Source§impl SystemWindowTabController
impl SystemWindowTabController
Sourcepub fn init(cx: &mut App)
pub fn init(cx: &mut App)
Sets the global SystemWindowTabController to a new, empty controller.
Sourcepub fn tab_groups(&self) -> &FxHashMap<usize, Vec<SystemWindowTab>>
pub fn tab_groups(&self) -> &FxHashMap<usize, Vec<SystemWindowTab>>
Returns every tab group, keyed by group ID.
Sourcepub fn get_next_tab_group_window(
cx: &mut App,
id: WindowId,
) -> Option<&AnyWindowHandle>
pub fn get_next_tab_group_window( cx: &mut App, id: WindowId, ) -> Option<&AnyWindowHandle>
Returns the handle of the window in the tab group that follows the group containing id
in the iteration order of tab_groups. That order is arbitrary.
The window chosen is the most recently active tab in that group. Returns None
if id is not in a group.
Sourcepub fn get_prev_tab_group_window(
cx: &mut App,
id: WindowId,
) -> Option<&AnyWindowHandle>
pub fn get_prev_tab_group_window( cx: &mut App, id: WindowId, ) -> Option<&AnyWindowHandle>
Returns the handle of the window in the tab group that precedes the group containing id
in the iteration order of tab_groups. That order is arbitrary.
The window chosen is the most recently active tab in that group. Returns None
if id is not in a group.
Sourcepub fn tabs(&self, id: WindowId) -> Option<&Vec<SystemWindowTab>>
pub fn tabs(&self, id: WindowId) -> Option<&Vec<SystemWindowTab>>
Returns the tabs in the group that contains the window id, or None if it has none.
Sourcepub fn init_visible(cx: &mut App, visible: bool)
pub fn init_visible(cx: &mut App, visible: bool)
Sets tab visibility to visible, but only if it has not been set yet.
Sourcepub fn is_visible(&self) -> bool
pub fn is_visible(&self) -> bool
Returns whether window tabs are shown. Defaults to false until set.
Sourcepub fn set_visible(cx: &mut App, visible: bool)
pub fn set_visible(cx: &mut App, visible: bool)
Shows or hides window tabs.
Sourcepub fn update_last_active(cx: &mut App, id: WindowId)
pub fn update_last_active(cx: &mut App, id: WindowId)
Records that the window id is now the active tab, for ordering tab groups.
Sourcepub fn update_tab_position(cx: &mut App, id: WindowId, ix: usize)
pub fn update_tab_position(cx: &mut App, id: WindowId, ix: usize)
Moves the tab for window id to index ix within its group.
Does nothing if ix is out of range or the tab is already there.
Sourcepub fn update_tab_title(cx: &mut App, id: WindowId, title: SharedString)
pub fn update_tab_title(cx: &mut App, id: WindowId, title: SharedString)
Sets the title of the tab for window id. Does nothing if the title is unchanged.
Sourcepub fn add_tab(cx: &mut App, id: WindowId, tabs: Vec<SystemWindowTab>)
pub fn add_tab(cx: &mut App, id: WindowId, tabs: Vec<SystemWindowTab>)
Adds the window id to the group that holds the other tabs in tabs.
If no existing group holds exactly the other tabs, tabs becomes a new group.
Does nothing if tabs does not contain id.
Sourcepub fn remove_tab(cx: &mut App, id: WindowId) -> Option<SystemWindowTab>
pub fn remove_tab(cx: &mut App, id: WindowId) -> Option<SystemWindowTab>
Removes the tab for window id from its group and returns it.
A group that becomes empty is removed. Returns None if id is in no group.
Sourcepub fn move_tab_to_new_window(cx: &mut App, id: WindowId)
pub fn move_tab_to_new_window(cx: &mut App, id: WindowId)
Moves the tab for window id out of its group into a new group of its own.
Sourcepub fn merge_all_windows(cx: &mut App, id: WindowId)
pub fn merge_all_windows(cx: &mut App, id: WindowId)
Merges every tab group into one group, starting with the group that holds id.
Sourcepub fn select_next_tab(cx: &mut App, id: WindowId)
pub fn select_next_tab(cx: &mut App, id: WindowId)
Activates the tab after window id’s tab in its group, wrapping around at the end.
Sourcepub fn select_previous_tab(cx: &mut App, id: WindowId)
pub fn select_previous_tab(cx: &mut App, id: WindowId)
Activates the tab before window id’s tab in its group, wrapping around at the start.
Trait Implementations§
Source§impl Default for SystemWindowTabController
impl Default for SystemWindowTabController
impl Global for SystemWindowTabController
Auto Trait Implementations§
impl Freeze for SystemWindowTabController
impl RefUnwindSafe for SystemWindowTabController
impl Send for SystemWindowTabController
impl Sync for SystemWindowTabController
impl Unpin for SystemWindowTabController
impl UnsafeUnpin for SystemWindowTabController
impl UnwindSafe for SystemWindowTabController
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
replaced by palette::chromatic_adaptation::AdaptIntoUnclamped
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
replaced by palette::chromatic_adaptation::AdaptIntoUnclamped
Source§impl<T, C> AdaptIntoUnclamped<T> for Cwhere
T: AdaptFromUnclamped<C>,
impl<T, C> AdaptIntoUnclamped<T> for Cwhere
T: AdaptFromUnclamped<C>,
Source§type Scalar = <T as AdaptFromUnclamped<C>>::Scalar
type Scalar = <T as AdaptFromUnclamped<C>>::Scalar
Source§fn adapt_into_unclamped_with<M>(self) -> Twhere
M: LmsToXyz<<C as AdaptIntoUnclamped<T>>::Scalar> + XyzToLms<<C as AdaptIntoUnclamped<T>>::Scalar>,
fn adapt_into_unclamped_with<M>(self) -> Twhere
M: LmsToXyz<<C as AdaptIntoUnclamped<T>>::Scalar> + XyzToLms<<C as AdaptIntoUnclamped<T>>::Scalar>,
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
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
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Source§impl<T, C> ComponentsInto<C> for T
impl<T, C> ComponentsInto<C> for T
Source§fn components_into(self) -> C
fn components_into(self) -> C
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.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, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
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 moreSource§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> ReadGlobal for Twhere
T: Global,
impl<T> ReadGlobal for Twhere
T: Global,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read moreSource§impl<C, U> UintsFrom<C> for Uwhere
C: IntoUints<U>,
impl<C, U> UintsFrom<C> for Uwhere
C: IntoUints<U>,
Source§fn uints_from(colors: C) -> U
fn uints_from(colors: C) -> U
Source§impl<C, U> UintsInto<C> for Uwhere
C: FromUints<U>,
impl<C, U> UintsInto<C> for Uwhere
C: FromUints<U>,
Source§fn uints_into(self) -> C
fn uints_into(self) -> C
Source§impl<T> UpdateGlobal for Twhere
T: Global,
impl<T> UpdateGlobal for Twhere
T: Global,
Source§fn update_global<C, F, R>(cx: &mut C, update: F) -> R
fn update_global<C, F, R>(cx: &mut C, update: F) -> R
update with mutable access to the global and context. Read moreSource§fn set_global<C>(cx: &mut C, global: T)where
C: BorrowAppContext,
fn set_global<C>(cx: &mut C, global: T)where
C: BorrowAppContext,
global, replacing any previous value. Read more