use crate::GridLength;
use ferroui_base::{
ferro_class, ferro_class_info, ferro_properties, instantiate, FerroObject, FerroObjectImpl, FerroProperty, Ref,
StyledProperty,
};
#[repr(C)]
pub struct SplitViewTemplateSettings {
base: FerroObject,
}
ferro_class!(SplitViewTemplateSettings: FerroObject);
ferro_class_info!(SplitViewTemplateSettings {});
ferroui_base::ferro_impl_classes!(SplitViewTemplateSettings: FerroObjectImpl);
ferro_properties! {
impl SplitViewTemplateSettings {
pub fn closed_pane_width_property() -> StyledProperty<f64> {
FerroProperty::register::<SplitViewTemplateSettings, _>("ClosedPaneWidth", 0.0)
}
pub fn pane_column_grid_length_property() -> StyledProperty<GridLength> {
FerroProperty::register::<SplitViewTemplateSettings, _>("PaneColumnGridLength", GridLength::default())
}
pub fn closed_pane_height_property() -> StyledProperty<f64> {
FerroProperty::register::<SplitViewTemplateSettings, _>("ClosedPaneHeight", 0.0)
}
pub fn pane_row_grid_length_property() -> StyledProperty<GridLength> {
FerroProperty::register::<SplitViewTemplateSettings, _>("PaneRowGridLength", GridLength::default())
}
}
}
impl SplitViewTemplateSettings {
pub(crate) fn new() -> Ref<Self> {
instantiate(Self { base: FerroObject::construct() })
}
pub fn closed_pane_width(&self) -> f64 {
self.get_value(Self::closed_pane_width_property())
}
pub(crate) fn set_closed_pane_width(&self, value: f64) {
self.set_value(Self::closed_pane_width_property(), value)
}
pub fn pane_column_grid_length(&self) -> GridLength {
self.get_value(Self::pane_column_grid_length_property())
}
pub(crate) fn set_pane_column_grid_length(&self, value: GridLength) {
self.set_value(Self::pane_column_grid_length_property(), value)
}
pub fn closed_pane_height(&self) -> f64 {
self.get_value(Self::closed_pane_height_property())
}
pub(crate) fn set_closed_pane_height(&self, value: f64) {
self.set_value(Self::closed_pane_height_property(), value)
}
pub fn pane_row_grid_length(&self) -> GridLength {
self.get_value(Self::pane_row_grid_length_property())
}
pub(crate) fn set_pane_row_grid_length(&self, value: GridLength) {
self.set_value(Self::pane_row_grid_length_property(), value)
}
}