Files
Momentum-Firmware/applications/plugins/namechanger/scenes/namechanger_scene_revert.c
VerstreuteSeele e1cba0867c RC2
2023-01-06 14:52:51 +01:00

54 lines
2.0 KiB
C

#include "../namechanger.h"
static void
namechanger_scene_revert_widget_callback(GuiButtonType result, InputType type, void* context) {
NameChanger* namechanger = context;
if(type == InputTypeShort) {
view_dispatcher_send_custom_event(namechanger->view_dispatcher, result);
}
}
void namechanger_scene_revert_on_enter(void* context) {
NameChanger* namechanger = context;
Widget* widget = namechanger->widget;
widget_add_text_box_element(
widget, 0, 0, 128, 25, AlignCenter, AlignCenter, "\e#Revert Name?\e#", false);
widget_add_button_element(
widget, GuiButtonTypeLeft, "Cancel", namechanger_scene_revert_widget_callback, namechanger);
widget_add_button_element(
widget,
GuiButtonTypeRight,
"Revert",
namechanger_scene_revert_widget_callback,
namechanger);
view_dispatcher_switch_to_view(namechanger->view_dispatcher, NameChangerViewWidget);
}
bool namechanger_scene_revert_on_event(void* context, SceneManagerEvent event) {
NameChanger* namechanger = context;
bool consumed = false;
if(event.type == SceneManagerEventTypeBack) {
consumed = true;
} else if(event.type == SceneManagerEventTypeCustom) {
consumed = true;
if(event.event == GuiButtonTypeRight) {
if(namechanger_name_write(namechanger, "eraseerase")) {
scene_manager_next_scene(
namechanger->scene_manager, NameChangerSceneRevertSuccess);
} else {
scene_manager_search_and_switch_to_previous_scene(
namechanger->scene_manager, NameChangerSceneStart);
}
} else if(event.event == GuiButtonTypeLeft) {
scene_manager_search_and_switch_to_previous_scene(
namechanger->scene_manager, NameChangerSceneStart);
}
}
return consumed;
}
void namechanger_scene_revert_on_exit(void* context) {
NameChanger* namechanger = context;
widget_reset(namechanger->widget);
}