00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __AILiveEffect__
00018 #define __AILiveEffect__
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef __AITypes__
00028 #include "AITypes.h"
00029 #endif
00030
00031 #ifndef __AIArt__
00032 #include "AIArt.h"
00033 #endif
00034
00035 #ifndef __AIDict__
00036 #include "AIDictionary.h"
00037 #endif
00038
00039 #ifndef __AIFilter__
00040 #include "AIFilter.h"
00041 #endif
00042
00043 #ifndef __AIMenu__
00044 #include "AIMenu.h"
00045 #endif
00046
00047 #ifndef __AIPlugin__
00048 #include "AIPlugin.h"
00049 #endif
00050
00051 #ifndef __AIXMLElement__
00052 #include "AIXMLElement.h"
00053 #endif
00054
00055
00056
00057 #include "AIHeaderBegin.h"
00058
00061
00062
00063
00064
00065
00066
00067 #define kAILiveEffectSuite "AI Live Effect Suite"
00068 #define kAILiveEffectSuiteVersion AIAPI_VERSION(7)
00069 #define kAILiveEffectVersion kAILiveEffectSuiteVersion
00070
00073 #define kCallerAILiveEffect "AI Live Effect"
00074
00075
00083 #define kAILiveEffectParamsExpandBeforeKey "Adobe Effect Expand Before Version"
00084
00085 #define kAILiveEffectParamsWriteAlternateVersionMajorKey "Adobe Effect Expand Write Alternate Version Major"
00086 #define kAILiveEffectParamsWriteAlternateVersionMinorKey "Adobe Effect Expand Write Alternate Version Minor"
00087
00088
00089
00090
00094 #define kSelectorAIEditLiveEffectParameters "AI Live Effect Edit Parameters"
00095
00098 #define kSelectorAIGoLiveEffect "AI Live Effect Go Live"
00099
00101 #define kSelectorAILiveEffectInterpolate "AI Live Effect Interpolate Parameters"
00102
00104 #define kSelectorAILiveEffectInputType "AI Live Effect Input Type"
00105
00107 #define kSelectorAILiveEffectConverColorSpace "AI Live Effect Convert Color Space"
00108
00110 #define kSelectorAILiveEffectScaleParameters "AI Live Effect Scale Parameters"
00111
00113 #define kSelectorAILiveEffectHandleMerge "AI Live Effect Handle Merge"
00114
00116 #define kSelectorAILiveEffectGetSVGFilter "AI Live Effect Get SVG Filter"
00117
00119 #define kSelectorAILiveEffectAdjustColors "AI Live Effect Adjust Colors"
00120
00122 #define kSelectorAILiveEffectIsCompatible "AI Live Effect Is Compatible"
00123
00125 #define kSelectorAILiveEffectDocScaleConvertParameters "AI Live Effect Doc Scale Convert Parameters"
00126
00133 #define kDisplayStringKey "DisplayString"
00134
00140 #define kExtraStringKey "ExtraString"
00141
00146 #define kFillStyleKey "FillStyle"
00147
00154 #define kTransformedFillStyleKey "TransformedFillStyle"
00155
00163 #define kFillStyleMatrixKey "FillStyleMatrix"
00164
00168 #define kEvenOddKey "UseEvenOdd"
00169
00173 #define kStrokeStyleKey "StrokeStyle"
00174
00181 #define kTransformedStrokeStyleKey "TransformedStrokeStyle"
00182
00190 #define kStrokeStyleMatrixKey "StrokeStyleMatrix"
00191
00197 #define kScaleFactorKey "ScaleFactorString"
00198
00199
00200
00201
00202
00203
00204
00205
00207 typedef struct _t_AILiveEffectOpaque* AILiveEffectHandle;
00209 typedef struct _t_AILiveEffectParamContext* AILiveEffectParamContext;
00210
00211
00213 struct AddLiveEffectMenuData {
00216 char *category;
00218 char *title;
00220 ai::int32 options;
00221 };
00222
00223
00225 typedef AIDictionaryRef AILiveEffectParameters;
00226 typedef ConstAIDictionaryRef ConstAILiveEffectParameters;
00227
00228
00236 enum AIStyleFilterFlags {
00238 kNoFlags = 0,
00240 kPreEffectFilter = 0x1,
00242 kPostEffectFilter = 0x2,
00245 kStrokeFilter = 0x3,
00247 kFillFilter = 0x4,
00250 kFilterTypeMask = 0x0ffff,
00252 kSpecialGroupPreFilter = 1 << 16,
00254 kHasScalableParams = 1 << 17,
00256 kUsesAutoRasterize = 1 << 18,
00258 kCanGenerateSVGFilter = 1 << 19,
00260 kHandlesAdjustColorsMsg = 1 << 20,
00262 kHandlesIsCompatibleMsg = 1 << 21,
00263
00264 kHasDocScaleConvertibleParams = 1 << 22
00265 };
00266
00267
00273 enum AIStyleFilterPreferredInputArtType {
00276 kInputArtDynamic = 0,
00278 kGroupInputArt = 1 << ((ai::int32) kGroupArt - 1),
00280 kPathInputArt = 1 << ((ai::int32) kPathArt - 1),
00282 kCompoundPathInputArt = 1 << ((ai::int32) kCompoundPathArt - 1),
00283
00285 kTextInputArtUnsupported = 1 << ((ai::int32) kTextArtUnsupported - 1),
00287 kTextPathInputArtUnsupported= 1 << ((ai::int32) kTextPathArtUnsupported - 1),
00289 kTextRunInputArtUnsupported = 1 << ((ai::int32) kTextRunArtUnsupported - 1),
00291 kPlacedInputArt = 1 << ((ai::int32) kPlacedArt - 1),
00293 kMysteryPathInputArt = 1 << ((ai::int32) kMysteryPathArt - 1),
00295 kRasterInputArt = 1 << ((ai::int32) kRasterArt - 1),
00296
00299 kPluginInputArt = 1 << ((ai::int32) kPluginArt - 1),
00301 kMeshInputArt = 1 << ((ai::int32) kMeshArt - 1),
00303 kTextFrameInputArt = 1 << ((ai::int32) kTextFrameArt - 1),
00305 kSymbolInputArt = 1 << ((ai::int32) kSymbolArt - 1),
00307 kForeignInputArt = 1 << ((ai::int32) kForeignArt - 1),
00309 kLegacyTextInputArt = 1 << ((ai::int32) kLegacyTextArt - 1),
00311 kChartInputArt = 1 << ((ai::int32) kChartArt - 1),
00312
00314 kAnyInputArt = 0xFFFF,
00317 kAnyInputArtButPluginArt = kAnyInputArt & ~kPluginInputArt,
00318
00319
00320
00322
00323 kOutlinedStrokeInputArt = 0x10000,
00327
00328
00329
00330
00331
00332 kNoClipMasksInputArt = 0x20000
00333
00334 };
00335
00336
00338 enum AILiveEffectMergeAction {
00340 kAppendLiveEffectToStyle,
00342 kReplaceFillWithLiveEffect,
00344 kReplaceStrokeWithLiveEffect,
00348 kSendHandleMergeMessage = 0x10000
00349 };
00350
00351
00354 struct AILiveEffectData {
00357 SPPluginRef self;
00359 const char* name;
00361 char *title;
00363 ai::int32 majorVersion;
00365 ai::int32 minorVersion;
00368 ai::int32 prefersAsInput;
00371 ai::int32 styleFilterFlags;
00372 };
00373
00374
00375
00376
00377
00378
00379
00386 struct AILiveEffectGoMessage {
00388 SPMessageData d;
00390 AILiveEffectHandle effect;
00392 AILiveEffectParameters parameters;
00395 AILiveEffectParameters instanceInfo;
00402 AIArtHandle art;
00403 };
00404
00416 struct AILiveEffectEditParamMessage {
00418 SPMessageData d;
00420 AILiveEffectHandle effect;
00423 AILiveEffectParameters parameters;
00425 AILiveEffectParamContext context;
00430 AIBoolean allowPreview;
00431
00435 AIBoolean isNewInstance;
00436 };
00437
00447 struct AILiveEffectInterpParamMessage {
00449 SPMessageData d;
00451 AILiveEffectHandle effect;
00453 AILiveEffectParameters startParams;
00455 AILiveEffectParameters endParams;
00457 AILiveEffectParameters outParams;
00461 AIReal percent;
00462
00463 };
00464
00469 struct AILiveEffectInputTypeMessage {
00471 SPMessageData d;
00473 AILiveEffectHandle effect;
00475 AILiveEffectParameters parameters;
00477 AIArtHandle inputArt;
00482 ai::int32 typeMask;
00483 };
00484
00490 struct AILiveEffectConvertColorMessage {
00492 SPMessageData d;
00494 AILiveEffectHandle effect;
00496 AILiveEffectParameters parameters;
00498 AIColorTag newColorSpace;
00499 };
00500
00525 struct AILiveEffectAdjustColorsMessage {
00527 SPMessageData d;
00529 AILiveEffectHandle effect;
00531 AILiveEffectParameters parameters;
00532
00536 AIAdjustColorFunc adjustColorCallback;
00539 AIAdjustPatternHandleFunc adjustPatternHandleCallback;
00541 void *clientData;
00543 VisitAIColorFlags controlFlags;
00544
00546 AIBoolean modifiedSomething;
00547 };
00548
00549
00551 struct AILiveEffectScaleParamMessage {
00553 SPMessageData d;
00555 AILiveEffectHandle effect;
00558 AILiveEffectParameters parameters;
00561 AIReal scaleFactor;
00563 AIBoolean scaledParams;
00564 };
00565
00570 struct AILiveEffectHandleMergeMessage {
00572 SPMessageData d;
00574 AILiveEffectHandle effect;
00577 AILiveEffectHandle oldEffect;
00579 AIBoolean dontMerge;
00582 AIBoolean keepInstanceInfo;
00585 AILiveEffectParameters parameters;
00586 };
00587
00596 struct AILiveEffectGetSVGFilterMessage {
00598 SPMessageData d;
00600 AILiveEffectHandle effect;
00602 AILiveEffectParameters parameters;
00604 AISVGFilterHandle svgFilter;
00605 };
00606
00613 struct AILiveEffectIsCompatibleMessage {
00614 explicit AILiveEffectIsCompatibleMessage(
00615 AILiveEffectHandle thisEffect = 0,
00616 AIVersion version = kAIVersion1,
00617 ConstAILiveEffectParameters params = 0,
00618 AIBoolean compat = false)
00619 : effect(thisEffect), appVersion(version), parameters(params), compatible(compat) {}
00620
00622 SPMessageData d;
00624 AILiveEffectHandle effect;
00626 AIVersion appVersion;
00628 ConstAILiveEffectParameters parameters;
00629
00631 AIBoolean compatible;
00632 };
00633
00634
00635
00636
00637
00638
00639
00682 struct AILiveEffectSuite {
00683
00689 AIAPI AIErr (*AddLiveEffect) ( AILiveEffectData* effectInfo, AILiveEffectHandle *liveEffectHandle );
00690
00701 AIAPI AIErr (*AddLiveEffectFilterItem) ( AILiveEffectHandle liveEffectHandle,
00702 AIFilterHandle filterHandle, AIMenuItemHandle *menuItem, AIMenuGroup *menuGroup );
00703
00718 AIAPI AIErr (*AddLiveEffectMenuItem) ( AILiveEffectHandle liveEffectHandle, const char* menuName,
00719 AddLiveEffectMenuData *menuData, AIMenuItemHandle *menuItem, AIMenuGroup *menuGroup );
00720
00722 AIAPI AIErr (*ExecuteLiveEffect) ( AILiveEffectHandle effect,
00723 AILiveEffectParameters parameters, AIArtHandle art );
00724
00734 AIAPI AIErr (*EditParameters) ( AILiveEffectParamContext context, AIBoolean enablePreview );
00735
00743 AIAPI AIErr (*UpdateParameters) ( AILiveEffectParamContext context );
00744
00756 AIAPI AIErr (*InterpolateEffectParameters) ( AILiveEffectHandle effect,
00757 AILiveEffectParameters startParams, AILiveEffectParameters endParams,
00758 AIReal percent, AILiveEffectParameters resultParams );
00759
00764 AIAPI AIErr (*CountLiveEffects) ( ai::int32* count );
00765
00771 AIAPI AIErr (*GetNthLiveEffect) ( ai::int32 n, AILiveEffectHandle* effect );
00772
00778 AIAPI AIErr (*GetLiveEffectName) ( AILiveEffectHandle effect, const char** name );
00779
00785 AIAPI AIErr (*GetLiveEffectTitle) ( AILiveEffectHandle effect, const char** name );
00786
00792 AIAPI AIErr (*GetLiveEffectVersion) ( AILiveEffectHandle effect, ai::int32* major, ai::int32* minor );
00793
00799 AIAPI AIErr (*GetInputPreference) ( AILiveEffectHandle effect, ai::int32* inputPreference );
00800
00806 AIAPI AIErr (*GetStyleFilterFlags) ( AILiveEffectHandle effect, ai::int32* styleFilterFlags );
00807
00814 AIAPI AIErr (*MergeLiveEffectIntoSelection) ( AILiveEffectHandle effect, AILiveEffectMergeAction action );
00815
00825 AIAPI AIErr (*NewArtStyleByMergingLiveEffect) ( AIArtStyleHandle artStyle, AILiveEffectHandle effect,
00826 AILiveEffectParameters params, AILiveEffectMergeAction action, AIArtStyleHandle *newArtStyle );
00827
00836 AIAPI AIMenuItemHandle (*GetMenuItem) ( AILiveEffectParamContext context );
00837
00851 AIAPI AIErr (*CreateLiveEffectParameters) ( AILiveEffectParameters* params );
00852
00864 AIAPI AIErr (*GetLiveEffectAppVersion) ( AILiveEffectHandle effect, AIVersion* appVersionRGB, AIVersion* appVersionCMYK );
00865
00877 AIAPI AIErr (*SetLiveEffectAppVersion) ( AILiveEffectHandle effect, AIVersion appVersionRGB, AIVersion appVersionCMYK );
00878
00879
00880
00881
00882
00883
00884 AIAPI AIErr (*GetLiveEffectHandleByName) (const char* liveEffectName, AILiveEffectHandle* outLiveEffect);
00885 };
00886
00887
00888 #include "AIHeaderEnd.h"
00889
00890
00891 #endif