00001 // Copyright (c) 1998-2014 by Tech Soft 3D, Inc. 00002 // 00003 // The information contained herein is confidential and proprietary to Tech Soft 3D, Inc., 00004 // and considered a trade secret as defined under civil and criminal statutes. 00005 // Tech Soft 3D, Inc. shall pursue its civil and criminal remedies in the event of 00006 // unauthorized use or misappropriation of its trade secrets. Use of this information 00007 // by anyone other than authorized employees of Tech Soft 3D, Inc. is granted only under 00008 // a written non-disclosure agreement, expressly prescribing the scope and manner of such use. 00009 00011 00015 #ifndef _HIM_MANAGER_H 00016 #define _HIM_MANAGER_H 00017 00018 #ifdef H_PACK_8 00019 #pragma pack(push) 00020 #pragma pack(8) 00021 #endif 00022 00023 #include "HTools.h" 00024 00025 00026 00027 00032 #define HImRegisterCallback(callback_name, callback_function) \ 00033 do{ (HImManager::GetCurrentHImManager())->RegisterOneCallback( \ 00034 (const char *)callback_name, (void*)callback_function); }while(0); 00035 00039 #define HImSetCallback(callback_type, callback_name) \ 00040 do{ (HImManager::GetCurrentHImManager())->SetCallback( \ 00041 (const char *)callback_type, (const char *)callback_name); }while(0); 00042 00046 #define HImSetCallbackByKey(segment_key, callback_type, callback_name) \ 00047 do{ (HImManager::GetCurrentHImManager())->SetCallback( \ 00048 segment_key, (const char *)callback_type, (const char *)callback_name); }while(0); 00049 00053 #define HImUnSetOneCallback(callback_type) \ 00054 do{ (HImManager::GetCurrentHImManager())->UnSetOneCallback( \ 00055 callback_type); }while(0); 00056 00061 #define HImUnSetOneCallbackByKey(segment_key, callback_type) \ 00062 do{ (HImManager::GetCurrentHImManager())->UnSetOneCallback( \ 00063 segment_key, (const char *)callback_type); }while(0); 00064 00070 #define HImShowCallback(callback_name, callback_type) \ 00071 do{ (HImManager::GetCurrentHImManager())->ShowCallback( \ 00072 (const char *)callback_name, (char *)callback_type); }while(0); 00073 00074 00075 00076 00077 00079 00090 class MVO_API HImManager 00091 { 00092 00093 public: 00094 00095 HImManager(); 00096 virtual ~HImManager(); 00097 00099 virtual void RegisterCallbacks(); 00100 00108 virtual void RegisterOneCallback(const char * callback_name, void * callback); 00109 00118 virtual void SetCallback(HC_KEY segment_key, const char * callback_type, const char * callback_name); 00119 00128 virtual void SetCallback(const char * callback_type, const char * callback_name); 00129 00137 virtual void UnSetOneCallback(HC_KEY segment_key, const char * callback_type); 00138 00145 virtual void UnSetOneCallback(const char * callback_type); 00146 00154 virtual void ShowCallback(const char *callback_type, char * callback); 00155 00161 static HImManager *GetCurrentHImManager(); 00162 00163 }; 00164 00165 00166 #ifdef H_PACK_8 00167 #pragma pack(pop) 00168 #endif 00169 00170 #endif 00171 00172 00173 00174 00175 00176 00177