macro_rules! impl_properties_input {
() => {
pub(crate) const SLIDER_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("minimum", PropertyValueKind::Int, true, true),
PropertySchema::new("maximum", PropertyValueKind::Int, true, true),
PropertySchema::new("value", PropertyValueKind::Int, true, true),
PropertySchema::new("single_step", PropertyValueKind::Int, true, true),
PropertySchema::new("page_step", PropertyValueKind::Int, true, true),
PropertySchema::enumerated("orientation", true, true, &["horizontal", "vertical"]),
PropertySchema::enumerated("tick_position", true, true, &["noticks", "left", "right", "ticksbothsides"]),
PropertySchema::new("tick_interval", PropertyValueKind::Int, true, true),
PropertySchema::new("tracking", PropertyValueKind::Bool, true, true),
PropertySchema::new("slider_position", PropertyValueKind::Int, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
pub(crate) const PROGRESS_BAR_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("minimum", PropertyValueKind::Int, true, true),
PropertySchema::new("maximum", PropertyValueKind::Int, true, true),
PropertySchema::new("value", PropertyValueKind::Int, true, true),
PropertySchema::new("text_visible", PropertyValueKind::Bool, true, true),
PropertySchema::enumerated("orientation", true, true, &["horizontal", "vertical"]),
PropertySchema::new("inverted_appearance", PropertyValueKind::Bool, true, true),
PropertySchema::new("progress", PropertyValueKind::Float, true, false),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
pub(crate) const SCROLL_BAR_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("minimum", PropertyValueKind::Int, true, true),
PropertySchema::new("maximum", PropertyValueKind::Int, true, true),
PropertySchema::new("value", PropertyValueKind::Int, true, true),
PropertySchema::new("single_step", PropertyValueKind::Int, true, true),
PropertySchema::new("page_step", PropertyValueKind::Int, true, true),
PropertySchema::enumerated("orientation", true, true, &["horizontal", "vertical"]),
PropertySchema::new("slider_size", PropertyValueKind::Float, true, false),
PropertySchema::new("slider_position", PropertyValueKind::Float, true, false),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
pub(crate) const LIST_BOX_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("item_count", PropertyValueKind::UInt, true, false),
PropertySchema::enumerated("selection_mode", true, true, &["none", "single", "multi", "extended"]),
PropertySchema::new("current_row", PropertyValueKind::UInt, true, true),
PropertySchema::new("item_height", PropertyValueKind::Float, true, true),
PropertySchema::new("selected_count", PropertyValueKind::UInt, true, false),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
pub(crate) const SPIN_BOX_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("minimum", PropertyValueKind::Int, true, true),
PropertySchema::new("maximum", PropertyValueKind::Int, true, true),
PropertySchema::new("value", PropertyValueKind::Int, true, true),
PropertySchema::new("single_step", PropertyValueKind::Int, true, true),
PropertySchema::new("prefix", PropertyValueKind::String, true, true),
PropertySchema::new("suffix", PropertyValueKind::String, true, true),
PropertySchema::new("special_value_text", PropertyValueKind::String, true, true),
PropertySchema::new("wrapping", PropertyValueKind::Bool, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
pub(crate) const COMBO_BOX_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("item_count", PropertyValueKind::UInt, true, false),
PropertySchema::new("current_index", PropertyValueKind::UInt, true, true),
PropertySchema::new("current_text", PropertyValueKind::String, true, true),
PropertySchema::new("editable", PropertyValueKind::Bool, true, true),
PropertySchema::new("max_visible_items", PropertyValueKind::UInt, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
#[cfg(not(alloc_frugal))]
pub(crate) const DIAL_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("minimum", PropertyValueKind::Int, true, true),
PropertySchema::new("maximum", PropertyValueKind::Int, true, true),
PropertySchema::new("value", PropertyValueKind::Int, true, true),
PropertySchema::new("single_step", PropertyValueKind::Int, true, true),
PropertySchema::new("page_step", PropertyValueKind::Int, true, true),
PropertySchema::new("notches_visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("notch_target", PropertyValueKind::Float, true, true),
PropertySchema::new("wrapping", PropertyValueKind::Bool, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
#[cfg(not(alloc_frugal))]
pub(crate) const COMMAND_LINK_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("text", PropertyValueKind::String, true, true),
PropertySchema::new("description", PropertyValueKind::String, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
#[cfg(not(alloc_frugal))]
pub(crate) const FONT_COMBO_BOX_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("current_font_family", PropertyValueKind::String, true, false),
PropertySchema::new("item_count", PropertyValueKind::Int, true, false),
PropertySchema::new("current_index", PropertyValueKind::Int, true, true),
PropertySchema::new("editable", PropertyValueKind::Bool, true, true),
PropertySchema::new("max_visible_items", PropertyValueKind::Int, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
pub(crate) const LINE_EDIT_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("text", PropertyValueKind::String, true, true),
PropertySchema::new("placeholder_text", PropertyValueKind::String, true, true),
PropertySchema::new("max_length", PropertyValueKind::UInt, true, true),
PropertySchema::new("read_only", PropertyValueKind::Bool, true, true),
PropertySchema::new("cursor_position", PropertyValueKind::UInt, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
#[cfg(not(alloc_frugal))]
pub(crate) const TEXT_EDIT_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("text", PropertyValueKind::String, false, false),
PropertySchema::new("placeholder_text", PropertyValueKind::String, false, false),
PropertySchema::new("max_length", PropertyValueKind::UInt, false, false),
PropertySchema::new("read_only", PropertyValueKind::Bool, false, false),
PropertySchema::new("line_wrap", PropertyValueKind::Bool, false, false),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
pub(crate) const SPINNER_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("active", PropertyValueKind::Bool, true, true),
PropertySchema::new("thickness", PropertyValueKind::UInt, true, true),
PropertySchema::new("speed", PropertyValueKind::Float, true, true),
PropertySchema::new("size_ratio", PropertyValueKind::Float, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
pub(crate) const ROLLER_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("selected_index", PropertyValueKind::UInt, true, true),
PropertySchema::new("visible_count", PropertyValueKind::UInt, true, true),
PropertySchema::new("item_count", PropertyValueKind::UInt, true, false),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
pub(crate) const DROPDOWN_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("text", PropertyValueKind::String, true, false),
PropertySchema::new("selected_index", PropertyValueKind::UInt, true, true),
PropertySchema::new("item_count", PropertyValueKind::UInt, true, false),
PropertySchema::new("expanded", PropertyValueKind::Bool, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
pub(crate) const TEXT_AREA_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("text", PropertyValueKind::String, true, true),
PropertySchema::new("placeholder", PropertyValueKind::String, true, true),
PropertySchema::new("read_only", PropertyValueKind::Bool, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
pub(crate) const KEYBOARD_PROPERTIES: &[PropertySchema] = &[
PropertySchema::enumerated("layout", true, true, &["qwerty", "numeric"]),
PropertySchema::new("lowercase", PropertyValueKind::Bool, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
pub(crate) const MARKDOWN_EDITOR_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("text", PropertyValueKind::String, true, true),
PropertySchema::new("preview_mode", PropertyValueKind::Bool, true, true),
PropertySchema::new("line_count", PropertyValueKind::UInt, true, false),
PropertySchema::new("word_count", PropertyValueKind::UInt, true, false),
PropertySchema::new("heading_count", PropertyValueKind::UInt, true, false),
PropertySchema::new("cursor_line", PropertyValueKind::UInt, true, false),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
pub(crate) const SWITCH_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("checked", PropertyValueKind::Bool, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
#[cfg(not(alloc_frugal))]
pub(crate) const SEARCH_BOX_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("text", PropertyValueKind::String, true, true),
PropertySchema::new("placeholder", PropertyValueKind::String, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
#[cfg(not(alloc_frugal))]
pub(crate) const TAG_INPUT_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("tags", PropertyValueKind::String, true, false),
PropertySchema::new("placeholder", PropertyValueKind::String, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
#[cfg(not(alloc_frugal))]
pub(crate) const IME_PREEDIT_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("text", PropertyValueKind::String, true, true),
PropertySchema::new("cursor_position", PropertyValueKind::UInt, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
#[cfg(not(alloc_frugal))]
pub(crate) const INPLACE_EDITOR_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("text", PropertyValueKind::String, true, true),
PropertySchema::new("editing", PropertyValueKind::Bool, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
#[cfg(not(alloc_frugal))]
pub(crate) const CUPERTINO_SLIDER_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("value", PropertyValueKind::Float, true, true),
PropertySchema::new("min", PropertyValueKind::Float, true, true),
PropertySchema::new("max", PropertyValueKind::Float, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
#[cfg(not(alloc_frugal))]
pub(crate) const MASKED_EDIT_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("text", PropertyValueKind::String, true, true),
PropertySchema::new("mask", PropertyValueKind::String, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
#[cfg(not(alloc_frugal))]
pub(crate) const AUTO_COMPLETE_EDIT_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("text", PropertyValueKind::String, true, true),
PropertySchema::new("suggestion_count", PropertyValueKind::UInt, true, false),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
#[cfg(not(alloc_frugal))]
pub(crate) const MULTI_SELECT_COMBO_BOX_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("selected_count", PropertyValueKind::UInt, true, false),
PropertySchema::new("expanded", PropertyValueKind::Bool, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
#[cfg(not(alloc_frugal))]
pub(crate) const RANGE_SLIDER_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("min_value", PropertyValueKind::Float, true, true),
PropertySchema::new("max_value", PropertyValueKind::Float, true, true),
PropertySchema::new("lower", PropertyValueKind::Float, true, true),
PropertySchema::new("upper", PropertyValueKind::Float, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
#[cfg(not(alloc_frugal))]
pub(crate) const FLOATING_LABEL_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("text", PropertyValueKind::String, true, true),
PropertySchema::new("placeholder", PropertyValueKind::String, true, true),
PropertySchema::new("focused", PropertyValueKind::Bool, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
#[cfg(not(alloc_frugal))]
pub(crate) const CUPERTINO_SEGMENTED_CONTROL_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("selected_index", PropertyValueKind::UInt, true, true),
PropertySchema::new("segment_count", PropertyValueKind::UInt, true, false),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
#[cfg(not(alloc_frugal))]
pub(crate) const CUPERTINO_DATE_PICKER_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("selected_date", PropertyValueKind::String, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
#[cfg(not(alloc_frugal))]
pub(crate) const EDITABLE_COMBO_BOX_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("text", PropertyValueKind::String, true, true),
PropertySchema::new("item_count", PropertyValueKind::UInt, true, false),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
#[cfg(not(alloc_frugal))]
pub(crate) const RICH_EDIT_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("text", PropertyValueKind::String, true, true),
PropertySchema::new("line_count", PropertyValueKind::UInt, true, false),
PropertySchema::new("read_only", PropertyValueKind::Bool, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
#[cfg(not(alloc_frugal))]
pub(crate) const SEARCH_BAR_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("text", PropertyValueKind::String, true, true),
PropertySchema::new("placeholder", PropertyValueKind::String, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
#[cfg(not(alloc_frugal))]
pub(crate) const SHORTCUT_EDITOR_PROPERTIES: &[PropertySchema] = &[
PropertySchema::new("filter_text", PropertyValueKind::String, true, true),
PropertySchema::new("enabled", PropertyValueKind::Bool, true, true),
PropertySchema::new("visible", PropertyValueKind::Bool, true, true),
PropertySchema::new("tooltip", PropertyValueKind::String, true, true),
PropertySchema::new("geometry", PropertyValueKind::String, false, false),
];
};
}