MCPcopy Create free account
hub / github.com/PierreGode/Ragnar / _draw_main_menu

Method _draw_main_menu

pager/pager_menu.py:191–222  ·  view source on GitHub ↗
(self, selected, iface_idx, web_ui)

Source from the content-addressed store, hash-verified

189 time.sleep(0.016)
190
191 def _draw_main_menu(self, selected, iface_idx, web_ui):
192 self.gfx.clear(Pager.BLACK)
193
194 # Title using Viking font
195 self.gfx.draw_ttf_centered(2, "Ragnar", TITLE_COLOR, FONT_VIKING, 38.0)
196
197 y = 50
198 items = self._get_menu_items(iface_idx, web_ui)
199
200 for i, item in enumerate(items):
201 is_selected = (i == selected)
202
203 if item.get('toggle'):
204 label = item['label']
205 value = item['value']
206 value_color = item['value_color']
207 label_color = SELECTED_COLOR if is_selected else UNSELECTED_COLOR
208
209 max_value = item.get('max_value', value)
210 label_width = self.gfx.ttf_width(label, FONT_DEJAVU, TTF_MEDIUM)
211 max_value_width = self.gfx.ttf_width(max_value, FONT_DEJAVU, TTF_MEDIUM)
212 total_width = label_width + 8 + max_value_width
213 start_x = max(2, (480 - total_width) // 2)
214 self.gfx.draw_ttf(start_x, y, label, label_color, FONT_DEJAVU, TTF_MEDIUM)
215 self.gfx.draw_ttf(start_x + label_width + 8, y, value, value_color, FONT_DEJAVU, TTF_MEDIUM)
216 else:
217 color = SELECTED_COLOR if is_selected else UNSELECTED_COLOR
218 self.gfx.draw_ttf_centered(y, item['label'], color, FONT_DEJAVU, TTF_MEDIUM)
219
220 y += 22
221
222 self.gfx.flip()
223
224 def _get_menu_items(self, iface_idx, web_ui):
225 items = [{'label': 'Start Ragnar'}]

Callers 1

show_main_menuMethod · 0.95

Calls 7

_get_menu_itemsMethod · 0.95
clearMethod · 0.45
draw_ttf_centeredMethod · 0.45
getMethod · 0.45
ttf_widthMethod · 0.45
draw_ttfMethod · 0.45
flipMethod · 0.45

Tested by

no test coverage detected