From: ehofman Date: Tue, 13 Jan 2004 18:28:46 +0000 (+0000) Subject: Add support for an offset for number-value typed text chunks X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=8e5a884428f713257a1aea1ebce2bbb65b6cd437;p=flightgear.git Add support for an offset for number-value typed text chunks --- diff --git a/src/Cockpit/panel.cxx b/src/Cockpit/panel.cxx index 822c2ba26..de9a78778 100644 --- a/src/Cockpit/panel.cxx +++ b/src/Cockpit/panel.cxx @@ -1092,8 +1092,8 @@ FGTextLayer::Chunk::Chunk (const string &text, const string &fmt) } FGTextLayer::Chunk::Chunk (ChunkType type, const SGPropertyNode * node, - const string &fmt, float mult) - : _type(type), _fmt(fmt), _mult(mult) + const string &fmt, float mult, float offs) + : _type(type), _fmt(fmt), _mult(mult), _offs(offs) { if (_fmt.empty()) { if (type == TEXT_VALUE) @@ -1117,7 +1117,7 @@ FGTextLayer::Chunk::getValue () const sprintf(_buf, _fmt.c_str(), _node->getStringValue()); break; case DOUBLE_VALUE: - sprintf(_buf, _fmt.c_str(), _node->getFloatValue() * _mult); + sprintf(_buf, _fmt.c_str(), _offs + _node->getFloatValue() * _mult); break; } return _buf; diff --git a/src/Cockpit/panel.hxx b/src/Cockpit/panel.hxx index 624ccfc16..01ccc469d 100644 --- a/src/Cockpit/panel.hxx +++ b/src/Cockpit/panel.hxx @@ -492,7 +492,7 @@ public: public: Chunk (const string &text, const string &fmt = "%s"); Chunk (ChunkType type, const SGPropertyNode * node, - const string &fmt = "", float mult = 1.0); + const string &fmt = "", float mult = 1.0, float offs = 0.0); const char * getValue () const; private: @@ -501,6 +501,7 @@ public: const SGPropertyNode * _node; string _fmt; float _mult; + float _offs; mutable char _buf[1024]; }; diff --git a/src/Cockpit/panel_io.cxx b/src/Cockpit/panel_io.cxx index e24aafc62..55dcb52ac 100644 --- a/src/Cockpit/panel_io.cxx +++ b/src/Cockpit/panel_io.cxx @@ -365,9 +365,10 @@ readTextChunk (const SGPropertyNode * node) else if (type == "number-value") { string propName = node->getStringValue("property"); float scale = node->getFloatValue("scale", 1.0); + float offset = node->getFloatValue("offset", 0.0); SGPropertyNode * target = fgGetNode(propName.c_str(), true); chunk = new FGTextLayer::Chunk(FGTextLayer::DOUBLE_VALUE, target, - format, scale); + format, scale, offset); } // Unknown type.