mirror of
https://github.com/wailsapp/wails.git
synced 2026-03-14 14:45:49 +01:00
[darwin] Refactor events into mac specific files
This commit is contained in:
parent
757a4383e6
commit
dc8cbcf410
5 changed files with 140 additions and 24 deletions
|
|
@ -1,6 +1,6 @@
|
|||
//go:build darwin
|
||||
#import "application_darwin_delegate.h"
|
||||
#import "../events/events.h"
|
||||
#import "../events/events_darwin.h"
|
||||
extern bool hasListeners(unsigned int);
|
||||
@implementation AppDelegate
|
||||
- (void)dealloc
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
#import <Foundation/Foundation.h>
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import "webview_window_darwin.h"
|
||||
#import "../events/events.h"
|
||||
#import "../events/events_darwin.h"
|
||||
extern void processMessage(unsigned int, const char*);
|
||||
extern void processURLRequest(unsigned int, void *);
|
||||
extern void processWindowKeyDownEvent(unsigned int, const char*);
|
||||
|
|
@ -17,14 +17,10 @@ extern bool hasListeners(unsigned int);
|
|||
[self setMovableByWindowBackground:YES];
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)keyDown:(NSEvent *)event {
|
||||
|
||||
NSUInteger modifierFlags = event.modifierFlags;
|
||||
|
||||
// Create an array to hold the modifier strings
|
||||
NSMutableArray *modifierStrings = [NSMutableArray array];
|
||||
|
||||
// Check for modifier flags and add corresponding strings to the array
|
||||
if (modifierFlags & NSEventModifierFlagShift) {
|
||||
[modifierStrings addObject:@"shift"];
|
||||
|
|
@ -38,29 +34,23 @@ extern bool hasListeners(unsigned int);
|
|||
if (modifierFlags & NSEventModifierFlagCommand) {
|
||||
[modifierStrings addObject:@"cmd"];
|
||||
}
|
||||
|
||||
NSString *keyString = [self keyStringFromEvent:event];
|
||||
if (keyString.length > 0) {
|
||||
[modifierStrings addObject:keyString];
|
||||
}
|
||||
|
||||
// Combine the modifier strings with the key character
|
||||
NSString *keyEventString = [modifierStrings componentsJoinedByString:@"+"];
|
||||
|
||||
const char* utf8String = [keyEventString UTF8String];
|
||||
WebviewWindowDelegate *delegate = (WebviewWindowDelegate*)self.delegate;
|
||||
processWindowKeyDownEvent(delegate.windowId, utf8String);
|
||||
}
|
||||
|
||||
- (NSString *)keyStringFromEvent:(NSEvent *)event {
|
||||
|
||||
// Get the pressed key
|
||||
// Check for special keys like escape and tab
|
||||
NSString *characters = [event characters];
|
||||
if (characters.length == 0) {
|
||||
return @"";
|
||||
}
|
||||
|
||||
if ([characters isEqualToString:@"\r"]) {
|
||||
return @"enter";
|
||||
}
|
||||
|
|
@ -90,7 +80,6 @@ extern bool hasListeners(unsigned int);
|
|||
if ([characters isEqualToString:@"\x0C"]) {
|
||||
return @"clear";
|
||||
}
|
||||
|
||||
switch ([event keyCode]) {
|
||||
// Function keys
|
||||
case 122: return @"f1";
|
||||
|
|
@ -113,7 +102,6 @@ extern bool hasListeners(unsigned int);
|
|||
case 79: return @"f18";
|
||||
case 80: return @"f19";
|
||||
case 90: return @"f20";
|
||||
|
||||
// Letter keys
|
||||
case 0: return @"a";
|
||||
case 11: return @"b";
|
||||
|
|
@ -141,7 +129,6 @@ extern bool hasListeners(unsigned int);
|
|||
case 7: return @"x";
|
||||
case 16: return @"y";
|
||||
case 6: return @"z";
|
||||
|
||||
// Number keys
|
||||
case 29: return @"0";
|
||||
case 18: return @"1";
|
||||
|
|
@ -153,7 +140,6 @@ extern bool hasListeners(unsigned int);
|
|||
case 26: return @"7";
|
||||
case 28: return @"8";
|
||||
case 25: return @"9";
|
||||
|
||||
// Other special keys
|
||||
case 51: return @"delete";
|
||||
case 117: return @"forward delete";
|
||||
|
|
@ -164,7 +150,6 @@ extern bool hasListeners(unsigned int);
|
|||
case 48: return @"tab";
|
||||
case 53: return @"escape";
|
||||
case 49: return @"space";
|
||||
|
||||
// Punctuation and other keys (for a standard US layout)
|
||||
case 33: return @"[";
|
||||
case 30: return @"]";
|
||||
|
|
@ -177,12 +162,9 @@ extern bool hasListeners(unsigned int);
|
|||
case 24: return @"=";
|
||||
case 50: return @"`";
|
||||
case 42: return @"\\";
|
||||
|
||||
default: return @"";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
- (BOOL)canBecomeKeyWindow {
|
||||
return YES;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
#import <AppKit/AppKit.h>
|
||||
#import "webview_window_darwin_drag.h"
|
||||
|
||||
#import "../events/events.h"
|
||||
#import "../events/events_darwin.h"
|
||||
|
||||
extern void processDragItems(unsigned int windowId, char** arr, int length);
|
||||
|
||||
|
|
|
|||
|
|
@ -6,12 +6,10 @@ package events
|
|||
#cgo CFLAGS: -x objective-c
|
||||
#cgo LDFLAGS: -framework Cocoa -mmacosx-version-min=10.13
|
||||
|
||||
#include "events.h"
|
||||
#include "events_darwin.h"
|
||||
#include <stdlib.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "events.h"
|
||||
|
||||
bool hasListener[MAX_EVENTS] = {false};
|
||||
|
||||
void registerListener(unsigned int event) {
|
||||
|
|
|
|||
136
v3/pkg/events/events_darwin.h
Normal file
136
v3/pkg/events/events_darwin.h
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
//go:build darwin
|
||||
|
||||
#ifndef _events_darwin_h
|
||||
#define _events_darwin_h
|
||||
|
||||
extern void processApplicationEvent(unsigned int, void* data);
|
||||
extern void processWindowEvent(unsigned int, unsigned int);
|
||||
|
||||
#define EventApplicationDidBecomeActive 1024
|
||||
#define EventApplicationDidChangeBackingProperties 1025
|
||||
#define EventApplicationDidChangeEffectiveAppearance 1026
|
||||
#define EventApplicationDidChangeIcon 1027
|
||||
#define EventApplicationDidChangeOcclusionState 1028
|
||||
#define EventApplicationDidChangeScreenParameters 1029
|
||||
#define EventApplicationDidChangeStatusBarFrame 1030
|
||||
#define EventApplicationDidChangeStatusBarOrientation 1031
|
||||
#define EventApplicationDidFinishLaunching 1032
|
||||
#define EventApplicationDidHide 1033
|
||||
#define EventApplicationDidResignActiveNotification 1034
|
||||
#define EventApplicationDidUnhide 1035
|
||||
#define EventApplicationDidUpdate 1036
|
||||
#define EventApplicationWillBecomeActive 1037
|
||||
#define EventApplicationWillFinishLaunching 1038
|
||||
#define EventApplicationWillHide 1039
|
||||
#define EventApplicationWillResignActive 1040
|
||||
#define EventApplicationWillTerminate 1041
|
||||
#define EventApplicationWillUnhide 1042
|
||||
#define EventApplicationWillUpdate 1043
|
||||
#define EventApplicationDidChangeTheme 1044
|
||||
#define EventWindowDidBecomeKey 1045
|
||||
#define EventWindowDidBecomeMain 1046
|
||||
#define EventWindowDidBeginSheet 1047
|
||||
#define EventWindowDidChangeAlpha 1048
|
||||
#define EventWindowDidChangeBackingLocation 1049
|
||||
#define EventWindowDidChangeBackingProperties 1050
|
||||
#define EventWindowDidChangeCollectionBehavior 1051
|
||||
#define EventWindowDidChangeEffectiveAppearance 1052
|
||||
#define EventWindowDidChangeOcclusionState 1053
|
||||
#define EventWindowDidChangeOrderingMode 1054
|
||||
#define EventWindowDidChangeScreen 1055
|
||||
#define EventWindowDidChangeScreenParameters 1056
|
||||
#define EventWindowDidChangeScreenProfile 1057
|
||||
#define EventWindowDidChangeScreenSpace 1058
|
||||
#define EventWindowDidChangeScreenSpaceProperties 1059
|
||||
#define EventWindowDidChangeSharingType 1060
|
||||
#define EventWindowDidChangeSpace 1061
|
||||
#define EventWindowDidChangeSpaceOrderingMode 1062
|
||||
#define EventWindowDidChangeTitle 1063
|
||||
#define EventWindowDidChangeToolbar 1064
|
||||
#define EventWindowDidChangeVisibility 1065
|
||||
#define EventWindowDidDeminiaturize 1066
|
||||
#define EventWindowDidEndSheet 1067
|
||||
#define EventWindowDidEnterFullScreen 1068
|
||||
#define EventWindowDidEnterVersionBrowser 1069
|
||||
#define EventWindowDidExitFullScreen 1070
|
||||
#define EventWindowDidExitVersionBrowser 1071
|
||||
#define EventWindowDidExpose 1072
|
||||
#define EventWindowDidFocus 1073
|
||||
#define EventWindowDidMiniaturize 1074
|
||||
#define EventWindowDidMove 1075
|
||||
#define EventWindowDidOrderOffScreen 1076
|
||||
#define EventWindowDidOrderOnScreen 1077
|
||||
#define EventWindowDidResignKey 1078
|
||||
#define EventWindowDidResignMain 1079
|
||||
#define EventWindowDidResize 1080
|
||||
#define EventWindowDidUpdate 1081
|
||||
#define EventWindowDidUpdateAlpha 1082
|
||||
#define EventWindowDidUpdateCollectionBehavior 1083
|
||||
#define EventWindowDidUpdateCollectionProperties 1084
|
||||
#define EventWindowDidUpdateShadow 1085
|
||||
#define EventWindowDidUpdateTitle 1086
|
||||
#define EventWindowDidUpdateToolbar 1087
|
||||
#define EventWindowDidUpdateVisibility 1088
|
||||
#define EventWindowShouldClose 1089
|
||||
#define EventWindowWillBecomeKey 1090
|
||||
#define EventWindowWillBecomeMain 1091
|
||||
#define EventWindowWillBeginSheet 1092
|
||||
#define EventWindowWillChangeOrderingMode 1093
|
||||
#define EventWindowWillClose 1094
|
||||
#define EventWindowWillDeminiaturize 1095
|
||||
#define EventWindowWillEnterFullScreen 1096
|
||||
#define EventWindowWillEnterVersionBrowser 1097
|
||||
#define EventWindowWillExitFullScreen 1098
|
||||
#define EventWindowWillExitVersionBrowser 1099
|
||||
#define EventWindowWillFocus 1100
|
||||
#define EventWindowWillMiniaturize 1101
|
||||
#define EventWindowWillMove 1102
|
||||
#define EventWindowWillOrderOffScreen 1103
|
||||
#define EventWindowWillOrderOnScreen 1104
|
||||
#define EventWindowWillResignMain 1105
|
||||
#define EventWindowWillResize 1106
|
||||
#define EventWindowWillUnfocus 1107
|
||||
#define EventWindowWillUpdate 1108
|
||||
#define EventWindowWillUpdateAlpha 1109
|
||||
#define EventWindowWillUpdateCollectionBehavior 1110
|
||||
#define EventWindowWillUpdateCollectionProperties 1111
|
||||
#define EventWindowWillUpdateShadow 1112
|
||||
#define EventWindowWillUpdateTitle 1113
|
||||
#define EventWindowWillUpdateToolbar 1114
|
||||
#define EventWindowWillUpdateVisibility 1115
|
||||
#define EventWindowWillUseStandardFrame 1116
|
||||
#define EventMenuWillOpen 1117
|
||||
#define EventMenuDidOpen 1118
|
||||
#define EventMenuDidClose 1119
|
||||
#define EventMenuWillSendAction 1120
|
||||
#define EventMenuDidSendAction 1121
|
||||
#define EventMenuWillHighlightItem 1122
|
||||
#define EventMenuDidHighlightItem 1123
|
||||
#define EventMenuWillDisplayItem 1124
|
||||
#define EventMenuDidDisplayItem 1125
|
||||
#define EventMenuWillAddItem 1126
|
||||
#define EventMenuDidAddItem 1127
|
||||
#define EventMenuWillRemoveItem 1128
|
||||
#define EventMenuDidRemoveItem 1129
|
||||
#define EventMenuWillBeginTracking 1130
|
||||
#define EventMenuDidBeginTracking 1131
|
||||
#define EventMenuWillEndTracking 1132
|
||||
#define EventMenuDidEndTracking 1133
|
||||
#define EventMenuWillUpdate 1134
|
||||
#define EventMenuDidUpdate 1135
|
||||
#define EventMenuWillPopUp 1136
|
||||
#define EventMenuDidPopUp 1137
|
||||
#define EventMenuWillSendActionToItem 1138
|
||||
#define EventMenuDidSendActionToItem 1139
|
||||
#define EventWebViewDidStartProvisionalNavigation 1140
|
||||
#define EventWebViewDidReceiveServerRedirectForProvisionalNavigation 1141
|
||||
#define EventWebViewDidFinishNavigation 1142
|
||||
#define EventWebViewDidCommitNavigation 1143
|
||||
#define EventWindowFileDraggingEntered 1144
|
||||
#define EventWindowFileDraggingPerformed 1145
|
||||
#define EventWindowFileDraggingExited 1146
|
||||
|
||||
#define MAX_EVENTS 124
|
||||
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue