use crate::internal::{
ChildFitter, FileSizeStringConverter, ManagedFileChooserFilterViewModel, ManagedFileChooserItemType,
ManagedFileChooserItemViewModel, ManagedFileChooserViewModel, ResourceSelectorConverter,
};
use crate::{AboutFerroDialog, ManagedFileChooser, ManagedFileChooserOverwritePrompt};
use ferroui_base::data::converters::IValueConverter;
use ferroui_base::data::core::ValueTypes;
use ferroui_base::metadata::{MarkupAssembly, MarkupType, MarkupTyped};
use ferroui_base::TypeInfo;
use ferroui_controls::primitives::SelectedItemsList;
use std::rc::Rc;
const NAMESPACES: &[(&str, &str)] = &[
("ferroui_dialogs", "FerroUI.Dialogs"),
("ferroui_dialogs::internal", "FerroUI.Dialogs.Internal"),
];
pub static ASSEMBLY: MarkupAssembly = MarkupAssembly {
name: "FerroUI.Dialogs",
crate_name: "ferroui_dialogs",
xmlns_definitions: &[],
xmlns_prefixes: &[],
metadata: &[],
};
const TYPES: &[&TypeInfo] = &[
AboutFerroDialog::TYPE,
ManagedFileChooser::TYPE,
ManagedFileChooserOverwritePrompt::TYPE,
ChildFitter::TYPE,
ResourceSelectorConverter::TYPE,
];
const MARKUP_TYPES: &[&MarkupType] = &[
<FileSizeStringConverter as MarkupTyped>::MARKUP,
<ManagedFileChooserFilterViewModel as MarkupTyped>::MARKUP,
<ManagedFileChooserItemType as MarkupTyped>::MARKUP,
<ManagedFileChooserItemViewModel as MarkupTyped>::MARKUP,
<ManagedFileChooserViewModel as MarkupTyped>::MARKUP,
];
ferroui_controls::ferro_markup_list!(ItemViewModelList: Rc<ManagedFileChooserItemViewModel>);
ferroui_controls::ferro_markup_list!(FilterViewModelList: Rc<ManagedFileChooserFilterViewModel>);
pub fn register_types() {
static ONCE: std::sync::Once = std::sync::Once::new();
ONCE.call_once(|| {
ferroui_markup_xaml::register_types();
TypeInfo::register_namespaces(NAMESPACES);
TypeInfo::register_all(TYPES);
crate::rust_paths::register_rust_paths();
MarkupType::register_all(MARKUP_TYPES);
ItemViewModelList::register();
FilterViewModelList::register();
ValueTypes::register_global(register_value_types);
MarkupAssembly::register(&ASSEMBLY);
crate::compiled_markup::register();
});
}
fn register_value_types() {
ValueTypes::register_reference::<FileSizeStringConverter>();
ValueTypes::register_reference::<ManagedFileChooserFilterViewModel>();
ValueTypes::register_reference::<ManagedFileChooserItemViewModel>();
ValueTypes::register_reference::<ManagedFileChooserViewModel>();
ValueTypes::register_cast::<Rc<FileSizeStringConverter>, Rc<dyn IValueConverter>>(|c| c.clone());
ValueTypes::register_display::<ManagedFileChooserFilterViewModel>();
ValueTypes::register_nullable::<ManagedFileChooserItemType>();
ValueTypes::register_nullable::<SelectedItemsList>();
}