(self, selected, iface_idx, web_ui)
| 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'}] |
no test coverage detected