diff --git a/advotracker/assets/advotracker/advotracker_dark.ron b/advotracker/assets/advotracker/advotracker_dark.ron new file mode 100644 index 0000000..6d5e01d --- /dev/null +++ b/advotracker/assets/advotracker/advotracker_dark.ron @@ -0,0 +1,16 @@ +Theme ( + styles: { + "button_single_content_segmdl2": ( + base: "button_single_content", + properties: { + "icon font": "$SEGEO_ICON_FONT", + }, + ), + "container_master_detail": ( + base: "container", + properties: { + "padding": 14, + }, + ), + } +) diff --git a/advotracker/resources/advotracker/advotracker_de_DE.ron b/advotracker/assets/advotracker/advotracker_de_DE.ron similarity index 100% rename from advotracker/resources/advotracker/advotracker_de_DE.ron rename to advotracker/assets/advotracker/advotracker_de_DE.ron diff --git a/advotracker/assets/advotracker/advotracker_light.ron b/advotracker/assets/advotracker/advotracker_light.ron new file mode 100644 index 0000000..e69de29 diff --git a/advotracker/resources/advotracker/hiedemann_logo.png b/advotracker/assets/advotracker/hiedemann_logo.png similarity index 100% rename from advotracker/resources/advotracker/hiedemann_logo.png rename to advotracker/assets/advotracker/hiedemann_logo.png diff --git a/advotracker/resources/advotracker/networkx_logo.png b/advotracker/assets/advotracker/networkx_logo.png similarity index 100% rename from advotracker/resources/advotracker/networkx_logo.png rename to advotracker/assets/advotracker/networkx_logo.png diff --git a/advotracker/resources/fonts/CynthoPro-Regular.otf b/advotracker/assets/fonts/CynthoPro-Regular.otf similarity index 100% rename from advotracker/resources/fonts/CynthoPro-Regular.otf rename to advotracker/assets/fonts/CynthoPro-Regular.otf diff --git a/advotracker/resources/icons/advotracker/20x20/back.png b/advotracker/assets/icons/advotracker/20x20/back.png similarity index 100% rename from advotracker/resources/icons/advotracker/20x20/back.png rename to advotracker/assets/icons/advotracker/20x20/back.png diff --git a/advotracker/resources/icons/advotracker/20x20/drawer.png b/advotracker/assets/icons/advotracker/20x20/drawer.png similarity index 100% rename from advotracker/resources/icons/advotracker/20x20/drawer.png rename to advotracker/assets/icons/advotracker/20x20/drawer.png diff --git a/advotracker/resources/icons/advotracker/20x20/menu.png b/advotracker/assets/icons/advotracker/20x20/menu.png similarity index 100% rename from advotracker/resources/icons/advotracker/20x20/menu.png rename to advotracker/assets/icons/advotracker/20x20/menu.png diff --git a/advotracker/resources/icons/advotracker/20x20@2/back.png b/advotracker/assets/icons/advotracker/20x20@2/back.png similarity index 100% rename from advotracker/resources/icons/advotracker/20x20@2/back.png rename to advotracker/assets/icons/advotracker/20x20@2/back.png diff --git a/advotracker/resources/icons/advotracker/20x20@2/drawer.png b/advotracker/assets/icons/advotracker/20x20@2/drawer.png similarity index 100% rename from advotracker/resources/icons/advotracker/20x20@2/drawer.png rename to advotracker/assets/icons/advotracker/20x20@2/drawer.png diff --git a/advotracker/resources/icons/advotracker/20x20@2/menu.png b/advotracker/assets/icons/advotracker/20x20@2/menu.png similarity index 100% rename from advotracker/resources/icons/advotracker/20x20@2/menu.png rename to advotracker/assets/icons/advotracker/20x20@2/menu.png diff --git a/advotracker/resources/icons/advotracker/20x20@3/back.png b/advotracker/assets/icons/advotracker/20x20@3/back.png similarity index 100% rename from advotracker/resources/icons/advotracker/20x20@3/back.png rename to advotracker/assets/icons/advotracker/20x20@3/back.png diff --git a/advotracker/resources/icons/advotracker/20x20@3/drawer.png b/advotracker/assets/icons/advotracker/20x20@3/drawer.png similarity index 100% rename from advotracker/resources/icons/advotracker/20x20@3/drawer.png rename to advotracker/assets/icons/advotracker/20x20@3/drawer.png diff --git a/advotracker/resources/icons/advotracker/20x20@3/menu.png b/advotracker/assets/icons/advotracker/20x20@3/menu.png similarity index 100% rename from advotracker/resources/icons/advotracker/20x20@3/menu.png rename to advotracker/assets/icons/advotracker/20x20@3/menu.png diff --git a/advotracker/resources/icons/advotracker/20x20@4/back.png b/advotracker/assets/icons/advotracker/20x20@4/back.png similarity index 100% rename from advotracker/resources/icons/advotracker/20x20@4/back.png rename to advotracker/assets/icons/advotracker/20x20@4/back.png diff --git a/advotracker/resources/icons/advotracker/20x20@4/drawer.png b/advotracker/assets/icons/advotracker/20x20@4/drawer.png similarity index 100% rename from advotracker/resources/icons/advotracker/20x20@4/drawer.png rename to advotracker/assets/icons/advotracker/20x20@4/drawer.png diff --git a/advotracker/resources/icons/advotracker/20x20@4/menu.png b/advotracker/assets/icons/advotracker/20x20@4/menu.png similarity index 100% rename from advotracker/resources/icons/advotracker/20x20@4/menu.png rename to advotracker/assets/icons/advotracker/20x20@4/menu.png diff --git a/advotracker/resources/icons/advotracker/Hiedemann_Logo.svg b/advotracker/assets/icons/advotracker/Hiedemann_Logo.svg similarity index 100% rename from advotracker/resources/icons/advotracker/Hiedemann_Logo.svg rename to advotracker/assets/icons/advotracker/Hiedemann_Logo.svg diff --git a/advotracker/resources/icons/advotracker/index.theme b/advotracker/assets/icons/advotracker/index.theme similarity index 100% rename from advotracker/resources/icons/advotracker/index.theme rename to advotracker/assets/icons/advotracker/index.theme diff --git a/advotracker/resources/images/advotracker.jpg b/advotracker/assets/images/advotracker.jpg similarity index 100% rename from advotracker/resources/images/advotracker.jpg rename to advotracker/assets/images/advotracker.jpg diff --git a/advotracker/resources/images/arrow.png b/advotracker/assets/images/arrow.png similarity index 100% rename from advotracker/resources/images/arrow.png rename to advotracker/assets/images/arrow.png diff --git a/advotracker/resources/images/arrow@2x.png b/advotracker/assets/images/arrow@2x.png similarity index 100% rename from advotracker/resources/images/arrow@2x.png rename to advotracker/assets/images/arrow@2x.png diff --git a/advotracker/resources/images/arrow@3x.png b/advotracker/assets/images/arrow@3x.png similarity index 100% rename from advotracker/resources/images/arrow@3x.png rename to advotracker/assets/images/arrow@3x.png diff --git a/advotracker/resources/images/arrow@4x.png b/advotracker/assets/images/arrow@4x.png similarity index 100% rename from advotracker/resources/images/arrow@4x.png rename to advotracker/assets/images/arrow@4x.png diff --git a/advotracker/resources/images/arrows.png b/advotracker/assets/images/arrows.png similarity index 100% rename from advotracker/resources/images/arrows.png rename to advotracker/assets/images/arrows.png diff --git a/advotracker/resources/images/arrows@2x.png b/advotracker/assets/images/arrows@2x.png similarity index 100% rename from advotracker/resources/images/arrows@2x.png rename to advotracker/assets/images/arrows@2x.png diff --git a/advotracker/resources/images/arrows@3x.png b/advotracker/assets/images/arrows@3x.png similarity index 100% rename from advotracker/resources/images/arrows@3x.png rename to advotracker/assets/images/arrows@3x.png diff --git a/advotracker/resources/images/arrows@4x.png b/advotracker/assets/images/arrows@4x.png similarity index 100% rename from advotracker/resources/images/arrows@4x.png rename to advotracker/assets/images/arrows@4x.png diff --git a/advotracker/resources/images/background.jpg b/advotracker/assets/images/background.jpg similarity index 100% rename from advotracker/resources/images/background.jpg rename to advotracker/assets/images/background.jpg diff --git a/advotracker/resources/images/customer_background.jpg b/advotracker/assets/images/customer_background.jpg similarity index 100% rename from advotracker/resources/images/customer_background.jpg rename to advotracker/assets/images/customer_background.jpg diff --git a/advotracker/resources/images/customer_logo.jpg b/advotracker/assets/images/customer_logo.jpg similarity index 100% rename from advotracker/resources/images/customer_logo.jpg rename to advotracker/assets/images/customer_logo.jpg diff --git a/advotracker/resources/images/customer_logo.png b/advotracker/assets/images/customer_logo.png similarity index 100% rename from advotracker/resources/images/customer_logo.png rename to advotracker/assets/images/customer_logo.png diff --git a/advotracker/resources/images/networkx_logo.jpg b/advotracker/assets/images/networkx_logo.jpg similarity index 100% rename from advotracker/resources/images/networkx_logo.jpg rename to advotracker/assets/images/networkx_logo.jpg diff --git a/advotracker/resources/images/nobody.png b/advotracker/assets/images/nobody.png similarity index 100% rename from advotracker/resources/images/nobody.png rename to advotracker/assets/images/nobody.png diff --git a/advotracker/resources/images/orbtk-space.png b/advotracker/assets/images/orbtk-space.png similarity index 100% rename from advotracker/resources/images/orbtk-space.png rename to advotracker/assets/images/orbtk-space.png diff --git a/advotracker/resources/images/orbtk_logo.png b/advotracker/assets/images/orbtk_logo.png similarity index 100% rename from advotracker/resources/images/orbtk_logo.png rename to advotracker/assets/images/orbtk_logo.png diff --git a/advotracker/resources/images/rust_logo.png b/advotracker/assets/images/rust_logo.png similarity index 100% rename from advotracker/resources/images/rust_logo.png rename to advotracker/assets/images/rust_logo.png diff --git a/advotracker/resources/fonts/MaterialIcons.ttf b/advotracker/resources/fonts/MaterialIcons.ttf deleted file mode 100644 index bb11743..0000000 Binary files a/advotracker/resources/fonts/MaterialIcons.ttf and /dev/null differ diff --git a/advotracker/resources/fonts/Roboto-Medium.ttf b/advotracker/resources/fonts/Roboto-Medium.ttf deleted file mode 100644 index 21822c4..0000000 --- a/advotracker/resources/fonts/Roboto-Medium.ttf +++ /dev/null @@ -1,581 +0,0 @@ - - - - - - - flovanco/doit: Task app based on OrbTk https://gitlab.redox-os.org/redox-os/orbtk. - static/fonts/Roboto-Medium.ttf at master - doit - Codeberg.org - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -
-
- -
-
- - -
-
- -
- - - 1 - -
-
-
- -
- - - 1 - -
-
- - - -
- -
-
- -
- - - -
-
-
- -
- - - - -
-
- Task app based on OrbTk https://gitlab.redox-os.org/redox-os/orbtk. - -
- -
-
- - -
- -
- Du kannst nicht mehr als 25 Themen auswählen - Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein. -
- - - - - -
-

