diff -r d8475431bbbb -r 8e85e6bbefdf gui/map_win.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gui/map_win.cc Mon May 23 04:48:14 2005 +0000 @@ -0,0 +1,116 @@ +#include +#include + +MapWin::MapWin(const std::string& title, MapStorage & mapst, GraphDisplayerCanvas & grdispc):gdc(grdispc),ms(mapst) +{ + set_title(title); + set_default_size(400, 200); + + rb_array=new Gtk::RadioButton * [PROPERTY_NUM]; + vbox_r1=new Gtk::VBox[PROPERTY_NUM]; + vbox_r2=new Gtk::VBox[PROPERTY_NUM]; + radios=new Gtk::HBox[PROPERTY_NUM]; + for(int i=0;i * >::iterator emsi=ms.beginOfEdgeMaps(); + std::set props; + + int actprop; + for(int j=0;jsecond==&(ms.default_edgemaps[i])) + { + actprop=j; + } + for(int k=0;ksecond==&(ms.default_edgemaps[k])) + { + props.insert(j); + } + } + emsi++; + } + + rb_array[i][0].set_group(group); + rb_array[i][0].set_label("Default"); + rb_array[i][0].signal_clicked().connect( sigc::bind( sigc::bind( sigc::mem_fun(*this, &MapWin::radio_click), 0), i) ); + vbox_r1[i].pack_start(rb_array[i][0]); + + + emsi=ms.beginOfEdgeMaps(); + int actpos=1; + for(int j=0;jfirst); + rb_array[i][actpos].signal_clicked().connect + ( + sigc::bind( + sigc::bind( + sigc::mem_fun(*this, &MapWin::radio_click), + actpos + ), + i + ) + ); + + if(actpos<(ms.numOfEdgeMaps()-PROPERTY_NUM+1)/2) + { + vbox_r1[i].pack_start(rb_array[i][actpos]); + } + else + { + vbox_r2[i].pack_start(rb_array[i][actpos]); + } + actpos++; + } + emsi++; + } + radios[i].pack_start(vbox_r1[i]); + radios[i].pack_start(vbox_r2[i]); + notebook.append_page(radios[i], property_strings[i]); + } + + add(vbox_b); + vbox_b.pack_start(notebook); + + show_all_children(); + +} + +void MapWin::radio_click(int prop, int actpos) +{ + if(rb_array[prop][actpos].get_active()) + { + + std::string mapname=rb_array[prop][actpos].get_label(); + + if(mapname=="Default") + { + mapname=property_strings[prop]; + } + + switch(prop) + { + case WIDTH: + gdc.changeLineWidth(mapname); + break; + case COLOR: + gdc.changeColor(mapname); + break; + case TEXT: + gdc.changeText(mapname); + break; + default: + std::cout<<"Error\n"; + } + } +};