1
0
Fork 0
Commit graph

360 commits

Author SHA1 Message Date
andy
09d4176e96 GUI windows are now draggable. This missing feature has annoyed me
for a while, it turned out to be pretty easy to implement.  Also, the
property picker is now non-modal, I presume the modality wasn't an
intentional feature.
2004-05-03 00:40:50 +00:00
ehofman
2a4fd79bb4 Remove the references to fg_os.hxx since the UL_USE_XXX variable is located in the config.h file since the changes for confgure.ac. 2004-04-30 08:44:35 +00:00
andy
7ceb85d454 Changes to get FlightGear (well, the src directory at least) to
configure and compile out-of-the-box on a MinGW target:

Use -lSDL instead of -lglut32 on windows builds when --enable-sdl
is set.

Link against alut.dll in addition to openal32.dll.

Replace BSD bcopy() with ANSI C memmove() in a few places.  This is
simpler than trying to abstract it out as a platform dependency in a
header file; bcopy() has never been standard.

The ENABLE_THREADS handling has changed to be set to 0 when threads
are not in use.  This breaks expressions like #ifdef ENABLE_THREADS.
Replace with a slightly more complicated expression.  It might have
been better to fix the configure.ac script, but I didn't know how and
this whole setting is likely to go away soon anyway.

The MinGW C runtime actually does include snprintf, so only MSVC
builds (and not all WIN32 ones) need _snprintf in JSBSim/FGState.cpp

Building on a platform with no glut at all exposed some spots where
plib/pu.h was being included without a toolkit setting (it defaults to
glut).  Include fg_os.hxx first.

And when still using glut, glut.h has a bizarre dependency on a
_WCHAR_T_DEFINED symbol.  It it's not defined, it tries to redefine
(!!) wchar_t to disasterous effect.
2004-04-30 00:52:11 +00:00
ehofman
e83af4e235 Make sure pu.h doesn't include glut by accident. 2004-04-29 09:36:27 +00:00
ehofman
70cb759ea8 Frederic Bouvier discovered a buffer overflow in the airport select dialog. 2004-04-24 21:25:54 +00:00
andy
897cc6295c Need to include fg_os.hxx, so the PUI initialization picks the right library. 2004-04-05 21:51:16 +00:00
ehofman
e30112a5ca Frederic Bouvier:
this patch is to clear a problem that I sometimes
encounter : FG locks when hitting the cancel button
of a dialog. In fact, an interator is always invalid
when it was used to erase a member of a collection.
The braces are here to help my debugger, and I also
removed a warning about unused variable.
2004-04-05 11:29:12 +00:00
andy
db79413b6e Win32 typos crept in during the patch. Fix from Frederic Bouvier. 2004-04-01 15:14:34 +00:00
curt
a3b6a593d6 Don't include an unnecessary header. 2004-03-31 23:53:51 +00:00
andy
c0b4531d04 Yank out all the glut dependencies and concentrate them in a (easily
reimplementable) Main/fg_os.cxx file.
2004-03-31 21:10:32 +00:00
curt
7f3a870b03 Fix a type mismatch error introduced with the latest changes to
src/Airports/simple.[ch]xx
2004-02-23 11:42:49 +00:00
curt
348d3e26ce Comment out some unused references and left over debugging output. 2004-02-03 19:34:23 +00:00
curt
da5ea10d5d Curt Olson:
Autopilot overhaul.
2004-01-31 19:47:45 +00:00
curt
9c49534907 Attempt #1 to sort out confusion between left / right / parking brake
controls in the cockpit vs. which wheels they apply to.  FlightGear now
sets /controls/gear/brake-left, /controls/gear/brake-right, and
/controls/gear/brake-parking.  It should be up to the FDM to sort out
which wheels under which circumstances are affected by these controls
and ultimately what happens to the physical motion of the aircraft.
2004-01-12 17:39:41 +00:00
andy
0b3159ec0c Add a new command, "dialog-new", allowing external code (e.g. Nasal
scripts) to create dialogs at runtime.  Augment "dialog-close" to take
a name argument, allowing code other than PUI callbacks to close
dialogs.

