From 6fae59285a799a8b4a69e6c8463557f8d23bc692 Mon Sep 17 00:00:00 2001 From: aOK Date: Mon, 11 Dec 2023 23:15:58 +0300 Subject: [PATCH] first commit --- .gitignore | 3 ++ .makepadignore | 3 ++ .vscode/extensions.json | 3 ++ .vscode/settings.json | 5 +++ Cargo.toml | 26 +++++++++++ README.md | 34 ++++++++++++++ index.html | 34 ++++++++++++++ resources/makepad.png | Bin 0 -> 22134 bytes resources/makepad.svg | 42 ++++++++++++++++++ resources/me.svg | 4 ++ src/app.rs | 96 ++++++++++++++++++++++++++++++++++++++++ src/lib.rs | 3 ++ src/main.rs | 6 +++ src/shared/mod.rs | 1 + src/shared/styles.rs | 22 +++++++++ 15 files changed, 282 insertions(+) create mode 100644 .gitignore create mode 100644 .makepadignore create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json create mode 100644 Cargo.toml create mode 100644 README.md create mode 100644 index.html create mode 100644 resources/makepad.png create mode 100644 resources/makepad.svg create mode 100644 resources/me.svg create mode 100644 src/app.rs create mode 100644 src/lib.rs create mode 100644 src/main.rs create mode 100644 src/shared/mod.rs create mode 100644 src/shared/styles.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..48c3ca4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/dist/ +/target/ +/Cargo.lock diff --git a/.makepadignore b/.makepadignore new file mode 100644 index 0000000..1ebdc6d --- /dev/null +++ b/.makepadignore @@ -0,0 +1,3 @@ +/src +/public +/Cargo.toml \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..24d7cc6 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["tauri-apps.tauri-vscode", "rust-lang.rust-analyzer"] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..e6d9d21 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "emmet.includeLanguages": { + "rust": "html" + } +} diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..20082c5 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,26 @@ +[package] +name = "makepad-template" +version = "0.0.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[profile.small] +inherits = "release" +#debug = true +opt-level = 'z' # Optimize for size +lto = true # Enable link-time optimization +codegen-units = 1 # Reduce number of codegen units to increase optimizations +panic = 'abort' # Abort on panic +strip = true + +[profile.release] +opt-level = "s" +lto = true +codegen-units = 1 +panic = "abort" +strip = true + +[dependencies] +# makepad-widgets = { version = "0.6.0" } +makepad-widgets = { git = "https://github.com/makepad/makepad/", branch = "rik" } diff --git a/README.md b/README.md new file mode 100644 index 0000000..b85f4b2 --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +# Makepad UI + +This template should help get you started developing with Makepad Rust UI. + +## Recommended IDE Setup + +[VS Code](https://code.visualstudio.com/) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer). + + +# Desktop in Debug Mode +cargo run + +# Desktop in Release Mode +cargo run --release + +# Desktop in small size +cargo run --profile=small + +# Android +cargo makepad android run --release + +# IOS Simulator +cargo makepad apple ios --org=my.test --app=makepad-template run-sim --release + +# IOS Device +cargo makepad apple ios --org-id=123456 --org=my.test --app=makepad-template run-device makepad-template --release + +# Cargo Check Builds +cargo makepad check install-toolchain +cargo makepad check all + +cargo makepad wasm install-toolchain +cargo makepad apple ios install-toolchain +cargo makepad android --abi=all install-toolchain \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..b739f60 --- /dev/null +++ b/index.html @@ -0,0 +1,34 @@ + + + + + + Makepad Template + + + + + + +
+
+ Loading.. +
+
+ + diff --git a/resources/makepad.png b/resources/makepad.png new file mode 100644 index 0000000000000000000000000000000000000000..052f301a782f89a53eadf47c6c0857fe97ab0a65 GIT binary patch literal 22134 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/me.svg b/resources/me.svg new file mode 100644 index 0000000..f9508de --- /dev/null +++ b/resources/me.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/app.rs b/src/app.rs new file mode 100644 index 0000000..0675719 --- /dev/null +++ b/src/app.rs @@ -0,0 +1,96 @@ +use makepad_widgets::*; + +live_design!{ + import makepad_widgets::base::*; + import makepad_widgets::theme_desktop_dark::*; + + import crate::shared::styles::*; + + // LOGO_MAKEPAD = dep("crate://self/resources/makepad.png") + LOGO_MAKEPAD = dep("crate://self/resources/makepad.svg") + + + App = {{App}} { + + ui: { + show_bg: true + width: Fill, + height: Fill + + draw_bg: { + fn pixel(self) -> vec4 { + //return #000 + return mix(#7, #3, self.pos.y); + } + } + + body = { + + flow: Down, + spacing: 20, + align: { + x: 0.5, + y: 0.5 + }, + avatar = { + source: (LOGO_MAKEPAD), + // width: 300., height: 50. + } + button1 =