Changeset 1837:8dd6160ff699 in lemon-0.x for gui/mw-mapselector.cc
- Timestamp:
- 11/29/05 20:31:58 (19 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@2389
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
gui/mw-mapselector.cc
r1823 r1837 1 1 #include "map_win.h" 2 2 3 MapWin::MapSelector::MapSelector( GraphDisplayerCanvas & grdispc, MapStorage & mapst, int identifier, bool edge):gdc(grdispc),ms(mapst),id(identifier),itisedge(edge),default_state(true),set_new_map(false),node_to_update(INVALID),edge_to_update(INVALID)3 MapWin::MapSelector::MapSelector(std::vector<std::string> ml, int identifier, bool edge):id(identifier),itisedge(edge),default_state(true),set_new_map(false) 4 4 { 5 update_list( );5 update_list(ml); 6 6 7 7 cbt.set_active(0); … … 51 51 { 52 52 set_new_map=true; 53 (new NewMapWin("NewMapWin", gdc, itisedge, false))->run();53 signal_newmapwin.emit(itisedge); 54 54 } 55 55 56 void MapWin::MapSelector::update_list( )56 void MapWin::MapSelector::update_list( std::vector< std::string > ml ) 57 57 { 58 58 cbt.clear(); 59 if(itisedge) 59 std::vector< std::string >::iterator emsi=ml.begin(); 60 for(;emsi!=ml.end();emsi++) 60 61 { 61 std::map< std::string,Graph::EdgeMap<double> * >::iterator emsi=ms.beginOfEdgeMaps(); 62 for(;emsi!=ms.endOfEdgeMaps();emsi++) 63 { 64 cbt.append_text(emsi->first); 65 } 66 } 67 else 68 { 69 std::map< std::string,Graph::NodeMap<double> * >::iterator emsi=ms.beginOfNodeMaps(); 70 for(;emsi!=ms.endOfNodeMaps();emsi++) 71 { 72 cbt.append_text(emsi->first); 73 } 62 cbt.append_text(*emsi); 74 63 } 75 64 cbt.prepend_text("Default values"); … … 84 73 if(!(mapname.empty())) //We seem to get 2 signals, one when the text is empty. 85 74 { 86 if(itisedge) 87 { 88 if( ( (ms.edgemap_storage).find(mapname) != (ms.edgemap_storage).end() ) ) 89 { 90 Edge edge=edge_to_update; 91 switch(id) 92 { 93 case E_WIDTH: 94 gdc.changeEdgeWidth(mapname, edge); 95 break; 96 case E_COLOR: 97 gdc.changeEdgeColor(mapname, edge); 98 break; 99 case E_TEXT: 100 gdc.changeEdgeText(mapname, edge); 101 break; 102 default: 103 std::cerr<<"Error\n"; 104 } 105 } 106 } 107 else 108 { 109 if( ( (ms.nodemap_storage).find(mapname) != (ms.nodemap_storage).end() ) ) 110 { 111 Node node=node_to_update; 112 switch(id) 113 { 114 case N_RADIUS: 115 gdc.changeNodeRadius(mapname, node); 116 break; 117 case N_COLOR: 118 gdc.changeNodeColor(mapname, node); 119 break; 120 case N_TEXT: 121 gdc.changeNodeText(mapname, node); 122 break; 123 default: 124 std::cerr<<"Error\n"; 125 } 126 } 127 } 75 signal_cbt.emit(mapname); 128 76 } 129 77 } 130 78 else if((!default_state)&&(cbt.get_active_row_number()==0)) 131 79 { 80 signal_cbt.emit(""); 132 81 reset(); 133 82 } … … 139 88 cbt.set_active(0); 140 89 141 if(itisedge) 142 { 143 Edge edge=edge_to_update; 144 switch(id) 145 { 146 case E_WIDTH: 147 gdc.resetEdgeWidth(edge); 148 break; 149 case E_COLOR: 150 gdc.resetEdgeColor(edge); 151 break; 152 case E_TEXT: 153 gdc.resetEdgeText(edge); 154 break; 155 default: 156 std::cerr<<"Error\n"; 157 } 158 } 159 else 160 { 161 Node node=node_to_update; 162 switch(id) 163 { 164 case N_RADIUS: 165 gdc.resetNodeRadius(node); 166 break; 167 case N_COLOR: 168 gdc.resetNodeColor(node); 169 break; 170 case N_TEXT: 171 gdc.resetNodeText(node); 172 break; 173 default: 174 std::cerr<<"Error\n"; 175 } 176 } 90 signal_cbt.emit(""); 177 91 } 178 92 179 void MapWin::MapSelector::update(Node node)180 {181 node_to_update=node;182 if(default_state)183 {184 reset();185 }186 else187 {188 comboChanged();189 }190 node_to_update=INVALID;191 }192 193 void MapWin::MapSelector::update(Edge edge)194 {195 edge_to_update=edge;196 if(default_state)197 {198 reset();199 }200 else201 {202 comboChanged();203 }204 edge_to_update=INVALID;205 }206 93 207 94 Glib::ustring MapWin::MapSelector::get_active_text() … … 224 111 } 225 112 } 113 114 sigc::signal<void, std::string> MapWin::MapSelector::signal_cbt_ch() 115 { 116 return signal_cbt; 117 } 118 119 sigc::signal<void, bool> MapWin::MapSelector::signal_newmapwin_needed() 120 { 121 return signal_newmapwin; 122 }
Note: See TracChangeset
for help on using the changeset viewer.