|
JK2eA
|
00001 #pragma once 00002 00003 #include <string> 00004 #include <vector> 00005 #include <map> 00006 #include "Controller.h" 00007 #include "ControllerTrigger.h" 00008 #include <Windows.h> 00009 #include "Observable.h" 00010 00016 class CControllerManager { 00017 private: 00018 00022 struct CONTROLLER : CObserver { 00023 CController* controller; 00024 CObservable* observable; 00025 virtual void Update(); 00026 }; 00027 std::vector<CONTROLLER*> m_controllers; 00028 00036 std::map<std::string, CONTROLLER*> m_controller_search_map_name; 00037 std::map<CController*, CONTROLLER*> m_controller_search_map_ptr; 00038 typedef std::map<std::string, CONTROLLER*>::iterator name_iter_t; 00039 typedef std::map<CController*, CONTROLLER*>::iterator ptr_iter_t; 00040 typedef std::vector<CONTROLLER*>::iterator cnt_iter_t; 00041 00042 /* 00043 Privatni konstruktor 00044 */ 00045 CControllerManager(); 00046 public: 00050 static CControllerManager& instance(); 00055 ~CControllerManager(); 00056 00061 void Update(const float dt); 00062 00071 void AddControllerTrigger(CControllerTrigger* cnt, CController *cnt_parent); 00072 00080 void AddController(CController *cnt, CObservable& param_obser); 00081 00087 CController* GetController(const std::string& name); 00092 void DelController(CController *cnt); 00097 void DelController(const std::string& name); 00101 void Release(); 00102 00103 00104 #ifdef _DEBUG 00105 private: 00106 enum { IDC_LIST_VIEW = 1000 }; 00107 00108 HWND m_dbgHwnd; 00109 // 00110 static HWND hList; 00111 // 00112 00113 00114 void InitControllerListWindow(); 00115 void AddControllerToList(CController *cnt); 00116 void ClearControllerList(); 00117 00118 static BOOL CALLBACK DbgControllerListPROC(HWND dbgHwnd, UINT msg, WPARAM wParam,LPARAM lParam); 00119 public: 00120 void ShowDebugWnd(HWND parent, HINSTANCE hInstance); 00121 00122 #endif 00123 00124 }; 00125
1.8.0