Set UIInterfaceOrientationPortraitUpsideDown in Projucer

ios

#1

Hi there!

I’m making an app that needs the ability to be turned upside down on iOS. In the Projucer app there are only 4 options:

  • Default (Portrait and Landscape)
  • Portrait and Landscape
  • Portrait
  • Landscape

I would like to propose to also implement

  • All
  • Portrait and Upside Down

I get that we’re meant to implement the call setOrientationsEnabled(int allowedOrientations) and use the enums
Desktop::DisplayOrientation::upright
Desktop::DisplayOrientation::upsideDown
Desktop::DisplayOrientation::rotatedClockwise
Desktop::DisplayOrientation::rotatedAntiClockwise
Desktop::DisplayOrientation::allOrientations

My problem with this solution is that I have native implementation on iOS and Android, and so I need the flags to be set correctly directly in the plist whenever I run the projucer. Setting the flags above in the Juce part of my app does not have an impact on the native part of my apps. Furthermore I need to implement ViewController specific fixes for each visible VC on iOS for it to understand that I really, really want it to be able to turn. But that is my choice when making a native implementation, so that’s fair.
But I would love if I could set the flags directly from the projucer, as they are reset each time I run it.

The changes needed would be related to a quick fix I made in juicer_ProjectExport_Xcode.h: (see portraitupsidedown)

for (int i = 0; i < (orientationsAreTheSame ? 1 : 2); ++i)
{
    StringArray iOSOrientations;

    if (screenOrientations[i].contains ("portrait"))   { iOSOrientations.add ("UIInterfaceOrientationPortrait"); }
    if (screenOrientations[i].contains ("portraitupsidedown")) { iOSOrientations.add ("UIInterfaceOrientationPortraitUpsideDown"); }
    if (screenOrientations[i].contains ("landscape"))  { iOSOrientations.add ("UIInterfaceOrientationLandscapeLeft"); iOSOrientations.add ("UIInterfaceOrientationLandscapeRight"); }

    addArrayToPlist (dict, String ("UISupportedInterfaceOrientations") + plistSuffix[i], iOSOrientations);
}

Is this something you could think about implementing?
In any case, Thanks!