replaced SGValue with SGPropertyNode throughout.
This commit is contained in:
parent
1aa5235f17
commit
72c7dc57fd
4 changed files with 56 additions and 55 deletions
src/Cockpit
|
@ -41,7 +41,7 @@ class fg_Cockpit {
|
|||
private:
|
||||
int Code;
|
||||
int cockpitStatus;
|
||||
SGValue * hud_status;
|
||||
SGPropertyNode * hud_status;
|
||||
|
||||
public:
|
||||
fg_Cockpit () : Code(1), cockpitStatus(0) {};
|
||||
|
|
|
@ -404,10 +404,10 @@ FGPanelAction::~FGPanelAction ()
|
|||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
FGAdjustAction::FGAdjustAction (int button, int x, int y, int w, int h,
|
||||
SGValue * value, float increment,
|
||||
SGPropertyNode * node, float increment,
|
||||
float min, float max, bool wrap)
|
||||
: FGPanelAction(button, x, y, w, h),
|
||||
_value(value), _increment(increment), _min(min), _max(max), _wrap(wrap)
|
||||
_node(node), _increment(increment), _min(min), _max(max), _wrap(wrap)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -418,14 +418,14 @@ FGAdjustAction::~FGAdjustAction ()
|
|||
void
|
||||
FGAdjustAction::doAction ()
|
||||
{
|
||||
float val = _value->getFloatValue();
|
||||
float val = _node->getFloatValue();
|
||||
val += _increment;
|
||||
if (val < _min) {
|
||||
val = (_wrap ? _max : _min);
|
||||
} else if (val > _max) {
|
||||
val = (_wrap ? _min : _max);
|
||||
}
|
||||
_value->setDoubleValue(val);
|
||||
_node->setDoubleValue(val);
|
||||
}
|
||||
|
||||
|
||||
|
@ -435,8 +435,8 @@ FGAdjustAction::doAction ()
|
|||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
FGSwapAction::FGSwapAction (int button, int x, int y, int w, int h,
|
||||
SGValue * value1, SGValue * value2)
|
||||
: FGPanelAction(button, x, y, w, h), _value1(value1), _value2(value2)
|
||||
SGPropertyNode * node1, SGPropertyNode * node2)
|
||||
: FGPanelAction(button, x, y, w, h), _node1(node1), _node2(node2)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -447,9 +447,9 @@ FGSwapAction::~FGSwapAction ()
|
|||
void
|
||||
FGSwapAction::doAction ()
|
||||
{
|
||||
float val = _value1->getFloatValue();
|
||||
_value1->setDoubleValue(_value2->getFloatValue());
|
||||
_value2->setDoubleValue(val);
|
||||
float val = _node1->getFloatValue();
|
||||
_node1->setDoubleValue(_node2->getFloatValue());
|
||||
_node2->setDoubleValue(val);
|
||||
}
|
||||
|
||||
|
||||
|
@ -459,8 +459,8 @@ FGSwapAction::doAction ()
|
|||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
FGToggleAction::FGToggleAction (int button, int x, int y, int w, int h,
|
||||
SGValue * value)
|
||||
: FGPanelAction(button, x, y, w, h), _value(value)
|
||||
SGPropertyNode * node)
|
||||
: FGPanelAction(button, x, y, w, h), _node(node)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -471,7 +471,7 @@ FGToggleAction::~FGToggleAction ()
|
|||
void
|
||||
FGToggleAction::doAction ()
|
||||
{
|
||||
_value->setBoolValue(!(_value->getBoolValue()));
|
||||
_node->setBoolValue(!(_node->getBoolValue()));
|
||||
}
|
||||
|
||||
|
||||
|
@ -664,7 +664,7 @@ FGInstrumentLayer::transform () const
|
|||
transformation_list::const_iterator last = _transformations.end();
|
||||
while (it != last) {
|
||||
FGPanelTransformation *t = *it;
|
||||
float val = (t->value == 0 ? 0.0 : t->value->getFloatValue());
|
||||
float val = (t->node == 0 ? 0.0 : t->node->getFloatValue());
|
||||
if (val < t->min) {
|
||||
val = t->min;
|
||||
} else if (val > t->max) {
|
||||
|
@ -841,7 +841,7 @@ FGTextLayer::Chunk::Chunk (const string &text, const string &fmt)
|
|||
_fmt = "%s";
|
||||
}
|
||||
|
||||
FGTextLayer::Chunk::Chunk (ChunkType type, const SGValue * value,
|
||||
FGTextLayer::Chunk::Chunk (ChunkType type, const SGPropertyNode * node,
|
||||
const string &fmt, float mult)
|
||||
: _type(type), _fmt(fmt), _mult(mult)
|
||||
{
|
||||
|
@ -851,7 +851,7 @@ FGTextLayer::Chunk::Chunk (ChunkType type, const SGValue * value,
|
|||
else
|
||||
_fmt = "%.2f";
|
||||
}
|
||||
_value = value;
|
||||
_node = node;
|
||||
}
|
||||
|
||||
const char *
|
||||
|
@ -862,10 +862,10 @@ FGTextLayer::Chunk::getValue () const
|
|||
sprintf(_buf, _fmt.c_str(), _text.c_str());
|
||||
return _buf;
|
||||
case TEXT_VALUE:
|
||||
sprintf(_buf, _fmt.c_str(), _value->getStringValue().c_str());
|
||||
sprintf(_buf, _fmt.c_str(), _node->getStringValue().c_str());
|
||||
break;
|
||||
case DOUBLE_VALUE:
|
||||
sprintf(_buf, _fmt.c_str(), _value->getFloatValue() * _mult);
|
||||
sprintf(_buf, _fmt.c_str(), _node->getFloatValue() * _mult);
|
||||
break;
|
||||
}
|
||||
return _buf;
|
||||
|
@ -877,10 +877,10 @@ FGTextLayer::Chunk::getValue () const
|
|||
// Implementation of FGSwitchLayer.
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
FGSwitchLayer::FGSwitchLayer (int w, int h, const SGValue * value,
|
||||
FGSwitchLayer::FGSwitchLayer (int w, int h, const SGPropertyNode * node,
|
||||
FGInstrumentLayer * layer1,
|
||||
FGInstrumentLayer * layer2)
|
||||
: FGInstrumentLayer(w, h), _value(value), _layer1(layer1), _layer2(layer2)
|
||||
: FGInstrumentLayer(w, h), _node(node), _layer1(layer1), _layer2(layer2)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -894,7 +894,7 @@ void
|
|||
FGSwitchLayer::draw ()
|
||||
{
|
||||
transform();
|
||||
if (_value->getBoolValue()) {
|
||||
if (_node->getBoolValue()) {
|
||||
_layer1->draw();
|
||||
} else {
|
||||
_layer2->draw();
|
||||
|
|
|
@ -254,13 +254,13 @@ class FGAdjustAction : public FGPanelAction
|
|||
{
|
||||
public:
|
||||
FGAdjustAction (int button, int x, int y, int w, int h,
|
||||
SGValue * value, float increment,
|
||||
SGPropertyNode * node, float increment,
|
||||
float min, float max, bool wrap=false);
|
||||
virtual ~FGAdjustAction ();
|
||||
virtual void doAction ();
|
||||
|
||||
private:
|
||||
SGValue * _value;
|
||||
SGPropertyNode * _node;
|
||||
float _increment;
|
||||
float _min;
|
||||
float _max;
|
||||
|
@ -280,13 +280,13 @@ class FGSwapAction : public FGPanelAction
|
|||
{
|
||||
public:
|
||||
FGSwapAction (int button, int x, int y, int w, int h,
|
||||
SGValue * value1, SGValue * value2);
|
||||
SGPropertyNode * node1, SGPropertyNode * node2);
|
||||
virtual ~FGSwapAction ();
|
||||
virtual void doAction ();
|
||||
|
||||
private:
|
||||
SGValue * _value1;
|
||||
SGValue * _value2;
|
||||
SGPropertyNode * _node1;
|
||||
SGPropertyNode * _node2;
|
||||
};
|
||||
|
||||
|
||||
|
@ -301,12 +301,12 @@ class FGToggleAction : public FGPanelAction
|
|||
{
|
||||
public:
|
||||
FGToggleAction (int button, int x, int y, int w, int h,
|
||||
SGValue * value);
|
||||
SGPropertyNode * node);
|
||||
virtual ~FGToggleAction ();
|
||||
virtual void doAction ();
|
||||
|
||||
private:
|
||||
SGValue * _value;
|
||||
SGPropertyNode * _node;
|
||||
};
|
||||
|
||||
|
||||
|
@ -379,7 +379,7 @@ public:
|
|||
virtual ~FGPanelTransformation ();
|
||||
|
||||
Type type;
|
||||
const SGValue * value;
|
||||
const SGPropertyNode * node;
|
||||
float min;
|
||||
float max;
|
||||
float factor;
|
||||
|
@ -512,14 +512,14 @@ public:
|
|||
class Chunk {
|
||||
public:
|
||||
Chunk (const string &text, const string &fmt = "%s");
|
||||
Chunk (ChunkType type, const SGValue * value,
|
||||
Chunk (ChunkType type, const SGPropertyNode * node,
|
||||
const string &fmt = "", float mult = 1.0);
|
||||
|
||||
const char * getValue () const;
|
||||
private:
|
||||
ChunkType _type;
|
||||
string _text;
|
||||
const SGValue * _value;
|
||||
const SGPropertyNode * _node;
|
||||
string _fmt;
|
||||
float _mult;
|
||||
mutable char _buf[1024];
|
||||
|
@ -561,7 +561,7 @@ class FGSwitchLayer : public FGInstrumentLayer
|
|||
{
|
||||
public:
|
||||
// Transfer pointers!!
|
||||
FGSwitchLayer (int w, int h, const SGValue * value,
|
||||
FGSwitchLayer (int w, int h, const SGPropertyNode * node,
|
||||
FGInstrumentLayer * layer1,
|
||||
FGInstrumentLayer * layer2);
|
||||
virtual ~FGSwitchLayer ();
|
||||
|
@ -569,7 +569,7 @@ public:
|
|||
virtual void draw ();
|
||||
|
||||
private:
|
||||
const SGValue * _value;
|
||||
const SGPropertyNode * _node;
|
||||
FGInstrumentLayer * _layer1, * _layer2;
|
||||
};
|
||||
|
||||
|
|
|
@ -232,8 +232,9 @@ readTexture (const SGPropertyNode * node)
|
|||
* Read an action from the instrument's property list.
|
||||
*
|
||||
* The action will be performed when the user clicks a mouse button
|
||||
* within the specified region of the instrument. Actions always
|
||||
* work by modifying the value of a property (see the SGValue class).
|
||||
* within the specified region of the instrument. Actions always work
|
||||
* by modifying the value of a property (see the SGPropertyNode
|
||||
* class).
|
||||
*
|
||||
* The following action types are defined:
|
||||
*
|
||||
|
@ -276,7 +277,7 @@ readAction (const SGPropertyNode * node, float w_scale, float h_scale)
|
|||
// Adjust a property value
|
||||
if (type == "adjust") {
|
||||
string propName = node->getStringValue("property");
|
||||
SGValue * value = fgGetValue(propName, true);
|
||||
SGPropertyNode * target = fgGetNode(propName, true);
|
||||
float increment = node->getFloatValue("increment", 1.0);
|
||||
float min = node->getFloatValue("min", 0.0);
|
||||
float max = node->getFloatValue("max", 0.0);
|
||||
|
@ -284,7 +285,7 @@ readAction (const SGPropertyNode * node, float w_scale, float h_scale)
|
|||
if (min == max)
|
||||
SG_LOG(SG_COCKPIT, SG_ALERT, "Action " << node->getName()
|
||||
<< " has same min and max value");
|
||||
action = new FGAdjustAction(button, x, y, w, h, value,
|
||||
action = new FGAdjustAction(button, x, y, w, h, target,
|
||||
increment, min, max, wrap);
|
||||
}
|
||||
|
||||
|
@ -292,16 +293,16 @@ readAction (const SGPropertyNode * node, float w_scale, float h_scale)
|
|||
else if (type == "swap") {
|
||||
string propName1 = node->getStringValue("property1");
|
||||
string propName2 = node->getStringValue("property2");
|
||||
SGValue * value1 = fgGetValue(propName1, true);
|
||||
SGValue * value2 = fgGetValue(propName2, true);
|
||||
action = new FGSwapAction(button, x, y, w, h, value1, value2);
|
||||
SGPropertyNode * target1 = fgGetNode(propName1, true);
|
||||
SGPropertyNode * target2 = fgGetNode(propName2, true);
|
||||
action = new FGSwapAction(button, x, y, w, h, target1, target2);
|
||||
}
|
||||
|
||||
// Toggle a boolean value
|
||||
else if (type == "toggle") {
|
||||
string propName = node->getStringValue("property");
|
||||
SGValue * value = fgGetValue(propName, true);
|
||||
action = new FGToggleAction(button, x, y, w, h, value);
|
||||
SGPropertyNode * target = fgGetNode(propName, true);
|
||||
action = new FGToggleAction(button, x, y, w, h, target);
|
||||
}
|
||||
|
||||
// Unrecognized type
|
||||
|
@ -347,7 +348,7 @@ readTransformation (const SGPropertyNode * node, float w_scale, float h_scale)
|
|||
string name = node->getName();
|
||||
string type = node->getStringValue("type");
|
||||
string propName = node->getStringValue("property", "");
|
||||
SGValue * value = 0;
|
||||
SGPropertyNode * target = 0;
|
||||
|
||||
if (type == "") {
|
||||
SG_LOG( SG_COCKPIT, SG_ALERT,
|
||||
|
@ -357,10 +358,10 @@ readTransformation (const SGPropertyNode * node, float w_scale, float h_scale)
|
|||
}
|
||||
|
||||
if (propName != (string)"") {
|
||||
value = fgGetValue(propName, true);
|
||||
target = fgGetNode(propName, true);
|
||||
}
|
||||
|
||||
t->value = value;
|
||||
t->node = target;
|
||||
t->min = node->getFloatValue("min", -9999999);
|
||||
t->max = node->getFloatValue("max", 99999999);
|
||||
t->factor = node->getFloatValue("scale", 1.0);
|
||||
|
@ -464,17 +465,17 @@ readTextChunk (const SGPropertyNode * node)
|
|||
|
||||
// The value of a string property.
|
||||
else if (type == "text-value") {
|
||||
SGValue * value =
|
||||
fgGetValue(node->getStringValue("property"), true);
|
||||
chunk = new FGTextLayer::Chunk(FGTextLayer::TEXT_VALUE, value, format);
|
||||
SGPropertyNode * target =
|
||||
fgGetNode(node->getStringValue("property"), true);
|
||||
chunk = new FGTextLayer::Chunk(FGTextLayer::TEXT_VALUE, target, format);
|
||||
}
|
||||
|
||||
// The value of a float property.
|
||||
else if (type == "number-value") {
|
||||
string propName = node->getStringValue("property");
|
||||
float scale = node->getFloatValue("scale", 1.0);
|
||||
SGValue * value = fgGetValue(propName, true);
|
||||
chunk = new FGTextLayer::Chunk(FGTextLayer::DOUBLE_VALUE, value,
|
||||
SGPropertyNode * target = fgGetNode(propName, true);
|
||||
chunk = new FGTextLayer::Chunk(FGTextLayer::DOUBLE_VALUE, target,
|
||||
format, scale);
|
||||
}
|
||||
|
||||
|
@ -576,13 +577,13 @@ readLayer (const SGPropertyNode * node, float w_scale, float h_scale)
|
|||
|
||||
// A switch instrument layer.
|
||||
else if (type == "switch") {
|
||||
SGValue * value =
|
||||
fgGetValue(node->getStringValue("property"), true);
|
||||
SGPropertyNode * target =
|
||||
fgGetNode(node->getStringValue("property"), true);
|
||||
FGInstrumentLayer * layer1 =
|
||||
readLayer(node->getNode("layer1"), w_scale, h_scale);
|
||||
FGInstrumentLayer * layer2 =
|
||||
readLayer(node->getNode("layer2"), w_scale, h_scale);
|
||||
layer = new FGSwitchLayer(w, h, value, layer1, layer2);
|
||||
layer = new FGSwitchLayer(w, h, target, layer1, layer2);
|
||||
}
|
||||
|
||||
// A built-in instrument layer.
|
||||
|
@ -746,10 +747,10 @@ readPanel (const SGPropertyNode * root)
|
|||
//
|
||||
// Grab the panel's initial offsets, default to 0, 0.
|
||||
//
|
||||
if (!fgHasValue("/sim/panel/x-offset"))
|
||||
if (!fgHasNode("/sim/panel/x-offset"))
|
||||
fgSetInt("/sim/panel/x-offset", root->getIntValue("x-offset", 0));
|
||||
|
||||
if (!fgHasValue("/sim/panel/y-offset"))
|
||||
if (!fgHasNode("/sim/panel/y-offset"))
|
||||
fgSetInt("/sim/panel/y-offset", root->getIntValue("y-offset", 0));
|
||||
|
||||
//
|
||||
|
|
Loading…
Add table
Reference in a new issue