* Melchior FRANZ -- Wednesday 22 December 2004 15:10:
> getString is only made virtual in puList() and AirportList(), but it's
> not virtual in puObject. copy_from_pui(), however, uses the getStringValue()
> method on a puObject, assuming that it will get AirportList()'s. Of course,
> this doesn't work and puValue()'s is used instead. One would have to make
> getStringValue virtual in puObject() or puValue() to make this work.
From the numerous responses I gather that this is an often used and appreciated
feature. If someone more familiar with C++ than I am wants to try an acceptable
fix that avoids the necessity to change plib's pu.h: I attached my version.
On the fgfs side:
- make get{Integer,String}Value return the value of sub-object _list_box (which
contains the index/icao code of the selected list item), instead of the
object's
itself (which is always zero)
On the plib side:
- make puValue::getStringValue() in pu.h:538 and puValue::getIntegerValue()
in pu.h:535 virtual. Weirdly, the former would be enough ... at least until
the next gcc is released.
To make the gui-airport list useful, one would have to add another button
"Scan Scenery" that would search all paths in fg_scenery() for airports and
store this list in $FG_HOME. Further runs would then only show actually
available airports. Unfortunately, the whole $FG_HOME idea was put down.
Sigh.
m.
Index: puList.cxx
===================================================================
RCS file: /var/cvs/FlightGear-0.9/FlightGear/src/GUI/puList.cxx,v
retrieving revision 1.1
diff -u -p -r1.1 puList.cxx
--- puList.cxx 27 Nov 2003 23:41:00 -0000 1.1
+++ puList.cxx 23 Dec 2004 15:02:57 -0000
@@ -77,7 +77,13 @@ puList::newList (char ** contents)
char *
puList::getStringValue ()
{
- return _contents[_list_box->getIntegerValue()];
+ return _contents[getIntegerValue()];
+}
+
+int
+puList::getIntegerValue ()
+{
+ return _list_box->getIntegerValue();
}
void
Index: puList.hxx
===================================================================
RCS file: /var/cvs/FlightGear-0.9/FlightGear/src/GUI/puList.hxx,v
retrieving revision 1.4
diff -u -p -r1.4 puList.hxx
--- puList.hxx 30 Apr 2004 08:44:35 -0000 1.4
+++ puList.hxx 23 Dec 2004 15:02:57 -0000
@@ -25,6 +25,7 @@ class puList : public puGroup
virtual void newList (char ** contents);
// TODO: other string value funcs
virtual char * getStringValue ();
+ virtual int getIntegerValue ();
protected:
virtual void init (int w, int h);
_______________________________________________
Flightgear-devel mailing list
[email protected]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d