404 lines
18 KiB
C
404 lines
18 KiB
C
/****************************************************************************************/
|
|
/* CUIKNOTIFICATIONS.H */
|
|
/****************************************************************************************/
|
|
|
|
#ifndef _CUIKNOTIFICATIONS_H_
|
|
#define _CUIKNOTIFICATIONS_H_
|
|
|
|
//CUIK_NOTIFICATION-----------------------------------------------
|
|
typedef enum
|
|
{
|
|
// refreshes variable manager
|
|
CUIK_NOTIFICATION_REFRESHVARIABLEMANAGER,
|
|
// *****Private to Virtools Interface*****
|
|
// notify a plugin editor that its fixed size has changed. Used by DllEditorDlg::UpdateEditorSize()
|
|
//param1 : editor dlg HWND
|
|
CUIK_NOTIFICATION_RESIZEDLLEDITOR,
|
|
// *****Private to Virtools Interface*****
|
|
// ask a plugin editor to close. Used by DllEditorDlg::Close()
|
|
// param1 : editor dlg HWND.
|
|
CUIK_NOTIFICATION_CLOSEDLLEDITOR,
|
|
// *****Private to Virtools Interface*****
|
|
// ask listening editors (3dLayout & Level View) to add their selection to ScriptInterfaceAction::Context g_ActionContext.
|
|
// param1 : ScriptContextAction*
|
|
CUIK_NOTIFICATION_FILLACTIONCONTEXTWITHSELECTION,
|
|
// *****Private to Virtools Interface*****
|
|
// ask listening editors (3dLayout & Level View) to update their selection from the ScriptInterfaceAction::Context
|
|
// param1 : ScriptContextAction*
|
|
CUIK_NOTIFICATION_UPDATESELECTIONFROMACTIONCONTEXT,
|
|
// before a ck file is loaded
|
|
// but before objects are added to scene/place/that kind of stuff.
|
|
// param1 : CKObjectArray* list of object loaded
|
|
CUIK_NOTIFICATION_PRECKFILELOADED,
|
|
// after a CK file has been loaded and objects have been added to scene/place/level/...
|
|
// this is called after loading file such a .nms ,.nmo files (BUT NOT CMO files, ),
|
|
// from Virtools Dev's user interface
|
|
// that is, this notification is NOT sent when a file is loaded through a building block
|
|
// such as the ObjectLoad BB.
|
|
// mostly by level view & 3d view
|
|
// note : when loading a cmo file with a level, CUIK_NOTIFICATION_LEVEL_LOADED is called, not this notification
|
|
// param1 : CKObjectArray* : list of loaded objects.
|
|
CUIK_NOTIFICATION_CKFILELOADED,
|
|
// the field of view of a camera has changed
|
|
// param1 : CK_ID of camera
|
|
CUIK_NOTIFICATION_FOVCHANGED,
|
|
// the orthographic zoom of a camera has changed
|
|
// param1 : CK_ID of camera
|
|
CUIK_NOTIFICATION_ORTHOZOOMCHANGED,
|
|
// to attribute a new object to a setup and update the setup
|
|
// param1 : CK_ID of entity
|
|
CUIK_NOTIFICATION_ENTITYSET,
|
|
// curve was modified so its size changed
|
|
// param1 : CK_ID of curve
|
|
CUIK_NOTIFICATION_CURVELENGTHCHANGED,
|
|
// current curvepoint changed
|
|
// param1 : CK_ID,
|
|
CUIK_NOTIFICATION_SELECTEDPOINTCHANGED,
|
|
// object has been renamed
|
|
// param1 : CK_ID of object
|
|
CUIK_NOTIFICATION_OBJECTRENAMED,
|
|
// before clear all (new composition)
|
|
CUIK_NOTIFICATION_PRECLEARALL,
|
|
// after clear all (new composition)
|
|
CUIK_NOTIFICATION_POSTCLEARALL,
|
|
// notify the schematic that a script has been added
|
|
// param1 : CKBehavior* beh
|
|
CUIK_NOTIFICATION_ADDSCRIPTBEHAVIOR,
|
|
// 3D object position has changed
|
|
// param1 : CK_ID of object
|
|
CUIK_NOTIFICATION_OBJECTPOSCHANGED,
|
|
// 3D object orientation has changed
|
|
// param1 : CK_ID of object
|
|
CUIK_NOTIFICATION_OBJECTROTCHANGED,
|
|
// 3D object scale has changed
|
|
// param1 : CK_ID of object
|
|
CUIK_NOTIFICATION_OBJECTSCALECHANGED,
|
|
// before level/objects is/are saved
|
|
// param1 : CKObjectArray* , list of objects to save
|
|
// return value : -1 or negate value to prevent saving
|
|
CUIK_NOTIFICATION_PRESAVELEVEL,
|
|
// after level/objects has/have been saved
|
|
// param1 : CKObjectArray* , list of objects saved
|
|
CUIK_NOTIFICATION_POSTSAVELEVEL,
|
|
// trace mode has been activated or deactivated
|
|
// mainly used for schematic, but can be used for other trace purposes
|
|
// Param 1 : BOOL activation
|
|
CUIK_NOTIFICATION_TRACE,
|
|
// send by Virtools Dev main app each behavioral frame, when trace mode is active
|
|
CUIK_NOTIFICATION_DEBUGTRACE,
|
|
// redraws schematic
|
|
// param1 : NULL or VPosition* (object to redraw) (Private to Virtools Interface)
|
|
CUIK_NOTIFICATION_SCHEMATICREDRAW,
|
|
// update scripts position and size in schematic then redraw
|
|
// to use when some scripts have been added/deleted(/hidden/showed/moved, private to Virtools Interface)
|
|
CUIK_NOTIFICATION_SCHEMATICUPDATESCRIPTS,
|
|
// to send before copying behaviors/scripts, in order for schematic data to be prepared for the copy to come
|
|
// param1 : XObjectArray* , list of CKBehavior*
|
|
CUIK_NOTIFICATION_PRECOPYBEHAVIOR,
|
|
// to send after copying behaviors, in order for schematic to build the graph associated to the copy
|
|
// and to clear the data used for building the graph
|
|
// param1 : XObjectArray* , list of CKBehavior*
|
|
CUIK_NOTIFICATION_POSTCOPYBEHAVIOR,
|
|
// focus script in schematic view
|
|
// param1 : CKBehavior* (script) or CKBeObject* (then schematic will set the focus on its first script
|
|
CUIK_NOTIFICATION_FOCUSSCRIPT,
|
|
// focus object in schematic
|
|
// Param1 : CKBehavior* or CKParameter*
|
|
// Param2 : BOOL, select object if TRUE
|
|
CUIK_NOTIFICATION_FOCUSOBJECT_SCHEMATIC,
|
|
// focus object in level manager
|
|
// list of object taken into account by level view
|
|
// param1 : CK_ID*
|
|
// param2 : array count
|
|
CUIK_NOTIFICATION_FOCUSOBJECT,
|
|
// called on reset
|
|
CUIK_NOTIFICATION_REWIND,
|
|
// called on play
|
|
CUIK_NOTIFICATION_PLAY,
|
|
// called on pause
|
|
CUIK_NOTIFICATION_PAUSE,
|
|
// called on play step
|
|
CUIK_NOTIFICATION_STEP,
|
|
// current selection in 3dLayout has changed
|
|
CUIK_NOTIFICATION_SELECTIONCHANGED,
|
|
// Schematic Preferences have changed
|
|
CUIK_NOTIFICATION_SCHEMATICPREFERENCESCHANGED,
|
|
// 3DLayout Preferences changed
|
|
CUIK_NOTIFICATION_3DLAYOUTPREFERENCESCHANGED,
|
|
// Level Preferences changed
|
|
CUIK_NOTIFICATION_LEVELCONTROLPREFERENCESCHANGED,
|
|
// Resource Preferences changed
|
|
CUIK_NOTIFICATION_RESOURCEPREFERENCESCHANGED,
|
|
// current level's scene has changed (=active scene has changed)
|
|
CUIK_NOTIFICATION_BEHAVIORAL_SCENE_CHANGED,
|
|
// when a composition / level is loaded
|
|
// param1 : CKObjectArray* list of object loaded
|
|
CUIK_NOTIFICATION_LEVEL_LOADED,
|
|
// Setups needs update
|
|
// param1 : CK_ID* , array of CK_ID, list of object whose setups must be updated
|
|
// param2 : array size
|
|
//If param==param2==0, then update all setups
|
|
CUIK_NOTIFICATION_UPDATESETUP,
|
|
// a new attribute has been registered in the CKAttributeManager
|
|
// param1 : int, attribute index
|
|
CUIK_NOTIFICATION_ATTRIBUTE_CREATED,
|
|
// an attribute has been unregistered from the CKAttributeManager
|
|
// param1 : int, attribute index
|
|
CUIK_NOTIFICATION_ATTRIBUTE_DELETED,
|
|
// an attribute category has been removed from the CKAttributeManager
|
|
// param1 : const char*, category name
|
|
CUIK_NOTIFICATION_ATTRIBUTE_CAT_DELETED,
|
|
// an attribute category has been added in the CKAttributeManager
|
|
// param1 : const char*,category name
|
|
CUIK_NOTIFICATION_ATTRIBUTE_CAT_CREATED,
|
|
// an attribute category has been renamed in the CKAttributeManager
|
|
// param1 : int, category index
|
|
CUIK_NOTIFICATION_ATTRIBUTE_CAT_RENAMED,
|
|
// an attribute has been renamed in the CKAttributeManager
|
|
// param1 : int, attribute index
|
|
CUIK_NOTIFICATION_ATTRIBUTE_RENAMED,
|
|
// the selection in the 3dLayout has been locked / unlocked (ie with the spacebar key when focus on 3dLayout)
|
|
// param1 : BOOL, lock status
|
|
CUIK_NOTIFICATION_SELECTIONLOCKCHANGED,
|
|
// show scripts in the schematic view (if they are hidden)
|
|
// param1 : CKObjectArray*, filled with scripts
|
|
CUIK_NOTIFICATION_SHOW_SCRIPT_IN_SCHEMATIC,
|
|
// hide scripts in the schematic view (if they are shown)
|
|
// param1 : CKObjectArray*, filled with scripts
|
|
CUIK_NOTIFICATION_HIDE_SCRIPT_IN_SCHEMATIC,
|
|
// *****Private to Virtools Interface*****
|
|
// send message to debugging window
|
|
// which is opened from the Schematic's toolbar left to the trace button
|
|
// param1 : char *, the message to show
|
|
CUIK_NOTIFICATION_DEBUGMESSAGE,
|
|
// *****Private to Virtools Interface*****
|
|
// shortcut is removed
|
|
// specific notification for schematic view
|
|
// param1 : VPosition* of shortcut/source, specific notification for schematic view
|
|
CUIK_NOTIFICATION_SCHEMATICSHORTCUTREMOVED,
|
|
// *****Private to Virtools Interface*****
|
|
// mark is removed
|
|
// specific notification for schematic view
|
|
// param1 : VPosition* of shortcut/source, specific notification for schematic view
|
|
CUIK_NOTIFICATION_SCHEMATICMARKREMOVED,
|
|
// *****Private to Virtools Interface*****
|
|
// breakpoint is removed
|
|
// specific notification for schematic view
|
|
// param1 = CUIK_ID of VPosition* of breakpointed object
|
|
CUIK_NOTIFICATION_SCHEMATICBREAKPOINTREMOVED,
|
|
// sequence of ck objects is going to be deleted
|
|
// param1 : CK_ID*
|
|
// param2 : array count
|
|
CUIK_NOTIFICATION_PRESEQUENCEDELETED,
|
|
// sequence of ck objects has been deleted
|
|
// param1 : CK_ID*
|
|
// param2 : array count
|
|
CUIK_NOTIFICATION_POSTSEQUENCEDELETED,
|
|
// sequence of objects has been added to scene
|
|
// param1 : CK_ID*
|
|
// param2 : array count
|
|
// parem3 : the scene in which objects have been added
|
|
CUIK_NOTIFICATION_SEQUENCEADDEDTOSCENE,
|
|
// sequence of objects has been removed from scene
|
|
// param1 : CK_ID*
|
|
// param2 : array count
|
|
// parem3 : the scene in which objects have been added
|
|
CUIK_NOTIFICATION_SEQUENCEREMOVEDFROMSCENE,
|
|
// initial conditions have been added / changed on several objects
|
|
// param1 : CK_ID*
|
|
// param2 : array count
|
|
CUIK_NOTIFICATION_SEQUENCE_IC_CHANGED,
|
|
// several objects re restored in their initial conditions
|
|
// param1 : CK_ID*
|
|
// param2 : array count
|
|
CUIK_NOTIFICATION_SEQUENCE_IC_RESTORED,
|
|
// parameters have been modified
|
|
// param1 : CK_ID*
|
|
// param2 : array count
|
|
CUIK_NOTIFICATION_PARAMETERSEQUENCEMODIFIED,
|
|
// *****Private to Virtools Interface*****
|
|
// the setup is about to loose its object
|
|
// param1 : CK_ID of object
|
|
CUIK_NOTIFICATION_LOOSINGOBJECT,
|
|
// *****Private to Virtools Interface*****
|
|
// some object specific params have changed (camera [with/without target], frame [dummy/not], ...)
|
|
// param1 : CK_ID
|
|
// param2 : DWORD (hints)
|
|
CUIK_NOTIFICATION_OBJECTPARAMSCHANGED,
|
|
// current camera has changed (ie from the camera combo box in the 3dLayout)
|
|
CUIK_NOTIFICATION_CAMERACHANGED,
|
|
// *****Private to Virtools Interface*****
|
|
// a view is being closed
|
|
// param 1 : CUIKView*
|
|
CUIK_NOTIFICATION_VIEWISCLOSING,
|
|
// hierarchy of 3d/2d objects has changed
|
|
// used by hierarchy manager,level view and some setups (Sprite2DSetup) for refresh
|
|
// no parameter
|
|
CUIK_NOTIFICATION_HIERARCHY_CHANGED,
|
|
// a new scene has been created
|
|
// param1 : CK_ID of CKScene
|
|
CUIK_NOTIFICATION_SCENE_CREATED,
|
|
// add list of object to 3dLayout selection
|
|
// param1 : XObjectArray*, list of object to add to 3d Layout selection
|
|
// param2 : BOOL, clear selection if TRUE
|
|
CUIK_NOTIFICATION_SCENE_ADDTOSELECTION, //XObjectArray *, BOOL pour clear selection (true=>clear asked)
|
|
// *****Private to Virtools Interface*****
|
|
// when user unload or reload a plugin (such as a manager or a Building Block DLL)
|
|
CUIK_NOTIFICATION_PLUGIN_LOAD_UNLOAD,
|
|
// *****Private to Virtools Interface*****
|
|
// specific vor Virtools Vsl Script Editor
|
|
// when a breakpoint in VSL script code is reached
|
|
// param1 : a VSLEditor order
|
|
// parem2 : data.
|
|
CUIK_NOTIFICATION_VSLSCRIPTSCOMPILED,
|
|
// *****Private to Virtools Interface*****
|
|
// specific vor Virtools Vsl Script Editor
|
|
// vsl action scripts have just been compiled.
|
|
// param1 : ScriptInterfaceMain**, array of (ScriptInterfaceMain*)
|
|
// param2 : size of array
|
|
CUIK_NOTIFICATION_VSLBREAKNOTIFY,
|
|
// *****Private to Virtools Interface*****
|
|
// specific vor Virtools Vsl Script Editor
|
|
// new vsl action scripts have been created.
|
|
// param1 : ScriptInterface**, array of (ScriptInterface*)
|
|
// param2 : size of array
|
|
CUIK_NOTIFICATION_VSLINTERFACEACTIONCREATED,
|
|
// *****Private to Virtools Interface*****
|
|
// specific vor Virtools Vsl Script Editor
|
|
// vsl action scripts are going to be deleted.
|
|
// param1 : ScriptInterface**, array of (ScriptInterface*)
|
|
// param2 : size of array
|
|
CUIK_NOTIFICATION_VSLINTERFACEACTIONDELETED,
|
|
// *****Private to Virtools Interface*****
|
|
// specific vor Virtools Vsl Script Editor
|
|
// vsl action scripts have been renamed.
|
|
// param1 : ScriptInterface**, array of (ScriptInterface*)
|
|
// param2 : size of array
|
|
CUIK_NOTIFICATION_VSLINTERFACEACTIONRENAMED,
|
|
// create local parameters attached to the input parameters of a list of behaviors
|
|
// in the schematic view
|
|
// the local parameters must already exists and must already have their owner set (should be the parent behavior)
|
|
// param1 : CK_ID*, list of beh IDs
|
|
// param2 : size of array
|
|
CUIK_NOTIFICATION_ATTACHLOCALSINSCHEMATIC,
|
|
// for Virtools Interface Plugin Editors
|
|
// to send to notify Virtools Dev Interface that the icon of the plugin editor has changed
|
|
// param1 : HWND, plugin editor dlg HWND
|
|
CUIK_NOTIFICATION_UPDATEDLLEDITORCUSTOMICON,
|
|
// render device has changed
|
|
CUIK_NOTIFICATION_RENDERDEVICECHANGED,
|
|
// *****Specific for the Shader Editor*****
|
|
// shader fx list changed
|
|
CUIK_NOTIFICATION_SHADERLISTCHANGED,
|
|
// *****Specific for the Shader Editor*****
|
|
// show shader editor and edit a shader
|
|
// param1: CKShader*
|
|
// param2: BOOL, compile shader
|
|
// user want to see shader fx
|
|
CUIK_NOTIFICATION_WANTTOSEESHADER,
|
|
// *****Specific for the Shader Editor*****
|
|
// user just compiled a shader
|
|
CUIK_NOTIFICATION_SHADERCOMPILED,
|
|
// *****Specific for the Shader Editor*****
|
|
// user has deleted a shader
|
|
CUIK_NOTIFICATION_SHADERREMOVED,
|
|
// send by the current Version/Source Control plugin (should be NxN Alienbrain plugin for Virtools Dev)
|
|
// send when the activation state of the source control plugin has changed
|
|
// param1 : BOOL, TRUE means source control has been enabled, FALSE means disabled
|
|
CUIK_NOTIFICATION_SOURCECONTROLENABLED,
|
|
// send by the current Version/Source Control plugin (should be NxN Alienbrain plugin for Virtools Dev))
|
|
// send when files are checked in
|
|
// param1: const char**, array of filename (may be 0)
|
|
// param2: size of array (may be 0)
|
|
CUIK_NOTIFICATION_SOURCECONTROL_CHECKIN,
|
|
// send by the current Version/Source Control plugin (should be NxN Alienbrain plugin for Virtools Dev))
|
|
// send when files are checked out
|
|
// param1: const char**, array of filename (may be 0)
|
|
// param2: size of array (may be 0)
|
|
CUIK_NOTIFICATION_SOURCECONTROL_CHECKOUT,
|
|
// send by the current Version/Source Control plugin (should be NxN Alienbrain plugin for Virtools Dev))
|
|
// send when files are unchecked out
|
|
// param1: const char**, array of filename (may be 0)
|
|
// param2: size of array (may be 0)
|
|
CUIK_NOTIFICATION_SOURCECONTROL_UNDOCHECKOUT,
|
|
// send by the current Version/Source Control plugin (should be NxN Alienbrain plugin for Virtools Dev))
|
|
// send when files are imported in source control
|
|
// param1: const char**, array of filename (may be 0)
|
|
// param2: size of array (may be 0)
|
|
CUIK_NOTIFICATION_SOURCECONTROL_FILESIMPORTED,
|
|
// send by the current Version/Source Control plugin (should be NxN Alienbrain plugin for Virtools Dev))
|
|
// send when files are removed from source control
|
|
// param1: const char**, array of filename (may be 0)
|
|
// param2: size of array (may be 0)
|
|
CUIK_NOTIFICATION_SOURCECONTROL_FILESREMOVED,
|
|
//send when preference "Show Dynamic objects" changes
|
|
//param1: bool, TRUE if show dynamic objects, FALSE if hide
|
|
CUIK_NOTIFICATION_SHOWDYNAMICOBJECTS,
|
|
//send when a parameter type description is registered or unregisterd(ie user flag/enum)
|
|
//param1: CKGUID*
|
|
//param2: BOOL, TRUE for register, FALSE for unregister
|
|
CUIK_NOTIFICATION_REGISTERPARAMETERGUID,
|
|
//send to vsl editor to refresh its type combo box in the iolist
|
|
CUIK_NOTIFICATION_VSLEDITOR_REFRESHTYPECOMBO,
|
|
// focus object in hierarchy manager
|
|
// list of object taken into account by level view
|
|
// param1 : CK_ID*
|
|
// param2 : array count
|
|
CUIK_NOTIFICATION_FOCUSOBJECT_HIERARCHY,
|
|
//refresh vsl manager tree
|
|
CUIK_NOTIFICATION_VSLEDITOR_REFRESHTREE,
|
|
//refresh level manager
|
|
CUIK_NOTIFICATION_LEVELMANAGER_REFRESH,
|
|
//selection set has been modified (name/priority/options/dependencies/path/source control)
|
|
// if Param1 == 0 , all sets must be refreshed
|
|
// param1 : CK_ID*, array of selection set CK_IDs
|
|
// Param2 : HIWORD = FSetPart, LOWORD = array size
|
|
CUIK_NOTIFICATION_SELECTIONSETS_MODIFIED,
|
|
/* useless
|
|
//selection sets have been changed (created/delete)
|
|
// editor should refresh all informations about sets
|
|
// param1 : CK_ID*, list of created selection groups IDs (optional)
|
|
// param2 : size of array (optional)
|
|
CUIK_NOTIFICATION_SELECTIONSETS_UPDATEALL,
|
|
*/
|
|
CUIK_NOTIFICATION_INTERFACEOBJECTMANAGER_LOADED, // param1 = CK_ID of iom, param2 = BOOL dynamic. Send by objectloaded BB for instance
|
|
|
|
CUIK_NOTIFICATION_REQUESTCLEARALL, //clear all / new composition
|
|
CUIK_NOTIFICATION_REQUESTLOADFILE, //param1 = const char* filename&path, can be set to NULL to open dialog
|
|
|
|
// Added for integration of Lua and Python
|
|
CUIK_NOTIFICATION_SCRIPT_ADDED,
|
|
CUIK_NOTIFICATION_SCRIPT_REMOVED,
|
|
CUIK_NOTIFICATION_SCRIPT_PRINT,
|
|
CUIK_NOTIFICATION_SCRIPT_PRINTERROR,
|
|
CUIK_NOTIFICATION_SCRIPT_STOP_DEBUG,
|
|
CUIK_NOTIFICATION_SCRIPT_START_DEBUG,
|
|
CUIK_NOTIFICATION_GOTO_LINE,
|
|
CUIK_NOTIFICATION_ADD_STACK_TRACE,
|
|
CUIK_NOTIFICATION_CLEAR_CALLSTACK,
|
|
CUIK_NOTIFICATION_WATCH_ADD_VARIABLE,
|
|
CUIK_NOTIFICATION_CLEAR_WATCH,
|
|
CUIK_NOTIFICATION_WATCH_ADD_LEVEL,
|
|
CUIK_NOTIFICATION_WATCH_DEL_LEVEL,
|
|
CUIK_NOTIFICATION_STEP_IN,
|
|
CUIK_NOTIFICATION_SCRIPT_FOCUS, // param1 = char* name of the script on which to focus.
|
|
CUIK_NOTIFICATION_LUA_FORCESTOPDEBUG,
|
|
CUIK_NOTIFICATION_LUA_SCRIPT_FORCEREMOVE,
|
|
} CUIK_NOTIFICATION;
|
|
|
|
// Hints for CUIK_NOTIFICATION_OBJECTPARAMSCHANGED
|
|
|
|
typedef enum
|
|
{
|
|
CUIK_HINT_POSITION,
|
|
CUIK_HINT_ORIENTATION,
|
|
CUIK_HINT_SCALE,
|
|
CUIK_HINT_TARGET,
|
|
CUIK_HINT_PROJECTION,
|
|
|
|
} CUIK_NOTIFICATION_HINTS;
|
|
|
|
#endif
|
|
|
|
|