Files
FlaxEngine/Source/Engine/Platform/iOS/iOSPlatformSettings.h
2023-06-12 14:44:12 +02:00

100 lines
3.9 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
#pragma once
#if PLATFORM_IOS || USE_EDITOR
#include "../Apple/ApplePlatformSettings.h"
/// <summary>
/// iOS platform settings.
/// </summary>
API_CLASS(Sealed, Namespace="FlaxEditor.Content.Settings") class FLAXENGINE_API iOSPlatformSettings : public ApplePlatformSettings
{
DECLARE_SCRIPTING_TYPE_MINIMAL(ApplePlatformSettings);
/// <summary>
/// The app export destination methods.
/// </summary>
API_ENUM() enum class ExportMethods
{
// Distribute using TestFlight or through the App Store.
AppStore,
// Distribute to a limited number of devices you register in App Store Connect.
Development,
// Distribute to a limited number of devices you register in App Store Connect.
AdHoc,
// Distribute to members of your organization if youre a part of the Apple Developer Enterprise Program and are ready to release your app to users in your organization.
Enterprise,
};
/// <summary>
/// The display orientation modes. Can be combined as flags.
/// </summary>
API_ENUM(Attributes="Flags") enum class UIInterfaceOrientations
{
// The device is in portrait mode, with the device upright and the Home button on the bottom.
Portrait = 1,
// The device is in portrait mode but is upside down, with the device upright and the Home button at the top.
PortraitUpsideDown = 2,
// The device is in landscape mode, with the device upright and the Home button on the left.
LandscapeLeft = 4,
// The device is in landscape mode, with the device upright and the Home button on the right.
LandscapeRight = 8,
// The all modes.
All = Portrait | PortraitUpsideDown | LandscapeLeft | LandscapeRight
};
/// <summary>
/// The app developer name - App Store Team ID. For example: 'VG6K6HT8B'.
/// </summary>
API_FIELD(Attributes="EditorOrder(10), EditorDisplay(\"General\")")
String AppTeamId;
/// <summary>
/// The app version number (matches CURRENT_PROJECT_VERSION in XCode).
/// </summary>
API_FIELD(Attributes="EditorOrder(20), EditorDisplay(\"General\")")
String AppVersion = TEXT("1");
/// <summary>
/// The app export mode (if automatic packaging is not disabled via Build Settings, otherwise export app manually via XCode project).
/// </summary>
API_FIELD(Attributes="EditorOrder(50), EditorDisplay(\"General\")")
ExportMethods ExportMethod = ExportMethods::Development;
/// <summary>
/// The UI interface orientation modes supported on iPhone devices.
/// </summary>
API_FIELD(Attributes="EditorOrder(200), EditorDisplay(\"UI\", \"Supported Interface Orientations (iPhone)\")")
UIInterfaceOrientations SupportedInterfaceOrientationsiPhone = UIInterfaceOrientations::All;
/// <summary>
/// The UI interface orientation modes supported on iPad devices.
/// </summary>
API_FIELD(Attributes="EditorOrder(210), EditorDisplay(\"UI\", \"Supported Interface Orientations (iPad)\")")
UIInterfaceOrientations SupportedInterfaceOrientationsiPad = UIInterfaceOrientations::All;
/// <summary>
/// Gets the instance of the settings asset (default value if missing). Object returned by this method is always loaded with valid data to use.
/// </summary>
static iOSPlatformSettings* Get();
// [SettingsBase]
void Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) final override
{
ApplePlatformSettings::Deserialize(stream, modifier);
DESERIALIZE(AppTeamId);
DESERIALIZE(AppVersion);
DESERIALIZE(ExportMethod);
DESERIALIZE(SupportedInterfaceOrientationsiPhone);
DESERIALIZE(SupportedInterfaceOrientationsiPad);
}
};
#if PLATFORM_IOS
typedef iOSPlatformSettings PlatformSettings;
#endif
#endif