From bb60ab69c3ed5f7fdd0b456c860bcfe9729c584d Mon Sep 17 00:00:00 2001 From: elkowar <5300871+elkowar@users.noreply.github.com> Date: Sun, 4 Oct 2020 19:28:27 +0200 Subject: [PATCH] Add unfinished implementation of 'visible' --- src/config/element.rs | 10 +++++----- src/value.rs | 2 +- src/widgets/widget_definitions.rs | 7 +++++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/config/element.rs b/src/config/element.rs index e7fae0b..6f730bd 100644 --- a/src/config/element.rs +++ b/src/config/element.rs @@ -147,11 +147,11 @@ mod test { #[test] fn test_parse_widget_use() { let input = r#" - - - foo - - "#; + + + foo + + "#; let document = roxmltree::Document::parse(input).unwrap(); let xml = XmlNode::from(document.root_element().clone()); diff --git a/src/value.rs b/src/value.rs index bbf9482..9adb14f 100644 --- a/src/value.rs +++ b/src/value.rs @@ -1,9 +1,9 @@ use anyhow::*; use derive_more; use serde::{Deserialize, Serialize}; +use std::collections::HashMap; use std::convert::TryFrom; use std::fmt; -use try_match::try_match; #[derive(Clone, PartialEq, Deserialize, Serialize, derive_more::From)] pub enum PrimitiveValue { diff --git a/src/widgets/widget_definitions.rs b/src/widgets/widget_definitions.rs index 26bf0ac..17b7d90 100644 --- a/src/widgets/widget_definitions.rs +++ b/src/widgets/widget_definitions.rs @@ -7,7 +7,7 @@ use gtk::ImageExt; use std::path::Path; // TODO figure out how to -// https://developer.gnome.org/gtk3/stable/GtkFixed.html +// TODO https://developer.gnome.org/gtk3/stable/GtkFixed.html // general attributes @@ -20,6 +20,10 @@ pub(super) fn resolve_widget_attrs(bargs: &mut BuilderArgs, gtk_widget: >k::Wi resolve_str => "halign" => |v| gtk_widget.set_halign(parse_align(&v)), resolve_f64 => "width" => |v| gtk_widget.set_size_request(v as i32, gtk_widget.get_allocated_height()), resolve_f64 => "height" => |v| gtk_widget.set_size_request(gtk_widget.get_allocated_width(), v as i32), + resolve_bool => "visible" => |v| { + // TODO how do i call this only after the widget has been mapped? this is actually an issue,.... + if v { gtk_widget.show(); } else { gtk_widget.hide(); } + } }); } @@ -85,7 +89,6 @@ fn build_gtk_button(bargs: &mut BuilderArgs) -> Result { let gtk_widget = gtk::Button::new(); resolve!(bargs, gtk_widget, { resolve_str => "onclick" => |v| gtk_widget.connect_clicked(move |_| run_command(&v, "")) - }); Ok(gtk_widget) }