'@todo: docstring'

def processBox(self, rules, row, col, matrix, action='rows'):

    startcol = col
    startrow = row
    endcol = col
    endrow = row
    headingrow = row
    self.addToLayout(startrow, startcol, andThenPostpone=True)
    if ('heading' in rules):
        row += 1
    if ('data' in rules):
        self.boxOpen = True
        value = rules['data']
        (endrow, endcol) = self.processList(value, row, col, matrix, action)
        self.boxOpen = False
    if ('heading' in rules):
        value = rules['heading']
        (row, endcol) = self.addLabel(value, headingrow, col, (endcol - col), 1)
    self.matrix.boxRange(startrow, startcol, endrow, (endcol - 1))
    self.addToLayout(startrow, startcol, endPostpone=True)
    return (endrow, endcol)
