pub struct FlowModel<'a> { /* private fields */ }Expand description
The paragraphs under a root in a content tree, for one frame’s editing.
Implementations§
Source§impl<'a> FlowModel<'a>
impl<'a> FlowModel<'a>
Sourcepub fn new(
content: &'a mut Element,
styles: &'a mut Styles,
root: Vec<usize>,
editing: &'a mut Editing,
) -> Self
pub fn new( content: &'a mut Element, styles: &'a mut Styles, root: Vec<usize>, editing: &'a mut Editing, ) -> Self
The paragraphs under the element at a path in a content tree, whose
document’s styles are styles.
Sourcepub fn tagged(self, tag: Vec<usize>) -> Self
pub fn tagged(self, tag: Vec<usize>) -> Self
Have the caret an undo step remembers begin with these indices, which the view takes off again when it is asked to put the caret back.
Sourcepub fn within(self, scope: Vec<usize>) -> Self
pub fn within(self, scope: Vec<usize>) -> Self
Keep to the paragraphs under one element beneath the root, so that moving and joining never leave it: a slide’s label does not run on into the next shape.
Sourcepub fn is_block(&self, selection: &Selection<Vec<usize>>, block: Block) -> bool
pub fn is_block(&self, selection: &Selection<Vec<usize>>, block: Block) -> bool
Whether a block is what every paragraph a selection runs over already is, which is when its button is lit and pressing it takes it off.
Sourcepub fn apply_block(&mut self, editor: &mut PageEditor, block: Block) -> bool
pub fn apply_block(&mut self, editor: &mut PageEditor, block: Block) -> bool
Make the paragraphs a selection runs over a kind of paragraph, or take them out of it where they already are one, as one step to undo, and put the selection back over the same paragraphs. Answers whether the document changed.
Trait Implementations§
Source§impl Model for FlowModel<'_>
impl Model for FlowModel<'_>
Source§type Paragraph = Vec<usize>
type Paragraph = Vec<usize>
Source§fn text(&self, paragraph: &Vec<usize>) -> Option<String>
fn text(&self, paragraph: &Vec<usize>) -> Option<String>
'\n' and a tab as '\t'.
None when the model has no such paragraph.Source§fn next(&self, paragraph: &Vec<usize>) -> Option<Vec<usize>>
fn next(&self, paragraph: &Vec<usize>) -> Option<Vec<usize>>
Source§fn previous(&self, paragraph: &Vec<usize>) -> Option<Vec<usize>>
fn previous(&self, paragraph: &Vec<usize>) -> Option<Vec<usize>>
Source§fn marked(
&self,
from: &Position<Vec<usize>>,
to: &Position<Vec<usize>>,
mark: Mark,
) -> Option<bool>
fn marked( &self, from: &Position<Vec<usize>>, to: &Position<Vec<usize>>, mark: Mark, ) -> Option<bool>
Some
when all of it says the same, None when it differs. Two positions
that are the same answer for the text typed there would take its
formatting from. A model that keeps no formatting leaves this as it
is, which says nothing is marked, and refuses Edit::Format.Source§fn apply(
&mut self,
edit: Edit<'_, Vec<usize>>,
new_step: bool,
) -> Option<Position<Vec<usize>>>
fn apply( &mut self, edit: Edit<'_, Vec<usize>>, new_step: bool, ) -> Option<Position<Vec<usize>>>
None refuses the edit and
leaves the document as it was. Read moreAuto Trait Implementations§
impl<'a> !Freeze for FlowModel<'a>
impl<'a> !RefUnwindSafe for FlowModel<'a>
impl<'a> !Send for FlowModel<'a>
impl<'a> !Sync for FlowModel<'a>
impl<'a> !UnwindSafe for FlowModel<'a>
impl<'a> Unpin for FlowModel<'a>
impl<'a> UnsafeUnpin for FlowModel<'a>
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.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> 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 more