you just have to hard-code it:
#if JUCE_IOS
DBG( "device description: " << SystemStats::getDeviceDescription() );
auto platform = getPlatform();
if( platform == "iPhone10,3" || platform == "iPhone10,6")
{
//it's an iPhone X
setContentOwned(mcc = new iPhoneXContentComponent(), true);
setUsingNativeTitleBar(true);
}
else
{
setContentOwned(mcc = new MainContentComponent(), true);
setUsingNativeTitleBar(true);
}
#else
setContentOwned(mcc = new MainContentComponent(), true);
setUsingNativeTitleBar(true);
#endif
and
struct iPhoneXContentComponent : public Component
{
ScopedPointer<ChordieApp::MainContentComponent> mcc;
iPhoneXContentComponent();
void paint(Graphics& g) override;
void resized() override;
};
iPhoneXContentComponent::iPhoneXContentComponent()
{
addAndMakeVisible( mcc = new ChordieApp::MainContentComponent() );
auto area = Desktop::getInstance().getDisplays().getMainDisplay().totalArea;
setSize(area.getWidth(), area.getHeight());
DBG( SystemStats::getDeviceDescription() );
}
void iPhoneXContentComponent::paint(Graphics& g)
{
g.fillAll(Colours::white);
}
void iPhoneXContentComponent::resized()
{
//I figured out these values visually by hand via the Simulator for Landscape mode
mcc->setBounds(40, 0, getWidth() - 80, getHeight() - 20);
}
see Get iOS Device for the getPlatform()
code