// ****************************************************** //
// Generated by scripts\controls.py
// ****************************************************** //
#include "pch.h"
#include "_winui.h"

template <> struct cvt<Microsoft::UI::Composition::CompositionAnimation>  {
    typedef Microsoft::UI::Composition::CompositionAnimation natural_t;
    typedef const natural_t& cself_t;
    typedef natural_t& self_t;
    typedef typename ::pywinui::holder<natural_t> py_t;
    typedef typename IInspectable arg_t;
    typedef cvt<Microsoft::UI::Composition::CompositionAnimation> param_t;
    std::optional<natural_t> value;
    cvt(arg_t t) : value(t.try_as<natural_t>()) { }
    py_t ret() { return ::pywinui::holder<natural_t>(value.value_or(nullptr)); }
    operator py_t () const { return ::pywinui::holder<natural_t>(value.value_or(nullptr)); }
    operator const natural_t & () const { return value.value_or(nullptr); }
    operator Microsoft::UI::Composition::ICompositionAnimationBase () const { return value ? value->as<Microsoft::UI::Composition::ICompositionAnimationBase>() : nullptr; }
};

template <> struct cvt<Microsoft::UI::Composition::ExpressionAnimation>  {
    typedef Microsoft::UI::Composition::ExpressionAnimation natural_t;
    typedef const natural_t& cself_t;
    typedef natural_t& self_t;
    typedef typename ::pywinui::holder<natural_t> py_t;
    typedef typename IInspectable arg_t;
    typedef cvt<Microsoft::UI::Composition::ExpressionAnimation> param_t;
    std::optional<natural_t> value;
    cvt(arg_t t) : value(t.try_as<natural_t>()) { }
    py_t ret() { return ::pywinui::holder<natural_t>(value.value_or(nullptr)); }
    operator py_t () const { return ::pywinui::holder<natural_t>(value.value_or(nullptr)); }
    operator const natural_t & () const { return value.value_or(nullptr); }
    operator Microsoft::UI::Composition::ICompositionAnimationBase () const { return value ? value->as<Microsoft::UI::Composition::ICompositionAnimationBase>() : nullptr; }
};

template <> struct cvt<Microsoft::UI::Composition::KeyFrameAnimation>  {
    typedef Microsoft::UI::Composition::KeyFrameAnimation natural_t;
    typedef const natural_t& cself_t;
    typedef natural_t& self_t;
    typedef typename ::pywinui::holder<natural_t> py_t;
    typedef typename IInspectable arg_t;
    typedef cvt<Microsoft::UI::Composition::KeyFrameAnimation> param_t;
    std::optional<natural_t> value;
    cvt(arg_t t) : value(t.try_as<natural_t>()) { }
    py_t ret() { return ::pywinui::holder<natural_t>(value.value_or(nullptr)); }
    operator py_t () const { return ::pywinui::holder<natural_t>(value.value_or(nullptr)); }
    operator const natural_t & () const { return value.value_or(nullptr); }
    operator Microsoft::UI::Composition::ICompositionAnimationBase () const { return value ? value->as<Microsoft::UI::Composition::ICompositionAnimationBase>() : nullptr; }
};

template <> struct cvt<Microsoft::UI::Composition::NaturalMotionAnimation>  {
    typedef Microsoft::UI::Composition::NaturalMotionAnimation natural_t;
    typedef const natural_t& cself_t;
    typedef natural_t& self_t;
    typedef typename ::pywinui::holder<natural_t> py_t;
    typedef typename IInspectable arg_t;
    typedef cvt<Microsoft::UI::Composition::NaturalMotionAnimation> param_t;
    std::optional<natural_t> value;
    cvt(arg_t t) : value(t.try_as<natural_t>()) { }
    py_t ret() { return ::pywinui::holder<natural_t>(value.value_or(nullptr)); }
    operator py_t () const { return ::pywinui::holder<natural_t>(value.value_or(nullptr)); }
    operator const natural_t & () const { return value.value_or(nullptr); }
    operator Microsoft::UI::Composition::ICompositionAnimationBase () const { return value ? value->as<Microsoft::UI::Composition::ICompositionAnimationBase>() : nullptr; }
};

