Add app version and ui orientation settings to iOS
This commit is contained in:
@@ -19,8 +19,6 @@
|
||||
#include "Editor/ProjectInfo.h"
|
||||
#include "Editor/Cooker/GameCooker.h"
|
||||
#include "Editor/Utilities/EditorUtilities.h"
|
||||
#include <ThirdParty/pugixml/pugixml.hpp>
|
||||
using namespace pugi;
|
||||
|
||||
IMPLEMENT_SETTINGS_GETTER(iOSPlatformSettings, iOSPlatform);
|
||||
|
||||
@@ -35,6 +33,21 @@ namespace
|
||||
productName.Replace(TEXT("-"), TEXT(""));
|
||||
return productName;
|
||||
}
|
||||
|
||||
String GetUIInterfaceOrientation(iOSPlatformSettings::UIInterfaceOrientations orientations)
|
||||
{
|
||||
String result;
|
||||
if (EnumHasAnyFlags(orientations, iOSPlatformSettings::UIInterfaceOrientations::Portrait))
|
||||
result += TEXT("UIInterfaceOrientationPortrait ");
|
||||
if (EnumHasAnyFlags(orientations, iOSPlatformSettings::UIInterfaceOrientations::PortraitUpsideDown))
|
||||
result += TEXT("UIInterfaceOrientationPortraitUpsideDown ");
|
||||
if (EnumHasAnyFlags(orientations, iOSPlatformSettings::UIInterfaceOrientations::LandscapeLeft))
|
||||
result += TEXT("UIInterfaceOrientationLandscapeLeft ");
|
||||
if (EnumHasAnyFlags(orientations, iOSPlatformSettings::UIInterfaceOrientations::LandscapeRight))
|
||||
result += TEXT("UIInterfaceOrientationLandscapeRight ");
|
||||
result = result.TrimTrailing();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
const Char* iOSPlatformTools::GetDisplayName() const
|
||||
@@ -179,11 +192,12 @@ bool iOSPlatformTools::OnPostProcess(CookingData& data)
|
||||
configReplaceMap[TEXT("${AppName}")] = appName;
|
||||
configReplaceMap[TEXT("${AppIdentifier}")] = appIdentifier;
|
||||
configReplaceMap[TEXT("${AppTeamId}")] = platformSettings->AppTeamId;
|
||||
configReplaceMap[TEXT("${AppVersion}")] = TEXT("1"); // TODO: expose to iOS platform settings (matches CURRENT_PROJECT_VERSION in XCode)
|
||||
configReplaceMap[TEXT("${AppVersion}")] = platformSettings->AppVersion;
|
||||
configReplaceMap[TEXT("${ProjectName}")] = gameSettings->ProductName;
|
||||
configReplaceMap[TEXT("${ProjectVersion}")] = projectVersion;
|
||||
configReplaceMap[TEXT("${HeaderSearchPaths}")] = Globals::StartupFolder;
|
||||
// TODO: screen rotation settings in XCode project from iOS Platform Settings
|
||||
configReplaceMap[TEXT("${UISupportedInterfaceOrientations_iPhone}")] = GetUIInterfaceOrientation(platformSettings->SupportedInterfaceOrientationsiPhone);
|
||||
configReplaceMap[TEXT("${UISupportedInterfaceOrientations_iPad}")] = GetUIInterfaceOrientation(platformSettings->SupportedInterfaceOrientationsiPad);
|
||||
{
|
||||
// Initialize auto-generated areas as empty
|
||||
configReplaceMap[TEXT("${PBXBuildFile}")] = String::Empty;
|
||||
|
||||
@@ -13,12 +13,47 @@ API_CLASS(sealed, Namespace="FlaxEditor.Content.Settings") class FLAXENGINE_API
|
||||
{
|
||||
DECLARE_SCRIPTING_TYPE_MINIMAL(ApplePlatformSettings);
|
||||
|
||||
/// <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.
|
||||
/// </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 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>
|
||||
@@ -29,6 +64,9 @@ API_CLASS(sealed, Namespace="FlaxEditor.Content.Settings") class FLAXENGINE_API
|
||||
{
|
||||
ApplePlatformSettings::Deserialize(stream, modifier);
|
||||
DESERIALIZE(AppTeamId);
|
||||
DESERIALIZE(AppVersion);
|
||||
DESERIALIZE(SupportedInterfaceOrientationsiPhone);
|
||||
DESERIALIZE(SupportedInterfaceOrientationsiPad);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user