112 lines
3.0 KiB
C++
112 lines
3.0 KiB
C++
/* Header for the definition of a base control */
|
|
/*/////////////////////////////////////////////////////////*/
|
|
#ifndef _CTL_BASE_CONTROL_
|
|
#define _CTL_BASE_CONTROL_
|
|
|
|
#if _MSC_VER >= 1000
|
|
#pragma once
|
|
#endif /* _MSC_VER >= 1000*/
|
|
|
|
#include "ACP_Base.h" /*For CPA_EXPORT*/
|
|
#include "CTL\Others\CTL_ClBk.hpp"
|
|
|
|
/*#########################################################*/
|
|
typedef enum CTL_eBaseControlDisplayType
|
|
{
|
|
CTL_BASE_CONTROL_DISPLAY_TYPE__NORMAL = 0,
|
|
CTL_BASE_CONTROL_DISPLAY_TYPE__ALWAYS_FIXED,
|
|
CTL_BASE_CONTROL_DISPLAY_TYPE__ALWAYS_PERCENTAGED,
|
|
CTL_BASE_CONTROL_DISPLAY_TYPE__USE_CALLBACK,
|
|
/*CTL_BASE_CONTROL_DISPLAY_TYPE__*/
|
|
|
|
} CTL_tdeBaseControlDisplayType;
|
|
|
|
/*#########################################################*/
|
|
#define CTL_C_BASE_CONTROL_INVALID_PERCENTAGE (-1)
|
|
|
|
class CTL_BaseWindowsControl;
|
|
class CTL_Editor_Control;
|
|
|
|
/*#########################################################*/
|
|
class CPA_EXPORT CTL_Editor_BaseControl
|
|
{
|
|
/*Constructor / Destructor*/
|
|
public:
|
|
CTL_Editor_BaseControl(CTL_BaseWindowsControl *_pclBaseWindowsControl,
|
|
CWnd *_pclWnd,
|
|
CTL_Editor_Control *_pclParentControl,
|
|
CTL_tdeBaseControlDisplayType _eDisplayType,
|
|
unsigned char _ucPercentWidth,
|
|
unsigned short _uwFixedWidth,
|
|
unsigned short _uwHeight,
|
|
BOOL _bSamePlaceAsNext,
|
|
BOOL _bGoToNextLineAfterMe = FALSE);
|
|
|
|
~CTL_Editor_BaseControl();
|
|
|
|
/*Attributes*/
|
|
public:
|
|
|
|
protected:
|
|
|
|
private:
|
|
long m_pri_lComputedWidth;
|
|
char m_pri_cComputedPercentage;
|
|
|
|
CTL_BaseWindowsControl *m_pri_pclBaseWindowsControl;
|
|
CWnd *m_pri_pclWnd;
|
|
|
|
CRect m_crBaseZoneRect;
|
|
|
|
CTL_td_p_fn_bBaseControlCanBeDisplayed m_pri_td_p_fn_vCanBeDisplayedCallBack;
|
|
CTL_td_p_fn_bBaseControlCanBeDisplayed m_pri_td_p_fn_vMustBeEnabledCallBack;
|
|
|
|
CTL_Editor_Control *m_pri_pclParentControl;
|
|
|
|
CTL_tdp_fn_lGetSizeOfWindow m_pri_td_p_fn_lGetSize_CallBack;
|
|
|
|
CTL_tdeBaseControlDisplayType m_pri_tdeDisplayType;
|
|
|
|
unsigned char m_pri_ucPercentWidth;
|
|
unsigned short m_pri_uwFixedWidth;
|
|
unsigned short m_pri_uwHeight;
|
|
|
|
BOOL m_pri_bSamePlaceAsNext;
|
|
BOOL m_pri_bBeginsOnNextLine;
|
|
|
|
/*Member functions*/
|
|
public:
|
|
CRect &m_fn_rcrGetZoneRect();
|
|
CWnd *m_fn_pclGetWnd();
|
|
void m_fn_vHideBaseControl();
|
|
void m_fn_vDisplayBaseControl();
|
|
void m_fn_vMoveBaseControl();
|
|
|
|
BOOL m_pub_fn_bCanBeDisplayed();
|
|
BOOL m_pub_fn_bMustBeEnabled();
|
|
|
|
void m_pub_fn_vMoveInZone(CRect &_r_crNextRectOnSameLine,
|
|
CRect &_r_crNextRectOnNextLine);
|
|
|
|
void m_pub_fn_vComputeBaseControlZone();
|
|
|
|
void m_pub_fn_vSetCanBeDisplayedCallBack(CTL_td_p_fn_bBaseControlCanBeDisplayed _p_fn_vCallBack);
|
|
void m_pub_fn_vSetMustBeEnabledCallBack(CTL_td_p_fn_bBaseControlCanBeDisplayed _p_fn_vCallBack);
|
|
|
|
CTL_Editor_Control *m_pub_fn_pclGetParentControl();
|
|
|
|
void m_pub_fn_vSetGetSize_CallBack(CTL_tdp_fn_lGetSizeOfWindow _p_fn_lCallBack);
|
|
|
|
CTL_tdeBaseControlDisplayType m_pub_fn_tdeGetDisplayType();
|
|
|
|
|
|
protected:
|
|
|
|
private:
|
|
|
|
friend class CTL_Editor_Control;
|
|
friend class CTL_Editor_BaseControlList;
|
|
};
|
|
|
|
#endif /*_CTL_BASE_CONTROL_*/
|