   var expandHeight: Bool { get set }
   var expandParentWidth: Bool { get set }
   var expandParentHeight: Bool { get set }
+  var backgroundStrings: [String] { get set }
+
 
   func tellSize() -> TellSize
 
   func draw(x: Int, y: Int, size: TellSize)
 
   func drawBorder(x: Int, y: Int, size: TellSize) -> NCPoint
+
+  func drawBackground(x: Int, y: Int, width: Int, height: Int,
+      strings: [String])
 }
 
 

  public var expandHeight = false
  public var expandParentWidth = false
  public var expandParentHeight = false

  public init() { }


      nx += 1
    }
    return NCPoint(x: nx, y: ny)
  }

  public func drawBackground(x: Int, y: Int, width: Int, height: Int,
      strings: [String]) {
    if strings.count == 0 || strings[0].isEmpty {
      return
    }
    if strings.count == 1 {
      let a = Array(strings[0].characters)
      let len = a.count
      if len == 1 {
        let s = String(a[0])
        let ei = y + height
        let nx = Int32(x)
        for i in y..<ei {
          move(Int32(i), nx)
          for _ in x..<x+width {
            addstr(s)
          }
        }
      } else {
        let ex = x + width
        let limit = ex - len + 1
        let s = strings[0]
        let nx = Int32(x)
        let ey = y + height
        for i in y..<ey {
          move(Int32(i), nx)
          var j = x
          while j < limit {
            addstr(s)
            j += len
          }
          if j < ex {
            addstr(s.characters.substring(0, endIndex: ex - j))
          }
        }
      }
    }
  }

}
