def _refresh_crop_rectangle(self, deltaX=0, deltaY=0):
    ' re-builds the crop rectangle based on the specified box '
    if ((self.rectangle and (deltaX > 0)) or (deltaY > 0)):
        self.canvas.move(self.rectangle, deltaX, deltaY)
    else:
        self.canvas.delete(self.rectangle)
        self.rectangle = self.canvas.create_rectangle(self.box[0], self.box[1], self.box[2], self.box[3], outline='red', width=2)
re-builds the crop rectangle based on the specified box
def _refresh_crop_rectangle(self, deltaX=0, deltaY=0):
    '  '
    if ((self.rectangle and (deltaX > 0)) or (deltaY > 0)):
        self.canvas.move(self.rectangle, deltaX, deltaY)
    else:
        self.canvas.delete(self.rectangle)
        self.rectangle = self.canvas.create_rectangle(self.box[0], self.box[1], self.box[2], self.box[3], outline='red', width=2)