Adobe.com
Contents Suites Classes Class Index Member Index

AIObjectSet.h

Go to the documentation of this file.
00001 #ifndef __AIObjectSet__
00002 #define __AIObjectSet__
00003 
00004 /*
00005  *        Name: AIObjectSet.h
00006  *   $Revision: 17 $
00007  *      Author:
00008  *        Date:
00009  *     Purpose: Adobe Illustrator Object Set Suite.
00010  *
00011  * ADOBE SYSTEMS INCORPORATED
00012  * Copyright 1986-2007 Adobe Systems Incorporated.
00013  * All rights reserved.
00014  *
00015  * NOTICE:  Adobe permits you to use, modify, and distribute this file 
00016  * in accordance with the terms of the Adobe license agreement 
00017  * accompanying it. If you have received this file from a source other 
00018  * than Adobe, then your use, modification, or distribution of it 
00019  * requires the prior written permission of Adobe.
00020  *
00021  */
00022 
00023 
00024 /*******************************************************************************
00025  **
00026  **     Imports
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  ** Constants
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  **     Types
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;                 /* Used to determine the color variant */
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  **     Suite
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


Contents Suites Classes Class Index Member Index
Adobe Solutions Network
 
Copyright © 2016 Adobe Systems Incorporated. All rights reserved.
Terms of Use Online Privacy Policy Adobe and accessibility Avoid software piracy Permissions and Trademarks