Re: Subclassing a Subclass of SBApplication

2015-09-03 Thread Conrad Shultz
Note that this is a category, not a class extension.

-Conrad


> On Jun 30, 2015, at 6:19 AM, Jean-Daniel Dupas  wrote:
> 
> Using class extension is probably a safe way to extends such classes.
> 
> @interface SXPhotoshopApplication (MyExtension)
> 
> - (void)myWrapper;
> 
> @end
> 
> 
>> Le 29 juin 2015 à 13:54, Dave > > a écrit :
>> 
>> Hi,
>> 
>> I’m using the Scripting Bridge, and I was wondering if it ok to subclass 
>> SBXXX classes. Basically, I have a header file generated by the “sdp” tool 
>> with definitions as below:
>> 
>> And I’d like to subclass this to add some extra wrapping to hide some of the 
>> nastiness from the rest of the app and provide a tighter integration with 
>> the current app handling. I remember reading somewhere that these classes 
>> shouldn’t be subclassed, but I can’t seem to find it again now.
>> 
>> Thanks a lot
>> Dave
>> 
>> -
>> 
>> @interface SXPhotoshopApplication : SBApplication
>> 
>> - (SBElementArray *) documents;
>> - (SBElementArray *) fonts;
>> - (SBElementArray *) notifiers;
>> 
>> @property (copy, readonly) NSNumber *bestType;  // the best type for the 
>> object's value
>> @property (copy, readonly) NSNumber *defaultType;  // the default type for 
>> the object's value
>> @property (copy) NSDictionary *properties;  // all of this object's 
>> properties returned in a single record
>> @property (copy) SXPhotoshopColorValue *backgroundColor;
>> @property (copy, readonly) NSString *build;  // the build number of Adobe 
>> Photoshop application
>> @property (copy) id colorSettings;  // name of selected color settings' set
>> @property (copy) SXPhotoshopDocument *currentDocument;  // the frontmost 
>> document
>> @property SXPhotoshopE050 displayDialogs;  // controls whether or not 
>> Photoshop displays dialogs
>> @property (copy) SXPhotoshopColorValue *foregroundColor;
>> @property (readonly) double freeMemory;  // the amount of unused memory 
>> available to Adobe Photoshop
>> @property (readonly) BOOL frontmost;  // is Photoshop the frontmost 
>> application?
>> @property (copy, readonly) NSString *locale;  // language locale of 
>> application
>> @property (copy, readonly) NSArray *macintoshFileTypes;  // list of file 
>> image types Photoshop can open
>> @property (copy, readonly) NSString *name;  // the application's name
>> @property BOOL notifiersEnabled;  // enable or disable all notifiers
>> @property (copy, readonly) id preferencesFolder;  // full path to the 
>> preferences folder
>> @property (copy, readonly) NSArray *recentFiles;  // files in the recent 
>> file list
>> @property (copy, readonly) NSString *scriptingBuildDate;  // the build date 
>> of the scripting interface
>> @property (copy, readonly) NSString *scriptingVersion;  // the version of 
>> the Scripting interface
>> @property (copy, readonly) SXPhotoshopSettingsObject *settings;  // 
>> preference settings
>> @property (copy, readonly) NSString *systemInformation;  // system 
>> information of the host application and machine
>> @property (copy, readonly) NSString *version;  // the version of Adobe 
>> Photoshop application
>> @property (copy, readonly) NSArray *windowsFileTypes;  // list of file image 
>> extensions Photoshop can open
>> 
>> - (void) AETEScriptsScriptsJavaScriptNameName:(NSString *)JavaScriptNameName 
>> JavaScriptFileFile:(NSString *)JavaScriptFileFile 
>> JavaScriptTextText:(NSString *)JavaScriptTextText 
>> JavaScriptDebuggingDebugging:(BOOL)JavaScriptDebuggingDebugging 
>> JavaScriptMessageMessage:(NSString *)JavaScriptMessageMessage;  // Photoshop 
>> scripting support plug-in
>> - (void) open:(id)x as:(SXPhotoshopOpAs)as 
>> withOptions:(SXPhotoshopOpenOptions *)withOptions 
>> showingDialogs:(SXPhotoshopE050)showingDialogs 
>> smartObject:(BOOL)smartObject;  // open the specified document file(s)
>> - (void) print:(id)x sourceSpace:(SXPhotoshopE945)sourceSpace 
>> printSpace:(NSString *)printSpace intent:(SXPhotoshopE130)intent 
>> blackpointCompensation:(BOOL)blackpointCompensation;  // print the specified 
>> object(s)
>> - (void) quit;  // quit the application
>> - (NSArray *) PhotoshopOpenDialog;  // use the Photoshop open dialog to 
>> select files
>> - (NSString *) batch:(NSString *)x fromFiles:(NSArray *)fromFiles 
>> from:(NSString *)from withOptions:(SXPhotoshopBatchOptions *)withOptions;  
>> // run the batch automation routine
>> - (NSString *) createPDFPresentationFromFiles:(NSArray *)fromFiles 
>> toFile:(id)toFile withOptions:(SXPhotoshopPresentationOptions *)withOptions; 
>>  // create a PDF presentation file
>> - (NSString *) createContactSheetFromFiles:(NSArray *)fromFiles 
>> withOptions:(SXPhotoshopContactSheetOptions *)withOptions;  // create a 
>> contact sheet from multiple files
>> - (NSString *) createPhotoGalleryFromFolder:(id)fromFolder 
>> toFolder:(id)toFolder withOptions:(SXPhotoshopGalleryOptions *)withOptions;  
>> // 

