diff -r f40cdc2057c2 -r 2c3f6c7e01b4 gui/mw-mapselector.cc --- a/gui/mw-mapselector.cc Fri Jan 06 13:58:49 2006 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,136 +0,0 @@ -#include "map_win.h" - -MapWin::MapSelector::MapSelector(std::vector ml, std::string act, int identifier, bool edge):id(identifier),itisedge(edge),set_new_map(false) -{ - update_list(ml); - - if(act=="") - { - cbt.set_active(0); - default_state=true; - } - else - { - cbt.set_active_text((Glib::ustring)act); - default_state=false; - } - - //binding signal to the actual entry - cbt.signal_changed().connect - ( - sigc::mem_fun((*this), &MapWin::MapSelector::comboChanged), - false - ); - - if(itisedge) - { - label=new Gtk::Label(edge_property_strings[id]); - } - else - { - label=new Gtk::Label(node_property_strings[id]); - } - - label->set_width_chars(longest_property_string_length); - - defbut=new Gtk::Button(); - defbut->set_label("Reset"); - - defbut->signal_pressed().connect - ( - sigc::mem_fun(*this, &MapWin::MapSelector::reset) - ); - - newbut=new Gtk::Button(Gtk::Stock::NEW); - - newbut->signal_pressed().connect - ( - sigc::mem_fun(*this, &MapWin::MapSelector::new_but_pressed) - ); - - add(*label); - - add(cbt); - - add(*defbut); - add(*newbut); -} - -void MapWin::MapSelector::new_but_pressed() -{ - set_new_map=true; - signal_newmapwin.emit(itisedge); -} - -void MapWin::MapSelector::update_list( std::vector< std::string > ml ) -{ - int prev_act=cbt.get_active_row_number(); - cbt.clear(); - std::vector< std::string >::iterator emsi=ml.begin(); - for(;emsi!=ml.end();emsi++) - { - cbt.append_text(*emsi); - } - cbt.prepend_text("Default values"); - if(prev_act!=-1) - { - cbt.set_active(prev_act); - } -} - -void MapWin::MapSelector::comboChanged() -{ - if(cbt.get_active_row_number()!=0) - { - default_state=false; - Glib::ustring mapname = cbt.get_active_text(); - if(!(mapname.empty())) //We seem to get 2 signals, one when the text is empty. - { - signal_cbt.emit(mapname); - } - } - else if((!default_state)&&(cbt.get_active_row_number()==0)) - { - reset(); - } -} - -void MapWin::MapSelector::reset() -{ - default_state=true; - - cbt.set_active(0); - - signal_cbt.emit(""); -} - - -Glib::ustring MapWin::MapSelector::get_active_text() -{ - return cbt.get_active_text(); -} - -void MapWin::MapSelector::set_active_text(Glib::ustring text) -{ - cbt.set_active_text(text); -} - -void MapWin::MapSelector::append_text(Glib::ustring text) -{ - cbt.append_text(text); - if(set_new_map) - { - set_active_text(text); - set_new_map=false; - } -} - -sigc::signal MapWin::MapSelector::signal_cbt_ch() -{ - return signal_cbt; -} - -sigc::signal MapWin::MapSelector::signal_newmapwin_needed() -{ - return signal_newmapwin; -}