feat(service-menu): pobla SISTEMA amb reinici, eixir i confirmacions
This commit is contained in:
@@ -13,8 +13,12 @@
|
||||
#include <memory>
|
||||
|
||||
#include "core/system/director.hpp"
|
||||
#include "core/system/relaunch.hpp"
|
||||
|
||||
auto SDL_AppInit(void** appstate, int argc, char* argv[]) -> SDL_AppResult {
|
||||
// Desem argv perquè el menu de servei pugui demanar un reinici en calent
|
||||
// (execv) sense haver de conèixer Director.
|
||||
System::Relaunch::setArgv(argc, argv);
|
||||
auto director = std::make_unique<Director>(argc, argv);
|
||||
*appstate = director.release();
|
||||
return SDL_APP_CONTINUE;
|
||||
@@ -33,4 +37,8 @@ auto SDL_AppIterate(void* appstate) -> SDL_AppResult {
|
||||
void SDL_AppQuit(void* appstate, SDL_AppResult /*result*/) {
|
||||
// Reabsorbim la propietat: el destructor del Director allibera tot.
|
||||
std::unique_ptr<Director> director(static_cast<Director*>(appstate));
|
||||
director.reset();
|
||||
// Si el menu va demanar reinici, fem execv ara que tot esta net. En cas
|
||||
// d'exit no torna; si falla, l'aplicacio surt amb codi d'error.
|
||||
System::Relaunch::execIfRequested();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user