Changeset 1512:e54392395480 in lemon-0.x for gui/graph_displayer_canvas-event.cc
- Timestamp:
- 06/24/05 20:16:12 (19 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@1996
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
gui/graph_displayer_canvas-event.cc
r1510 r1512 100 100 double dy=e->motion.y-clicked_y; 101 101 102 //repositioning node and its text 102 103 active_item->move(dx, dy); 104 nodetextmap[active_node]->move(dx, dy); 103 105 104 106 clicked_x=e->motion.x; … … 130 132 } 131 133 134 //reposition of edgetext 132 135 xy<double> text_pos=edgesmap[ei]->get_arrow_pos(); 133 136 text_pos+=(xy<double>(10,10)); … … 190 193 *(nodesmap[active_node]) << Gnome::Canvas::Properties::outline_color("black"); 191 194 (nodesmap[active_node])->show(); 195 196 nodetextmap[active_node]=new Gnome::Canvas::Text(displayed_graph, clicked_x+node_property_defaults[N_RADIUS]+5, clicked_y+node_property_defaults[N_RADIUS]+5, ""); 197 nodetextmap[active_node]->property_fill_color().set_value("darkblue"); 198 199 mapwin->update_node(active_node); 200 192 201 break; 193 202 … … 273 282 if(target_node!=INVALID) 274 283 { 275 *(nodesmap[target_node]) << Gnome::Canvas::Properties::fill_color("red"); 276 277 //creating new edge 278 active_edge=EdgeIt(g,g.addEdge(active_node, target_node)); 279 280 //initiating values corresponding to new edge in maps 281 mapstorage.init_maps_for_edge(active_edge); 284 if(target_node!=active_node) 285 { 286 *(nodesmap[target_node]) << Gnome::Canvas::Properties::fill_color("red"); 287 288 //creating new edge 289 active_edge=EdgeIt(g,g.addEdge(active_node, target_node)); 290 291 //initiating values corresponding to new edge in maps 292 mapstorage.init_maps_for_edge(active_edge); 282 293 283 //calculating coordinates of new edge284 Gnome::Canvas::Points coos;285 double x1, x2, y1, y2;294 //calculating coordinates of new edge 295 Gnome::Canvas::Points coos; 296 double x1, x2, y1, y2; 286 297 287 active_item->get_bounds(x1, y1, x2, y2); 288 coos.push_back(Gnome::Art::Point((x1+x2)/2,(y1+y2)/2)); 289 290 target_item->get_bounds(x1, y1, x2, y2); 291 coos.push_back(Gnome::Art::Point((x1+x2)/2,(y1+y2)/2)); 292 293 //drawing new edge 294 edgesmap[active_edge]=new BrokenEdge(displayed_graph, coos, *this); 295 *(edgesmap[active_edge]) << Gnome::Canvas::Properties::fill_color("green"); 296 edgesmap[active_edge]->property_width_pixels().set_value(10); 297 298 //redraw nodes to blank terminations of the new edge 299 target_item->raise_to_top(); 300 active_item->raise_to_top(); 301 302 //initializing edge-text as well, to empty string 303 xy<double> text_pos=edgesmap[active_edge]->get_arrow_pos(); 304 text_pos+=(xy<double>(10,10)); 305 306 edgetextmap[active_edge]=new Gnome::Canvas::Text(displayed_graph, text_pos.x, text_pos.y, ""); 307 edgetextmap[active_edge]->property_fill_color().set_value("black"); 298 active_item->get_bounds(x1, y1, x2, y2); 299 coos.push_back(Gnome::Art::Point((x1+x2)/2,(y1+y2)/2)); 300 301 target_item->get_bounds(x1, y1, x2, y2); 302 coos.push_back(Gnome::Art::Point((x1+x2)/2,(y1+y2)/2)); 303 304 //drawing new edge 305 edgesmap[active_edge]=new BrokenEdge(displayed_graph, coos, *this); 306 *(edgesmap[active_edge]) << Gnome::Canvas::Properties::fill_color("green"); 307 edgesmap[active_edge]->property_width_pixels().set_value(10); 308 309 //redraw nodes to blank terminations of the new edge 310 target_item->raise_to_top(); 311 active_item->raise_to_top(); 312 313 //initializing edge-text as well, to empty string 314 xy<double> text_pos=edgesmap[active_edge]->get_arrow_pos(); 315 text_pos+=(xy<double>(10,10)); 316 317 edgetextmap[active_edge]=new Gnome::Canvas::Text(displayed_graph, text_pos.x, text_pos.y, ""); 318 edgetextmap[active_edge]->property_fill_color().set_value("darkgreen"); 319 320 //updating its properties 321 mapwin->update_edge(active_edge); 322 } 323 else 324 { 325 target_node=INVALID; 326 std::cout << "Loop edge is not yet implemented!" << std::endl; 327 } 308 328 } 309 329 //clicked item was not a node. it could be an e.g. edge. we do not deal with it furthermore. … … 436 456 void GraphDisplayerCanvas::delete_item(NodeIt node_to_delete) 437 457 { 458 delete(nodetextmap[node_to_delete]); 438 459 delete(nodesmap[node_to_delete]); 439 460 g.erase(node_to_delete); … … 442 463 void GraphDisplayerCanvas::delete_item(EdgeIt edge_to_delete) 443 464 { 465 delete(edgetextmap[edge_to_delete]); 444 466 delete(edgesmap[edge_to_delete]); 445 467 g.erase(edge_to_delete); … … 448 470 void GraphDisplayerCanvas::delete_item(Graph::Edge edge_to_delete) 449 471 { 472 delete(edgetextmap[edge_to_delete]); 450 473 delete(edgesmap[edge_to_delete]); 451 474 g.erase(edge_to_delete);
Note: See TracChangeset
for help on using the changeset viewer.