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 unitNone
00077
00078 enum {
00079
00080
00081
00082
00084 unitNone = '#Nne',
00086 unitDistance = '#Rlt',
00088 unitAngle = '#Ang',
00090 unitDensity = '#Rsl',
00092 unitPoints = '#Pxl',
00094 unitPercent = '#Prc'
00095
00096 };
00097 #endif
00098
00100 typedef ai::uint32 ActionParamKeyID;
00101
00103 typedef struct ActionParamType *AIActionParamTypeRef;
00104
00106 typedef struct ActionParamValue *AIActionParamValueRef;
00107
00109 typedef void *AIActionUserData;
00110
00112 typedef ASErr (*AIActionCallbackProc)(AIActionParamValueRef parameter,
00113 AIActionUserData userData,
00114 AIBoolean showDialog);
00115
00117 typedef void (*AIActionIdleProc)(void);
00118
00122 typedef enum _ActionDialogStatus
00123 {
00124 kDialogNone,
00126 kDialogOn,
00128 kDialogPartialOn,
00130 kDialogOff
00131 } ActionDialogStatus;
00132
00134 typedef enum _ActionValueVisibility
00135 {
00136 kDependOnParamType = -1,
00138 kHideInPalette,
00140 kShowInPalette
00141 } ActionValueVisibility;
00142
00143
00146 #define kActionCaller "Action Manager"
00147
00150 #define kDoActionSelector "Do Action"
00151
00154 typedef struct
00155 {
00157 SPMessageData d;
00159 AIActionUserData userData;
00161 AIBoolean showDialog;
00163 AIActionParamValueRef param;
00164 } DoActionMessage;
00165
00166
00195 struct AIActionManagerSuite
00196 {
00230 ASErr ASAPI (*RegisterActionEvent)(const char *eventName, const char *localizedName,
00231 ai::int32 version, ai::int32 flag,
00232 AIActionCallbackProc callback,
00233 SPPluginRef plugin,
00234 AIActionUserData userData,
00235 AIActionParamTypeRef parameters);
00236
00237
00245 AIBoolean ASAPI (*IsActionEventRegistered)(const char *eventName);
00246
00254 ASErr ASAPI (*GetActionEventLocalizedName)(const char *eventName, char *localizedName);
00261 ASErr ASAPI (*GetActionEventVersion)(const char *eventName, ai::int32 *version);
00263 ASErr ASAPI (*GetActionEventFlag)(const char *eventName, ai::int32 *flag);
00270 ASErr ASAPI (*GetActionEventCallbackProc)(const char *eventName, AIActionCallbackProc *callback);
00277 ASErr ASAPI (*GetActionEventPluginRef)(const char *eventName, SPPluginRef *pluginRef);
00284 ASErr ASAPI (*GetActionEventUserData)(const char *eventName, AIActionUserData *userData);
00291 ASErr ASAPI (*SetActionEventUserData)(const char *eventName, AIActionUserData userData);
00298 ASErr ASAPI (*GetActionEventParamType)(const char *eventName, AIActionParamTypeRef *param);
00299
00301 ASErr ASAPI (*Idle)(void);
00308 ASErr ASAPI (*SetActionIdleProc)(AIActionIdleProc idleProc);
00313 ASErr ASAPI (*GetActionIdleProc)(AIActionIdleProc *idleProc);
00314
00334 ASErr ASAPI (*AINewActionParamType)(AIActionParamTypeRef *param);
00341 ASErr ASAPI (*AIDeleteActionParamType)(AIActionParamTypeRef param);
00342
00359 ASErr ASAPI (*AIActionGetTypeKey)(AIActionParamTypeRef param, ai::uint32 index, ActionParamKeyID *key);
00360
00369 ASErr ASAPI (*AIActionHasTypeKey)(AIActionParamTypeRef param, ActionParamKeyID key, AIBoolean *hasKey);
00370
00378 ASErr ASAPI (*AIActionGetTypeCount)(AIActionParamTypeRef param, ai::uint32 *count);
00379
00393 ASErr ASAPI (*AIActionSetTypeKey)(AIActionParamTypeRef param, ActionParamKeyID key, const char* name, ActionParamTypeID type, AIBoolean show);
00394
00403 ASErr ASAPI (*AIActionGetName)(AIActionParamTypeRef param, ActionParamKeyID key, char* value);
00404
00412 ASErr ASAPI (*AIActionGetType)(AIActionParamTypeRef param, ActionParamKeyID key, ActionParamTypeID* value);
00413
00422 AIBoolean ASAPI (*AIActionTypeIsShow)(AIActionParamTypeRef param, ActionParamKeyID key);
00423
00425 ASErr ASAPI (*AcquirePalette)(void);
00427 ASErr ASAPI (*ReleasePalette)(void);
00428
00455 ASErr ASAPI (*RecordActionEvent)(const char *eventName, ActionDialogStatus dialogStatus, AIActionParamValueRef parameters);
00456
00480 ASErr ASAPI (*PlayActionEvent)(const char *eventName, ActionDialogStatus dialogStatus, AIActionParamValueRef parameters);
00481
00507 AIBoolean ASAPI (*InRecordMode)(void);
00508
00510 AIBoolean ASAPI (*InInsertMenuItemState)(void);
00511
00513 ASErr ASAPI (*ActivateInsertMennuItemDialog)(void);
00514
00516 ASErr ASAPI (*SetCurrentCommandLocalizedName)(const char *localizedName);
00517
00519 ASErr ASAPI (*DoFunctionKey)(ai::int32 fkey, ai::uint32 modifier);
00520
00539 ASErr ASAPI (*AINewActionParamValue)(AIActionParamValueRef *param);
00540
00546 ASErr ASAPI (*AIDeleteActionParamValue)(AIActionParamValueRef param);
00547
00566 ASErr ASAPI (*AIActionGetValueKey)(AIActionParamValueRef param, ai::uint32 index, ActionParamKeyID *key);
00567
00575 ASErr ASAPI (*AIActionHasValueKey)(AIActionParamValueRef param, ActionParamKeyID key, AIBoolean *hasKey);
00576
00583 ASErr ASAPI (*AIActionGetValueCount)(AIActionParamValueRef param, ai::uint32 *count);
00584
00585
00586
00587
00588
00589
00590
00591 ASErr ASAPI (*AIActionGetValueType)(AIActionParamValueRef param, ActionParamKeyID key, ActionParamTypeID *type);
00592
00599 ASErr ASAPI (*AIActionGetInteger)(AIActionParamValueRef param, ActionParamKeyID key, ai::int32* value);
00606 ASErr ASAPI (*AIActionSetInteger)(AIActionParamValueRef param, ActionParamKeyID key, ai::int32 value);
00607
00614 ASErr ASAPI (*AIActionGetReal)(AIActionParamValueRef param, ActionParamKeyID key, AIReal* value);
00621 ASErr ASAPI (*AIActionSetReal)(AIActionParamValueRef param, ActionParamKeyID key, AIReal value);
00622
00630 ASErr ASAPI (*AIActionGetUnitReal)(AIActionParamValueRef param, ActionParamKeyID key, ActionParamUnitID* unit, AIReal* value);
00638 ASErr ASAPI (*AIActionSetUnitReal)(AIActionParamValueRef param, ActionParamKeyID key, ActionParamUnitID unit, AIReal value);
00639
00646 ASErr ASAPI (*AIActionGetString)(AIActionParamValueRef param, ActionParamKeyID key, char* value);
00653 ASErr ASAPI (*AIActionSetString)(AIActionParamValueRef param, ActionParamKeyID key, const char* value);
00654
00661 ASErr ASAPI (*AIActionGetBoolean)(AIActionParamValueRef param, ActionParamKeyID key, AIBoolean* value);
00667 ASErr ASAPI (*AIActionSetBoolean)(AIActionParamValueRef param, ActionParamKeyID key, ASBoolean value);
00668
00676 ASErr ASAPI (*AIActionGetEnumerated)(AIActionParamValueRef param, ActionParamKeyID key, char* name, ai::int32* value);
00684 ASErr ASAPI (*AIActionSetEnumerated)(AIActionParamValueRef param, ActionParamKeyID key, const char* name, ai::int32 value);
00685
00693 ASErr ASAPI (*AIActionSetRawDataBytes)(AIActionParamValueRef param, ActionParamKeyID key, ai::uint32 size, const char* value);
00694
00701 ASErr ASAPI (*AIActionGetRawDataSize)(AIActionParamValueRef param, ActionParamKeyID key, ai::uint32* size);
00709 ASErr ASAPI (*AIActionGetRawData)(AIActionParamValueRef param, ActionParamKeyID key, char* value);
00710
00718 ActionValueVisibility ASAPI (*AIActionValueGetVisibility)(AIActionParamValueRef param, ActionParamKeyID key);
00719
00726 ASErr ASAPI (*AIActionValueSetVisibility)(AIActionParamValueRef param, ActionParamKeyID key, ActionValueVisibility value);
00727
00729 ASErr ASAPI (*UndoLastTransaction)();
00730
00732 ASErr ASAPI (*RedoLastTransaction)();
00733
00735 ASErr ASAPI (*IgnoreRecording)(AIBoolean ignore);
00736
00737
00741 ASErr ASAPI (*RegisterActionEventUS)(const char *eventName, const ai::UnicodeString& localizedName,
00742 ai::int32 version, ai::int32 flag,
00743 AIActionCallbackProc callback,
00744 SPPluginRef plugin,
00745 AIActionUserData userData,
00746 AIActionParamTypeRef parameters);
00747
00750 ASErr ASAPI (*GetActionEventLocalizedNameUS)(const char *eventName, ai::UnicodeString& localizedName);
00751
00754 ASErr ASAPI (*AIActionSetTypeKeyUS)(AIActionParamTypeRef param, ActionParamKeyID key, const ai::UnicodeString& name, ActionParamTypeID type, AIBoolean show);
00755
00758 ASErr ASAPI (*AIActionGetNameUS)(AIActionParamTypeRef param, ActionParamKeyID key, ai::UnicodeString& value);
00759
00762 ASErr ASAPI (*SetCurrentCommandLocalizedNameUS)(const ai::UnicodeString& localizedName);
00763
00766 ASErr ASAPI (*AIActionGetStringUS)(AIActionParamValueRef param, ActionParamKeyID key, ai::UnicodeString& value);
00767
00770 ASErr ASAPI (*AIActionSetStringUS)(AIActionParamValueRef param, ActionParamKeyID key, const ai::UnicodeString& value);
00771
00774 ASErr ASAPI (*AIActionGetEnumeratedUS)(AIActionParamValueRef param, ActionParamKeyID key, ai::UnicodeString& name, ai::int32* value);
00775
00778 ASErr ASAPI (*AIActionSetEnumeratedUS)(AIActionParamValueRef param, ActionParamKeyID key, const ai::UnicodeString& name, ai::int32 value);
00779 };
00780
00781
00782 #include "AIHeaderEnd.h"
00783
00784 #endif