broken_edge.cc
branchgui
changeset 20 a3bd39d50930
parent 19 164783ceb9be
child 21 44bb92014108
     1.1 --- a/broken_edge.cc	Thu Jun 16 18:08:04 2005 +0000
     1.2 +++ b/broken_edge.cc	Thu Jun 16 18:58:15 2005 +0000
     1.3 @@ -17,25 +17,42 @@
     1.4    if(arrow)delete(arrow);
     1.5  }
     1.6  
     1.7 -void BrokenEdge::set_points(Gnome::Canvas::Points p)
     1.8 +void BrokenEdge::set_points(Gnome::Canvas::Points p, bool move)
     1.9  {
    1.10    bool set_arrow=false;
    1.11 -  if(p.size()==2)
    1.12 +  if(!move)
    1.13      {
    1.14 -      set_arrow=true;
    1.15 -      Gnome::Canvas::Points points_with_center;
    1.16 -      points_with_center.push_back(my_points[0]=p[0]);
    1.17 -      points_with_center.push_back(my_points[1]=Gnome::Art::Point( (p[0].get_x()+p[1].get_x())/2+0 , (p[0].get_y()+p[1].get_y())/2 )+0 );
    1.18 -      points_with_center.push_back(my_points[2]=p[1]);
    1.19 -      property_points().set_value(points_with_center);
    1.20 -    }  
    1.21 -  if(p.size()==3)
    1.22 +      if(p.size()==2)
    1.23 +	{
    1.24 +	  set_arrow=true;
    1.25 +	  Gnome::Canvas::Points points_with_center;
    1.26 +	  points_with_center.push_back(my_points[0]=p[0]);
    1.27 +	  points_with_center.push_back(my_points[1]=Gnome::Art::Point( (p[0].get_x()+p[1].get_x())/2+0 , (p[0].get_y()+p[1].get_y())/2 )+0 );
    1.28 +	  points_with_center.push_back(my_points[2]=p[1]);
    1.29 +	  property_points().set_value(points_with_center);
    1.30 +	}  
    1.31 +      if(p.size()==3)
    1.32 +	{
    1.33 +	  set_arrow=true;
    1.34 +	  property_points().set_value(p);
    1.35 +	  for(int i=0;i<3;i++)
    1.36 +	    {
    1.37 +	      my_points[i]=p[i];
    1.38 +	    }
    1.39 +	}
    1.40 +    }
    1.41 +  else
    1.42      {
    1.43 -      set_arrow=true;
    1.44 -      property_points().set_value(p);
    1.45 -      for(int i=0;i<3;i++)
    1.46 +      if(p.size()==2)
    1.47  	{
    1.48 -	  my_points[i]=p[i];
    1.49 +	  Gnome::Canvas::Points points;
    1.50 +	  my_points[0]=p[0];
    1.51 +	  my_points[2]=p[1];
    1.52 +	  for(int i=0;i<3;i++)
    1.53 +	    {
    1.54 +	      points.push_back(my_points[i]);
    1.55 +	    }
    1.56 +	  property_points().set_value(points);
    1.57  	}
    1.58      }
    1.59