00001 #ifndef HWWIDGET_H 00002 #define HWWIDGET_H 00003 00004 #include <string> 00005 #include <iostream> 00006 #include <pthread.h> 00007 00008 using namespace std; 00009 00010 class hwServer; 00011 00012 class hwWidget 00013 { 00014 friend class hwServer; 00015 00016 public: 00017 00018 virtual ~hwWidget(); 00019 00020 virtual string draw() = 0; 00021 00022 string getName() const 00023 { 00024 return myName; 00025 } 00026 00027 void setValue(const string& value) 00028 { 00029 myValue = value; 00030 } 00031 00032 void setName(const string& name); 00033 00034 string getValue() const 00035 { 00036 return myValue; 00037 } 00038 00039 bool isVisible() const 00040 { 00041 return myVisibleFlag; 00042 } 00043 00044 void setVisibility(bool visible) 00045 { 00046 myVisibleFlag = visible; 00047 } 00048 00049 string getClass() 00050 { 00051 return myClass; 00052 } 00053 00054 virtual string toString() 00055 { 00056 return ""; 00057 } 00058 00059 virtual void onClick() {}; 00060 virtual void onChange() {}; 00061 00062 protected: 00063 00064 hwWidget(const string& classname); 00065 00066 string myName; 00067 string myValue; 00068 string myClass; 00069 bool myVisibleFlag; 00070 00071 private: 00072 00073 static void init(); 00074 00075 hwWidget(const hwWidget& source); 00076 hwWidget& operator=(const hwWidget& source); 00077 00078 static pthread_mutex_t myMutex; 00079 static unsigned long myWidgetCounter; 00080 }; 00081 00082 #endif 00083 00084