Go to the documentation of this file.
10 #include "../S_STRING"
28 virtual
void*
cast(const std::
string& a_class)
const {
29 if(
void* p = cmp_cast<field>(
this,a_class)) {
return p;}
32 virtual const std::string&
s_cls()
const = 0;
36 virtual bool dump(std::ostream&) = 0;
37 virtual bool s_value(std::string&)
const = 0;
38 virtual bool s2value(
const std::string&) = 0;
42 mem::increment(s_class().c_str());
48 mem::decrement(s_class().c_str());
54 mem::increment(s_class().c_str());
68 #define TOOLS_FIELD_DESC_NODE_CLASS(a__class) \
69 static const std::string s_node_class(#a__class);
71 #define TOOLS_ARG_FIELD_DESC(a__field) \
72 new tools::sg::field_desc(s_node_class+"."+#a__field,this->a__field.s_cls(),(char*)((tools::sg::field*)&(this->a__field))-(char*)((tools::sg::node*)this),true)
74 #define TOOLS_ARG_FIELD_DESC_NOT_EDITABLE(a__field) \
75 new tools::sg::field_desc(s_node_class+"."+#a__field,this->a__field.s_cls(),(char*)((tools::sg::field*)&(this->a__field))-(char*)((tools::sg::node*)this),false)
77 #define TOOLS_ARG_FIELD_DESC_ENUMS_BEG(a__field,a__num) \
78 new tools::sg::field_desc_enums(s_node_class+"."+#a__field,this->a__field.s_cls(),(char*)((tools::sg::field*)&(this->a__field))-(char*)((tools::sg::node*)this),true,a__num,
79 #define TOOLS_ARG_FIELD_DESC_ENUMS_END )
81 #define TOOLS_ARG_FIELD_DESC_NOT_EDITABLE_ENUMS_BEG(a__field,a__num) \
82 new tools::sg::field_desc_enums(s_node_class+"."+#a__field,this->a__field.s_cls(),(char*)((tools::sg::field*)&(this->a__field))-(char*)((tools::sg::node*)this),false,a__num,
83 #define TOOLS_ARG_FIELD_DESC_ENUMS_END )
85 #define TOOLS_ARG_ENUM(a__value) #a__value,a__value
87 #define TOOLS_ARG_FIELD_DESC_OPTS_BEG(a__field,a__num) \
88 new tools::sg::field_desc_opts(s_node_class+"."+#a__field,this->a__field.s_cls(),(char*)((tools::sg::field*)&(this->a__field))-(char*)((tools::sg::node*)this),true,a__num,
89 #define TOOLS_ARG_FIELD_DESC_OPTS_END )
#define TOOLS_SCLASS(a_name)