diff -r b9c9b52f839e -r 3905d347112c gui/main_win.cc --- a/gui/main_win.cc Tue Jan 03 16:05:27 2006 +0000 +++ b/gui/main_win.cc Tue Jan 03 17:30:22 2006 +0000 @@ -101,6 +101,10 @@ ag->add( Gtk::Action::create("ShowMaps", "_Maps"), sigc::mem_fun(*this, &MainWin::createMapWin)); + ag->add( Gtk::Action::create("AlgoMenu", "_Algorithms") ); + ag->add( Gtk::Action::create("AlgoGeneral", "_General"), + sigc::bind( sigc::mem_fun ( *this, &MainWin::createAlgoWin ), 0) ); + Gtk::RadioAction::Group tool_group; ag->add( Gtk::RadioAction::create(tool_group, "MoveItem", Gtk::StockID("gd-move"), "Move"), sigc::bind( sigc::mem_fun ( *this, &MainWin::changeEditorialTool ), 0) ); @@ -147,6 +151,9 @@ " " " " " " + " " + " " + " " " " " " " " @@ -206,6 +213,7 @@ tabnames[active_tab]=name; set_title(tabnames[active_tab] + " - " + prog_name); notebook.set_tab_label_text((Widget&)*(tabs[active_tab]), tabnames[active_tab]); + updateAlgoWins(); } void MainWin::readFile(const std::string & filename) @@ -228,6 +236,7 @@ notebook.append_page((Gtk::Widget&)(*(tabs[active_tab]))); notebook.set_current_page(size); set_tabtitle(tabnames[active_tab]); + updateAlgoWins(); } void MainWin::closeTab() @@ -258,12 +267,13 @@ { for(int i=active_tab+1;isignal_closing().connect(sigc::mem_fun(*this, &MainWin::deRegisterAlgoWin)); + aws.insert(aw); + aw->show(); +} + +void MainWin::deRegisterAlgoWin(AlgoWin * awp) +{ + aws.erase(awp); +} + +void MainWin::updateAlgoWins() +{ + std::set< AlgoWin* >::iterator awsi=aws.begin(); + for(;awsi!=aws.end();awsi++) + { + (*awsi)->update_tablist(tabnames); + } +} + void MainWin::changeEditorialTool(int tool) { active_tool=tool;