| 12345678910111213141516171819202122232425262728293031323334353637383940 | 
							- /*
 
-  * prepare_ios.mm, part of VCMI engine
 
-  *
 
-  * Authors: listed in file AUTHORS in main folder
 
-  *
 
-  * License: GNU General Public License v2.0 or later
 
-  * Full text of license available in license.txt file, in main folder
 
-  *
 
-  */
 
- #include "StdInc.h"
 
- #include "prepare_p.h"
 
- #import <UIKit/UIKit.h>
 
- #include <objc/runtime.h>
 
- namespace
 
- {
 
- UIInterfaceOrientationMask swizzled_supportedInterfaceOrientationsForWindow
 
- 	(id __unused self, SEL __unused _cmd, UIApplication * __unused application, UIWindow * __unused _Nullable window)
 
- {
 
- 	if(UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad)
 
- 		return UIInterfaceOrientationMaskAll;
 
- 	return UIInterfaceOrientationMaskLandscape;
 
- }
 
- }
 
- namespace launcher
 
- {
 
- void prepareIos()
 
- {
 
- 	auto sel = @selector(application:supportedInterfaceOrientationsForWindow:);
 
- 	auto methodDesc = protocol_getMethodDescription(@protocol(UIApplicationDelegate), sel, NO, YES);
 
- 	auto appDelegateClass = object_getClass(UIApplication.sharedApplication.delegate);
 
- 	[[maybe_unused]] auto existingImp = class_replaceMethod(
 
- 		appDelegateClass, sel, (IMP)swizzled_supportedInterfaceOrientationsForWindow, methodDesc.types);
 
- 	// also check implementation in qtbase - src/plugins/platforms/ios/qiosapplicationdelegate.mm
 
- 	NSCAssert(existingImp == nullptr, @"original app delegate has this method, don't ignore it");
 
- }
 
- }
 
 
  |