Aria 2.0.0
C++23 MVVM framework (C++20 minimum) — reactive, coroutine-first, ABI-layered
Loading...
Searching...
No Matches
aria::MultiSelection< T > Class Template Reference

#include <selection.hpp>

Public Types

using value_type = T
using handle = std::shared_ptr<T>

Public Member Functions

 MultiSelection ()=default
 ~MultiSelection ()
 MultiSelection (const MultiSelection &)=delete
MultiSelectionoperator= (const MultiSelection &)=delete
 MultiSelection (MultiSelection &&)=delete
MultiSelectionoperator= (MultiSelection &&)=delete
reactive::Property< std::vector< handle > > & selected () noexcept
 Reactive snapshot of selected handles, in pick order.
const reactive::Property< std::vector< handle > > & selected () const noexcept
std::vector< handlevalues () const
std::size_t size () const
bool empty () const
bool is_selected (const handle &item) const
void add (handle item)
 Add item to the selection (appended at the end of pick order).
void remove (const handle &item)
 Remove item from the selection. No-op if not selected.
void toggle (handle item)
 Toggle membership.
void clear ()
void bind_to (ObservableList< T > &source)
 Keep selected handles that survive each replayed Remove/Replace/Reset.
void unbind () noexcept

Member Typedef Documentation

◆ value_type

template<typename T>
using aria::MultiSelection< T >::value_type = T

◆ handle

template<typename T>
using aria::MultiSelection< T >::handle = std::shared_ptr<T>

Constructor & Destructor Documentation

◆ MultiSelection() [1/3]

template<typename T>
aria::MultiSelection< T >::MultiSelection ( )
default

◆ ~MultiSelection()

template<typename T>
aria::MultiSelection< T >::~MultiSelection ( )
inline

◆ MultiSelection() [2/3]

template<typename T>
aria::MultiSelection< T >::MultiSelection ( const MultiSelection< T > & )
delete

◆ MultiSelection() [3/3]

template<typename T>
aria::MultiSelection< T >::MultiSelection ( MultiSelection< T > && )
delete

Member Function Documentation

◆ operator=() [1/2]

template<typename T>
MultiSelection & aria::MultiSelection< T >::operator= ( const MultiSelection< T > & )
delete

◆ operator=() [2/2]

template<typename T>
MultiSelection & aria::MultiSelection< T >::operator= ( MultiSelection< T > && )
delete

◆ selected() [1/2]

template<typename T>
reactive::Property< std::vector< handle > > & aria::MultiSelection< T >::selected ( )
inlinenodiscardnoexcept

Reactive snapshot of selected handles, in pick order.

The Property is replaced wholesale on every change so observers always get a coherent vector.

◆ selected() [2/2]

template<typename T>
const reactive::Property< std::vector< handle > > & aria::MultiSelection< T >::selected ( ) const
inlinenodiscardnoexcept

◆ values()

template<typename T>
std::vector< handle > aria::MultiSelection< T >::values ( ) const
inlinenodiscard

◆ size()

template<typename T>
std::size_t aria::MultiSelection< T >::size ( ) const
inlinenodiscard

◆ empty()

template<typename T>
bool aria::MultiSelection< T >::empty ( ) const
inlinenodiscard

◆ is_selected()

template<typename T>
bool aria::MultiSelection< T >::is_selected ( const handle & item) const
inlinenodiscard

◆ add()

template<typename T>
void aria::MultiSelection< T >::add ( handle item)
inline

Add item to the selection (appended at the end of pick order).

No-op if already selected or null.

◆ remove()

template<typename T>
void aria::MultiSelection< T >::remove ( const handle & item)
inline

Remove item from the selection. No-op if not selected.

◆ toggle()

template<typename T>
void aria::MultiSelection< T >::toggle ( handle item)
inline

Toggle membership.

◆ clear()

template<typename T>
void aria::MultiSelection< T >::clear ( )
inline

◆ bind_to()

template<typename T>
void aria::MultiSelection< T >::bind_to ( ObservableList< T > & source)
inline

Keep selected handles that survive each replayed Remove/Replace/Reset.

Source destruction is safe. See Selection::bind_to for setup threading.

◆ unbind()

template<typename T>
void aria::MultiSelection< T >::unbind ( )
inlinenoexcept

The documentation for this class was generated from the following file: