pub struct LabelSelectionState {
selection: Option<CurrentSelection>,
selection_bbox_last_frame: Rect,
selection_bbox_this_frame: Rect,
any_hovered: bool,
is_dragging: bool,
has_reached_primary: bool,
has_reached_secondary: bool,
text_to_copy: String,
last_copied_galley_rect: Option<Rect>,
painted_selections: Vec<(ShapeIdx, Vec<RowVertexIndices>)>,
}
Expand description
Handles text selection in labels (NOT in crate::TextEdit
)s.
One state for all labels, because we only support text selection in one label at a time.
Fields§
§selection: Option<CurrentSelection>
The current selection, if any.
selection_bbox_last_frame: Rect
§selection_bbox_this_frame: Rect
§any_hovered: bool
Any label hovered this frame?
is_dragging: bool
Are we in drag-to-select state?
has_reached_primary: bool
Have we reached the widget containing the primary selection?
has_reached_secondary: bool
Have we reached the widget containing the secondary selection?
text_to_copy: String
Accumulated text to copy.
last_copied_galley_rect: Option<Rect>
§painted_selections: Vec<(ShapeIdx, Vec<RowVertexIndices>)>
Painted selections this frame.
Kept so we can undo a bad selection visualization if we don’t see both ends of the selection this frame.
Implementations§
source§impl LabelSelectionState
impl LabelSelectionState
pub(crate) fn register(ctx: &Context)
pub fn load(ctx: &Context) -> Self
pub fn store(self, ctx: &Context)
fn begin_pass(ctx: &Context)
fn end_pass(ctx: &Context)
pub fn has_selection(&self) -> bool
pub fn clear_selection(&mut self)
fn copy_text( &mut self, galley_pos: Pos2, galley: &Galley, cursor_range: &CursorRange, )
sourcepub fn label_text_selection(
ui: &Ui,
response: &Response,
galley_pos: Pos2,
galley: Arc<Galley>,
fallback_color: Color32,
underline: Stroke,
)
pub fn label_text_selection( ui: &Ui, response: &Response, galley_pos: Pos2, galley: Arc<Galley>, fallback_color: Color32, underline: Stroke, )
Handle text selection state for a label or similar widget.
Make sure the widget senses clicks and drags.
This also takes care of painting the galley.
fn cursor_for( &mut self, ui: &Ui, response: &Response, galley_pos: Pos2, galley: &Galley, ) -> TextCursorState
Trait Implementations§
source§impl Clone for LabelSelectionState
impl Clone for LabelSelectionState
source§fn clone(&self) -> LabelSelectionState
fn clone(&self) -> LabelSelectionState
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for LabelSelectionState
impl Debug for LabelSelectionState
Auto Trait Implementations§
impl Freeze for LabelSelectionState
impl RefUnwindSafe for LabelSelectionState
impl Send for LabelSelectionState
impl Sync for LabelSelectionState
impl Unpin for LabelSelectionState
impl UnwindSafe for LabelSelectionState
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
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)