Skip to content
Snippets Groups Projects
Commit 98346c06 authored by Finn Bear's avatar Finn Bear
Browse files

Command line argument for starting slide.

parent ff4ec456
No related branches found
No related tags found
No related merge requests found
...@@ -62,6 +62,15 @@ version = "0.2.3" ...@@ -62,6 +62,15 @@ version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "000444226fcff248f2bc4c7625be32c63caccfecc2723a2b9f78a7487a49c407" checksum = "000444226fcff248f2bc4c7625be32c63caccfecc2723a2b9f78a7487a49c407"
[[package]]
name = "ansi_term"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
dependencies = [
"winapi",
]
[[package]] [[package]]
name = "async-broadcast" name = "async-broadcast"
version = "0.3.4" version = "0.3.4"
...@@ -160,6 +169,17 @@ version = "0.1.8" ...@@ -160,6 +169,17 @@ version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73b5e5f48b927f04e952dedc932f31995a65a0bf65ec971c74436e51bf6e970d" checksum = "73b5e5f48b927f04e952dedc932f31995a65a0bf65ec971c74436e51bf6e970d"
[[package]]
name = "atty"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
dependencies = [
"hermit-abi",
"libc",
"winapi",
]
[[package]] [[package]]
name = "autocfg" name = "autocfg"
version = "1.1.0" version = "1.1.0"
...@@ -280,6 +300,21 @@ dependencies = [ ...@@ -280,6 +300,21 @@ dependencies = [
"winapi", "winapi",
] ]
[[package]]
name = "clap"
version = "2.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
dependencies = [
"ansi_term",
"atty",
"bitflags",
"strsim 0.8.0",
"textwrap",
"unicode-width",
"vec_map",
]
[[package]] [[package]]
name = "clipboard-win" name = "clipboard-win"
version = "3.1.1" version = "3.1.1"
...@@ -494,7 +529,7 @@ dependencies = [ ...@@ -494,7 +529,7 @@ dependencies = [
"ident_case", "ident_case",
"proc-macro2", "proc-macro2",
"quote", "quote",
"strsim", "strsim 0.10.0",
"syn", "syn",
] ]
...@@ -869,6 +904,7 @@ dependencies = [ ...@@ -869,6 +904,7 @@ dependencies = [
"image", "image",
"rand", "rand",
"rand_chacha", "rand_chacha",
"structopt",
] ]
[[package]] [[package]]
...@@ -986,6 +1022,24 @@ dependencies = [ ...@@ -986,6 +1022,24 @@ dependencies = [
"ahash 0.4.7", "ahash 0.4.7",
] ]
[[package]]
name = "heck"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
dependencies = [
"unicode-segmentation",
]
[[package]]
name = "hermit-abi"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
"libc",
]
[[package]] [[package]]
name = "hex" name = "hex"
version = "0.4.3" version = "0.4.3"
...@@ -1567,6 +1621,30 @@ dependencies = [ ...@@ -1567,6 +1621,30 @@ dependencies = [
"toml", "toml",
] ]
[[package]]
name = "proc-macro-error"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
"proc-macro2",
"quote",
"syn",
"version_check",
]
[[package]]
name = "proc-macro-error-attr"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
"proc-macro2",
"quote",
"version_check",
]
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.37" version = "1.0.37"
...@@ -1823,12 +1901,42 @@ version = "1.1.0" ...@@ -1823,12 +1901,42 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]]
name = "strsim"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
[[package]] [[package]]
name = "strsim" name = "strsim"
version = "0.10.0" version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
[[package]]
name = "structopt"
version = "0.3.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10"
dependencies = [
"clap",
"lazy_static",
"structopt-derive",
]
[[package]]
name = "structopt-derive"
version = "0.4.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
dependencies = [
"heck",
"proc-macro-error",
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "syn" name = "syn"
version = "1.0.91" version = "1.0.91"
...@@ -1840,6 +1948,15 @@ dependencies = [ ...@@ -1840,6 +1948,15 @@ dependencies = [
"unicode-xid", "unicode-xid",
] ]
[[package]]
name = "textwrap"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
dependencies = [
"unicode-width",
]
[[package]] [[package]]
name = "thiserror" name = "thiserror"
version = "1.0.30" version = "1.0.30"
...@@ -1947,6 +2064,18 @@ dependencies = [ ...@@ -1947,6 +2064,18 @@ dependencies = [
"tinyvec", "tinyvec",
] ]
[[package]]
name = "unicode-segmentation"
version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"
[[package]]
name = "unicode-width"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
[[package]] [[package]]
name = "unicode-xid" name = "unicode-xid"
version = "0.2.2" version = "0.2.2"
...@@ -1971,6 +2100,12 @@ dependencies = [ ...@@ -1971,6 +2100,12 @@ dependencies = [
"percent-encoding", "percent-encoding",
] ]
[[package]]
name = "vec_map"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
[[package]] [[package]]
name = "version_check" name = "version_check"
version = "0.9.4" version = "0.9.4"
......
...@@ -8,4 +8,5 @@ eframe = "0.17" ...@@ -8,4 +8,5 @@ eframe = "0.17"
egui_demo_lib = {git = "https://github.com/finnbear/egui", branch = "code_theme_font_size_3"} egui_demo_lib = {git = "https://github.com/finnbear/egui", branch = "code_theme_font_size_3"}
image = {version = "0.24", default-features = false, features=["png"]} image = {version = "0.24", default-features = false, features=["png"]}
rand = "0.8" rand = "0.8"
rand_chacha = "0.3" rand_chacha = "0.3"
\ No newline at end of file structopt = "0.3"
\ No newline at end of file
...@@ -36,6 +36,16 @@ impl Default for Cartoon { ...@@ -36,6 +36,16 @@ impl Default for Cartoon {
} }
} }
impl Cartoon {
pub fn set_slide_index(&mut self, slide_index: usize) {
if slide_index < self.slides.len() {
self.slide_index = slide_index;
} else {
panic!("slide index out of bounds");
}
}
}
/// Creates all the slides from default values. This will reset any and all animations and /// Creates all the slides from default values. This will reset any and all animations and
/// transitions built into the slides. /// transitions built into the slides.
/// ///
......
...@@ -13,11 +13,25 @@ pub mod slide; ...@@ -13,11 +13,25 @@ pub mod slide;
use crate::cartoon::Cartoon; use crate::cartoon::Cartoon;
use eframe::egui; use eframe::egui;
use eframe::egui::style::Margin; use eframe::egui::style::Margin;
use structopt::StructOpt;
/// Each field is a command-line argument.
#[derive(StructOpt)]
pub struct Options {
/// Which slide number to begin on.
#[structopt(long, default_value = "0")]
start: usize,
}
// Entry point. // Entry point.
fn main() { fn main() {
// Parse command line arguments.
let options = Options::from_args();
// cartoon.rs is a good place to look next. // cartoon.rs is a good place to look next.
let app = Cartoon::default(); let mut app = Cartoon::default();
app.set_slide_index(options.start);
// 16:9 aspect ratio. // 16:9 aspect ratio.
let size = egui::Vec2::new(1280f32, 720f32); let size = egui::Vec2::new(1280f32, 720f32);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment