       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))
+          }
+        }
+      }
+    }
   }
 
 }

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

  public init() { }


  public var expandHeight = false
  public var expandParentWidth = false
  public var expandParentHeight = false
  public var backgroundStrings = [" "]

  public init() { }

