@@ -1039,6 +1039,29 @@ void rg_gui_alert(const char *title, const char *message)
10391039 rg_gui_dialog (title , message ? options : options + 1 , -1 );
10401040}
10411041
1042+ void rg_gui_error (const char * message , const char * object , int _errno , bool exit_program )
1043+ {
1044+ const char * title = exit_program ? _ ("Fatal Error" ) : _ ("Error" );
1045+ const char * button = exit_program ? _ ("Exit" ) : _ ("OK" );
1046+ char error_msg [128 ] = "" ;
1047+
1048+ const rg_gui_option_t options [] = {
1049+ {0 , message , NULL , RG_DIALOG_FLAG_NORMAL , NULL },
1050+ {0 , _ ("Obj" ), (char * )object , object ? RG_DIALOG_FLAG_MESSAGE : RG_DIALOG_FLAG_HIDDEN , NULL },
1051+ {0 , _ ("Err" ), error_msg , _errno ? RG_DIALOG_FLAG_MESSAGE : RG_DIALOG_FLAG_HIDDEN , NULL },
1052+ {0 , "" , NULL , RG_DIALOG_FLAG_MESSAGE , NULL },
1053+ {1 , button , NULL , RG_DIALOG_FLAG_NORMAL , NULL },
1054+ RG_DIALOG_END ,
1055+ };
1056+
1057+ esp_err_to_name_r (_errno , error_msg , sizeof (error_msg ));
1058+
1059+ // FIXME: show blue backdrop color and hide bars?
1060+ rg_gui_dialog (title , options , -1 );
1061+ if (exit_program )
1062+ rg_system_exit ();
1063+ }
1064+
10421065typedef struct
10431066{
10441067 rg_gui_option_t * options ;
0 commit comments