diff options
Diffstat (limited to 'apps/menu.c')
-rw-r--r-- | apps/menu.c | 53 |
1 files changed, 24 insertions, 29 deletions
diff --git a/apps/menu.c b/apps/menu.c index 71a066f428..e840432f42 100644 --- a/apps/menu.c +++ b/apps/menu.c | |||
@@ -136,7 +136,7 @@ static char * get_menu_item_name(int selected_item,void * data, char *buffer) | |||
136 | return P2STR(menu->callback_and_desc->desc); | 136 | return P2STR(menu->callback_and_desc->desc); |
137 | } | 137 | } |
138 | #ifdef HAVE_LCD_BITMAP | 138 | #ifdef HAVE_LCD_BITMAP |
139 | static void menu_get_icon(int selected_item, void * data, ICON * icon) | 139 | static int menu_get_icon(int selected_item, void * data) |
140 | { | 140 | { |
141 | const struct menu_item_ex *menu = (const struct menu_item_ex *)data; | 141 | const struct menu_item_ex *menu = (const struct menu_item_ex *)data; |
142 | int menu_icon = Icon_NOICON; | 142 | int menu_icon = Icon_NOICON; |
@@ -144,8 +144,7 @@ static void menu_get_icon(int selected_item, void * data, ICON * icon) | |||
144 | 144 | ||
145 | if ((menu->flags&MENU_TYPE_MASK) == MT_RETURN_ID) | 145 | if ((menu->flags&MENU_TYPE_MASK) == MT_RETURN_ID) |
146 | { | 146 | { |
147 | *icon = bitmap_icons_6x8[Icon_Menu_functioncall]; | 147 | return Icon_Menu_functioncall; |
148 | return; | ||
149 | } | 148 | } |
150 | menu = menu->submenus[selected_item]; | 149 | menu = menu->submenus[selected_item]; |
151 | if (menu->flags&MENU_HAS_DESC) | 150 | if (menu->flags&MENU_HAS_DESC) |
@@ -153,28 +152,24 @@ static void menu_get_icon(int selected_item, void * data, ICON * icon) | |||
153 | else if (menu->flags&MENU_DYNAMIC_DESC) | 152 | else if (menu->flags&MENU_DYNAMIC_DESC) |
154 | menu_icon = menu->menu_get_name_and_icon->icon_id; | 153 | menu_icon = menu->menu_get_name_and_icon->icon_id; |
155 | 154 | ||
156 | switch (menu->flags&MENU_TYPE_MASK) | 155 | if (menu_icon == Icon_NOICON) |
157 | { | 156 | { |
158 | case MT_SETTING: | 157 | switch (menu->flags&MENU_TYPE_MASK) |
159 | case MT_SETTING_W_TEXT: | 158 | { |
160 | *icon = bitmap_icons_6x8[Icon_Menu_setting]; | 159 | case MT_SETTING: |
161 | break; | 160 | case MT_SETTING_W_TEXT: |
162 | case MT_MENU: | 161 | menu_icon = Icon_Menu_setting; |
163 | if (menu_icon == Icon_NOICON) | 162 | break; |
164 | *icon = bitmap_icons_6x8[Icon_Submenu]; | 163 | case MT_MENU: |
165 | else | 164 | menu_icon = Icon_Submenu; |
166 | *icon = bitmap_icons_6x8[menu_icon]; | 165 | break; |
167 | break; | 166 | case MT_FUNCTION_CALL: |
168 | case MT_FUNCTION_CALL: | 167 | case MT_RETURN_VALUE: |
169 | case MT_RETURN_VALUE: | 168 | menu_icon = Icon_Menu_functioncall; |
170 | if (menu_icon == Icon_NOICON) | 169 | break; |
171 | *icon = bitmap_icons_6x8[Icon_Menu_functioncall]; | 170 | } |
172 | else | ||
173 | *icon = bitmap_icons_6x8[menu_icon]; | ||
174 | break; | ||
175 | default: | ||
176 | *icon = NOICON; | ||
177 | } | 171 | } |
172 | return menu_icon; | ||
178 | } | 173 | } |
179 | #endif | 174 | #endif |
180 | 175 | ||
@@ -184,7 +179,7 @@ static void init_menu_lists(const struct menu_item_ex *menu, | |||
184 | int i, count = MENU_GET_COUNT(menu->flags); | 179 | int i, count = MENU_GET_COUNT(menu->flags); |
185 | int type = (menu->flags&MENU_TYPE_MASK); | 180 | int type = (menu->flags&MENU_TYPE_MASK); |
186 | menu_callback_type menu_callback = NULL; | 181 | menu_callback_type menu_callback = NULL; |
187 | ICON icon = NOICON; | 182 | int icon; |
188 | current_subitems_count = 0; | 183 | current_subitems_count = 0; |
189 | 184 | ||
190 | if (type == MT_OLD_MENU) | 185 | if (type == MT_OLD_MENU) |
@@ -220,9 +215,9 @@ static void init_menu_lists(const struct menu_item_ex *menu, | |||
220 | gui_synclist_init(lists,get_menu_item_name,(void*)menu,false,1); | 215 | gui_synclist_init(lists,get_menu_item_name,(void*)menu,false,1); |
221 | #ifdef HAVE_LCD_BITMAP | 216 | #ifdef HAVE_LCD_BITMAP |
222 | if (menu->callback_and_desc->icon_id == Icon_NOICON) | 217 | if (menu->callback_and_desc->icon_id == Icon_NOICON) |
223 | icon = bitmap_icons_6x8[Icon_Submenu_Entered]; | 218 | icon = Icon_Submenu_Entered; |
224 | else | 219 | else |
225 | icon = bitmap_icons_6x8[menu->callback_and_desc->icon_id]; | 220 | icon = menu->callback_and_desc->icon_id; |
226 | gui_synclist_set_title(lists, P2STR(menu->callback_and_desc->desc), icon); | 221 | gui_synclist_set_title(lists, P2STR(menu->callback_and_desc->desc), icon); |
227 | gui_synclist_set_icon_callback(lists, menu_get_icon); | 222 | gui_synclist_set_icon_callback(lists, menu_get_icon); |
228 | #else | 223 | #else |
@@ -704,10 +699,10 @@ static char* oldmenuwrapper_getname(int selected_item, | |||
704 | } | 699 | } |
705 | 700 | ||
706 | #ifdef HAVE_LCD_BITMAP | 701 | #ifdef HAVE_LCD_BITMAP |
707 | static void oldmenu_get_icon(int selected_item, void * data, ICON * icon) | 702 | static int oldmenu_get_icon(int selected_item, void * data) |
708 | { | 703 | { |
709 | (void)data; (void)selected_item; | 704 | (void)data; (void)selected_item; |
710 | *icon = bitmap_icons_6x8[Icon_Menu_functioncall]; | 705 | return Icon_Menu_functioncall; |
711 | } | 706 | } |
712 | #endif | 707 | #endif |
713 | 708 | ||
@@ -721,7 +716,7 @@ static void init_oldmenu(const struct menu_item_ex *menu, | |||
721 | gui_synclist_limit_scroll(lists, true); | 716 | gui_synclist_limit_scroll(lists, true); |
722 | #ifdef HAVE_LCD_BITMAP | 717 | #ifdef HAVE_LCD_BITMAP |
723 | gui_synclist_set_title(lists, menus[menu->value].title, | 718 | gui_synclist_set_title(lists, menus[menu->value].title, |
724 | bitmap_icons_6x8[Icon_Submenu_Entered]); | 719 | Icon_Submenu_Entered); |
725 | gui_synclist_set_icon_callback(lists, oldmenu_get_icon); | 720 | gui_synclist_set_icon_callback(lists, oldmenu_get_icon); |
726 | #endif | 721 | #endif |
727 | gui_synclist_select_item(lists, selected); | 722 | gui_synclist_select_item(lists, selected); |