gui/kruskalbox.cc
changeset 1884 9c061834b33b
parent 1881 f40cdc2057c2
child 1886 8b225c2935e7
     1.1 --- a/gui/kruskalbox.cc	Fri Jan 06 14:44:04 2006 +0000
     1.2 +++ b/gui/kruskalbox.cc	Fri Jan 06 16:07:08 2006 +0000
     1.3 @@ -9,62 +9,61 @@
     1.4      
     1.5  void KruskalBox::run()
     1.6  {
     1.7 -  Graph g=mapstorage->graph;
     1.8 -  Graph::EdgeMap<double> * inputmap=
     1.9 -    ((mapstorage->edgemap_storage)[(edgemapcbts[INPUT])->get_active_text()]);
    1.10 -  Graph::EdgeMap<bool> outputmap(g);
    1.11 -  double res=kruskal(g, *inputmap, outputmap);
    1.12 +  if(
    1.13 +     tabcbt.get_active_text()!="" &&
    1.14 +     (edgemapcbts[INPUT])->get_active_text()!="" &&
    1.15 +     (edgemapcbts[OUTPUT])->get_active_text()!=""
    1.16 +     )
    1.17 +    {
    1.18  
    1.19 -  for (EdgeIt i(g); i!=INVALID; ++i)
    1.20 -  {
    1.21 -    if(outputmap[i])
    1.22 -      {
    1.23 -	(*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])->
    1.24 -					 get_active_text()]))[i]=1;
    1.25 -      }
    1.26 -    else
    1.27 -      {
    1.28 -	(*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])->
    1.29 -					 get_active_text()]))[i]=0;
    1.30 -      }
    1.31 -  }
    1.32 +      Graph g=mapstorage->graph;
    1.33 +      Graph::EdgeMap<double> * inputmap=
    1.34 +	((mapstorage->edgemap_storage)[(edgemapcbts[INPUT])->get_active_text()]);
    1.35 +      Graph::EdgeMap<bool> outputmap(g);
    1.36 +      double res=kruskal(g, *inputmap, outputmap);
    1.37  
    1.38 -  std::ostringstream o;
    1.39 -  o << "Result: " << res;
    1.40 -  resultlabel.set_text(o.str());
    1.41 +      for (EdgeIt i(g); i!=INVALID; ++i)
    1.42 +	{
    1.43 +	  if(outputmap[i])
    1.44 +	    {
    1.45 +	      (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])->
    1.46 +					       get_active_text()]))[i]=1;
    1.47 +	    }
    1.48 +	  else
    1.49 +	    {
    1.50 +	      (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])->
    1.51 +					       get_active_text()]))[i]=0;
    1.52 +	    }
    1.53 +	}
    1.54  
    1.55 -  mapstorage->mapChanged(true, (edgemapcbts[OUTPUT])->get_active_text());
    1.56 -  //   mapstorage->changeActiveMap(true, E_COLOR,
    1.57 -  // 			      (edgemapcbts[OUTPUT])->get_active_text());
    1.58 -  //   mapstorage->changeActiveMap(true, E_TEXT,
    1.59 -  // 			      (edgemapcbts[INPUT])->get_active_text());
    1.60 +      std::ostringstream o;
    1.61 +      o << "Result: " << res;
    1.62 +      resultlabel.set_text(o.str());
    1.63 +
    1.64 +      mapstorage->mapChanged(true, (edgemapcbts[OUTPUT])->get_active_text());
    1.65 +      //   mapstorage->changeActiveMap(true, E_COLOR,
    1.66 +      // 			      (edgemapcbts[OUTPUT])->get_active_text());
    1.67 +      //   mapstorage->changeActiveMap(true, E_TEXT,
    1.68 +      // 			      (edgemapcbts[INPUT])->get_active_text());
    1.69    
    1.70 +    }
    1.71  }
    1.72      
    1.73  void KruskalBox::build_box()
    1.74  {
    1.75 +  std::vector<std::string> empty_vector;
    1.76 +
    1.77    edgemapcbts.resize(MAP_NUM);
    1.78 -  Gtk::HBox * hbox;
    1.79  
    1.80 -  hbox=new Gtk::HBox();
    1.81 +  edgemapcbts[0]=new MapSelector(empty_vector,"","Edgecosts: ",true, false);
    1.82 +  edgemapcbts[0]->signal_newmapwin_needed().connect(sigc::mem_fun(*this, &AlgoBox::emit_new_map_signal));
    1.83  
    1.84 -  label=new Gtk::Label("Edgecosts: ");
    1.85 +  pack_start(*(edgemapcbts[INPUT]));
    1.86  
    1.87 -  edgemapcbts[0]=new Gtk::ComboBoxText();
    1.88 +  edgemapcbts[1]=new MapSelector(empty_vector,"","Edges of tree here: ",true, false);
    1.89 +  edgemapcbts[1]->signal_newmapwin_needed().connect(sigc::mem_fun(*this, &AlgoBox::emit_new_map_signal));
    1.90  
    1.91 -  hbox->pack_start(*label);
    1.92 -  hbox->pack_start(*(edgemapcbts[INPUT]));
    1.93 -  pack_start(*hbox);
    1.94 -
    1.95 -  hbox=new Gtk::HBox();
    1.96 -
    1.97 -  label=new Gtk::Label("Edges of tree here: ");
    1.98 -
    1.99 -  edgemapcbts[1]=new Gtk::ComboBoxText();
   1.100 -
   1.101 -  hbox->pack_start(*label);
   1.102 -  hbox->pack_start(*(edgemapcbts[OUTPUT]));
   1.103 -  pack_start(*hbox);
   1.104 +  pack_start(*(edgemapcbts[OUTPUT]));
   1.105  
   1.106    resultlabel.set_text("Result: algorithm is not run yet.");
   1.107    pack_start(resultlabel);