00001 #ifndef __AIActionManager_h__
00002 #define __AIActionManager_h__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "AITypes.h"
00024 #include "SPPlugs.h"
00025 #include "AIUnicodeString.h"
00026
00027 #include "AIHeaderBegin.h"
00028
00031
00032
00033
00034
00035 #define kAIActionManagerSuite "AI Action Manager Suite"
00036 #define kAIActionManagerSuiteVersion5 AIAPI_VERSION(5)
00037 #define kAIActionManagerSuiteVersion kAIActionManagerSuiteVersion5
00038 #define kAIActionManagerVersion kAIActionManagerSuiteVersion
00039
00043 #define kAIActionManagerPlayActionEventDoneNotifier "AI Action Manager PlayActionEvent Done Notifier"
00044 #define kAIActionActualExecutionFinishedNotifier "AI Action Actual Execution Finished Notifier"
00045
00046
00047
00048
00050 typedef ai::uint32 ActionParamTypeID;
00051
00053 enum {
00055 actionTypeInteger = 'long',
00057 actionTypeReal = 'real',
00059 actionTypeBoolean = 'bool',
00061 actionTypeEnum = 'enum',
00063 actionTypeString = 'strn',
00065 actionTypeUnitReal ='utrl',
00067 actionTypeRawData = 'rwdt',
00069 actionTypeNull = 'null'
00070 };
00071
00074 typedef ai::uint32 ActionParamUnitID;
00075
00076 #ifndef _PIUnits
00077 #define _PIUnits
00078
00079 enum {
00080
00081
00082
00083
00085 unitNone = '#Nne',
00087 unitDistance = '#Rlt',
00089 unitAngle = '#Ang',
00091 unitDensity = '#Rsl',
00093 unitPoints = '#Pxl',
00095 unitPercent = '#Prc'
00096
00097 };
00098 #endif
00099
00101 typedef ai::uint32 ActionParamKeyID;
00102
00104 typedef struct ActionParamType *AIActionParamTypeRef;
00105
00107 typedef struct ActionParamValue *AIActionParamValueRef;
00108
00110 typedef void *AIActionUserData;
00111
00113 typedef ASErr (*AIActionCallbackProc)(AIActionParamValueRef parameter,
00114 AIActionUserData userData,
00115 AIBoolean showDialog);
00116
00118 typedef void (*AIActionIdleProc)(void);
00119
00123 typedef enum _ActionDialogStatus
00124 {
00125 kDialogNone,
00127 kDialogOn,
00129 kDialogPartialOn,
00131 kDialogOff
00132 } ActionDialogStatus;
00133
00135 typedef enum _ActionValueVisibility
00136 {
00137 kDependOnParamType = -1,
00139 kHideInPalette,
00141 kShowInPalette
00142 } ActionValueVisibility;
00143
00144
00147 #define kActionCaller "Action Manager"
00148
00151 #define kDoActionSelector "Do Action"
00152
00155 typedef struct
00156 {
00158 SPMessageData d;
00160 AIActionUserData userData;
00162 AIBoolean showDialog;
00164 AIActionParamValueRef param;
00165 } DoActionMessage;
00166
00167
00196 struct AIActionManagerSuite
00197 {
00231 ASErr ASAPI (*RegisterActionEvent)(const char *eventName, const char *localizedName,
00232 ai::int32 version, ai::int32 flag,
00233 AIActionCallbackProc callback,
00234 SPPluginRef plugin,
00235 AIActionUserData userData,
00236 AIActionParamTypeRef parameters);
00237
00238
00246 AIBoolean ASAPI (*IsActionEventRegistered)(const char *eventName);
00247
00255 ASErr ASAPI (*GetActionEventLocalizedName)(const char *eventName, char *localizedName);
00262 ASErr ASAPI (*GetActionEventVersion)(const char *eventName, ai::int32 *version);
00264 ASErr ASAPI (*GetActionEventFlag)(const char *eventName, ai::int32 *flag);
00271 ASErr ASAPI (*GetActionEventCallbackProc)(const char *eventName, AIActionCallbackProc *callback);
00278 ASErr ASAPI (*GetActionEventPluginRef)(const char *eventName, SPPluginRef *pluginRef);
00285 ASErr ASAPI (*GetActionEventUserData)(const char *eventName, AIActionUserData *userData);
00292 ASErr ASAPI (*SetActionEventUserData)(const char *eventName, AIActionUserData userData);
00299 ASErr ASAPI (*GetActionEventParamType)(const char *eventName, AIActionParamTypeRef *param);
00300
00302 ASErr ASAPI (*Idle)(void);
00309 ASErr ASAPI (*SetActionIdleProc)(AIActionIdleProc idleProc);
00314 ASErr ASAPI (*GetActionIdleProc)(AIActionIdleProc *idleProc);
00315
00335 ASErr ASAPI (*AINewActionParamType)(AIActionParamTypeRef *param);
00342 ASErr ASAPI (*AIDeleteActionParamType)(AIActionParamTypeRef param);
00343
00360 ASErr ASAPI (*AIActionGetTypeKey)(AIActionParamTypeRef param, ai::uint32 index, ActionParamKeyID *key);
00361
00370 ASErr ASAPI (*AIActionHasTypeKey)(AIActionParamTypeRef param, ActionParamKeyID key, AIBoolean *hasKey);
00371
00379 ASErr ASAPI (*AIActionGetTypeCount)(AIActionParamTypeRef param, ai::uint32 *count);
00380
00394 ASErr ASAPI (*AIActionSetTypeKey)(AIActionParamTypeRef param, ActionParamKeyID key, const char* name, ActionParamTypeID type, AIBoolean show);
00395
00404 ASErr ASAPI (*AIActionGetName)(AIActionParamTypeRef param, ActionParamKeyID key, char* value);
00405
00413 ASErr ASAPI (*AIActionGetType)(AIActionParamTypeRef param, ActionParamKeyID key, ActionParamTypeID* value);
00414
00423 AIBoolean ASAPI (*AIActionTypeIsShow)(AIActionParamTypeRef param, ActionParamKeyID key);
00424
00426 ASErr ASAPI (*AcquirePalette)(void);
00428 ASErr ASAPI (*ReleasePalette)(void);
00429
00456 ASErr ASAPI (*RecordActionEvent)(const char *eventName, ActionDialogStatus dialogStatus, AIActionParamValueRef parameters);
00457
00481 ASErr ASAPI (*PlayActionEvent)(const char *eventName, ActionDialogStatus dialogStatus, AIActionParamValueRef parameters);
00482
00508 AIBoolean ASAPI (*InRecordMode)(void);
00509
00511 AIBoolean ASAPI (*InInsertMenuItemState)(void);
00512
00514 ASErr ASAPI (*ActivateInsertMennuItemDialog)(void);
00515
00517 ASErr ASAPI (*SetCurrentCommandLocalizedName)(const char *localizedName);
00518
00520 ASErr ASAPI (*DoFunctionKey)(ai::int32 fkey, ai::uint32 modifier);
00521
00540 ASErr ASAPI (*AINewActionParamValue)(AIActionParamValueRef *param);
00541
00547 ASErr ASAPI (*AIDeleteActionParamValue)(AIActionParamValueRef param);
00548
00567 ASErr ASAPI (*AIActionGetValueKey)(AIActionParamValueRef param, ai::uint32 index, ActionParamKeyID *key);
00568
00576 ASErr ASAPI (*AIActionHasValueKey)(AIActionParamValueRef param, ActionParamKeyID key, AIBoolean *hasKey);
00577
00584 ASErr ASAPI (*AIActionGetValueCount)(AIActionParamValueRef param, ai::uint32 *count);
00585
00586
00587
00588
00589
00590
00591
00592 ASErr ASAPI (*AIActionGetValueType)(AIActionParamValueRef param, ActionParamKeyID key, ActionParamTypeID *type);
00593
00600 ASErr ASAPI (*AIActionGetInteger)(AIActionParamValueRef param, ActionParamKeyID key, ai::int32* value);
00607 ASErr ASAPI (*AIActionSetInteger)(AIActionParamValueRef param, ActionParamKeyID key, ai::int32 value);
00608
00615 ASErr ASAPI (*AIActionGetReal)(AIActionParamValueRef param, ActionParamKeyID key, AIReal* value);
00622 ASErr ASAPI (*AIActionSetReal)(AIActionParamValueRef param, ActionParamKeyID key, AIReal value);
00623
00631 ASErr ASAPI (*AIActionGetUnitReal)(AIActionParamValueRef param, ActionParamKeyID key, ActionParamUnitID* unit, AIReal* value);
00639 ASErr ASAPI (*AIActionSetUnitReal)(AIActionParamValueRef param, ActionParamKeyID key, ActionParamUnitID unit, AIReal value);
00640
00647 ASErr ASAPI (*AIActionGetString)(AIActionParamValueRef param, ActionParamKeyID key, char* value);
00654 ASErr ASAPI (*AIActionSetString)(AIActionParamValueRef param, ActionParamKeyID key, const char* value);
00655
00662 ASErr ASAPI (*AIActionGetBoolean)(AIActionParamValueRef param, ActionParamKeyID key, AIBoolean* value);
00668 ASErr ASAPI (*AIActionSetBoolean)(AIActionParamValueRef param, ActionParamKeyID key, ASBoolean value);
00669
00677 ASErr ASAPI (*AIActionGetEnumerated)(AIActionParamValueRef param, ActionParamKeyID key, char* name, ai::int32* value);
00685 ASErr ASAPI (*AIActionSetEnumerated)(AIActionParamValueRef param, ActionParamKeyID key, const char* name, ai::int32 value);
00686
00694 ASErr ASAPI (*AIActionSetRawDataBytes)(AIActionParamValueRef param, ActionParamKeyID key, ai::uint32 size, const char* value);
00695
00702 ASErr ASAPI (*AIActionGetRawDataSize)(AIActionParamValueRef param, ActionParamKeyID key, ai::uint32* size);
00710 ASErr ASAPI (*AIActionGetRawData)(AIActionParamValueRef param, ActionParamKeyID key, char* value);
00711
00719 ActionValueVisibility ASAPI (*AIActionValueGetVisibility)(AIActionParamValueRef param, ActionParamKeyID key);
00720
00727 ASErr ASAPI (*AIActionValueSetVisibility)(AIActionParamValueRef param, ActionParamKeyID key, ActionValueVisibility value);
00728
00730 ASErr ASAPI (*UndoLastTransaction)();
00731
00733 ASErr ASAPI (*RedoLastTransaction)();
00734
00736 ASErr ASAPI (*IgnoreRecording)(AIBoolean ignore);
00737
00738
00742 ASErr ASAPI (*RegisterActionEventUS)(const char *eventName, const ai::UnicodeString& localizedName,
00743 ai::int32 version, ai::int32 flag,
00744 AIActionCallbackProc callback,
00745 SPPluginRef plugin,
00746 AIActionUserData userData,
00747 AIActionParamTypeRef parameters);
00748
00751 ASErr ASAPI (*GetActionEventLocalizedNameUS)(const char *eventName, ai::UnicodeString& localizedName);
00752
00755 ASErr ASAPI (*AIActionSetTypeKeyUS)(AIActionParamTypeRef param, ActionParamKeyID key, const ai::UnicodeString& name, ActionParamTypeID type, AIBoolean show);
00756
00759 ASErr ASAPI (*AIActionGetNameUS)(AIActionParamTypeRef param, ActionParamKeyID key, ai::UnicodeString& value);
00760
00763 ASErr ASAPI (*SetCurrentCommandLocalizedNameUS)(const ai::UnicodeString& localizedName);
00764
00767 ASErr ASAPI (*AIActionGetStringUS)(AIActionParamValueRef param, ActionParamKeyID key, ai::UnicodeString& value);
00768
00771 ASErr ASAPI (*AIActionSetStringUS)(AIActionParamValueRef param, ActionParamKeyID key, const ai::UnicodeString& value);
00772
00775 ASErr ASAPI (*AIActionGetEnumeratedUS)(AIActionParamValueRef param, ActionParamKeyID key, ai::UnicodeString& name, ai::int32* value);
00776
00779 ASErr ASAPI (*AIActionSetEnumeratedUS)(AIActionParamValueRef param, ActionParamKeyID key, const ai::UnicodeString& name, ai::int32 value);
00780 };
00781
00782
00783 #include "AIHeaderEnd.h"
00784
00785 #endif