function Cursor(rune)
{
  this.line = {from:null,to:null};
  this.is_down = false;

  this.mouse_down = function(e)
  {
    e.preventDefault();

    ronin.cursor.line.origin = {x:e.clientX,y:e.clientY};
    ronin.cursor.line.from = {x:e.clientX,y:e.clientY};
  }

  this.mouse_move = function(e)
  {
    e.preventDefault();

    if(!ronin.cursor.line.from){ return; }

    ronin.cursor.line.to = {x:e.clientX,y:e.clientY};

    if(ronin.commander.active_module()){

    }
    else if(e.altKey){
      ronin.eraser.stroke(ronin.cursor.line);
    }
    else{
      ronin.brush.stroke(ronin.cursor.line);  
    }
    
    ronin.cursor.line.from = {x:e.clientX,y:e.clientY};
  }

  this.mouse_up = function(e)
  {   
    e.preventDefault();
    
    ronin.cursor.line.destination = {x:e.clientX,y:e.clientY};

    if(distance_between(ronin.cursor.line.origin,ronin.cursor.line.destination) > 10){
      ronin.commander.inject(e.clientX+"x"+e.clientY);
    }
    else{
      ronin.commander.inject(e.clientX+","+e.clientY);
    }
    
    ronin.cursor.is_down = false;
    ronin.cursor.line = {};
  }

  function distance_between(a,b)
  {
    return Math.sqrt( (a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y) );
  }
}