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: }