def get_separator_size_request(self, ctx, separator): thickness = separator.thickness if thickness is None: thickness = self.separator_thickness if separator.horizontal: return SizeRequest(0, thickness, 1, 0) else: return SizeRequest(thickness, 0, 0, 1)
def _get_size_request_of_elements_horizontal(self, ctx, elements, padding): requests = self._get_size_requests(ctx, elements) height = max(rq.height for rq in requests) width = sum(rq.width for rq in requests) + len(elements) * padding return SizeRequest(width, height)
def get_image_size_request(self, ctx, image): return SizeRequest(image.width, image.height)
def get_code_size_request(self, ctx, code): width, height = self._get_text_size(ctx, code.content, "code") return SizeRequest(width, height, code.fill_x, 0)
def get_shell_size_request(self, ctx, shell): width, height = self._get_text_size(ctx, shell.content, "shell") return SizeRequest(width, height, 0, 0)
def get_text_size_request(self, ctx, text): width, height = self._get_text_size(ctx, text.content, text.role) return SizeRequest(width, height, 1, 0)
def get_size_request(self, ctx): return SizeRequest(self.width, self.height)