thanks for the bug report, feel free to directly edit those tutorials - that's why they're kept in the wiki after all.
Regarding Canvas tutorials, we do have a few actually. Check out the Canvas navbar at:
http://wiki.flightgear.org/CanvasThere's a
tutorials section too.
Note that XML dialogs should not be manually turned into Canvas dialogs, instead we need to come up with missing widgets (checkbox, label, textfield, radio button etc).
Those can be drawn using Inkscape vector images, and animated/made-interactive using Nasal code. A checkbox or radio button would seem like a simple thing to play with.
Once we have working widgets, we only need to come up with a simple parser that can turn existing dialogs into canvas windows.
svg.nas is our existing example on populating a canvas procedurally by parsing an XML file.
Basically, it looks for supported SVG primitives, and turns those into Canvas/OpenVG primitives by setting properties.
I've been in touch with TheTom and Philosopher, and we'll probably update the wiki to provide a few more pointers on recent Canvas/GUI efforts, and missing things.
But again, please do not touch individual dialogs for now - what's needed is just widgets as per README.gui
For starters, there are simple dialogs like the exit/about dialogs - these can already be expressed using existing Canvas means.
What's primarily missing here is layout management, which is something that Tom has been working on.
A summary of past discussions can be found at:
http://wiki.flightgear.org/Canvas_GUIhttp://wiki.flightgear.org/Canvas_WidgetsIf properly done, the XML/GUI dialogs will never need to be touched/edited - they will merely be processed by a Nasal function.
And the underlying GUI related fgcommands (show-dialog, close-dialog etc) will simply be overwritten from Nasal space using the addCommand() API
Which will basically disable the underlying C++ code and allow all GUI dialogs to be processed via Nasal/Canvas, without them having to be edited at all.
Now, layout mangement obviously is already supported (see README.layout) and we need to make sure that our Canvas based layout engine supports everything available there, so that we can get rid of Andy's original C++ code here.
This isn't necessarily difficult work, and it can be mostly done without requiring C++ changes - but it will require quite a few new widgets obviously.