#pragma once namespace winrt::RNScreens::implementation { enum class StackPresentation { PUSH, MODAL, TRANSPARENT_MODAL }; enum class StackAnimation { DEFAULT, NONE, FADE, SIMPLE_FROM_BOTTOM, SLIDE_FROM_RIGHT, SLIDE_FROM_LEFT }; enum class ReplaceAnimation { PUSH, POP }; enum class ActivityState { INACTIVE, TRANSITIONING_OR_BELOW_TOP, ON_TOP }; enum class WindowTraits { ORIENTATION, COLOR, STYLE, TRANSLUCENT, HIDDEN, ANIMATED }; class Screen : public winrt::Windows::UI::Xaml::Controls::StackPanelT { public: Screen(winrt::Microsoft::ReactNative::IReactContext reactContext); ~Screen(); void addView(winrt::Windows::UI::Xaml::UIElement element); void removeAllChildren(); void removeChildAt(int64_t index); void replaceChild( winrt::Windows::UI::Xaml::UIElement oldChild, winrt::Windows::UI::Xaml::UIElement newChild); winrt::event_token onLoadingRevoker; void onLoading( winrt::Windows::UI::Xaml::FrameworkElement const &sender, winrt::Windows::Foundation::IInspectable const &args); winrt::event_token onLoadedRevoker; void onLoaded( winrt::Windows::Foundation::IInspectable const &sender, winrt::Windows::UI::Xaml::RoutedEventArgs const &args); winrt::event_token onUnloadedRevoker; void onUnloaded( winrt::Windows::Foundation::IInspectable const &sender, winrt::Windows::UI::Xaml::RoutedEventArgs const &args); void dispatchOnAppear(); void dispatchOnDisappear(); void dispatchOnWillAppear(); void dispatchOnWillDisappear(); private: winrt::Microsoft::ReactNative::IReactContext m_reactContext{nullptr}; }; } // namespace winrt::RNScreens::implementation