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