diff -r 25a4698cbe0c -r 3a263e57e1d9 main_win.cc
--- a/main_win.cc Tue Jan 03 14:56:45 2006 +0000
+++ b/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;