reman3/Rayman_X/cpa/tempgrp/OAC/Inc/DatCtrl/EDACCust.hpp

225 lines
7.1 KiB
C++

// Used for Data and Controls customization
//
// YB
//
/////////////////////////////////////////////////////
#ifndef _OAC_DATA_AND_CONTROLS_CUSTOMIZATION_
#define _OAC_DATA_AND_CONTROLS_CUSTOMIZATION_
//External Modules
#include "CTL.h"
#include "WAW.h"
//End of External Modules
//#########################################################
typedef enum OAC_eEditorDataType
{
OAC_DATA_TYPE__OBJECT_LIST = 1,
OAC_DATA_TYPE__STATE,
} OAC_tdeEditorDataType;
//#########################################################
typedef enum OAC_eUpdateReason
{
OAC_E_ur_NoReasonGiven = 0,
OAC_E_ur_InstanceChangedObjectList,
OAC_E_ur_ModelChangedNameList,
OAC_E_ur_InstanceChangedAlternateList,
OAC_E_ur_InstanceRenamedObjectList,
OAC_E_ur_ModelEditedNameList,
OAC_E_ur_ComboSelChanged,
OAC_E_ur_ButtonClicked,
OAC_E_ur_InstanciatedFromModel,
OAC_E_ur_ModelDataChanged,
} OAC_tdeUpdateReason;
//#########################################################
typedef enum OAC_eDataLinkMode
{
OAC_LINK_MODE__NOT_LINKED = 0,
OAC_LINK_MODE__LINKED,
//Those modes are for data whose link mode cannot be changed by the user
OAC_LINK_MODE__ALWAYS_LINKED,
OAC_LINK_MODE__NEVER_LINKED,
} OAC_tdeDataLinkMode;
OAC_tdeDataLinkMode eNot(OAC_tdeDataLinkMode _eMode);
//#########################################################
typedef enum OAC_eDataLevel
{
OAC_DATA_LEVEL_1 = 1,
OAC_DATA_LEVEL_2 = 2,
OAC_DATA_LEVEL_3 = 3,
} OAC_tdeDataLevel;
//BEGIN ROMTEAM Cristi Petrescu 98-06-
typedef enum OAC_eDataQualifier
{
OAC_DATA_PUBLIC,
OAC_DATA_PRIVATE,
} OAC_tdeDataQualifier;
//END ROMTEAM Cristi Petrescu 98-06-
//#########################################################
typedef enum OAC_eStaticType
{
OAC_STATIC_TYPE__INSTANCE_NAME = 1,
OAC_STATIC_TYPE__MODEL_NAME,
OAC_STATIC_TYPE__FAMILY_NAME,
} OAC_tdeStaticType;
//#########################################################
typedef enum OAC_eCheckBoxType
{
OAC_CHECK_BOX_TYPE__LINK = 1,
} OAC_tdeCheckBoxType;
//#########################################################
typedef enum OAC_eButtonType
{
OAC_BUTTON_TYPE__OBJECTS_LIST_BUTTON = 1,
} OAC_tdeButtonType;
//#########################################################
typedef enum OAC_eButtonReturnCodeValue
{
OAC_BUTTON_RETURN_CODE_VALUE__OBJECTS_LIST_EDIT = 1,
OAC_BUTTON_RETURN_CODE_VALUE__OBJECTS_LIST_RENAME,
} OAC_tdeButtonReturnCodeValue;
//#########################################################
typedef enum OAC_eComboBoxType
{
OAC_COMBO_BOX_TYPE__OBJECTS_LIST_COMBO_BOX = 1,
} OAC_tdeComboBoxType;
//#########################################################
typedef enum OAC_eComboBoxReturnCodeValue
{
OAC_COMBO_BOX_RETURN_CODE_VALUE__OBJECTS_LIST_NAMES = 1,
OAC_COMBO_BOX_RETURN_CODE_VALUE__OBJECTS_LIST_ALTERNATE_NAMES,
} OAC_tdeComboBoxReturnCodeValue;
//#########################################################
typedef enum OAC_eControlVisibility
{
EDCAR_DATA_VISI_ONLY_INSTANCES = 0,
EDCAR_DATA_VISI_ONLY_MODELS,
EDCAR_DATA_VISI_DUAL,
} OAC_tdeControlVisibility;
class EdActors_EditorActor;
class EdActors_ActorMiniStructure;
///////////////////////////////////////////////////////////////////////////////////////////////
//Owner Data Functions
/////////////////////
//Data
///////////
void OAC_AddOwnerDataToData(CTL_Editor_Data *_pclData,
EdActors_EditorActor *_pclParentActor,
EdActors_ActorMiniStructure *_pclParentAMS);
EdActors_EditorActor *OAC_fn_pclGetParentActorOfData(CTL_Editor_Data *_pclData);
EdActors_ActorMiniStructure *OAC_fn_pclGetParentAMSOfData(CTL_Editor_Data *_pclData);
OAC_eDataLinkMode OAC_fn_tdeGetLink(CTL_Editor_Data *_pclData);
//Returns the previous Link status
OAC_eDataLinkMode OAC_fn_tdeSetLink(CTL_Editor_Data *_pclData,
OAC_eDataLinkMode _tdeNewLink);
BOOL OAC_fn_bIsLinked(CTL_Editor_Data *_pclData);
//CPA2 Stegaru Cristian 98/06/24
BOOL OAC_fn_bLinkAllowPropagation (CTL_Editor_Data *pclData);
//End CPA2 Stegaru Cristian 98/06/24
BOOL OAC_fn_bDataIsInWatch(CTL_Editor_Data *_pclData);
WAW_Data *OAC_fn_pclGetAssociatedWatchData(CTL_Editor_Data *_pclData);
void OAC_fn_vSetDataInWatch(CTL_Editor_Data *_pclData,
WAW_Data *_p_clDataInWatch);
//Controls
///////////
void OAC_AddOwnerDataToControl(CTL_Editor_Control *_pclControl,
OAC_tdeDataLevel _eLevel,
OAC_tdeControlVisibility _eVisibility,
DWORD dwHelpID);
OAC_tdeControlVisibility OAC_tdeGetVisibilityOfControl(CTL_Editor_Control *_pclControl);
OAC_eDataLevel OAC_fn_tdeGetLevelOfControl(CTL_Editor_Control *_pclControl);
DWORD OAC_fn_tdeGetHelpIDOfControl(CTL_Editor_Control *_pclControl);
void OAC_fn_vCustomizeControl(CTL_Editor_Control *_pclControl,
CWnd *_pclParentWnd);
BOOL OAC_fn_bControlCanBeDisplayed(class CTL_Editor_Control *_pclSenderControl);
///////////////////////////////////////////////////////////////////////////////////////////////
//CallBack functions
/////////////////////
//Data
///////////
void OAC_fn_vDataHasBeenChanged(class CTL_Editor_Data *_pclChangedData,
enum CTL_eUpdateReason _eReason,
long _lUserDefinedReason = 0);
BOOL OAC_fn_bVectorDataMustBeRead(CTL_Editor_Data *_pclData);
BOOL OAC_fn_bVectorDataMustBeWritten(CTL_Editor_Data *_pclData);
//Controls
///////////
//Windows Controls
////////////////////
void OAC_fn_vFieldNameStaticHasBeenClicked_CallBack(class CTL_Editor_Static *_pclSenderStatic,
enum CTL_eClickType _tdeClickType);
void OAC_fn_vInstanceNameStaticHasBeenClicked_CallBack(class CTL_Editor_Static *_pclSenderStatic,
enum CTL_eClickType _tdeClickType);
void OAC_fn_vModelNameStaticHasBeenClicked_CallBack(class CTL_Editor_Static *_pclSenderStatic,
enum CTL_eClickType _tdeClickType);
void OAC_fn_ColRefGetStaticColor_CallBack(class CTL_Editor_Static *_pclSenderStatic,
COLORREF &r_ColRefBackGround,
COLORREF &r_ColRefText);
void OAC_fn_vCheckBoxHasBeenClicked_CallBack(class CTL_Editor_CheckBox *_pclSenderCheckBox,
class CTL_Editor_Control *_pclParentControl,
enum CTL_eCarCheckBoxType _tdeType,
long _lUserDefinedType,
long _lUserDefinedCode);
BOOL OAC_fn_bLinkCheckBoxCanBeDisplayed_CallBack(class CTL_Editor_BaseControl *_pclSenderBaseControl);
BOOL OAC_fn_bLinkCheckBoxMustBeEnabled_CallBack(class CTL_Editor_BaseControl *_pclSenderBaseControl);
///////////////////////////////////////////////////////////////////////////////////////////////
// Global
////////////
CTL_Editor_Data *OAC_fn_pclAddStateData(CTL_Editor_DataList *_pclDataList,
CString _csDataName,
CTL_Editor_Data *_pclCurrentAssociatedData = NULL);
CTL_Editor_Data *OAC_fn_pclAddObjectListData(CTL_Editor_DataList *_pclDataList,
CString _csDataName,
CTL_Editor_Data *_pclCurrentAssociatedData = NULL);
BOOL OAC_fn_bBelongsToAnInstance(CTL_Editor_Data *_pclData);
BOOL OAC_fn_bIsEditingAnInstance(CTL_Editor_Control *_pclControl);
#endif //_OAC_DATA_AND_CONTROLS_CUSTOMIZATION_