00001 #ifndef __AILiveEffect__
00002 #define __AILiveEffect__
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 #ifndef __AITypes__
00030 #include "AITypes.h"
00031 #endif
00032
00033 #ifndef __AIArt__
00034 #include "AIArt.h"
00035 #endif
00036
00037 #ifndef __AIDict__
00038 #include "AIDictionary.h"
00039 #endif
00040
00041 #ifndef __AIFilter__
00042 #include "AIFilter.h"
00043 #endif
00044
00045 #ifndef __AIMenu__
00046 #include "AIMenu.h"
00047 #endif
00048
00049 #ifndef __AIPlugin__
00050 #include "AIPlugin.h"
00051 #endif
00052
00053 #ifndef __AIXMLElement__
00054 #include "AIXMLElement.h"
00055 #endif
00056
00057
00058
00059 #include "AIHeaderBegin.h"
00060
00063
00064
00065
00066
00067
00068
00069 #define kAILiveEffectSuite "AI Live Effect Suite"
00070 #define kAILiveEffectSuiteVersion AIAPI_VERSION(6)
00071 #define kAILiveEffectVersion kAILiveEffectSuiteVersion
00072
00075 #define kCallerAILiveEffect "AI Live Effect"
00076
00077
00085 #define kAILiveEffectParamsExpandBeforeKey "Adobe Effect Expand Before Version"
00086
00087 #define kAILiveEffectParamsWriteAlternateVersionMajorKey "Adobe Effect Expand Write Alternate Version Major"
00088 #define kAILiveEffectParamsWriteAlternateVersionMinorKey "Adobe Effect Expand Write Alternate Version Minor"
00089
00090
00091
00092
00096 #define kSelectorAIEditLiveEffectParameters "AI Live Effect Edit Parameters"
00097
00100 #define kSelectorAIGoLiveEffect "AI Live Effect Go Live"
00101
00103 #define kSelectorAILiveEffectInterpolate "AI Live Effect Interpolate Parameters"
00104
00106 #define kSelectorAILiveEffectInputType "AI Live Effect Input Type"
00107
00109 #define kSelectorAILiveEffectConverColorSpace "AI Live Effect Convert Color Space"
00110
00112 #define kSelectorAILiveEffectScaleParameters "AI Live Effect Scale Parameters"
00113
00115 #define kSelectorAILiveEffectHandleMerge "AI Live Effect Handle Merge"
00116
00118 #define kSelectorAILiveEffectGetSVGFilter "AI Live Effect Get SVG Filter"
00119
00121 #define kSelectorAILiveEffectAdjustColors "AI Live Effect Adjust Colors"
00122
00124 #define kSelectorAILiveEffectIsCompatible "AI Live Effect Is Compatible"
00125
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
00265
00271 enum AIStyleFilterPreferredInputArtType {
00274 kInputArtDynamic = 0,
00276 kGroupInputArt = 1 << ((ai::int32) kGroupArt - 1),
00278 kPathInputArt = 1 << ((ai::int32) kPathArt - 1),
00280 kCompoundPathInputArt = 1 << ((ai::int32) kCompoundPathArt - 1),
00281
00283 kTextInputArtUnsupported = 1 << ((ai::int32) kTextArtUnsupported - 1),
00285 kTextPathInputArtUnsupported= 1 << ((ai::int32) kTextPathArtUnsupported - 1),
00287 kTextRunInputArtUnsupported = 1 << ((ai::int32) kTextRunArtUnsupported - 1),
00289 kPlacedInputArt = 1 << ((ai::int32) kPlacedArt - 1),
00291 kMysteryPathInputArt = 1 << ((ai::int32) kMysteryPathArt - 1),
00293 kRasterInputArt = 1 << ((ai::int32) kRasterArt - 1),
00294
00297 kPluginInputArt = 1 << ((ai::int32) kPluginArt - 1),
00299 kMeshInputArt = 1 << ((ai::int32) kMeshArt - 1),
00301 kTextFrameInputArt = 1 << ((ai::int32) kTextFrameArt - 1),
00303 kSymbolInputArt = 1 << ((ai::int32) kSymbolArt - 1),
00305 kForeignInputArt = 1 << ((ai::int32) kForeignArt - 1),
00307 kLegacyTextInputArt = 1 << ((ai::int32) kLegacyTextArt - 1),
00309 kChartInputArt = 1 << ((ai::int32) kChartArt - 1),
00310
00312 kAnyInputArt = 0xFFFF,
00315 kAnyInputArtButPluginArt = kAnyInputArt & ~kPluginInputArt,
00316
00317
00318
00320
00321 kOutlinedStrokeInputArt = 0x10000,
00325
00326
00327
00328
00329
00330 kNoClipMasksInputArt = 0x20000
00331
00332 };
00333
00334
00336 enum AILiveEffectMergeAction {
00338 kAppendLiveEffectToStyle,
00340 kReplaceFillWithLiveEffect,
00342 kReplaceStrokeWithLiveEffect,
00346 kSendHandleMergeMessage = 0x10000
00347 };
00348
00349
00352 struct AILiveEffectData {
00355 SPPluginRef self;
00357 const char* name;
00359 char *title;
00361 ai::int32 majorVersion;
00363 ai::int32 minorVersion;
00366 ai::int32 prefersAsInput;
00369 ai::int32 styleFilterFlags;
00370 };
00371
00372
00373
00374
00375
00376
00377
00384 struct AILiveEffectGoMessage {
00386 SPMessageData d;
00388 AILiveEffectHandle effect;
00390 AILiveEffectParameters parameters;
00393 AILiveEffectParameters instanceInfo;
00400 AIArtHandle art;
00401 };
00402
00414 struct AILiveEffectEditParamMessage {
00416 SPMessageData d;
00418 AILiveEffectHandle effect;
00421 AILiveEffectParameters parameters;
00423 AILiveEffectParamContext context;
00428 AIBoolean allowPreview;
00429
00433 AIBoolean isNewInstance;
00434 };
00435
00445 struct AILiveEffectInterpParamMessage {
00447 SPMessageData d;
00449 AILiveEffectHandle effect;
00451 AILiveEffectParameters startParams;
00453 AILiveEffectParameters endParams;
00455 AILiveEffectParameters outParams;
00459 AIReal percent;
00460
00461 };
00462
00467 struct AILiveEffectInputTypeMessage {
00469 SPMessageData d;
00471 AILiveEffectHandle effect;
00473 AILiveEffectParameters parameters;
00475 AIArtHandle inputArt;
00480 ai::int32 typeMask;
00481 };
00482
00488 struct AILiveEffectConvertColorMessage {
00490 SPMessageData d;
00492 AILiveEffectHandle effect;
00494 AILiveEffectParameters parameters;
00496 AIColorTag newColorSpace;
00497 };
00498
00523 struct AILiveEffectAdjustColorsMessage {
00525 SPMessageData d;
00527 AILiveEffectHandle effect;
00529 AILiveEffectParameters parameters;
00530
00534 AIAdjustColorFunc adjustColorCallback;
00537 AIAdjustPatternHandleFunc adjustPatternHandleCallback;
00539 void *clientData;
00541 VisitAIColorFlags controlFlags;
00542
00544 AIBoolean modifiedSomething;
00545 };
00546
00547
00549 struct AILiveEffectScaleParamMessage {
00551 SPMessageData d;
00553 AILiveEffectHandle effect;
00556 AILiveEffectParameters parameters;
00559 AIReal scaleFactor;
00561 AIBoolean scaledParams;
00562 };
00563
00568 struct AILiveEffectHandleMergeMessage {
00570 SPMessageData d;
00572 AILiveEffectHandle effect;
00575 AILiveEffectHandle oldEffect;
00577 AIBoolean dontMerge;
00580 AIBoolean keepInstanceInfo;
00583 AILiveEffectParameters parameters;
00584 };
00585
00594 struct AILiveEffectGetSVGFilterMessage {
00596 SPMessageData d;
00598 AILiveEffectHandle effect;
00600 AILiveEffectParameters parameters;
00602 AISVGFilterHandle svgFilter;
00603 };
00604
00611 struct AILiveEffectIsCompatibleMessage {
00612 explicit AILiveEffectIsCompatibleMessage(
00613 AILiveEffectHandle thisEffect = 0,
00614 AIVersion version = kAIVersion1,
00615 ConstAILiveEffectParameters params = 0,
00616 AIBoolean compat = false)
00617 : effect(thisEffect), appVersion(version), parameters(params), compatible(compat) {}
00618
00620 SPMessageData d;
00622 AILiveEffectHandle effect;
00624 AIVersion appVersion;
00626 ConstAILiveEffectParameters parameters;
00627
00629 AIBoolean compatible;
00630 };
00631
00632
00633
00634
00635
00636
00637
00680 struct AILiveEffectSuite {
00681
00687 AIAPI AIErr (*AddLiveEffect) ( AILiveEffectData* effectInfo, AILiveEffectHandle *liveEffectHandle );
00688
00699 AIAPI AIErr (*AddLiveEffectFilterItem) ( AILiveEffectHandle liveEffectHandle,
00700 AIFilterHandle filterHandle, AIMenuItemHandle *menuItem, AIMenuGroup *menuGroup );
00701
00716 AIAPI AIErr (*AddLiveEffectMenuItem) ( AILiveEffectHandle liveEffectHandle, const char* menuName,
00717 AddLiveEffectMenuData *menuData, AIMenuItemHandle *menuItem, AIMenuGroup *menuGroup );
00718
00720 AIAPI AIErr (*ExecuteLiveEffect) ( AILiveEffectHandle effect,
00721 AILiveEffectParameters parameters, AIArtHandle art );
00722
00732 AIAPI AIErr (*EditParameters) ( AILiveEffectParamContext context, AIBoolean enablePreview );
00733
00741 AIAPI AIErr (*UpdateParameters) ( AILiveEffectParamContext context );
00742
00754 AIAPI AIErr (*InterpolateEffectParameters) ( AILiveEffectHandle effect,
00755 AILiveEffectParameters startParams, AILiveEffectParameters endParams,
00756 AIReal percent, AILiveEffectParameters resultParams );
00757
00762 AIAPI AIErr (*CountLiveEffects) ( ai::int32* count );
00763
00769 AIAPI AIErr (*GetNthLiveEffect) ( ai::int32 n, AILiveEffectHandle* effect );
00770
00776 AIAPI AIErr (*GetLiveEffectName) ( AILiveEffectHandle effect, const char** name );
00777
00783 AIAPI AIErr (*GetLiveEffectTitle) ( AILiveEffectHandle effect, const char** name );
00784
00790 AIAPI AIErr (*GetLiveEffectVersion) ( AILiveEffectHandle effect, ai::int32* major, ai::int32* minor );
00791
00797 AIAPI AIErr (*GetInputPreference) ( AILiveEffectHandle effect, ai::int32* inputPreference );
00798
00804 AIAPI AIErr (*GetStyleFilterFlags) ( AILiveEffectHandle effect, ai::int32* styleFilterFlags );
00805
00812 AIAPI AIErr (*MergeLiveEffectIntoSelection) ( AILiveEffectHandle effect, AILiveEffectMergeAction action );
00813
00822 AIAPI AIMenuItemHandle (*GetMenuItem) ( AILiveEffectParamContext context );
00823
00837 AIAPI AIErr (*CreateLiveEffectParameters) ( AILiveEffectParameters* params );
00838
00850 AIAPI AIErr (*GetLiveEffectAppVersion) ( AILiveEffectHandle effect, AIVersion* appVersionRGB, AIVersion* appVersionCMYK );
00851
00863 AIAPI AIErr (*SetLiveEffectAppVersion) ( AILiveEffectHandle effect, AIVersion appVersionRGB, AIVersion appVersionCMYK );
00864
00865 };
00866
00867
00868 #include "AIHeaderEnd.h"
00869
00870
00871
00872 #endif