template <> struct cvt<Microsoft::UI::Composition::SpringVector3NaturalMotionAnimation>  {
    typedef Microsoft::UI::Composition::SpringVector3NaturalMotionAnimation natural_t;
    typedef const natural_t& cself_t;
    typedef natural_t& self_t;
    typedef typename ::pywinui::holder<natural_t> py_t;
    typedef typename IInspectable arg_t;
    typedef cvt<Microsoft::UI::Composition::SpringVector3NaturalMotionAnimation> param_t;
    std::optional<natural_t> value;
    cvt(arg_t t) : value(t.try_as<natural_t>()) { }
    py_t ret() { return ::pywinui::holder<natural_t>(value.value_or(nullptr)); }
    operator py_t () const { return ::pywinui::holder<natural_t>(value.value_or(nullptr)); }
    operator const natural_t & () const { return value.value_or(nullptr); }
    operator Microsoft::UI::Composition::ICompositionAnimationBase () const { return value ? value->as<Microsoft::UI::Composition::ICompositionAnimationBase>() : nullptr; }
};

template <> struct cvt<Microsoft::UI::Composition::Vector3NaturalMotionAnimation>  {
    typedef Microsoft::UI::Composition::Vector3NaturalMotionAnimation natural_t;
    typedef const natural_t& cself_t;
    typedef natural_t& self_t;
    typedef typename ::pywinui::holder<natural_t> py_t;
    typedef typename IInspectable arg_t;
    typedef cvt<Microsoft::UI::Composition::Vector3NaturalMotionAnimation> param_t;
    std::optional<natural_t> value;
    cvt(arg_t t) : value(t.try_as<natural_t>()) { }
    py_t ret() { return ::pywinui::holder<natural_t>(value.value_or(nullptr)); }
    operator py_t () const { return ::pywinui::holder<natural_t>(value.value_or(nullptr)); }
    operator const natural_t & () const { return value.value_or(nullptr); }
    operator Microsoft::UI::Composition::ICompositionAnimationBase () const { return value ? value->as<Microsoft::UI::Composition::ICompositionAnimationBase>() : nullptr; }
};


