diff -r 0e4f009eab8b -r 67188bd752db save_details_widget.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/save_details_widget.cc Mon Jul 07 08:10:39 2008 -0500 @@ -0,0 +1,616 @@ +#include "save_details_widget.h" +#include "mapstorage.h" + +SaveDetailsWidget::SaveDetailsWidget(MapStorage* ms) : + pMapStorage(ms) +{ + Gtk::Notebook* nb = Gtk::manage(new Gtk::Notebook); + pack_start(*nb, Gtk::PACK_EXPAND_WIDGET); + + nb->set_tab_pos(Gtk::POS_TOP); + + Gtk::VBox* vblueMaps = Gtk::manage(new Gtk::VBox(false, 18)); + vblueMaps->set_border_width(12); + + Gtk::VBox* vbArcMaps = Gtk::manage(new Gtk::VBox(false, 18)); + vbArcMaps->set_border_width(12); + + Gtk::VBox* vbSpecMaps = Gtk::manage(new Gtk::VBox(false, 18)); + vbSpecMaps->set_border_width(12); + + Gtk::VBox* vbGuiSect = Gtk::manage(new Gtk::VBox(false, 18)); + vbGuiSect->set_border_width(12); + + nb->append_page(*vbSpecMaps, "Special Maps"); + nb->append_page(*vblueMaps, "Node Maps"); + nb->append_page(*vbArcMaps, "Arc Maps"); + nb->append_page(*vbGuiSect, "GUI Section"); + + // child widgets of vbSpecMaps + + { + Gtk::VBox* box1 = Gtk::manage(new Gtk::VBox(false, 6)); + vbSpecMaps->pack_start(*box1, Gtk::PACK_SHRINK); + + Gtk::Label* lblNodeCoordMap = + Gtk::manage(new Gtk::Label("Node Coordinates")); + lblNodeCoordMap->set_alignment(Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER); + lblNodeCoordMap->set_use_markup(); + box1->pack_start(*lblNodeCoordMap, Gtk::PACK_SHRINK); + + Gtk::HBox* box2 = Gtk::manage(new Gtk::HBox); + box1->pack_start(*box2, Gtk::PACK_SHRINK); + + Gtk::Label* fill1 = Gtk::manage(new Gtk::Label(" ")); + box2->pack_start(*fill1, Gtk::PACK_SHRINK); + + Gtk::VBox* box3 = Gtk::manage(new Gtk::VBox); + box2->pack_start(*box3, Gtk::PACK_SHRINK); + + rblueCoordGuiSection.set_label("Save to GUI section"); + rblueCoordNodesetSection.set_label("Save to Nodeset section"); + Gtk::RadioButtonGroup group = rblueCoordGuiSection.get_group(); + rblueCoordNodesetSection.set_group(group); + + box3->pack_start(rblueCoordGuiSection, Gtk::PACK_SHRINK); + box3->pack_start(rblueCoordNodesetSection, Gtk::PACK_SHRINK); + + Gtk::HBox* box4 = Gtk::manage(new Gtk::HBox); + box3->pack_start(*box4, Gtk::PACK_SHRINK); + + Gtk::Label* fill2 = Gtk::manage(new Gtk::Label(" ")); + box4->pack_start(*fill2, Gtk::PACK_SHRINK); + + Gtk::Table* table1 = Gtk::manage(new Gtk::Table(3, 2)); + box4->pack_start(*table1, Gtk::PACK_SHRINK); + + rblueCoordOneMap.set_label("As one map"); + rblueCoordTwoMaps.set_label("As two maps"); + group = rblueCoordOneMap.get_group(); + rblueCoordTwoMaps.set_group(group); + + table1->attach(rblueCoordOneMap, 0, 1, 0, 1); + table1->attach(rblueCoordTwoMaps, 0, 1, 1, 2); + table1->attach(entNodeCoordsOneMap, 1, 2, 0, 1); + table1->attach(entNodeCoordsTwoMaps1, 1, 2, 1, 2); + table1->attach(entNodeCoordsTwoMaps2, 1, 2, 2, 3); + + switch (pMapStorage->getNodeCoordsSaveDest()) + { + case MapStorage::SpecMapSaveOpts::GUI_SECT: + rblueCoordGuiSection.set_active(); + rblueCoordOneMap.set_sensitive(false); + rblueCoordTwoMaps.set_sensitive(false); + entNodeCoordsOneMap.set_sensitive(false); + entNodeCoordsTwoMaps1.set_sensitive(false); + entNodeCoordsTwoMaps2.set_sensitive(false); + break; + case MapStorage::SpecMapSaveOpts::NESET_SECT: + rblueCoordNodesetSection.set_active(); + rblueCoordOneMap.set_sensitive(true); + rblueCoordTwoMaps.set_sensitive(true); + switch (pMapStorage->getNodeCoordsSaveMapNum()) + { + case MapStorage::SpecMapSaveOpts::ONE_MAP: + rblueCoordOneMap.set_active(); + entNodeCoordsOneMap.set_sensitive(true); + entNodeCoordsTwoMaps1.set_sensitive(false); + entNodeCoordsTwoMaps2.set_sensitive(false); + break; + case MapStorage::SpecMapSaveOpts::TWO_MAPS: + rblueCoordTwoMaps.set_active(); + entNodeCoordsOneMap.set_sensitive(false); + entNodeCoordsTwoMaps1.set_sensitive(true); + entNodeCoordsTwoMaps2.set_sensitive(true); + break; + } + break; + } + + entNodeCoordsOneMap.set_text(pMapStorage->getNodeCoordsOneMapName()); + entNodeCoordsTwoMaps1.set_text(pMapStorage->getNodeCoordsTwoMaps1Name()); + entNodeCoordsTwoMaps2.set_text(pMapStorage->getNodeCoordsTwoMaps2Name()); + + entNodeCoordsOneMap.signal_changed().connect( + sigc::mem_fun(*this, &SaveDetailsWidget::onNodeCoordsOneMapName)); + entNodeCoordsTwoMaps1.signal_changed().connect( + sigc::mem_fun(*this, &SaveDetailsWidget::onNodeCoordsTwoMaps1Name)); + entNodeCoordsTwoMaps2.signal_changed().connect( + sigc::mem_fun(*this, &SaveDetailsWidget::onNodeCoordsTwoMaps2Name)); + + rblueCoordGuiSection.signal_toggled().connect( + sigc::mem_fun(*this, &SaveDetailsWidget::onNodeCoordSaveDestChanged)); + rblueCoordNodesetSection.signal_toggled().connect( + sigc::mem_fun(*this, &SaveDetailsWidget::onNodeCoordSaveDestChanged)); + rblueCoordOneMap.signal_toggled().connect( + sigc::mem_fun(*this, &SaveDetailsWidget::onNodeCoordMapNumChanged)); + rblueCoordTwoMaps.signal_toggled().connect( + sigc::mem_fun(*this, &SaveDetailsWidget::onNodeCoordMapNumChanged)); + } + + { + Gtk::VBox* box1 = Gtk::manage(new Gtk::VBox(false, 6)); + vbSpecMaps->pack_start(*box1, Gtk::PACK_SHRINK); + + Gtk::Label* lblArrowCoordMap = + Gtk::manage(new Gtk::Label("Arrow Coordinates")); + lblArrowCoordMap->set_alignment(Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER); + lblArrowCoordMap->set_use_markup(); + box1->pack_start(*lblArrowCoordMap, Gtk::PACK_SHRINK); + + Gtk::HBox* box2 = Gtk::manage(new Gtk::HBox); + box1->pack_start(*box2, Gtk::PACK_SHRINK); + + Gtk::Label* fill1 = Gtk::manage(new Gtk::Label(" ")); + box2->pack_start(*fill1, Gtk::PACK_SHRINK); + + Gtk::VBox* box3 = Gtk::manage(new Gtk::VBox); + box2->pack_start(*box3, Gtk::PACK_SHRINK); + + rbArrowCoordGuiSection.set_label("Save to GUI section"); + rbArrowCoordArcsetSection.set_label("Save to Arcset section"); + Gtk::RadioButtonGroup group = rbArrowCoordGuiSection.get_group(); + rbArrowCoordArcsetSection.set_group(group); + + box3->pack_start(rbArrowCoordGuiSection, Gtk::PACK_SHRINK); + box3->pack_start(rbArrowCoordArcsetSection, Gtk::PACK_SHRINK); + + Gtk::HBox* box4 = Gtk::manage(new Gtk::HBox); + box3->pack_start(*box4, Gtk::PACK_SHRINK); + + Gtk::Label* fill2 = Gtk::manage(new Gtk::Label(" ")); + box4->pack_start(*fill2, Gtk::PACK_SHRINK); + + Gtk::Table* table1 = Gtk::manage(new Gtk::Table(3, 2)); + box4->pack_start(*table1, Gtk::PACK_SHRINK); + + rbArrowCoordOneMap.set_label("As one map"); + rbArrowCoordTwoMaps.set_label("As two maps"); + group = rbArrowCoordOneMap.get_group(); + rbArrowCoordTwoMaps.set_group(group); + + table1->attach(rbArrowCoordOneMap, 0, 1, 0, 1); + table1->attach(rbArrowCoordTwoMaps, 0, 1, 1, 2); + table1->attach(entArrowCoordsOneMap, 1, 2, 0, 1); + table1->attach(entArrowCoordsTwoMaps1, 1, 2, 1, 2); + table1->attach(entArrowCoordsTwoMaps2, 1, 2, 2, 3); + + switch (pMapStorage->getArrowCoordsSaveDest()) + { + case MapStorage::SpecMapSaveOpts::GUI_SECT: + rbArrowCoordGuiSection.set_active(); + rbArrowCoordOneMap.set_sensitive(false); + rbArrowCoordTwoMaps.set_sensitive(false); + entArrowCoordsOneMap.set_sensitive(false); + entArrowCoordsTwoMaps1.set_sensitive(false); + entArrowCoordsTwoMaps2.set_sensitive(false); + break; + case MapStorage::SpecMapSaveOpts::NESET_SECT: + rbArrowCoordArcsetSection.set_active(); + rbArrowCoordOneMap.set_sensitive(true); + rbArrowCoordTwoMaps.set_sensitive(true); + switch (pMapStorage->getArrowCoordsSaveMapNum()) + { + case MapStorage::SpecMapSaveOpts::ONE_MAP: + rbArrowCoordOneMap.set_active(); + entArrowCoordsOneMap.set_sensitive(true); + entArrowCoordsTwoMaps1.set_sensitive(false); + entArrowCoordsTwoMaps2.set_sensitive(false); + break; + case MapStorage::SpecMapSaveOpts::TWO_MAPS: + rbArrowCoordTwoMaps.set_active(); + entArrowCoordsOneMap.set_sensitive(false); + entArrowCoordsTwoMaps1.set_sensitive(true); + entArrowCoordsTwoMaps2.set_sensitive(true); + break; + } + break; + } + + entArrowCoordsOneMap.set_text(pMapStorage->getArrowCoordsOneMapName()); + entArrowCoordsTwoMaps1.set_text(pMapStorage->getArrowCoordsTwoMaps1Name()); + entArrowCoordsTwoMaps2.set_text(pMapStorage->getArrowCoordsTwoMaps2Name()); + + entArrowCoordsOneMap.signal_changed().connect( + sigc::mem_fun(*this, &SaveDetailsWidget::onArrowCoordsOneMapName)); + entArrowCoordsTwoMaps1.signal_changed().connect( + sigc::mem_fun(*this, &SaveDetailsWidget::onArrowCoordsTwoMaps1Name)); + entArrowCoordsTwoMaps2.signal_changed().connect( + sigc::mem_fun(*this, &SaveDetailsWidget::onArrowCoordsTwoMaps2Name)); + + rbArrowCoordGuiSection.signal_toggled().connect( + sigc::mem_fun(*this, &SaveDetailsWidget::onArrowCoordSaveDestChanged)); + rbArrowCoordArcsetSection.signal_toggled().connect( + sigc::mem_fun(*this, &SaveDetailsWidget::onArrowCoordSaveDestChanged)); + rbArrowCoordOneMap.signal_toggled().connect( + sigc::mem_fun(*this, &SaveDetailsWidget::onArrowCoordMapNumChanged)); + rbArrowCoordTwoMaps.signal_toggled().connect( + sigc::mem_fun(*this, &SaveDetailsWidget::onArrowCoordMapNumChanged)); + } + + // child widgets of vbGuiSect + + { + Gtk::VBox* box1 = Gtk::manage(new Gtk::VBox(false, 6)); + vbGuiSect->pack_start(*box1, Gtk::PACK_SHRINK); + + Gtk::Label* lblGuiSectionSave = + Gtk::manage(new Gtk::Label("Save Destination")); + lblGuiSectionSave->set_alignment(Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER); + lblGuiSectionSave->set_use_markup(); + box1->pack_start(*lblGuiSectionSave, Gtk::PACK_SHRINK); + + rbLgfFile.set_label("Lgf file"); + rbConfFile.set_label("Conf file"); + + Gtk::RadioButtonGroup group = rbLgfFile.get_group(); + rbConfFile.set_group(group); + + switch (pMapStorage->getGUIDataSaveLocation()) + { + case MapStorage::LGF_FILE: + rbLgfFile.set_active(); + break; + case MapStorage::CONF_FILE: + rbConfFile.set_active(); + break; + } + + Gtk::HBox* box2 = Gtk::manage(new Gtk::HBox); + box1->pack_start(*box2, Gtk::PACK_SHRINK); + + Gtk::Label* fill1 = Gtk::manage(new Gtk::Label(" ")); + box2->pack_start(*fill1, Gtk::PACK_SHRINK); + + Gtk::VBox* box3 = Gtk::manage(new Gtk::VBox); + box2->pack_start(*box3, Gtk::PACK_SHRINK); + + box3->pack_start(rbLgfFile, Gtk::PACK_SHRINK); + box3->pack_start(rbConfFile, Gtk::PACK_SHRINK); + + rbLgfFile.signal_toggled().connect( + sigc::mem_fun(*this, &SaveDetailsWidget::onGuiSectSaveDestChanged)); + rbConfFile.signal_toggled().connect( + sigc::mem_fun(*this, &SaveDetailsWidget::onGuiSectSaveDestChanged)); + } + + // child widgets of vblueMaps + + { + Gtk::VBox* box1 = Gtk::manage(new Gtk::VBox(false, 6)); + vblueMaps->pack_start(*box1, Gtk::PACK_SHRINK); + + Gtk::Label* label1 = + Gtk::manage(new Gtk::Label("Save Destination")); + label1->set_alignment(Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER); + label1->set_use_markup(); + box1->pack_start(*label1, Gtk::PACK_SHRINK); + + Gtk::HBox* box2 = Gtk::manage(new Gtk::HBox); + box1->pack_start(*box2, Gtk::PACK_SHRINK); + + Gtk::Label* fill1 = Gtk::manage(new Gtk::Label(" ")); + box2->pack_start(*fill1, Gtk::PACK_SHRINK); + + Gtk::Frame* frame = Gtk::manage(new Gtk::Frame); + box2->pack_start(*frame, Gtk::PACK_EXPAND_WIDGET); + + Gtk::ScrolledWindow* swNodeMaps = Gtk::manage(new Gtk::ScrolledWindow); + frame->add(*swNodeMaps); + + swNodeMaps->add(twNodeMaps); + + refNodeMapStore = Gtk::ListStore::create(NodeMapColumns); + + std::vector node_maps = pMapStorage->getNodeMapList(); + for (std::vector::const_iterator it = node_maps.begin(); + it != node_maps.end(); ++it) + { + Gtk::TreeModel::Row row = *(refNodeMapStore->append()); + row[NodeMapColumns.colName] = *it; + switch (pMapStorage->getNodeMapSaveDest(*it)) + { + case MapStorage::GUI_SECT: + row[NodeMapColumns.colSaveToMainSect] = false; + row[NodeMapColumns.colSaveToGuiSect] = true; + break; + case MapStorage::NESET_SECT: + row[NodeMapColumns.colSaveToMainSect] = true; + row[NodeMapColumns.colSaveToGuiSect] = false; + break; + case MapStorage::DONT_SAVE: + row[NodeMapColumns.colSaveToMainSect] = false; + row[NodeMapColumns.colSaveToGuiSect] = false; + break; + } + } + + twNodeMaps.set_model(refNodeMapStore); + twNodeMaps.append_column("Name", NodeMapColumns.colName); + twNodeMaps.append_column_editable("Nodeset section", + NodeMapColumns.colSaveToMainSect); + twNodeMaps.append_column_editable("GUI section", + NodeMapColumns.colSaveToGuiSect); + + swNodeMaps->set_size_request(-1, 200); + swNodeMaps->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); + + refNodeMapStore->signal_row_changed().connect( + sigc::mem_fun(*this, &SaveDetailsWidget::onNodeMapRowChanged)); + } + + // child widgets of vbArcMaps + + { + Gtk::VBox* box1 = Gtk::manage(new Gtk::VBox(false, 6)); + vbArcMaps->pack_start(*box1, Gtk::PACK_SHRINK); + + Gtk::Label* label1 = + Gtk::manage(new Gtk::Label("Save Destination")); + label1->set_alignment(Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER); + label1->set_use_markup(); + box1->pack_start(*label1, Gtk::PACK_SHRINK); + + Gtk::HBox* box2 = Gtk::manage(new Gtk::HBox); + box1->pack_start(*box2, Gtk::PACK_SHRINK); + + Gtk::Label* fill1 = Gtk::manage(new Gtk::Label(" ")); + box2->pack_start(*fill1, Gtk::PACK_SHRINK); + + Gtk::Frame* frame = Gtk::manage(new Gtk::Frame); + box2->pack_start(*frame, Gtk::PACK_EXPAND_WIDGET); + + Gtk::ScrolledWindow* swArcMaps = Gtk::manage(new Gtk::ScrolledWindow); + frame->add(*swArcMaps); + + swArcMaps->add(twArcMaps); + + refArcMapStore = Gtk::ListStore::create(ArcMapColumns); + + std::vector arc_maps = pMapStorage->getArcMapList(); + for (std::vector::const_iterator it = arc_maps.begin(); + it != arc_maps.end(); ++it) + { + Gtk::TreeModel::Row row = *(refArcMapStore->append()); + row[ArcMapColumns.colName] = *it; + switch (pMapStorage->getArcMapSaveDest(*it)) + { + case MapStorage::GUI_SECT: + row[ArcMapColumns.colSaveToMainSect] = false; + row[ArcMapColumns.colSaveToGuiSect] = true; + break; + case MapStorage::NESET_SECT: + row[ArcMapColumns.colSaveToMainSect] = true; + row[ArcMapColumns.colSaveToGuiSect] = false; + break; + case MapStorage::DONT_SAVE: + row[ArcMapColumns.colSaveToMainSect] = false; + row[ArcMapColumns.colSaveToGuiSect] = false; + break; + } + } + + twArcMaps.set_model(refArcMapStore); + twArcMaps.append_column("Name", ArcMapColumns.colName); + twArcMaps.append_column_editable("Arcset section", + ArcMapColumns.colSaveToMainSect); + twArcMaps.append_column_editable("GUI section", + ArcMapColumns.colSaveToGuiSect); + + swArcMaps->set_size_request(-1, 200); + swArcMaps->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); + + refArcMapStore->signal_row_changed().connect( + sigc::mem_fun(*this, &SaveDetailsWidget::onArcMapRowChanged)); + } + + show_all_children(); +} + +void SaveDetailsWidget::onGuiSectSaveDestChanged() +{ + if (rbLgfFile.get_active()) + { + pMapStorage->setGUIDataSaveLocation(MapStorage::LGF_FILE); + } + else if (rbConfFile.get_active()) + { + pMapStorage->setGUIDataSaveLocation(MapStorage::CONF_FILE); + } +} + +void SaveDetailsWidget::onArcMapRowChanged(const Gtk::TreeModel::Path& path, + const Gtk::TreeModel::iterator& iter) +{ + Gtk::TreeModel::Row row = *iter; + Glib::ustring map_name = row[ArcMapColumns.colName]; + if (row[ArcMapColumns.colSaveToMainSect] && + row[ArcMapColumns.colSaveToGuiSect]) + { + if (pMapStorage->getArcMapSaveDest(map_name) == MapStorage::NESET_SECT) + { + pMapStorage->setArcMapSaveDest(map_name, MapStorage::GUI_SECT); + row[ArcMapColumns.colSaveToMainSect] = false; + } + else + { + pMapStorage->setArcMapSaveDest(map_name, MapStorage::NESET_SECT); + row[ArcMapColumns.colSaveToGuiSect] = false; + } + } + else if (row[ArcMapColumns.colSaveToMainSect]) + { + pMapStorage->setArcMapSaveDest(map_name, MapStorage::NESET_SECT); + } + else if (row[ArcMapColumns.colSaveToGuiSect]) + { + pMapStorage->setArcMapSaveDest(map_name, MapStorage::GUI_SECT); + } + else + { + pMapStorage->setArcMapSaveDest(map_name, MapStorage::DONT_SAVE); + } +} + +void SaveDetailsWidget::onNodeMapRowChanged(const Gtk::TreeModel::Path& path, + const Gtk::TreeModel::iterator& iter) +{ + Gtk::TreeModel::Row row = *iter; + Glib::ustring map_name = row[NodeMapColumns.colName]; + if (row[NodeMapColumns.colSaveToMainSect] && + row[NodeMapColumns.colSaveToGuiSect]) + { + if (pMapStorage->getNodeMapSaveDest(map_name) == MapStorage::NESET_SECT) + { + pMapStorage->setNodeMapSaveDest(map_name, MapStorage::GUI_SECT); + row[NodeMapColumns.colSaveToMainSect] = false; + } + else + { + pMapStorage->setNodeMapSaveDest(map_name, MapStorage::NESET_SECT); + row[NodeMapColumns.colSaveToGuiSect] = false; + } + } + else if (row[NodeMapColumns.colSaveToMainSect]) + { + pMapStorage->setNodeMapSaveDest(map_name, MapStorage::NESET_SECT); + } + else if (row[NodeMapColumns.colSaveToGuiSect]) + { + pMapStorage->setNodeMapSaveDest(map_name, MapStorage::GUI_SECT); + } + else + { + pMapStorage->setNodeMapSaveDest(map_name, MapStorage::DONT_SAVE); + } +} + +void SaveDetailsWidget::onNodeCoordSaveDestChanged() +{ + if (rblueCoordGuiSection.get_active()) + { + pMapStorage->setNodeCoordsSaveDest(MapStorage::SpecMapSaveOpts::GUI_SECT); + rblueCoordOneMap.set_sensitive(false); + rblueCoordTwoMaps.set_sensitive(false); + entNodeCoordsOneMap.set_sensitive(false); + entNodeCoordsTwoMaps1.set_sensitive(false); + entNodeCoordsTwoMaps2.set_sensitive(false); + } + else if (rblueCoordNodesetSection.get_active()) + { + pMapStorage->setNodeCoordsSaveDest(MapStorage::SpecMapSaveOpts::NESET_SECT); + rblueCoordOneMap.set_sensitive(true); + rblueCoordTwoMaps.set_sensitive(true); + switch (pMapStorage->getNodeCoordsSaveMapNum()) + { + case MapStorage::SpecMapSaveOpts::ONE_MAP: + entNodeCoordsOneMap.set_sensitive(true); + entNodeCoordsTwoMaps1.set_sensitive(false); + entNodeCoordsTwoMaps2.set_sensitive(false); + break; + case MapStorage::SpecMapSaveOpts::TWO_MAPS: + entNodeCoordsOneMap.set_sensitive(false); + entNodeCoordsTwoMaps1.set_sensitive(true); + entNodeCoordsTwoMaps2.set_sensitive(true); + break; + } + } +} + +void SaveDetailsWidget::onNodeCoordMapNumChanged() +{ + if (rblueCoordOneMap.get_active()) + { + pMapStorage->setNodeCoordsSaveMapNum(MapStorage::SpecMapSaveOpts::ONE_MAP); + entNodeCoordsOneMap.set_sensitive(true); + entNodeCoordsTwoMaps1.set_sensitive(false); + entNodeCoordsTwoMaps2.set_sensitive(false); + } + else if (rblueCoordTwoMaps.get_active()) + { + pMapStorage->setNodeCoordsSaveMapNum(MapStorage::SpecMapSaveOpts::TWO_MAPS); + entNodeCoordsOneMap.set_sensitive(false); + entNodeCoordsTwoMaps1.set_sensitive(true); + entNodeCoordsTwoMaps2.set_sensitive(true); + } +} + +void SaveDetailsWidget::onNodeCoordsOneMapName() +{ + pMapStorage->setNodeCoordsOneMapName(entNodeCoordsOneMap.get_text()); +} +void SaveDetailsWidget::onNodeCoordsTwoMaps1Name() +{ + pMapStorage->setNodeCoordsTwoMaps1Name(entNodeCoordsTwoMaps1.get_text()); +} +void SaveDetailsWidget::onNodeCoordsTwoMaps2Name() +{ + pMapStorage->setNodeCoordsTwoMaps2Name(entNodeCoordsTwoMaps2.get_text()); +} + +void SaveDetailsWidget::onArrowCoordSaveDestChanged() +{ + if (rbArrowCoordGuiSection.get_active()) + { + pMapStorage->setArrowCoordsSaveDest(MapStorage::SpecMapSaveOpts::GUI_SECT); + rbArrowCoordOneMap.set_sensitive(false); + rbArrowCoordTwoMaps.set_sensitive(false); + entArrowCoordsOneMap.set_sensitive(false); + entArrowCoordsTwoMaps1.set_sensitive(false); + entArrowCoordsTwoMaps2.set_sensitive(false); + } + else if (rbArrowCoordArcsetSection.get_active()) + { + pMapStorage->setArrowCoordsSaveDest(MapStorage::SpecMapSaveOpts::NESET_SECT); + rbArrowCoordOneMap.set_sensitive(true); + rbArrowCoordTwoMaps.set_sensitive(true); + switch (pMapStorage->getArrowCoordsSaveMapNum()) + { + case MapStorage::SpecMapSaveOpts::ONE_MAP: + entArrowCoordsOneMap.set_sensitive(true); + entArrowCoordsTwoMaps1.set_sensitive(false); + entArrowCoordsTwoMaps2.set_sensitive(false); + break; + case MapStorage::SpecMapSaveOpts::TWO_MAPS: + entArrowCoordsOneMap.set_sensitive(false); + entArrowCoordsTwoMaps1.set_sensitive(true); + entArrowCoordsTwoMaps2.set_sensitive(true); + break; + } + } +} + +void SaveDetailsWidget::onArrowCoordMapNumChanged() +{ + if (rbArrowCoordOneMap.get_active()) + { + pMapStorage->setArrowCoordsSaveMapNum(MapStorage::SpecMapSaveOpts::ONE_MAP); + entArrowCoordsOneMap.set_sensitive(true); + entArrowCoordsTwoMaps1.set_sensitive(false); + entArrowCoordsTwoMaps2.set_sensitive(false); + } + else if (rbArrowCoordTwoMaps.get_active()) + { + pMapStorage->setArrowCoordsSaveMapNum(MapStorage::SpecMapSaveOpts::TWO_MAPS); + entArrowCoordsOneMap.set_sensitive(false); + entArrowCoordsTwoMaps1.set_sensitive(true); + entArrowCoordsTwoMaps2.set_sensitive(true); + } +} + +void SaveDetailsWidget::onArrowCoordsOneMapName() +{ + pMapStorage->setArrowCoordsOneMapName(entArrowCoordsOneMap.get_text()); +} +void SaveDetailsWidget::onArrowCoordsTwoMaps1Name() +{ + pMapStorage->setArrowCoordsTwoMaps1Name(entArrowCoordsTwoMaps1.get_text()); +} +void SaveDetailsWidget::onArrowCoordsTwoMaps2Name() +{ + pMapStorage->setArrowCoordsTwoMaps2Name(entArrowCoordsTwoMaps2.get_text()); +} + +SaveDetailsWidget::~SaveDetailsWidget() +{ +}