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()
+{
+}