28 #ifndef _LCDGFX_MENU_H_ 29 #define _LCDGFX_MENU_H_ 38 #define lcd_gfx_min(x, y) ((x) < (y) ? (x) : (y)) 43 #define lcd_gfx_max(x, y) ((x) > (y) ? (x) : (y)) 74 template <
typename D>
void show(D &d);
96 void setSelection(uint8_t s);
128 template <
typename D> uint8_t getMaxScreenItems(D &d)
130 return (menu.
height - 16) / d.getFont().getHeader().height;
133 template <
typename D> uint8_t calculateScrollPosition(D &d, uint8_t selection)
139 else if ( selection - menu.
scrollPosition > getMaxScreenItems(d) - 1 )
141 return selection - getMaxScreenItems(d) + 1;
146 template <
typename D>
void drawMenuItem(D &d, uint8_t index)
153 uint16_t color = d.getColor();
155 d.fillRect(menu.
left + 8 + d.getFont().getTextSize(menu.
items[index]), item_top, menu.
width + menu.
left - 9,
156 item_top + d.getFont().getHeader().height - 1);
158 d.printFixed(menu.
left + 8, item_top, menu.
items[index], STYLE_NORMAL);
173 this->drawMenuItem(d, i);