1 #ifndef CONTROLLABLEABILITY_H
2 #define CONTROLLABLEABILITY_H
24 #ifndef ANIMATOR_IMP_EXP
25 #ifdef AP_EDITORCONTROLLER_EXPORTS
26 #define EDITORCONTROLLER_IMP_EXP __declspec(dllexport)
28 #define EDITORCONTROLLER_IMP_EXP __declspec(dllimport)
34 #define POINTERPOS_REQUEST_NAME "PointerPosition"
35 #define POINTERROT_REQUEST_NAME "PointerRotation"
36 #define POINTERPOS_RAW_REQUEST_NAME "PointerPositionRaw"
37 #define POINTERROT_RAW_REQUEST_NAME "PointerRotationRaw"
38 #define SELECTIONID_REQUEST_NAME "SelectionID"
39 #define SELECTIONPATH_REQUEST_NAME "SelectionPath"
58 virtual const char*
getMessageId() {
return "MessageCAButtonEvent"; }
68 #define CAINFO_FLAGS_POINTERLOC_REQUESTOUTPUTS 0x00000001
73 #define CAINFO_FLAGS_SELECTIONID_REQUESTOUTPUT 0x00000002
77 #define CAINFO_FLAGS_ALL_ACTIVEPOINTER_BUTTONS 0x00000004
81 #define CAINFO_FLAGS_ALL_OTHERPOINTER_BUTTONS 0x00000008
86 #define CAINFO_FLAGS_POINTERLOC_RAW_REQUESTOUTPUTS 0x00000010
89 #define CAINFO_FLAGS_NO_AUTO_DEACTIVATE 0x80000000
100 #define CAINFO_AFLAGS_SELSHOW_ACTPTR__SHIFT 0
101 #define CAINFO_AFLAGS_SELSHOW_ACTPTR__MASK 0x00000007
102 #define CAINFO_AFLAGS_SELSHOW_ACTPTR_DONTCARE 0x00000000
103 #define CAINFO_AFLAGS_SELSHOW_ACTPTR_HIDE 0x00000001 // Side note: The flags are sorted by their priorities
104 #define CAINFO_AFLAGS_SELSHOW_ACTPTR_SHOW 0x00000002 // (The EditorController::SelectionVisibilityUpdate() expects it to be so, so don't change the numbers)
105 #define CAINFO_AFLAGS_SELSHOW_ACTPTR_FORCEHIDE 0x00000003
106 #define CAINFO_AFLAGS_SELSHOW_ACTPTR_FORCESHOW 0x00000004
107 #define CAINFO_AFLAGS_SELSHOW_OTHERPTR__SHIFT 3
108 #define CAINFO_AFLAGS_SELSHOW_OTHERPTR__MASK 0x00000038
109 #define CAINFO_AFLAGS_SELSHOW_OTHERPTR_DONTCARE (CAINFO_AFLAGS_SELSHOW_ACTPTR_DONTCARE >> CAINFO_AFLAGS_SELSHOW_ACTPTR__SHIFT << CAINFO_AFLAGS_SELSHOW_OTHERPTR__SHIFT)
110 #define CAINFO_AFLAGS_SELSHOW_OTHERPTR_SHOW (CAINFO_AFLAGS_SELSHOW_ACTPTR_SHOW >> CAINFO_AFLAGS_SELSHOW_ACTPTR__SHIFT << CAINFO_AFLAGS_SELSHOW_OTHERPTR__SHIFT)
111 #define CAINFO_AFLAGS_SELSHOW_OTHERPTR_HIDE (CAINFO_AFLAGS_SELSHOW_ACTPTR_HIDE >> CAINFO_AFLAGS_SELSHOW_ACTPTR__SHIFT << CAINFO_AFLAGS_SELSHOW_OTHERPTR__SHIFT)
112 #define CAINFO_AFLAGS_SELSHOW_OTHERPTR_FORCEHIDE (CAINFO_AFLAGS_SELSHOW_ACTPTR_FORCEHIDE >> CAINFO_AFLAGS_SELSHOW_ACTPTR__SHIFT << CAINFO_AFLAGS_SELSHOW_OTHERPTR__SHIFT)
113 #define CAINFO_AFLAGS_SELSHOW_OTHERPTR_FORCESHOW (CAINFO_AFLAGS_SELSHOW_ACTPTR_FORCESHOW >> CAINFO_AFLAGS_SELSHOW_ACTPTR__SHIFT << CAINFO_AFLAGS_SELSHOW_OTHERPTR__SHIFT)
155 #define IS_CAINFO_VER(info, ver) \
156 ((info).dwSize >= sizeof(CAINFO__VER##ver))
176 virtual bool initialize(XERCES_CPP_NAMESPACE_QUALIFIER
DOMNode *parameters = NULL);
188 virtual bool isActive();
259 virtual void createInterface();
265 virtual void destroyInterface();
281 virtual int processNotification(
BaseClass *sender,
unsigned long notificationType,
void *notificationData);
294 virtual void deactivate();
323 virtual CAINFO* createInfo();
333 virtual void fillDefaultInfo() = 0;
339 bool requestPointerLoc(
bool bCancelIfNotActive =
true);
345 bool requestPointerLocRaw(
bool bCancelIfNotActive =
true);
352 bool requestSelectionID(
bool bCancelIfNotActive =
true);
359 bool requestSelectionPath(
bool bCancelIfNotActive =
true);
367 bool isMenuVisible();
370 virtual bool createMenu(
const char *menuString,
bool bForceCreate =
true);
371 virtual void destroyMenu();
372 virtual bool showMenu();
373 virtual bool hideMenu();
377 virtual void processMenuButtonPress(
CABUTTONEVENT* eventData);
381 virtual void processMenuButtonRelease(
CABUTTONEVENT* eventData);
412 virtual void preInitialize() { };
417 virtual void postInitialize() {}
422 virtual bool loadXMLParameters(XERCES_CPP_NAMESPACE_QUALIFIER
DOMNode *pParametersNode) {
return true; }