1
0
Fork 0
Commit graph

1147 commits

Author SHA1 Message Date
Anton Gomez Alvedro
6ae3fae393 Add io.include() function to Nasal base library
io.inlude() loads and executes a Nasal file in place, effectively embedding
the script in the calling namespace. The function adds a symbol mark in the
namespace to avoid duplicate loading.

Additionally, in this path:

 + io.basename() & io.dirname(): Convenience functions for managing path
   strings. Designed after their unix counterparts.

 + string.normpath(): Improved support for relative paths. It can now handle
   paths starting with double dots, like ../../Directory
2013-12-08 11:51:34 -06:00
Thomas Geymayer
4766ed21a6 Nasal: use new built-in props.Node.removeAllChildren()
This require less interaction between Nasal and C++ and
also does not need to create a list of removed children
which was not used anyway. Now it require about 70% less
time to execute.
2013-12-07 13:48:55 +01:00
Gijs de Rooy
c409864dac Navigation display:
- move SVG to Canvas directory
- add basic wxradar
- differentiate between track and heading
- improve altitude arc
- add range arcs
- display correct ETA for next waypoint
2013-12-04 23:22:51 +01:00
mhab
1d9ff30420 Close dialogs with Esc-key 2013-12-02 21:32:05 +01:00
Thomas Geymayer
748f1d4d29 parsesvg: rename canvas.num to canvas.evalCSSNum 2013-12-01 14:05:12 +01:00
Tomash Brechko
2e6ba5f8c0 SVG parser: Add num() wrapper for <rect> attributes. 2013-12-01 14:05:11 +01:00
Gijs de Rooy
a9576e8c8d Canvas Navigational Display:
- get rid of global variables and use instance variables
- identified all important drawing routines and move them into *.draw files
- changed to dynamic loading of *.draw *.model and *.layer files
- implemented poor-man's controller hash to move use-case specific conditionals out of the draw files, and back into the instantiation, i.e. Gijs' EFIS class
- started identifying stuff that is not specific to drawing, but to what is to be drawn, i.e. Model stuff - such as positioned queries, moved those out into *.model files
- some more work on supporting more than a single ND MFD instance per aircraft
- renamed a handful of SVG identifiers to avoid naming conflicts and to simplify usage of SVG IDs as member fields
- moved all of the setlistener setup out of the fdm-initialized stub right into the ctor of the Efis class (actually that's controller stuff...)
- initial MapStructure framework
- aircraft-agnostic NavDisplay class
- preparations for deprecating map.nas
- additions to canvas.map
- preparations for making NDStyles configurable via XML
2013-12-01 13:36:23 +01:00
Philosopher
730145eec0 Add condition axis as per issue 1249 2013-11-05 14:38:43 -06:00
Thomas Geymayer
9687784128 Canvas API: constants for clip-frame reference frames 2013-11-03 21:01:33 +01:00
Thomas Geymayer
fed49956e6 IOrules: add writeable cache directory (for downloaded data) 2013-10-28 12:35:47 +01:00
janodesbois
5ce7d55342 FPS2KT and KT2FPS added to Nasal/global.nas 2013-10-27 13:50:39 +01:00
James Turner
27afea985a Updated UI to configure tooltips, mouse input
Replace the temporary UI with real solutions, in the view dialog
(for tooltips/popups) and a new 'input config' dialog accessed via
the file menu.

Make the mouse-cycle popup explicitly optional since some people
strongly dislike it.
2013-10-25 17:22:12 +01:00
James Turner
74e49dd65d Avoid tooltip breakage when property is nil 2013-10-25 17:19:35 +01:00
Thomas Geymayer
5f54a68491 Canvas: add helper to get parent of canvas.Element 2013-10-23 17:33:12 +02:00
Thomas Geymayer
7e0797b1be svg parser: read line-height 2013-10-20 23:41:19 +02:00
Philosopher
36305939f3 Nasal/*.nas: named arguments
Instead of var (name) = arg[0..n], which doesn't give a "missing
argument" error.
2013-10-20 13:07:09 -05:00
Philosopher
51c66c3df4 Fix defined() implementation 2013-10-20 13:06:51 -05:00
Philosopher
9a3bf2d0a7 Update view.screenWidthCompens
* make into singleton class
* make sure FOV changes take place *immediately* when required
* current FOV is scaled with changes, though being preserved: resizing
  window and going back ends up with the same FOV
2013-10-19 21:27:21 -05:00
Thorsten Renk
23ee32f1ec Changed Nimbostratus placement avoiding the rectangular appearance of tiles 2013-10-17 11:15:48 +03:00
Philosopher
24ab67fa32 Use resolvepath() for canvas SVGs 2013-10-06 11:52:30 -05:00
James Turner
60da2d4da8 Remove items implement natively in Nasal.
mathlib.c now defines more of these. Remaining items (abs, sgn, min, max)
are likely faster using Nasal than switching to C and back again.

Also add a comment about mod(), clarifying that a native fmod() exists.
2013-10-03 17:42:20 +01:00
Philosopher
819aa8a988 Fix for #1185 2013-09-30 13:53:10 -05:00
Philosopher
b4675c62b2 Fix popupTip handling
delay argument was being ignored and popdown didn't work anymore.
2013-09-27 12:09:44 +02:00
Clément de l'Hamaide
6ca29b6fe9 Fix controls.ptt(-1) to controls.ptt(0) in Nasal/joystick.nas 2013-09-24 13:29:37 +02:00
Thomas Geymayer
078e422faa Canvas GUI: check if canvas is valid on resize. 2013-07-27 22:23:00 +02:00
Thomas Geymayer
b8d6997497 Canvas GUI: mouse based window resizing. 2013-07-27 12:58:02 +02:00
Thomas Geymayer
a13add166b Canvas GUI: Basic widget, focus and theming support. 2013-07-27 12:57:52 +02:00
Thomas Geymayer
187883563a Canvas GUI: update window for core change (size -> content-size). 2013-07-27 00:33:08 +02:00
Thomas Geymayer
589d021e1c Canvas API: access to canvas "desktop". 2013-07-25 01:02:37 +02:00
James Turner
43a8b16dab Fix altitude constrain handling.
Thanks to Curt for spotting the issue.
2013-07-22 18:04:14 +01:00
Thomas Geymayer
7bf96db691 canvas.Window: Do not delete canvas on close if other placements exist. 2013-07-21 11:33:47 +02:00
Thomas Geymayer
c8a5c507bc Canvas: Fix placing existing canvas on window.
- Canvas window placements now use 'id' instead of 'index'...
 - Provide Dialog class for backwards compatibilty (but print a
   warning that it will be removed)
2013-07-20 18:10:31 +02:00
Thomas Geymayer
68efae1cd8 canvas.parsesvg: fix handling text without tspan or empty text. 2013-07-20 00:54:42 +02:00
Thomas Geymayer
ce4d7964f6 canvas.parsesvg: Be more tolerant instead of failing.
- Remove 'px' suffix from numbers to be used as valid numbers.
 - Automatically update the rotation center if it the according
   values are present.
 - Fix text only partially set if containing xml entities.
2013-07-15 22:37:05 +02:00
Thomas Geymayer
4a6cbb8ff1 Canvas GUI: set standard alpha blending as default inside windows 2013-07-14 13:44:34 +02:00
Thomas Geymayer
d580464095 Prevent name clash with future canvas.gui namespace. 2013-07-04 21:58:00 +02:00
Thomas Geymayer
eaf4c60cfb Canvas GUI: don't drag window on close button. 2013-06-29 14:49:43 +02:00
Thomas Geymayer
d7d871cc83 Canvas API: do not skip first index for cmds/coords
Start cmd/coord indices really at 0 and allow removing first/last
segment.
2013-06-27 23:16:45 +02:00
Thorsten Renk
9fbb4a2c00 Bugfix preventing visibility from jumping when leaving an Advanced Weather effect volume 2013-06-26 12:33:07 +03:00
Thomas Geymayer
44050c8011 Delay pilot_view_limiter.start after reinit to prevent using wrong heading-offset 2013-06-22 17:11:22 +02:00
Thomas Geymayer
8c23d095b0 Create geo.normdeg180 function 2013-06-17 21:40:29 +02:00
Thomas Geymayer
84b4da563e Inch/Meter conversion factors IN2M/M2I 2013-06-17 21:20:00 +02:00
Thomas Geymayer
35a2045123 Update for core changes 2013-06-14 20:32:14 +02:00
Thomas Geymayer
c759a3e57f Canvas window: allow gc to release resources 2013-06-08 13:08:16 +02:00
Thomas Geymayer
ca5c8463ab Use integer coordinates for placing canvas dialog title 2013-06-07 00:20:09 +02:00
Thomas Geymayer
72e3937ec6 Basic window decorator with title bar and close button.
Extend the canvas.Window class to create a simple window decoration
if a type for it (currently every type maps to the same style) is
given. It supports moving the window by dragging inside the title
bar and setting a window title.
2013-06-06 23:27:11 +02:00
James Turner
246f4e2bac Fix an issue with circular flight-plans.
Hyde identified a problem where the departure and destination
runway are identical; the logic would detect a 'landing' on
activation and immediately deactivate the FP again.
2013-06-01 11:12:23 +01:00
Anders Gidenstam
7b277810a8 Nasal/view.nas: Honour the configured directional offsets on view reset.
Thanks to Patrick Melanson, who noticed the problem and suggested the solution.
2013-05-28 22:35:32 +02:00
Vivian Meazza
d2b384ffad Add ID code to pilot list
Signed-off-by: Vivian Meazza <vivian.meazza@lineone.net>
2013-05-14 17:16:06 +01:00
Ryan M
9b19d5e20e Animated jetways: Remove obsolete use-custom-scenery-data property 2013-05-08 22:39:29 +01:00
Thomas Geymayer
d80722065f Fix path validation (ensure listeners are attached to existing nodes) 2013-04-29 22:27:26 +02:00
Stuart Buchanan
cad64a9711 Normalize angles for bearings on tanker.
Patch from Jean PELLOTIER.
2013-04-12 20:52:04 +01:00
Stuart Buchanan
fd4e61869b Add support for <nasal> blocks in the joystick nasal config library. 2013-04-12 20:24:53 +01:00
Stuart Buchanan
5fc821c4c1 Further AAR improvements:
- Make the A330-MRTT drogues HOT=false so you can't crash into them
- Add offset for the probe on the A-4F
- Correct the deviation due to roll, making it match the piloted aircraft.
2013-04-10 21:53:21 +01:00
Stuart Buchanan
e969dbc8f4 Improve air-to-air refueling by supporting multiple contact points
offset from the tanker center, and an offset probe/recepticle position
on the receiving aircraft.
2013-04-10 21:25:59 +01:00
James Turner
b64dd768d3 Move more high-level GPS logic to Nasal/XML. 2013-04-10 18:52:34 +01:00
James Turner
4d3a00bf68 Use Nasal to provide GPS search functions. 2013-04-10 18:52:34 +01:00
Thorsten Renk
2c6a962a34 Modified cloud lighting with dependence on air pollution 2013-04-09 09:52:19 +03:00
Thorsten Renk
2f01deb6bd Advanced Weather update - new cloud placement algorithms part I 2013-04-09 09:41:27 +03:00
James Turner
7e0a45c798 Tooltips and knobs for the C172P.
This is proof of concept, not a complete conversion.
2013-04-06 17:36:25 +01:00
James Turner
57dd7cb95f Give balloons scenario a load script.
This makes balloons.nas obsolete.
2013-03-28 17:46:13 +00:00
James Turner
4f66ca4a8f Use Tooltip instead of PUI dialog for gui.popupTip.
Hopefully everything works as expected, seems to for the cases I know about (changing view / FoV / visibility).
2013-03-16 12:48:18 +00:00
James Turner
29438e1e7d Message feedback when changing sim speed-up. 2013-03-16 12:48:17 +00:00
James Turner
e740b916d3 Make tooltip also work for on-screen messages.
Required new (in flightgear) Nasal timer to work, so make sure your fg is up-to-date.
2013-03-16 12:48:15 +00:00
James Turner
5c4142ed6d Option to disable mouse-mode feedback.
Drive off the 'show view names' checkbox in the view dialog for now, this might
evolve into a generic 'on-screen hints' control to avoid an explosion of
GUI checkboxes.

Also add a GUI checkbox (oh the irony...) to disable mouse flight-controls, to
keep AndersG and Emilian happy.
2013-03-12 21:45:06 +00:00
Thomas Geymayer
0980f6302a Rework tooltip size calculations to get rid of delayed update. 2013-03-11 19:25:39 +01:00
James Turner
5b84e09572 Fix phantom tooltips, more mapping modes.
Null the tooltip ID in update-hover, regardless of visibility. Avoids later tooltips when picking other (tooltip-less) pickable objects.

Also add two more mapping models for bools: up-down and down-up.
2013-03-11 17:19:32 +00:00
James Turner
7679078aa7 Tooltip tweaks
add a 'heading' mapping mode, normalises to 0..360
support a 'measure text' property used to compute the tooltip size (and hence avoid visual jitter when value is changed)
2013-03-10 10:13:47 +00:00
Thomas Geymayer
226d11b104 Tooltips: Use (hopefully) nice background image for tooltips. 2013-03-09 14:03:33 +01:00
Thomas Geymayer
bf3cd83c61 Canvas API: allow passing image size as vector 2013-03-09 14:03:32 +01:00
James Turner
72a1a0047e Work on tooltips, mouse-input config. 2013-03-08 16:47:00 +00:00
James Turner
6fefc775d7 Ignore tab-switches-mouse-mode if modifiers are set.
Clement confirmed that we're still get the tab key for alt-tab and ctrl-tab, which is bad. Explicitly ignore it for now.
2013-03-08 14:02:19 +00:00
James Turner
ce2d316e6d Tooltip class.
This is work in progress, and not visible without additional patches.
2013-03-07 19:51:06 +00:00
James Turner
f2b984f709 User-interface config dialog.
This is temporary (hopefully!), to allow experimentation with different UX options in the near future. Right now it basically does nothing. As part of this, factor mouse-mode cycling into a separate command, and add some feedback. Feedback mechanism needs work, currently abusing the copilot facility.
2013-03-07 19:36:54 +00:00
Vivian Meazza
9b697adb4f Use z/Z to control Max. Vis. when using Detailed Weather
Signed-off-by: Vivian Meazza <vivian.meazza@lineone.net>
2013-03-02 19:38:50 +00:00
Christian Schmitt
312862271d Position tower on canvas map at the correct place, not at the airport center 2013-03-01 17:16:01 +01:00
Christian Schmitt
0484849b67 Add helipads to the canvas map (grey rectangle for now). 2013-03-01 14:54:33 +01:00
Christian Schmitt
9dff0b4221 Canvas map: cleanup the runway routines. Simplify by using new functions and two runway ends 2013-03-01 14:54:13 +01:00
Thorsten Renk
f2ebbbbc70 Updates to Advanced Weather and cloud shaders - better support for low visibility conditions, improved framerates for Thunderstorm scenario 2013-03-01 09:40:05 +02:00
Christian Schmitt
51936dcff1 Adapt Canvas map to changed runway/taxiway internals 2013-02-28 13:39:07 +01:00
Stuart Buchanan
82f2de2fbc Support <marker> and <page> tags in the conversion of checklists to tutorials. 2013-02-27 22:46:37 +00:00
Stuart Buchanan
0fc2bf56fb Air-to-air refueling enhancements
- Support selectable tankers
- allow configuration of refueling radius, speed
- add optional reporting of contact
2013-02-24 22:34:11 +00:00
Thomas Geymayer
7027c604de Tweak SVG parser id handling of text elements 2013-02-23 20:05:13 +01:00
Thomas Geymayer
71f3f878c6 SVG rect rounded corner and refactor rect helper 2013-02-23 19:19:53 +01:00
Thomas Geymayer
5d54d3c504 Improve SVG/Inkscape text parsing/interpretation 2013-02-23 18:27:35 +01:00
Thomas Geymayer
95109b7b0c Fix parsing multiple SVG transforms and implement scale and rotation 2013-02-23 14:46:26 +01:00
Thorsten Renk
9b6578dcc0 Advanced Weather wind model selection bugfixes 2013-02-11 14:29:15 +02:00
Stuart Buchanan
1539891aa8 Bugfix for aircraft without checklists. 2013-02-09 20:27:05 +00:00
Thomas Geymayer
0bb3a1fe95 Remove CanvasText space hack.
With corrected alginment calculations within latest SimGear this
hack is not needed anymore.
2013-02-09 12:25:28 +01:00
Stuart Buchanan
402627b595 Auto-generate tutorials from checklists. 2013-02-07 22:14:19 +00:00
Anders Gidenstam
235c21985e Nasal/scenery.nas: Handle joining/leaving the MP network at run time. 2013-02-03 19:27:47 +01:00
Anders Gidenstam
7ef68c310a Nasal/mp_broadcast.nas: Handle joining/leaving the MP network at run time. 2013-02-03 19:27:35 +01:00
Emilian Huminiuc
e8bcd26450 Fix shader dialog.
Signed-off-by: Emilian Huminiuc <emilianh@gmail.com>
2013-02-01 13:21:58 +02:00
Thomas Geymayer
4374ab0ce8 Use new built-in string functions 2013-01-31 22:56:43 +01:00
Thomas Geymayer
8b3fa6f2fe Fix std.string handling out of range indices in search methods 2013-01-31 20:20:36 +01:00
James Turner
124017a696 GUI: switch to internal file dialog interface.
This should give no visible change on platforms other than Mac. On Mac file-dialogs (open, save, choose dir) are now Cocoa native panels, not PUI. If someone wants to create a Windows equivalent, the API is pretty trivial.
2013-01-26 14:16:00 +00:00
Thorsten Renk
1c9f110192 Replace Nasal loop for camera altitude computation by property rule 2013-01-25 14:55:58 +02:00
Stuart Buchanan
840595fa8d Add support for the Fuel and payload dialog to display the maximum arrested landing weight. Useful for carrier aircraft. 2013-01-22 21:35:33 +00:00
Thomas Geymayer
91ae186330 Canvas API: draw (rounded) rect and rename Dialog to Window.
- std.string:
   * Add method compare
   * Add method starts_with
 - canvas.Group:
   * Add method rect for drawing (rounded) rectangles
 - Rename canvas.Dialog to canvas.Window to free the name Dialog
   for real dialogs.
2013-01-22 18:02:20 +01:00
Thomas Geymayer
23c72fd53b Fix #956, cleanup canvas map listeners 2013-01-16 23:57:08 +01:00