00001 #ifndef __AIObjectSet__
00002 #define __AIObjectSet__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef __AITypes__
00031 #include "AITypes.h"
00032 #endif
00033
00034 #ifndef __AIPlugin__
00035 #include "AIPlugin.h"
00036 #endif
00037
00038 #ifndef __AIColor__
00039 #include "AIColor.h"
00040 #endif
00041
00042 #ifndef __AIArt__
00043 #include "AIArt.h"
00044 #endif
00045
00046 #include "AIUnicodeString.h"
00047
00048
00049 #include "AIHeaderBegin.h"
00050
00054
00055
00056
00057
00058
00070 #define kAIObjectSetSuite "AI ObjectSet Suite"
00071 #define kAIObjectSetSuiteVersion4 AIAPI_VERSION(4)
00072 #define kAIObjectSetSuiteVersion kAIObjectSetSuiteVersion4
00073 #define kAIObjectSetVersion kAIObjectSetSuiteVersion
00074
00077 #define kAIObjectSetChangedNotifier "AI Object Set Changed Notifier"
00078
00080 #define kAIReplaceColorNotifier "AI Replace Color Notifier"
00081
00084 #define kNameClashErr 'NmCl'
00085
00087 #define kUninitializedDataErr 'init'
00088
00090 #define kCantDoThatNowErr '!now'
00091
00095 #define kCallerAIObjectSet "AI Object Set"
00096
00105 #define kSelectorObjectSetDisposeContents "AI Object Set Dispose Contents"
00106
00114 #define kSelectorObjectSetMarkUsage "AI Object Set Mark Usage"
00115
00123 #define kSelectorObjectSetUpdateInternal "AI Object Set Update Internal"
00124
00131 #define kSelectorObjectSetUpdateExternal "AI Object Set Update External"
00132
00140 #define kSelectorObjectSetPurge "AI Object Set Purge"
00141
00148 #define kSelectorObjectSetChange "AI Object Set Change"
00149
00157 #define kSelectorObjectSetChangeIndirect "AI Object Set Change Indirect"
00158
00165 #define kSelectorObjectSetCopy "AI Object Set Copy"
00166
00173 #define kSelectorObjectSetInitializationDone "AI Object Set Initialization Done"
00174
00175
00176
00177
00178
00179
00180
00181
00184 typedef struct _t_AIObjectSetOpaque *AIObjectSetHandle;
00187 typedef struct _t_AIObjectOpaque *AIObjectHandle;
00188
00192 enum AIObjectSetChangeType {
00193 kAIObjectSetChangeDelete,
00194 kAIObjectSetChangeNew,
00195 kAIObjectSetChangeChange,
00196 kAIObjectSetChangeRename
00197 };
00198
00202 enum AIObjectMapType {
00203 kAIObjectMapCustomColor,
00204 kAIObjectMapPattern,
00205 kAIObjectMapBrushPattern,
00206 kAIObjectMapGradient,
00207 kAIObjectMapPluginObject,
00208 kAIObjectMapDone = -1
00209 };
00210
00213 struct AIObjectMap {
00215 ai::int16 objectType;
00216 ai::int16 offset;
00217 };
00218
00222 enum AIReplaceColorTag {
00223 kRepGrayColor = kGrayColor,
00224 kRepFourColor = kFourColor,
00225 kRepPattern = kPattern,
00226 kRepCustomColor = kCustomColor,
00227 kRepGradient = kGradient,
00228 kRepThreeColor = kThreeColor,
00229 kRepNoneColor = kNoneColor,
00230 kRepBrushPattern = kNoneColor + 5,
00231
00232 kRepColorDone = -1,
00233 kRepColorSameTagAsInAIColor = -2
00234
00235 };
00236
00239 struct AIReplaceColor {
00240 AIReplaceColorTag kind;
00241 AIColorUnion c;
00242 };
00243
00246 struct AIReplaceColorNotifierData {
00247 ASInt32 pairs;
00248 AIReplaceColor *colorPtr;
00249 };
00250
00280 struct AIObjectSetMessage {
00281 SPMessageData d;
00282 AIObjectSetHandle set;
00283 AIObjectHandle object;
00284 ai::int16 subobjectType;
00285 union {
00286 AIPatternHandle pattern;
00287 AIGradientHandle gradient;
00288 AICustomColorHandle ccolor;
00289 struct {
00290 AIObjectSetHandle set;
00291 AIObjectHandle object;
00292 } object;
00293 } subobject;
00294 AIObjectSetChangeType changeType;
00295 AIArtHandle markArt;
00296 AIVersion aiVersion;
00297 };
00298
00299
00300
00301
00302
00303
00304
00305
00311 struct AIObjectSetSuite {
00312
00313 AIAPI AIErr (*NewObjectSet) ( SPPluginRef self, const unsigned char *name, const AIObjectMap *map, AIObjectSetHandle *set );
00314 AIAPI AIErr (*CountObjectSets) ( ai::int32 *count );
00315 AIAPI AIErr (*GetNthObjectSet) ( ai::int32 n, AIObjectSetHandle *set );
00316 AIAPI AIErr (*GetObjectSetName) ( AIObjectSetHandle set, unsigned char *name );
00317 AIAPI AIErr (*GetObjectSetByName) ( const unsigned char *name, AIObjectSetHandle *set );
00318 AIAPI AIErr (*GetObjectSetMap) ( AIObjectSetHandle set, const AIObjectMap **map );
00319 AIAPI AIErr (*NewObject) ( AIObjectSetHandle setHandle, const ai::UnicodeString& name, const void *def,
00320 ai::int32 defLen, AIObjectHandle *object );
00321 AIAPI AIErr (*DeleteObject) ( AIObjectSetHandle setHandle, AIObjectHandle object);
00322 AIAPI AIErr (*SetObjectInternal) ( AIObjectSetHandle setHandle, AIObjectHandle object, const void *data, ai::int32 dataLen);
00323 AIAPI AIErr (*SetObjectExternal) ( AIObjectSetHandle setHandle, AIObjectHandle object, const char *data);
00324 AIAPI AIErr (*GetObjectInternal) ( AIObjectSetHandle setHandle, AIObjectHandle object, const void **data, ai::int32 *dataLen);
00325 AIAPI AIErr (*GetObjectExternal) ( AIObjectSetHandle setHandle, AIObjectHandle object, const char **data);
00326 AIAPI AIErr (*CountObjects) ( AIObjectSetHandle setHandle, ai::int32 *count);
00327 AIAPI AIErr (*GetNthObject) ( AIObjectSetHandle setHandle, ai::int32 n, AIObjectHandle *object);
00328 AIAPI AIErr (*GetObjectName) ( AIObjectSetHandle setHandle, AIObjectHandle object, ai::UnicodeString& name);
00329 AIAPI AIErr (*SetObjectName) ( AIObjectSetHandle setHandle, AIObjectHandle object, const ai::UnicodeString& name);
00330 AIAPI AIErr (*GetObjectByName) ( AIObjectSetHandle setHandle, ai::UnicodeString& name, AIObjectHandle *object);
00331 AIAPI AIErr (*NewObjectName) ( AIObjectSetHandle setHandle, ai::UnicodeString& name );
00332 AIAPI AIErr (*MarkObjectInUse) ( AIObjectSetHandle setHandle, AIObjectHandle object);
00333 AIAPI AIErr (*RetargetForCurrentDocument) ( AIObjectHandle object, AIObjectHandle *newObj );
00334
00335 AIAPI AIErr (*GetExternalObjectName) (AIObjectSetHandle setHandle, AIObjectHandle object,
00336 AIVersion aiVersion, char *buf, ai::int32* bufLen );
00337
00338 AIAPI AIErr (*SetObjectExternalAlternate) ( AIObjectSetHandle setHandle, AIObjectHandle object, const char *data,
00339 ai::uint32 majorVersion, ai::uint32 minorVersion);
00340
00341 };
00342
00343
00344 #include "AIHeaderEnd.h"
00345
00346
00347 #endif