Add a new tilemap control that replicates its children into a fixed grid.

Use it for the Edit Terrain Object dialog.
This commit is contained in:
2025-02-26 22:21:02 -05:00
committed by Celtic Minstrel
parent 2ee2a545ef
commit f018f051f6
16 changed files with 376 additions and 47 deletions

View File

@@ -3,23 +3,9 @@
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay'>
<pict type='dlog' num='16' top='8' left='8'/>
<text framed='true' top='12' left='60' width='112' height='144'/>
<pict name='x0y0' framed='false' type='ter' num='0' top='12' left='60'/>
<pict name='x0y1' framed='false' type='ter' num='0' top='48' left='60'/>
<pict name='x0y2' framed='false' type='ter' num='0' top='84' left='60'/>
<pict name='x0y3' framed='false' type='ter' num='0' top='120' left='60'/>
<pict name='x1y0' framed='false' type='ter' num='0' top='12' left='88'/>
<pict name='x1y1' framed='false' type='ter' num='0' top='48' left='88'/>
<pict name='x1y2' framed='false' type='ter' num='0' top='84' left='88'/>
<pict name='x1y3' framed='false' type='ter' num='0' top='120' left='88'/>
<pict name='x2y0' framed='false' type='ter' num='0' top='12' left='116'/>
<pict name='x2y1' framed='false' type='ter' num='0' top='48' left='116'/>
<pict name='x2y2' framed='false' type='ter' num='0' top='84' left='116'/>
<pict name='x2y3' framed='false' type='ter' num='0' top='120' left='116'/>
<pict name='x3y0' framed='false' type='ter' num='0' top='12' left='144'/>
<pict name='x3y1' framed='false' type='ter' num='0' top='48' left='144'/>
<pict name='x3y2' framed='false' type='ter' num='0' top='84' left='144'/>
<pict name='x3y3' framed='false' type='ter' num='0' top='120' left='144'/>
<tilemap name='map' framed='true' top='12' left='60' rows='4' cols='4'>
<pict framed='false' type='ter' num='0' top='0' left='0'/>
</tilemap>
<text top='166' left='130' width='10' height='16'>X</text>
<text top='166' left='180' width='10' height='16'>Y</text>
<text top='186' left='10' width='100' height='16'>Object Size:</text>

View File

@@ -298,6 +298,24 @@
<xs:attributeGroup ref="frame"/>
<xs:attribute name="pages" type="xs:integer"/>
</xs:complexType>
<xs:complexType name="tilemap">
<xs:choice minOccurs="1" 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="rows" use="required" type="xs:integer"/>
<xs:attribute name="cols" use="required" type="xs:integer"/>
<xs:attribute name="cellspacing" type="xs:integer"/>
<xs:attributeGroup ref="rect-size"/>
<xs:attributeGroup ref="position"/>
</xs:complexType>
<xs:complexType name="scrollPane">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="field" type="field"/>
@@ -334,6 +352,7 @@
<xs:field xpath="@default"/>
</xs:unique>
</xs:element>
<xs:element name="tilemap" type="tilemap"/>
<xs:element name="pane" type="scrollPane"/>
</xs:choice>
<xs:attribute name="skin" default="dark">