use deckmint::objects::shape::ShapeOptionsBuilder;
use deckmint::objects::text::TextOptionsBuilder;
use deckmint::{AlignH, AnimationEffect, Direction, Presentation, ShapeType};
fn main() {
let mut pres = Presentation::new();
let s = pres.add_slide();
s.add_text("Entrance Animations", TextOptionsBuilder::new()
.pos(0.5, 0.3).size(9.0, 0.7).font_size(24.0).bold().build());
s.add_text("Click → I fade in", TextOptionsBuilder::new()
.pos(0.5, 1.5).size(4.0, 0.8).font_size(18.0)
.animation(AnimationEffect::fade_in())
.build());
s.add_text("Click → I fly from left", TextOptionsBuilder::new()
.pos(0.5, 2.5).size(4.0, 0.8).font_size(18.0)
.animation(AnimationEffect::fly_in(Direction::Left))
.build());
s.add_shape(ShapeType::Rect, ShapeOptionsBuilder::new()
.pos(5.5, 1.5).size(3.0, 1.5)
.fill_color("4472C4")
.animation(AnimationEffect::zoom_in())
.build());
s.add_shape(ShapeType::Ellipse, ShapeOptionsBuilder::new()
.pos(5.5, 3.5).size(3.0, 1.5)
.fill_color("70AD47")
.animation(AnimationEffect::bounce_in())
.build());
let s = pres.add_slide();
s.add_text("Emphasis Animations", TextOptionsBuilder::new()
.pos(0.5, 0.3).size(9.0, 0.7).font_size(24.0).bold().build());
s.add_shape(ShapeType::Rect, ShapeOptionsBuilder::new()
.pos(0.5, 1.5).size(2.5, 2.0)
.fill_color("4472C4")
.animation(AnimationEffect::spin(360.0))
.build());
s.add_shape(ShapeType::RoundRect, ShapeOptionsBuilder::new()
.pos(3.5, 1.5).size(2.5, 2.0)
.fill_color("ED7D31")
.animation(AnimationEffect::pulse())
.build());
s.add_shape(ShapeType::Ellipse, ShapeOptionsBuilder::new()
.pos(6.5, 1.5).size(2.5, 2.0)
.fill_color("70AD47")
.animation(AnimationEffect::grow_shrink(1.5))
.build());
let s = pres.add_slide();
s.add_text("Exit Animations", TextOptionsBuilder::new()
.pos(0.5, 0.3).size(9.0, 0.7).font_size(24.0).bold().build());
s.add_text("Click → I disappear", TextOptionsBuilder::new()
.pos(0.5, 1.5).size(4.0, 0.8).font_size(18.0)
.animation(AnimationEffect::disappear())
.build());
s.add_text("Click → I fly out right", TextOptionsBuilder::new()
.pos(0.5, 2.5).size(4.0, 0.8).font_size(18.0)
.animation(AnimationEffect::fly_out(Direction::Right))
.build());
s.add_text("Click → I fade out", TextOptionsBuilder::new()
.pos(0.5, 3.5).size(4.0, 0.8).font_size(18.0)
.animation(AnimationEffect::fade_out())
.build());
pres.write_to_file("07_animations.pptx").unwrap();
println!("Wrote 07_animations.pptx");
}