OSCR
Open Source Cartridge Reader
Loading...
Searching...
No Matches
OSCR::UI::MenuRenderer Class Referenceabstract

Abstract menu renderer class. More...

#include <ui/interfaces.h>

Inheritance diagram for OSCR::UI::MenuRenderer:
OSCR::Apps::CRDBBrowser< CRDBType, RecordType, dbRecordSize, EnableDB > OSCR::Apps::FileBrowser OSCR::UI::MenuBase OSCR::UI::FlashTemplateMenu OSCR::UI::IntegerTemplateMenu< T, Enable > OSCR::UI::Menu OSCR::UI::MenuOptionsMenu< optionCount, optionLength >

Public Member Functions

 MenuRenderer (char const *menuTitle)
 MenuRenderer (char const *menuTitle, uint16_t entryCount)
 MenuRenderer (__FlashStringHelper const *menuTitle)
 MenuRenderer (__FlashStringHelper const *menuTitle, uint16_t entryCount)
uint16_t getPage ()
uint16_t getPageCount ()
bool isLast ()
uint16_t getPageEntryCount ()
uint16_t getPageEntryOffset ()
uint16_t getEntryIndex ()
void gotoPage (uint16_t page)
void navNext ()
void navPrev ()
void nextPage ()
void prevPage ()
void render ()
uint16_t select ()

Protected Member Functions

void navigate (NavDir direction)
void onSelectionChange ()
virtual bool onConfirm ()=0
virtual void setup ()=0
virtual void onPageChange ()=0

Protected Attributes

char title [30] = {}
uint16_t count
uint16_t totalPages
uint16_t pageEntriesLast
uint16_t currentPage = 1
uint16_t selection = 0
bool rendered = false
char pageEntries [((uint8_t) 32)][((uint8_t) 31)]

Detailed Description

Abstract menu renderer class.

Base class used for writing menus to the output. Methods need to be implemented by a UI output implementation.

Note
This abstract class cannot be used directly. It needs to be extended. See the other menu classes for examples.

Member Function Documentation

◆ render()

void OSCR::UI::MenuRenderer::render ( )

Menus/Prompts

◆ select()

uint16_t OSCR::UI::MenuRenderer::select ( )

Prompt the user with a menu and return the index of the selection.

Returns
The index of the selected option.

The documentation for this class was generated from the following files:
  • C:/Developer/Projects/OSCR/oscr-firmware/include/ui/interfaces.h
  • ui/interfaces.cpp
  • ui/interfaces/serial/ascii.cpp