1.1 --- a/main_win.cc Wed Jan 04 13:31:59 2006 +0000
1.2 +++ b/main_win.cc Wed Jan 04 18:05:55 2006 +0000
1.3 @@ -104,6 +104,8 @@
1.4 ag->add( Gtk::Action::create("AlgoMenu", "_Algorithms") );
1.5 ag->add( Gtk::Action::create("AlgoGeneral", "_General"),
1.6 sigc::bind( sigc::mem_fun ( *this, &MainWin::createAlgoWin ), 0) );
1.7 + ag->add( Gtk::Action::create("AlgoKruskal", "_Kruskal"),
1.8 + sigc::bind( sigc::mem_fun ( *this, &MainWin::createAlgoWin ), 1) );
1.9
1.10 Gtk::RadioAction::Group tool_group;
1.11 ag->add( Gtk::RadioAction::create(tool_group, "MoveItem", Gtk::StockID("gd-move"), "Move"),
1.12 @@ -153,6 +155,7 @@
1.13 " </menu>"
1.14 " <menu action='AlgoMenu'>"
1.15 " <menuitem action='AlgoGeneral'/>"
1.16 + " <menuitem action='AlgoKruskal'/>"
1.17 " </menu>"
1.18 " </menubar>"
1.19 " <toolbar name='ToolBar'>"
1.20 @@ -224,7 +227,7 @@
1.21 }
1.22 set_title(tabnames[active_tab] + " - " + prog_name);
1.23 notebook.set_tab_label_text((Widget&)*(tabs[active_tab]), tabnames[active_tab]);
1.24 - updateAlgoWins();
1.25 + updateAlgoWinTabs();
1.26 }
1.27
1.28 void MainWin::readFile(const std::string & filename)
1.29 @@ -246,7 +249,7 @@
1.30 notebook.append_page((Gtk::Widget&)(*(tabs[active_tab])));
1.31 notebook.set_current_page(size);
1.32 set_tabtitle("unsaved file");
1.33 - updateAlgoWins();
1.34 + updateAlgoWinTabs();
1.35 }
1.36
1.37 void MainWin::closeTab()
1.38 @@ -306,7 +309,7 @@
1.39 active_tab=-1;
1.40 }
1.41
1.42 - updateAlgoWins();
1.43 + updateAlgoWinTabs();
1.44 }
1.45 }
1.46
1.47 @@ -404,18 +407,28 @@
1.48
1.49 void MainWin::createAlgoWin(int algoid)
1.50 {
1.51 - AlgoWin * aw=new AlgoWin(algoid, tabnames);
1.52 + AlgoWin * aw=new AlgoWin(algoid, tabnames, tabs[0]->mapstorage.getNodeMapList(),tabs[0]->mapstorage.getEdgeMapList());
1.53 aw->signal_closing().connect(sigc::mem_fun(*this, &MainWin::deRegisterAlgoWin));
1.54 + aw->signal_maplist_needed().connect(sigc::mem_fun(*this, &MainWin::updateAlgoWinMaps));
1.55 aws.insert(aw);
1.56 aw->show();
1.57 }
1.58
1.59 +void MainWin::updateAlgoWinMaps(AlgoWin * awp, std::string tabname)
1.60 +{
1.61 + int i=0;
1.62 + for(;(i<(int)tabnames.size())&&(tabnames[i]!=tabname);i++)
1.63 + {
1.64 + }
1.65 + awp->update_maplist(tabs[i]->mapstorage.getNodeMapList(),tabs[i]->mapstorage.getEdgeMapList());
1.66 +}
1.67 +
1.68 void MainWin::deRegisterAlgoWin(AlgoWin * awp)
1.69 {
1.70 aws.erase(awp);
1.71 }
1.72
1.73 -void MainWin::updateAlgoWins()
1.74 +void MainWin::updateAlgoWinTabs()
1.75 {
1.76 std::set< AlgoWin* >::iterator awsi=aws.begin();
1.77 for(;awsi!=aws.end();awsi++)