gui/map_win.cc
changeset 1837 8dd6160ff699
parent 1823 cb082cdf3667
child 1838 b61682f0ee96
     1.1 --- a/gui/map_win.cc	Tue Nov 29 08:43:50 2005 +0000
     1.2 +++ b/gui/map_win.cc	Tue Nov 29 19:31:58 2005 +0000
     1.3 @@ -10,7 +10,7 @@
     1.4    return true;
     1.5  }
     1.6  
     1.7 -MapWin::MapWin(const std::string& title, MapStorage & mapst, GraphDisplayerCanvas & grdispc):gdc(grdispc),ms(mapst)
     1.8 +MapWin::MapWin(const std::string& title, std::vector<std::string> eml, std::vector<std::string> nml, MainWin & mw):mainwin(mw)
     1.9  {
    1.10    set_title(title);
    1.11    set_default_size(200, 50);
    1.12 @@ -23,9 +23,12 @@
    1.13  
    1.14    for(int i=0;i<EDGE_PROPERTY_NUM;i++)
    1.15    {
    1.16 -    e_combo_array[i]=new MapSelector(gdc, ms, i, true);
    1.17 +    e_combo_array[i]=new MapSelector(eml, i, true);
    1.18  
    1.19      (*table).attach((*(e_combo_array[i])),0,1,i,i+1,Gtk::SHRINK,Gtk::SHRINK,10,3);
    1.20 +
    1.21 +    e_combo_array[i]->signal_cbt_ch().connect(sigc::bind(sigc::mem_fun(*this, &MapWin::edgeMapChanged), i));
    1.22 +    e_combo_array[i]->signal_newmapwin_needed().connect(sigc::bind(sigc::mem_fun(*this, &MapWin::newMapWinNeeded), i));
    1.23    }
    1.24  
    1.25    vbox.pack_start(*(new Gtk::Label("Edge properties")));
    1.26 @@ -40,9 +43,12 @@
    1.27  
    1.28    for(int i=0;i<NODE_PROPERTY_NUM;i++)
    1.29    {
    1.30 -    n_combo_array[i]=new MapSelector(gdc, ms, i, false);
    1.31 +    n_combo_array[i]=new MapSelector(nml, i, false);
    1.32  
    1.33      (*table).attach((*(n_combo_array[i])),0,1,i,i+1,Gtk::SHRINK,Gtk::SHRINK,10,3);
    1.34 +
    1.35 +    n_combo_array[i]->signal_cbt_ch().connect(sigc::bind(sigc::mem_fun(*this, &MapWin::nodeMapChanged), i));
    1.36 +    n_combo_array[i]->signal_newmapwin_needed().connect(sigc::bind(sigc::mem_fun(*this, &MapWin::newMapWinNeeded), i));
    1.37    }
    1.38  
    1.39    add(vbox);
    1.40 @@ -55,36 +61,34 @@
    1.41  
    1.42  }
    1.43  
    1.44 -void MapWin::update()
    1.45 +void MapWin::nodeMapChanged(std::string mapname, int prop)
    1.46 +{
    1.47 +  mainwin.propertyChange(false, prop, mapname);
    1.48 +}
    1.49 +
    1.50 +void MapWin::edgeMapChanged(std::string mapname, int prop)
    1.51 +{
    1.52 +  mainwin.propertyChange(true, prop, mapname);
    1.53 +}
    1.54 +
    1.55 +void MapWin::newMapWinNeeded(bool itisedge, int prop)
    1.56 +{
    1.57 +  mainwin.popupNewMapWin(itisedge, prop);
    1.58 +}
    1.59 +
    1.60 +void MapWin::update(std::vector<std::string> eml, std::vector<std::string> nml)
    1.61  {
    1.62    for(int i=0;i<EDGE_PROPERTY_NUM;i++)
    1.63    {
    1.64 -    e_combo_array[i]->update_list();
    1.65 +    e_combo_array[i]->update_list(eml);
    1.66    }
    1.67  
    1.68    for(int i=0;i<NODE_PROPERTY_NUM;i++)
    1.69    {
    1.70 -    n_combo_array[i]->update_list();
    1.71 +    n_combo_array[i]->update_list(nml);
    1.72    }
    1.73  }
    1.74  
    1.75 -
    1.76 -void MapWin::updateNode(Node node)
    1.77 -{
    1.78 -  for(int i=0;i<NODE_PROPERTY_NUM;i++)
    1.79 -    {
    1.80 -      n_combo_array[i]->update(node);
    1.81 -    }
    1.82 -}
    1.83 -
    1.84 -void MapWin::updateEdge(Edge edge)
    1.85 -{
    1.86 -  for(int i=0;i<EDGE_PROPERTY_NUM;i++)
    1.87 -    {
    1.88 -      e_combo_array[i]->update(edge);
    1.89 -    }
    1.90 -}
    1.91 -
    1.92  void MapWin::registerNewEdgeMap(std::string newmapname)
    1.93  {
    1.94    for(int i=0;i<EDGE_PROPERTY_NUM;i++)