- backport submissions for plib 1.8.5:
* set slider size correctly
* remove slider/arrow when all entries fit into the view
* don't allow to scroll off the list
Unfortunately, there's no simple way to distinguish them. plib has no
user defined widget classes, and getTypeString() -- which could be used
for that -- isn't virtual. Sigh. I'll discuss the problem on the plib list.
For now I can only offer an ugly workaround. (Don't look closely!)
from plib's file-picker, where it made some sense to keep the current path as
string, and to chop off elements when leaving a dir, and adding them when
entering. But it doesn't make the least sense in SGPropertyNode space, where
we already have everything to move in a tree.
- add R & W flags for TRACE_READ and TRACE_WRITE. Remember: lower case letters:
disabled (rw ... reading/writing), upper case letters: enabled (RWAUT)
- remove some verbosity & further cleanup ... to make further work easier :-)
"Add Air to Air TACAN and User-User refuelling over the Multiplayer Network.
With this change, your TACAN instrument can be tuned to the channel of a
Multiplayer ac. It also activates fuel flow between User and User aircraft
when they are less than 50 ft apart. To participate in multiplayer as a
tanker, all you require to do is to use the callsign MOBIL* (where * is some
number) on the net. Only MOBIL1, MOBIL2 and MOBIL3 have been assigned TACAN
channels, but any MOBIL callsign will be able to give fuel."
- PropertyObject: remove additional "values" member again
- don't create entry lists for <list>, <select>, and <combo> at dialog
creation and delete them on dialog close, but let a separate class
fgValueList handle this. The three widgets are now subclassed and the
derived widget lets fgValueList manage the lists
- make <select> consistent with <list>. This breaks backwards
compatibility, but not a single dialog in fgfs uses it and did so
since ... forever. (Shoot me!)
Rationale: now that dialogs are a bit more dynamic than they used to be
(thanks to embedded Nasal), we have to delete and recreate entry lists
during dialog use. Deleting only at dialog closing doesn't cut it anymore.
Especially list widgets that are updated several times per second would
use up a lot of memory otherwise. The route-manager doesn't update that
often, but it did already leak. One TODO less. :-)
"Preparations for an upgrade to Air-to-Air Refuelling to allow more than one
tanker in the environment at a time. This will only work with YASim models.
JSBSim models are unaffected by this change."
The ufo sets this to a very low value, "serious" aircraft (which don't want this
unrealistic automatism at all) set it to a very high value, and those that don't
care ... don't need to care.
signals, this is meant for attaching listeners. The ufo will use that to
hide/reveal the status line in screenshots. The following signal properties
are now available:
/sim/signals/exit ... set to 1 right before quitting
/sim/signals/reinit ... set to 1 on re-init (Shift-Esc)
/sim/signals/screenshot ... set to 1 before and to 0 after screenshot
/sim/signals/click ... set to 1 after mouse clicks at terrain, signalling
that the geo coords in /sim/input/click/ were updated
I've got some updates for the soaring scenario that will make for a more
realistic (and fun) experience. They are:
1) A cap cloud, which will sit atop each thermal
2) A thermal scenario with wide coverage around KSFO, and using cap clouds
3) A one-line change to AIThermal.cxx to position cap cloud properly
4) Schweizer 2-33 set file change to match cloud coverage with thermal
heights.
files:
1) data/Models/Geometry/thermalcap.ac
2) data/Models/Geometry/thermalcap.xml
3) data/Models/Geometry/thermal_cap.rgb
4) data/AI/thermal_demo.xml
5) data/Aircraft/sgs233/sgs233-set.xml
6) source/src/AIModel/AIThermal.cxx
*** or, if you prefer diffs ***
7) aimodel.diff
only used by the <list> widget. It allows to "dialog-update" the list,
which rescans the <value> children and redraws the list widget with new
contents. The old contents are only freed at dialog close, which should
eventually get changed.
two almost identical functions for these methods. It only forces to repeat
the redundancy for every small change to either.
- abstract out generation and destruction of plib string arrays
- abstract out generation of lists from <value> children
used in dialog.cxx to allow XML dialogs access to their own prop tree via
Nasal's cmdarg(). That way dialogs can generate dynamic content, such as
list entries.
- only call globals->set_initial_waypoints() if the waypoints list address
has actually changed, that is: if it has just been initialized
- remove trailing spaces
- fix indentation
but got changed so that Nasal listeners wouldn't be triggered needlessly.
Doesn't make sense, though, as Nasal will never be available before the
video size is set, and it prevents the window interface from setting the
startup size.)