Changeset 15 in flair-src for trunk/lib/FlairCore/src/Widget.cpp
- Timestamp:
- 04/08/16 15:40:57 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/FlairCore/src/Widget.cpp
r2 r15 21 21 using std::string; 22 22 23 namespace flair 24 { 25 namespace gui 26 { 23 namespace flair { 24 namespace gui { 27 25 28 26 using namespace core; 29 27 30 Widget::Widget(const Widget* parent,string name,string type): Object(parent,name,type) 31 { 32 pimpl_=new Widget_impl(this,parent,name,type); 33 } 34 35 Widget::~Widget() 36 { 37 delete pimpl_; 38 } 39 40 template <> 41 bool Widget::GetPersistentXmlProp(std::string prop,double &value) 42 { 43 xmlChar *result=NULL; 44 result=xmlGetProp(pimpl_->file_node,(xmlChar*)prop.c_str()); 45 46 if(result!=NULL) { 47 value=xmlXPathCastStringToNumber(result); 48 xmlFree(result); 49 return true; 50 } else { 51 return false; 52 } 53 } 54 55 template <> 56 bool Widget::GetPersistentXmlProp(std::string prop,float &value) { 57 double tmp; 58 if(GetPersistentXmlProp<double>(prop,tmp)) { 59 value=tmp; 60 return true; 61 } else { 62 return false; 63 } 64 } 65 66 template <> 67 bool Widget::GetPersistentXmlProp(std::string prop,bool &value) { 68 double tmp; 69 if(GetPersistentXmlProp<double>(prop,tmp)) { 70 value=tmp; 71 return true; 72 } else { 73 return false; 74 } 75 } 76 77 template <> 78 bool Widget::GetPersistentXmlProp(std::string prop,int32_t &value) { 79 double tmp; 80 if(GetPersistentXmlProp<double>(prop,tmp)) { 81 value=tmp; 82 return true; 83 } else { 84 return false; 85 } 86 } 87 88 template <> 89 bool Widget::GetPersistentXmlProp(std::string prop,uint16_t &value) { 90 double tmp; 91 if(GetPersistentXmlProp<double>(prop,tmp)) { 92 value=tmp; 93 return true; 94 } else { 95 return false; 96 } 97 } 98 99 template <> 100 void Widget::SetVolatileXmlProp(string prop,string value,xmlNodePtr node) 101 { 102 if(node==NULL) node=pimpl_->send_node; 103 xmlSetProp(node,(xmlChar*)prop.c_str(),(xmlChar*)value.c_str()); 104 } 105 106 template <> 107 void Widget::SetVolatileXmlProp(string prop,char* value,xmlNodePtr node) 108 { 109 if(node==NULL) node=pimpl_->send_node; 110 xmlSetProp(node,(xmlChar*)prop.c_str(),(xmlChar*)value); 111 } 112 113 template <> 114 void Widget::SetVolatileXmlProp(string prop,double value,xmlNodePtr node) 115 { 116 xmlChar* xmlChar_value=xmlXPathCastNumberToString(value); 117 118 if(node==NULL) node=pimpl_->send_node; 119 xmlSetProp(node,(xmlChar*)prop.c_str(),xmlChar_value); 120 xmlFree(xmlChar_value); 121 } 122 123 template <> 124 void Widget::SetVolatileXmlProp(string prop,float value,xmlNodePtr node) 125 { 126 SetVolatileXmlProp<double>(prop,value,node); 127 } 128 129 template <> 130 void Widget::SetVolatileXmlProp(string prop,int32_t value,xmlNodePtr node) 131 { 132 SetVolatileXmlProp<double>(prop,value,node); 133 } 134 135 template <> 136 void Widget::SetVolatileXmlProp(string prop,uint32_t value,xmlNodePtr node) 137 { 138 SetVolatileXmlProp<double>(prop,value,node); 139 } 140 141 template <> 142 void Widget::SetVolatileXmlProp(string prop,int16_t value,xmlNodePtr node) 143 { 144 SetVolatileXmlProp<double>(prop,value,node); 145 } 146 147 template <> 148 void Widget::SetVolatileXmlProp(string prop,uint16_t value,xmlNodePtr node) 149 { 150 SetVolatileXmlProp<double>(prop,value,node); 151 } 152 153 template <> 154 void Widget::SetVolatileXmlProp(string prop,int8_t value,xmlNodePtr node) 155 { 156 SetVolatileXmlProp<double>(prop,value,node); 157 } 158 159 template <> 160 void Widget::SetVolatileXmlProp(string prop,uint8_t value,xmlNodePtr node) 161 { 162 SetVolatileXmlProp<double>(prop,value,node); 163 } 164 165 template <> 166 void Widget::SetVolatileXmlProp(string prop,bool value,xmlNodePtr node) 167 { 168 SetVolatileXmlProp<double>(prop,value,node); 169 } 170 171 template <> 172 void Widget::SetVolatileXmlProp(string prop,xmlChar* value,xmlNodePtr node) { 173 if(node==NULL) node=pimpl_->send_node; 174 xmlSetProp(node,(xmlChar*)prop.c_str(),value); 175 } 176 177 template <> 178 void Widget::SetVolatileXmlProp(string prop,DataType const &dataType,xmlNodePtr node) { 179 if(node==NULL) node=pimpl_->send_node; 180 xmlSetProp(node,(xmlChar*)prop.c_str(),(xmlChar*)dataType.GetDescription().c_str()); 181 /* 182 switch(dataType) 183 { 184 case io_data::Float: 185 xmlSetProp(node,(xmlChar*)prop.c_str(),(xmlChar*)"float"); 186 break; 187 case io_data::Int8_t: 188 xmlSetProp(node,(xmlChar*)prop.c_str(),(xmlChar*)"int8_t"); 189 break; 190 case io_data::Int16_t: 191 xmlSetProp(node,(xmlChar*)prop.c_str(),(xmlChar*)"int16_t"); 192 break; 193 } 194 */ 195 } 196 197 template <> 198 void Widget::SetPersistentXmlProp(std::string prop,double value) { 199 SetVolatileXmlProp(prop,value); 200 SetVolatileXmlProp(prop,value,pimpl_->file_node); 201 } 202 203 template <> 204 void Widget::SetPersistentXmlProp(std::string prop,float value) 205 { 206 SetVolatileXmlProp(prop,value); 207 SetVolatileXmlProp(prop,value,pimpl_->file_node); 208 } 209 210 template <> 211 void Widget::SetPersistentXmlProp(std::string prop,int32_t value) 212 { 213 SetVolatileXmlProp(prop,value); 214 SetVolatileXmlProp(prop,value,pimpl_->file_node); 215 } 216 217 template <> 218 void Widget::SetPersistentXmlProp(std::string prop,uint16_t value) 219 { 220 SetVolatileXmlProp(prop,value); 221 SetVolatileXmlProp(prop,value,pimpl_->file_node); 222 } 223 224 template <> 225 void Widget::SetPersistentXmlProp(std::string prop,bool value) 226 { 227 SetVolatileXmlProp(prop,value); 228 SetVolatileXmlProp(prop,value,pimpl_->file_node); 229 } 230 231 void Widget::SendXml(void) 232 { 233 pimpl_->SendXml(); 234 } 235 236 void Widget::setEnabled(bool status) 237 { 238 pimpl_->setEnabled(status); 239 } 240 241 bool Widget::isEnabled(void) const 242 { 243 return pimpl_->isenabled; 244 245 } 28 Widget::Widget(const Widget *parent, string name, string type) 29 : Object(parent, name, type) { 30 pimpl_ = new Widget_impl(this, parent, name, type); 31 } 32 33 Widget::~Widget() { delete pimpl_; } 34 35 template <> bool Widget::GetPersistentXmlProp(std::string prop, double &value) { 36 xmlChar *result = NULL; 37 result = xmlGetProp(pimpl_->file_node, (xmlChar *)prop.c_str()); 38 39 if (result != NULL) { 40 value = xmlXPathCastStringToNumber(result); 41 xmlFree(result); 42 return true; 43 } else { 44 return false; 45 } 46 } 47 48 template <> bool Widget::GetPersistentXmlProp(std::string prop, float &value) { 49 double tmp; 50 if (GetPersistentXmlProp<double>(prop, tmp)) { 51 value = tmp; 52 return true; 53 } else { 54 return false; 55 } 56 } 57 58 template <> bool Widget::GetPersistentXmlProp(std::string prop, bool &value) { 59 double tmp; 60 if (GetPersistentXmlProp<double>(prop, tmp)) { 61 value = tmp; 62 return true; 63 } else { 64 return false; 65 } 66 } 67 68 template <> 69 bool Widget::GetPersistentXmlProp(std::string prop, int32_t &value) { 70 double tmp; 71 if (GetPersistentXmlProp<double>(prop, tmp)) { 72 value = tmp; 73 return true; 74 } else { 75 return false; 76 } 77 } 78 79 template <> 80 bool Widget::GetPersistentXmlProp(std::string prop, uint16_t &value) { 81 double tmp; 82 if (GetPersistentXmlProp<double>(prop, tmp)) { 83 value = tmp; 84 return true; 85 } else { 86 return false; 87 } 88 } 89 90 template <> 91 void Widget::SetVolatileXmlProp(string prop, string value, xmlNodePtr node) { 92 if (node == NULL) 93 node = pimpl_->send_node; 94 xmlSetProp(node, (xmlChar *)prop.c_str(), (xmlChar *)value.c_str()); 95 } 96 97 template <> 98 void Widget::SetVolatileXmlProp(string prop, char *value, xmlNodePtr node) { 99 if (node == NULL) 100 node = pimpl_->send_node; 101 xmlSetProp(node, (xmlChar *)prop.c_str(), (xmlChar *)value); 102 } 103 104 template <> 105 void Widget::SetVolatileXmlProp(string prop, double value, xmlNodePtr node) { 106 xmlChar *xmlChar_value = xmlXPathCastNumberToString(value); 107 108 if (node == NULL) 109 node = pimpl_->send_node; 110 xmlSetProp(node, (xmlChar *)prop.c_str(), xmlChar_value); 111 xmlFree(xmlChar_value); 112 } 113 114 template <> 115 void Widget::SetVolatileXmlProp(string prop, float value, xmlNodePtr node) { 116 SetVolatileXmlProp<double>(prop, value, node); 117 } 118 119 template <> 120 void Widget::SetVolatileXmlProp(string prop, int32_t value, xmlNodePtr node) { 121 SetVolatileXmlProp<double>(prop, value, node); 122 } 123 124 template <> 125 void Widget::SetVolatileXmlProp(string prop, uint32_t value, xmlNodePtr node) { 126 SetVolatileXmlProp<double>(prop, value, node); 127 } 128 129 template <> 130 void Widget::SetVolatileXmlProp(string prop, int16_t value, xmlNodePtr node) { 131 SetVolatileXmlProp<double>(prop, value, node); 132 } 133 134 template <> 135 void Widget::SetVolatileXmlProp(string prop, uint16_t value, xmlNodePtr node) { 136 SetVolatileXmlProp<double>(prop, value, node); 137 } 138 139 template <> 140 void Widget::SetVolatileXmlProp(string prop, int8_t value, xmlNodePtr node) { 141 SetVolatileXmlProp<double>(prop, value, node); 142 } 143 144 template <> 145 void Widget::SetVolatileXmlProp(string prop, uint8_t value, xmlNodePtr node) { 146 SetVolatileXmlProp<double>(prop, value, node); 147 } 148 149 template <> 150 void Widget::SetVolatileXmlProp(string prop, bool value, xmlNodePtr node) { 151 SetVolatileXmlProp<double>(prop, value, node); 152 } 153 154 template <> 155 void Widget::SetVolatileXmlProp(string prop, xmlChar *value, xmlNodePtr node) { 156 if (node == NULL) 157 node = pimpl_->send_node; 158 xmlSetProp(node, (xmlChar *)prop.c_str(), value); 159 } 160 161 template <> 162 void Widget::SetVolatileXmlProp(string prop, DataType const &dataType, 163 xmlNodePtr node) { 164 if (node == NULL) 165 node = pimpl_->send_node; 166 xmlSetProp(node, (xmlChar *)prop.c_str(), 167 (xmlChar *)dataType.GetDescription().c_str()); 168 /* 169 switch(dataType) 170 { 171 case io_data::Float: 172 xmlSetProp(node,(xmlChar*)prop.c_str(),(xmlChar*)"float"); 173 break; 174 case io_data::Int8_t: 175 xmlSetProp(node,(xmlChar*)prop.c_str(),(xmlChar*)"int8_t"); 176 break; 177 case io_data::Int16_t: 178 xmlSetProp(node,(xmlChar*)prop.c_str(),(xmlChar*)"int16_t"); 179 break; 180 } 181 */ 182 } 183 184 template <> void Widget::SetPersistentXmlProp(std::string prop, double value) { 185 SetVolatileXmlProp(prop, value); 186 SetVolatileXmlProp(prop, value, pimpl_->file_node); 187 } 188 189 template <> void Widget::SetPersistentXmlProp(std::string prop, float value) { 190 SetVolatileXmlProp(prop, value); 191 SetVolatileXmlProp(prop, value, pimpl_->file_node); 192 } 193 194 template <> void Widget::SetPersistentXmlProp(std::string prop, int32_t value) { 195 SetVolatileXmlProp(prop, value); 196 SetVolatileXmlProp(prop, value, pimpl_->file_node); 197 } 198 199 template <> 200 void Widget::SetPersistentXmlProp(std::string prop, uint16_t value) { 201 SetVolatileXmlProp(prop, value); 202 SetVolatileXmlProp(prop, value, pimpl_->file_node); 203 } 204 205 template <> void Widget::SetPersistentXmlProp(std::string prop, bool value) { 206 SetVolatileXmlProp(prop, value); 207 SetVolatileXmlProp(prop, value, pimpl_->file_node); 208 } 209 210 void Widget::SendXml(void) { pimpl_->SendXml(); } 211 212 void Widget::setEnabled(bool status) { pimpl_->setEnabled(status); } 213 214 bool Widget::isEnabled(void) const { return pimpl_->isenabled; } 246 215 247 216 } // end namespace gui
Note:
See TracChangeset
for help on using the changeset viewer.