1 #include <string>
2 
3 #include "RectF.h"
4 #define TIXML_USE_STL
5 #include "tinyxml.h"
6 
7 #ifndef _ControlSuper_H_
8 #define _ControlSuper_H_
9 
10 #define TC_TYPE_BUTTON   1
11 #define TC_TYPE_TOUCHJOY 2
12 #define TC_TYPE_MOUSE    3
13 #define TC_TYPE_WHEELSEL 4
14 #define TC_TYPE_MULTITOUCHMOUSE 5
15 
16 
17 
18 namespace touchcontrols
19 {
20 class ControlSuper
21 {
22 protected:
23 	bool enabled;
24 
25 	bool hidden; //Can hide control from view, but still enabled
26 
27 public:
28 	RectF controlPos;
29 
30 	void setEnabled(bool v);
31 	void setHidden(bool v);
32 
33 	bool isEnabled();
34 	bool isHidden();
35 
36 	std::string description;
37 
38 	std::string tag;
39 
40 	int type;
41 
42 	ControlSuper(int type,std::string t,RectF pos);
43 
44 	virtual void resetOutput() = 0; //This outputs a reset
45 
46 	virtual bool processPointer(int action, int pid, float x, float y) = 0;
47 
48 	virtual bool drawGL(bool forEditor = false) = 0;
49 
50 	virtual bool initGL() = 0;
51 
52 	virtual void updateSize() = 0;
53 
54 	virtual void saveXML(TiXmlDocument &doc) = 0;
55 
56 	virtual void loadXML(TiXmlDocument &doc) = 0;
57 
58 	void saveXML(TiXmlElement &root);
59 
60 	void loadXML(TiXmlElement &root);
61 
62 };
63 
64 }
65 
66 #endif
67