Ok for #2 I've progressed. I have two issues with my code (see below) for #2. I can't add the same class twice and there is a little wasted space to the right.
The wasted space on the right below the title ("Character Class") to the right of the X delete button. How do I nix that and use the full line?
Code:
<portal
id="clClass"
style="tblNormal">
<table_dynamic
component="Class"
showtemplate="ShowClass"
choosetemplate="ClassThing"
allowuserorder="yes">
<candidate></candidate>
<titlebar><![CDATA[
@text = "Choose the class for your character"
]]></titlebar>
<headertitle><![CDATA[
@text = "Character Class"
]]></headertitle>
<additem><![CDATA[
@text = "Add a Level"
]]></additem>
</table_dynamic>
</portal>
<template
id="ClassThing"
name="Class Thing"
compset="Class"
marginhorz="3"
marginvert="5">
<portal
id="name"
style="lblXLarge"
showinvalid="yes">
<label
field="name">
</label>
</portal>
<position><![CDATA[
height = portal[name].height
doneif (issizing <> 0)
perform portal[name].centervert
portal[name].left = 0
]]></position>
</template>
<template
id="ShowClass"
name="Show Class"
compset="Class"
marginhorz="3"
marginvert="5">
<portal
id="level"
style="lblNormal"
showinvalid="yes">
<label
field="clIndex">
</label>
</portal>
<portal
id="name"
style="lblNormal"
showinvalid="yes">
<label
field="name">
</label>
</portal>
<portal
id="delete"
style="actDelete">
<action
action="delete">
</action>
</portal>
<position><![CDATA[
height = maximum(portal[name].height,portal[level].height)
doneif (issizing <> 0)
perform portal[name].centervert
perform portal[level].centervert
portal[level].left = 0
portal[name].left = 20
perform portal[delete].alignedge[right,0]
portal[delete].top = 5
]]></position>
</template>
<layout
id="class">
<portalref portal="clClass" taborder="20"/>
<position><![CDATA[
portal[clClass].width = width
portal[clClass].top = 3
]]></position>
</layout>