|
1 | 1 | #include "../momentum_app.h" |
2 | 2 |
|
| 3 | +#define ONLY_MSG "Only in PS4,\nVertical and\nMNTM styles!" |
| 4 | +#define CANT_MSG "Can't show in\nthe selected\nstyle!" |
| 5 | + |
3 | 6 | enum VarItemListIndex { |
4 | 7 | VarItemListIndexMenuStyle, |
5 | 8 | VarItemListIndexResetMenu, |
@@ -31,6 +34,51 @@ static void momentum_app_scene_interface_mainmenu_menu_style_changed(VariableIte |
31 | 34 | variable_item_set_current_value_text(item, menu_style_names[index]); |
32 | 35 | momentum_settings.menu_style = index; |
33 | 36 | app->save_settings = true; |
| 37 | + |
| 38 | + // Quick and dirty work around to refresh the list to update the locked items, |
| 39 | + // and isn't noticeable at all. |
| 40 | + scene_manager_previous_scene(app->scene_manager); |
| 41 | + scene_manager_next_scene(app->scene_manager, MomentumAppSceneInterfaceMainmenu); |
| 42 | +} |
| 43 | + |
| 44 | +static void momentum_app_scene_interface_mainmenu_name_changed(VariableItem* item) { |
| 45 | + MomentumApp* app = variable_item_get_context(item); |
| 46 | + bool value = variable_item_get_current_value_index(item); |
| 47 | + variable_item_set_current_value_text(item, value ? "ON" : "OFF"); |
| 48 | + momentum_settings.menu_name = value; |
| 49 | + app->save_settings = true; |
| 50 | +} |
| 51 | + |
| 52 | +static void momentum_app_scene_interface_mainmenu_level_changed(VariableItem* item) { |
| 53 | + MomentumApp* app = variable_item_get_context(item); |
| 54 | + bool value = variable_item_get_current_value_index(item); |
| 55 | + variable_item_set_current_value_text(item, value ? "ON" : "OFF"); |
| 56 | + momentum_settings.menu_level = value; |
| 57 | + app->save_settings = true; |
| 58 | +} |
| 59 | + |
| 60 | +static void momentum_app_scene_interface_mainmenu_time_changed(VariableItem* item) { |
| 61 | + MomentumApp* app = variable_item_get_context(item); |
| 62 | + bool value = variable_item_get_current_value_index(item); |
| 63 | + variable_item_set_current_value_text(item, value ? "ON" : "OFF"); |
| 64 | + momentum_settings.menu_time = value; |
| 65 | + app->save_settings = true; |
| 66 | +} |
| 67 | + |
| 68 | +static void momentum_app_scene_interface_mainmenu_battery_changed(VariableItem* item) { |
| 69 | + MomentumApp* app = variable_item_get_context(item); |
| 70 | + bool value = variable_item_get_current_value_index(item); |
| 71 | + variable_item_set_current_value_text(item, value ? "ON" : "OFF"); |
| 72 | + momentum_settings.menu_battery = value; |
| 73 | + app->save_settings = true; |
| 74 | +} |
| 75 | + |
| 76 | +static void momentum_app_scene_interface_mainmenu_otg_changed(VariableItem* item) { |
| 77 | + MomentumApp* app = variable_item_get_context(item); |
| 78 | + bool value = variable_item_get_current_value_index(item); |
| 79 | + variable_item_set_current_value_text(item, value ? "ON" : "OFF"); |
| 80 | + momentum_settings.menu_otg = value; |
| 81 | + app->save_settings = true; |
34 | 82 | } |
35 | 83 |
|
36 | 84 | static void momentum_app_scene_interface_mainmenu_app_changed(VariableItem* item) { |
@@ -70,6 +118,7 @@ void momentum_app_scene_interface_mainmenu_on_enter(void* context) { |
70 | 118 | MomentumApp* app = context; |
71 | 119 | VariableItemList* var_item_list = app->var_item_list; |
72 | 120 | VariableItem* item; |
| 121 | + MenuStyle style = momentum_settings.menu_style; |
73 | 122 |
|
74 | 123 | item = variable_item_list_add( |
75 | 124 | var_item_list, |
@@ -108,6 +157,45 @@ void momentum_app_scene_interface_mainmenu_on_enter(void* context) { |
108 | 157 |
|
109 | 158 | variable_item_list_add(var_item_list, "Remove Item", 0, NULL, app); |
110 | 159 |
|
| 160 | + bool lock_all = style != MenuStylePs4 && style != MenuStyleVertical && style != MenuStyleMNTM; |
| 161 | + bool lock_vertical = style == MenuStyleVertical; |
| 162 | + bool lock_ps4_vertical = style == MenuStylePs4 || style == MenuStyleVertical; |
| 163 | + |
| 164 | + item = variable_item_list_add( |
| 165 | + var_item_list, "Show Name", 2, momentum_app_scene_interface_mainmenu_name_changed, app); |
| 166 | + variable_item_set_current_value_index(item, momentum_settings.menu_name); |
| 167 | + variable_item_set_current_value_text(item, momentum_settings.menu_name ? "ON" : "OFF"); |
| 168 | + variable_item_set_locked(item, lock_all || lock_vertical, lock_vertical ? CANT_MSG : ONLY_MSG); |
| 169 | + |
| 170 | + item = variable_item_list_add( |
| 171 | + var_item_list, "Show Level", 2, momentum_app_scene_interface_mainmenu_level_changed, app); |
| 172 | + variable_item_set_current_value_index(item, momentum_settings.menu_level); |
| 173 | + variable_item_set_current_value_text(item, momentum_settings.menu_level ? "ON" : "OFF"); |
| 174 | + variable_item_set_locked(item, lock_all || lock_vertical, lock_vertical ? CANT_MSG : ONLY_MSG); |
| 175 | + |
| 176 | + item = variable_item_list_add( |
| 177 | + var_item_list, "Show Time", 2, momentum_app_scene_interface_mainmenu_time_changed, app); |
| 178 | + variable_item_set_current_value_index(item, momentum_settings.menu_time); |
| 179 | + variable_item_set_current_value_text(item, momentum_settings.menu_time ? "ON" : "OFF"); |
| 180 | + variable_item_set_locked(item, lock_all, ONLY_MSG); |
| 181 | + |
| 182 | + item = variable_item_list_add( |
| 183 | + var_item_list, |
| 184 | + "Show Battery", |
| 185 | + 2, |
| 186 | + momentum_app_scene_interface_mainmenu_battery_changed, |
| 187 | + app); |
| 188 | + variable_item_set_current_value_index(item, momentum_settings.menu_battery); |
| 189 | + variable_item_set_current_value_text(item, momentum_settings.menu_battery ? "ON" : "OFF"); |
| 190 | + variable_item_set_locked(item, lock_all, ONLY_MSG); |
| 191 | + |
| 192 | + item = variable_item_list_add( |
| 193 | + var_item_list, "Show OTG (5v)", 2, momentum_app_scene_interface_mainmenu_otg_changed, app); |
| 194 | + variable_item_set_current_value_index(item, momentum_settings.menu_otg); |
| 195 | + variable_item_set_current_value_text(item, momentum_settings.menu_otg ? "ON" : "OFF"); |
| 196 | + variable_item_set_locked( |
| 197 | + item, lock_all || lock_ps4_vertical, lock_ps4_vertical ? CANT_MSG : ONLY_MSG); |
| 198 | + |
111 | 199 | variable_item_list_set_enter_callback( |
112 | 200 | var_item_list, momentum_app_scene_interface_mainmenu_var_item_list_callback, app); |
113 | 201 |
|
|
0 commit comments