Struct kas_widgets::TabStack 
source · [−]pub struct TabStack<W: Widget> { /* private fields */ }Expand description
A tabbed stack of widgets
A stack consists a set of child widgets, “pages”, all of equal size.
Only a single page is visible at a time. The page is “turned” via tab
handles or calling Self::set_active.
Type parameter D controls the position of tabs relative to the stack;
default value is Direction::Up: tabs are positioned above the stack.
Within the bar, items are always left-to-right
(TODO: support for vertical bars).
This may only be parametrised with a single widget type, thus usually
it will be necessary to box children (this is what BoxTabStack is).
See also the main implementing widget: Stack.
Implementations
sourceimpl<W: Widget> TabStack<W>
 
impl<W: Widget> TabStack<W>
sourcepub fn set_direction(&mut self, direction: Direction) -> TkAction
 
pub fn set_direction(&mut self, direction: Direction) -> TkAction
Set the position of tabs relative to content
Default value: Direction::Up
sourceimpl<W: Widget> TabStack<W>
 
impl<W: Widget> TabStack<W>
sourcepub fn set_size_limit(&mut self, limit: usize)
 
pub fn set_size_limit(&mut self, limit: usize)
Limit the number of pages considered by Layout::size_rules
By default, this is usize::MAX: all pages affect the result. If
this is set to 1 then only the active page will affect the result. If
this is n > 1, then min(n, num_pages) pages (including active)
will be used. (If this is set to 0 it is silently replaced with 1.)
Using a limit lower than the number of pages has two effects:
(1) resizing is faster and (2) calling Self::set_active may cause a
full-window resize.
sourcepub fn with_active(self, active: usize) -> Self
 
