1 /*!
2 	@file
3 	@author		Albert Semenov
4 	@date		08/2008
5 */
6 
7 #ifndef BASE_MANAGER_H_
8 #define BASE_MANAGER_H_
9 
10 #include <MyGUI.h>
11 
12 #include "InputManager.h"
13 #include "PointerManager.h"
14 
15 namespace MyGUI
16 {
17 	class DummyPlatform;
18 }
19 
20 namespace base
21 {
22 	class BaseManager :
23 		public input::InputManager,
24 		public input::PointerManager
25 	{
26 	public:
27 		BaseManager();
28 
29 		virtual void prepare(); // инициализация коммандной строки
30 		bool create(int _width = 1024, int _height = 768); // создаем начальную точки каркаса приложения
31 		void destroy(); // очищаем все параметры каркаса приложения
32 		void run();
33 		void quit();
34 
35 		void setWindowCaption(const std::wstring& _text);
makeScreenShot()36 		void makeScreenShot() { }
37 
38 		const std::string& getRootMedia();
39 		void setResourceFilename(const std::string& _flename);
40 		void addResourceLocation(const std::string& _name, bool _recursive = false);
41 
getStatistic()42 		MyGUI::MapString getStatistic() { return MyGUI::MapString(); }
43 
44 		size_t getWindowHandle();
45 
46 	/*internal:*/
47 		void _windowResized();
48 
49 	protected:
createScene()50 		virtual void createScene() { }
destroyScene()51 		virtual void destroyScene() { }
52 
53 		virtual void setupResources();
54 
55 		virtual void injectMouseMove(int _absx, int _absy, int _absz);
56 		virtual void injectMousePress(int _absx, int _absy, MyGUI::MouseButton _id);
57 		virtual void injectMouseRelease(int _absx, int _absy, MyGUI::MouseButton _id);
58 		virtual void injectKeyPress(MyGUI::KeyCode _key, MyGUI::Char _text);
59 		virtual void injectKeyRelease(MyGUI::KeyCode _key);
60 
61 		virtual void createGui();
62 		virtual void destroyGui();
63 
64 		virtual void setWindowMaximized(bool _value);
65 		virtual bool getWindowMaximized();
66 
67 		virtual void setWindowCoord(const MyGUI::IntCoord& _value);
68 		virtual MyGUI::IntCoord getWindowCoord();
69 
70 	private:
71 		MyGUI::Gui* mGUI;
72 		MyGUI::DummyPlatform* mPlatform;
73 
74 		HWND hWnd;
75 		HINSTANCE hInstance;
76 
77 		bool mExit;
78 	};
79 
80 } // namespace base
81 
82 #endif // BASE_MANAGER_H_
83