1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /*
- * startSDL.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"
- #import "startSDL.h"
- #import "GameChatKeyboardHandler.h"
- #include "../Global.h"
- #include "CMT.h"
- #include "CServerHandler.h"
- #include "CFocusableHelper.h"
- #include <SDL_main.h>
- #include <SDL_events.h>
- #include <SDL_render.h>
- #include <SDL_system.h>
- #import <UIKit/UIKit.h>
- @interface SDLViewObserver : NSObject <UIGestureRecognizerDelegate>
- @property (nonatomic, strong) GameChatKeyboardHandler * gameChatHandler;
- @end
- @implementation SDLViewObserver
- @end
- int startSDL(int argc, char * argv[], BOOL startManually)
- {
- @autoreleasepool {
- auto observer = [SDLViewObserver new];
- observer.gameChatHandler = [GameChatKeyboardHandler new];
- id textFieldObserver = [NSNotificationCenter.defaultCenter addObserverForName:UITextFieldTextDidEndEditingNotification object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) {
- removeFocusFromActiveInput();
- }];
- int result;
- if (startManually)
- {
- // copied from -[SDLUIKitDelegate postFinishLaunch]
- SDL_SetMainReady();
- SDL_iOSSetEventPump(SDL_TRUE);
- result = SDL_main(argc, argv);
- SDL_iOSSetEventPump(SDL_FALSE);
- }
- else
- result = SDL_UIKitRunApp(argc, argv, SDL_main);
- [NSNotificationCenter.defaultCenter removeObserver:textFieldObserver];
- return result;
- }
- }
|