From cff156c024949cece9278464fc79449b6d946373 Mon Sep 17 00:00:00 2001 From: Ralf Zerres Date: Thu, 18 Mar 2021 11:03:47 +0100 Subject: [PATCH] advotracker_client: introduce Windows icon handling * include `windres` crate * create a `build.rs` * include a `hotline.svg` that is converted to advotracker.ico using inkscape and imagemagick * crate a `README.md` Signed-off-by: Ralf Zerres --- crates/advotracker_client/Cargo.toml | 14 +- crates/advotracker_client/README.md | 38 +++++ .../assets/icons/advotracker/advotracker.ico | Bin 0 -> 135450 bytes .../assets/images/Hotline.svg | 143 ++++++++++++++++++ crates/advotracker_client/build.rs | 19 +++ crates/advotracker_client/resources.rc | 1 + 6 files changed, 214 insertions(+), 1 deletion(-) create mode 100644 crates/advotracker_client/README.md create mode 100644 crates/advotracker_client/assets/icons/advotracker/advotracker.ico create mode 100644 crates/advotracker_client/assets/images/Hotline.svg create mode 100644 crates/advotracker_client/build.rs create mode 100644 crates/advotracker_client/resources.rc diff --git a/crates/advotracker_client/Cargo.toml b/crates/advotracker_client/Cargo.toml index bc737d1..f729c62 100644 --- a/crates/advotracker_client/Cargo.toml +++ b/crates/advotracker_client/Cargo.toml @@ -7,11 +7,17 @@ readme = "README.md" license = "(0BSD OR MIT)" edition = "2018" default-run = "advotracker" +build = "build.rs" [target.'cfg(windows)'.dependencies] -winapi = { version = "0.3", features = ["winuser"] } +winapi = { version = "0.3", features = [ "winuser" ] } #diesel = { version = "1.4", features = [ "postgres", "sqlite" ] } +[target.'cfg(target_os = "windows")'.build-dependencies] +winres = { version = "0.1" } +# for language constants +winapi = { version = "0.3", features = [ "winnt" ] } + [dependencies] async-stream = "~0.2" chrono = { version = "~0.4.0", features = ["serde"] } @@ -37,6 +43,9 @@ tracing = { version = "~0.1" } tracing-subscriber = { version = "~0.2.0", features = ["tracing-log"] } viperus = { git = "https://github.com/maurocordioli/viperus", features = ["cache", "fmt-clap", "fmt-env", "global", "watch"] } +[build-dependencies] +winres = { version = "0.1" } + #[dev-dependencies] [features] @@ -50,6 +59,9 @@ identifier = "nwx.advotracker" short_description = "Online legal advice helper." description = "Supports lawyers to capture relevant data encountered during an online legal advice.\n" +[package.metadata.winres] +LegalCopyright = "Copyright © 2020-2021" + #[[bin]] #//name = "policycheck" #path = "src/bin/policycheck.rs" diff --git a/crates/advotracker_client/README.md b/crates/advotracker_client/README.md new file mode 100644 index 0000000..899091c --- /dev/null +++ b/crates/advotracker_client/README.md @@ -0,0 +1,38 @@ +# About + +This is the client component of `advotracker`. + +## Windows specific + +We like to support an icon an object attributes for the compiled +version of `advotracker`. While searching for a solution, the description of this +[Web link][https://graphicdesign.stackexchange.com/questions/77359/how-to-convert-a-square-svg-to-all-size-ico] +was adapted and combined with a `windres` crate. + +### Icon creation + +This commandline solution will create an icon that can be linked into the Windows binary. + +* create the `svg` art file + You may use `inkscape`, a versitile and user frendly + tool to create your vector graphics art. Save it as `advotracker.svg`. Next export the scaled png files. + +``` +inkscape -w 16 -h 16 -o advotracker_16.png -l advotracker.svg +inkscape -w 32 -h 32 -o advotracker_32.png -l advotracker.svg +inkscape -w 48 -h 48 -o advotracker_48.png -l advotracker.svg +inkscape -w 64 -h 64 -o advotracker_64.png -l advotracker.svg +``` +* create the `ico` file + The ico format can handle multiple layes with different resolutions. + We make use of ImageMagick to create the icon file like this: + +``` +convert advotracker_16.png advotracker_32.png advotracker_48.png advotracker_64.png advotracker.ico +``` + +* link in the icon + +rust offers the `windres` crate, that will handle the linking of icons +as well as the definition of binary objet resources. `advotracker` +will define the needed settings in its `build.rs` file. diff --git a/crates/advotracker_client/assets/icons/advotracker/advotracker.ico b/crates/advotracker_client/assets/icons/advotracker/advotracker.ico new file mode 100644 index 0000000000000000000000000000000000000000..17b2d145853c9689a737784afcce7491d0ea665a GIT binary patch literal 135450 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 KDgdR1uQ&ji`k-R~ literal 0 HcmV?d00001 diff --git a/crates/advotracker_client/assets/images/Hotline.svg b/crates/advotracker_client/assets/images/Hotline.svg new file mode 100644 index 0000000..4b57e6b --- /dev/null +++ b/crates/advotracker_client/assets/images/Hotline.svg @@ -0,0 +1,143 @@ + + + Hotline + + + + + + + + image/svg+xml + + Hotline + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/crates/advotracker_client/build.rs b/crates/advotracker_client/build.rs new file mode 100644 index 0000000..ae87e42 --- /dev/null +++ b/crates/advotracker_client/build.rs @@ -0,0 +1,19 @@ +/* + * advotracker - Hotline tackingtool for Advocats + * + * Copyright 2021 Ralf Zerres + * SPDX-License-Identifier: (0BSD or MIT) + */ + +use winres; + +fn main() { + if cfg!(target_os = "windows") { + let mut res = winres::WindowsResource::new(); + res.set_icon("assets/icons/adovtracker/advotracker.ico") + .set("InternalName", "ADVOTRACKER.EXE") + // manually set version 0.1.5.2 + .set_version_info(winres::VersionInfo::PRODUCTVERSION, 0x0000000100050002); + res.compile().unwrap(); + } +} diff --git a/crates/advotracker_client/resources.rc b/crates/advotracker_client/resources.rc new file mode 100644 index 0000000..1857579 --- /dev/null +++ b/crates/advotracker_client/resources.rc @@ -0,0 +1 @@ +advotracker ICON "./assets/icons/advotracker/advotracker.ico"