def print_border row, col, height, width, color, att=Ncurses::A_NORMAL
      raise "height needs to be supplied." if height.nil?
      raise "width needs to be supplied." if width.nil?
      att ||= Ncurses::A_NORMAL

      #$log.debug " inside window print_border r #{row} c #{col} h #{height} w #{width} "

      # 2009-11-02 00:45 made att nil for blanking out
      # FIXME - in tabbedpanes this clears one previous line ??? XXX when using a textarea/view
      # when using a pad this calls pads printstring which again reduces top and left !!! 2010-01-26 23:53 
      ww=width-2
      clr = " "*ww
      (row+1).upto(row+height-1) do |r|
        printstring( r, col+1, clr, color, att)
      end
      print_border_only row, col, height, width, color, att
    end
def print_border row, col, height, width, color, att=Ncurses::A_NORMAL
      raise "height needs to be supplied." if height.nil?
      raise "width needs to be supplied." if width.nil?
      att ||= Ncurses::A_NORMAL

      #$log.debug " inside window print_border r #{row} c #{col} h #{height} w #{width} "

      # 2009-11-02 00:45 made att nil for blanking out
      # FIXME - in tabbedpanes this clears one previous line ??? XXX when using a textarea/view
      # when using a pad this calls pads printstring which again reduces top and left !!! 2010-01-26 23:53 
      ww=width-2
      clr = " "*ww
      (row+1).upto(row+height-1) do |r|
        printstring( r, col+1, clr, color, att)
      end
      print_border_only row, col, height, width, color, att
    end
prints a border around a widget, CLEARING the area.
  If calling with a pad, you would typically use 0,0, h-1, w-1.
  FIXME can this be moved to module Bordertitle ?