     }
     if maxHeight >= 0 && t.height > maxHeight {
       t.height = maxHeight
+    }
+    if expandParentWidth {
+      t.expandParentWidth = true
+    }
+    if expandParentHeight {
+      t.expandParentHeight = true
     }
     return t
   }

        t.borderBottom = 1
        t.height += 1
      }
    }
    return t
  }

    }
    var ap = drawBorder(x, y: y, size: size)
    let w = size.width - size.borderLeft - size.borderRight
    //NC.pd("\(inspect(size))")
    for s in size.children! {
      if s.expandWidth > 0 {
        NC.pd("repeat for good measure!")
        var expandedSize = s
        expandedSize.width = w
        s.element!.draw(ap.x, y: ap.y, size: expandedSize)
      } else if s.width <= w {
        s.element!.draw(ap.x, y: ap.y, size: s)
      } else {
        var clippedSize = s