The changes to the GUI directory to enable this are actually minor,
basically amounting to using SGPropertyNode_ptr reference counting
(the GUI subsystem no longer "controls" the dialog property trees, so
it can't delete them).
2003-12-08 02:05:10 +00:00
ehofman
4a68c2ffb0 Use strndup() replacement code that doesn't cause a segmentation fault. 2003-11-28 20:25:50 +00:00
ehofman
378a4ba0f7 Make room for the terminatig '\0' and prevent a potential buffer overflow. 2003-11-28 17:56:36 +00:00
ehofman
cd0c447b43 Add David Culp's AI model manager code which is derived from David Luff's AI/ATC code. 2003-11-28 15:48:05 +00:00
ehofman
06ce7ae928 IRIX/MipsPro 7.2 doesn't have strndup. Work around it. 2003-11-28 10:25:33 +00:00
david
8b2cfb515b Add a scrolling list widget for selecting airports. 2003-11-27 23:41:00 +00:00
ehofman
e322c70f52 Depreciate NetworkOLK. A big thanks goes to Oliver Delise for implementing it in the first place. 2003-11-13 14:42:47 +00:00
david
81d86fbe27 Started a README. 2003-10-01 21:09:39 +00:00
ehofman
980012e168 Move FGEventMgr and FGSubsystemMgr over to SimGear, add SGEventMgr to FlightGear's globals structre and some small code cleanups 2003-09-24 17:20:55 +00:00
ehofman
a33ad90ed7 Convert fgLIGHT to FGLight and make it FGSubsystem compatible. Let the subsystem manager handle it and let FGLight::update() handle the repositioning of the sun and the moon. 2003-09-20 09:38:32 +00:00
ehofman
6f8aa7b331 Change GLUT_H to FG_GLUT_H to prevent a naming clash with freeglut. 2003-08-21 09:12:12 +00:00
ehofman
5ae096b225 Reorganization of main.cxx 2003-08-17 09:54:41 +00:00
curt
bcb10efa50 Remove several unneeded glut dependencies. Note, this doesn't signal an
immediate end to glut, only that I'm going through and cleaning up (and
taking inventory of the actual glut dependencies in case I want to investigate
SDL.)
2003-08-11 21:50:22 +00:00
curt
383c91b818 Add a missing source file. 2003-06-05 03:43:43 +00:00
ehofman
c8f9fc0ae4 from the C++ FAQ:
TITLE: Using delete [] versus delete

The extra "[]" warns the compiler that there is a whole array of objects here so that P's destructor must be called on each element of the array rather than just on P itself (which would be equivalent to the first element only).
2003-05-22 08:42:38 +00:00
curt
56db994994 Moved src/Model/loader.[ch]xx and src/Model/model.[ch]xx to
simgear/scene/model/
2003-05-09 20:40:59 +00:00
curt
51c04e9e4c - Added "SG" prefix to sound classes that recently moved to SimGear.
- Cleaned up some minor compiler warnings.
- Moved src/Model/placement.[ch]xx over into simgear/scene/model/
2003-05-09 19:39:48 +00:00
curt
2119db35c3 This is step "1" of probably "many" in the process of separating out the
scene management code and organizing it within simgear.  My strategy is
to identify the code I want to move, and break it's direct flightgear
dependencies.  Then it will be free to move over into the simgear package.

- Moved some property specific code into simgear/props/
- Split out the condition code from fgfs/src/Main/fg_props and put it
  in it's own source file in simgear/props/
- Created a scene subdirectory for scenery, model, and material property
  related code.
- Moved location.[ch]xx into simgear/scene/model/
- The location and condition code had dependencies on flightgear's global
  state (all the globals-> stuff, the flightgear property tree, etc.)  SimGear
  code can't depend on it so that data has to be passed as parameters to the
  functions/methods/constructors.
- This need to pass data as function parameters had a dramatic cascading
  effect throughout the FlightGear code.
