From 6af24adf40ae2c86f15cdb32d0affe8374a4ae39 Mon Sep 17 00:00:00 2001 From: Gregory John Casamento Date: Tue, 5 Aug 2025 23:00:06 -0400 Subject: [PATCH 1/3] NSFilePromise framework --- Headers/AppKit/AppKit.h | 12 ++- Headers/AppKit/NSFilePromiseProvider.h | 135 +++++++++++++++++++++++++ Headers/AppKit/NSFilePromiseReceiver.h | 81 +++++++++++++++ MISSING | 4 +- Source/GNUmakefile | 12 ++- Source/NSFilePromiseProvider.m | 116 +++++++++++++++++++++ Source/NSFilePromiseReceiver.m | 118 +++++++++++++++++++++ 7 files changed, 466 insertions(+), 12 deletions(-) create mode 100644 Headers/AppKit/NSFilePromiseProvider.h create mode 100644 Headers/AppKit/NSFilePromiseReceiver.h create mode 100644 Source/NSFilePromiseProvider.m create mode 100644 Source/NSFilePromiseReceiver.m diff --git a/Headers/AppKit/AppKit.h b/Headers/AppKit/AppKit.h index 8dd97ae557..39f796db58 100644 --- a/Headers/AppKit/AppKit.h +++ b/Headers/AppKit/AppKit.h @@ -1,4 +1,4 @@ -/* +/* AppKit.h Main include file for GNUstep GUI Library @@ -7,7 +7,7 @@ Author: Scott Christley Date: 1996 - + This file is part of the GNUstep GUI Library. This library is free software; you can redistribute it and/or @@ -22,10 +22,10 @@ You should have received a copy of the GNU Lesser General Public License along with this library; see the file COPYING.LIB. - If not, see or write to the - Free Software Foundation, 51 Franklin Street, Fifth Floor, + If not, see or write to the + Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -*/ +*/ #ifndef _GNUstep_H_AppKit #define _GNUstep_H_AppKit @@ -170,6 +170,8 @@ #import #import #import +#import +#import #import #import #import diff --git a/Headers/AppKit/NSFilePromiseProvider.h b/Headers/AppKit/NSFilePromiseProvider.h new file mode 100644 index 0000000000..be48f00ab2 --- /dev/null +++ b/Headers/AppKit/NSFilePromiseProvider.h @@ -0,0 +1,135 @@ +/* + NSFilePromiseProvider.h + + Provider for file promises in drag and drop operations + + Copyright (C) 2025 Free Software Foundation, Inc. + + Author: GitHub Copilot + Date: 2025 + + This file is part of the GNUstep GUI Library. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; see the file COPYING.LIB. + If not, see or write to the + Free Software Foundation, 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef _GNUstep_H_NSFilePromiseProvider +#define _GNUstep_H_NSFilePromiseProvider +#import + +#import +#import + +@class NSString; +@class NSURL; +@class NSOperationQueue; +@class NSArray; + +@protocol NSFilePromiseProviderDelegate; + +#if OS_API_VERSION(MAC_OS_X_VERSION_10_12, GS_API_LATEST) + +// UTI for file promise pasteboard type +APPKIT_EXPORT NSString * const NSFilePromiseProviderUTI; + +#if OS_API_VERSION(MAC_OS_X_VERSION_10_12, GS_API_LATEST) + +APPKIT_EXPORT_CLASS +@interface NSFilePromiseProvider : NSObject +{ + NSString *_fileType; + id _delegate; + id _userInfo; +} + +/** Initializes a file promise provider with the specified file type. + * The file type should be a UTI (Uniform Type Identifier) that describes + * the type of file that will be provided when the promise is fulfilled. + */ +- (instancetype)initWithFileType:(NSString *)fileType + delegate:(id)delegate; + +#if GS_HAS_DECLARED_PROPERTIES +@property (readonly, copy) NSString *fileType; +@property (weak) id delegate; +@property (strong) id userInfo; +#else +/** Returns the file type (UTI) that this provider will create. + * This is the Uniform Type Identifier for the type of file + * that will be created when the promise is fulfilled. + */ +- (NSString *)fileType; + +/** Returns the delegate responsible for fulfilling file promises. + * The delegate provides the actual file data when a drop occurs. + */ +- (id)delegate; + +/** Sets the delegate responsible for fulfilling file promises. + * The delegate must implement the required methods to provide + * file data when the promise needs to be fulfilled. + */ +- (void)setDelegate:(id)delegate; + +/** Returns arbitrary user data associated with this provider. + * Applications can use this to store context information + * needed to fulfill the file promise. + */ +- (id)userInfo; + +/** Sets arbitrary user data associated with this provider. + * Applications can store context information here that will + * be needed when fulfilling the file promise. + */ +- (void)setUserInfo:(id)userInfo; +#endif + +@end + +@protocol NSFilePromiseProviderDelegate + +@required + +/** Returns the name for the file that will be created. + * This method is called when the system needs to know what + * filename to use for the promised file. + */ +- (NSString *)filePromiseProvider:(NSFilePromiseProvider *)filePromiseProvider + fileNameForType:(NSString *)fileType; + +/** Writes the promised file to the specified URL. + * This method is called when the drop occurs and the actual + * file needs to be created. The implementation should write + * the file data to the provided URL. + */ +- (void)filePromiseProvider:(NSFilePromiseProvider *)filePromiseProvider + writePromiseToURL:(NSURL *)url + completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + +@optional + +/** Returns the operation queue for file writing operations. + * If not implemented, file writing will occur on a default queue. + * Implement this to control which queue is used for file operations. + */ +- (NSOperationQueue *)operationQueueForFilePromiseProvider:(NSFilePromiseProvider *)filePromiseProvider; + +@end + +#endif + +#endif // _GNUstep_H_NSFilePromiseProvider diff --git a/Headers/AppKit/NSFilePromiseReceiver.h b/Headers/AppKit/NSFilePromiseReceiver.h new file mode 100644 index 0000000000..c39e73ed0e --- /dev/null +++ b/Headers/AppKit/NSFilePromiseReceiver.h @@ -0,0 +1,81 @@ +/* + NSFilePromiseReceiver.h + + Receiver for file promises in drag and drop operations + + Copyright (C) 2025 Free Software Foundation, Inc. + + Author: GitHub Copilot + Date: 2025 + + This file is part of the GNUstep GUI Library. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; see the file COPYING.LIB. + If not, see or write to the + Free Software Foundation, 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef _GNUstep_H_NSFilePromiseReceiver +#define _GNUstep_H_NSFilePromiseReceiver +#import + +#import +#import + +@class NSString; +@class NSURL; +@class NSArray; + +#if OS_API_VERSION(MAC_OS_X_VERSION_10_12, GS_API_LATEST) + +APPKIT_EXPORT_CLASS +@interface NSFilePromiseReceiver : NSObject +{ + NSArray *_fileTypes; + NSArray *_fileNames; +} + +/** Returns the file types (UTIs) that this receiver can accept. + * These are the Uniform Type Identifiers for file types that + * this receiver is willing to accept from file promise providers. + */ +#if GS_HAS_DECLARED_PROPERTIES +@property (readonly, copy) NSArray *fileTypes; +@property (readonly, copy) NSArray *fileNames; +#else +- (NSArray *)fileTypes; + +/** Returns the file names that will be created for the promised files. + * This array corresponds to the fileTypes array and provides the + * actual filenames that will be used when the promises are fulfilled. + */ +- (NSArray *)fileNames; +#endif + +/** Receives the promised files to the specified destination URL. + * This method initiates the process of fulfilling all file promises + * represented by this receiver. The files will be created in the + * specified destination directory. + */ +- (void)receivePromisedFilesAtDestination:(NSURL *)destinationDir + options:(NSDictionary *)options + operationQueue:(NSOperationQueue *)operationQueue + reader:(void (^)(NSURL *fileURL, NSError * _Nullable error))reader; + +@end + +#endif + +#endif // _GNUstep_H_NSFilePromiseReceiver diff --git a/MISSING b/MISSING index 536d328598..d9bf8a7c0c 100644 --- a/MISSING +++ b/MISSING @@ -4,9 +4,7 @@ MISSING HEADERS ( * = difficult, - = quick, + = placeholder, x = won't do ) > NSDiffableDataSource.h * > NSDraggingItem.h - > NSDraggingSession.h - -> NSFilePromiseProvider.h - -> NSFilePromiseReceiver.h - -> NSItemProvider.h + +> NSItemProvider.h + > NSOpenGLLayer.h + > NSTypesetter.h + > NSUserActivity.h - diff --git a/Source/GNUmakefile b/Source/GNUmakefile index 51fb140bb8..d9eea57928 100644 --- a/Source/GNUmakefile +++ b/Source/GNUmakefile @@ -18,8 +18,8 @@ # # You should have received a copy of the GNU Lesser General Public # License along with this library; see the file COPYING.LIB. -# If not, see or write to the -# Free Software Foundation, 51 Franklin Street, Fifth Floor, +# If not, see or write to the +# Free Software Foundation, 51 Franklin Street, Fifth Floor, # Boston, MA 02110-1301, USA. PACKAGE_NAME = gnustep-gui @@ -110,6 +110,8 @@ NSDocumentController.m \ NSDrawer.m \ NSEPSImageRep.m \ NSEvent.m \ +NSFilePromiseProvider.m \ +NSFilePromiseReceiver.m \ NSFileWrapperExtensions.m \ NSFont.m \ NSFontAssetRequest.m \ @@ -389,7 +391,7 @@ libgnustep-gui_HEADER_FILES_DIR = ../Headers/Additions/GNUstepGUI libgnustep-gui_HEADER_FILES_INSTALL_DIR = /GNUstepGUI COCOA_HEADERS = \ -Cocoa.h +Cocoa.h APPKIT_HEADERS = \ AppKit.h \ @@ -460,6 +462,8 @@ NSDrawer.h \ NSEPSImageRep.h \ NSErrors.h \ NSEvent.h \ +NSFilePromiseProvider.h \ +NSFilePromiseReceiver.h \ NSFileWrapper.h \ NSFileWrapperExtensions.h \ NSFont.h \ @@ -646,7 +650,7 @@ NSUserInterfaceItemSearching.h \ NSUserInterfaceItemIdentification.h \ NSUserInterfaceValidation.h \ DPSOperators.h \ -PSOperators.h +PSOperators.h GUI_HEADERS = \ GSVersion.h \ diff --git a/Source/NSFilePromiseProvider.m b/Source/NSFilePromiseProvider.m new file mode 100644 index 0000000000..6a983972e3 --- /dev/null +++ b/Source/NSFilePromiseProvider.m @@ -0,0 +1,116 @@ +/* + NSFilePromiseProvider.m + + Provider for file promises in drag and drop operations + + Copyright (C) 2025 Free Software Foundation, Inc. + + Author: GitHub Copilot + Date: 2025 + + This file is part of the GNUstep GUI Library. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; see the file COPYING.LIB. + If not, see or write to the + Free Software Foundation, 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#import +#import +#import +#import +#import +#import +#import + +#if OS_API_VERSION(MAC_OS_X_VERSION_10_12, GS_API_LATEST) + +// UTI for file promise items +NSString * const NSFilePromiseProviderUTI = @"com.apple.NSFilePromiseProvider"; + +@implementation NSFilePromiseProvider + +- (instancetype)initWithFileType:(NSString *)fileType + delegate:(id)delegate +{ + self = [super init]; + if (self) + { + _fileType = [fileType copy]; + _delegate = delegate; + } + return self; +} + +- (void)dealloc +{ + RELEASE(_fileType); + RELEASE(_userInfo); + [super dealloc]; +} + +- (NSString *)fileType +{ + return _fileType; +} + +- (id)delegate +{ + return _delegate; +} + +- (void)setDelegate:(id)delegate +{ + _delegate = delegate; +} + +- (id)userInfo +{ + return _userInfo; +} + +- (void)setUserInfo:(id)userInfo +{ + ASSIGN(_userInfo, userInfo); +} + +#pragma mark - NSPasteboardWriting + +- (NSArray *)writableTypesForPasteboard:(NSPasteboard *)pasteboard +{ + return [NSArray arrayWithObject:NSFilePromiseProviderUTI]; +} + +- (id)pasteboardPropertyListForType:(NSString *)type +{ + if ([type isEqualToString:NSFilePromiseProviderUTI]) + { + // Return a dictionary with file type information + return [NSDictionary dictionaryWithObjectsAndKeys: + _fileType, @"fileType", + nil]; + } + return nil; +} + +- (NSPasteboardWritingOptions)writingOptionsForType:(NSString *)type + pasteboard:(NSPasteboard *)pasteboard +{ + return 0; +} + +@end + +#endif diff --git a/Source/NSFilePromiseReceiver.m b/Source/NSFilePromiseReceiver.m new file mode 100644 index 0000000000..efbded4925 --- /dev/null +++ b/Source/NSFilePromiseReceiver.m @@ -0,0 +1,118 @@ +/* + NSFilePromiseReceiver.m + + Receiver for file promises in drag and drop operations + + Copyright (C) 2025 Free Software Foundation, Inc. + + Author: GitHub Copilot + Date: 2025 + + This file is part of the GNUstep GUI Library. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; see the file COPYING.LIB. + If not, see or write to the + Free Software Foundation, 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#import +#import +#import +#import +#import +#import +#import +#import + +#if OS_API_VERSION(MAC_OS_X_VERSION_10_12, GS_API_LATEST) + +@implementation NSFilePromiseReceiver + +- (void)dealloc +{ + RELEASE(_fileTypes); + RELEASE(_fileNames); + [super dealloc]; +} + +- (NSArray *)fileTypes +{ + return _fileTypes; +} + +- (NSArray *)fileNames +{ + return _fileNames; +} + +- (void)receivePromisedFilesAtDestination:(NSURL *)destinationDir + options:(NSDictionary *)options + operationQueue:(NSOperationQueue *)operationQueue + reader:(void (^)(NSURL *fileURL, NSError * _Nullable error))reader +{ + // This is a placeholder implementation + // In a full implementation, this would coordinate with the drag and drop system + // to receive the actual file data from NSFilePromiseProvider instances + + if (reader) + { + NSError *error = [NSError errorWithDomain:@"NSFilePromiseReceiverDomain" + code:1 + userInfo:@{NSLocalizedDescriptionKey: @"File promise receiving not fully implemented"}]; + reader(nil, error); + } +} + +#pragma mark - NSPasteboardReading + ++ (NSArray *)readableTypesForPasteboard:(NSPasteboard *)pasteboard +{ + extern NSString * const NSFilePromiseProviderUTI; + return [NSArray arrayWithObject:NSFilePromiseProviderUTI]; +} + ++ (NSPasteboardReadingOptions)readingOptionsForType:(NSString *)type + pasteboard:(NSPasteboard *)pasteboard +{ + return NSPasteboardReadingAsPropertyList; +} + +- (instancetype)initWithPasteboardPropertyList:(id)propertyList + ofType:(NSString *)type +{ + self = [super init]; + if (self) + { + extern NSString * const NSFilePromiseProviderUTI; + if ([type isEqualToString:NSFilePromiseProviderUTI] && [propertyList isKindOfClass:[NSDictionary class]]) + { + NSDictionary *dict = (NSDictionary *)propertyList; + NSString *fileType = [dict objectForKey:@"fileType"]; + if (fileType) + { + _fileTypes = [[NSArray arrayWithObject:fileType] retain]; + // For now, generate a generic filename + // In a full implementation, this would come from the provider's delegate + NSString *fileName = [NSString stringWithFormat:@"promised_file.%@", fileType]; + _fileNames = [[NSArray arrayWithObject:fileName] retain]; + } + } + } + return self; +} + +@end + +#endif From 5e7ff6cab2011581597f0f4921612a7a21c2049f Mon Sep 17 00:00:00 2001 From: Gregory John Casamento Date: Tue, 5 Aug 2025 23:29:14 -0400 Subject: [PATCH 2/3] Update, fix errors, fix author --- Headers/AppKit/NSFilePromiseProvider.h | 14 +++----------- Headers/AppKit/NSFilePromiseReceiver.h | 8 +++++--- Source/NSFilePromiseProvider.m | 24 +++++++++++++----------- Source/NSFilePromiseReceiver.m | 15 ++++++++------- 4 files changed, 29 insertions(+), 32 deletions(-) diff --git a/Headers/AppKit/NSFilePromiseProvider.h b/Headers/AppKit/NSFilePromiseProvider.h index be48f00ab2..c2e67ae810 100644 --- a/Headers/AppKit/NSFilePromiseProvider.h +++ b/Headers/AppKit/NSFilePromiseProvider.h @@ -5,7 +5,7 @@ Copyright (C) 2025 Free Software Foundation, Inc. - Author: GitHub Copilot + Author: Gregory John Casamento Date: 2025 This file is part of the GNUstep GUI Library. @@ -29,9 +29,9 @@ #ifndef _GNUstep_H_NSFilePromiseProvider #define _GNUstep_H_NSFilePromiseProvider -#import #import +#import #import @class NSString; @@ -46,8 +46,6 @@ // UTI for file promise pasteboard type APPKIT_EXPORT NSString * const NSFilePromiseProviderUTI; -#if OS_API_VERSION(MAC_OS_X_VERSION_10_12, GS_API_LATEST) - APPKIT_EXPORT_CLASS @interface NSFilePromiseProvider : NSObject { @@ -63,11 +61,6 @@ APPKIT_EXPORT_CLASS - (instancetype)initWithFileType:(NSString *)fileType delegate:(id)delegate; -#if GS_HAS_DECLARED_PROPERTIES -@property (readonly, copy) NSString *fileType; -@property (weak) id delegate; -@property (strong) id userInfo; -#else /** Returns the file type (UTI) that this provider will create. * This is the Uniform Type Identifier for the type of file * that will be created when the promise is fulfilled. @@ -96,7 +89,6 @@ APPKIT_EXPORT_CLASS * be needed when fulfilling the file promise. */ - (void)setUserInfo:(id)userInfo; -#endif @end @@ -118,7 +110,7 @@ APPKIT_EXPORT_CLASS */ - (void)filePromiseProvider:(NSFilePromiseProvider *)filePromiseProvider writePromiseToURL:(NSURL *)url - completionHandler:(void (^)(NSError * _Nullable error))completionHandler; + completionHandler:(void (^)(NSError *error))completionHandler; @optional diff --git a/Headers/AppKit/NSFilePromiseReceiver.h b/Headers/AppKit/NSFilePromiseReceiver.h index c39e73ed0e..8f080d055f 100644 --- a/Headers/AppKit/NSFilePromiseReceiver.h +++ b/Headers/AppKit/NSFilePromiseReceiver.h @@ -5,7 +5,7 @@ Copyright (C) 2025 Free Software Foundation, Inc. - Author: GitHub Copilot + Author: Gregory John Casamento Date: 2025 This file is part of the GNUstep GUI Library. @@ -29,14 +29,16 @@ #ifndef _GNUstep_H_NSFilePromiseReceiver #define _GNUstep_H_NSFilePromiseReceiver -#import #import + +#import #import @class NSString; @class NSURL; @class NSArray; +@class NSOperationQueue; #if OS_API_VERSION(MAC_OS_X_VERSION_10_12, GS_API_LATEST) @@ -72,7 +74,7 @@ APPKIT_EXPORT_CLASS - (void)receivePromisedFilesAtDestination:(NSURL *)destinationDir options:(NSDictionary *)options operationQueue:(NSOperationQueue *)operationQueue - reader:(void (^)(NSURL *fileURL, NSError * _Nullable error))reader; + reader:(void (^)(NSURL *fileURL, NSError *error))reader; @end diff --git a/Source/NSFilePromiseProvider.m b/Source/NSFilePromiseProvider.m index 6a983972e3..f9b48a5dc9 100644 --- a/Source/NSFilePromiseProvider.m +++ b/Source/NSFilePromiseProvider.m @@ -5,7 +5,7 @@ Copyright (C) 2025 Free Software Foundation, Inc. - Author: GitHub Copilot + Author: Gregory John Casamento Date: 2025 This file is part of the GNUstep GUI Library. @@ -28,12 +28,13 @@ */ #import -#import -#import -#import -#import -#import -#import + +#import "Foundation/NSString.h" +#import "Foundation/NSArray.h" +#import "Foundation/NSURL.h" +#import "Foundation/NSOperation.h" +#import "Foundation/NSError.h" +#import "Foundation/NSDictionary.h" #if OS_API_VERSION(MAC_OS_X_VERSION_10_12, GS_API_LATEST) @@ -58,6 +59,7 @@ - (void)dealloc { RELEASE(_fileType); RELEASE(_userInfo); + [super dealloc]; } @@ -90,12 +92,12 @@ - (void)setUserInfo:(id)userInfo - (NSArray *)writableTypesForPasteboard:(NSPasteboard *)pasteboard { - return [NSArray arrayWithObject:NSFilePromiseProviderUTI]; + return [NSArray arrayWithObject: NSFilePromiseProviderUTI]; } - (id)pasteboardPropertyListForType:(NSString *)type { - if ([type isEqualToString:NSFilePromiseProviderUTI]) + if ([type isEqualToString: NSFilePromiseProviderUTI]) { // Return a dictionary with file type information return [NSDictionary dictionaryWithObjectsAndKeys: @@ -105,8 +107,8 @@ - (id)pasteboardPropertyListForType:(NSString *)type return nil; } -- (NSPasteboardWritingOptions)writingOptionsForType:(NSString *)type - pasteboard:(NSPasteboard *)pasteboard +- (NSPasteboardWritingOptions)writingOptionsForType: (NSString *)type + pasteboard: (NSPasteboard *)pasteboard { return 0; } diff --git a/Source/NSFilePromiseReceiver.m b/Source/NSFilePromiseReceiver.m index efbded4925..0e2fcfe6a2 100644 --- a/Source/NSFilePromiseReceiver.m +++ b/Source/NSFilePromiseReceiver.m @@ -5,7 +5,7 @@ Copyright (C) 2025 Free Software Foundation, Inc. - Author: GitHub Copilot + Author: Gregory Casamento Date: 2025 This file is part of the GNUstep GUI Library. @@ -29,12 +29,13 @@ #import #import -#import -#import -#import -#import -#import -#import + +#import "Foundation/NSString.h" +#import "Foundation/NSArray.h" +#import "Foundation/NSURL.h" +#import "Foundation/NSOperation.h" +#import "Foundation/NSError.h" +#import "Foundation/NSDictionary.h" #if OS_API_VERSION(MAC_OS_X_VERSION_10_12, GS_API_LATEST) From 9eee1ff9c1fb8bf1afb9ce2a4f8265c46c4ecec0 Mon Sep 17 00:00:00 2001 From: Gregory John Casamento Date: Tue, 5 Aug 2025 23:30:53 -0400 Subject: [PATCH 3/3] Update, fix errors, fix author --- Headers/AppKit/NSFilePromiseReceiver.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Headers/AppKit/NSFilePromiseReceiver.h b/Headers/AppKit/NSFilePromiseReceiver.h index 8f080d055f..20f00e271b 100644 --- a/Headers/AppKit/NSFilePromiseReceiver.h +++ b/Headers/AppKit/NSFilePromiseReceiver.h @@ -53,10 +53,6 @@ APPKIT_EXPORT_CLASS * These are the Uniform Type Identifiers for file types that * this receiver is willing to accept from file promise providers. */ -#if GS_HAS_DECLARED_PROPERTIES -@property (readonly, copy) NSArray *fileTypes; -@property (readonly, copy) NSArray *fileNames; -#else - (NSArray *)fileTypes; /** Returns the file names that will be created for the promised files. @@ -64,7 +60,6 @@ APPKIT_EXPORT_CLASS * actual filenames that will be used when the promises are fulfilled. */ - (NSArray *)fileNames; -#endif /** Receives the promised files to the specified destination URL. * This method initiates the process of fulfilling all file promises