MCPcopy Index your code
hub / github.com/JacquesLucke/code_autocomplete / draw_operator_box

Method draw_operator_box

modal_handler.py:176–218  ·  view source on GitHub ↗
(self, position_info, operators, scale)

Source from the content-addressed store, hash-verified

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(

Callers 1

drawMethod · 0.95

Calls 9

get_inset_rectangleMethod · 0.95
get_draw_dimensionsMethod · 0.95
drawMethod · 0.95
get_line_amountFunction · 0.85
RectangleClass · 0.85
draw_rectangleFunction · 0.85
draw_rectangle_borderFunction · 0.85
LabelClass · 0.85

Tested by

no test coverage detected