(self, position_info, operators, scale)
| 174 | return x, y, align |
| 175 | |
| 176 | def draw_operator_box(self, position_info, operators, scale): |
| 177 | box_width = 300 * scale |
| 178 | padding = 8 * scale |
| 179 | x, y, align = position_info |
| 180 | line_height = 26 * scale |
| 181 | text_size = 100 * scale |
| 182 | box_height = min(len(operators), get_line_amount()) * line_height + 2 * padding |
| 183 | |
| 184 | if align == "Top": |
| 185 | outer_rectangle = Rectangle(x, y, box_width, box_height) |
| 186 | else: outer_rectangle = Rectangle(x, y + box_height, box_width, box_height) |
| 187 | draw_rectangle(outer_rectangle, color = self.background_color) |
| 188 | self.operator_box_rectangle = outer_rectangle |
| 189 | |
| 190 | padding_rectangle = outer_rectangle.get_inset_rectangle(padding) |
| 191 | |
| 192 | self.operator_line_rectangles = [] |
| 193 | for draw_index, operator in enumerate(operators[self.top_index:self.bottom_index+1]): |
| 194 | operator_index = self.top_index + draw_index |
| 195 | line_rectangle = self.get_operator_line_rectangle(outer_rectangle, padding_rectangle, line_height, draw_index) |
| 196 | self.operator_line_rectangles.append(line_rectangle) |
| 197 | |
| 198 | if operator_index == self.selected_index: |
| 199 | draw_rectangle(line_rectangle, color = self.selection_color) |
| 200 | draw_rectangle_border(line_rectangle, thickness = 1, color = self.selection_border_color) |
| 201 | |
| 202 | operator_label = Label() |
| 203 | operator_label.text = operator.display_name |
| 204 | operator_label.color = self.text_color |
| 205 | operator_label.text_size = text_size |
| 206 | operator_label.max_lines = 1 |
| 207 | operator_label.font_id = 1 |
| 208 | |
| 209 | label_position = [ |
| 210 | line_rectangle.left + padding, |
| 211 | line_rectangle.top - line_height / 4 * 3 ] |
| 212 | if operator.align == "CENTER": label_position[0] = line_rectangle.left + (line_rectangle.width - operator_label.get_draw_dimensions()[0]) / 2 |
| 213 | if operator.align == "INSET": label_position[0] = label_position[0] + padding |
| 214 | operator_label.draw(label_position) |
| 215 | |
| 216 | draw_rectangle_border(outer_rectangle, color = self.border_color, thickness = 1) |
| 217 | |
| 218 | return outer_rectangle |
| 219 | |
| 220 | def get_operator_line_rectangle(self, outer_rectangle, padding_rectangle, line_height, draw_index): |
| 221 | line_rectangle = Rectangle( |
no test coverage detected