diff options
author | 2023-10-10 14:33:42 +0000 | |
---|---|---|
committer | 2023-10-10 14:33:42 +0000 | |
commit | af1a266670d040d2f4083ff309d732d648afba2a (patch) | |
tree | 2fc46203448ddcc6f81546d379abfaeb323575e9 /roms/u-boot-sam460ex/board/ACube/menu/label_items.c | |
parent | e02cda008591317b1625707ff8e115a4841aa889 (diff) |
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'roms/u-boot-sam460ex/board/ACube/menu/label_items.c')
-rw-r--r-- | roms/u-boot-sam460ex/board/ACube/menu/label_items.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/roms/u-boot-sam460ex/board/ACube/menu/label_items.c b/roms/u-boot-sam460ex/board/ACube/menu/label_items.c new file mode 100644 index 000000000..a74d4c32b --- /dev/null +++ b/roms/u-boot-sam460ex/board/ACube/menu/label_items.c @@ -0,0 +1,47 @@ +#include "menu.h" +#include <stdarg.h> +#include "label_items.h" +#include "creation.h" + +struct label_item +{ + item_t item; + char *display_text; +}; + +void itemtype_label_render(menu_t *menu, item_t *item, int state) +{ + struct label_item *it = (struct label_item *)item; + int x,y; + x = menu->x + item->x; + y = menu->y + item->y; + + video_draw_text(x,y, state, it->display_text, item->w); +} + +void itemtype_label_invoke(menu_t *menu, item_t *item, int key) +{ +} + +item_t *itemtype_label_alloc(menu_t *menu, va_list args) +{ + //char *s; + struct label_item *item = (struct label_item *)malloc(sizeof(struct label_item)); + if (!item) return NULL; + menu_item_init(&item->item); + + item->display_text = va_arg(args, char *); + + item->item.f_render = itemtype_label_render; + item->item.f_save = NULL; + item->item.f_invoke = itemtype_label_invoke; + item->item.f_load = NULL; + + item->item.w = strlen(item->display_text); + item->item.front_width = item->item.w/2; + item->item.back_width = item->item.w - item->item.front_width; + item->item.h = 1; + item->item.disabled = true; + + return (item_t *)item; +} |