ferroui_base/media/
text_path_segment_trimming.rs1use std::fmt;
2use std::rc::Rc;
3
4use crate::media::text_formatting::TextCollapsingProperties;
5use crate::media::{TextCollapsingCreateInfo, TextPathSegmentEllipsis, TextTrimming};
6
7pub struct TextPathSegmentTrimming {
10 ellipsis: String,
11}
12
13impl TextPathSegmentTrimming {
14 pub fn new(ellipsis: &str) -> Self {
16 Self { ellipsis: ellipsis.to_owned() }
17 }
18}
19
20impl TextTrimming for TextPathSegmentTrimming {
21 fn create_collapsing_properties(&self, create_info: &TextCollapsingCreateInfo) -> Rc<dyn TextCollapsingProperties> {
22 Rc::new(TextPathSegmentEllipsis::new(
23 &self.ellipsis,
24 create_info.width,
25 create_info.text_run_properties.clone(),
26 create_info.flow_direction,
27 ))
28 }
29}
30
31impl fmt::Display for TextPathSegmentTrimming {
32 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
33 f.write_str("PathSegmentEllipsis")
34 }
35}