Re: Subclassing a Subclass of SBApplication

2015-06-30 Thread Jean-Daniel Dupas
Using class extension is probably a safe way to extends such classes.

@interface SXPhotoshopApplication (MyExtension)

- (void)myWrapper;

@end


 Le 29 juin 2015 à 13:54, Dave d...@looktowindward.com a écrit :
 
 Hi,
 
 I’m using the Scripting Bridge, and I was wondering if it ok to subclass 
 SBXXX classes. Basically, I have a header file generated by the “sdp” tool 
 with definitions as below:
 
 And I’d like to subclass this to add some extra wrapping to hide some of the 
 nastiness from the rest of the app and provide a tighter integration with the 
 current app handling. I remember reading somewhere that these classes 
 shouldn’t be subclassed, but I can’t seem to find it again now.
 
 Thanks a lot
 Dave
 
 -
 
 @interface SXPhotoshopApplication : SBApplication
 
 - (SBElementArray *) documents;
 - (SBElementArray *) fonts;
 - (SBElementArray *) notifiers;
 
 @property (copy, readonly) NSNumber *bestType;  // the best type for the 
 object's value
 @property (copy, readonly) NSNumber *defaultType;  // the default type for 
 the object's value
 @property (copy) NSDictionary *properties;  // all of this object's 
 properties returned in a single record
 @property (copy) SXPhotoshopColorValue *backgroundColor;
 @property (copy, readonly) NSString *build;  // the build number of Adobe 
 Photoshop application
 @property (copy) id colorSettings;  // name of selected color settings' set
 @property (copy) SXPhotoshopDocument *currentDocument;  // the frontmost 
 document
 @property SXPhotoshopE050 displayDialogs;  // controls whether or not 
 Photoshop displays dialogs
 @property (copy) SXPhotoshopColorValue *foregroundColor;
 @property (readonly) double freeMemory;  // the amount of unused memory 
 available to Adobe Photoshop
 @property (readonly) BOOL frontmost;  // is Photoshop the frontmost 
 application?
 @property (copy, readonly) NSString *locale;  // language locale of 
 application
 @property (copy, readonly) NSArray *macintoshFileTypes;  // list of file 
 image types Photoshop can open
 @property (copy, readonly) NSString *name;  // the application's name
 @property BOOL notifiersEnabled;  // enable or disable all notifiers
 @property (copy, readonly) id preferencesFolder;  // full path to the 
 preferences folder
 @property (copy, readonly) NSArray *recentFiles;  // files in the recent file 
 list
 @property (copy, readonly) NSString *scriptingBuildDate;  // the build date 
 of the scripting interface
 @property (copy, readonly) NSString *scriptingVersion;  // the version of the 
 Scripting interface
 @property (copy, readonly) SXPhotoshopSettingsObject *settings;  // 
 preference settings
 @property (copy, readonly) NSString *systemInformation;  // system 
 information of the host application and machine
 @property (copy, readonly) NSString *version;  // the version of Adobe 
 Photoshop application
 @property (copy, readonly) NSArray *windowsFileTypes;  // list of file image 
 extensions Photoshop can open
 
 - (void) AETEScriptsScriptsJavaScriptNameName:(NSString *)JavaScriptNameName 
 JavaScriptFileFile:(NSString *)JavaScriptFileFile 
 JavaScriptTextText:(NSString *)JavaScriptTextText 
 JavaScriptDebuggingDebugging:(BOOL)JavaScriptDebuggingDebugging 
 JavaScriptMessageMessage:(NSString *)JavaScriptMessageMessage;  // Photoshop 
 scripting support plug-in
 - (void) open:(id)x as:(SXPhotoshopOpAs)as 
 withOptions:(SXPhotoshopOpenOptions *)withOptions 
 showingDialogs:(SXPhotoshopE050)showingDialogs smartObject:(BOOL)smartObject; 
  // open the specified document file(s)
 - (void) print:(id)x sourceSpace:(SXPhotoshopE945)sourceSpace 
 printSpace:(NSString *)printSpace intent:(SXPhotoshopE130)intent 
 blackpointCompensation:(BOOL)blackpointCompensation;  // print the specified 
 object(s)
 - (void) quit;  // quit the application
 - (NSArray *) PhotoshopOpenDialog;  // use the Photoshop open dialog to 
 select files
 - (NSString *) batch:(NSString *)x fromFiles:(NSArray *)fromFiles 
 from:(NSString *)from withOptions:(SXPhotoshopBatchOptions *)withOptions;  // 
 run the batch automation routine
 - (NSString *) createPDFPresentationFromFiles:(NSArray *)fromFiles 
 toFile:(id)toFile withOptions:(SXPhotoshopPresentationOptions *)withOptions;  
 // create a PDF presentation file
 - (NSString *) createContactSheetFromFiles:(NSArray *)fromFiles 
 withOptions:(SXPhotoshopContactSheetOptions *)withOptions;  // create a 
 contact sheet from multiple files
 - (NSString *) createPhotoGalleryFromFolder:(id)fromFolder 
 toFolder:(id)toFolder withOptions:(SXPhotoshopGalleryOptions *)withOptions;  
 // Creates a web photo gallery
 - (NSString *) createPhotoMergeFromFiles:(NSArray *)fromFiles;  // 
 DEPRECATED. Merges multiple files into one, user interaction required.
 - (NSString *) createPicturePackageFromFiles:(NSArray *)fromFiles 
 withOptions:(SXPhotoshopPicturePackageOptions *)withOptions;  // create a 
 picture package from multiple files
 - (BOOL) featureEnabledName:(NSString 

Re: Subclassing a Subclass of SBApplication

2015-06-30 Thread Dave
Hi and Thanks, yes a much better option.

All the Best
Dave
 On 30 Jun 2015, at 14:19, Jean-Daniel Dupas mail...@xenonium.com wrote:
 
 Using class extension is probably a safe way to extends such classes.
 
 @interface SXPhotoshopApplication (MyExtension)
 
 - (void)myWrapper;
 
 @end
 
 
 Le 29 juin 2015 à 13:54, Dave d...@looktowindward.com a écrit :
 
 Hi,
 
 I’m using the Scripting Bridge, and I was wondering if it ok to subclass 
 SBXXX classes. Basically, I have a header file generated by the “sdp” tool 
 with definitions as below:
 
 And I’d like to subclass this to add some extra wrapping to hide some of the 
 nastiness from the rest of the app and provide a tighter integration with 
 the current app handling. I remember reading somewhere that these classes 
 shouldn’t be subclassed, but I can’t seem to find it again now.
 
 Thanks a lot
 Dave
 
 -
 
 @interface SXPhotoshopApplication : SBApplication
 
 - (SBElementArray *) documents;
 - (SBElementArray *) fonts;
 - (SBElementArray *) notifiers;
 
 @property (copy, readonly) NSNumber *bestType;  // the best type for the 
 object's value
 @property (copy, readonly) NSNumber *defaultType;  // the default type for 
 the object's value
 @property (copy) NSDictionary *properties;  // all of this object's 
 properties returned in a single record
 @property (copy) SXPhotoshopColorValue *backgroundColor;
 @property (copy, readonly) NSString *build;  // the build number of Adobe 
 Photoshop application
 @property (copy) id colorSettings;  // name of selected color settings' set
 @property (copy) SXPhotoshopDocument *currentDocument;  // the frontmost 
 document
 @property SXPhotoshopE050 displayDialogs;  // controls whether or not 
 Photoshop displays dialogs
 @property (copy) SXPhotoshopColorValue *foregroundColor;
 @property (readonly) double freeMemory;  // the amount of unused memory 
 available to Adobe Photoshop
 @property (readonly) BOOL frontmost;  // is Photoshop the frontmost 
 application?
 @property (copy, readonly) NSString *locale;  // language locale of 
 application
 @property (copy, readonly) NSArray *macintoshFileTypes;  // list of file 
 image types Photoshop can open
 @property (copy, readonly) NSString *name;  // the application's name
 @property BOOL notifiersEnabled;  // enable or disable all notifiers
 @property (copy, readonly) id preferencesFolder;  // full path to the 
 preferences folder
 @property (copy, readonly) NSArray *recentFiles;  // files in the recent 
 file list
 @property (copy, readonly) NSString *scriptingBuildDate;  // the build date 
 of the scripting interface
 @property (copy, readonly) NSString *scriptingVersion;  // the version of 
 the Scripting interface
 @property (copy, readonly) SXPhotoshopSettingsObject *settings;  // 
 preference settings
 @property (copy, readonly) NSString *systemInformation;  // system 
 information of the host application and machine
 @property (copy, readonly) NSString *version;  // the version of Adobe 
 Photoshop application
 @property (copy, readonly) NSArray *windowsFileTypes;  // list of file image 
 extensions Photoshop can open
 
 - (void) AETEScriptsScriptsJavaScriptNameName:(NSString *)JavaScriptNameName 
 JavaScriptFileFile:(NSString *)JavaScriptFileFile 
 JavaScriptTextText:(NSString *)JavaScriptTextText 
 JavaScriptDebuggingDebugging:(BOOL)JavaScriptDebuggingDebugging 
 JavaScriptMessageMessage:(NSString *)JavaScriptMessageMessage;  // Photoshop 
 scripting support plug-in
 - (void) open:(id)x as:(SXPhotoshopOpAs)as 
 withOptions:(SXPhotoshopOpenOptions *)withOptions 
 showingDialogs:(SXPhotoshopE050)showingDialogs 
 smartObject:(BOOL)smartObject;  // open the specified document file(s)
 - (void) print:(id)x sourceSpace:(SXPhotoshopE945)sourceSpace 
 printSpace:(NSString *)printSpace intent:(SXPhotoshopE130)intent 
 blackpointCompensation:(BOOL)blackpointCompensation;  // print the specified 
 object(s)
 - (void) quit;  // quit the application
 - (NSArray *) PhotoshopOpenDialog;  // use the Photoshop open dialog to 
 select files
 - (NSString *) batch:(NSString *)x fromFiles:(NSArray *)fromFiles 
 from:(NSString *)from withOptions:(SXPhotoshopBatchOptions *)withOptions;  
 // run the batch automation routine
 - (NSString *) createPDFPresentationFromFiles:(NSArray *)fromFiles 
 toFile:(id)toFile withOptions:(SXPhotoshopPresentationOptions *)withOptions; 
  // create a PDF presentation file
 - (NSString *) createContactSheetFromFiles:(NSArray *)fromFiles 
 withOptions:(SXPhotoshopContactSheetOptions *)withOptions;  // create a 
 contact sheet from multiple files
 - (NSString *) createPhotoGalleryFromFolder:(id)fromFolder 
 toFolder:(id)toFolder withOptions:(SXPhotoshopGalleryOptions *)withOptions;  
 // Creates a web photo gallery
 - (NSString *) createPhotoMergeFromFiles:(NSArray *)fromFiles;  // 
 DEPRECATED. Merges multiple files into one, user interaction required.
 - (NSString *) createPicturePackageFromFiles:(NSArray *)fromFiles 
 

Subclassing a Subclass of SBApplication

2015-06-29 Thread Dave
Hi,

I’m using the Scripting Bridge, and I was wondering if it ok to subclass SBXXX 
classes. Basically, I have a header file generated by the “sdp” tool with 
definitions as below:

And I’d like to subclass this to add some extra wrapping to hide some of the 
nastiness from the rest of the app and provide a tighter integration with the 
current app handling. I remember reading somewhere that these classes shouldn’t 
be subclassed, but I can’t seem to find it again now.

Thanks a lot
Dave

-

@interface SXPhotoshopApplication : SBApplication

- (SBElementArray *) documents;
- (SBElementArray *) fonts;
- (SBElementArray *) notifiers;

@property (copy, readonly) NSNumber *bestType;  // the best type for the 
object's value
@property (copy, readonly) NSNumber *defaultType;  // the default type for the 
object's value
@property (copy) NSDictionary *properties;  // all of this object's properties 
returned in a single record
@property (copy) SXPhotoshopColorValue *backgroundColor;
@property (copy, readonly) NSString *build;  // the build number of Adobe 
Photoshop application
@property (copy) id colorSettings;  // name of selected color settings' set
@property (copy) SXPhotoshopDocument *currentDocument;  // the frontmost 
document
@property SXPhotoshopE050 displayDialogs;  // controls whether or not Photoshop 
displays dialogs
@property (copy) SXPhotoshopColorValue *foregroundColor;
@property (readonly) double freeMemory;  // the amount of unused memory 
available to Adobe Photoshop
@property (readonly) BOOL frontmost;  // is Photoshop the frontmost application?
@property (copy, readonly) NSString *locale;  // language locale of application
@property (copy, readonly) NSArray *macintoshFileTypes;  // list of file image 
types Photoshop can open
@property (copy, readonly) NSString *name;  // the application's name
@property BOOL notifiersEnabled;  // enable or disable all notifiers
@property (copy, readonly) id preferencesFolder;  // full path to the 
preferences folder
@property (copy, readonly) NSArray *recentFiles;  // files in the recent file 
list
@property (copy, readonly) NSString *scriptingBuildDate;  // the build date of 
the scripting interface
@property (copy, readonly) NSString *scriptingVersion;  // the version of the 
Scripting interface
@property (copy, readonly) SXPhotoshopSettingsObject *settings;  // preference 
settings
@property (copy, readonly) NSString *systemInformation;  // system information 
of the host application and machine
@property (copy, readonly) NSString *version;  // the version of Adobe 
Photoshop application
@property (copy, readonly) NSArray *windowsFileTypes;  // list of file image 
extensions Photoshop can open

- (void) AETEScriptsScriptsJavaScriptNameName:(NSString *)JavaScriptNameName 
JavaScriptFileFile:(NSString *)JavaScriptFileFile JavaScriptTextText:(NSString 
*)JavaScriptTextText 
JavaScriptDebuggingDebugging:(BOOL)JavaScriptDebuggingDebugging 
JavaScriptMessageMessage:(NSString *)JavaScriptMessageMessage;  // Photoshop 
scripting support plug-in
- (void) open:(id)x as:(SXPhotoshopOpAs)as withOptions:(SXPhotoshopOpenOptions 
*)withOptions showingDialogs:(SXPhotoshopE050)showingDialogs 
smartObject:(BOOL)smartObject;  // open the specified document file(s)
- (void) print:(id)x sourceSpace:(SXPhotoshopE945)sourceSpace 
printSpace:(NSString *)printSpace intent:(SXPhotoshopE130)intent 
blackpointCompensation:(BOOL)blackpointCompensation;  // print the specified 
object(s)
- (void) quit;  // quit the application
- (NSArray *) PhotoshopOpenDialog;  // use the Photoshop open dialog to select 
files
- (NSString *) batch:(NSString *)x fromFiles:(NSArray *)fromFiles 
from:(NSString *)from withOptions:(SXPhotoshopBatchOptions *)withOptions;  // 
run the batch automation routine
- (NSString *) createPDFPresentationFromFiles:(NSArray *)fromFiles 
toFile:(id)toFile withOptions:(SXPhotoshopPresentationOptions *)withOptions;  
// create a PDF presentation file
- (NSString *) createContactSheetFromFiles:(NSArray *)fromFiles 
withOptions:(SXPhotoshopContactSheetOptions *)withOptions;  // create a contact 
sheet from multiple files
- (NSString *) createPhotoGalleryFromFolder:(id)fromFolder 
toFolder:(id)toFolder withOptions:(SXPhotoshopGalleryOptions *)withOptions;  // 
Creates a web photo gallery
- (NSString *) createPhotoMergeFromFiles:(NSArray *)fromFiles;  // DEPRECATED. 
Merges multiple files into one, user interaction required.
- (NSString *) createPicturePackageFromFiles:(NSArray *)fromFiles 
withOptions:(SXPhotoshopPicturePackageOptions *)withOptions;  // create a 
picture package from multiple files
- (BOOL) featureEnabledName:(NSString *)name;  // is the feature with the given 
name enabled?
- (void) purge:(SXPhotoshopE150)x;  // purges one or more caches
- (void) refresh;  // pause the script until the application refreshes
- (SXPhotoshopRGBColor *) webSafeColorFor:(SXPhotoshopColorValue *)for_;  // 
find the closest web safe color for a color
-