default:
throw Exception::BadType(ValueBase::type_local_name(value.get_type()));
}
-
- DCAST_HACK_ENABLE();
}
LinkableValueNode*
int precision((*precision_)(t).get(int()));
int zero_pad((*zero_pad_)(t).get(bool()));
+ if(precision<0) precision=0;
switch (get_type())
{
case ValueBase::TYPE_STRING:
return strprintf(strprintf("%%%s%d.%df",
zero_pad ? "0" : "",
width,
- precision).c_str(), angle);
+ precision).c_str(), angle)+"°";
default:
break;
}
return
type==ValueBase::TYPE_STRING;
}
+
+LinkableValueNode::Vocab
+ValueNode_AngleString::get_param_vocab()const
+{
+ LinkableValueNode::Vocab ret;
+
+ ret.push_back(ParamDesc(ValueBase(),"angle")
+ .set_local_name(_("Angle"))
+ .set_description(_("Value to convert to string"))
+ );
+
+ ret.push_back(ParamDesc(ValueBase(),"width")
+ .set_local_name(_("Width"))
+ .set_description(_("Width of the string"))
+ );
+
+ ret.push_back(ParamDesc(ValueBase(),"precision")
+ .set_local_name(_("Precision"))
+ .set_description(_("Number of decimal places"))
+ );
+
+ ret.push_back(ParamDesc(ValueBase(),"zero_pad")
+ .set_local_name(_("Zero Padded"))
+ .set_description(_("When checked, the string is left filled with zeros to match the width"))
+ );
+
+ return ret;
+}