mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-23 00:41:02 +00:00
NSItemProvider skeleton implementation.
This commit is contained in:
parent
814f492a55
commit
d33e0f2605
2 changed files with 284 additions and 2 deletions
|
@ -27,16 +27,154 @@
|
|||
|
||||
#include <Foundation/NSObject.h>
|
||||
|
||||
#if OS_API_VERSION(MAC_OS_X_VERSION_10_0, GS_API_LATEST)
|
||||
#if OS_API_VERSION(MAC_OS_X_VERSION_10_10, GS_API_LATEST)
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
@interface NSItemProvider : NSObject
|
||||
@class NSItemProvider, NSProgress, NSData, NSError, NSURL, NSProgress, NSDictionary;;
|
||||
|
||||
DEFINE_BLOCK_TYPE(GSProviderCompletionHandler, void, NSData*, NSError**);
|
||||
DEFINE_BLOCK_TYPE(GSProviderURLCompletionHandler, void, NSURL*, NSError**);
|
||||
DEFINE_BLOCK_TYPE(GSProviderURLBOOLCompletionHandler, void, NSURL*, BOOL, NSError**);
|
||||
DEFINE_BLOCK_TYPE(GSProgressHandler, NSProgress*, GSProviderCompletionHandler);
|
||||
DEFINE_BLOCK_TYPE(GSProgressURLBOOLHandler, NSProgress*, GSProviderURLBOOLCompletionHandler);
|
||||
|
||||
DEFINE_BLOCK_TYPE(GSItemProviderWritingHandler, id, NSError**);
|
||||
DEFINE_BLOCK_TYPE(GSItemProviderReadingHandler, id, NSError**);
|
||||
DEFINE_BLOCK_TYPE(GSProgressItemProviderWritingLoadHandler, NSProgress*, GSItemProviderWritingHandler);
|
||||
DEFINE_BLOCK_TYPE(GSProgressItemProviderReadingLoadHandler, NSProgress*, GSItemProviderReadingHandler);
|
||||
|
||||
DEFINE_BLOCK_TYPE(NSItemProviderCompletionHandler, void, id, NSError**);
|
||||
DEFINE_BLOCK_TYPE(NSItemProviderLoadHandler, NSItemProviderCompletionHandler, Class, NSDictionary*);
|
||||
|
||||
enum
|
||||
{
|
||||
NSItemProviderRepresentationVisibilityAll = 0,
|
||||
NSItemProviderRepresentationVisibilityTeam = 1,
|
||||
NSItemProviderRepresentationVisibilityGroup = 2 ,
|
||||
NSItemProviderRepresentationVisibilityOwnProcess = 3,
|
||||
};
|
||||
typedef NSInteger NSItemProviderRepresentationVisibility;
|
||||
|
||||
enum
|
||||
{
|
||||
NSItemProviderFileOptionOpenInPlace = 1,
|
||||
};
|
||||
typedef NSInteger NSItemProviderFileOptions;
|
||||
|
||||
@protocol NSItemProviderWriting <NSObject>
|
||||
|
||||
- (NSArray *) writableTypeIdentifiersForItemProvider;
|
||||
- (void) setWritableTypeIdentifiersForItemProvider: (NSArray *)anArray;
|
||||
|
||||
+ (NSItemProviderRepresentationVisibility) itemProviderVisibilityForRepresentationWithTypeIdentifier: (NSString *)typeIdentifier;
|
||||
|
||||
- (NSItemProviderRepresentationVisibility) itemProviderVisibilityForRepresentationWithTypeIdentifier: (NSString *)typeIdentifier;
|
||||
|
||||
- (NSProgress *) loadDataWithTypeIdentifier: (NSString *)typeIdentifier
|
||||
forItemProviderCompletionHandler: (GSProviderCompletionHandler)completionHandler;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@protocol NSItemProviderReading <NSObject>
|
||||
|
||||
- (NSArray *) readableTypeIdentifiersForItemProvider;
|
||||
- (void) setReadableTypeIdentifiersForItemProvider: (NSArray *)array;
|
||||
|
||||
+ (instancetype) objectWithItemProviderData: (NSData *)data
|
||||
typeIdentifier: (NSString *)typeIdentifier
|
||||
error: (NSError **)outError;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSItemProvider : NSObject <NSCopying>
|
||||
|
||||
- (instancetype) init;
|
||||
|
||||
- (void) registerDataRepresentationForTypeIdentifier: (NSString *)typeIdentifier
|
||||
visibility: (NSItemProviderRepresentationVisibility)visibility
|
||||
loadHandler: (GSProgressHandler)loadHandler;
|
||||
|
||||
- (void) registerFileRepresentationForTypeIdentifier: (NSString *)typeIdentifier
|
||||
fileOptions: (NSItemProviderFileOptions)fileOptions
|
||||
visibility: (NSItemProviderRepresentationVisibility)visibility
|
||||
loadHandler: (GSProgressURLBOOLHandler)loadHandler;
|
||||
|
||||
- (NSArray *) registeredTypeIdentifiers;
|
||||
|
||||
- (NSArray *) registeredTypeIdentifiersWithFileOptions: (NSItemProviderFileOptions)fileOptions;
|
||||
|
||||
- (BOOL) hasItemConformingToTypeIdentifier: (NSString *)typeIdentifier;
|
||||
|
||||
- (BOOL) hasRepresentationConformingToTypeIdentifier: (NSString *)typeIdentifier
|
||||
fileOptions: (NSItemProviderFileOptions)fileOptions;
|
||||
|
||||
- (NSProgress *) loadDataRepresentationForTypeIdentifier: (NSString *)typeIdentifier
|
||||
completionHandler: (GSProviderCompletionHandler)completionHandler;
|
||||
|
||||
- (NSProgress *) loadFileRepresentationForTypeIdentifier: (NSString *)typeIdentifier
|
||||
completionHandler: (GSProviderURLCompletionHandler)completionHandler;
|
||||
|
||||
- (NSProgress *) loadInPlaceFileRepresentationForTypeIdentifier: (NSString *)typeIdentifier
|
||||
completionHandler: (GSProviderURLBOOLCompletionHandler)completionHandler;
|
||||
|
||||
- (NSString *) suggestedName;
|
||||
- (void) setSuggestedName: (NSString *)suggestedName;
|
||||
|
||||
- (instancetype) initWithObject: (id<NSItemProviderWriting>)object;
|
||||
|
||||
- (void) registerObject: (id<NSItemProviderWriting>)object visibility: (NSItemProviderRepresentationVisibility)visibility;
|
||||
|
||||
- (void) registerObjectOfClass: (Class<NSItemProviderWriting>)aClass // NSItemProviderWriting conforming class...
|
||||
visibility: (NSItemProviderRepresentationVisibility)visibility
|
||||
loadHandler: (GSItemProviderWritingHandler)loadHandler;
|
||||
|
||||
- (BOOL) canLoadObjectOfClass: (Class<NSItemProviderReading>)aClass;
|
||||
|
||||
- (NSProgress *) loadObjectOfClass: (Class<NSItemProviderReading>)aClass // NSItemProviderReading conforming class...
|
||||
completionHandler: (GSItemProviderReadingHandler)completionHandler;
|
||||
|
||||
- (instancetype) initWithItem: (id<NSSecureCoding>)item typeIdentifier: (NSString *)typeIdentifier; // designated init
|
||||
- (instancetype) initWithContentsOfURL: (NSURL *)fileURL;
|
||||
|
||||
- (void) registerItemForTypeIdentifier: (NSString *)typeIdentifier loadHandler: (NSItemProviderLoadHandler)loadHandler;
|
||||
|
||||
- (void)loadItemForTypeIdentifier: (NSString *)typeIdentifier
|
||||
options: (NSDictionary *)options
|
||||
completionHandler: (NSItemProviderCompletionHandler)completionHandler;
|
||||
@end
|
||||
|
||||
// Preview support
|
||||
GS_EXPORT NSString * const NSItemProviderPreferredImageSizeKey;
|
||||
|
||||
@interface NSItemProvider (NSPreviewSupport)
|
||||
|
||||
- (NSItemProviderLoadHandler) previewImageHandler;
|
||||
- (void) setPreviewImageHandler: (NSItemProviderLoadHandler) previewImageHandler;
|
||||
|
||||
- (void) loadPreviewImageWithOptions: (NSDictionary *)options
|
||||
completionHandler: (NSItemProviderCompletionHandler)completionHandler;
|
||||
|
||||
@end
|
||||
|
||||
GS_EXPORT NSString * const NSExtensionJavaScriptPreprocessingResultsKey;
|
||||
|
||||
GS_EXPORT NSString * const NSExtensionJavaScriptFinalizeArgumentKey;
|
||||
|
||||
GS_EXPORT NSString * const NSItemProviderErrorDomain;
|
||||
|
||||
enum {
|
||||
NSItemProviderUnknownError = -1,
|
||||
NSItemProviderItemUnavailableError = -1000,
|
||||
NSItemProviderUnexpectedValueClassError = -1100,
|
||||
NSItemProviderUnavailableCoercionError = -1200
|
||||
};
|
||||
typedef NSInteger NSItemProviderErrorCode;
|
||||
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -26,5 +26,149 @@
|
|||
|
||||
@implementation NSItemProvider
|
||||
|
||||
- (instancetype) init
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (void) registerDataRepresentationForTypeIdentifier: (NSString *)typeIdentifier
|
||||
visibility: (NSItemProviderRepresentationVisibility)visibility
|
||||
loadHandler: (GSProgressHandler)loadHandler
|
||||
{
|
||||
}
|
||||
|
||||
- (void) registerFileRepresentationForTypeIdentifier: (NSString *)typeIdentifier
|
||||
fileOptions: (NSItemProviderFileOptions)fileOptions
|
||||
visibility: (NSItemProviderRepresentationVisibility)visibility
|
||||
loadHandler: (GSProgressURLBOOLHandler)loadHandler
|
||||
{
|
||||
}
|
||||
|
||||
- (NSArray *) registeredTypeIdentifiers
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (NSArray *) registeredTypeIdentifiersWithFileOptions: (NSItemProviderFileOptions)fileOptions
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (BOOL) hasItemConformingToTypeIdentifier: (NSString *)typeIdentifier
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (BOOL) hasRepresentationConformingToTypeIdentifier: (NSString *)typeIdentifier
|
||||
fileOptions: (NSItemProviderFileOptions)fileOptions
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (NSProgress *) loadDataRepresentationForTypeIdentifier: (NSString *)typeIdentifier
|
||||
completionHandler: (GSProviderCompletionHandler)completionHandler
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (NSProgress *) loadFileRepresentationForTypeIdentifier: (NSString *)typeIdentifier
|
||||
completionHandler: (GSProviderURLCompletionHandler)completionHandler
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (NSProgress *) loadInPlaceFileRepresentationForTypeIdentifier: (NSString *)typeIdentifier
|
||||
completionHandler: (GSProviderURLBOOLCompletionHandler)completionHandler
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (NSString *) suggestedName
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (void) setSuggestedName: (NSString *)suggestedName
|
||||
{
|
||||
}
|
||||
|
||||
- (instancetype) initWithObject: (id<NSItemProviderWriting>)object
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (void) registerObject: (id<NSItemProviderWriting>)object visibility: (NSItemProviderRepresentationVisibility)visibility
|
||||
{
|
||||
}
|
||||
|
||||
- (void) registerObjectOfClass: (Class<NSItemProviderWriting>)aClass // NSItemProviderWriting conforming class...
|
||||
visibility: (NSItemProviderRepresentationVisibility)visibility
|
||||
loadHandler: (GSItemProviderWritingHandler)loadHandler
|
||||
{
|
||||
}
|
||||
|
||||
- (BOOL) canLoadObjectOfClass: (Class<NSItemProviderReading>)aClass
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (NSProgress *) loadObjectOfClass: (Class<NSItemProviderReading>)aClass // NSItemProviderReading conforming class...
|
||||
completionHandler: (GSItemProviderReadingHandler)completionHandler
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (instancetype) initWithItem: (id<NSSecureCoding>)item typeIdentifier: (NSString *)typeIdentifier // designated init
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (instancetype) initWithContentsOfURL: (NSURL *)fileURL
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (void) registerItemForTypeIdentifier: (NSString *)typeIdentifier loadHandler: (NSItemProviderLoadHandler)loadHandler
|
||||
{
|
||||
}
|
||||
|
||||
- (void)loadItemForTypeIdentifier: (NSString *)typeIdentifier
|
||||
options: (NSDictionary *)options
|
||||
completionHandler: (NSItemProviderCompletionHandler)completionHandler
|
||||
{
|
||||
}
|
||||
|
||||
- (instancetype) copyWithZone: (NSZone*)zone
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
@end
|
||||
|
||||
// Preview support
|
||||
NSString * const NSItemProviderPreferredImageSizeKey = @"NSItemProviderPreferredImageSizeKey";
|
||||
|
||||
@implementation NSItemProvider (NSPreviewSupport)
|
||||
|
||||
- (NSItemProviderLoadHandler) previewImageHandler
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (void) setPreviewImageHandler: (NSItemProviderLoadHandler) previewImageHandler
|
||||
{
|
||||
}
|
||||
|
||||
- (void) loadPreviewImageWithOptions: (NSDictionary *)options
|
||||
completionHandler: (NSItemProviderCompletionHandler)completionHandler
|
||||
{
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
NSString * const NSExtensionJavaScriptPreprocessingResultsKey = @"NSExtensionJavaScriptPreprocessingResultsKey";
|
||||
|
||||
NSString * const NSExtensionJavaScriptFinalizeArgumentKey = @"NSExtensionJavaScriptFinalizeArgumentKey";
|
||||
|
||||
NSString * const NSItemProviderErrorDomain = @"NSItemProviderErrorDomain" ;
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue