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