This allows widgets to be positioned relative to other widgets. Two dialogs have been converted to use relative positioning. Also fix some issues with calculating the dialog rect.
317 lines
11 KiB
XML
317 lines
11 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
<xs:include schemaLocation="common.xsd"/>
|
|
<xs:simpleType name="picttype">
|
|
<xs:restriction base="xs:token">
|
|
<xs:enumeration value="blank"/>
|
|
<xs:enumeration value="ter"/>
|
|
<xs:enumeration value="teranim"/>
|
|
<xs:enumeration value="monst"/>
|
|
<xs:enumeration value="dlog"/>
|
|
<xs:enumeration value="talk"/>
|
|
<xs:enumeration value="scen"/>
|
|
<xs:enumeration value="item"/>
|
|
<xs:enumeration value="pc"/>
|
|
<xs:enumeration value="field"/>
|
|
<xs:enumeration value="boom"/>
|
|
<xs:enumeration value="missile"/>
|
|
<xs:enumeration value="full"/>
|
|
<xs:enumeration value="map"/>
|
|
<xs:enumeration value="status"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
<xs:simpleType name="btntype">
|
|
<xs:restriction base="xs:token">
|
|
<xs:enumeration value="small"/>
|
|
<xs:enumeration value="regular"/>
|
|
<xs:enumeration value="large"/>
|
|
<xs:enumeration value="help"/>
|
|
<xs:enumeration value="left"/>
|
|
<xs:enumeration value="right"/>
|
|
<xs:enumeration value="up"/>
|
|
<xs:enumeration value="down"/>
|
|
<xs:enumeration value="tiny"/>
|
|
<xs:enumeration value="done"/>
|
|
<xs:enumeration value="tall"/>
|
|
<xs:enumeration value="trait"/>
|
|
<xs:enumeration value="push"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
<xs:simpleType name="key">
|
|
<xs:union>
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:pattern value="(ctrl +|alt +|shift +)*(\d|[a-z`=;',./-]|\[|\]|\\|left|right|up|down|esc|enter|return|tab|help|space)|none"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:union>
|
|
</xs:simpleType>
|
|
<xs:simpleType name="mod">
|
|
<xs:list>
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:token">
|
|
<xs:enumeration value="ctrl"/>
|
|
<xs:enumeration value="shift"/>
|
|
<xs:enumeration value="alt"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:list>
|
|
</xs:simpleType>
|
|
<xs:simpleType name="scrollStyle">
|
|
<xs:restriction base="xs:token">
|
|
<xs:enumeration value="white"/>
|
|
<xs:enumeration value="led"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
<xs:simpleType name="frameStyle">
|
|
<xs:restriction base="xs:token">
|
|
<xs:enumeration value="solid"/>
|
|
<xs:enumeration value="inset"/>
|
|
<xs:enumeration value="outset"/>
|
|
<xs:enumeration value="double"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
<xs:simpleType name="relAnchor">
|
|
<xs:restriction base="xs:token">
|
|
<xs:enumeration value="next"/>
|
|
<xs:enumeration value="prev"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
<xs:simpleType name="relPosition">
|
|
<xs:list>
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:token">
|
|
<xs:enumeration value="abs"/>
|
|
<xs:enumeration value="pos"/>
|
|
<xs:enumeration value="neg"/>
|
|
<xs:enumeration value="pos-in"/>
|
|
<xs:enumeration value="neg-in"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:list>
|
|
</xs:simpleType>
|
|
<xs:attributeGroup name="rect-size">
|
|
<xs:attribute name="top" use="required" type="xs:integer"/>
|
|
<xs:attribute name="left" use="required" type="xs:integer"/>
|
|
<xs:attribute name="width" type="xs:integer"/>
|
|
<xs:attribute name="height" type="xs:integer"/>
|
|
</xs:attributeGroup>
|
|
<xs:attributeGroup name="frame">
|
|
<xs:attribute name="framed" default="false" type="bool"/>
|
|
<xs:attribute name="outline" default="inset" type="frameStyle"/>
|
|
</xs:attributeGroup>
|
|
<xs:attributeGroup name="position">
|
|
<xs:attribute name="anchor" type="xs:token"/>
|
|
<xs:attribute name="rel-anchor" type="relAnchor"/>
|
|
<xs:attribute name="relative" default="abs" type="relPosition"/>
|
|
</xs:attributeGroup>
|
|
<xs:attribute name="def-key" type="key"/>
|
|
<xs:attributeGroup name="font">
|
|
<xs:attribute name="font" default="bold">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:token">
|
|
<xs:enumeration value="dungeon"/>
|
|
<xs:enumeration value="plain"/>
|
|
<xs:enumeration value="bold"/>
|
|
<xs:enumeration value="maidenword"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute name="size" default="small">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:token">
|
|
<xs:enumeration value="small"/>
|
|
<xs:enumeration value="large"/>
|
|
<xs:enumeration value="title"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute name="color"/>
|
|
<xs:attribute name="colour"/>
|
|
</xs:attributeGroup>
|
|
<xs:complexType name="field">
|
|
<xs:simpleContent>
|
|
<xs:extension base="xs:string">
|
|
<xs:attribute name="name" type="xs:token"/>
|
|
<xs:attribute name="type" default="text">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:token">
|
|
<xs:enumeration value="int"/>
|
|
<xs:enumeration value="uint"/>
|
|
<xs:enumeration value="real"/>
|
|
<xs:enumeration value="text"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute name="tab-order" type="xs:integer"/>
|
|
<xs:attributeGroup ref="rect-size"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<xs:complexType mixed="true" name="message">
|
|
<xs:sequence>
|
|
<xs:element name="br" minOccurs="0" maxOccurs="unbounded">
|
|
<xs:complexType/>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
<xs:attribute name="name" type="xs:token"/>
|
|
<xs:attributeGroup ref="frame"/>
|
|
<xs:attributeGroup ref="font"/>
|
|
<xs:attribute ref="def-key"/>
|
|
<xs:attribute name="fromlist" default="none" type="xs:string"/>
|
|
<xs:attributeGroup ref="rect-size"/>
|
|
<xs:attributeGroup ref="position"/>
|
|
</xs:complexType>
|
|
<xs:complexType name="pict">
|
|
<xs:attribute name="name" type="xs:token"/>
|
|
<xs:attribute name="type" use="required" type="picttype"/>
|
|
<xs:attribute name="custom" default="false" type="bool"/>
|
|
<xs:attribute name="scaled" default="false" type="bool"/>
|
|
<xs:attribute name="framed" default="true" type="bool"/>
|
|
<xs:attribute name="outline" default="inset" type="frameStyle"/>
|
|
<xs:attribute name="size">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:token">
|
|
<xs:enumeration value="small"/>
|
|
<xs:enumeration value="wide"/>
|
|
<xs:enumeration value="tall"/>
|
|
<xs:enumeration value="large"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute ref="def-key"/>
|
|
<xs:attribute name="num" use="required" type="xs:integer"/>
|
|
<xs:attributeGroup ref="rect-size"/>
|
|
<xs:attributeGroup ref="position"/>
|
|
</xs:complexType>
|
|
<xs:complexType mixed="true" name="button">
|
|
<xs:sequence>
|
|
<xs:element name="key" minOccurs="0" maxOccurs="unbounded">
|
|
<xs:complexType/>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
<xs:attribute name="name" use="required" type="xs:token"/>
|
|
<xs:attribute name="type" use="required" type="btntype"/>
|
|
<xs:attribute name="wrap" default="false" type="bool"/>
|
|
<xs:attribute ref="def-key"/>
|
|
<xs:attribute name="fromlist" default="none" type="xs:string"/>
|
|
<xs:attributeGroup ref="rect-size"/>
|
|
<xs:attributeGroup ref="position"/>
|
|
</xs:complexType>
|
|
<xs:complexType name="led">
|
|
<xs:simpleContent>
|
|
<xs:extension base="xs:string">
|
|
<xs:attribute name="name" use="required" type="xs:token"/>
|
|
<xs:attribute name="state" default="off">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:token">
|
|
<xs:enumeration value="red"/>
|
|
<xs:enumeration value="green"/>
|
|
<xs:enumeration value="off"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attributeGroup ref="rect-size"/>
|
|
<xs:attributeGroup ref="position"/>
|
|
<xs:attributeGroup ref="font"/>
|
|
<xs:attribute name="wrap" default="false" type="bool"/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<xs:complexType name="slider">
|
|
<xs:attribute name="name" type="xs:token"/>
|
|
<xs:attribute name="max" type="xs:integer" use="required"/>
|
|
<xs:attribute name="initial" type="xs:integer" default="0"/>
|
|
<xs:attribute name="page-size" type="xs:integer" default="10"/>
|
|
<xs:attribute name="vertical" type="bool" default="true"/>
|
|
<xs:attribute name="link" type="xs:token"/>
|
|
<xs:attribute name="style" type="scrollStyle" default="led"/>
|
|
<xs:attributeGroup ref="rect-size"/>
|
|
<xs:attributeGroup ref="position"/>
|
|
</xs:complexType>
|
|
<xs:complexType name="ledGroup">
|
|
<xs:sequence>
|
|
<xs:element maxOccurs="unbounded" name="led" type="led"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="name" type="xs:token"/>
|
|
<xs:attributeGroup ref="frame"/>
|
|
<xs:attribute name="fromlist" default="none" type="xs:string"/>
|
|
</xs:complexType>
|
|
<xs:complexType name="stack">
|
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
|
<xs:element name="field" type="field"/>
|
|
<xs:element name="text" type="message"/>
|
|
<xs:element name="pict" type="pict"/>
|
|
<xs:element name="button" type="button"/>
|
|
<xs:element name="led" type="led"/>
|
|
<xs:element name="group" type="ledGroup"/>
|
|
<xs:element name="slider" type="slider"/>
|
|
</xs:choice>
|
|
<xs:attribute name="name" type="xs:token"/>
|
|
<xs:attributeGroup ref="frame"/>
|
|
<xs:attribute name="pages" type="xs:integer"/>
|
|
</xs:complexType>
|
|
<xs:complexType name="scrollPane">
|
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
|
<xs:element name="field" type="field"/>
|
|
<xs:element name="text" type="message"/>
|
|
<xs:element name="pict" type="pict"/>
|
|
<xs:element name="button" type="button"/>
|
|
<xs:element name="led" type="led"/>
|
|
<xs:element name="group" type="ledGroup"/>
|
|
<xs:element name="slider" type="slider"/>
|
|
</xs:choice>
|
|
<xs:attribute name="name" type="xs:token"/>
|
|
<xs:attributeGroup ref="frame"/>
|
|
<xs:attribute name="style" type="scrollStyle" default="led"/>
|
|
<xs:attributeGroup ref="rect-size"/>
|
|
<xs:attributeGroup ref="position"/>
|
|
</xs:complexType>
|
|
<xs:element name="dialog">
|
|
<xs:complexType>
|
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
|
<xs:element name="field" type="field"/>
|
|
<xs:element name="text" type="message"/>
|
|
<xs:element name="pict" type="pict"/>
|
|
<xs:element name="button" type="button"/>
|
|
<xs:element name="led" type="led"/>
|
|
<xs:element name="group" type="ledGroup"/>
|
|
<xs:element name="slider" type="slider"/>
|
|
<xs:element name="stack" type="stack"/>
|
|
<xs:element name="pane" type="scrollPane"/>
|
|
</xs:choice>
|
|
<xs:attribute name="skin" default="dark">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:token">
|
|
<xs:enumeration value="light"/>
|
|
<xs:enumeration value="dark"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute name="debug" default="false" type="bool"/>
|
|
<xs:attribute name="fore" default="black"/>
|
|
<xs:attribute name="defbtn" type="xs:token"/>
|
|
</xs:complexType>
|
|
<xs:unique name="FieldTabOrder">
|
|
<xs:selector xpath="*" />
|
|
<xs:field xpath="@tab-order" />
|
|
</xs:unique>
|
|
<xs:unique name='uniqueID'>
|
|
<xs:selector xpath='*'/>
|
|
<xs:field xpath='@name'/>
|
|
</xs:unique>
|
|
<xs:keyref name="defaultButton" refer="uniqueID">
|
|
<xs:selector xpath="."/>
|
|
<xs:field xpath="@defbtn"/>
|
|
</xs:keyref>
|
|
<xs:keyref name="sliderLink" refer="uniqueID">
|
|
<xs:selector xpath="slider"/>
|
|
<xs:field xpath="@link"/>
|
|
</xs:keyref>
|
|
<xs:keyref name="anchorLink" refer="uniqueID">
|
|
<xs:selector xpath="*"/>
|
|
<xs:field xpath="@anchor"/>
|
|
</xs:keyref>
|
|
</xs:element>
|
|
</xs:schema>
|