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