Add cancel button to advanced scenario details (re #685)
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||||
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
|
<!-- NOTE: This file should be updated to use relative positioning the next time it changes. -->
|
||||||
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
|
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
|
||||||
<dialog defbtn='okay'>
|
<dialog defbtn='okay' escbtn='cancel'>
|
||||||
<pict type='dlog' num='16' top='8' left='8'/>
|
<pict type='dlog' num='16' top='8' left='8'/>
|
||||||
<text size='large' top='6' left='50' width='256' height='17'>Scenario Advanced Details</text>
|
<text size='large' top='6' left='50' width='256' height='17'>Scenario Advanced Details</text>
|
||||||
|
|
||||||
@@ -32,4 +32,5 @@
|
|||||||
<button name='bg-fight' type='tiny' top='235' left='180'>In combat:</button>
|
<button name='bg-fight' type='tiny' top='235' left='180'>In combat:</button>
|
||||||
|
|
||||||
<button name='okay' type='regular' top='304' left='395'>OK</button>
|
<button name='okay' type='regular' top='304' left='395'>OK</button>
|
||||||
|
<button name='cancel' type='regular' relative='neg pos-in' rel-anchor='prev' top='0' left='73'>Cancel</button>
|
||||||
</dialog>
|
</dialog>
|
@@ -2819,21 +2819,11 @@ static void put_scen_details_in_dlog(cDialog& me) {
|
|||||||
me["contact"].setText(scenario.contact_info[1]);
|
me["contact"].setText(scenario.contact_info[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool save_scen_adv_details(cDialog& me, std::string, eKeyMod) {
|
static bool save_scen_adv_details(cDialog& me, std::string item_hit, eKeyMod) {
|
||||||
if(!me.toast(true)) return true;
|
me.toast(item_hit == "okay");
|
||||||
|
|
||||||
scenario.adjust_diff = dynamic_cast<cLed&>(me["adjust"]).getState() != led_red;
|
|
||||||
|
|
||||||
scenario.campaign_id = me["cpnid"].getText();
|
|
||||||
scenario.bg_out = boost::lexical_cast<int>(me["bg-out"].getText().substr(10));
|
|
||||||
scenario.bg_town = boost::lexical_cast<int>(me["bg-town"].getText().substr(10));
|
|
||||||
scenario.bg_dungeon = boost::lexical_cast<int>(me["bg-dungeon"].getText().substr(13));
|
|
||||||
scenario.bg_fight = boost::lexical_cast<int>(me["bg-fight"].getText().substr(11));
|
|
||||||
scenario.init_spec = me["oninit"].getTextAsNum();
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void put_scen_adv_details_in_dlog(cDialog& me) {
|
static void put_scen_adv_details_in_dlog(cDialog& me) {
|
||||||
dynamic_cast<cLed&>(me["adjust"]).setState(scenario.adjust_diff ? led_red : led_off);
|
dynamic_cast<cLed&>(me["adjust"]).setState(scenario.adjust_diff ? led_red : led_off);
|
||||||
me["cpnid"].setText(scenario.campaign_id);
|
me["cpnid"].setText(scenario.campaign_id);
|
||||||
@@ -2887,12 +2877,23 @@ void edit_scen_details() {
|
|||||||
|
|
||||||
void edit_scen_adv_details() {
|
void edit_scen_adv_details() {
|
||||||
cDialog info_dlg(*ResMgr::dialogs.get("edit-scenario-advanced"));
|
cDialog info_dlg(*ResMgr::dialogs.get("edit-scenario-advanced"));
|
||||||
info_dlg["okay"].attachClickHandler(save_scen_adv_details);
|
info_dlg.attachClickHandlers(save_scen_adv_details, {"okay", "cancel"});
|
||||||
info_dlg.attachClickHandlers(edit_scen_default_bgs, {"bg-out", "bg-town", "bg-dungeon", "bg-fight"});
|
info_dlg.attachClickHandlers(edit_scen_default_bgs, {"bg-out", "bg-town", "bg-dungeon", "bg-fight"});
|
||||||
info_dlg["pickinit"].attachClickHandler(edit_scen_init_spec);
|
info_dlg["pickinit"].attachClickHandler(edit_scen_init_spec);
|
||||||
|
|
||||||
put_scen_adv_details_in_dlog(info_dlg);
|
put_scen_adv_details_in_dlog(info_dlg);
|
||||||
info_dlg.run();
|
info_dlg.run();
|
||||||
|
|
||||||
|
if(info_dlg.accepted()){
|
||||||
|
scenario.adjust_diff = dynamic_cast<cLed&>(info_dlg["adjust"]).getState() != led_red;
|
||||||
|
|
||||||
|
scenario.campaign_id = info_dlg["cpnid"].getText();
|
||||||
|
scenario.bg_out = boost::lexical_cast<int>(info_dlg["bg-out"].getText().substr(10));
|
||||||
|
scenario.bg_town = boost::lexical_cast<int>(info_dlg["bg-town"].getText().substr(10));
|
||||||
|
scenario.bg_dungeon = boost::lexical_cast<int>(info_dlg["bg-dungeon"].getText().substr(13));
|
||||||
|
scenario.bg_fight = boost::lexical_cast<int>(info_dlg["bg-fight"].getText().substr(11));
|
||||||
|
scenario.init_spec = info_dlg["oninit"].getTextAsNum();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool edit_make_scen_1(std::string& author,std::string& title,bool& grass) {
|
bool edit_make_scen_1(std::string& author,std::string& title,bool& grass) {
|
||||||
|
Reference in New Issue
Block a user