PYBIND11_EMBEDDED_MODULE(_winui_Microsoft_UI_Xaml, m) {
    py::enum_<Microsoft::UI::Xaml::Visibility>(m, "Microsoft.UI.Xaml.Visibility")
        .value("Visible", Microsoft::UI::Xaml::Visibility::Visible)
        .value("Collapsed", Microsoft::UI::Xaml::Visibility::Collapsed)
    ;

    py::class_<Microsoft::UI::Xaml::BringIntoViewOptions, ::pywinui::holder<Microsoft::UI::Xaml::BringIntoViewOptions>, Windows::Foundation::IInspectable>(m, "Microsoft.UI.Xaml.BringIntoViewOptions")
        .def(py::init([](const ::winrt::Windows::Foundation::IInspectable &unk) { return ::pywinui::hold(unk.as<Microsoft::UI::Xaml::BringIntoViewOptions>()); }))
        .def("__repr__", [](typename cvt<Microsoft::UI::Xaml::BringIntoViewOptions>::cself_t _self) { return default_repr(cvt<Microsoft::UI::Xaml::BringIntoViewOptions>(_self)); } )
        .def(py::init([]() { Microsoft::UI::Xaml::BringIntoViewOptions inst{  }; return cvt_out(inst); }))
        .def_property("HorizontalAlignmentRatio", [](typename cvt<Microsoft::UI::Xaml::BringIntoViewOptions>::cself_t _self) { return cvt_out(_self.HorizontalAlignmentRatio()); }, [](typename cvt<Microsoft::UI::Xaml::BringIntoViewOptions>::self_t _self, typename cvt<decltype(_self.HorizontalAlignmentRatio())>::arg_t v) { cvt<decltype(_self.HorizontalAlignmentRatio())>::param_t cvt_v{v}; _self.HorizontalAlignmentRatio(cvt_v); })
        .def_property("HorizontalOffset", [](typename cvt<Microsoft::UI::Xaml::BringIntoViewOptions>::cself_t _self) { return cvt_out(_self.HorizontalOffset()); }, [](typename cvt<Microsoft::UI::Xaml::BringIntoViewOptions>::self_t _self, typename cvt<decltype(_self.HorizontalOffset())>::arg_t v) { cvt<decltype(_self.HorizontalOffset())>::param_t cvt_v{v}; _self.HorizontalOffset(cvt_v); })
        .def_property("VerticalAlignmentRatio", [](typename cvt<Microsoft::UI::Xaml::BringIntoViewOptions>::cself_t _self) { return cvt_out(_self.VerticalAlignmentRatio()); }, [](typename cvt<Microsoft::UI::Xaml::BringIntoViewOptions>::self_t _self, typename cvt<decltype(_self.VerticalAlignmentRatio())>::arg_t v) { cvt<decltype(_self.VerticalAlignmentRatio())>::param_t cvt_v{v}; _self.VerticalAlignmentRatio(cvt_v); })
        .def_property("VerticalOffset", [](typename cvt<Microsoft::UI::Xaml::BringIntoViewOptions>::cself_t _self) { return cvt_out(_self.VerticalOffset()); }, [](typename cvt<Microsoft::UI::Xaml::BringIntoViewOptions>::self_t _self, typename cvt<decltype(_self.VerticalOffset())>::arg_t v) { cvt<decltype(_self.VerticalOffset())>::param_t cvt_v{v}; _self.VerticalOffset(cvt_v); })
    ;
    py::class_<Microsoft::UI::Xaml::DependencyObject, ::pywinui::holder<Microsoft::UI::Xaml::DependencyObject>, Windows::Foundation::IInspectable>(m, "Microsoft.UI.Xaml.DependencyObject")
        .def(py::init([](const ::winrt::Windows::Foundation::IInspectable &unk) { return ::pywinui::hold(unk.as<Microsoft::UI::Xaml::DependencyObject>()); }))
        .def("__repr__", [](typename cvt<Microsoft::UI::Xaml::DependencyObject>::cself_t _self) { return default_repr(cvt<Microsoft::UI::Xaml::DependencyObject>(_self)); } )
    ;
    py::class_<Microsoft::UI::Xaml::FrameworkElement, ::pywinui::holder<Microsoft::UI::Xaml::FrameworkElement>, Windows::Foundation::IInspectable>(m, "Microsoft.UI.Xaml.FrameworkElement")
        .def(py::init([](const ::winrt::Windows::Foundation::IInspectable &unk) { return ::pywinui::hold(unk.as<Microsoft::UI::Xaml::FrameworkElement>()); }))
        .def("__repr__", [](typename cvt<Microsoft::UI::Xaml::FrameworkElement>::cself_t _self) { return default_repr(cvt<Microsoft::UI::Xaml::FrameworkElement>(_self)); } )
        .def_property_readonly("DataContext", [](typename cvt<Microsoft::UI::Xaml::FrameworkElement>::cself_t _self) { return cvt_out(_self.DataContext()); })
        .def_property("Visibility", [](typename cvt<Microsoft::UI::Xaml::FrameworkElement>::cself_t _self) { return cvt_out(_self.Visibility()); }, [](typename cvt<Microsoft::UI::Xaml::FrameworkElement>::self_t _self, typename cvt<decltype(_self.Visibility())>::arg_t v) { cvt<decltype(_self.Visibility())>::param_t cvt_v{v}; _self.Visibility(cvt_v); })
        .def("StartAnimation", [](typename cvt<Microsoft::UI::Xaml::FrameworkElement>::self_t _self, typename cvt<Microsoft::UI::Composition::CompositionAnimation>::arg_t animation) {cvt<Microsoft::UI::Composition::CompositionAnimation>::param_t cvt_animation{ animation }; ensure_void<decltype(_self.StartAnimation(cvt_animation))> ensure; (void)ensure;(_self.StartAnimation(cvt_animation)); })
        .def("StopAnimation", [](typename cvt<Microsoft::UI::Xaml::FrameworkElement>::self_t _self, typename cvt<Microsoft::UI::Composition::CompositionAnimation>::arg_t animation) {cvt<Microsoft::UI::Composition::CompositionAnimation>::param_t cvt_animation{ animation }; ensure_void<decltype(_self.StopAnimation(cvt_animation))> ensure; (void)ensure;(_self.StopAnimation(cvt_animation)); })
    ;
    py::class_<Microsoft::UI::Xaml::RoutedEventArgs, ::pywinui::holder<Microsoft::UI::Xaml::RoutedEventArgs>, Windows::Foundation::IInspectable>(m, "Microsoft.UI.Xaml.RoutedEventArgs")
        .def(py::init([](const ::winrt::Windows::Foundation::IInspectable &unk) { return ::pywinui::hold(unk.as<Microsoft::UI::Xaml::RoutedEventArgs>()); }))
        .def("__repr__", [](typename cvt<Microsoft::UI::Xaml::RoutedEventArgs>::cself_t _self) { return default_repr(cvt<Microsoft::UI::Xaml::RoutedEventArgs>(_self)); } )
        .def_property_readonly("OriginalSource", [](typename cvt<Microsoft::UI::Xaml::RoutedEventArgs>::cself_t _self) { return cvt_out(_self.OriginalSource()); })
    ;
    py::class_<Microsoft::UI::Xaml::UIElement, ::pywinui::holder<Microsoft::UI::Xaml::UIElement>, Windows::Foundation::IInspectable>(m, "Microsoft.UI.Xaml.UIElement")
        .def(py::init([](const ::winrt::Windows::Foundation::IInspectable &unk) { return ::pywinui::hold(unk.as<Microsoft::UI::Xaml::UIElement>()); }))
        .def("__repr__", [](typename cvt<Microsoft::UI::Xaml::UIElement>::cself_t _self) { return default_repr(cvt<Microsoft::UI::Xaml::UIElement>(_self)); } )
        .def_property("Visibility", [](typename cvt<Microsoft::UI::Xaml::UIElement>::cself_t _self) { return cvt_out(_self.Visibility()); }, [](typename cvt<Microsoft::UI::Xaml::UIElement>::self_t _self, typename cvt<decltype(_self.Visibility())>::arg_t v) { cvt<decltype(_self.Visibility())>::param_t cvt_v{v}; _self.Visibility(cvt_v); })
        .def("StartAnimation", [](typename cvt<Microsoft::UI::Xaml::UIElement>::self_t _self, typename cvt<Microsoft::UI::Composition::CompositionAnimation>::arg_t animation) {cvt<Microsoft::UI::Composition::CompositionAnimation>::param_t cvt_animation{ animation }; ensure_void<decltype(_self.StartAnimation(cvt_animation))> ensure; (void)ensure;(_self.StartAnimation(cvt_animation)); })
        .def("StopAnimation", [](typename cvt<Microsoft::UI::Xaml::UIElement>::self_t _self, typename cvt<Microsoft::UI::Composition::CompositionAnimation>::arg_t animation) {cvt<Microsoft::UI::Composition::CompositionAnimation>::param_t cvt_animation{ animation }; ensure_void<decltype(_self.StopAnimation(cvt_animation))> ensure; (void)ensure;(_self.StopAnimation(cvt_animation)); })
    ;
    py::class_<Microsoft::UI::Xaml::Window, ::pywinui::holder<Microsoft::UI::Xaml::Window>, Windows::Foundation::IInspectable>(m, "Microsoft.UI.Xaml.Window")
        .def(py::init([](const ::winrt::Windows::Foundation::IInspectable &unk) { return ::pywinui::hold(unk.as<Microsoft::UI::Xaml::Window>()); }))
        .def("__repr__", [](typename cvt<Microsoft::UI::Xaml::Window>::cself_t _self) { return default_repr(cvt<Microsoft::UI::Xaml::Window>(_self)); } )
        .def("Activate", [](typename cvt<Microsoft::UI::Xaml::Window>::self_t _self) {ensure_void<decltype(_self.Activate())> ensure; (void)ensure;(_self.Activate()); })
        .def("Close", [](typename cvt<Microsoft::UI::Xaml::Window>::self_t _self) {ensure_void<decltype(_self.Close())> ensure; (void)ensure;(_self.Close()); })
        .def("SetTitleBar", [](typename cvt<Microsoft::UI::Xaml::Window>::self_t _self, typename cvt<Microsoft::UI::Xaml::UIElement>::arg_t titleBar) {cvt<Microsoft::UI::Xaml::UIElement>::param_t cvt_titleBar{ titleBar }; ensure_void<decltype(_self.SetTitleBar(cvt_titleBar))> ensure; (void)ensure;(_self.SetTitleBar(cvt_titleBar)); })
    ;
}
