Changeset 1731:616bc933c2bc in lemon-0.x for gui/map_win.cc
- Timestamp:
- 10/20/05 17:50:23 (19 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@2258
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
gui/map_win.cc
r1648 r1731 18 18 signal_key_press_event().connect(sigc::mem_fun(*this, &MapWin::closeIfEscapeIsPressed)); 19 19 20 e_combo_array=new Gtk::Combo[EDGE_PROPERTY_NUM];20 e_combo_array=new MapSelector * [EDGE_PROPERTY_NUM]; 21 21 22 table=new Gtk::Table(EDGE_PROPERTY_NUM, 2, false);22 table=new Gtk::Table(EDGE_PROPERTY_NUM, 1, false); 23 23 24 24 for(int i=0;i<EDGE_PROPERTY_NUM;i++) 25 25 { 26 //filling in combo box with choices 27 std::list<Glib::ustring> listStrings; 26 e_combo_array[i]=new MapSelector(gdc, ms, *this, i, true); 28 27 29 listStrings.push_back("Default"); 30 31 std::map< std::string,Graph::EdgeMap<double> * >::iterator emsi=ms.beginOfEdgeMaps(); 32 for(;emsi!=ms.endOfEdgeMaps();emsi++) 33 { 34 listStrings.push_back(emsi->first); 35 } 36 37 e_combo_array[i].set_popdown_strings(listStrings); 38 39 //Restrict it to these choices only: 40 e_combo_array[i].set_value_in_list(); 41 42 //binding signal to the actual entry 43 e_combo_array[i].get_entry()->signal_changed().connect 44 ( 45 sigc::bind 46 ( 47 sigc::mem_fun(*this, &MapWin::eComboChanged), 48 i 49 ) 50 ); 51 52 //placing actual entry in the right place 53 54 label=new Gtk::Label; 55 label->set_text(edge_property_strings[i]); 56 57 (*table).attach(*label,0,1,i,i+1,Gtk::SHRINK,Gtk::SHRINK,10,3); 58 (*table).attach(e_combo_array[i],1,2,i,i+1,Gtk::SHRINK,Gtk::SHRINK,10,3); 59 60 28 (*table).attach((*(e_combo_array[i])),0,1,i,i+1,Gtk::SHRINK,Gtk::SHRINK,10,3); 61 29 } 62 30 … … 67 35 vbox.pack_start(*(new Gtk::HSeparator)); 68 36 69 n_combo_array=new Gtk::Combo[NODE_PROPERTY_NUM];37 n_combo_array=new MapSelector * [NODE_PROPERTY_NUM]; 70 38 71 table=new Gtk::Table(NODE_PROPERTY_NUM, 2, false);39 table=new Gtk::Table(NODE_PROPERTY_NUM, 1, false); 72 40 73 41 for(int i=0;i<NODE_PROPERTY_NUM;i++) 74 42 { 75 //filling in combo box with choices 76 std::list<Glib::ustring> listStrings; 43 n_combo_array[i]=new MapSelector(gdc, ms, *this, i, false); 77 44 78 listStrings.push_back("Default"); 79 80 std::map< std::string,Graph::NodeMap<double> * >::iterator emsi=ms.beginOfNodeMaps(); 81 82 for(;emsi!=ms.endOfNodeMaps();emsi++) 83 { 84 if ((emsi->first != "coordinates_x") && (emsi->first != "coordinates_y")) 85 { 86 listStrings.push_back(emsi->first); 87 } 88 } 89 90 n_combo_array[i].set_popdown_strings(listStrings); 91 92 //Restrict it to these choices only: 93 n_combo_array[i].set_value_in_list(); 94 95 //binding signal to thew actual entry 96 n_combo_array[i].get_entry()->signal_changed().connect 97 ( 98 sigc::bind 99 ( 100 sigc::mem_fun(*this, &MapWin::nComboChanged), 101 i 102 ) 103 ); 104 105 //placing actual entry in the right place 106 107 label=new Gtk::Label; 108 label->set_text(node_property_strings[i]); 109 110 (*table).attach(*label,0,1,i,i+1,Gtk::SHRINK,Gtk::SHRINK,10,3); 111 (*table).attach(n_combo_array[i],1,2,i,i+1,Gtk::SHRINK,Gtk::SHRINK,10,3); 112 113 45 (*table).attach((*(n_combo_array[i])),0,1,i,i+1,Gtk::SHRINK,Gtk::SHRINK,10,3); 114 46 } 115 47 … … 128 60 for(int i=0;i<EDGE_PROPERTY_NUM;i++) 129 61 { 130 //filling in combo box with choices131 std::list<Glib::ustring> listStrings;62 e_combo_array[i]->update_list(); 63 } 132 64 133 listStrings.push_back("Default");134 135 std::map< std::string,Graph::EdgeMap<double> * >::iterator emsi=ms.beginOfEdgeMaps();136 for(;emsi!=ms.endOfEdgeMaps();emsi++)137 {138 listStrings.push_back(emsi->first);139 }140 141 e_combo_array[i].set_popdown_strings(listStrings);142 }143 65 for(int i=0;i<NODE_PROPERTY_NUM;i++) 144 66 { 145 //filling in combo box with choices 146 std::list<Glib::ustring> listStrings; 147 148 listStrings.push_back("Default"); 149 150 std::map< std::string,Graph::NodeMap<double> * >::iterator emsi=ms.beginOfNodeMaps(); 151 152 for(;emsi!=ms.endOfNodeMaps();emsi++) 153 { 154 if ((emsi->first != "coordinates_x") && (emsi->first != "coordinates_y")) 155 { 156 listStrings.push_back(emsi->first); 157 } 158 } 159 160 n_combo_array[i].set_popdown_strings(listStrings); 67 n_combo_array[i]->update_list(); 161 68 } 162 69 } 163 70 164 void MapWin::eComboChanged(int prop)165 {166 167 Gtk::Entry* entry = e_combo_array[prop].get_entry();168 169 if(entry)170 {171 Glib::ustring mapname = entry->get_text();172 if(!(mapname.empty())) //We seem to get 2 signals, one when the text is empty.173 {174 if( ( (ms.edgemap_storage).find(mapname) != (ms.edgemap_storage).end() ) || (mapname=="Default") )175 {176 switch(prop)177 {178 case E_WIDTH:179 gdc.changeEdgeWidth(mapname);180 break;181 case E_COLOR:182 gdc.changeEdgeColor(mapname);183 break;184 case E_TEXT:185 gdc.changeEdgeText(mapname);186 break;187 default:188 std::cerr<<"Error\n";189 }190 }191 }192 }193 };194 195 void MapWin::nComboChanged(int prop)196 {197 198 Gtk::Entry* entry = n_combo_array[prop].get_entry();199 200 if(entry)201 {202 Glib::ustring mapname = entry->get_text();203 if(!(mapname.empty())) //We seem to get 2 signals, one when the text is empty.204 {205 if( ( (ms.nodemap_storage).find(mapname) != (ms.nodemap_storage).end() ) || (mapname=="Default") )206 {207 switch(prop)208 {209 case N_RADIUS:210 gdc.changeNodeRadius(mapname);211 break;212 case N_COLOR:213 gdc.changeNodeColor(mapname);214 break;215 case N_TEXT:216 gdc.changeNodeText(mapname);217 break;218 default:219 std::cerr<<"Error\n";220 }221 }222 }223 }224 };225 71 226 72 void MapWin::updateNode(Node node) … … 228 74 for(int i=0;i<NODE_PROPERTY_NUM;i++) 229 75 { 230 Gtk::Entry* entry = n_combo_array[i].get_entry(); 231 232 if(entry) 233 { 234 Glib::ustring mapname = entry->get_text(); 235 if(!(mapname.empty())) //We seem to get 2 signals, one when the text is empty. 236 { 237 if( ( (ms.nodemap_storage).find(mapname) != (ms.nodemap_storage).end() ) || (mapname=="Default") ) 238 { 239 switch(i) 240 { 241 case N_RADIUS: 242 gdc.changeNodeRadius(mapname, node); 243 break; 244 case N_COLOR: 245 gdc.changeNodeColor(mapname, node); 246 break; 247 case N_TEXT: 248 gdc.changeNodeText(mapname, node); 249 break; 250 default: 251 std::cerr<<"Error\n"; 252 } 253 } 254 } 255 } 76 n_combo_array[i]->update(node); 256 77 } 257 78 } … … 261 82 for(int i=0;i<EDGE_PROPERTY_NUM;i++) 262 83 { 263 264 Gtk::Entry* entry = e_combo_array[i].get_entry(); 265 266 if(entry) 267 { 268 Glib::ustring mapname = entry->get_text(); 269 if(!(mapname.empty())) //We seem to get 2 signals, one when the text is empty. 270 { 271 272 if( ( (ms.edgemap_storage).find(mapname) != (ms.edgemap_storage).end() ) || (mapname=="Default") ) 273 { 274 switch(i) 275 { 276 case E_WIDTH: 277 gdc.changeEdgeWidth(mapname, edge); 278 break; 279 case E_COLOR: 280 gdc.changeEdgeColor(mapname, edge); 281 break; 282 case E_TEXT: 283 gdc.changeEdgeText(mapname, edge); 284 break; 285 default: 286 std::cerr<<"Error\n"; 287 } 288 } 289 } 290 } 84 e_combo_array[i]->update(edge); 291 85 } 292 86 } … … 297 91 { 298 92 //filling in combo box with choices 299 std::list<Glib::ustring> listStrings=e_combo_array[i].get_popdown_strings(); 300 listStrings.push_back(newmapname); 301 e_combo_array[i].set_popdown_strings(listStrings); 93 e_combo_array[i]->append_text((Glib::ustring)newmapname); 302 94 } 303 95 //setting text property for the new map 304 Gtk::Entry* entry = e_combo_array[E_TEXT].get_entry(); 305 entry->set_text((Glib::ustring)newmapname); 96 e_combo_array[N_TEXT]->set_active_text((Glib::ustring)newmapname); 306 97 } 307 98 … … 311 102 { 312 103 //filling in combo box with choices 313 std::list<Glib::ustring> listStrings=n_combo_array[i].get_popdown_strings(); 314 listStrings.push_back(newmapname); 315 n_combo_array[i].set_popdown_strings(listStrings); 104 e_combo_array[i]->append_text((Glib::ustring)newmapname); 316 105 } 317 106 //setting text property for the new map 318 Gtk::Entry* entry = n_combo_array[N_TEXT].get_entry(); 319 entry->set_text((Glib::ustring)newmapname); 107 n_combo_array[N_TEXT]->set_active_text((Glib::ustring)newmapname); 320 108 }
Note: See TracChangeset
for help on using the changeset viewer.