I've committed CVS changes to begin an XML-configurable GUI. It's far
from ready for end-users, but I need early implementors to start
playing with what's there so far and to try making their own, simple
dialogs using XML markup.
To see an XML-configured dialog for a fancy FlightGear hello world,
type Ctrl-D. The XML configuration is in $FG_ROOT/gui.xml. There is
a new subsystem named "gui", and a new command "gui" which takes the
argument "name" for the name of the dialog to run, like this:
<key n="4">
<name>Ctrl-D</name>
<desc>Dummy dialog</desc>
<binding>
<command>gui</command>
<name>hello</name>
</binding>
</key>
So you can already bind a dialog to any keystroke, mouse action, panel
action, joystick button, etc. etc.
Only a few components are present so far:
group
An invisible container holding a group of child components.
dialog
A group that will appear centred on the screen, with a visible
background. The 'modal' subproperty controls whether the dialog
is modal (puDialogBox) or non-modal (puPopup).
input
A text input field that can display the value of a property
specified in the 'default-value-prop' subproperty (current
read-only, but soon it will allow you to change the property
value).
text
An uneditable text field. The text appears in the 'label'
subproperty.
button
A push-button widget, with its text in the 'legend' subproperty.
Currently, pushing any button simply closes the dialog, but soon
other types of actions will be available. The 'default'
subproperty controls whether the button is the default when the
user presses Return, and the 'one-shot' subproperty controls
whether the button pops back up on its own.
Here is a rough outline of my future plans:
1. Allow users to modify property values and to add user-assigned
actions to buttons.
2. Add more widgets, including at least sliders and check boxes,
linked to property values.
3. Integrate the XML-configurable menu system into the new system.
4. Completely replace the existing GUI code with the new GUI
subsystem and delete the old GUI code.
5. Allow dialogs to invoke other dialogs recursively.
6. Integrate Steve Baker's new PSL (PLIB Scripting Language) into the
dialogs to allow complex, scripted behaviour.
7. Allow eye candy like icons and different fonts and colours.
8. Maybe introduce some simplistic layout managers to make it easier
to design dialogs and place sub-components.
All the best,
David
--
David Megginson, [EMAIL PROTECTED], http://www.megginson.com/
_______________________________________________
Flightgear-devel mailing list
[EMAIL PROTECTED]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel