def correct_component c
      raise "Form is still not set in Container" unless @form
      attach_form(c) unless c.form
      @last_row ||= @row + 1
      inset = 2
      # 2011-10-20 current default behaviour is to stack
      if @positioning == :stack
        c.row = @last_row
        c.col = @col + inset

        # do not advance row, save col for next row
        @last_row += 1
      elsif @positioning == :relative   # UNTESTED NOTE
        if (c.row || 0) <= 0
          $log.warn "c.row in CONTAINER is #{c.row} "
          c.row = @last_row
          @last_row += 1
        elsif c.row > @row + @height -1
          $log.warn "c.row in CONTAINER exceeds container.  #{c.row} "
          c.row -= @height - @row_offset
        else
          # this is where it should come
          c.row += @row + @row_offset
          @last_row = c.row + 1
        end
        if (c.col || 0) <= 0
          c.col = @col + inset + @col_offset
        elsif c.col > @col + @width -1
          c.col -= @width
        elsif c.col == @col
          c.col += @col_offset + inset
        else #f c.col < @col
          c.col += @col+@col_offset
        end
      $log.debug "XXX: CORRECT #{c.name}  r:#{c.row} c:#{c.col} "
      end
      @first_time = false
    end
def correct_component c
      raise "Form is still not set in Container" unless @form
      attach_form(c) unless c.form
      @last_row ||= @row + 1
      inset = 2
      # 2011-10-20 current default behaviour is to stack
      if @positioning == :stack
        c.row = @last_row
        c.col = @col + inset

        # do not advance row, save col for next row
        @last_row += 1
      elsif @positioning == :relative   # UNTESTED NOTE
        if (c.row || 0) <= 0
          $log.warn "c.row in CONTAINER is #{c.row} "
          c.row = @last_row
          @last_row += 1
        elsif c.row > @row + @height -1
          $log.warn "c.row in CONTAINER exceeds container.  #{c.row} "
          c.row -= @height - @row_offset
        else
          # this is where it should come
          c.row += @row + @row_offset
          @last_row = c.row + 1
        end
        if (c.col || 0) <= 0
          c.col = @col + inset + @col_offset
        elsif c.col > @col + @width -1
          c.col -= @width
        elsif c.col == @col
          c.col += @col_offset + inset
        else #f c.col < @col
          c.col += @col+@col_offset
        end
      $log.debug "XXX: CORRECT #{c.name}  r:#{c.row} c:#{c.col} "
      end
      @first_time = false
    end
what of by_name
 correct coordinates of comp esp if App has stacked them after this
 container
 It is best to use the simple stack feature. The rest could change at any time
  and is quite arbitrary. Some folks may set absolute locations if container
  is directly on a form, others may set relative locations if it is inside a
  tabbed pane or other container. Thus, stacks are best