нужду в оптимизации процесса создания страниц. Вот что придумал.
#define MAKE_PAGE_DEFAULT(Name, Init, RenderTitle, Update) \
extern void Init (struct MenuPage *self, uint8_t isNext);\
extern void RenderTitle (struct MenuPage *self, uint8_t x, uint8_t y, char focusMode);\
extern void Update (struct MenuPage *self);\
MenuPage Name = { pHomePage, 1, NULL, NULL, Init, RenderTitle, Update, menuRouterSetHomePage };
идея в том, чтобы писать страницу только в .c и подхватывать ее в макросе. Не слишком намудрил?
Если нет задачи код потом кому-то другому поддерживать, то можно и оставить 🙈
Ну хз, может кто то лет через 10-20 и полезет
А что значит процесс создания и его оптимизация?
И что он скажет, после этого? 😉
ну доку то я напишу
надо уменьшить число рутинных операций при добавлении очередной страницы в меню.
Имхо, стоит макрос хотя бы разбить на два три связаных.
typedef struct MenuPage { struct MenuPage **pNextPages; const uint8_t nextPagesCount; struct MenuPage *pPrevPage; void *pContext; void (*init)(struct MenuPage *self, uint8_t isNext); void (*renderTitle)(struct MenuPage *self, uint8_t x, uint8_t y, char focusMode); void (*update)(struct MenuPage *self); void (*forseSetHomePage)(struct MenuPage *self); } __attribute__((__packed__)) MenuPage; вот есть такая структура, она крутится в роутере страниц
а почему на классах это не сделать?
потому что я дурачек и взял си(
Обсуждают сегодня