code: def get_minimum_size(self, data):
          
          min_width = 0
          height = 0
          for element in self.elements:
              size = element.get_minimum_size(data)
              min_width = max(min_width, size.x)
              height += size.y
          height += (len(self.elements)-1)*self.margin
          return datatypes.Point(min_width, height)
docs: Minimum height is the total height + margins, minimum width
          is the largest width.