X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fvalue.cpp;h=e5ef475ee77410e27dac984428f63faaa2c6f6e6;hb=4ba22fb51d97f1ecce04dcc5e40569a4354c1bae;hp=91fa661da38de81b7c05f0bfa405b325a5f971fa;hpb=a8222ac07c79b43f492d5ca5177179d94737e7ef;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/value.cpp b/synfig-core/trunk/src/synfig/value.cpp index 91fa661..e5ef475 100644 --- a/synfig-core/trunk/src/synfig/value.cpp +++ b/synfig-core/trunk/src/synfig/value.cpp @@ -6,7 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley -** Copyright (c) 2007 Chris Moore +** Copyright (c) 2007, 2008 Chris Moore ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as @@ -96,6 +96,40 @@ ValueBase::get(const char*)const return get(String()).c_str(); } +#ifdef _DEBUG +String +ValueBase::get_string() const +{ + switch(type) + { + case TYPE_NIL: return "Nil"; + case TYPE_BOOL: return strprintf("Bool (%s)", get(bool()) ? "true" : "false"); + case TYPE_INTEGER: return strprintf("Integer (%s)", get(int())); + case TYPE_ANGLE: return strprintf("Angle (%.2f)", Angle::deg(get(Angle())).get()); + + // All types after this point are larger than 32 bits + + case TYPE_TIME: return strprintf("Time (%s)", get(Time()).get_string().c_str()); + case TYPE_REAL: return strprintf("Real (%f)", get(Real())); + + // All types after this point are larger than 64 bits + + case TYPE_VECTOR: return strprintf("Vector (%f, %f)", get(Vector())[0], get(Vector())[1]); + case TYPE_COLOR: return strprintf("Color (%s)", get(Color()).get_string().c_str()); + case TYPE_SEGMENT: return strprintf("Segment ((%f, %f) to (%f, %f))", get(Segment()).p1[0], get(Segment()).p1[1], get(Segment()).p2[0], get(Segment()).p2[1]); + case TYPE_BLINEPOINT: return strprintf("BLinePoint (%s)", get(BLinePoint()).get_vertex()[0], get(BLinePoint()).get_vertex()[1]); + + // All types after this point require construction/destruction + + case TYPE_LIST: return strprintf("List (%d elements)", get(list_type()).size()); + case TYPE_CANVAS: return strprintf("Canvas (%s)", get(etl::loose_handle())->get_id().c_str()); + case TYPE_STRING: return strprintf("String (%s)", get(String()).c_str()); + case TYPE_GRADIENT: return strprintf("Gradient (%d cpoints)", get(Gradient()).size()); + default: return "Invalid type"; + } +} +#endif // _DEBUG + void ValueBase::set(Canvas* x) {