pub struct LayoutJob {
pub text: String,
pub sections: Vec<LayoutSection, Global>,
pub wrap: TextWrapping,
pub first_row_min_height: f32,
pub break_on_newline: bool,
pub halign: Align,
pub justify: bool,
}
Expand description
Describes the task of laying out text.
This supports mixing different fonts, color and formats (underline etc).
Pass this to crate::Fonts::layout_job
or crate::text::layout
.
Example:
use epaint::{Color32, text::{LayoutJob, TextFormat}, FontFamily, FontId};
let mut job = LayoutJob::default();
job.append(
"Hello ",
0.0,
TextFormat {
font_id: FontId::new(14.0, FontFamily::Proportional),
color: Color32::WHITE,
..Default::default()
},
);
job.append(
"World!",
0.0,
TextFormat {
font_id: FontId::new(14.0, FontFamily::Monospace),
color: Color32::BLACK,
..Default::default()
},
);
As you can see, constructing a LayoutJob
is currently a lot of work.
It would be nice to have a helper macro for it!
Fields
text: String
The complete text of this job, referenced by LayoutSection
.
sections: Vec<LayoutSection, Global>
The different section, which can have different fonts, colors, etc.
wrap: TextWrapping
first_row_min_height: f32
The first row must be at least this high.
This is in case we lay out text that is the continuation
of some earlier text (sharing the same row),
in which case this will be the height of the earlier text.
In other cases, set this to 0.0
.
break_on_newline: bool
If false
, all newlines characters will be ignored
and show up as the replacement character.
Default: true
.
halign: Align
How to horizontally align the text (Align::LEFT
, Align::Center
, Align::RIGHT
).
justify: bool
Justify text so that word-wrapped rows fill the whole TextWrapping::max_width
Implementations
sourceimpl LayoutJob
impl LayoutJob
sourcepub fn simple(
text: String,
font_id: FontId,
color: Color32,
wrap_width: f32
) -> LayoutJob
pub fn simple(
text: String,
font_id: FontId,
color: Color32,
wrap_width: f32
) -> LayoutJob
Break on \n
and at the given wrap width.
sourcepub fn simple_singleline(
text: String,
font_id: FontId,
color: Color32
) -> LayoutJob
pub fn simple_singleline(
text: String,
font_id: FontId,
color: Color32
) -> LayoutJob
Does not break on \n
, but shows the replacement character instead.
pub fn single_section(text: String, format: TextFormat) -> LayoutJob
pub fn is_empty(&self) -> bool
sourcepub fn append(&mut self, text: &str, leading_space: f32, format: TextFormat)
pub fn append(&mut self, text: &str, leading_space: f32, format: TextFormat)
Helper for adding a new section when building a LayoutJob
.
sourcepub fn font_height(&self, fonts: &Fonts) -> f32
pub fn font_height(&self, fonts: &Fonts) -> f32
The height of the tallest used font in the job.
Trait Implementations
sourceimpl<'de> Deserialize<'de> for LayoutJob
impl<'de> Deserialize<'de> for LayoutJob
sourcefn deserialize<__D>(
__deserializer: __D
) -> Result<LayoutJob, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<LayoutJob, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl From<LayoutJob> for WidgetText
impl From<LayoutJob> for WidgetText
sourceimpl Serialize for LayoutJob
impl Serialize for LayoutJob
sourcefn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl StructuralPartialEq for LayoutJob
Auto Trait Implementations
impl RefUnwindSafe for LayoutJob
impl Send for LayoutJob
impl Sync for LayoutJob
impl Unpin for LayoutJob
impl UnwindSafe for LayoutJob
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> CallHasher for T where
T: Hash + ?Sized,
impl<T> CallHasher for T where
T: Hash + ?Sized,
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more