pub fn with_active(self, active: usize) -> Self
Set the active page (inline)
Unlike Self::set_active, this does not update anything; it is
assumed that sizing happens afterwards.
sourcepub fn set_active(&mut self, mgr: &mut ConfigMgr<'_>, index: usize)
 
pub fn set_active(&mut self, mgr: &mut ConfigMgr<'_>, index: usize)
Set the active page
Behaviour depends on whether SizeRules were already solved for
index (see Self::set_size_limit and note that methods like
Self::push do not solve rules for new pages). Case:
index >= num_pages: no page displayedindex == activeandSizeRuleswere solved: nothing happensSizeRuleswere solved: set layout (Layout::set_rect) and update mouse-cursor target (TkAction::REGION_MOVED)- Otherwise: resize the whole window (
TkAction::RESIZE) 
sourcepub fn get_active(&self) -> Option<&W>
 
pub fn get_active(&self) -> Option<&W>
Get a direct reference to the active child widget, if any
sourcepub fn get_tab_mut(&mut self, index: usize) -> Option<&mut Tab>
 
pub fn get_tab_mut(&mut self, index: usize) -> Option<&mut Tab>
Get a tab
sourcepub fn with_tab(self, tab: Tab, widget: W) -> Self
 
pub fn with_tab(self, tab: Tab, widget: W) -> Self
Append a page (inline)
Does not configure or size child.
sourcepub fn with_title(self, title: impl Into<AccelString>, widget: W) -> Self
 
pub fn with_title(self, title: impl Into<AccelString>, widget: W) -> Self
Append a page (inline)
Does not configure or size child.
sourcepub fn push(&mut self, mgr: &mut ConfigMgr<'_>, tab: Tab, widget: W) -> usize
 
pub fn push(&mut self, mgr: &mut ConfigMgr<'_>, tab: Tab, widget: W) -> usize
Append a page
The new page is configured immediately. If it becomes the active page
and then TkAction::RESIZE will be triggered.
Returns the new page’s index.
sourcepub fn pop(&mut self, mgr: &mut ConfigMgr<'_>) -> Option<(Tab, W)>
 
pub fn pop(&mut self, mgr: &mut ConfigMgr<'_>) -> Option<(Tab, W)>
Remove the last child widget (if any) and return
If this page was active then the previous page becomes active.
sourcepub fn insert(&mut self, mgr: &mut ConfigMgr<'_>, index: usize, tab: Tab, widget: W)
 
pub fn insert(&mut self, mgr: &mut ConfigMgr<'_>, index: usize, tab: Tab, widget: W)
Inserts a child widget position index
Panics if index > len.
The new child is configured immediately. The active page does not change.
sourcepub fn remove(&mut self, mgr: &mut ConfigMgr<'_>, index: usize) -> (Tab, W)
 
pub fn remove(&mut self, mgr: &mut ConfigMgr<'_>, index: usize) -> (Tab, W)
Removes the child widget at position index
Panics if index is out of bounds.
If the active page is removed then the previous page (if any) becomes active.
sourcepub fn replace(&mut self, mgr: &mut ConfigMgr<'_>, index: usize, w: W) -> W
 
pub fn replace(&mut self, mgr: &mut ConfigMgr<'_>, index: usize, w: W) -> W
Replace the child at index
Panics if index is out of bounds.
The new child is configured immediately. If it replaces the active page,
then TkAction::RESIZE is triggered.
sourcepub fn extend<T: IntoIterator<Item = (Tab, W)>>(
    &mut self,
    mgr: &mut ConfigMgr<'_>,
    iter: T
)
 
pub fn extend<T: IntoIterator<Item = (Tab, W)>>(
    &mut self,
    mgr: &mut ConfigMgr<'_>,
    iter: T
)
Append child widgets from an iterator
New children are configured immediately. If a new page becomes active,
then TkAction::RESIZE is triggered.
Trait Implementations
sourceimpl<W: Widget> AutoLayout for TabStack<W>
 
impl<W: Widget> AutoLayout for TabStack<W>
sourceimpl<W: Widget> Layout for TabStack<W>
 
impl<W: Widget> Layout for TabStack<W>
sourceimpl<W: Widget> Widget for TabStack<W>
 
impl<W: Widget> Widget for TabStack<W>
Navigation in spatial order Read more
sourcefn handle_message(&mut self, mgr: &mut EventMgr<'_>, _: usize)
 
fn handle_message(&mut self, mgr: &mut EventMgr<'_>, _: usize)
Handler for messages from children/descendants Read more
sourcefn pre_configure(&mut self, _: &mut ConfigMgr<'_>, id: WidgetId)
 
fn pre_configure(&mut self, _: &mut ConfigMgr<'_>, id: WidgetId)
Pre-configuration Read more
Is this widget navigable via Tab key? Read more
sourcefn translation(&self) -> Offset
 
fn translation(&self) -> Offset
Get translation of children relative to this widget Read more
sourcefn handle_event(&mut self, mgr: &mut EventMgr<'_>, event: Event) -> Response
 
fn handle_event(&mut self, mgr: &mut EventMgr<'_>, event: Event) -> Response
Handle an event sent to this widget Read more
sourcefn steal_event(
    &mut self,
    mgr: &mut EventMgr<'_>,
    id: &WidgetId,
    event: &Event
) -> Response
 
fn steal_event(
    &mut self,
    mgr: &mut EventMgr<'_>,
    id: &WidgetId,
    event: &Event
) -> Response
Potentially steal an event before it reaches a child Read more
sourcefn handle_unused(
    &mut self,
    mgr: &mut EventMgr<'_>,
    index: usize,
    event: Event
) -> Response
 
fn handle_unused(
    &mut self,
    mgr: &mut EventMgr<'_>,
    index: usize,
    event: Event
) -> Response
Handle an event sent to child index but left unhandled Read more
sourcefn handle_scroll(&mut self, mgr: &mut EventMgr<'_>, scroll: Scroll)
 
fn handle_scroll(&mut self, mgr: &mut EventMgr<'_>, scroll: Scroll)
Handler for scrolling Read more
sourceimpl<W: Widget> WidgetChildren for TabStack<W>
 
impl<W: Widget> WidgetChildren for TabStack<W>
sourcefn num_children(&self) -> usize
 
fn num_children(&self) -> usize
Get the number of child widgets Read more
sourcefn get_child(&self, _index: usize) -> Option<&dyn Widget>
 
fn get_child(&self, _index: usize) -> Option<&dyn Widget>
Get a reference to a child widget by index, or None if the index is
out of bounds. Read more
sourcefn get_child_mut(&mut self, _index: usize) -> Option<&mut dyn Widget>
 
fn get_child_mut(&mut self, _index: usize) -> Option<&mut dyn Widget>
Mutable variant of get Read more
sourcefn find_child_index(&self, id: &WidgetId) -> Option<usize>
 
fn find_child_index(&self, id: &WidgetId) -> Option<usize>
Find the child which is an ancestor of this id, if any Read more
sourcefn make_child_id(&mut self, index: usize) -> WidgetId
 
fn make_child_id(&mut self, index: usize) -> WidgetId
Make an identifier for a child Read more
sourceimpl<W: Widget> WidgetCore for TabStack<W>
 
impl<W: Widget> WidgetCore for TabStack<W>
sourcefn widget_name(&self) -> &'static str
 
fn widget_name(&self) -> &'static str
Get the name of the widget struct
sourcefn as_widget_mut(&mut self) -> &mut dyn Widget
 
fn as_widget_mut(&mut self) -> &mut dyn Widget
Erase type
Auto Trait Implementations
impl<W> !RefUnwindSafe for TabStack<W>
impl<W> !Send for TabStack<W>
impl<W> !Sync for TabStack<W>
impl<W> Unpin for TabStack<W>where
    W: Unpin,
impl<W> !UnwindSafe for TabStack<W>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<S, T> CastApprox<T> for Swhere
    T: ConvApprox<S>,
impl<S, T> CastApprox<T> for Swhere
    T: ConvApprox<S>,
fn try_cast_approx(self) -> Result<T, Error>
fn try_cast_approx(self) -> Result<T, Error>
Try approximate conversion from Self to T Read more
fn cast_approx(self) -> T
fn cast_approx(self) -> T
Cast approximately from Self to T Read more
impl<S, T> CastFloat<T> for Swhere
    T: ConvFloat<S>,
impl<S, T> CastFloat<T> for Swhere
    T: ConvFloat<S>,
fn cast_trunc(self) -> T
fn cast_trunc(self) -> T
Cast to integer, truncating Read more
fn cast_nearest(self) -> T
fn cast_nearest(self) -> T
Cast to the nearest integer Read more
fn cast_floor(self) -> T
fn cast_floor(self) -> T
Cast the floor to an integer Read more
fn try_cast_trunc(self) -> Result<T, Error>
fn try_cast_trunc(self) -> Result<T, Error>
Try converting to integer with truncation Read more
fn try_cast_nearest(self) -> Result<T, Error>
fn try_cast_nearest(self) -> Result<T, Error>
Try converting to the nearest integer Read more
fn try_cast_floor(self) -> Result<T, Error>
fn try_cast_floor(self) -> Result<T, Error>
Try converting the floor to an integer Read more
fn try_cast_ceil(self) -> Result<T, Error>
fn try_cast_ceil(self) -> Result<T, Error>
Try convert the ceiling to an integer Read more
sourceimpl<W> WidgetExt for Wwhere
    W: Widget + ?Sized,
 
impl<W> WidgetExt for Wwhere
    W: Widget + ?Sized,
sourcefn eq_id<T>(&self, rhs: T) -> boolwhere
    WidgetId: PartialEq<T>,
 
fn eq_id<T>(&self, rhs: T) -> boolwhere
    WidgetId: PartialEq<T>,
Test widget identifier for equality Read more
sourcefn identify(&self) -> IdentifyWidget
 
fn identify(&self) -> IdentifyWidget
Display as “StructName#WidgetId”
sourcefn is_ancestor_of(&self, id: &WidgetId) -> bool
 
fn is_ancestor_of(&self, id: &WidgetId) -> bool
Check whether id is self or a descendant Read more
sourcefn is_strict_ancestor_of(&self, id: &WidgetId) -> bool
 
fn is_strict_ancestor_of(&self, id: &WidgetId) -> bool
Check whether id is not self and is a descendant Read more
sourcefn find_widget(&self, id: &WidgetId) -> Option<&dyn Widget>
 
fn find_widget(&self, id: &WidgetId) -> Option<&dyn Widget>
Find the descendant with this id, if any
sourcefn find_widget_mut(&mut self, id: &WidgetId) -> Option<&mut dyn Widget>
 
fn find_widget_mut(&mut self, id: &WidgetId) -> Option<&mut dyn Widget>
Find the descendant with this id, if any