ssap_app/node_modules/react-native-screens/ios/conversion/RNSConversions-SplitView.mm

146 lines
4.5 KiB
Plaintext

#import "RNSConversions.h"
namespace rnscreens::conversion {
#pragma mark SplitViewHost props
UISplitViewControllerSplitBehavior SplitViewPreferredSplitBehaviorFromHostProp(
facebook::react::RNSSplitViewHostPreferredSplitBehavior splitBehavior)
{
using enum facebook::react::RNSSplitViewHostPreferredSplitBehavior;
switch (splitBehavior) {
case Displace:
return UISplitViewControllerSplitBehaviorDisplace;
case Overlay:
return UISplitViewControllerSplitBehaviorOverlay;
case Tile:
return UISplitViewControllerSplitBehaviorTile;
case Automatic:
default:
return UISplitViewControllerSplitBehaviorAutomatic;
}
}
UISplitViewControllerPrimaryEdge SplitViewPrimaryEdgeFromHostProp(
facebook::react::RNSSplitViewHostPrimaryEdge primaryEdge)
{
using enum facebook::react::RNSSplitViewHostPrimaryEdge;
switch (primaryEdge) {
case Trailing:
return UISplitViewControllerPrimaryEdgeTrailing;
case Leading:
default:
return UISplitViewControllerPrimaryEdgeLeading;
}
}
UISplitViewControllerDisplayMode SplitViewPreferredDisplayModeFromHostProp(
facebook::react::RNSSplitViewHostPreferredDisplayMode displayMode)
{
using enum facebook::react::RNSSplitViewHostPreferredDisplayMode;
switch (displayMode) {
case SecondaryOnly:
return UISplitViewControllerDisplayModeSecondaryOnly;
case OneBesideSecondary:
return UISplitViewControllerDisplayModeOneBesideSecondary;
case OneOverSecondary:
return UISplitViewControllerDisplayModeOneOverSecondary;
case TwoBesideSecondary:
return UISplitViewControllerDisplayModeTwoBesideSecondary;
case TwoOverSecondary:
return UISplitViewControllerDisplayModeTwoOverSecondary;
case TwoDisplaceSecondary:
return UISplitViewControllerDisplayModeTwoDisplaceSecondary;
case Automatic:
default:
return UISplitViewControllerDisplayModeAutomatic;
}
}
UISplitViewControllerDisplayModeButtonVisibility SplitViewDisplayModeButtonVisibilityFromHostProp(
react::RNSSplitViewHostDisplayModeButtonVisibility displayModeButtonVisibility)
{
using enum facebook::react::RNSSplitViewHostDisplayModeButtonVisibility;
switch (displayModeButtonVisibility) {
case Always:
return UISplitViewControllerDisplayModeButtonVisibilityAlways;
case Never:
return UISplitViewControllerDisplayModeButtonVisibilityNever;
case Automatic:
default:
return UISplitViewControllerDisplayModeButtonVisibilityAutomatic;
}
}
std::string UISplitViewControllerDisplayModeToString(UISplitViewControllerDisplayMode displayMode)
{
switch (displayMode) {
case UISplitViewControllerDisplayModeSecondaryOnly:
return "secondaryOnly";
case UISplitViewControllerDisplayModeOneBesideSecondary:
return "oneBesideSecondary";
case UISplitViewControllerDisplayModeOneOverSecondary:
return "oneOverSecondary";
case UISplitViewControllerDisplayModeTwoBesideSecondary:
return "twoBesideSecondary";
case UISplitViewControllerDisplayModeTwoOverSecondary:
return "twoOverSecondary";
case UISplitViewControllerDisplayModeTwoDisplaceSecondary:
return "twoDisplaceSecondary";
case UISplitViewControllerDisplayModeAutomatic:
default:
return "automatic";
}
}
RNSOrientation RNSOrientationFromRNSSplitViewHostOrientation(react::RNSSplitViewHostOrientation orientation)
{
using enum facebook::react::RNSSplitViewHostOrientation;
switch (orientation) {
case Inherit:
return RNSOrientationInherit;
case All:
return RNSOrientationAll;
case AllButUpsideDown:
return RNSOrientationAllButUpsideDown;
case Portrait:
return RNSOrientationPortrait;
case PortraitUp:
return RNSOrientationPortraitUp;
case PortraitDown:
return RNSOrientationPortraitDown;
case Landscape:
return RNSOrientationLandscape;
case LandscapeLeft:
return RNSOrientationLandscapeLeft;
case LandscapeRight:
return RNSOrientationLandscapeRight;
default:
RCTLogError(@"[RNScreens] unsupported orientation");
return RNSOrientationInherit;
}
}
#pragma mark SplitViewScreen props
RNSSplitViewScreenColumnType RNSSplitViewScreenColumnTypeFromScreenProp(
facebook::react::RNSSplitViewScreenColumnType columnType)
{
using enum facebook::react::RNSSplitViewScreenColumnType;
switch (columnType) {
case Inspector:
return RNSSplitViewScreenColumnTypeInspector;
case Column:
default:
return RNSSplitViewScreenColumnTypeColumn;
}
}
}; // namespace rnscreens::conversion