MapSelector has become a standalone class.
1 #include <kruskalbox.h>
3 enum {INPUT, OUTPUT, MAP_NUM};
5 KruskalBox::KruskalBox(std::vector<std::string> t):AlgoBox()
10 void KruskalBox::run()
12 Graph g=mapstorage->graph;
13 Graph::EdgeMap<double> * inputmap=
14 ((mapstorage->edgemap_storage)[(edgemapcbts[INPUT])->get_active_text()]);
15 Graph::EdgeMap<bool> outputmap(g);
16 double res=kruskal(g, *inputmap, outputmap);
18 for (EdgeIt i(g); i!=INVALID; ++i)
22 (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])->
23 get_active_text()]))[i]=1;
27 (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])->
28 get_active_text()]))[i]=0;
33 o << "Result: " << res;
34 resultlabel.set_text(o.str());
36 mapstorage->mapChanged(true, (edgemapcbts[OUTPUT])->get_active_text());
37 // mapstorage->changeActiveMap(true, E_COLOR,
38 // (edgemapcbts[OUTPUT])->get_active_text());
39 // mapstorage->changeActiveMap(true, E_TEXT,
40 // (edgemapcbts[INPUT])->get_active_text());
44 void KruskalBox::build_box()
46 edgemapcbts.resize(MAP_NUM);
51 label=new Gtk::Label("Edgecosts: ");
53 edgemapcbts[0]=new Gtk::ComboBoxText();
55 hbox->pack_start(*label);
56 hbox->pack_start(*(edgemapcbts[INPUT]));
61 label=new Gtk::Label("Edges of tree here: ");
63 edgemapcbts[1]=new Gtk::ComboBoxText();
65 hbox->pack_start(*label);
66 hbox->pack_start(*(edgemapcbts[OUTPUT]));
69 resultlabel.set_text("Result: algorithm is not run yet.");
70 pack_start(resultlabel);