diff -r 56eb90299693 -r adfdc2f70548 graph_displayer_canvas.cc --- a/graph_displayer_canvas.cc Wed Nov 23 16:24:59 2005 +0000 +++ b/graph_displayer_canvas.cc Tue Nov 29 19:31:58 2005 +0000 @@ -1,14 +1,12 @@ #include "graph_displayer_canvas.h" #include -GraphDisplayerCanvas::GraphDisplayerCanvas(MapStorage & ms, MapWin & mw, Gtk::Window * mainwin) : - nodesmap(ms.graph), edgesmap(ms.graph), edgetextmap(ms.graph), - nodetextmap(ms.graph), displayed_graph(*(root()), 0, 0), mapstorage(ms), +GraphDisplayerCanvas::GraphDisplayerCanvas(MainWin & mainw) : + nodesmap(mainw.mapstorage.graph), edgesmap(mainw.mapstorage.graph), edgetextmap(mainw.mapstorage.graph), + nodetextmap(mainw.mapstorage.graph), displayed_graph(*(root()), 0, 0), isbutton(0), active_item(NULL), target_item(NULL), nodemap_to_edit(""), - edgemap_to_edit(""), mapwin(mw) + edgemap_to_edit(""), mainwin(mainw) { - parentwin=mainwin; - //base event handler is move tool actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::moveEventHandler), false); actual_tool=MOVE; @@ -20,35 +18,155 @@ GraphDisplayerCanvas::~GraphDisplayerCanvas() { - for (NodeIt n(mapstorage.graph); n != INVALID; ++n) - { - delete nodesmap[n]; - delete nodetextmap[n]; - } + for (NodeIt n((mainwin.mapstorage).graph); n != INVALID; ++n) + { + delete nodesmap[n]; + delete nodetextmap[n]; + } + + for (EdgeIt e((mainwin.mapstorage).graph); e != INVALID; ++e) + { + delete edgesmap[e]; + delete edgetextmap[e]; + } +} - for (EdgeIt e(mapstorage.graph); e != INVALID; ++e) - { - delete edgesmap[e]; - delete edgetextmap[e]; - } +void GraphDisplayerCanvas::propertyChange(bool itisedge, int prop) +{ + if(itisedge) + { + propertyUpdate(Edge(INVALID), prop); + } + else + { + propertyUpdate(Node(INVALID), prop); + } +} + +void GraphDisplayerCanvas::propertyUpdate(Edge edge) +{ + for(int i=0;iraise_to_top(); @@ -85,8 +203,8 @@ //initializing edge-text as well, to empty string xy text_pos( - (mapstorage.coords[i].x+node_property_defaults[N_RADIUS]+5), - (mapstorage.coords[i].y+node_property_defaults[N_RADIUS]+5)); + ((mainwin.mapstorage).coords[i].x+node_property_defaults[N_RADIUS]+5), + ((mainwin.mapstorage).coords[i].y+node_property_defaults[N_RADIUS]+5)); nodetextmap[i]=new Gnome::Canvas::Text(displayed_graph, text_pos.x, text_pos.y, ""); @@ -104,13 +222,13 @@ active_edge=INVALID; forming_edge=INVALID; - for (NodeIt n(mapstorage.graph); n != INVALID; ++n) + for (NodeIt n((mainwin.mapstorage).graph); n != INVALID; ++n) { delete nodesmap[n]; delete nodetextmap[n]; } - for (EdgeIt e(mapstorage.graph); e != INVALID; ++e) + for (EdgeIt e((mainwin.mapstorage).graph); e != INVALID; ++e) { delete edgesmap[e]; delete edgetextmap[e];