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