|
|
|
@ -1,10 +1,20 @@ |
|
|
|
#include "common.h" |
|
|
|
#include "AvnString.h" |
|
|
|
@interface AvnAppDelegate : NSObject<NSApplicationDelegate> |
|
|
|
-(AvnAppDelegate* _Nonnull) initWithEvents: (IAvnApplicationEvents* _Nonnull) events; |
|
|
|
@end |
|
|
|
|
|
|
|
NSApplicationActivationPolicy AvnDesiredActivationPolicy = NSApplicationActivationPolicyRegular; |
|
|
|
|
|
|
|
@implementation AvnAppDelegate |
|
|
|
ComPtr<IAvnApplicationEvents> _events; |
|
|
|
|
|
|
|
- (AvnAppDelegate *)initWithEvents:(IAvnApplicationEvents *)events |
|
|
|
{ |
|
|
|
_events = events; |
|
|
|
return self; |
|
|
|
} |
|
|
|
|
|
|
|
- (void)applicationWillFinishLaunching:(NSNotification *)notification |
|
|
|
{ |
|
|
|
if([[NSApplication sharedApplication] activationPolicy] != AvnDesiredActivationPolicy) |
|
|
|
@ -27,11 +37,16 @@ NSApplicationActivationPolicy AvnDesiredActivationPolicy = NSApplicationActivati |
|
|
|
[[NSRunningApplication currentApplication] activateWithOptions:NSApplicationActivateIgnoringOtherApps]; |
|
|
|
} |
|
|
|
|
|
|
|
- (void)application:(NSApplication *)sender openFiles:(NSArray<NSString *> *)filenames |
|
|
|
{ |
|
|
|
auto array = CreateAvnStringArray(filenames); |
|
|
|
|
|
|
|
_events->FilesOpened(array); |
|
|
|
} |
|
|
|
@end |
|
|
|
|
|
|
|
@interface AvnApplication : NSApplication |
|
|
|
|
|
|
|
|
|
|
|
@end |
|
|
|
|
|
|
|
@implementation AvnApplication |
|
|
|
@ -63,9 +78,9 @@ NSApplicationActivationPolicy AvnDesiredActivationPolicy = NSApplicationActivati |
|
|
|
|
|
|
|
@end |
|
|
|
|
|
|
|
extern void InitializeAvnApp() |
|
|
|
extern void InitializeAvnApp(IAvnApplicationEvents* events) |
|
|
|
{ |
|
|
|
NSApplication* app = [AvnApplication sharedApplication]; |
|
|
|
id delegate = [AvnAppDelegate new]; |
|
|
|
id delegate = [[AvnAppDelegate alloc] initWithEvents:events]; |
|
|
|
[app setDelegate:delegate]; |
|
|
|
} |
|
|
|
|