amis-rpc-design/node_modules/react-native-screens/windows/RNScreens/Screen.h
2023-10-07 19:42:30 +08:00

65 lines
1.7 KiB
C++

#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<Screen> {
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