code: func DrawFrame(x, y, w, h int, border BorderStyle) {
  	var chars string
  	if border == BorderThick {
  		chars = SysObject(ObjDoubleBorder)
  	} else if border == BorderThin {
  		chars = SysObject(ObjSingleBorder)
  	} else if border == BorderNone {
  		chars = "      "
  	} else {
  		chars = "      "
  	}
  
  	parts := []rune(chars)
  	H, V, UL, UR, DL, DR := parts[0], parts[1], parts[2], parts[3], parts[4], parts[5]
  
  	if InClipRect(x, y) {
  		putCharUnsafe(x, y, UL)
  	}
  	if InClipRect(x+w-1, y+h-1) {
  		putCharUnsafe(x+w-1, y+h-1, DR)
  	}
  	if InClipRect(x, y+h-1) {
  		putCharUnsafe(x, y+h-1, DL)
  	}
  	if InClipRect(x+w-1, y) {
  		putCharUnsafe(x+w-1, y, UR)
  	}
  
  	var xx, yy, ww, hh int
  	xx, yy, ww, _ = clip(x+1, y, w-2, 1)
  	if ww > 0 {
  		DrawHorizontalLine(xx, yy, ww, H)
  	}
  	xx, yy, ww, _ = clip(x+1, y+h-1, w-2, 1)
  	if ww > 0 {
  		DrawHorizontalLine(xx, yy, ww, H)
  	}
  	xx, yy, _, hh = clip(x, y+1, 1, h-2)
  	if hh > 0 {
  		DrawVerticalLine(xx, yy, hh, V)
  	}
  	xx, yy, _, hh = clip(x+w-1, y+1, 1, h-2)
  	if hh > 0 {
  		DrawVerticalLine(xx, yy, hh, V)
  	}
  }
docs: // DrawFrame paints the frame without changing area inside it