       case .Indent: return UIImage(named: "shot-indent")!
       case .Reminder: return UIImage(named: "shot-reminder")!
       case .Delete: return UIImage(named: "shot-delete")!
-//      case .Undo: return UIImage(named: "shot-undo")!
+      //      case .Undo: return UIImage(named: "shot-undo")!
       case .Collapse: return UIImage(named: "shot-collapse")!
       case .Reorder: return UIImage(named: "shot-reorder")!
       case .Edit: return UIImage(named: "shot-edit")!

    case Indent
    case Reminder
    case Delete
//    case Undo // TODO: v2
    case Collapse
    case Reorder
    case Edit

    modal.addSubview(topSeparator)
    modal.addSubview(button!)
    
    progressWidthConstraint = NSLayoutConstraint(item: progress!, attribute: .Width, relatedBy: .Equal, toItem: modal, attribute: .Width, multiplier: 0, constant: 0)
    
    NSLayoutConstraint.activateConstraints([
      NSLayoutConstraint(item: modal, attribute: .CenterX, relatedBy: .Equal, toItem: view, attribute: .CenterX, multiplier: 1, constant: 0),
      NSLayoutConstraint(item: modal, attribute: .CenterY, relatedBy: .Equal, toItem: view, attribute: .CenterY, multiplier: 1, constant: 0),
      NSLayoutConstraint(item: modal, attribute: .Width, relatedBy: .Equal, toItem: view, attribute: .Width, multiplier: 0.7, constant: 50),
      NSLayoutConstraint(item: modal, attribute: .Height, relatedBy: .Equal, toItem: view, attribute: .Height, multiplier: 0.6, constant: 100),
      
      NSLayoutConstraint(item: message!, attribute: .Trailing, relatedBy: .Equal, toItem: modal, attribute: .Trailing, multiplier: 1, constant: 0),
      NSLayoutConstraint(item: message!, attribute: .Leading, relatedBy: .Equal, toItem: modal, attribute: .Leading, multiplier: 1, constant: 0),
      NSLayoutConstraint(item: message!, attribute: .Top, relatedBy: .Equal, toItem: modal, attribute: .Top, multiplier: 1, constant: Constant.Button.padding),
      NSLayoutConstraint(item: message!, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: Constant.Button.height),
      
      NSLayoutConstraint(item: messageSeparator, attribute: .Leading, relatedBy: .Equal, toItem: modal, attribute: .Leading, multiplier: 1, constant: 0),
      NSLayoutConstraint(item: messageSeparator, attribute: .Trailing, relatedBy: .Equal, toItem: modal, attribute: .Trailing, multiplier: 1, constant: 0),
      NSLayoutConstraint(item: messageSeparator, attribute: .Top, relatedBy: .Equal, toItem: message!, attribute: .Bottom, multiplier: 1, constant: Constant.Button.padding/2),
      NSLayoutConstraint(item: messageSeparator, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: Modal.separator),
      ])
    
    NSLayoutConstraint.activateConstraints([
      NSLayoutConstraint(item: image!, attribute: .Trailing, relatedBy: .Equal, toItem: modal, attribute: .Trailing, multiplier: 1, constant: 0),
      NSLayoutConstraint(item: image!, attribute: .Leading, relatedBy: .Equal, toItem: modal, attribute: .Leading, multiplier: 1, constant: 0),
      NSLayoutConstraint(item: image!, attribute: .Top, relatedBy: .Equal, toItem: messageSeparator, attribute: .Bottom, multiplier: 1, constant: Constant.Button.padding),
      NSLayoutConstraint(item: image!, attribute: .Bottom, relatedBy: .Equal, toItem: progress!, attribute: .Top, multiplier: 1, constant: -Constant.Button.padding),
      
      progressWidthConstraint!,
      NSLayoutConstraint(item: progress!, attribute: .Leading, relatedBy: .Equal, toItem: modal, attribute: .Leading, multiplier: 1, constant: 0),
      NSLayoutConstraint(item: progress!, attribute: .Bottom, relatedBy: .Equal, toItem: topSeparator, attribute: .Top, multiplier: 1, constant: 0),
      NSLayoutConstraint(item: progress!, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: progressHeight),
      
      NSLayoutConstraint(item: topSeparator, attribute: .Leading, relatedBy: .Equal, toItem: modal, attribute: .Leading, multiplier: 1, constant: 0),
      NSLayoutConstraint(item: topSeparator, attribute: .Trailing, relatedBy: .Equal, toItem: modal, attribute: .Trailing, multiplier: 1, constant: 0),
      NSLayoutConstraint(item: topSeparator, attribute: .Bottom, relatedBy: .Equal, toItem: button!, attribute: .Top, multiplier: 1, constant: 0),
      NSLayoutConstraint(item: topSeparator, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: Modal.separator),
 
      NSLayoutConstraint(item: button!, attribute: .Trailing, relatedBy: .Equal, toItem: modal, attribute: .Trailing, multiplier: 1, constant: 0),
      NSLayoutConstraint(item: button!, attribute: .Leading, relatedBy: .Equal, toItem: modal, attribute: .Leading, multiplier: 1, constant: 0),
      NSLayoutConstraint(item: button!, attribute: .Bottom, relatedBy: .Equal, toItem: modal, attribute: .Bottom, multiplier: 1, constant: 0),
      NSLayoutConstraint(item: button!, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: Constant.Button.height),
      ])
  }
  
