ladanyi@1606: #include "map_win.h" ladanyi@1442: #include <set> ladanyi@1442: hegyi@1524: bool MapWin::closeIfEscapeIsPressed(GdkEventKey* e) ladanyi@1442: { hegyi@1446: if(e->keyval==GDK_Escape) hegyi@1446: { hegyi@1446: hide(); hegyi@1446: } hegyi@1446: return true; hegyi@1446: } ladanyi@1442: hegyi@1733: MapWin::MapWin(const std::string& title, MapStorage & mapst, GraphDisplayerCanvas & grdispc, NewMapWin & newmapwin):gdc(grdispc),ms(mapst), nmw(newmapwin) hegyi@1446: { hegyi@1446: set_title(title); hegyi@1446: set_default_size(200, 50); ladanyi@1442: hegyi@1524: signal_key_press_event().connect(sigc::mem_fun(*this, &MapWin::closeIfEscapeIsPressed)); ladanyi@1442: hegyi@1731: e_combo_array=new MapSelector * [EDGE_PROPERTY_NUM]; hegyi@1446: hegyi@1731: table=new Gtk::Table(EDGE_PROPERTY_NUM, 1, false); hegyi@1512: hegyi@1512: for(int i=0;i<EDGE_PROPERTY_NUM;i++) ladanyi@1442: { hegyi@1733: e_combo_array[i]=new MapSelector(gdc, ms, nmw, i, true); hegyi@1446: hegyi@1731: (*table).attach((*(e_combo_array[i])),0,1,i,i+1,Gtk::SHRINK,Gtk::SHRINK,10,3); ladanyi@1442: } ladanyi@1442: hegyi@1512: vbox.pack_start(*(new Gtk::Label("Edge properties"))); hegyi@1446: hegyi@1512: vbox.pack_start(*table); hegyi@1512: hegyi@1512: vbox.pack_start(*(new Gtk::HSeparator)); hegyi@1512: hegyi@1731: n_combo_array=new MapSelector * [NODE_PROPERTY_NUM]; hegyi@1512: hegyi@1731: table=new Gtk::Table(NODE_PROPERTY_NUM, 1, false); hegyi@1512: hegyi@1512: for(int i=0;i<NODE_PROPERTY_NUM;i++) hegyi@1512: { hegyi@1733: n_combo_array[i]=new MapSelector(gdc, ms, nmw, i, false); hegyi@1512: hegyi@1731: (*table).attach((*(n_combo_array[i])),0,1,i,i+1,Gtk::SHRINK,Gtk::SHRINK,10,3); hegyi@1512: } hegyi@1512: hegyi@1512: add(vbox); hegyi@1512: hegyi@1512: vbox.pack_start(*(new Gtk::Label("Node properties"))); hegyi@1512: hegyi@1512: vbox.pack_start(*table); ladanyi@1442: ladanyi@1442: show_all_children(); ladanyi@1442: ladanyi@1442: } ladanyi@1442: ladanyi@1606: void MapWin::update() ladanyi@1606: { ladanyi@1606: for(int i=0;i<EDGE_PROPERTY_NUM;i++) ladanyi@1606: { hegyi@1731: e_combo_array[i]->update_list(); hegyi@1731: } ladanyi@1606: ladanyi@1606: for(int i=0;i<NODE_PROPERTY_NUM;i++) ladanyi@1606: { hegyi@1731: n_combo_array[i]->update_list(); ladanyi@1606: } ladanyi@1606: } ladanyi@1606: hegyi@1512: alpar@1643: void MapWin::updateNode(Node node) hegyi@1512: { hegyi@1512: for(int i=0;i<NODE_PROPERTY_NUM;i++) hegyi@1512: { hegyi@1731: n_combo_array[i]->update(node); hegyi@1512: } hegyi@1512: } hegyi@1512: alpar@1643: void MapWin::updateEdge(Edge edge) hegyi@1512: { hegyi@1512: for(int i=0;i<EDGE_PROPERTY_NUM;i++) hegyi@1512: { hegyi@1731: e_combo_array[i]->update(edge); hegyi@1512: } hegyi@1512: } hegyi@1586: hegyi@1589: void MapWin::registerNewEdgeMap(std::string newmapname) hegyi@1586: { hegyi@1589: for(int i=0;i<EDGE_PROPERTY_NUM;i++) hegyi@1589: { hegyi@1589: //filling in combo box with choices hegyi@1731: e_combo_array[i]->append_text((Glib::ustring)newmapname); hegyi@1589: } hegyi@1586: } hegyi@1586: hegyi@1589: void MapWin::registerNewNodeMap(std::string newmapname) hegyi@1586: { hegyi@1592: for(int i=0;i<NODE_PROPERTY_NUM;i++) hegyi@1589: { hegyi@1589: //filling in combo box with choices hegyi@1733: n_combo_array[i]->append_text((Glib::ustring)newmapname); hegyi@1589: } hegyi@1586: }