pub struct LinearLayout {
elements: Vec<Box<dyn Element>>,
render_idx: usize,
}Expand description
Arranges a list of elements sequentially.
Currently, elements can only be arranged vertically.
§Examples
With setters:
use genpdfi_extended::elements;
let mut layout = elements::LinearLayout::vertical();
layout.push(elements::Paragraph::new("Test1"));
layout.push(elements::Paragraph::new("Test2"));Chained:
use genpdfi_extended::elements;
let layout = elements::LinearLayout::vertical()
.element(elements::Paragraph::new("Test1"))
.element(elements::Paragraph::new("Test2"));Fields§
§elements: Vec<Box<dyn Element>>§render_idx: usizeImplementations§
Source§impl LinearLayout
impl LinearLayout
fn new() -> LinearLayout
Sourcepub fn vertical() -> LinearLayout
pub fn vertical() -> LinearLayout
Creates a new linear layout that arranges its elements vertically.
Sourcepub fn push<E: IntoBoxedElement>(&mut self, element: E)
pub fn push<E: IntoBoxedElement>(&mut self, element: E)
Adds the given element to this layout.
Sourcepub fn element<E: IntoBoxedElement>(self, element: E) -> Self
pub fn element<E: IntoBoxedElement>(self, element: E) -> Self
Adds the given element to this layout and it returns the layout.
fn render_vertical( &mut self, context: &Context, area: Area<'_>, style: Style, ) -> Result<RenderResult, Error>
Trait Implementations§
Source§impl Element for LinearLayout
impl Element for LinearLayout
Source§fn render(
&mut self,
context: &Context,
area: Area<'_>,
style: Style,
) -> Result<RenderResult, Error>
fn render( &mut self, context: &Context, area: Area<'_>, style: Style, ) -> Result<RenderResult, Error>
Renders this element to the given area using the given style and font cache. Read more
Source§fn framed(self, line_style: impl Into<LineStyle>) -> FramedElement<Self>where
Self: Sized,
fn framed(self, line_style: impl Into<LineStyle>) -> FramedElement<Self>where
Self: Sized,
Draws a frame around this element using the given line style.
Source§impl<E: IntoBoxedElement> Extend<E> for LinearLayout
impl<E: IntoBoxedElement> Extend<E> for LinearLayout
Source§fn extend<I: IntoIterator<Item = E>>(&mut self, iter: I)
fn extend<I: IntoIterator<Item = E>>(&mut self, iter: I)
Extends a collection with the contents of an iterator. Read more
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
🔬This is a nightly-only experimental API. (
extend_one)Extends a collection with exactly one element.
Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
🔬This is a nightly-only experimental API. (
extend_one)Reserves capacity in a collection for the given number of additional elements. Read more
Auto Trait Implementations§
impl Freeze for LinearLayout
impl !RefUnwindSafe for LinearLayout
impl !Send for LinearLayout
impl !Sync for LinearLayout
impl Unpin for LinearLayout
impl !UnwindSafe for LinearLayout
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<E> IntoBoxedElement for Ewhere
E: Element + 'static,
impl<E> IntoBoxedElement for Ewhere
E: Element + 'static,
Source§fn into_boxed_element(self) -> Box<dyn Element>
fn into_boxed_element(self) -> Box<dyn Element>
Creates a boxed element from this element.
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>
Converts
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>
Converts
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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
§fn to_owned_obj(&self, data: FontData<'_>) -> U
fn to_owned_obj(&self, data: FontData<'_>) -> U
Convert this type into
T, using the provided data to resolve any offsets.