Adobe.com
Contents Suites Classes Class Index Member Index

AIObjectSet.h

Go to the documentation of this file.
00001 #pragma once
00002 
00003 /*
00004  *        Name: AIObjectSet.h
00005  *   $Revision: 17 $
00006  *      Author:
00007  *        Date:
00008  *     Purpose: Adobe Illustrator Object Set Suite.
00009  *
00010  * ADOBE SYSTEMS INCORPORATED
00011  * Copyright 1986 Adobe Systems Incorporated.
00012  * All rights reserved.
00013  *
00014  * NOTICE:  Adobe permits you to use, modify, and distribute this file 
00015  * in accordance with the terms of the Adobe license agreement 
00016  * accompanying it. If you have received this file from a source other 
00017  * than Adobe, then your use, modification, or distribution of it 
00018  * requires the prior written permission of Adobe.
00019  *
00020  */
00021 
00022 
00023 /*******************************************************************************
00024  **
00025  **     Imports
00026  **
00027  **/
00028 
00029 #ifndef __AITypes__
00030 #include "AITypes.h"
00031 #endif
00032 
00033 #ifndef __AIPlugin__
00034 #include "AIPlugin.h"
00035 #endif
00036 
00037 #ifndef __AIColor__
00038 #include "AIColor.h"
00039 #endif
00040 
00041 #ifndef __AIArt__
00042 #include "AIArt.h"
00043 #endif
00044 
00045 #include "AIUnicodeString.h"
00046 
00047 
00048 #include "AIHeaderBegin.h"
00049 
00053 /*******************************************************************************
00054  **
00055  ** Constants
00056  **
00057  **/
00069 #define kAIObjectSetSuite                               "AI ObjectSet Suite"
00070 #define kAIObjectSetSuiteVersion5               AIAPI_VERSION(5)
00071 #define kAIObjectSetSuiteVersion                kAIObjectSetSuiteVersion5
00072 #define kAIObjectSetVersion                             kAIObjectSetSuiteVersion
00073 
00076 #define kAIObjectSetChangedNotifier             "AI Object Set Changed Notifier"
00077 
00079 #define kAIReplaceColorNotifier                 "AI Replace Color Notifier"
00080 
00083 #define kNameClashErr                   'NmCl'
00084 
00086 #define kUninitializedDataErr   'init'
00087 
00089 #define kCantDoThatNowErr               '!now'
00090 
00094 #define kCallerAIObjectSet                                      "AI Object Set"
00095 
00104 #define kSelectorObjectSetDisposeContents "AI Object Set Dispose Contents"
00105 
00113 #define kSelectorObjectSetMarkUsage "AI Object Set Mark Usage"
00114 
00122 #define kSelectorObjectSetUpdateInternal "AI Object Set Update Internal"
00123 
00130 #define kSelectorObjectSetUpdateExternal "AI Object Set Update External"
00131 
00139 #define kSelectorObjectSetPurge "AI Object Set Purge"
00140 
00147 #define kSelectorObjectSetChange "AI Object Set Change"
00148 
00156 #define kSelectorObjectSetChangeIndirect "AI Object Set Change Indirect"
00157 
00164 #define kSelectorObjectSetCopy "AI Object Set Copy"
00165 
00172 #define kSelectorObjectSetInitializationDone "AI Object Set Initialization Done"
00173 
00174 
00175 /*******************************************************************************
00176  **
00177  **     Types
00178  **
00179  **/
00180 
00183 typedef struct _t_AIObjectSetOpaque *AIObjectSetHandle;
00186 typedef struct _t_AIObjectOpaque *AIObjectHandle;
00187 
00191 enum AIObjectSetChangeType {
00192         kAIObjectSetChangeDelete,
00193         kAIObjectSetChangeNew,
00194         kAIObjectSetChangeChange,
00195         kAIObjectSetChangeRename
00196 };
00197 
00201 enum AIObjectMapType {
00202         kAIObjectMapCustomColor,
00203         kAIObjectMapPattern,
00204         kAIObjectMapBrushPattern,
00205         kAIObjectMapGradient,
00206         kAIObjectMapPluginObject,
00207         kAIObjectMapDone = -1
00208 };
00209 
00212 struct AIObjectMap {
00214         ai::int16 objectType;
00215         ai::int16 offset;
00216 };
00217 
00221 enum AIReplaceColorTag {
00222         kRepGrayColor = kGrayColor,
00223         kRepFourColor = kFourColor,
00224         kRepPattern = kPattern,
00225         kRepCustomColor = kCustomColor,
00226         kRepGradient = kGradient,
00227         kRepThreeColor = kThreeColor,
00228         kRepNoneColor = kNoneColor,
00229         kRepBrushPattern = kNoneColor + 5,
00230 
00231         kRepColorDone = -1,
00232         kRepColorSameTagAsInAIColor = -2
00233 
00234 };
00235 
00238 struct AIReplaceColor {
00239         AIReplaceColorTag kind;                 /* Used to determine the color variant */
00240         AIColorUnion c;
00241 };
00242 
00245 struct AIReplaceColorNotifierData {
00246         ASInt32                 pairs;
00247         AIReplaceColor *colorPtr;
00248 };
00249 
00279 struct AIObjectSetMessage {
00280         SPMessageData d;
00281         AIObjectSetHandle set;
00282         AIObjectHandle object;
00283         ai::int16 subobjectType;
00284         union {
00285                 AIPatternHandle pattern;
00286                 AIGradientHandle gradient;
00287                 AICustomColorHandle ccolor;
00288                 struct {
00289                         AIObjectSetHandle set;
00290                         AIObjectHandle object;
00291                 } object;
00292         } subobject;
00293         AIObjectSetChangeType changeType;
00294         AIArtHandle markArt;
00295         AIVersion aiVersion;
00296 };
00297 
00298 
00299 /*******************************************************************************
00300  **
00301  **     Suite
00302  **
00303  **/
00304 
00310 struct AIObjectSetSuite {
00311 
00312         AIAPI AIErr (*NewObjectSet) ( SPPluginRef self, const unsigned char *name, const AIObjectMap *map, AIObjectSetHandle *set );
00313         AIAPI AIErr (*CountObjectSets) ( ai::int32 *count );
00314         AIAPI AIErr (*GetNthObjectSet) ( ai::int32 n, AIObjectSetHandle *set );
00315         AIAPI AIErr (*GetObjectSetName) ( AIObjectSetHandle set, unsigned char *name );
00316         AIAPI AIErr (*GetObjectSetByName) ( const unsigned char *name, AIObjectSetHandle *set );
00317         AIAPI AIErr (*GetObjectSetMap) ( AIObjectSetHandle set, const AIObjectMap **map );
00318         AIAPI AIErr (*NewObject) ( AIObjectSetHandle setHandle, const ai::UnicodeString& name, const void *def,
00319                 ai::int32 defLen, AIObjectHandle *object );
00320         AIAPI AIErr (*DeleteObject) ( AIObjectSetHandle setHandle, AIObjectHandle object);
00321         AIAPI AIErr (*SetObjectInternal) ( AIObjectSetHandle setHandle, AIObjectHandle object, const void *data, ai::int32 dataLen);
00322         AIAPI AIErr (*SetObjectExternal) ( AIObjectSetHandle setHandle, AIObjectHandle object, const char *data);
00323         AIAPI AIErr (*GetObjectInternal) ( AIObjectSetHandle setHandle, AIObjectHandle object, const void **data, ai::int32 *dataLen);
00324         AIAPI AIErr (*GetObjectExternal) ( AIObjectSetHandle setHandle, AIObjectHandle object, const char **data);
00325         AIAPI AIErr (*CountObjects) ( AIObjectSetHandle setHandle, ai::int32 *count);
00326         AIAPI AIErr (*GetNthObject) ( AIObjectSetHandle setHandle, ai::int32 n, AIObjectHandle *object);
00327         AIAPI AIErr (*GetObjectName) ( AIObjectSetHandle setHandle, AIObjectHandle object, ai::UnicodeString& name);
00328         AIAPI AIErr (*SetObjectName) ( AIObjectSetHandle setHandle, AIObjectHandle object, const ai::UnicodeString& name);
00329         AIAPI AIErr (*GetObjectByName) ( AIObjectSetHandle setHandle, ai::UnicodeString& name, AIObjectHandle *object);
00330         AIAPI AIErr (*NewObjectName) ( AIObjectSetHandle setHandle, ai::UnicodeString& name );
00331         AIAPI AIErr (*MarkObjectInUse) ( AIObjectSetHandle setHandle, AIObjectHandle object);
00332         AIAPI AIErr (*RetargetForCurrentDocument) ( AIObjectHandle object, AIObjectHandle *newObj );
00333 
00334         AIAPI AIErr (*GetExternalObjectName) (AIObjectSetHandle setHandle, AIObjectHandle object,
00335                 AIVersion aiVersion, char *buf, ai::int32* bufLen );
00336 
00337 };
00338 
00339 
00340 #include "AIHeaderEnd.h"


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