diff -r 9e78d14fd0ba -r 853dd852abc7 main_win.cc --- a/main_win.cc Wed Jan 04 13:31:59 2006 +0000 +++ b/main_win.cc Wed Jan 04 18:05:55 2006 +0000 @@ -104,6 +104,8 @@ ag->add( Gtk::Action::create("AlgoMenu", "_Algorithms") ); ag->add( Gtk::Action::create("AlgoGeneral", "_General"), sigc::bind( sigc::mem_fun ( *this, &MainWin::createAlgoWin ), 0) ); + ag->add( Gtk::Action::create("AlgoKruskal", "_Kruskal"), + sigc::bind( sigc::mem_fun ( *this, &MainWin::createAlgoWin ), 1) ); Gtk::RadioAction::Group tool_group; ag->add( Gtk::RadioAction::create(tool_group, "MoveItem", Gtk::StockID("gd-move"), "Move"), @@ -153,6 +155,7 @@ " " " " " " + " " " " " " " " @@ -224,7 +227,7 @@ } set_title(tabnames[active_tab] + " - " + prog_name); notebook.set_tab_label_text((Widget&)*(tabs[active_tab]), tabnames[active_tab]); - updateAlgoWins(); + updateAlgoWinTabs(); } void MainWin::readFile(const std::string & filename) @@ -246,7 +249,7 @@ notebook.append_page((Gtk::Widget&)(*(tabs[active_tab]))); notebook.set_current_page(size); set_tabtitle("unsaved file"); - updateAlgoWins(); + updateAlgoWinTabs(); } void MainWin::closeTab() @@ -306,7 +309,7 @@ active_tab=-1; } - updateAlgoWins(); + updateAlgoWinTabs(); } } @@ -404,18 +407,28 @@ void MainWin::createAlgoWin(int algoid) { - AlgoWin * aw=new AlgoWin(algoid, tabnames); + AlgoWin * aw=new AlgoWin(algoid, tabnames, tabs[0]->mapstorage.getNodeMapList(),tabs[0]->mapstorage.getEdgeMapList()); aw->signal_closing().connect(sigc::mem_fun(*this, &MainWin::deRegisterAlgoWin)); + aw->signal_maplist_needed().connect(sigc::mem_fun(*this, &MainWin::updateAlgoWinMaps)); aws.insert(aw); aw->show(); } +void MainWin::updateAlgoWinMaps(AlgoWin * awp, std::string tabname) +{ + int i=0; + for(;(i<(int)tabnames.size())&&(tabnames[i]!=tabname);i++) + { + } + awp->update_maplist(tabs[i]->mapstorage.getNodeMapList(),tabs[i]->mapstorage.getEdgeMapList()); +} + void MainWin::deRegisterAlgoWin(AlgoWin * awp) { aws.erase(awp); } -void MainWin::updateAlgoWins() +void MainWin::updateAlgoWinTabs() { std::set< AlgoWin* >::iterator awsi=aws.begin(); for(;awsi!=aws.end();awsi++)