2003-05-06 23:46:24 +00:00
ehofman
ea24640f96 MSVC6 updates 2003-04-13 21:25:46 +00:00
david
726d97be3c Removed old menubar option. 2003-04-01 15:50:51 +00:00
ehofman
7de4466897 Change some cerr messages into SG_LOG messages 2003-03-31 09:36:49 +00:00
ehofman
7948238156 Declare fgReshape into gui.h 2003-03-30 19:40:43 +00:00
ehofman
4b62426109 Move current_panel to globals 2003-03-30 12:46:08 +00:00
ehofman
37c427558a A first stab at an aircraft selection dialog 2003-03-29 15:04:52 +00:00
curt
f4ccd7dfe2 Remove some compiler warnings. 2003-03-21 20:39:27 +00:00
ehofman
df2ce45ab7 Change cout and cerr in SG_LOG() where appropriate, otherwise comment it out 2003-03-20 10:43:02 +00:00
david
648f1208f8 Patch from Frederic Bouvier:
arrays of insufficient size are allocated in prop_picker.cxx ( size()
don't count the null char ) and strcpy is writing outside the allocated
array. A patch follow.
2003-03-02 16:37:48 +00:00
david
9864453259 GUI style changes suggested by Erik Hofman and Curtis Olson. 2003-02-05 02:17:08 +00:00
curt
23668a2a08 Rephrased some comments to avoid /* in a comment warnings. 2003-02-04 22:28:48 +00:00
curt
b6e4238dfa Clean up a compiler warning. 2003-02-04 22:28:19 +00:00
curt
e8b6077c79 James Turner:
Here's a change to the GUI property picker I did a few weeks back.
It makes the values in the property pick 'live' (and also re-factors
the picker code to use less arrays, this should be obvious from the
diffs). A good demo is to open up the engine node and observe the rpm,
cylinder head temp, oil pressure and so on while playing with the
throttle and airspeed. It's pretty rough (some rounding of digits would
help) but useful for testing (at least I think so). I'm not sure about
the performance implications either, but it seems fine for me.
2003-02-04 22:27:58 +00:00
david
269c83b86a Correct old-reinit_dialog to old-reinit-dialog. 2003-01-27 15:39:41 +00:00
david
c8f775c103 Switch to opaque dialogs and menu (with a heavy heart). 2003-01-26 20:19:15 +00:00
david
980eae6187 Remove old-preset-* commands; replaced with a general, XML presets
dialog.
2003-01-24 02:49:30 +00:00
david
8e659f84fa No longer recursively search $FG_ROOT/gui/dialogs/ for configuration
files; all of them must be at the top level.

Do not attempt to parse a configuration file unless it ends with
".xml".
2003-01-24 02:43:52 +00:00
david
d819c42184 Remove another deprecated command, and fix things up so that dialogs
reload properly on a reinit.
2003-01-21 15:44:21 +00:00
david
87a84efbb0 Added support for reinit(), to reload the configuration files without
having to restart FlightGear.  This should speed up GUI design and
debugging quite a bit.
2003-01-21 02:09:27 +00:00
david
0940afae5a Fixed iteration bug in destructor. 2003-01-21 02:08:56 +00:00
david
fbcfbd9355 Removed need to specify 'type' property at the top level; it's always
a dialog.
2003-01-21 02:08:41 +00:00
david
9291bb510d Rename some methods to be more intuitive, add a close method for the
active dialog, and add lots of documentation.
2003-01-20 16:03:09 +00:00
david
123931834f Fix memory leaks (PUI doesn't make copies of lists, so we have to make
our own copies and keep pointers to them).
2003-01-20 16:02:26 +00:00
david
4dc28f11f4 Add more documentation comments.
Fix memory leaks (PUI doesn't make copies of lists, so we have to make
our own copies and keep pointers to them).

Adjust for new method names in NewGUI.

Move the GUIInfo struct into the cxx file so that it's not part of the
public interface.
2003-01-20 16:01:54 +00:00
david
bbff86ed36 Add new object types "slider" and "dial".
Fix memory leaks (PUI doesn't make copies of lists, so we have to make
our own copies and keep pointers to them).

Adjust for new method names in NewGUI.

Move the GUIInfo struct into the cxx file so that it's not part of the
public interface.
2003-01-20 16:01:16 +00:00
david
62be29c640 Make some allowances for a dialog closing in the middle of a callback.
Add support for combo fields.
2003-01-19 23:04:03 +00:00
david
c1d6741fd5 Go back to the simpler arrangement syntax of a map of vectors. 2003-01-19 23:03:31 +00:00
david
dd4890d952 Add support for a "checkbox" dialog widget (for boolean properties). 2003-01-19 17:21:38 +00:00
david
ed3ae450ce Use a pointer for the bindings vector to try to work around a 2.95
bug.
2003-01-19 17:21:18 +00:00
david
cf5d7499ad Changed return type of fireItem to void. 2003-01-19 15:27:29 +00:00
david
9e143bc615 Use FGGlobals::get_fg_root instead of looking up the environment
variable directly.
2003-01-19 12:54:26 +00:00
david
5d5de3c903 Removed a couple of the deprecated dialogs, and removed the old
predefined bindings for F11 and F12.  Instead, there is now a soft
binding from F11 to the autopilot dialog.
2003-01-18 21:59:25 +00:00
david
64aa833087 Tie the bool property /sim/menubar/visibility to hide and reveal the
menubar.
2003-01-18 21:11:51 +00:00
david
7ae491dc2e Keep track of the visible/hidden state more robustly. 2003-01-18 21:11:15 +00:00
david
b2713841b6 Simplify looking up the GUI subsystem. 2003-01-18 21:10:49 +00:00
david
88e2ffabfe Add in some temporary commands to get at the old, hard-coded dialogs.
Most of these will eventually be replaced with XML-configured dialogs,
and the rest will be turned into proper widgets or global commands.
2003-01-18 16:26:41 +00:00
david
6632b2d8c2 Unbundle dialog-box support from the top-level GUI manager, to
simplify maintenance.
2003-01-18 15:16:34 +00:00
curt
abcd050795 Oops we tweaked the preset_commit command name, let's call it by it's
correct name.
2003-01-17 22:54:09 +00:00
david
9d726c1bd8 Started a new FGMenuBar class to handle a different XML-configurable
menubar.  This one allows regular command bindings, with the
(temporary) condition that every menu item must have a unique text
label.  The new menubar is disabled by default; to enable it,
configure --with-new-menubar.
2003-01-16 18:06:27 +00:00
david
71f08e795d Patches from Erik Hofman for SGI compatibility:
Some more cmall changes to the SimGear header files and removed the
SG_HAVE_NATIVE_SGI_COMPILERS dependancies from FlightGear.

I've added a seperate JSBSim patch for the JSBSim source tree.
2002-12-31 18:26:02 +00:00
david
63672604bf Removed debugging statements accidentally left in. 2002-12-23 17:58:31 +00:00
david
0111183153 Reworked the XML-configurable GUI to use the same binding structure as
the keyboard, joystick, mouse, and 2D panel.  Exposed methods for
applying and updating property values in GUI fields.
2002-12-22 19:52:26 +00:00
curt
43e48070fe - Some refactoring of the configure.ac script.
- Better Mac OS X support (they put glut.h in GLUT/glut.h) :-(
2002-12-10 20:50:48 +00:00
curt
1feedec8d1 - Change the global_tile_mgr to a globals->get_tile_mgr() which is
dynamically created at run time.
- Further clean ups to the FGTileMgr class interface.
2002-12-06 22:29:46 +00:00
curt
953162ea53 Remove cout/endl usage and replace with SG_LOG() 2002-12-02 19:01:59 +00:00
curt
ebc2fbd684 Exposed the fg_commands though the httpd interface.
Added a built in command to preset to what ever values are in /sim/presets/
Twiddling with preset code.
2002-11-30 20:10:16 +00:00
curt
bcf9fa3695 Massaging the FGTileMgr->update() interface towards using FGLocation. 2002-11-30 03:05:34 +00:00
curt
80e8647330 Removed depricated files. 2002-11-18 21:34:07 +00:00
curt
df2356050d Added a "Presets" menu. 2002-11-18 21:31:33 +00:00
curt
35f24baf32 Clean ups to the code that determines initial position based on command
line options or defaults.
2002-11-16 21:34:51 +00:00
curt
52312f2a13 Restructuring some of the initialization code.
The general idea is to help clean up some aspects of the FDM init and be
able to provide startup conditions in a less ambiguous manner.

Previously, things like positions, orientations, and velocites were set on
"the bus".  These had to be read by the FDMs which then were supposed to
initialized themselves to those values and turn write around and start
modifying those values.  It was messy and cumbersome.

Now, all the initial fdm conditions are written to a sub-[property-]tree
under /sim/presets/

The values in /sim/presets/ always stay set to what the user has specified.
The user can change these at his/her liesure, and then request a "reset"
which will reset to the new conditions.  I don't even want to say how this
worked before. :-)

Now, an script, or gui interface can stage a set of initial conditions while
the sim is running (without disrupting it), and then call "reset" to commit
the change.

People who should worry about all this are FDM writters, and a small few
others who care about over all program structure and flow.
2002-11-15 21:13:29 +00:00
david
49a8c070f3 Moved command information into user data. 2002-11-08 16:33:00 +00:00
david
8205c4e030 Separated out GUIWidget class to manage a top-level widget. 2002-11-08 15:24:14 +00:00
david
3e217ba909 Instead of reading $FG_ROOT/gui.xml, recursively read all files under
the $FG_ROOT/gui/ directory; that way, each dialog can have a separate
configuration file, and management should be simpler.
2002-11-08 02:03:56 +00:00
david
4d292daeaa Added button actions so that property fields can be applied or
updated.
2002-11-07 22:59:46 +00:00
david
2de88f278b Started new, XML-configurable GUI subsystem. 2002-11-07 16:27:47 +00:00
david
0de065b0ec Added fgLoadProps to load properties from a path relative to FG_ROOT. 2002-11-06 18:57:31 +00:00
curt
9dcf7dd13f Erik Hofman:
This adds supports for a language specific font, defined in locale.xml
I've also moved the fgInitLocale() routine from main.cxx to fg_init.cxx
to prevent an ungly extern definition in options.cxx.
2002-10-07 15:45:00 +00:00
curt
44fcbbd0af Better internationalization infrastructure. We now supports the "LANG"
environment variable.
2002-10-03 14:39:37 +00:00
curt
8ad519d854 Get rid of some debugging output. 2002-10-01 18:39:49 +00:00
curt
8722af0eb8 Read menu titles indirectly from specified property names so we can support
translations.
2002-10-01 18:38:34 +00:00
curt
f8abc6d848 Fixed: When you select Menu->Autopilot->Set Heading nothing happens. 2002-09-11 16:51:23 +00:00
curt
5598d2735a Read the desired menu font from the property system (or default to
typewriter.txf if it's not specified.)
2002-09-07 14:16:06 +00:00
david
7599f0ec8c Patch from Julian Foad:
When the scroll bar slider is dragged, the list scrolls only far
enough to see all items; only the arrow buttons can scroll it so far
that the last item goes to the top of the view.
     Fix scroll bar proportional size: was wrong when the list was only
a little longer than the visible area.
     Minor fixes such as "delete files[i];" -> "delete[] files[i];"
(where the item being deleted is an array of characters) and removal of
global variables.
     Smooth scrolling when dragging the slider: one item at a time,
rather than one tenth of the list at a time.
     Fix a bug that would have occurred if instantiated with arrows=2.
     Sort properties primarily by name and then by numerical index
order, rather than a simple ASCII string order.  E.g. "js[1]", "js[2]",
"js[10]" rather than "js[1]", "js[10]", "js[2]".
     Avoid crashing if the selected property path does not exist;
display an empty list instead.  This cannot happen when the property
picker is working properly, but did happen due to missing indices prior
to this patch, and could happen if the user is allowed to type a
pathname, as in the http and telnet interfaces.
     Fix truncation of strings to PUSTRING_MAX: was wrong when string
length was exactly 80.
     Fix: move the scroll bar to the top each time a new list is
displayed.  It was left at its previous position, while the top of the
new list was displayed, not corresponding to the slider.
     Use getDisplayName instead of duplicated code: gives a better
decision on whether to display the index, and avoids invalid property
paths being generated which would previously crash find_props().
     Replace unnecessary node lookups by name with direct access: tidier
and more efficient.  E.g. "getValueTypeString
(node->getNode(name.c_str()))" -> "getValueTypeString (child)".
2002-09-07 12:35:06 +00:00
curt
6bcef49afc Erik Hofman:
It turned out that pui required the submenu structure to be declared
backwards, which I didn't notice the first time.
2002-09-05 21:58:24 +00:00
david
d4f92d6aff Removed unused cur_view_fdm variable as suggested by Bernie Bright. 2002-08-31 19:48:28 +00:00
curt
66ab510a3e Norman's fix to make the help system start on Win32.
And fixed up some other non-sensical code in the vicinity which
was generating compiler warnings.
2002-08-29 21:00:22 +00:00
curt
21db1e10b2 More tweaks to the automake/conf configuration scripts. 2002-08-28 03:34:31 +00:00
curt
61cf3a8f6d Erik Hofman:
I cleaned up the XML menu code a fair bit, in preparation to C++-ifying it.
2002-08-25 22:53:38 +00:00
curt
df6989a37a Bernie Bright:
Here is a FGIO class derived from FGSubsystem that replaces the fgIOInit()
and fgIOProcess() functions.  The FGIO::update(double delta) doesn't use the
delta argument yet.  I suspect it could be used as a replacement for the
calculated interval value but I'm not familiar enough with that piece of code
just yet.

I've also added two "command properties" to fg_commands.cxx that select the
next or previous view.  Writing any value to these properties triggers the
corresponding action.  As an example I modified my keyboard.xml:

 <key n="118">
  <name>v</name>
  <desc>Next view</desc>
  <binding>
   <command>property-assign</command>
   <property>/command/view/next</property>
   <value type="bool">true</value>
  </binding>
 </key>

 <key n="86">
  <name>V</name>
  <desc>Prev view</desc>
  <binding>
   <command>property-assign</command>
   <property>/command/view/prev</property>
   <value type="bool">true</value>
  </binding>
 </key>

And of course these actions can also be triggered from external scripts via
the props server.
2002-08-25 20:56:16 +00:00
curt
4f00d9a959 Tidy up the autoconf/automake configuration a bit.
- Removed some old cruft.

- Removed some support for older versions of automake which technically was
  correct, but caused the newer automakes to squawk warnings during an
  initial sanity check (which isn't done very intelligently.)

  NOTE: this fix is technically not correct for older version of automake.
  These older version use the variable "INCLUDES" internally and could have
  them already set to an important value.  That is why we were appending
  our values to them.  However, newer versions of automake don't set this
  value themselves so it is an error to append to a non-existant variable.
  We seem to "get away" with overwriting the value on older versions of
  automake, but if you have problems, consider upgrading to at least
  automake-1.5.
2002-08-25 19:40:04 +00:00
david
f0e40fa3f8 XML-configurable menu support from Erik Hofman.
[dpm: removed an attempt to free a pointer to a function]
2002-08-08 23:25:47 +00:00
david
ff6a2ab520 Roll out change that required CVS version of plib. 2002-07-31 21:51:03 +00:00
david
1d82339fd8 Patch from Julian Foad:
When the scroll bar slider is dragged, the list scrolls only far enough to see all items; only the arrow buttons can scroll it so far that the last item goes to the top of the view.
    Fix scroll bar proportional size: was wrong when the list was only a little longer than the visible area.
    Minor fixes such as "delete files[i];" -> "delete[] files[i];" (where the item being deleted is an array of characters) and removal of global variables.
    Smooth scrolling when dragging the slider: one item at a time, rather than one tenth of the list at a time.
    Fix a bug that would have occurred if instantiated with arrows=2.
    Sort properties primarily by name and then by numerical index order, rather than a simple ASCII string order.  E.g. "js[1]", "js[2]", "js[10]" rather than "js[1]", "js[10]", "js[2]".
    Avoid crashing if the selected property path does not exist; display an empty list instead.  This cannot happen when the property picker is working properly, but did happen due to missing indices prior to this patch, and could happen if the user is allowed to type a pathname, as in the http and telnet interfaces.
    Fix truncation of strings to PUSTRING_MAX: was wrong when string length was exactly 80.
    Fix: move the scroll bar to the top each time a new list is displayed.  It was left at its previous position, while the top of the new list was displayed, not corresponding to the slider.
    Use getDisplayName instead of duplicated code: gives a better decision on whether to display the index, and avoids invalid property paths being generated which would previously crash find_props().
    Replace unnecessary node lookups by name with direct access: tidier and more efficient.  E.g. "getValueTypeString (node->getNode(name.c_str()))" -> "getValueTypeString (child)".
2002-07-31 16:44:27 +00:00
curt
79a7c1c9ce Allow the default GUI font to be set via properties. 2002-06-29 13:07:25 +00:00
curt
fcd6b28e0f Bernie Bright:
I've defined snprintf as _snprintf in compiler.h for MSVC and MINGW
targets and removed duplicate definitions from FG sources.
2002-05-17 16:41:27 +00:00
david
56473dc28d Mac OS X fixes and MSVC warning fixes from Jonathan Polley. 2002-05-10 23:35:06 +00:00
david
26e4ae9fc4 Patch from Jim Wilson:
Turns out it was a problem with a long string, not the font.  Plib is limited
to 80 characters in things like this listbox.  BTW I checked and all the fonts
are missing those characters.  So, no point in changing.

Description:
Fixed segfault caused by long string.
2002-05-09 21:15:01 +00:00
curt
8b3f0ad7cc Jim Wilson:
Also move tower when teleporting to a new airport.
2002-04-19 15:48:27 +00:00
curt
f1d8d554d0 Jim Wilson:
Fix a scrolling problem where last item doesn't show in prop_picker.
Removed include for unreferenced header in viewmgr.
2002-04-19 15:36:51 +00:00
curt
130902f788 Fixed an "==" vs. "=" typo. 2002-04-19 04:11:32 +00:00
curt
71598c12f8 Jim Wilson:
These are the updates for the View manager properties.  Removed the last of
items (within the viewer/viewmgr) hard coded to view number.  Added support
for per view configuration of ground level nearplane value.  Tower views look
very nice with little or no z-buffer problem in the models.  Pilot offset
dialog can be used to move eye in all views.
2002-04-18 16:51:47 +00:00
david
6e5d22789b Patches from Norm Vine to improve framerate and add a new
#ifdef'ed-out mode for syncing fullscreen with user settings in
Windows.
2002-04-07 15:24:32 +00:00
curt
0a035c7f36 Oops, in the latest property manager rewrite, a typo crept in on
somewhat of a global scale.  This commit should fix all these up.
2002-03-26 02:38:11 +00:00
david
825320e8bf Viewer update from Jim Wilson:
This patch renames the "goal" orientation offsets inputs/outputs to
conform with the naming of the new interface.
2002-03-21 20:59:43 +00:00
david
d0d3b2bd7a Use !strcmp for all property string-value comparisons. 2002-03-20 22:15:22 +00:00
curt
e95429572c Converted if ( string == "" ) constructs to if ( string.empty() )
Fixed a warning in soundmgr.cxx.
2002-03-20 19:16:13 +00:00
david
4d4cd16012 Major viewer-code overhaul from Jim Wilson:
Description:

This update includes the new viewer interface as proposed by David M. and
a first pass at cleaning up the viewer/view manager code by Jim W.

Note that I have dropped Main/viewer_lookat.?xx and Main/viewer_rph.?xx and
modified the Makefile.am accordingly.


Detail of work:

Overall:
The code reads a little easier.  There are still some unnecessary bits in
there and I'd like to supplement the comments in the viewer.hxx with a tiny
bit on each interface group and what the groupings mean (similar but briefer
than what you emailed me the other day).  I tried not to mess up the style,
but there is an occasional inconsistency.  In general I wouldn't call it done
(especially since there's no tower yet! :)), but I'd like to get this out
there so others can comment, and test.

In Viewer:
The interface as you suggested has been implemented.  Basically everything
seems to work as it did visually.  There is no difference that I can see in
performance, although some things might be a tiny bit faster.

I've merged the lookat and rph (pilot view) code into the recalc for the
viewer.  There is still some redundancy between the two, but a lot has been
removed.  In some cases I've taken some code that we'd likely want to inline
anyway and left it in there in duplicate.  You'll see that the code for both
looks a little cleaner.  I need to take a closer look at the rotations in
particular.  I've cleaned up a little there, but I suspect more can be done
to streamline this.

The external declaration to the Quat_mat in mouse.cxx has been removed.  IMHO
the quat doesn't serve any intrinsic purpose in mouse.cxx, but I'm not about
to rip it out.  It would seem that there more conventional ways to get
spherical data that are just as fast.  In any case all the viewer was pulling
from the quat matrix was the pitch value so I modified mouse.cxx to output to
our pitchOffset input and that works fine.

I've changed the native values to degrees from radians where appropriate.
This required a conversion from degrees to radians in a couple modules that
access the interface.  Perhaps we should add interface calls that do the
conversion,  e.g. a getHeadingOffset_rad() to go along with the
getHeadingOffset_deg().

On the view_offset (now headingOffset) thing there are two entry points
because of the ability to instantly switch views or to scroll to a new view
angle (by hitting the numeric keys for example).   This leaves an anomaly in
the interface which should be resolved by adding "goal" settings to the
interface, e.g. a setGoalHeadingOffset_deg(), setGoalPitchOffset_deg(), etc.

Other than these two issues, the next step here will be to look at some
further optimizations, and to write support code for a tower view.  That
should be fairly simple at this point.  I was considering creating a
"simulated tower view" or "pedestrian view" that defaulted to a position off
to the right of whereever the plane is at the moment you switch to the tower
view.  This could be a fall back when we don't have an actual tower location
at hand (as would be the case with rural airports).

ViewManager:
Basically all I did here was neaten things up by ripping out excess crap and
made it compatible as is with the new interface.

The result is that viewmanager is now ready to be developed.  The two
preexisting views are still hardcoded into the view manager.  The next step
would be to design configuration xml (eg /sim/view[x]/config/blahblah) that
could be used to set up as many views as we want.  If we want to take the easy
way out, we might want to insist that view[0] be a pilot-view and have
viewmanager check for that.
2002-03-20 17:43:28 +00:00
david
0cc3bed841 Major property-manager rewrite, using const char * throughout
interface instead of string.  This will result in a lot more
efficiency later, once I add in a simple hash table for caching
lookups, since it will avoid creating a lot of temporary string
objects.  The major considerations for users will be that they cannot
use

  node->getName() == "foo";

any more, and will have to use c_str() when setting a string value
from a C++ string.
2002-03-19 17:12:13 +00:00
david
d0eaafb1e1 Patches from Tony Peden to separate property XML I/O operations into a
separate header file.  This change will help integrate properties into
JSBSim.

Also, I (David Megginson) removed most of the SimGear include
statements from globals.hxx, reducing the amount of recompilation
every time SimGear changes.  This required making minor changes to a
lot of files that were depending on the side-effects of the inclusions
in globals.hxx.
2002-03-16 00:18:38 +00:00
david
36876decf3 Autopilot cleanup:
- implement the standard FGSubsystem interface, for consistency
- eliminate current_autopilot and add get/set_autopilot to FGGlobals,
  for consistency
- use private methods rather than static functions for tying
  properties

There should be no change in functionality.
2002-03-13 16:31:21 +00:00
david
51b2aeb872 Temporarily rolled out last change, pending a restructuring of the
view infrastructure: vertical mouse panning wasn't working.
2002-03-06 15:54:25 +00:00
david
9ae5ad236e Patch from Andy Ross to allow virtual panel to tilt with mouse view:
OK, attached is a replacement for mouse.cxx that works the view using
the view-offset/tilt interface, rather than the (kinda odd) GuiQuat
stuff.  It's kind of a hack job, as I left the hooks to GuiQuat in in
other places for fear of breaking something.  Still, it removed more
code from mouse.cxx than it added, which has to count for some
elegance points.
2002-03-06 13:53:18 +00:00
david
b4eb6324aa Patch from Jim Wilson:
Property sort now leaves "." and ".." at top of subdirectory list in their
expected sequence.
2002-03-04 01:05:59 +00:00
david
123f8b083d Patch from Andy Ross to sort properties in browser. 2002-02-27 14:58:18 +00:00
curt
c06aad31b3 Fix a potential mouse freeze. 2002-02-08 17:18:50 +00:00
david
e1843e15d4 Patch from Melchior Franz:
- add indices to ambiguous property names
2002-02-08 13:31:22 +00:00
curt
7cd113fa2f Some follow up patches from Norman Vine. 2002-02-06 23:31:33 +00:00
david
fb5d5960a9 Patch from Melchior Franz:
- don't show redundant indices
2002-02-06 16:53:01 +00:00
curt
5586d12e26 Fixes for default chase view values. 2002-02-05 23:02:16 +00:00
curt
abc6f642a2 Fix the not showing the last item bug. Also I cleaned up a
few things and made the scroll bar look right.
2002-02-05 22:32:29 +00:00
curt
08bbb83b8e A grab bag of tweaks and patches from Norman Vine.
- Better mingwin/cygwin support
- Various gui tweaks and code clean ups
- Initialization clean ups
- Hitlist/scenery tweaks
- other misc. stuff.
2002-02-05 20:54:08 +00:00
curt
f149bcba97 1. Tidies up h-FOV/v-FOV handling and makes window scale depend on
max(width, height) by default (easily changeable) rather than just width.
(src/GUI/gui.cxx, src/Main/main.cxx, src/Main/viewer.cxx, src/Main/viewer.hxx)
2002-02-05 05:51:11 +00:00
david
abbedea3bc Fixes from Cameron Moore:
I've attached 3 diffs against files in FlightGear to fix some printf
format strings.  The changes are pretty straight forward.  Let me know
if you have any questions.  (BTW, I'm using gcc 2.95.4)
2002-01-30 16:17:26 +00:00
curt
dea7284cc7 Restructured the 'freeze' property a bit. We now have
/sim/freeze/master      (implimented)
  /sim/freeze/fuel        (implimented)
  /sim/freeze/position    (not implimented)
  /sim/freeze/time-of-day (not implimented)

/sim/freeze/master is bound to the 'p' key via keyboard.xml, however,
/sim/freeze/fuel is not bound to anything at the moment so you must
change it via the external property interface, or specify an initial
value on the command line.
2002-01-20 03:52:36 +00:00
david
f29978fb42 Added fullscreen to globals, and fixed compile bug for 3DFX cards. 2002-01-06 16:51:31 +00:00
david
e09ea2243f Removed stale include of options.hxx. 2002-01-04 20:55:36 +00:00
curt
1fa4c88d0e Updates to build system to better support automake-1.5
- automake-1.4 sets default values for INCLUDES which we can't
  overwrite.
- automake-1.5 renames this to DEFAULT_INCLUDES and leaves INCLUDES
  open for the developer to use.

Thus for automake-1.4 we are forced to 'append' to INCLUDES and in
automake-1.5 we can just set the value to whatever we like.
Unfortunately, the behaviors of the two versions are mutually
incompatible.

The solution I am committing now works for both versions but
automake-1.5 generates a lot of spurious warning messages that are
annoying, but not fatal.
2001-12-28 22:29:59 +00:00
david
4f5d70144a -Removed .cvsignore from itself, since .cvsignore is now in the CVS 2001-12-12 04:15:23 +00:00
curt
f82b717c8b Norman's changes to display a scrolling "PAUSE" message when the simulation
is paused.
2001-12-11 22:40:14 +00:00
curt
4cc5cee885 David Megginson writes:
Here's an unusual patch for FlightGear -- I've created .cvsignore
files for every source directory, to make CVS output more informative.
This is especially nice when using cvs-examine from (X)Emacs to look
for changes.
2001-12-09 05:43:40 +00:00
curt
dcf937e39f From Christian Mayer fixing some array allocation/overrun errors. 2001-12-09 04:29:27 +00:00
curt
e27a88756c Changes from Norman Vine that 'almost' get 'reset' and 'goto apt' working.
Note there is still a problem when doing a 'reset' after doing
a 'goto'.   Curt says: I also see that doing two subsequent reset's on a
JSBSim model results in a segfault in a deconstructor deep inside JSBSim.
2001-12-07 22:38:19 +00:00
curt
e35fffa035 David Luff writes:
Heres an update to the ATIS stuff.  In brief:

The possible buffer overflow in the display with wind should
hopefully be fixed.

Temperature is taken from the global temperature property instead
of being hardwired.

The display class now includes an implementation of the member
function to change the repeating message.

The message callsign is no longer hardwired.  The first message
from each station is generated with a random callsign.
Subsequent messages from the same station have the callsign
incremented every hour.  A map of airport-id vs. last callsign and
transmission time is kept for each station that has transmitted for
the duration of the FlightGear session.  The logic might be flaky if
FlightGear is run for more than 24 hours at a stretch between
visiting the same ATIS station though!  (ie I don't check the day.)
This map is kept in the atislist class.  This might not be the best
long-term place for it (in an ATC class of some sort might be
better), but it works for now.
2001-11-19 23:53:36 +00:00
curt
36de63366b I just nailed an especially annoying tile cache scheduling bug.
What was happening was that we screwed up and scheduled tiles for
(lon,lon) rather than (lon,lat) ... note the typo.  This generated
bogus tile id's which the system happily accepted, put into the tile
cache system, and attempted to load.  The problem was that these bogus
tile id's were negative where as all valid tile id's should be >= 0.

These negative tile id's up the logic used to remove tiles from the
cache.  When identifying tiles for removal, we look for the furthest
tile away from us by starting out the furthest id at -1 and if we find
something further, we update the furthest tile id.  Then at the end we
check if the furthest tile id >= 0 to see if we found anything we
could remove.  However, the furthest tile id was these bogus tiles
with negative tile id's so the system always assumed there was nothing
appropriate for removal.  This made it impossible to ever remove a
tile from the cache meaning it quickly filled up and no more tiles
could be loaded.

I fixed the one instance of scheduling tiles for a bogus location, and
added a sanity check so if it ever happens again we'll bomb with an
appropriate error message.
2001-11-12 22:05:47 +00:00
curt
a3bce2f219 Updated mouse gui tweaks and Jim's nifty new external view controls. 2001-11-12 20:57:08 +00:00
curt
d227398525 Norman Vine's mouse cursor tweaks fixes. 2001-11-12 19:37:23 +00:00
curt
2b056c8452 This set of changes touches a *lot* of files. The main goal here is to
fix startup sequence problems where we initialize the FDM before we know
the desired starting altitude.

These changes delay fdm initialization until the local tile has been loaded
and we can do a real intersection and find the true ground elevation.

In order to do this, I depend more on the property manager as glue, rather
than the FGInterface.

There are some glitches still when switching to a new airport or reseting
the sim.  I will work on addressing these, but I need to commit the changes
so far to keep in sync with other developers.
2001-10-28 16:16:30 +00:00