20,741
edits
No edit summary |
No edit summary |
||
Line 17: | Line 17: | ||
In FlightGear, PUI dialogs are standard [[PropertyList XML File]]s that are stored in $FG_ROOT/gui/dialogs, they can contain the widgets mentioned in {{readme file|gui}}, using a simple layout engine discussed in {{readme file|layout}}, and bindings using a combination of so called fgcommands (see {{readme file|commands}}) and custom [[Nasal]] code. In addition, each PUI/XML dialog may contain Nasal sections that are executed when opening/closing the dialog, a feature which is commonly used for procedurally creating/updating widgets using the cmdarg() API, which allows the dialog tree to be traversed and manipulated prior to the dialog being rendered. | In FlightGear, PUI dialogs are standard [[PropertyList XML File]]s that are stored in $FG_ROOT/gui/dialogs, they can contain the widgets mentioned in {{readme file|gui}}, using a simple layout engine discussed in {{readme file|layout}}, and bindings using a combination of so called fgcommands (see {{readme file|commands}}) and custom [[Nasal]] code. In addition, each PUI/XML dialog may contain Nasal sections that are executed when opening/closing the dialog, a feature which is commonly used for procedurally creating/updating widgets using the cmdarg() API, which allows the dialog tree to be traversed and manipulated prior to the dialog being rendered. | ||
Widgets can be conditionally hidden/shown using a wrapper for SGCondition in props.nas | Widgets can be conditionally hidden/shown using a wrapper for SGCondition in props.nas | ||
The <code>canvas</code> widget also supports its own embedded Nasal section to execute arbitrary widget specific Nasal code. | |||
PUI/XML dialogs can be loaded, dynamically created, updated and closed using a handful of fgcommands: | PUI/XML dialogs can be loaded, dynamically created, updated and closed using a handful of fgcommands: |