Convert scenario details dialog and make numeric fields validate their contents

This commit is contained in:
2014-12-04 16:54:21 -05:00
parent d45a7d1c1b
commit ecd0867b65
23 changed files with 222 additions and 134 deletions

View File

@@ -676,8 +676,12 @@ template<> pair<string,cTextField*> cDialog::parse(Element& who /*field*/){
else if(name == "type"){
std::string val;
attr->GetValue(&val);
if(val == "num")
p.second->setInputType(FLD_NUM);
if(val == "int")
p.second->setInputType(FLD_INT);
else if(val == "uint")
p.second->setInputType(FLD_UINT);
else if(val == "real")
p.second->setInputType(FLD_REAL);
else if(val == "text")
p.second->setInputType(FLD_TEXT);
else throw xBadVal("field",name,val,attr->Row(),attr->Column(),fname);

View File

@@ -8,7 +8,10 @@
#include "field.h"
#include <sstream>
#include <map>
#include <boost/lexical_cast.hpp>
#include "dialog.h"
#include "dlogutil.h"
#include "graphtool.h"
void cTextField::attachClickHandler(click_callback_t) throw(xHandlerNotSupported){
@@ -20,7 +23,31 @@ void cTextField::attachFocusHandler(focus_callback_t f) throw(){
}
bool cTextField::triggerFocusHandler(cDialog& me, std::string id, bool losingFocus){
// TODO: If isNumericField, verify that the contents are in fact a number.
if(losingFocus && field_type != FLD_TEXT) {
try {
std::string contents = getText();
switch(field_type) {
case FLD_TEXT: break;
case FLD_INT:
boost::lexical_cast<long long>(contents);
break;
case FLD_UINT:
boost::lexical_cast<unsigned long long>(contents);
break;
case FLD_REAL:
boost::lexical_cast<long double>(contents);
break;
}
} catch(boost::bad_lexical_cast) {
static const std::map<const eFldType, const std::string> typeNames = {
{FLD_INT, "an integer"},
{FLD_UINT, "a positive integer"},
{FLD_REAL, "a number"},
};
giveError("You need to enter " + typeNames.at(field_type) + "!","",parent);
return false;
}
}
bool passed = true;
if(onFocus != NULL) passed = onFocus(me,id,losingFocus);
if(passed) haveFocus = !losingFocus;
@@ -31,6 +58,7 @@ bool cTextField::triggerFocusHandler(cDialog& me, std::string id, bool losingFoc
bool cTextField::handleClick(location) {
// TODO: Set the insertion point, handle selection, etc
if(haveFocus) return true;
if(parent && !parent->setFocus(this)) return true;
haveFocus = true;
return true;
@@ -53,19 +81,11 @@ sf::Color cTextField::getColour() throw(xUnsupportedProp) {
}
eFldType cTextField::getInputType() {
if(isNumericField) return FLD_NUM;
else return FLD_TEXT;
return field_type;
}
void cTextField::setInputType(eFldType type) {
switch(type) {
case FLD_NUM:
isNumericField = true;
break;
case FLD_TEXT:
isNumericField = false;
break;
}
field_type = type;
}
bool cTextField::isClickable(){
@@ -82,7 +102,7 @@ cTextField::cTextField(cDialog* parent) :
insertionPoint(-1),
selectionPoint(0),
haveFocus(false),
isNumericField(false) {}
field_type(FLD_TEXT) {}
cTextField::~cTextField(){}

View File

@@ -13,7 +13,9 @@
#include "control.h"
enum eFldType {
FLD_NUM,
FLD_INT,
FLD_UINT,
FLD_REAL,
FLD_TEXT,
};
@@ -39,7 +41,7 @@ public:
cTextField(cTextField& other) = delete;
long tabOrder = 0;
private:
bool isNumericField;
eFldType field_type;
focus_callback_t onFocus;
bool haveFocus;
int insertionPoint;

View File

@@ -1525,74 +1525,52 @@ void edit_item_placement() {
shortcut_dlg.run();
}
bool save_scen_details() {
#if 0
char str[256];
static bool save_scen_details(cDialog& me) {
short i;
scenario.difficulty = cd_get_led_range(803,30,33);
scenario.rating = cd_get_led_range(803,21,24);
scenario.format.ver[0] = CDGN(803,2);
scenario.format.ver[1] = CDGN(803,3);
scenario.format.ver[2] = CDGN(803,4);
{
cLedGroup& difficulty = dynamic_cast<cLedGroup&>(me["difficulty"]);
scenario.difficulty = difficulty.getSelected()[3] - '1';
}{
cLedGroup& rating = dynamic_cast<cLedGroup&>(me["rating"]);
scenario.rating = rating.getSelected()[4] - '1';
}
for(i = 0; i < 3; i++)
if (cre(scenario.format.ver[i],
0,9,"The digits in the version number must be in the 0 to 9 range.","",803) == true) return false;
CDGT(803,5,(char *) str);
str[59] = 0;
strcpy(scenario.scen_strs(1),(char *) str);
CDGT(803,6,(char *) str);
str[59] = 0;
strcpy(scenario.scen_strs(2),(char *) str);
CDGT(803,7,scenario.scen_strs(3));
#endif
scenario.format.ver[i] = me["ver" + std::to_string(i + 1)].getTextAsNum();
strncpy(scenario.scen_strs(1), me["who1"].getText().c_str(), 60);
scenario.scen_strs(1)[59] = 0;
strncpy(scenario.scen_strs(2), me["who2"].getText().c_str(), 60);
scenario.scen_strs(2)[59] = 0;
strncpy(scenario.scen_strs(3), me["contact"].getText().c_str(), 256);
scenario.scen_strs(3)[255] = 0;
return true;
}
void put_scen_details_in_dlog() {
#if 0
cd_set_led_range(803,30,33,scenario.difficulty);
cd_set_led_range(803,21,24,scenario.rating);
CDSN(803,2,scenario.format.ver[0]);
CDSN(803,3,scenario.format.ver[1]);
CDSN(803,4,scenario.format.ver[2]);
CDST(803,5,scenario.scen_strs(1));
CDST(803,6,scenario.scen_strs(2));
CDST(803,7,scenario.scen_strs(3));
#endif
static void put_scen_details_in_dlog(cDialog& me) {
dynamic_cast<cLedGroup&>(me["difficulty"]).setSelected("lvl" + std::to_string(scenario.difficulty + 1));
dynamic_cast<cLedGroup&>(me["rating"]).setSelected("rate" + std::to_string(scenario.rating + 1));
for(int i = 0; i < 3; i++)
me["ver" + std::to_string(i + 1)].setTextToNum(scenario.format.ver[i]);
me["who1"].setText(scenario.scen_strs(1));
me["who2"].setText(scenario.scen_strs(2));
me["contact"].setText(scenario.scen_strs(3));
}
void edit_scen_details_event_filter (short item_hit) {
#if 0
switch (item_hit) {
case 8:
if (save_scen_details() == true)
toast_dialog();
break;
default:
cd_hit_led_range(803,21,24,item_hit);
cd_hit_led_range(803,30,33,item_hit);
break;
}
#endif
static bool edit_scen_details_event_filter(cDialog& me, std::string, eKeyMod) {
if(save_scen_details(me))
me.toast(true);
return true;
}
void edit_scen_details() {
#if 0
// ignore parent in Mac version
short scen_details_hit;
cDialog info_dlg("edit-scenario-details.xml");
info_dlg["okay"].attachClickHandler(edit_scen_details_event_filter);
cd_create_dialog_parent_num(803,0);
put_scen_details_in_dlog(info_dlg);
put_scen_details_in_dlog();
scen_details_hit = cd_run_dialog();
cd_kill_dialog(803);
#endif
info_dlg.run();
}
void put_make_scen_1_in_dlog() {
#if 0
CDST(800,2,"Scenario name");

View File

@@ -1,24 +1,24 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog skin='light' defbtn='okay' debug='true'>
<field name='town1' top='100' left='214' width='67' height='16'/>
<field name='town2' top='128' left='214' width='67' height='16'/>
<field name='town3' top='156' left='214' width='67' height='16'/>
<field name='town4' top='184' left='214' width='67' height='16'/>
<field name='town5' top='212' left='214' width='67' height='16'/>
<field name='town6' top='240' left='214' width='67' height='16'/>
<field name='x1' top='100' left='329' width='39' height='16'/>
<field name='x2' top='128' left='329' width='39' height='16'/>
<field name='x3' top='156' left='329' width='39' height='16'/>
<field name='x4' top='184' left='329' width='39' height='16'/>
<field name='x5' top='212' left='329' width='39' height='16'/>
<field name='x6' top='240' left='329' width='39' height='16'/>
<field name='y1' top='100' left='410' width='39' height='16'/>
<field name='y2' top='128' left='410' width='39' height='16'/>
<field name='y3' top='156' left='410' width='39' height='16'/>
<field name='y4' top='184' left='410' width='39' height='16'/>
<field name='y5' top='212' left='410' width='39' height='16'/>
<field name='y6' top='240' left='410' width='39' height='16'/>
<field name='town1' type='int' top='100' left='214' width='67' height='16'/>
<field name='town2' type='int' top='128' left='214' width='67' height='16'/>
<field name='town3' type='int' top='156' left='214' width='67' height='16'/>
<field name='town4' type='int' top='184' left='214' width='67' height='16'/>
<field name='town5' type='int' top='212' left='214' width='67' height='16'/>
<field name='town6' type='int' top='240' left='214' width='67' height='16'/>
<field name='x1' type='uint' top='100' left='329' width='39' height='16'/>
<field name='x2' type='uint' top='128' left='329' width='39' height='16'/>
<field name='x3' type='uint' top='156' left='329' width='39' height='16'/>
<field name='x4' type='uint' top='184' left='329' width='39' height='16'/>
<field name='x5' type='uint' top='212' left='329' width='39' height='16'/>
<field name='x6' type='uint' top='240' left='329' width='39' height='16'/>
<field name='y1' type='uint' top='100' left='410' width='39' height='16'/>
<field name='y2' type='uint' top='128' left='410' width='39' height='16'/>
<field name='y3' type='uint' top='156' left='410' width='39' height='16'/>
<field name='y4' type='uint' top='184' left='410' width='39' height='16'/>
<field name='y5' type='uint' top='212' left='410' width='39' height='16'/>
<field name='y6' type='uint' top='240' left='410' width='39' height='16'/>
<button name='okay' type='regular' top='268' left='468'>OK</button>
<text top='268' left='381' width='75' height='16'/>
<button name='left' type='left' top='268' left='51'/>

View File

@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog skin='dark' defbtn='okay'>
<field name="number" type='num' top='36' left='133' width='75' height='16'/>
<field name="number" type='uint' top='36' left='133' width='75' height='16'/>
<pict type='dlog' num='2' top='8' left='8'/>
<text name='prompt' size='large' top='8' left='49' width='255' height='16'>What day would you like it to be?</text>
<button name='okay' type='regular' top='140' left='243'>OK</button>

View File

@@ -1,24 +1,24 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog skin='light' defbtn='okay' debug='true'>
<field name='town1' top='143' left='214' width='67' height='16'/>
<field name='town2' top='171' left='214' width='67' height='16'/>
<field name='town3' top='199' left='214' width='67' height='16'/>
<field name='town4' top='227' left='214' width='67' height='16'/>
<field name='town5' top='255' left='214' width='67' height='16'/>
<field name='town6' top='283' left='214' width='67' height='16'/>
<field name='x1' top='143' left='329' width='39' height='16'/>
<field name='x2' top='171' left='329' width='39' height='16'/>
<field name='x3' top='199' left='329' width='39' height='16'/>
<field name='x4' top='227' left='329' width='39' height='16'/>
<field name='x5' top='255' left='329' width='39' height='16'/>
<field name='x6' top='283' left='329' width='39' height='16'/>
<field name='y1' top='143' left='410' width='39' height='16'/>
<field name='y2' top='171' left='410' width='39' height='16'/>
<field name='y3' top='199' left='410' width='39' height='16'/>
<field name='y4' top='227' left='410' width='39' height='16'/>
<field name='y5' top='255' left='410' width='39' height='16'/>
<field name='y6' top='283' left='410' width='39' height='16'/>
<field name='town1' type='int' top='143' left='214' width='67' height='16'/>
<field name='town2' type='int' top='171' left='214' width='67' height='16'/>
<field name='town3' type='int' top='199' left='214' width='67' height='16'/>
<field name='town4' type='int' top='227' left='214' width='67' height='16'/>
<field name='town5' type='int' top='255' left='214' width='67' height='16'/>
<field name='town6' type='int' top='283' left='214' width='67' height='16'/>
<field name='x1' type='uint' top='143' left='329' width='39' height='16'/>
<field name='x2' type='uint' top='171' left='329' width='39' height='16'/>
<field name='x3' type='uint' top='199' left='329' width='39' height='16'/>
<field name='x4' type='uint' top='227' left='329' width='39' height='16'/>
<field name='x5' type='uint' top='255' left='329' width='39' height='16'/>
<field name='x6' type='uint' top='283' left='329' width='39' height='16'/>
<field name='y1' type='uint' top='143' left='410' width='39' height='16'/>
<field name='y2' type='uint' top='171' left='410' width='39' height='16'/>
<field name='y3' type='uint' top='199' left='410' width='39' height='16'/>
<field name='y4' type='uint' top='227' left='410' width='39' height='16'/>
<field name='y5' type='uint' top='255' left='410' width='39' height='16'/>
<field name='y6' type='uint' top='283' left='410' width='39' height='16'/>
<button name='okay' type='regular' top='309' left='463'>OK</button>
<button name='left' type='left' top='309' left='52'/>
<button name='right' type='right' top='309' left='115'/>

View File

@@ -7,7 +7,7 @@
<field name='str4' top='221' left='57' width='540' height='39'/>
<field name='str5' top='267' left='57' width='540' height='39'/>
<field name='str6' top='313' left='57' width='540' height='39'/>
<field name='picnum' top='19' left='523' width='70' height='16'/>
<field name='picnum' type='uint' top='19' left='523' width='70' height='16'/>
<button name='okay' type='regular' top='358' left='541'>OK</button>
<button name='cancel' type='regular' def-key='esc' top='358' left='475'>Cancel</button>
<pict name='pic' type='scen' num='0' top='8' left='8'/>

View File

@@ -1,27 +1,27 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog skin='light' defbtn='okay' debug='true'>
<field name='item1' top='188' left='73' width='39' height='16'/>
<field name='item2' top='216' left='73' width='39' height='16'/>
<field name='item3' top='244' left='73' width='39' height='16'/>
<field name='item4' top='272' left='73' width='39' height='16'/>
<field name='item5' top='300' left='73' width='39' height='16'/>
<field name='item6' top='188' left='309' width='39' height='16'/>
<field name='item7' top='216' left='309' width='39' height='16'/>
<field name='item8' top='244' left='309' width='39' height='16'/>
<field name='item9' top='272' left='309' width='39' height='16'/>
<field name='item10' top='300' left='309' width='39' height='16'/>
<field name='odds1' top='188' left='192' width='39' height='16'/>
<field name='odds2' top='216' left='192' width='39' height='16'/>
<field name='odds3' top='244' left='192' width='39' height='16'/>
<field name='odds4' top='272' left='192' width='39' height='16'/>
<field name='odds5' top='300' left='192' width='39' height='16'/>
<field name='odds6' top='188' left='428' width='39' height='16'/>
<field name='odds7' top='216' left='428' width='39' height='16'/>
<field name='odds8' top='244' left='428' width='39' height='16'/>
<field name='odds9' top='272' left='428' width='39' height='16'/>
<field name='odds10' top='300' left='428' width='39' height='16'/>
<field name='ter' top='113' left='410' width='42' height='17'/>
<field name='item1' type='uint' top='188' left='73' width='39' height='16'/>
<field name='item2' type='uint' top='216' left='73' width='39' height='16'/>
<field name='item3' type='uint' top='244' left='73' width='39' height='16'/>
<field name='item4' type='uint' top='272' left='73' width='39' height='16'/>
<field name='item5' type='uint' top='300' left='73' width='39' height='16'/>
<field name='item6' type='uint' top='188' left='309' width='39' height='16'/>
<field name='item7' type='uint' top='216' left='309' width='39' height='16'/>
<field name='item8' type='uint' top='244' left='309' width='39' height='16'/>
<field name='item9' type='uint' top='272' left='309' width='39' height='16'/>
<field name='item10' type='uint' top='300' left='309' width='39' height='16'/>
<field name='odds1' type='uint' top='188' left='192' width='39' height='16'/>
<field name='odds2' type='uint' top='216' left='192' width='39' height='16'/>
<field name='odds3' type='uint' top='244' left='192' width='39' height='16'/>
<field name='odds4' type='uint' top='272' left='192' width='39' height='16'/>
<field name='odds5' type='uint' top='300' left='192' width='39' height='16'/>
<field name='odds6' type='uint' top='188' left='428' width='39' height='16'/>
<field name='odds7' type='uint' top='216' left='428' width='39' height='16'/>
<field name='odds8' type='uint' top='244' left='428' width='39' height='16'/>
<field name='odds9' type='uint' top='272' left='428' width='39' height='16'/>
<field name='odds10' type='uint' top='300' left='428' width='39' height='16'/>
<field name='ter' type='int' top='113' left='410' width='42' height='17'/>
<button name='okay' type='regular' top='334' left='462'>OK</button>
<button name='cancel' type='regular' top='334' left='396' def-key='esc'>Cancel</button>
<button name='right' type='right' top='334' left='73' def-key='right'/>

View File

@@ -2,6 +2,9 @@
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<!--<!DOCTYPE dialog SYSTEM "dialog.dtd">-->
<dialog skin='light' defbtn='okay' debug='true'>
<!--
TODO: Assign numeric types (type = 'int' or 'uint') to fields as appropriate
-->
<field name='full' top='30' left='163' width='126' height='16'/>
<field name="short" top='30' left='458' width='125' height='16'/>
<field name='picnum' top='62' left='140' width='52' height='16'/>

View File

@@ -2,6 +2,9 @@
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<!--<!DOCTYPE dialog SYSTEM "dialog.dtd">-->
<dialog skin='light' defbtn='okay' debug='true'>
<!--
TODO: Assign numeric types (type = 'int' or 'uint') to fields as appropriate
-->
<field name='poison' top='53' left='206' width='52' height='16'/>
<field name='breath-str' top='77' left='206' width='52' height='16'/>
<field name='abil-xtra' top='204' left='382' width='53' height='17'/>

View File

@@ -2,6 +2,9 @@
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<!--<!DOCTYPE dialog SYSTEM "dialog.dtd">-->
<dialog skin='light' defbtn='okay' debug='true'>
<!--
TODO: Assign numeric types (type = 'int' or 'uint') to fields as appropriate
-->
<field name='name' top='30' left='180' width='186' height='16'/>
<field name='pic' top='57' left='140' width='52' height='16'/>
<field name='level' top='82' left='206' width='52' height='16'/>

View File

@@ -1,6 +1,9 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog skin='light' defbtn='okay' debug='true'>
<!--
TODO: Assign numeric types (type = 'int' or 'uint') to fields as appropriate
-->
<field name='town1' top='161' left='214' width='67' height='16'/>
<field name='top1' top='161' left='293' width='39' height='16'/>
<field name='left1' top='161' left='343' width='39' height='16'/>

View File

@@ -0,0 +1,58 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog skin='light' defbtn='okay' debug='true'>
<field name='ver1' type='uint' top='80' left='181' width='43' height='16'/>
<field name='ver2' type='uint' top='80' left='234' width='43' height='16'/>
<field name='ver3' type='uint' top='80' left='287' width='43' height='16'/>
<field name='who1' top='104' left='181' width='243' height='47'/>
<field name='who2' top='159' left='181' width='243' height='47'/>
<field name='contact' top='214' left='181' width='243' height='65'/>
<button name='okay' type='regular' top='357' left='395'>OK</button>
<pict type='dlog' num='16' top='8' left='8'/>
<text top='23' left='50' width='372' height='53'>
This is where you can define the various pieces of information the user will see when deciding whether or not to play your scenario.
The meanings of all these fields are given in the documentation.
</text>
<text size='large' top='6' left='50' width='256' height='17'>Scenario Details</text>
<text top='81' left='50' width='120' height='14'>Version number:</text>
<text top='102' left='50' width='120' height='14'>Credits, Part 1:</text>
<text top='150' left='50' width='120' height='14'>Credits, Part 2:</text>
<text top='213' left='50' width='120' height='14'>Contact Information:</text>
<text top='294' left='50' width='120' height='14'>Rating:</text>
<!--
TODO: Move these LED labels into the LED elements
-->
<text top='285' left='107' width='23' height='14'>G</text>
<text top='301' left='107' width='23' height='14'>PG</text>
<text top='318' left='107' width='23' height='14'>R</text>
<text top='335' left='107' width='32' height='14'>NC-17</text>
<!--
NOTE: These LEDs had 18 added to the width of their labels
-->
<group name='rating'>
<led name='rate1' state='off' top='288' left='164' width='41'/>
<led name='rate2' state='off' top='305' left='164' width='41'/>
<led name='rate3' state='off' top='322' left='164' width='41'/>
<led name='rate4' state='off' top='339' left='164' width='50'/>
</group>
<text top='284' left='199' width='71' height='14'>Difficulty:</text>
<!--
TODO: Move these LED labels into the LED elements
-->
<text top='284' left='280' width='76' height='15'>Low Level (1-8)</text>
<text top='301' left='281' width='103' height='15'>Medium Level (9-18)</text>
<text top='318' left='281' width='76' height='15'>High Level (19-30)</text>
<!--
TODO: Isn't there a level cap? If so, this should probably say "30-cap" (with cap replaced with the actual cap) rather than 30+.
-->
<text top='335' left='281' width='76' height='15'>Very High Level (30+)</text>
<!--
NOTE: These LEDs had 18 added to the width of their labels
-->
<group name='difficulty'>
<led name='lvl1' state='off' top='288' left='423' width='94'/>
<led name='lvl2' state='off' top='305' left='423' width='94'/>
<led name='lvl3' state='off' top='322' left='423' width='94'/>
<led name='lvl4' state='off' top='339' left='423' width='94'/>
</group>
</dialog>

View File

@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay'>
<field name='num' top='64' left='209' width='75' height='16'/>
<field name='num' type='uint' top='64' left='209' width='75' height='16'/>
<pict type='dlog' num='16' top='8' left='8'/>
<button name='okay' type='regular' top='87' left='311'>OK</button>
<text size='large' top='6' left='50' width='256' height='17'>Set Special Number:</text>

View File

@@ -3,7 +3,7 @@
<dialog skin='light' defbtn='okay' debug='true'>
<field name='name' top='57' left='195' width='252' height='16'/>
<field name='descr' top='84' left='195' width='252' height='104'/>
<field name='spec' top='249' left='268' width='87' height='16'/>
<field name='spec' type='int' top='249' left='268' width='87' height='16'/>
<button name='okay' type='regular' top='288' left='397'>OK</button>
<pict type='dlog' num='16' top='8' left='8'/>
<text size='large' top='6' left='50' width='256' height='17'>Edit Special Items</text>

View File

@@ -1,6 +1,9 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay'>
<!--
TODO: Assign numeric types (type = 'int' or 'uint') to fields as appropriate
-->
<field name='sdf1' top='120' left='254' width='51' height='16'/>
<field name='sdf2' top='120' left='510' width='51' height='16'/>
<field name='msg1' top='163' left='270' width='51' height='16'/>

View File

@@ -2,6 +2,9 @@
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<!--<!DOCTYPE dialog SYSTEM "dialog.dtd">-->
<dialog skin='light' fore='black' debug='true' defbtn='done'>
<!--
TODO: Assign numeric types (type = 'int' or 'uint') to fields as appropriate
-->
<text size='large' top='6' left='50' height='17' width='138'>Edit Terrain Type</text>
<pict name='graphic' type='ter' num='0' top='8' left='8'/>
<text top='8' left='222' height='14' width='111'>Terrain number:</text>

View File

@@ -1,6 +1,9 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog skin='light' defbtn='okay' debug='true'>
<!--
TODO: Assign numeric types (type = 'int' or 'uint') to fields as appropriate
-->
<field name='town1' top='130' left='146' width='67' height='16'/>
<field name='town2' top='158' left='146' width='67' height='16'/>
<field name='town3' top='186' left='146' width='67' height='16'/>

View File

@@ -1,6 +1,9 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog defbtn='okay' debug='true'>
<!--
TODO: Assign numeric types (type = 'int' or 'uint') to fields as appropriate
-->
<field name='extra1' top='126' left='221' width='67' height='16'/>
<field name='extra2' top='153' left='221' width='67' height='16'/>
<field name='death' top='298' left='285' width='67' height='16'/>

View File

@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<dialog skin='dark' defbtn='okay'>
<field name="number" type='num' top='127' left='216' width='75' height='16'/>
<field name="number" type='uint' top='127' left='216' width='75' height='16'/>
<pict type='dlog' num='2' top='8' left='8'/>
<text size='large' top='8' left='49' width='209' height='16'>Changing experience:</text>
<text top='27' left='49' width='288' height='67'>

View File

@@ -2,7 +2,7 @@
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
<!--<!DOCTYPE dialog SYSTEM "dialog.dtd">-->
<dialog skin='dark' defbtn='okay'>
<field name="number" type='num' top='33' left='90' width='75' height='16'/>
<field name="number" type='int' top='33' left='90' width='75' height='16'/>
<pict type='dlog' num='2' top='8' left='8'/>
<text name='prompt' size='large' top='8' left='49' width='163' height='16'>How many?</text>
<button name='okay' type='regular' top='63' left='141'>OK</button>

View File

@@ -158,7 +158,9 @@
<xs:attribute name="type" default="text">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="num"/>
<xs:enumeration value="int"/>
<xs:enumeration value="uint"/>
<xs:enumeration value="real"/>
<xs:enumeration value="text"/>
</xs:restriction>
</xs:simpleType>