gui/graph_displayer_canvas-event.cc
changeset 1550 4dcbb4ab1d7a
parent 1525 6d94de269ab1
child 1551 2b45f64f6377
     1.1 --- a/gui/graph_displayer_canvas-event.cc	Tue Jul 12 16:19:06 2005 +0000
     1.2 +++ b/gui/graph_displayer_canvas-event.cc	Tue Jul 12 18:21:49 2005 +0000
     1.3 @@ -43,6 +43,14 @@
     1.4        actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::eraserEventHandler), false);
     1.5        break;
     1.6  
     1.7 +    case EDGE_MAP_EDIT:
     1.8 +      actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::edgeMapEditEventHandler), false);
     1.9 +      break;
    1.10 +
    1.11 +    case NODE_MAP_EDIT:
    1.12 +      actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::nodeMapEditEventHandler), false);
    1.13 +      break;
    1.14 +
    1.15      default:
    1.16        break;
    1.17      }
    1.18 @@ -210,7 +218,6 @@
    1.19        //move the new node
    1.20      case GDK_MOTION_NOTIFY:
    1.21        {
    1.22 -	double world_motion_x, world_motion_y;
    1.23  	GdkEvent * generated=new GdkEvent();
    1.24  	generated->motion.x=e->motion.x;
    1.25  	generated->motion.y=e->motion.y;
    1.26 @@ -476,6 +483,51 @@
    1.27    return false;
    1.28  }
    1.29  
    1.30 +bool GraphDisplayerCanvas::edgeMapEditEventHandler(GdkEvent* e)
    1.31 +{
    1.32 +  switch(e->type)
    1.33 +    {
    1.34 +    case GDK_BUTTON_PRESS:
    1.35 +      window_to_world (e->button.x, e->button.y, clicked_x, clicked_y);
    1.36 +      active_item=(get_item_at(clicked_x, clicked_y));
    1.37 +      active_edge=INVALID;
    1.38 +      for (EdgeIt i(g); i!=INVALID; ++i)
    1.39 +	{
    1.40 +	  if(edgesmap[i]==active_item)
    1.41 +	    {
    1.42 +	      active_edge=i;
    1.43 +	    }
    1.44 +	}
    1.45 +      if(active_edge!=INVALID)
    1.46 +	{
    1.47 +	  if(canvasentrywidget)
    1.48 +	    {
    1.49 +	      delete(canvasentrywidget);
    1.50 +	    }
    1.51 +	  entrywidget.show();
    1.52 +	  entrywidget.set_text("Hello!");
    1.53 +	  //	  canvasentrywidget=new Gnome::Canvas::Widget(displayed_graph, clicked_x, clicked_y,entrywidget);
    1.54 +	  canvasentrywidget=new Gnome::Canvas::Widget(displayed_graph, e->button.x, e->button.y, entrywidget);
    1.55 +	  canvasentrywidget->property_width().set_value(70);
    1.56 +	  canvasentrywidget->property_height().set_value(50);
    1.57 +	  canvasentrywidget->show();
    1.58 +	  *(edgesmap[active_edge]) << Gnome::Canvas::Properties::fill_color("red");
    1.59 +	}
    1.60 +      active_item=NULL;		// !!!!!!!!!!!!!!!!!!!!!!!!!!!
    1.61 +      active_edge=INVALID;	// !!!!!!!!!!!!!!!!!!!!!!!!!!!
    1.62 +      break;
    1.63 +    default:
    1.64 +      break;
    1.65 +    }
    1.66 +  return false;  
    1.67 +}
    1.68 +
    1.69 +bool GraphDisplayerCanvas::nodeMapEditEventHandler(GdkEvent* e)
    1.70 +{
    1.71 +  e=e;
    1.72 +  return false;
    1.73 +}
    1.74 +
    1.75  void GraphDisplayerCanvas::deleteItem(NodeIt node_to_delete)
    1.76  {
    1.77    delete(nodetextmap[node_to_delete]);
    1.78 @@ -536,3 +588,4 @@
    1.79      }
    1.80  
    1.81  }
    1.82 +