pub struct RawLabel<T> { /* private fields */ }Expand description
A widget that displays text data.
This requires the Data to implement TextStorage; to handle static, dynamic, or
localized text, use Label.
Implementations§
Source§impl<T: TextStorage> RawLabel<T>
impl<T: TextStorage> RawLabel<T>
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new RawLabel.
Examples found in repository?
115fn build_root_widget() -> impl Widget<AppState> {
116 let label = Scroll::new(
117 RawLabel::new()
118 .with_text_color(Color::BLACK)
119 .with_line_break_mode(LineBreaking::WordWrap)
120 .lens(AppState::rendered)
121 .expand_width()
122 .padding((SPACER_SIZE * 4.0, SPACER_SIZE)),
123 )
124 .vertical()
125 .background(Color::grey8(222))
126 .expand();
127
128 let textbox = TextBox::multiline()
129 .lens(AppState::raw)
130 .controller(RichTextRebuilder)
131 .expand()
132 .padding(5.0);
133
134 Split::columns(label, textbox)
135}More examples
111fn build_root_widget() -> impl Widget<AppState> {
112 let label = Scroll::new(
113 RawLabel::new()
114 .with_text_color(Color::BLACK)
115 .controller(LabelController)
116 .background(Color::WHITE)
117 .expand_width()
118 .padding((SPACER_SIZE * 4.0, SPACER_SIZE))
119 .background(Color::grey8(222)),
120 )
121 .vertical();
122
123 let line_break_chooser = Flex::column()
124 .with_child(Label::new("Line break mode"))
125 .with_spacer(SPACER_SIZE)
126 .with_child(RadioGroup::column(vec![
127 ("Clip", LineBreaking::Clip),
128 ("Wrap", LineBreaking::WordWrap),
129 ("Overflow", LineBreaking::Overflow),
130 ]))
131 .lens(AppState::line_break_mode);
132
133 let alignment_picker = Flex::column()
134 .with_child(Label::new("Justification"))
135 .with_spacer(SPACER_SIZE)
136 .with_child(RadioGroup::column(vec![
137 ("Start", TextAlignment::Start),
138 ("End", TextAlignment::End),
139 ("Center", TextAlignment::Center),
140 ("Justified", TextAlignment::Justified),
141 ]))
142 .lens(AppState::alignment);
143
144 let controls = Flex::row()
145 .cross_axis_alignment(druid::widget::CrossAxisAlignment::Start)
146 .with_child(alignment_picker)
147 .with_spacer(SPACER_SIZE)
148 .with_child(line_break_chooser)
149 .padding(SPACER_SIZE);
150
151 Flex::column()
152 .cross_axis_alignment(druid::widget::CrossAxisAlignment::Start)
153 .with_child(controls)
154 .with_flex_child(label, 1.0)
155}Sourcepub fn with_text_color(self, color: impl Into<KeyOrValue<Color>>) -> Self
pub fn with_text_color(self, color: impl Into<KeyOrValue<Color>>) -> Self
Builder-style method for setting the text color.
The argument can be either a Color or a Key<Color>.
Examples found in repository?
115fn build_root_widget() -> impl Widget<AppState> {
116 let label = Scroll::new(
117 RawLabel::new()
118 .with_text_color(Color::BLACK)
119 .with_line_break_mode(LineBreaking::WordWrap)
120 .lens(AppState::rendered)
121 .expand_width()
122 .padding((SPACER_SIZE * 4.0, SPACER_SIZE)),
123 )
124 .vertical()
125 .background(Color::grey8(222))
126 .expand();
127
128 let textbox = TextBox::multiline()
129 .lens(AppState::raw)
130 .controller(RichTextRebuilder)
131 .expand()
132 .padding(5.0);
133
134 Split::columns(label, textbox)
135}More examples
111fn build_root_widget() -> impl Widget<AppState> {
112 let label = Scroll::new(
113 RawLabel::new()
114 .with_text_color(Color::BLACK)
115 .controller(LabelController)
116 .background(Color::WHITE)
117 .expand_width()
118 .padding((SPACER_SIZE * 4.0, SPACER_SIZE))
119 .background(Color::grey8(222)),
120 )
121 .vertical();
122
123 let line_break_chooser = Flex::column()
124 .with_child(Label::new("Line break mode"))
125 .with_spacer(SPACER_SIZE)
126 .with_child(RadioGroup::column(vec![
127 ("Clip", LineBreaking::Clip),
128 ("Wrap", LineBreaking::WordWrap),
129 ("Overflow", LineBreaking::Overflow),
130 ]))
131 .lens(AppState::line_break_mode);
132
133 let alignment_picker = Flex::column()
134 .with_child(Label::new("Justification"))
135 .with_spacer(SPACER_SIZE)
136 .with_child(RadioGroup::column(vec![
137 ("Start", TextAlignment::Start),
138 ("End", TextAlignment::End),
139 ("Center", TextAlignment::Center),
140 ("Justified", TextAlignment::Justified),
141 ]))
142 .lens(AppState::alignment);
143
144 let controls = Flex::row()
145 .cross_axis_alignment(druid::widget::CrossAxisAlignment::Start)
146 .with_child(alignment_picker)
147 .with_spacer(SPACER_SIZE)
148 .with_child(line_break_chooser)
149 .padding(SPACER_SIZE);
150
151 Flex::column()
152 .cross_axis_alignment(druid::widget::CrossAxisAlignment::Start)
153 .with_child(controls)
154 .with_flex_child(label, 1.0)
155}Sourcepub fn with_text_size(self, size: impl Into<KeyOrValue<f64>>) -> Self
pub fn with_text_size(self, size: impl Into<KeyOrValue<f64>>) -> Self
Builder-style method for setting the text size.
The argument can be either an f64 or a Key<f64>.
Sourcepub fn with_font(self, font: impl Into<KeyOrValue<FontDescriptor>>) -> Self
pub fn with_font(self, font: impl Into<KeyOrValue<FontDescriptor>>) -> Self
Builder-style method for setting the font.
The argument can be a FontDescriptor or a Key<FontDescriptor>
that refers to a font defined in the Env.
Sourcepub fn with_line_break_mode(self, mode: LineBreaking) -> Self
pub fn with_line_break_mode(self, mode: LineBreaking) -> Self
Builder-style method to set the LineBreaking behaviour.
Examples found in repository?
115fn build_root_widget() -> impl Widget<AppState> {
116 let label = Scroll::new(
117 RawLabel::new()
118 .with_text_color(Color::BLACK)
119 .with_line_break_mode(LineBreaking::WordWrap)
120 .lens(AppState::rendered)
121 .expand_width()
122 .padding((SPACER_SIZE * 4.0, SPACER_SIZE)),
123 )
124 .vertical()
125 .background(Color::grey8(222))
126 .expand();
127
128 let textbox = TextBox::multiline()
129 .lens(AppState::raw)
130 .controller(RichTextRebuilder)
131 .expand()
132 .padding(5.0);
133
134 Split::columns(label, textbox)
135}Sourcepub fn with_text_alignment(self, alignment: TextAlignment) -> Self
pub fn with_text_alignment(self, alignment: TextAlignment) -> Self
Builder-style method to set the TextAlignment.
Sourcepub fn set_text_color(&mut self, color: impl Into<KeyOrValue<Color>>)
pub fn set_text_color(&mut self, color: impl Into<KeyOrValue<Color>>)
Set the text color.
The argument can be either a Color or a Key<Color>.
If you change this property, you are responsible for calling
request_layout to ensure the label is updated.
Sourcepub fn set_text_size(&mut self, size: impl Into<KeyOrValue<f64>>)
pub fn set_text_size(&mut self, size: impl Into<KeyOrValue<f64>>)
Set the text size.
The argument can be either an f64 or a Key<f64>.
If you change this property, you are responsible for calling
request_layout to ensure the label is updated.
Sourcepub fn set_font(&mut self, font: impl Into<KeyOrValue<FontDescriptor>>)
pub fn set_font(&mut self, font: impl Into<KeyOrValue<FontDescriptor>>)
Set the font.
The argument can be a FontDescriptor or a Key<FontDescriptor>
that refers to a font defined in the Env.
If you change this property, you are responsible for calling
request_layout to ensure the label is updated.
Sourcepub fn set_line_break_mode(&mut self, mode: LineBreaking)
pub fn set_line_break_mode(&mut self, mode: LineBreaking)
Set the LineBreaking behaviour.
If you change this property, you are responsible for calling
request_layout to ensure the label is updated.
Examples found in repository?
63 fn update(
64 &mut self,
65 child: &mut RawLabel<AppState>,
66 ctx: &mut UpdateCtx,
67 old_data: &AppState,
68 data: &AppState,
69 env: &Env,
70 ) {
71 if old_data.line_break_mode != data.line_break_mode {
72 child.set_line_break_mode(data.line_break_mode);
73 ctx.request_layout();
74 }
75 if old_data.alignment != data.alignment {
76 child.set_text_alignment(data.alignment);
77 ctx.request_layout();
78 }
79 child.update(ctx, old_data, data, env);
80 }Sourcepub fn set_text_alignment(&mut self, alignment: TextAlignment)
pub fn set_text_alignment(&mut self, alignment: TextAlignment)
Set the TextAlignment for this layout.
Examples found in repository?
63 fn update(
64 &mut self,
65 child: &mut RawLabel<AppState>,
66 ctx: &mut UpdateCtx,
67 old_data: &AppState,
68 data: &AppState,
69 env: &Env,
70 ) {
71 if old_data.line_break_mode != data.line_break_mode {
72 child.set_line_break_mode(data.line_break_mode);
73 ctx.request_layout();
74 }
75 if old_data.alignment != data.alignment {
76 child.set_text_alignment(data.alignment);
77 ctx.request_layout();
78 }
79 child.update(ctx, old_data, data, env);
80 }Sourcepub fn draw_at(&self, ctx: &mut PaintCtx<'_, '_, '_>, origin: impl Into<Point>)
pub fn draw_at(&self, ctx: &mut PaintCtx<'_, '_, '_>, origin: impl Into<Point>)
Draw this label’s text at the provided Point, without internal padding.
This is a convenience for widgets that want to use Label as a way of managing a dynamic or localized string, but want finer control over where the text is drawn.
Sourcepub fn baseline_offset(&self) -> f64
pub fn baseline_offset(&self) -> f64
Return the offset of the first baseline relative to the bottom of the widget.
Trait Implementations§
Source§impl<T: TextStorage> Default for RawLabel<T>
impl<T: TextStorage> Default for RawLabel<T>
Source§impl<T: TextStorage> Widget<T> for RawLabel<T>
impl<T: TextStorage> Widget<T> for RawLabel<T>
Source§fn event(
&mut self,
ctx: &mut EventCtx<'_, '_>,
event: &Event,
_data: &mut T,
_env: &Env,
)
fn event( &mut self, ctx: &mut EventCtx<'_, '_>, event: &Event, _data: &mut T, _env: &Env, )
Source§fn lifecycle(
&mut self,
ctx: &mut LifeCycleCtx<'_, '_>,
event: &LifeCycle,
data: &T,
_env: &Env,
)
fn lifecycle( &mut self, ctx: &mut LifeCycleCtx<'_, '_>, event: &LifeCycle, data: &T, _env: &Env, )
Source§fn layout(
&mut self,
ctx: &mut LayoutCtx<'_, '_>,
bc: &BoxConstraints,
_data: &T,
env: &Env,
) -> Size
fn layout( &mut self, ctx: &mut LayoutCtx<'_, '_>, bc: &BoxConstraints, _data: &T, env: &Env, ) -> Size
Source§fn paint(&mut self, ctx: &mut PaintCtx<'_, '_, '_>, _data: &T, _env: &Env)
fn paint(&mut self, ctx: &mut PaintCtx<'_, '_, '_>, _data: &T, _env: &Env)
Source§fn compute_max_intrinsic(
&mut self,
axis: Axis,
ctx: &mut LayoutCtx<'_, '_>,
bc: &BoxConstraints,
data: &T,
env: &Env,
) -> f64
fn compute_max_intrinsic( &mut self, axis: Axis, ctx: &mut LayoutCtx<'_, '_>, bc: &BoxConstraints, data: &T, env: &Env, ) -> f64
Auto Trait Implementations§
impl<T> !Freeze for RawLabel<T>
impl<T> !RefUnwindSafe for RawLabel<T>
impl<T> !Send for RawLabel<T>
impl<T> !Sync for RawLabel<T>
impl<T> Unpin for RawLabel<T>where
T: Unpin,
impl<T> !UnwindSafe for RawLabel<T>
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
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, U> RoundInto<U> for Twhere
U: RoundFrom<T>,
impl<T, U> RoundInto<U> for Twhere
U: RoundFrom<T>,
Source§fn round_into(self) -> U
fn round_into(self) -> U
Source§impl<T, W> TestWidgetExt<T> for W
impl<T, W> TestWidgetExt<T> for W
Source§impl<T, W> WidgetExt<T> for W
impl<T, W> WidgetExt<T> for W
Source§fn align_left(self) -> Align<T>
fn align_left(self) -> Align<T>
Align widget, configured to align left.Source§fn align_right(self) -> Align<T>
fn align_right(self) -> Align<T>
Align widget, configured to align right.Source§fn align_vertical(self, align: UnitPoint) -> Align<T>
fn align_vertical(self, align: UnitPoint) -> Align<T>
Align widget, configured to align vertically.Source§fn align_horizontal(self, align: UnitPoint) -> Align<T>
fn align_horizontal(self, align: UnitPoint) -> Align<T>
Align widget, configured to align horizontally.Source§fn fix_width(self, width: impl Into<KeyOrValue<f64>>) -> SizedBox<T>
fn fix_width(self, width: impl Into<KeyOrValue<f64>>) -> SizedBox<T>
SizedBox with an explicit width.Source§fn fix_height(self, height: impl Into<KeyOrValue<f64>>) -> SizedBox<T>
fn fix_height(self, height: impl Into<KeyOrValue<f64>>) -> SizedBox<T>
SizedBox with an explicit height.Source§fn fix_size(
self,
width: impl Into<KeyOrValue<f64>>,
height: impl Into<KeyOrValue<f64>>,
) -> SizedBox<T>
fn fix_size( self, width: impl Into<KeyOrValue<f64>>, height: impl Into<KeyOrValue<f64>>, ) -> SizedBox<T>
SizedBox with an explicit width and heightSource§fn expand_width(self) -> SizedBox<T>
fn expand_width(self) -> SizedBox<T>
Source§fn expand_height(self) -> SizedBox<T>
fn expand_height(self) -> SizedBox<T>
Source§fn background(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>
fn background(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>
Source§fn foreground(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>
fn foreground(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>
Source§fn border(
self,
color: impl Into<KeyOrValue<Color>>,
width: impl Into<KeyOrValue<f64>>,
) -> Container<T>
fn border( self, color: impl Into<KeyOrValue<Color>>, width: impl Into<KeyOrValue<f64>>, ) -> Container<T>
Source§fn controller<C: Controller<T, Self>>(
self,
controller: C,
) -> ControllerHost<Self, C>
fn controller<C: Controller<T, Self>>( self, controller: C, ) -> ControllerHost<Self, C>
Controller.Source§fn on_added(
self,
f: impl Fn(&mut Self, &mut LifeCycleCtx<'_, '_>, &T, &Env) + 'static,
) -> ControllerHost<Self, Added<T, Self>>
fn on_added( self, f: impl Fn(&mut Self, &mut LifeCycleCtx<'_, '_>, &T, &Env) + 'static, ) -> ControllerHost<Self, Added<T, Self>>
Source§fn on_click(
self,
f: impl Fn(&mut EventCtx<'_, '_>, &mut T, &Env) + 'static,
) -> ControllerHost<Self, Click<T>>
fn on_click( self, f: impl Fn(&mut EventCtx<'_, '_>, &mut T, &Env) + 'static, ) -> ControllerHost<Self, Click<T>>
Source§fn debug_paint_layout(self) -> EnvScope<T, Self>
fn debug_paint_layout(self) -> EnvScope<T, Self>
layout Rects of this widget and its children.Source§fn debug_widget_id(self) -> EnvScope<T, Self>
fn debug_widget_id(self) -> EnvScope<T, Self>
WidgetIds for this widget and its children, when hot. Read moreSource§fn debug_invalidation(self) -> DebugInvalidation<T, Self>
fn debug_invalidation(self) -> DebugInvalidation<T, Self>
Source§fn debug_widget(self) -> EnvScope<T, Self>
fn debug_widget(self) -> EnvScope<T, Self>
DEBUG_WIDGET env variable for this widget (and its descendants). Read moreSource§fn with_id(self, id: WidgetId) -> IdentityWrapper<Self>
fn with_id(self, id: WidgetId) -> IdentityWrapper<Self>
Source§fn disabled_if(
self,
disabled_if: impl Fn(&T, &Env) -> bool + 'static,
) -> DisabledIf<T, Self>
fn disabled_if( self, disabled_if: impl Fn(&T, &Env) -> bool + 'static, ) -> DisabledIf<T, Self>
DisabledIf widget. Read more