COIN-OR::LEMON - Graph Library

Changeset 151:72f1c33f89d4 in glemon-0.x for gdc-broken_edge.cc


Ignore:
Timestamp:
09/25/06 09:54:00 (18 years ago)
Author:
Akos Ladanyi
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/glemon/trunk@2953
Message:

LoopEdge? improvements.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • gdc-broken_edge.cc

    r147 r151  
    156156GraphDisplayerCanvas::LoopEdge::LoopEdge(Gnome::Canvas::Group& _group,
    157157    Edge _edge, GraphDisplayerCanvas& _canvas) :
    158   EdgeBase(_group, _edge, _canvas), line(*this)
    159 {
    160   line.property_fill_color().set_value("green");
    161   line.property_width_units().set_value(10);   
     158  EdgeBase(_group, _edge, _canvas), line(*this), isbutton(false)
     159{
     160  arrow.signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::LoopEdge::edgeFormerEventHandler));
     161
     162  line.property_outline_color().set_value("green");
     163  line.property_width_units().set_value(10);
    162164  line.lower_to_bottom();
    163165
     
    200202void GraphDisplayerCanvas::LoopEdge::setFillColor(Gdk::Color c)
    201203{
    202   line.property_fill_color_gdk().set_value(c);
    203 }
     204  line.property_outline_color_gdk().set_value(c);
     205}
     206
     207bool GraphDisplayerCanvas::LoopEdge::edgeFormerEventHandler(GdkEvent* e)
     208{
     209  switch(e->type)
     210  {
     211    case GDK_BUTTON_PRESS:
     212      if(canvas.getActualTool()!=CREATE_NODE)
     213      {
     214        canvas.toggleEdgeActivity(this, true);
     215        isbutton=true;
     216      }
     217      break;
     218    case GDK_BUTTON_RELEASE:
     219      if(canvas.getActualTool()!=CREATE_NODE)
     220      {
     221        canvas.toggleEdgeActivity(this, false);
     222        isbutton=false;
     223      }
     224      break;
     225    case GDK_MOTION_NOTIFY:
     226      if(isbutton)
     227      {
     228        canvas.mytab.mapstorage.arrow_pos.set(edge, XY(e->motion.x, e->motion.y));
     229
     230        draw();
     231        canvas.textReposition(canvas.mytab.mapstorage.arrow_pos[edge]);
     232      }
     233    default: break;
     234  }
     235  return true;
     236}
Note: See TracChangeset for help on using the changeset viewer.