Changeset 53:e73d7540bd24 in glemon-0.x for graph_displayer_canvas-event.cc
- Timestamp:
- 07/29/05 14:01:37 (19 years ago)
- Branch:
- gui
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk/gui@2111
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
graph_displayer_canvas-event.cc
r48 r53 1 #include <graph_displayer_canvas.h>2 #include <broken_edge.h>1 #include "graph_displayer_canvas.h" 2 #include "broken_edge.h" 3 3 #include <math.h> 4 4 … … 100 100 active_item=(get_item_at(clicked_x, clicked_y)); 101 101 active_node=INVALID; 102 for (NodeIt i( g); i!=INVALID; ++i)102 for (NodeIt i(mapstorage.graph); i!=INVALID; ++i) 103 103 { 104 104 if(nodesmap[i]==active_item) … … 126 126 if(active_node!=INVALID) 127 127 { 128 mapstorage.modified = true; 129 mapstorage.coords.set(active_node, xy<double>(clicked_x, clicked_y)); 128 130 //new coordinates will be the old values, 129 131 //because the item will be moved to the … … 148 150 EdgeIt ei; 149 151 150 g.firstOut(ei,active_node);151 152 for(;ei!=INVALID; g.nextOut(ei))152 mapstorage.graph.firstOut(ei,active_node); 153 154 for(;ei!=INVALID;mapstorage.graph.nextOut(ei)) 153 155 { 154 156 Gnome::Canvas::Points coos; 155 157 double x1, x2, y1, y2; 156 158 157 nodesmap[ g.source(ei)]->get_bounds(x1, y1, x2, y2);159 nodesmap[mapstorage.graph.source(ei)]->get_bounds(x1, y1, x2, y2); 158 160 coos.push_back(Gnome::Art::Point((x1+x2)/2,(y1+y2)/2)); 159 161 160 nodesmap[ g.target(ei)]->get_bounds(x1, y1, x2, y2);162 nodesmap[mapstorage.graph.target(ei)]->get_bounds(x1, y1, x2, y2); 161 163 coos.push_back(Gnome::Art::Point((x1+x2)/2,(y1+y2)/2)); 162 164 … … 177 179 } 178 180 179 g.firstIn(ei,active_node);180 for(;ei!=INVALID; g.nextIn(ei))181 mapstorage.graph.firstIn(ei,active_node); 182 for(;ei!=INVALID;mapstorage.graph.nextIn(ei)) 181 183 { 182 184 Gnome::Canvas::Points coos; 183 185 double x1, x2, y1, y2; 184 186 185 nodesmap[ g.source(ei)]->get_bounds(x1, y1, x2, y2);187 nodesmap[mapstorage.graph.source(ei)]->get_bounds(x1, y1, x2, y2); 186 188 coos.push_back(Gnome::Art::Point((x1+x2)/2,(y1+y2)/2)); 187 189 188 nodesmap[ g.target(ei)]->get_bounds(x1, y1, x2, y2);190 nodesmap[mapstorage.graph.target(ei)]->get_bounds(x1, y1, x2, y2); 189 191 coos.push_back(Gnome::Art::Point((x1+x2)/2,(y1+y2)/2)); 190 192 … … 220 222 break; 221 223 case GDK_BUTTON_PRESS: 224 mapstorage.modified = true; 225 222 226 isbutton=1; 223 227 224 active_node=NodeIt( g,g.addNode());228 active_node=NodeIt(mapstorage.graph,mapstorage.graph.addNode()); 225 229 226 230 //initiating values corresponding to new node in maps … … 228 232 window_to_world (e->button.x, e->button.y, clicked_x, clicked_y); 229 233 230 nodesmap[active_node]=new Gnome::Canvas::Ellipse(displayed_graph, clicked_x-20, clicked_y-20, clicked_x+20, clicked_y+20); 234 mapstorage.coords.set(active_node, xy<double>(clicked_x, clicked_y)); 235 (*mapstorage.nodemap_storage["id"])[active_node] = 236 mapstorage.graph.id(active_node); 237 238 nodesmap[active_node]=new Gnome::Canvas::Ellipse(displayed_graph, 239 clicked_x-20, clicked_y-20, clicked_x+20, clicked_y+20); 231 240 active_item=(Gnome::Canvas::Item *)(nodesmap[active_node]); 232 241 *(nodesmap[active_node]) << Gnome::Canvas::Properties::fill_color("red"); … … 234 243 (nodesmap[active_node])->show(); 235 244 236 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, ""); 245 nodetextmap[active_node]=new Gnome::Canvas::Text(displayed_graph, 246 clicked_x+node_property_defaults[N_RADIUS]+5, 247 clicked_y+node_property_defaults[N_RADIUS]+5, ""); 237 248 nodetextmap[active_node]->property_fill_color().set_value("darkblue"); 238 249 239 mapwin ->updateNode(active_node);250 mapwin.updateNode(active_node); 240 251 241 252 break; … … 301 312 active_item=(get_item_at(clicked_x, clicked_y)); 302 313 active_node=INVALID; 303 for (NodeIt i( g); i!=INVALID; ++i)314 for (NodeIt i(mapstorage.graph); i!=INVALID; ++i) 304 315 { 305 316 if(nodesmap[i]==active_item) … … 330 341 target_item=(get_item_at(clicked_x, clicked_y)); 331 342 Graph::NodeIt target_node=INVALID; 332 for (NodeIt i( g); i!=INVALID; ++i)343 for (NodeIt i(mapstorage.graph); i!=INVALID; ++i) 333 344 { 334 345 if(nodesmap[i]==target_item) … … 342 353 if(target_node!=active_node) 343 354 { 355 mapstorage.modified = true; 356 344 357 *(nodesmap[target_node]) << Gnome::Canvas::Properties::fill_color("red"); 345 358 346 359 //creating new edge 347 active_edge=EdgeIt( g,g.addEdge(active_node, target_node));360 active_edge=EdgeIt(mapstorage.graph,mapstorage.graph.addEdge(active_node, target_node)); 348 361 349 362 //initiating values corresponding to new edge in maps 350 363 mapstorage.initMapsForEdge(active_edge); 364 (*mapstorage.edgemap_storage["id"])[active_edge] = mapstorage.graph.id(active_edge); 351 365 352 366 //calculating coordinates of new edge … … 377 391 378 392 //updating its properties 379 mapwin ->updateEdge(active_edge);393 mapwin.updateEdge(active_edge); 380 394 } 381 395 else … … 430 444 active_node=INVALID; 431 445 active_edge=INVALID; 432 433 446 //was it a node? 434 for (NodeIt i( g); i!=INVALID; ++i)447 for (NodeIt i(mapstorage.graph); i!=INVALID; ++i) 435 448 { 436 449 if(nodesmap[i]==active_item) … … 442 455 if(active_node==INVALID) 443 456 { 444 for (EdgeIt i( g); i!=INVALID; ++i)457 for (EdgeIt i(mapstorage.graph); i!=INVALID; ++i) 445 458 { 446 459 if(edgesmap[i]==active_item) … … 468 481 if(active_node!=INVALID) 469 482 { 483 mapstorage.modified = true; 470 484 471 485 //collecting edges to delete … … 473 487 std::set<Graph::Edge> edges_to_delete; 474 488 475 g.firstOut(e,active_node);476 for(;e!=INVALID; g.nextOut(e))489 mapstorage.graph.firstOut(e,active_node); 490 for(;e!=INVALID;mapstorage.graph.nextOut(e)) 477 491 { 478 492 edges_to_delete.insert(e); 479 493 } 480 494 481 g.firstIn(e,active_node);482 for(;e!=INVALID; g.nextIn(e))495 mapstorage.graph.firstIn(e,active_node); 496 for(;e!=INVALID;mapstorage.graph.nextIn(e)) 483 497 { 484 498 edges_to_delete.insert(e); … … 546 560 //find the activated item between texts 547 561 active_item=(get_item_at(e->button.x, e->button.y)); 548 for (EdgeIt i( g); i!=INVALID; ++i)562 for (EdgeIt i(mapstorage.graph); i!=INVALID; ++i) 549 563 { 550 564 if(edgetextmap[i]==active_item) … … 560 574 active_item=(get_item_at(clicked_x, clicked_y)); 561 575 562 for (EdgeIt i( g); i!=INVALID; ++i)576 for (EdgeIt i(mapstorage.graph); i!=INVALID; ++i) 563 577 { 564 578 //at the same time only one can be active … … 664 678 //find the activated item between texts 665 679 active_item=(get_item_at(e->button.x, e->button.y)); 666 for (NodeIt i( g); i!=INVALID; ++i)680 for (NodeIt i(mapstorage.graph); i!=INVALID; ++i) 667 681 { 668 682 //at the same time only one can be active … … 679 693 active_item=(get_item_at(clicked_x, clicked_y)); 680 694 681 for (NodeIt i( g); i!=INVALID; ++i)695 for (NodeIt i(mapstorage.graph); i!=INVALID; ++i) 682 696 { 683 697 //at the same time only one can be active … … 804 818 edgetextmap[active_edge]->property_text().set_value(ostr.str()); 805 819 (*(mapstorage.edgemap_storage)[edgemap_to_edit])[active_edge]=mapvalue_d; 806 mapwin ->updateEdge(active_edge);820 mapwin.updateEdge(active_edge); 807 821 break; 808 822 case NODE_MAP_EDIT: 809 823 nodetextmap[active_node]->property_text().set_value(ostr.str()); 810 824 (*(mapstorage.nodemap_storage)[nodemap_to_edit])[active_node]=mapvalue_d; 811 mapwin ->updateNode(active_node);825 mapwin.updateNode(active_node); 812 826 break; 813 827 default: … … 836 850 delete(nodetextmap[node_to_delete]); 837 851 delete(nodesmap[node_to_delete]); 838 g.erase(node_to_delete);852 mapstorage.graph.erase(node_to_delete); 839 853 } 840 854 … … 843 857 delete(edgetextmap[edge_to_delete]); 844 858 delete(edgesmap[edge_to_delete]); 845 g.erase(edge_to_delete);859 mapstorage.graph.erase(edge_to_delete); 846 860 } 847 861 … … 850 864 delete(edgetextmap[edge_to_delete]); 851 865 delete(edgesmap[edge_to_delete]); 852 g.erase(edge_to_delete);866 mapstorage.graph.erase(edge_to_delete); 853 867 } 854 868 … … 870 884 else 871 885 { 872 for (EdgeIt i( g); i!=INVALID; ++i)886 for (EdgeIt i(mapstorage.graph); i!=INVALID; ++i) 873 887 { 874 888 if(edgesmap[i]==active_bre) … … 896 910 { 897 911 //create the new map 898 Graph::EdgeMap<double> * emptr=new Graph::EdgeMap<double> ( g,default_value);912 Graph::EdgeMap<double> * emptr=new Graph::EdgeMap<double> (mapstorage.graph, default_value); 899 913 900 914 //if addition was not successful addEdgeMap returns one. … … 907 921 908 922 //add it to the list of the displayable maps 909 mapwin ->registerNewEdgeMap(mapname);923 mapwin.registerNewEdgeMap(mapname); 910 924 911 925 //display it … … 918 932 { 919 933 //create the new map 920 Graph::NodeMap<double> * emptr=new Graph::NodeMap<double> ( g,default_value);934 Graph::NodeMap<double> * emptr=new Graph::NodeMap<double> (mapstorage.graph,default_value); 921 935 922 936 //if addition was not successful addNodeMap returns one. … … 928 942 929 943 //add it to the list of the displayable maps 930 mapwin ->registerNewNodeMap(mapname);944 mapwin.registerNewNodeMap(mapname); 931 945 932 946 //display it
Note: See TracChangeset
for help on using the changeset viewer.