ppt_rs/generator/slide_content/
transition.rs1use crate::core::ToXml;
4
5#[derive(Clone, Debug, Copy, PartialEq, Eq, Default)]
7pub enum TransitionType {
8 #[default]
9 None,
10 Fade,
11 Cut,
12 Push,
13 Wipe,
14 Split,
15 Reveal,
16 Cover,
17 Zoom,
18}
19
20impl TransitionType {
21 pub fn to_xml(&self) -> String {
23 match self {
24 TransitionType::None => String::new(),
25 TransitionType::Cut => String::new(), TransitionType::Fade => r#"<p:transition><p:fade/></p:transition>"#.to_string(),
27 TransitionType::Push => r#"<p:transition><p:push dir="r"/></p:transition>"#.to_string(), TransitionType::Wipe => r#"<p:transition><p:wipe dir="r"/></p:transition>"#.to_string(), TransitionType::Split => r#"<p:transition><p:split dir="out" orient="horz"/></p:transition>"#.to_string(),
30 TransitionType::Reveal => r#"<p:transition><p:reveal dir="r"/></p:transition>"#.to_string(),
31 TransitionType::Cover => r#"<p:transition><p:cover dir="r"/></p:transition>"#.to_string(),
32 TransitionType::Zoom => r#"<p:transition><p:zoom dir="in"/></p:transition>"#.to_string(),
33 }
34 }
35}
36
37impl ToXml for TransitionType {
38 fn to_xml(&self) -> String {
39 TransitionType::to_xml(self)
40 }
41}