// Global public functions
//
// YB
//////////////////////////////
#ifndef _CTL_GLOBAL_PRIVATE_FUNCTIONS_
#define _CTL_GLOBAL_PRIVATE_FUNCTIONS_

#include "CTL\Others\CTL_ClBk.hpp"

#ifndef CTL_WITH_NO_TUT
typedef void (* CTL_td_p_fn_vRegisterControl) (HWND _hWnd , const CString _csName , enum TUT_eControlType_ _eType);
typedef BOOL (* CTL_td_p_fn_bUnregisterControl) (HWND _hWnd);
#endif //CTL_WITH_NO_TUT

//Module
extern HMODULE CTL_g_hModule;

//Cursors for BaseFormView class
extern HCURSOR CTL_g_hcursor_CloseHand;
extern HCURSOR CTL_g_hcursor_UpDownHand;

#ifndef CTL_WITH_NO_TUT
//The TUT Dll functions
extern CTL_td_p_fn_vRegisterControl CTL_p_fn_vRegisterControl;
extern CTL_td_p_fn_bUnregisterControl CTL_p_fn_bUnregisterControl;

//For TUT Module
extern CString CTL_g_csCurrentTAG;
extern CString CTL_g_csCurrentSecondaryInfo;
#endif //CTL_WITH_NO_TUT

//Default Callbacks
extern CTL_td_p_fn_bControlCanBeDisplayed CTL_g_p_fnDefaultCallBack_ControlCanBeDisplayed;
extern CTL_td_p_fn_vCallBackWhenDataHasChanged CTL_g_p_fnDefaultCallBack_DataHasChanged;

extern CTL_td_p_fn_vStaticHasBeenClicked CTL_g_p_fnDefaultCallBack_StaticHasBeenClicked;
extern CTL_tdp_fn_vGetColor CTL_g_p_fnDefaultCallBack_GetColor;

//Version
extern CString CTL_g_csVersion;

//////////////////////////
//////////////////////////
//Functions
//////////////////////////
void CTL_fn_vInternalInitModule();

long CTL_fn_lComputeSizeOfStaticForName(class CTL_Editor_BaseControl *_pclSenderBaseControl);

#ifndef CTL_WITH_NO_TUT
BOOL CTL_fn_bGetTUT_DLLFunctions();
#endif //CTL_WITH_NO_TUT

void CTL_fn_vSetMemoryForFloat(void *pvDest, 
															 long double ldfSourceValue, 
															 char cDataLength);

void CTL_fn_vGetMemoryForFloat(void *pvSource, 
															 long double &r_ldfEditorValue,
															 char cDataLength);

#endif //_CTL_GLOBAL_PRIVATE_FUNCTIONS_