This is a more or less full-featured example of what you can do using Xorph. Please take a look
at the more simple examples on this page so you don't get confused by all of the options used here.
Or simply ignore the source and take a look at the pictures...
Xorph source code
<?xml version="1.0" encoding="UTF-8"?>
<xorph:environment name="ComplexEnvironment"
prefix="XorphComplexEnvironmentDemo"
xmlns:xorph="http://xorph.sourceforge.net/"
xmlns:x0="http://www.w3.org/2001/XMLSchema">
<options>
<group label="text input" name="GText">
<option label="first text" name="Text1">
<text case="any"/>
<description>This is a simple input field providing a
single line of text. The description may be omitted.</description>
</option>
<option label="second text (default)" name="Text2">
<text case="any" defaultValue="default value"/>
<description>Options may provide a default value.</description>
</option>
<option label="third text (max 15)" name="Text3">
<text case="any" maxLength="15"/>
<description>A maximum length may be specified.</description>
</option>
<option label="fourth text (upper case)" name="Text4">
<text case="upper"/>
<description>text options may be upper case only...</description>
</option>
<option label="fifth text (lower case)" name="Text5">
<text case="lower"/>
<description>...or lower case only.</description>
</option>
<option label="sixth text (password)" name="Text6">
<text case="any" password="true"/>
<description>This option might be useful for password
entry fields.</description>
</option>
<option label="multi-line text" name="Multi1">
<multiline/>
<description>Multi-line text fields are possible as
well, but limited in configurability.</description>
</option>
</group>
<group label="numeric input" name="GNum">
<option label="first numeric" name="Num1">
<numeric maxValue="255" minValue="-100"/>
<description>Numeric values must be specified including
a minimum and maximum value.</description>
</option>
<option label="second numeric" name="Num2">
<numeric defaultValue="50" maxValue="1000" minValue="0"/>
<description>Numeric values may me provide a default
value as well.</description>
</option>
</group>
<group label="selection options" name="GSel">
<option label="first checkbox" name="Check1">
<checkbox/>
<description>Checkboxes are turned off by default...</description>
</option>
<option label="second checkbox" name="Check2">
<checkbox defaultValue="true"/>
<description>...but may be provided with a default value.</description>
</option>
<option label="first selection group" name="Select1">
<selectNumeric standardDisplay="listbox">
<values>
<value label="Option 1" value="1"/>
<value label="Option 2" value="2"/>
<value label="Option 3" value="3"/>
</values>
</selectNumeric>
<description>Selection groups may use numeric values...</description>
</option>
<option label="second selection group" name="Select2">
<selectText standardDisplay="radiobuttons">
<values>
<value label="Option one" value="one"/>
<value label="Option two" value="two"/>
<value label="Option three" value="three"/>
</values>
</selectText>
<description>...or named constants that will be
translated into constants at compile time.</description>
</option>
<option label="third selection group" name="Select3">
<selectNumeric defaultValue="2" standardDisplay="dropdown">
<values>
<value label="Option 1" value="1"/>
<value label="Option 2" value="2"/>
<value label="Option 3" value="3"/>
</values>
</selectNumeric>
<description>Unless a default value is provided, the
first option is selected by default.</description>
</option>
<option label="fourth selection group" name="Select4">
<selectText defaultValue="three" standardDisplay="radiobuttons">
<values>
<value label="Option one" value="one"/>
<value label="Option two" value="two"/>
<value label="Option three" value="three"/>
</values>
</selectText>
<description>Same with named constants.</description>
</option>
</group>
<group label="file and directory options" name="GFileDir">
<option label="first file" name="File1">
<file/>
<description>File options provide a convenient way of
specifying file names.</description>
</option>
<option label="second file" name="File2">
<file defaultValue="/tmp/myfile"/>
<description>File options may be provided with default
values as well.</description>
</option>
<option label="first directory" name="Dir1">
<directory/>
<description>Directory options work very much the same
way that file options do, they just don't show
files in the selection dialog box.</description>
</option>
<option label="second directory" name="Dir2">
<directory defaultValue="/tmp"/>
<description/>
</option>
</group>
</options>
<interface name="Dialog1" title="first dialog">
<simpleDialog>
<text>You can place text elements of arbitrary length above, ...</text>
<includeGroup name="GText" />
<includeGroup name="GNum" withFrame="false" />
<text>...between...</text>
<includeOption name="Select1" display="radiobuttons" />
<includeOption name="Select2" />
<includeOption name="Select3" />
<text>...or below the dialog elements.</text>
</simpleDialog>
</interface>
<interface name="Dialog2" title="second dialog">
<simpleDialog columns="2">
<includeGroup name="GText" />
<includeGroup name="GNum" />
<includeGroup name="GSel" />
<skip />
<skip />
<includeGroup name="GFileDir" />
</simpleDialog>
</interface>
<interface name="Dialog3" title="read-only dialog">
<simpleDialog columns="2">
<includeGroup name="GText" readOnly="true" />
<includeGroup name="GNum" readOnly="true" />
<includeGroup name="GSel" readOnly="true" />
<includeOption name="Dir2" readOnly="true" />
<includeOption name="File1" readOnly="true" />
</simpleDialog>
</interface>
<interface name="Tabbed1" title="first tabbed dialog">
<tabbedDialog>
<card label="Card 1" name="t1c1">
<text>Business...</text>
<includeGroup name="GSel" withFrame="false" />
<text>...as usual.</text>
</card>
<card label="Card 2" name="t1c2">
<includeGroup name="GText" />
<includeGroup name="GNum" />
</card>
<card label="Card 3" name="t1c3">
<includeGroup name="GFileDir" />
</card>
</tabbedDialog>
</interface>
<interface name="Wizard1" title="first wizard">
<wizardDialog>
<page label="Welcome" name="w1p1">
<text>Welcome to the world of...</text>
</page>
<page label="first demonstration" name="w1p2" columns="2">
<text>As you can see...</text>
<includeGroup name="GSel" />
<includeGroup name="GFileDir" />
<text>...there is nothing to be seen.</text>
</page>
<page label="second demonstration" name="w1p3">
<text>Once again...</text>
<includeGroup name="GText" />
<includeOption name="Dir2" />
<includeOption name="File1" />
</page>
<page label="" name="w1p4">
<text>Thank you for your patience.</text>
</page>
</wizardDialog>
</interface>
</xorph:environment>
Screenshots
The first three interfaces are simple dialogs and look like this:
The fourth interface consists of three tabbed pages:
The last interface is a wizard-style dialog:
|