pub trait SelectionModelExt: 'static {
// Required methods
fn selection(&self) -> Bitset;
fn selection_in_range(&self, position: u32, n_items: u32) -> Bitset;
fn is_selected(&self, position: u32) -> bool;
fn select_all(&self) -> bool;
fn select_item(&self, position: u32, unselect_rest: bool) -> bool;
fn select_range(
&self,
position: u32,
n_items: u32,
unselect_rest: bool
) -> bool;
fn selection_changed(&self, position: u32, n_items: u32);
fn set_selection(&self, selected: &Bitset, mask: &Bitset) -> bool;
fn unselect_all(&self) -> bool;
fn unselect_item(&self, position: u32) -> bool;
fn unselect_range(&self, position: u32, n_items: u32) -> bool;
fn connect_selection_changed<F: Fn(&Self, u32, u32) + 'static>(
&self,
f: F
) -> SignalHandlerId;
}