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++)