X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Fsrc%2Fsynfig%2Fvaluenode_anglestring.cpp;h=8440dea3a92dc8107564cf1adcbae21d820cb7f3;hb=2b2950e88fb6c4bfa36ec91eb86de33c6c27fafe;hp=978b8b8cf11169b0f6c7d8929606cf70650e63cd;hpb=adfc80c126f482d7ea2bac38001a2c4a7c7df88c;p=synfig.git diff --git a/synfig-core/src/synfig/valuenode_anglestring.cpp b/synfig-core/src/synfig/valuenode_anglestring.cpp index 978b8b8..8440dea 100644 --- a/synfig-core/src/synfig/valuenode_anglestring.cpp +++ b/synfig-core/src/synfig/valuenode_anglestring.cpp @@ -54,6 +54,8 @@ using namespace synfig; ValueNode_AngleString::ValueNode_AngleString(const ValueBase &value): LinkableValueNode(value.get_type()) { + Vocab ret(get_children_vocab()); + set_children_vocab(ret); switch(value.get_type()) { case ValueBase::TYPE_STRING: @@ -65,8 +67,6 @@ ValueNode_AngleString::ValueNode_AngleString(const ValueBase &value): default: throw Exception::BadType(ValueBase::type_local_name(value.get_type())); } - - DCAST_HACK_ENABLE(); } LinkableValueNode* @@ -97,13 +97,14 @@ ValueNode_AngleString::operator()(Time t)const 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; } @@ -155,56 +156,37 @@ ValueNode_AngleString::get_link_vfunc(int i)const return 0; } -int -ValueNode_AngleString::link_count()const +bool +ValueNode_AngleString::check_type(ValueBase::Type type) { - return 4; + return + type==ValueBase::TYPE_STRING; } -String -ValueNode_AngleString::link_name(int i)const +LinkableValueNode::Vocab +ValueNode_AngleString::get_children_vocab_vfunc()const { - assert(i>=0 && i=0 && i