1.1 --- a/mapselector.cc Wed May 02 20:33:58 2007 +0000
1.2 +++ b/mapselector.cc Wed Jan 02 21:03:09 2008 +0000
1.3 @@ -18,61 +18,63 @@
1.4
1.5 #include <mapselector.h>
1.6
1.7 -MapSelector::MapSelector(std::vector<std::string> ml, std::string act, std::string labeltext, bool edge, bool d):def(d),itisedge(edge),set_new_map(false)
1.8 +MapSelector::MapSelector(std::vector<std::string> n_ml,
1.9 + std::vector<std::string> s_ml, std::string act,
1.10 + std::string labeltext, bool edge, bool d, MapType type) :
1.11 + def(d),
1.12 + itisedge(edge),
1.13 + set_new_map(false),
1.14 + label(labeltext),
1.15 + map_type(type),
1.16 + newbut(Gtk::Stock::NEW)
1.17 {
1.18 - update_list(ml);
1.19 + update_list(n_ml, s_ml);
1.20
1.21 if(act=="")
1.22 - {
1.23 - cbt.set_active(0);
1.24 - default_state=true;
1.25 - }
1.26 + {
1.27 + cbt.set_active(0);
1.28 + default_state=true;
1.29 + }
1.30 else
1.31 - {
1.32 - cbt.set_active_text((Glib::ustring)act);
1.33 - default_state=false;
1.34 - }
1.35 + {
1.36 + cbt.set_active_text((Glib::ustring)act);
1.37 + default_state=false;
1.38 + }
1.39
1.40 //binding signal to the actual entry
1.41 cbt.signal_changed().connect
1.42 (
1.43 sigc::mem_fun((*this), &MapSelector::comboChanged),
1.44 false
1.45 - );
1.46 -
1.47 - label=new Gtk::Label(labeltext);
1.48 + );
1.49
1.50 - label->set_width_chars(longest_property_string_length);
1.51 + label.set_width_chars(longest_property_string_length);
1.52
1.53 - defbut=NULL;
1.54 if(def)
1.55 - {
1.56 - defbut=new Gtk::Button();
1.57 - defbut->set_label("Reset");
1.58 -
1.59 - defbut->signal_pressed().connect
1.60 - (
1.61 - sigc::mem_fun(*this, &MapSelector::reset)
1.62 - );
1.63 - }
1.64 + {
1.65 + defbut.set_label("Reset");
1.66 + defbut.signal_pressed().connect
1.67 + (
1.68 + sigc::mem_fun(*this, &MapSelector::reset)
1.69 + );
1.70 + }
1.71
1.72 - newbut=new Gtk::Button(Gtk::Stock::NEW);
1.73
1.74 - newbut->signal_pressed().connect
1.75 + newbut.signal_pressed().connect
1.76 (
1.77 sigc::mem_fun(*this, &MapSelector::new_but_pressed)
1.78 - );
1.79 + );
1.80
1.81 - add(*label);
1.82 + add(label);
1.83
1.84 add(cbt);
1.85
1.86 if(def)
1.87 - {
1.88 - add(*defbut);
1.89 - }
1.90 + {
1.91 + add(defbut);
1.92 + }
1.93
1.94 - add(*newbut);
1.95 + add(newbut);
1.96 }
1.97
1.98 void MapSelector::new_but_pressed()
1.99 @@ -81,17 +83,31 @@
1.100 signal_newmapwin.emit(itisedge);
1.101 }
1.102
1.103 -void MapSelector::update_list( std::vector< std::string > ml )
1.104 +void MapSelector::update_list(std::vector<std::string> n_ml,
1.105 + std::vector<std::string> s_ml)
1.106 {
1.107 int prev_act=cbt.get_active_row_number();
1.108 cbt.clear();
1.109 cbt_content.clear();
1.110 - std::vector< std::string >::iterator emsi=ml.begin();
1.111 - for(;emsi!=ml.end();emsi++)
1.112 +
1.113 + if (map_type & NUM)
1.114 + {
1.115 + std::vector< std::string >::iterator emsi=n_ml.begin();
1.116 + for(;emsi!=n_ml.end();emsi++)
1.117 {
1.118 cbt.append_text(*emsi);
1.119 cbt_content.push_back(*emsi);
1.120 }
1.121 + }
1.122 + if (map_type & STR)
1.123 + {
1.124 + std::vector< std::string >::iterator emsi=s_ml.begin();
1.125 + for(;emsi!=s_ml.end();emsi++)
1.126 + {
1.127 + cbt.append_text(*emsi);
1.128 + cbt_content.push_back(*emsi);
1.129 + }
1.130 + }
1.131 if(def)
1.132 {
1.133 cbt.prepend_text("Default values");
1.134 @@ -147,16 +163,19 @@
1.135 }
1.136 }
1.137
1.138 -void MapSelector::append_text(Glib::ustring text)
1.139 +void MapSelector::append_text(Glib::ustring text, MapValue::Type type)
1.140 {
1.141 - cbt.append_text(text);
1.142 - cbt_content.push_back(text);
1.143 + if (type & map_type)
1.144 + {
1.145 + cbt.append_text(text);
1.146 + cbt_content.push_back(text);
1.147
1.148 - if(set_new_map)
1.149 + if(set_new_map)
1.150 {
1.151 set_active_text(text);
1.152 set_new_map=false;
1.153 }
1.154 + }
1.155 }
1.156
1.157 sigc::signal<void, std::string> MapSelector::signal_cbt_ch()