Changeset 15 in flair-src for trunk/lib/FlairCore/src/Widget.cpp


Ignore:
Timestamp:
04/08/16 15:40:57 (8 years ago)
Author:
Bayard Gildas
Message:

sources reformatted with flair-format-dir script

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/FlairCore/src/Widget.cpp

    r2 r15  
    2121using std::string;
    2222
    23 namespace flair
    24 {
    25 namespace gui
    26 {
     23namespace flair {
     24namespace gui {
    2725
    2826using namespace core;
    2927
    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 }
     28Widget::Widget(const Widget *parent, string name, string type)
     29    : Object(parent, name, type) {
     30  pimpl_ = new Widget_impl(this, parent, name, type);
     31}
     32
     33Widget::~Widget() { delete pimpl_; }
     34
     35template <> 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
     48template <> 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
     58template <> 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
     68template <>
     69bool 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
     79template <>
     80bool 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
     90template <>
     91void 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
     97template <>
     98void 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
     104template <>
     105void 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
     114template <>
     115void Widget::SetVolatileXmlProp(string prop, float value, xmlNodePtr node) {
     116  SetVolatileXmlProp<double>(prop, value, node);
     117}
     118
     119template <>
     120void Widget::SetVolatileXmlProp(string prop, int32_t value, xmlNodePtr node) {
     121  SetVolatileXmlProp<double>(prop, value, node);
     122}
     123
     124template <>
     125void Widget::SetVolatileXmlProp(string prop, uint32_t value, xmlNodePtr node) {
     126  SetVolatileXmlProp<double>(prop, value, node);
     127}
     128
     129template <>
     130void Widget::SetVolatileXmlProp(string prop, int16_t value, xmlNodePtr node) {
     131  SetVolatileXmlProp<double>(prop, value, node);
     132}
     133
     134template <>
     135void Widget::SetVolatileXmlProp(string prop, uint16_t value, xmlNodePtr node) {
     136  SetVolatileXmlProp<double>(prop, value, node);
     137}
     138
     139template <>
     140void Widget::SetVolatileXmlProp(string prop, int8_t value, xmlNodePtr node) {
     141  SetVolatileXmlProp<double>(prop, value, node);
     142}
     143
     144template <>
     145void Widget::SetVolatileXmlProp(string prop, uint8_t value, xmlNodePtr node) {
     146  SetVolatileXmlProp<double>(prop, value, node);
     147}
     148
     149template <>
     150void Widget::SetVolatileXmlProp(string prop, bool value, xmlNodePtr node) {
     151  SetVolatileXmlProp<double>(prop, value, node);
     152}
     153
     154template <>
     155void 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
     161template <>
     162void 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
     184template <> void Widget::SetPersistentXmlProp(std::string prop, double value) {
     185  SetVolatileXmlProp(prop, value);
     186  SetVolatileXmlProp(prop, value, pimpl_->file_node);
     187}
     188
     189template <> void Widget::SetPersistentXmlProp(std::string prop, float value) {
     190  SetVolatileXmlProp(prop, value);
     191  SetVolatileXmlProp(prop, value, pimpl_->file_node);
     192}
     193
     194template <> void Widget::SetPersistentXmlProp(std::string prop, int32_t value) {
     195  SetVolatileXmlProp(prop, value);
     196  SetVolatileXmlProp(prop, value, pimpl_->file_node);
     197}
     198
     199template <>
     200void Widget::SetPersistentXmlProp(std::string prop, uint16_t value) {
     201  SetVolatileXmlProp(prop, value);
     202  SetVolatileXmlProp(prop, value, pimpl_->file_node);
     203}
     204
     205template <> void Widget::SetPersistentXmlProp(std::string prop, bool value) {
     206  SetVolatileXmlProp(prop, value);
     207  SetVolatileXmlProp(prop, value, pimpl_->file_node);
     208}
     209
     210void Widget::SendXml(void) { pimpl_->SendXml(); }
     211
     212void Widget::setEnabled(bool status) { pimpl_->setEnabled(status); }
     213
     214bool Widget::isEnabled(void) const { return pimpl_->isenabled; }
    246215
    247216} // end namespace gui
Note: See TracChangeset for help on using the changeset viewer.