-
- -
- - -
- 134KB -
- - -
- -
- -
-
- - - - - - - - - -
-
- -

-
-
- - - -
-
-
- - - - -
-
- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/advotracker/resources/fonts/Roboto-Regular.ttf b/advotracker/resources/fonts/Roboto-Regular.ttf deleted file mode 100644 index e2595a2..0000000 --- a/advotracker/resources/fonts/Roboto-Regular.ttf +++ /dev/null @@ -1,581 +0,0 @@ - - - - - - - flovanco/doit: Task app based on OrbTk https://gitlab.redox-os.org/redox-os/orbtk. - static/fonts/Roboto-Regular.ttf at master - doit - Codeberg.org - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -
-
- -
-
- - -
-
- -
- - - 1 - -
-
-
- -
- - - 1 - -
-
- - - -
- -
-
- -
- - - -
-
-
- -
- - - - -
-
- Task app based on OrbTk https://gitlab.redox-os.org/redox-os/orbtk. - -
- -
-
- - -
- -
- Du kannst nicht mehr als 25 Themen auswählen - Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein. -
- - - - - -
-

-
- -
- - -
- 142KB -
- - -
- -
- -
-
- - - - - - - - - -
-
- -

-
-
- - - -
-
-
- - - - -
-
- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/advotracker/resources/fonts/materialdesignicons-webfont.ttf b/advotracker/resources/fonts/materialdesignicons-webfont.ttf deleted file mode 100755 index c9a3a30..0000000 Binary files a/advotracker/resources/fonts/materialdesignicons-webfont.ttf and /dev/null differ diff --git a/advotracker/resources/stylesheets/advotracker_dark.ron b/advotracker/resources/stylesheets/advotracker_dark.ron deleted file mode 100644 index 0c4795a..0000000 --- a/advotracker/resources/stylesheets/advotracker_dark.ron +++ /dev/null @@ -1,122 +0,0 @@ -Theme ( - styles: { - "button_menu": ( - base: "menu", - properties: { - "background": "transparent", - //"background": "$GOLDEN_DREAM", - //"background": "$LINK_WATER", - //"border_brush": "$LINK_WATER", - //"border_brush": "$GOLDEN_DREAM", - "border_radius": 0, - "border_width": 0, - //"foreground": "$BRIGHT_GRAY", - //"icon_brush": "$BRIGHT_GRAY", - "font_size": "$ICON_SIZE_16", - "h_align": "left", - //"height": 14, - "margin": (0, 4, 0, 0), - //"padding": (8, 0, 8, 0), - }, - ), - "container_menu": ( - properties: { - "border_radius": 0, - "border_width": 1, - "background": "$BRIGHT_GRAY", - "border_brush": "$LINK_WATER", - //"border_brush": "$GOLDEN_DREAM", - "padding": 4, - }, - ), - "container_progress": ( - properties: { - "border_radius": 3, - "border_width": 1, - "background": "$BRIGHT_GRAY", - "border_brush": "$LINK_WATER", - //"border_brush": "$GOLDEN_DREAM", - "padding": 14, - "h_align": "end" - }, - ), - "container_form": ( - base: "container", - properties: { - "background": "$BRIGHT_GRAY", - "border_brush": "$LINK_WATER", - "border_radius": 3, - "border_width": 1, - "padding": 14, - "v_align": "top", - }, - ), - "header_bar": ( - base: "header", - properties: { - "foreground": "$LINK_WATER", - }, - ), - "hint": ( - base: "body", - properties: { - "font_size": 11, - "font_family": "$MEDIUM_FONT", - "width": "250", - "min_width": "250" - }, - ), - "menu": ( - //base: "base", - properties: { - "font_size": 16, - "font_family": "$MEDIUM_FONT", - "background": "$BLACK", - "opacity": 1, - }, - states: { - "pressed": { - "background": "$WHITE", - }, - }, - ), - "popup_progress": ( - base: "popup", - properties: { - //"h_align": "center", - "width": 300, - "heigth": 120, - }, - ), - "stack_menu": ( - properties: { - //"background": "transparent", - "spacing": 2, - "orientation": "vertical", - "h_align": "left", - }, - ), - "stack_progress": ( - properties: { - //"background": "transparent", - "spacing": 8, - "margin": (16, 16, 16, 16), - }, - ), - "textblock": ( - //base: "base", - properties: { - "font_size": "$ICON_SIZE_12", - }, - ), - "textblock_progress": ( - base: "textblock", - properties: { - //"background": "transparent", - //"font_size": 12, - "h_align": "center", - "v_align": "center", - }, - ), - } -) diff --git a/advotracker/resources/stylesheets/advotracker_light.ron b/advotracker/resources/stylesheets/advotracker_light.ron deleted file mode 100644 index 0fe5c91..0000000 --- a/advotracker/resources/stylesheets/advotracker_light.ron +++ /dev/null @@ -1,100 +0,0 @@ -Theme ( - styles: { - "button_menu": ( - base: "menu", - properties: { - "background": "transparent", - "border_radius": 0, - "border_width": 0, - "font_size": "$ICON_SIZE_16", - "h_align": "left", - "margin": (0, 4, 0, 0), - }, - ), - "container_menu": ( - properties: { - "border_radius": 0, - "border_width": 1, - "background": "$BRIGHT_GRAY", - "border_brush": "$LINK_WATER", - "padding": 4, - }, - ), - "container_progress": ( - properties: { - "border_radius": 3, - "border_width": 1, - "background": "$BRIGHT_GRAY", - "border_brush": "$LINK_WATER", - "padding": 14, - "h_align": "end", - }, - ), - "container_form": ( - base: "container", - properties: { - "background": "$GRAY_NURSE", - "border_brush": "$LINK_WATER", - "border_radius": 3, - "border_width": 1, - "padding": 14, - "v_align": "top", - }, - ), - "header_bar": ( - base: "header", - properties: { - "background": "$GRAY_NURSE", - "foreground": "$BRIGHT_GRAY", - }, - ), - "menu": ( - //base: "base", - properties: { - "font_size": 16, - "font_family": "$MEDIUM_FONT", - "background": "$GRAY_NURSE", - "opacity": 1, - "foreground": "$BRIGHT_GRAY", - }, - states: { - "pressed": { - "background": "$WHITE", - }, - }, - ), - "popup_progress": ( - base: "popup", - properties: { - "width": 300, - "heigth": 120, - }, - ), - "stack_menu": ( - properties: { - "spacing": 2, - "orientation": "vertical", - "h_align": "left", - }, - ), - "stack_progress": ( - properties: { - "spacing": 8, - "margin": (16, 16, 16, 16), - }, - ), - "textblock": ( - //base: "base", - properties: { - "font_size": "$ICON_SIZE_12", - }, - ), - "textblock_progress": ( - base: "textblock", - properties: { - "h_align": "center", - "v_align": "center", - }, - ), - } -) \ No newline at end of file diff --git a/advotracker/src/callbacks/mod.rs b/advotracker/src/callbacks/mod.rs deleted file mode 100644 index c00959f..0000000 --- a/advotracker/src/callbacks/mod.rs +++ /dev/null @@ -1,21 +0,0 @@ -/* - * advotracker - Hotline tackingtool for Advocats - * - * Copyright 2020 Ralf Zerres - * SPDX-License-Identifier: (0BSD or MIT) - */ - -/// global helper functions -pub mod global_state; - -/// policycheck helper functions -pub mod policycheck_state; - -// /// policylist helper functions -// pub mod policylist_state; - -// /// policydata helper functions -// pub mod policydata_state; - -/// policy verification methods -pub mod policy_check; diff --git a/advotracker/src/callbacks/policy_check.rs b/advotracker/src/callbacks/policy_check.rs deleted file mode 100644 index 4718585..0000000 --- a/advotracker/src/callbacks/policy_check.rs +++ /dev/null @@ -1,65 +0,0 @@ -/* - * advotracker - Hotline tackingtool for Advocats - * - * Copyright 2020 Ralf Zerres - * SPDX-License-Identifier: (0BSD or MIT) - */ - -use chrono::{Local, DateTime}; -use locales::t; -use std::collections::HashMap; -use tracing::{info, trace}; - -use crate::data::structures::{PolicyCode, PolicyDataList}; - -/// validate a given policy number -/// result will return true or false -pub fn is_valid(policy_number: &usize, policy_list: &PolicyDataList, - policy_numbers: &mut HashMap, lang: &String) - -> Result> { - - let mut res = t!("policy.validation.started", lang); - let mut state = t!("state.started", lang); - let dt_start: DateTime = Local::now(); - - trace!(target: "advotracker", - process = ?res, - state = ?state, - policy_number = ?policy_number, - policy_list = ?policy_list.name, - elements = ?policy_list.policy_data.len(), - date_start = ?dt_start.to_string()); - - let mut result = false; - match policy_numbers.get(&policy_number) { - Some(&policy_code) => { - let res = t!("policy.validation.success", lang); - info!("{} => {} ({:?})", res, policy_number, policy_code); - result = true; - trace!(target: "advotracker", - policy_number = ?policy_number, - validation = ?res, - policy_code = ?policy_code); - }, - _ => { - let res = t!("policy.validation.failed", lang); - info!("{} => {}", res, policy_number); - trace!(target: "advotracker", - policy_number = ?policy_number, - validation = ?res); - }, - } - - let dt_end: DateTime = Local::now(); - let duration = dt_end.signed_duration_since(dt_start); - - res = t!("policy.validation.finished", lang); - state = t!("state.finished", lang); - trace!(target: "advotracker", - process = ?res, - state = ?state, - date_stop = ?dt_end.to_string(), - duration = ?duration); - - Ok(result) -} diff --git a/advotracker/src/lib.rs b/advotracker/src/lib.rs index 156d3b9..436d548 100644 --- a/advotracker/src/lib.rs +++ b/advotracker/src/lib.rs @@ -26,13 +26,10 @@ // /// The client specific services // pub mod clients; -/// provides helper functions to manage orbtk callbacks -pub mod callbacks; - /// provides data definitions pub mod data; -/// provides orbtk widget structures +/// provides orbtk widgets (handling views and states) pub mod widgets; /// provides services diff --git a/advotracker/src/main.rs b/advotracker/src/main.rs index 4b54cbe..26616ff 100644 --- a/advotracker/src/main.rs +++ b/advotracker/src/main.rs @@ -129,7 +129,6 @@ fn main() -> Result<(), Box> { .build(); Application::from_name("nwx.advotracker") - .theme(PolicyCheckState::theme()) .localization(localization) .window(|ctx| { Window::new() diff --git a/advotracker/src/callbacks/global_state.rs b/advotracker/src/widgets/global_state.rs similarity index 100% rename from advotracker/src/callbacks/global_state.rs rename to advotracker/src/widgets/global_state.rs diff --git a/advotracker/src/widgets/main_view.rs b/advotracker/src/widgets/main_view.rs index 6908d13..8e646f8 100644 --- a/advotracker/src/widgets/main_view.rs +++ b/advotracker/src/widgets/main_view.rs @@ -9,7 +9,7 @@ use orbtk::prelude::*; use crate::{ data::structures::PolicyCheck, - widgets::policycheck_view::PolicyCheckView, + widgets::policycheck::policycheck_view::PolicyCheckView, }; type List = Vec; diff --git a/advotracker/src/widgets/mod.rs b/advotracker/src/widgets/mod.rs index c1a6244..d8b2fb7 100644 --- a/advotracker/src/widgets/mod.rs +++ b/advotracker/src/widgets/mod.rs @@ -5,11 +5,17 @@ * SPDX-License-Identifier: (0BSD or MIT) */ +/// global helper functions +pub mod global_state; + /// The starting point (Main View) pub mod main_view; /// The policy check wigdet -pub mod policycheck_view; +pub mod policycheck; + +// /// The policy data widget +// pub mod policydata; // /// The policy lists widget -// pub mod policylist_view; +// pub mod policylist; diff --git a/advotracker/src/widgets/policycheck/mod.rs b/advotracker/src/widgets/policycheck/mod.rs new file mode 100644 index 0000000..1e88f90 --- /dev/null +++ b/advotracker/src/widgets/policycheck/mod.rs @@ -0,0 +1,12 @@ +/* + * advotracker - Hotline tackingtool for Advocats + * + * Copyright 2020 Ralf Zerres + * SPDX-License-Identifier: (0BSD or MIT) + */ + +/// The policy check state +pub mod policycheck_state; + +/// The policy check view +pub mod policycheck_view; diff --git a/advotracker/src/widgets/policycheck_menu.rs b/advotracker/src/widgets/policycheck/policycheck_menu.rs similarity index 100% rename from advotracker/src/widgets/policycheck_menu.rs rename to advotracker/src/widgets/policycheck/policycheck_menu.rs diff --git a/advotracker/src/callbacks/policycheck_state.rs b/advotracker/src/widgets/policycheck/policycheck_state.rs similarity index 92% rename from advotracker/src/callbacks/policycheck_state.rs rename to advotracker/src/widgets/policycheck/policycheck_state.rs index eecb6ee..b4cfc66 100644 --- a/advotracker/src/callbacks/policycheck_state.rs +++ b/advotracker/src/widgets/policycheck/policycheck_state.rs @@ -1,16 +1,5 @@ use locales::t; -use orbtk::{ - prelude::*, - shell::WindowRequest, - theme::{COLORS_RON, FONTS_RON}, - theming::config::ThemeConfig, -}; - -#[cfg(not(feature = "light"))] -use orbtk::theme::DARK_THEME_RON; - -#[cfg(feature = "light")] -use orbtk::theme::LIGHT_THEME_RON; +use orbtk::prelude::*; use serde::Deserialize; use std::process; @@ -19,7 +8,7 @@ use std::time::{Duration, SystemTime}; use tracing::{error, info, trace}; use crate::{ - callbacks::global_state::GlobalState, + widgets::global_state::GlobalState, data::structures::{PolicyCode, PolicyDataList, PolicyList}, data::constants::*, services::imports::allianzdirectcall::import, @@ -39,6 +28,7 @@ pub enum Action { SetProgress(f64), SetProgressPopup(Entity), RemoveFocus(Entity), + RemoveMenu(Entity), RemovePopup(Entity), SetEntry(Entity), SetVisibility(Entity), @@ -73,12 +63,6 @@ pub struct PolicyCheckState { theme_name: String } -#[cfg(not(feature = "light"))] -static DARK_EXT: &'static str = include_str!("../../resources/stylesheets/advotracker_dark.ron"); - -#[cfg(feature = "light")] -static LIGHT_EXT: &'static str = include_str!("../../resources/stylesheets/advotracker_light.ron"); - impl GlobalState for PolicyCheckState {} /// method definitions, that react on any given state change inside the view @@ -142,11 +126,11 @@ impl PolicyCheckState { if self.policy_numbers.len() == 0 { // initialize popup widget - let sender = ctx.window_sender(); + //let sender = ctx.send_window_request(); self.set_popup_progress(ctx); self.progress_count += 0.33; self.update_progress_bar(ctx); - sender.send(WindowRequest::Redraw).unwrap(); + //sender.send(WindowRequest::Redraw).unwrap(); // for _ in 1..4 { // self.progress_count += 0.33; @@ -166,7 +150,7 @@ impl PolicyCheckState { self.progress_count = 1.; self.update_progress_bar(ctx); - sender.send(WindowRequest::Redraw).unwrap(); + //sender.send(WindowRequest::Redraw).unwrap(); } _ => { let res = t!("policy.hashmap.failed", self.lang); @@ -332,8 +316,13 @@ impl PolicyCheckState { } /// Remove the menu popup box - fn remove_popup(&mut self, id: Entity, ctx: &mut Context<'_>) { + fn remove_menu(&mut self, id: Entity, ctx: &mut Context<'_>) { ctx.remove_child(self.menu); + println!("Popup {:?} removed !", id); + } + + /// Remove the menu popup box + fn remove_popup(&mut self, id: Entity, ctx: &mut Context<'_>) { ctx.remove_child(self.progress_popup); println!("Popup {:?} removed !", id); } @@ -364,13 +353,21 @@ impl PolicyCheckState { /// Set a menu fn set_menu(&mut self, ctx: &mut Context<'_>) { - let current_entity = ctx.entity; + let stack = ctx + .entity_of_child(ID_POLICY_CHECK_BUTTON_MENU) + .expect("PolicyCheckState: Can't find entity of resource 'ID_POLICY_CHECK_BUTTON_MENU'."); + let current_entity = ctx.entity(); let build_context = &mut ctx.build_context(); // create a menu overlay self.menu = create_menu(current_entity, build_context); - let _menu = build_context.append_child_to_overlay(self.menu) - .expect("PolicyCheckState: Can't create overlay as child of entity"); + + // create a menu_popup widget as a child of entity "ID_POLICY_CHECK_POLICY_NUMBER" + build_context.append_child(stack, self.menu); + //.expect("PolicyCheckState: Can't find entity of resource 'ID_POLICY_CHECK_MENU'"); + //.expect("PolicyCheckState: Can't create overlay as child of entity"); + + println!("Popup Menu created: {:?}", self.menu); } /// Set a progress popup that updates the import status in a progress bar @@ -379,7 +376,7 @@ impl PolicyCheckState { let stack = ctx .entity_of_child(ID_POLICY_CHECK_RESULT) .expect("PolicyCheckState: Can't find entity of resource 'ID_POLICY_CHECK_RESULT'."); - let current_entity = ctx.entity; + let current_entity = ctx.entity(); let build_context = &mut ctx.build_context(); self.progress_popup = create_popup_progress(current_entity, build_context); @@ -407,29 +404,6 @@ impl PolicyCheckState { //ctx.get_widget(self.label_result).update_theme_by_state(true); } - - /// Set and activate the theme attributes. - #[cfg(not(feature = "light"))] - pub fn theme() -> Theme { - Theme::from_config( - // sourcing: crates/theme/assets/dark/dark.ron - ThemeConfig::from(DARK_THEME_RON) - .extend(ThemeConfig::from(DARK_EXT)) - .extend(ThemeConfig::from(COLORS_RON)) - .extend(ThemeConfig::from(FONTS_RON)), - ) - } - - #[cfg(feature = "light")] - pub fn theme() -> Theme { - Theme::from_config( - ThemeConfig::from(LIGHT_THEME_RON) - .extend(ThemeConfig::from(LIGHT_EXT)) - .extend(ThemeConfig::from(COLORS_RON)) - .extend(ThemeConfig::from(FONTS_RON)), - ) - } - /// Update count of elements in the policy data list. fn _update_data_count(&self, ctx: &mut Context<'_>) { let data_list_count = ctx.widget().get::(PROP_POLICY_DATA_LIST).len(); @@ -543,7 +517,10 @@ impl State for PolicyCheckState { } Action::RemoveFocus(policy_check_policy_number) => { ctx.get_widget(policy_check_policy_number).set("enabled", false); - ctx.push_event_by_window(FocusEvent::RemoveFocus(policy_check_policy_number)); + //ctx.EventAdapter(FocusEvent::RemoveFocus(policy_check_policy_number)); + } + Action::RemoveMenu(entity) => { + self.remove_menu(entity, ctx); } Action::RemovePopup(entity) => { self.remove_popup(entity, ctx); @@ -574,18 +551,6 @@ impl State for PolicyCheckState { self.set_entry(entity, ctx); } Action::ToggleTheme(_entity) => { - if self.theme_name == "light" { - let theme = dark_theme(); - self.theme_name = "dark".to_string(); - ctx.switch_theme(theme); - } - - if self.theme_name == "dark" { - let theme = light_theme(); - self.theme_name = "light".to_string(); - ctx.switch_theme(theme); - }; - println!{"Switch theme to {:?}", self.theme_name}; } } @@ -601,11 +566,19 @@ impl State for PolicyCheckState { /// Create a menu popup fn create_menu(menu: Entity, ctx: &mut BuildContext<'_>) -> Entity { - Container::new() + Popup::new() + .id(ID_POLICY_CHECK_POPUP_MENU) .style("container_menu") - .width(280.0) - .height(140.0) - .position((100.0, 100.0)) + .target(menu) + .open(true) + .width(280) + .height(140) + .on_mouse_down(move |ctx, _| { + println!("on_click -> remove_menu()"); + ctx.get_mut::(menu) + .action(Action::RemoveMenu(menu)); + true + }) .child( Grid::new() .id(ID_POLICY_CHECK_MENU) diff --git a/advotracker/src/widgets/policycheck_view.rs b/advotracker/src/widgets/policycheck/policycheck_view.rs similarity index 99% rename from advotracker/src/widgets/policycheck_view.rs rename to advotracker/src/widgets/policycheck/policycheck_view.rs index 24ffb03..f70d63d 100644 --- a/advotracker/src/widgets/policycheck_view.rs +++ b/advotracker/src/widgets/policycheck/policycheck_view.rs @@ -10,7 +10,7 @@ use orbtk::prelude::*; use crate::{ data::constants::*, data::structures::PolicyCheck, - callbacks::policycheck_state::*, + widgets::policycheck::policycheck_state::*, }; // Macro that initializes the widget structures/variables for our view @@ -43,7 +43,7 @@ impl Template for PolicyCheckView { .v_align("center") .child( ImageWidget::new() - .image("resources/advotracker/hiedemann_logo.png") + .image("assets/advotracker/hiedemann_logo.png") .v_align("center") .build(ctx), ) diff --git a/advotracker/src/widgets/policydata/mod.rs b/advotracker/src/widgets/policydata/mod.rs new file mode 100644 index 0000000..1e88f90 --- /dev/null +++ b/advotracker/src/widgets/policydata/mod.rs @@ -0,0 +1,12 @@ +/* + * advotracker - Hotline tackingtool for Advocats + * + * Copyright 2020 Ralf Zerres + * SPDX-License-Identifier: (0BSD or MIT) + */ + +/// The policy check state +pub mod policycheck_state; + +/// The policy check view +pub mod policycheck_view; diff --git a/advotracker/src/callbacks/policydata_state.rs b/advotracker/src/widgets/policydata/policydata_state.rs similarity index 100% rename from advotracker/src/callbacks/policydata_state.rs rename to advotracker/src/widgets/policydata/policydata_state.rs diff --git a/advotracker/src/widgets/policydata_view.rs b/advotracker/src/widgets/policydata/policydata_view.rs similarity index 100% rename from advotracker/src/widgets/policydata_view.rs rename to advotracker/src/widgets/policydata/policydata_view.rs diff --git a/advotracker/src/widgets/policylist/mod.rs b/advotracker/src/widgets/policylist/mod.rs new file mode 100644 index 0000000..0b658fe --- /dev/null +++ b/advotracker/src/widgets/policylist/mod.rs @@ -0,0 +1,12 @@ +/* + * advotracker - Hotline tackingtool for Advocats + * + * Copyright 2020 Ralf Zerres + * SPDX-License-Identifier: (0BSD or MIT) + */ + +/// The policy check state +pub mod policylist_state; + +/// The policy check view +pub mod policylist_view; diff --git a/advotracker/src/widgets/policylist_state.rs b/advotracker/src/widgets/policylist/policylist_state.rs similarity index 100% rename from advotracker/src/widgets/policylist_state.rs rename to advotracker/src/widgets/policylist/policylist_state.rs diff --git a/advotracker/src/widgets/policylist_view.rs b/advotracker/src/widgets/policylist/policylist_view.rs similarity index 100% rename from advotracker/src/widgets/policylist_view.rs rename to advotracker/src/widgets/policylist/policylist_view.rs