## Wizard pages

This block defines all properties use by the project and the corresponding graphical interface. These properties are grouped in pages. Each page is read and transform with autogen one by one taking in account the value of all properties already defined in previous pages. This allows you to generate pages according to the user inputs on the previous one.

page

    <page name=name _label=label _description=description >
    	<property>
    	...
    </page>

It represents one page block and contains a set of properties.

name is the name of the page, currently unused.

label is the title of the page, it is a translatable attribute.

description is a translatable sub title for the project page.

property

    <property type=hidden|boolean|integer|string|list|directory|file|icon|package
    	name = name _label=label [_description=description] [default=default]
    	[mandatory=yes|no] [exist=yes|no] [summary=yes|no] >
    	[<item>]
    	...
    </property>

This is one of the most important element. A property correspond to an entry widget to get the user choice and a variable in the autogen definition file used to control the generation of the project.

The type attribute define the kind of property. The following types are defined

hidden | This is the only property that does not correspond to any widget. This is useful to defined additional autogen variables using only name and default attributes. As this value cannot be changed by the user the default attribute defined the value of the property.
boolean | This correspond to a boolean variable. It is represented by a toggle button. The value is 1 if the user select Yes, and 0 if the user select No.
integer | This correspond to a integer number. It is represented by a spin button. The value is the corresponding number.
string | This is a string value represented by an entry box. The value is the text of this entry box.
list | This property takes its value in a list of values and is represented by a list box. All the values are defined with child item element defined below. The value of the property is defined by the name attribute of the corresponding item.
directory | This property get a directory selected by the user. The directory could be inexistent, see the exist attribute for more information. It looks like a string property with a Browse button.
file | This property get a file selected by the user. It is very similar to the directory property.
icon | This property is quite similar to the file property and allow you to select an icon. The property value will be the name of the file containing the icon.
package | This property is similar to the file property and allow you to select a pkg-config package. It displays an entry box, that you can fill directly, with a button allowing to display all installed packages and select one. The property value will be the name of the package.

name is the name of the autogen variable corresponding to this property.

label is a translatable label that appears near the entry widget.

description is a translatable description that appears as a tips of the entry widget.

default is the default value of the property. If none is specified the property is empty.

mandatory allow you to define if an empty value is acceptable, by default it is allowed. If you set it to yes and the user does not enter a value, he will get an error message and cannot go further.

exist allow to check if a file or a directory corresponding to the value of the property exist. If exist is set to no, a warning message is displayed if the file or the directory exist. Moreover the value of the default property is tested and a number is automatically added at the end to avoid the warning message if necessary. By default or if exist is set to yes, no check is made.

summary defined if the property and its value should appears at the end of the wizard. This happens if the attribute is set to yes, by default or if it is set to no the property is not displayed.

item

    <item _name=name [_label=label] />

This element is used to defined item of a list property.

name is the name of the item, the property variable will be set with this value if the item is selected.

label is an optional translatable name for this item. This label will be used translated in the graphical interface, typically a list box. If it does not exist the value of the name attribute is used.