178 lines
6.3 KiB
C++
178 lines
6.3 KiB
C++
// Implementation file for the definition of a characteristic type
|
|
/////////////////////////////////////////////////////////////////////
|
|
#include "StdAfx.h"
|
|
|
|
#include "Controls\CTL_CtlB.hpp"
|
|
|
|
#include "Controls\CTL_BCtl.hpp"
|
|
#include "Data\CTL_DatB.hpp"
|
|
#include "WControls\CTL_WCkB.hpp"
|
|
#include "WControls\CTL_WSta.hpp"
|
|
#include "Controls\CTL_Cnst.hpp"
|
|
|
|
//External Modules
|
|
#include "CTL_ErO.hpp"
|
|
//End of External Modules
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
//Constructor / Destructor
|
|
//**************************************************************************************
|
|
CTL_Editor_BooleanControl::CTL_Editor_BooleanControl(BOOL bReadOnly,
|
|
CTL_tdeControlSpacingType tdeSpacingType,
|
|
BOOL bUserCanChangeAspect,
|
|
CTL_Editor_ControlList *_pclParentList,
|
|
CString _csControlName,
|
|
BOOL _bAcceptNameFromData, //ANNECY BBB
|
|
//Stefan Dumitrean 20-07-98 ( OAC buttons )
|
|
unsigned char ucInitialCurrentPair
|
|
//End Stefan Dumitrean 20-07-98 ( OAC buttons )
|
|
)
|
|
: CTL_Editor_Control(CTL_DATA_TYPE__BOOLEAN,
|
|
bReadOnly,
|
|
tdeSpacingType,
|
|
bUserCanChangeAspect,
|
|
_pclParentList,
|
|
_csControlName,
|
|
_bAcceptNameFromData, //ANNECY BBB
|
|
//Stefan Dumitrean 20-07-98 ( OAC buttons )
|
|
ucInitialCurrentPair
|
|
//End Stefan Dumitrean 20-07-98 ( OAC buttons )
|
|
|
|
)
|
|
{
|
|
m_pclCheckBox = NULL;
|
|
}
|
|
|
|
//**************************************************************************************
|
|
CTL_Editor_BooleanControl::~CTL_Editor_BooleanControl()
|
|
{
|
|
|
|
}
|
|
|
|
|
|
//Member functions
|
|
|
|
//**************************************************************************************
|
|
//Function called to create associated control
|
|
BOOL CTL_Editor_BooleanControl::m_fn_bCreateControl(CWnd *pclParentWnd)
|
|
{
|
|
BOOL bReturnValue = TRUE;
|
|
|
|
m_pclParentWnd = pclParentWnd;
|
|
|
|
m_pro_fn_bCreateBaseControls(C_BOOL_NAME_BOX_PERCENT_WIDTH,
|
|
C_BOOL_NAME_BOX_MIN_WIDTH,
|
|
C_EDIT_HEIGHT);
|
|
|
|
//Creates check box
|
|
m_pclCheckBox = new CTL_Editor_CheckBox(CTL_CHECK_BOX_TYPE__NORMAL,
|
|
WS_TABSTOP,
|
|
this,
|
|
m_pclParentWnd);
|
|
|
|
m_pclCheckBox->m_pub_fn_vSetHasBeenClicked_CallBack(s_m_fn_vCheckBoxHasBeenClicked);
|
|
#ifndef CTL_WITH_NO_TUT
|
|
m_pclCheckBox->m_pub_fn_vRegisterWindowsControl(m_pub_fn_csGetControlName() + " - Boolean");
|
|
#endif //CTL_WITH_NO_TUT
|
|
|
|
CTL_Editor_BaseControl *pclBC;
|
|
pclBC = m_pclListOfBaseControls->m_pub_fn_pclAddControlAtTail(m_pclCheckBox,
|
|
m_pclCheckBox,
|
|
this,
|
|
CTL_BASE_CONTROL_DISPLAY_TYPE__ALWAYS_FIXED,
|
|
0,
|
|
C_BUTTON_WIDTH,
|
|
C_EDIT_HEIGHT);
|
|
pclBC->m_pub_fn_vSetMustBeEnabledCallBack(s_m_fn_bCheckBoxMustBeEnabled);
|
|
|
|
m_bControlCreated = bReturnValue;
|
|
|
|
return bReturnValue;
|
|
}
|
|
|
|
//************************************************************************************
|
|
//Function called to display the associated control(s) of the char.
|
|
void CTL_Editor_BooleanControl::m_fn_vDisplay()
|
|
{
|
|
m_pro_fn_vDisplayBaseControls();
|
|
}
|
|
|
|
//************************************************************************
|
|
//Function called to update Control in case of values changes.
|
|
void CTL_Editor_BooleanControl::m_fn_vUpdate(CTL_tdeUpdateReason _eReason /*= E_ur_NoReasonGiven*/,
|
|
long _lUserDefinedReason /*= 0*/)
|
|
{
|
|
if ( m_pclCheckBox )
|
|
//CPA2 Stegaru Cristian 98/06/25
|
|
// m_pclCheckBox->SetCheck(((CTL_Editor_BooleanData *)m_pclData)->m_bCurrentState);
|
|
m_pclCheckBox->SetCheck(((CTL_Editor_BooleanData *)m_pclData)->mfn_bGetCurrentState ());
|
|
//End CPA2 Stegaru Cristian 98/06/25
|
|
|
|
//CallBack
|
|
m_pclData->m_fn_vDataHasBeenChanged(_eReason, _lUserDefinedReason);
|
|
}
|
|
|
|
//************************************************************************
|
|
//Function called to update parent window in case of values changes.
|
|
void CTL_Editor_BooleanControl::m_fn_vUpdateParent(CTL_tdeUpdateReason eReason,
|
|
long _lUserDefinedReason /*= 0*/)
|
|
{
|
|
//Updates parent's controls if necessary (Watch Window, ...)
|
|
CTL_Editor_Control::m_fn_vUpdateParent(eReason, _lUserDefinedReason);
|
|
}
|
|
|
|
//************************************************************************
|
|
//Function called to make control Read Only
|
|
void CTL_Editor_BooleanControl::m_fn_vMakeReadOnly()
|
|
{
|
|
if ( !m_fn_bIsReadOnly() )
|
|
{
|
|
if ( m_pclCheckBox )
|
|
m_pclCheckBox->EnableWindow(FALSE);
|
|
|
|
m_bIsReadOnly = TRUE;
|
|
}
|
|
}
|
|
|
|
//************************************************************************
|
|
//Function called to make control Read-Write
|
|
void CTL_Editor_BooleanControl::m_fn_vMakeReadWrite()
|
|
{
|
|
if ( !m_fn_bIsAlwaysReadOnly() )
|
|
{
|
|
if ( m_pclCheckBox )
|
|
m_pclCheckBox->EnableWindow(TRUE);
|
|
|
|
m_bIsReadOnly = FALSE;
|
|
}
|
|
}
|
|
|
|
//************************************************************************
|
|
BOOL CTL_Editor_BooleanControl::s_m_fn_bCheckBoxMustBeEnabled(class CTL_Editor_BaseControl *_pclSenderBaseControl)
|
|
{
|
|
return (!_pclSenderBaseControl->m_pub_fn_pclGetParentControl()->m_fn_bIsReadOnly());
|
|
}
|
|
|
|
//************************************************************************
|
|
void CTL_Editor_BooleanControl::s_m_fn_vCheckBoxHasBeenClicked(class CTL_Editor_CheckBox *_pclSenderCheckBox,
|
|
class CTL_Editor_Control *_pclParentControl,
|
|
enum CTL_eCarCheckBoxType _tdeType,
|
|
long _lUserDefinedType,
|
|
long _lUserDefinedCode)
|
|
{
|
|
ERROR_ASSERT(_pclParentControl != NULL);
|
|
ERROR_ASSERT(_pclParentControl->m_pub_fn_tdeGetDataType() == CTL_DATA_TYPE__BOOLEAN);
|
|
|
|
//Updates motor's data
|
|
//CPA2 Stegaru Cristian 98/06/25
|
|
// ((CTL_Editor_BooleanData *)_pclParentControl->m_fn_pclGetEditedData())->m_bCurrentState = _pclSenderCheckBox->GetCheck();
|
|
((CTL_Editor_BooleanData *)_pclParentControl->m_fn_pclGetEditedData())->mfn_bSetCurrentState (_pclSenderCheckBox->GetCheck());
|
|
//End CPA2 Stegaru Cristian 98/06/25
|
|
_pclParentControl->m_fn_pclGetEditedData()->m_fn_vUpdateMotorData(CTL_UPDATE_REASON__DATA_MODIFIED_BY_USER, 0);
|
|
}
|