diff --git a/rsrc/schemas/dialog.xsd b/rsrc/schemas/dialog.xsd index c349f0b4..b69078a1 100644 --- a/rsrc/schemas/dialog.xsd +++ b/rsrc/schemas/dialog.xsd @@ -125,11 +125,18 @@ - - - - - + + + + + + + + + + + + diff --git a/src/dialogxml/widgets/control.cpp b/src/dialogxml/widgets/control.cpp index 9b480622..c4f2ea0c 100644 --- a/src/dialogxml/widgets/control.cpp +++ b/src/dialogxml/widgets/control.cpp @@ -535,7 +535,16 @@ bool cControl::parseAttribute(ticpp::Attribute& attr, std::string tagName, std:: if(val == "small") setFormat(TXT_SIZE, 10); else if(val == "large") setFormat(TXT_SIZE, 12); else if(val == "title") setFormat(TXT_SIZE, 18); - else throw xBadVal(tagName, name, val, attr.Row(), attr.Column(), fname); + else{ + auto err = xBadVal(tagName, name, val, attr.Row(), attr.Column(), fname); + try{ + setFormat(TXT_SIZE, std::stoi(val)); + }catch(std::invalid_argument& e){ + throw err; + }catch(std::out_of_range& e){ + throw err; + } + } return true; } if(name == "wrap" && canFormat(TXT_WRAP)) {