rust_widgets 1.0.0

Pure Rust cross-platform native GUI library with hardware-adaptive rendering, 60+ widgets, touch/gesture support, i18n, and SVG-pipeline-accurate output
#[cfg(not(feature = "mini"))]
pub fn read_dialog_props(
    widget: &dyn Widget,
    property_name: &str,
) -> Result<CapabilityValue, CapabilityAccessError> {
    match widget.kind() {
        WidgetKind::ColorDialog => match property_name {
        "hex_rgba" => {
        if let Some(cp) = widget_as::<ColorPicker>(widget) {
        Ok(CapabilityValue::String(cp.hex_rgba().to_string()))
        } else {
        Err(CapabilityAccessError::UnsupportedOnWidget)
        }
        }
        "show_alpha" => {
        if let Some(cp) = widget_as::<ColorPicker>(widget) {
        Ok(CapabilityValue::Bool(cp.show_alpha()))
        } else {
        Err(CapabilityAccessError::UnsupportedOnWidget)
        }
        }
        _ => Err(CapabilityAccessError::UnsupportedOnWidget),
        },
        WidgetKind::MessageBox => match property_name {
        "title" => {
        if let Some(mb) = widget_as::<MessageBox>(widget) {
        Ok(CapabilityValue::String(mb.title().to_string()))
        } else {
        Err(CapabilityAccessError::UnsupportedOnWidget)
        }
        }
        "text" => {
        if let Some(mb) = widget_as::<MessageBox>(widget) {
        Ok(CapabilityValue::String(mb.text().to_string()))
        } else {
        Err(CapabilityAccessError::UnsupportedOnWidget)
        }
        }
        _ => Err(CapabilityAccessError::UnsupportedOnWidget),
        },
        WidgetKind::FileDialog => match property_name {
        "title" => {
        if let Some(fd) = widget_as::<FileDialog>(widget) {
        Ok(CapabilityValue::String(fd.title().to_string()))
        } else {
        Err(CapabilityAccessError::UnsupportedOnWidget)
        }
        }
        "modal" => {
        if let Some(fd) = widget_as::<FileDialog>(widget) {
        Ok(CapabilityValue::Bool(fd.is_modal()))
        } else {
        Err(CapabilityAccessError::UnsupportedOnWidget)
        }
        }
        _ => Err(CapabilityAccessError::UnsupportedOnWidget),
        },
        WidgetKind::FontDialog => match property_name {
        "modal" => {
        if let Some(fd) = widget_as::<FontDialog>(widget) {
        Ok(CapabilityValue::Bool(fd.is_modal()))
        } else {
        Err(CapabilityAccessError::UnsupportedOnWidget)
        }
        }
        _ => Err(CapabilityAccessError::UnsupportedOnWidget),
        },
        WidgetKind::InputDialog => match property_name {
        "title" => {
        if let Some(id) = widget_as::<InputDialog>(widget) {
        Ok(CapabilityValue::String(id.title().to_string()))
        } else {
        Err(CapabilityAccessError::UnsupportedOnWidget)
        }
        }
        "label_text" => {
        if let Some(id) = widget_as::<InputDialog>(widget) {
        Ok(CapabilityValue::String(id.label_text().to_string()))
        } else {
        Err(CapabilityAccessError::UnsupportedOnWidget)
        }
        }
        _ => Err(CapabilityAccessError::UnsupportedOnWidget),
        },
        WidgetKind::ProgressDialog => match property_name {
        "title" => {
        if let Some(pd) = widget_as::<ProgressDialog>(widget) {
        Ok(CapabilityValue::String(pd.title().to_string()))
        } else {
        Err(CapabilityAccessError::UnsupportedOnWidget)
        }
        }
        "label_text" => {
        if let Some(pd) = widget_as::<ProgressDialog>(widget) {
        Ok(CapabilityValue::String(pd.label_text().to_string()))
        } else {
        Err(CapabilityAccessError::UnsupportedOnWidget)
        }
        }
        _ => Err(CapabilityAccessError::UnsupportedOnWidget),
        },
        WidgetKind::PopupWindow => match property_name {
        "has_content" => {
        if let Some(pw) = widget_as::<PopupWindow>(widget) {
        Ok(CapabilityValue::Bool(pw.content_widget().is_some()))
        } else {
        Err(CapabilityAccessError::UnsupportedOnWidget)
        }
        }
        _ => Err(CapabilityAccessError::UnsupportedOnWidget),
        },
        _ => Err(CapabilityAccessError::UnsupportedOnWidget),
    }
}