]> git.mxchange.org Git - flightgear.git/blobdiff - src/GUI/dialog.cxx
allow to not only set a general widget <color>, but also specific element
[flightgear.git] / src / GUI / dialog.cxx
index 412da131233be303a8179d6078cadc21ae3be332..b248fc9363f926605cfc1cb488fdaa3e0059609e 100644 (file)
@@ -711,6 +711,7 @@ FGDialog::makeObject (SGPropertyNode * props, int parentWidth, int parentHeight)
 void
 FGDialog::setupObject (puObject * object, SGPropertyNode * props)
 {
+    string type = props->getName();
     object->setLabelPlace(PUPLACE_CENTERED_RIGHT);
 
     if (props->hasValue("legend"))
@@ -766,6 +767,10 @@ FGDialog::setupObject (puObject * object, SGPropertyNode * props)
             info->bindings.push_back(new FGBinding(binding));
         }
         object->setCallback(action_callback);
+
+        if (type == "input" && props->getBoolValue("live"))
+            object->setDownCallback(action_callback);
+
         object->setUserData(info);
         _info.push_back(info);
     }
@@ -836,6 +841,8 @@ FGDialog::setColor(puObject * object, SGPropertyNode * props, int which)
         if ((pucol[i].mask == LABEL) && !c->isValid())
             dirty |= c->merge(_gui->getColor("label"));
 
+        dirty |= c->merge(props->getNode(pucol[i].cname));
+
         if (c->isValid() && dirty)
             object->setColor(pucol[i].id, c->red(), c->green(), c->blue(), c->alpha());
     }