#pragma once #include "appstates/BaseState.hpp" #include "sdl.hpp" #include "ui/Menu.hpp" /// @brief Extras menu. class ExtrasMenuState final : public BaseState { public: /// @brief Constructor. ExtrasMenuState(); /// @brief Required even if nothing happens. ~ExtrasMenuState() {}; /// @brief Returns a new ExtrasMenuState static inline std::shared_ptr create() { return std::make_shared(); } /// @brief Updates the menu. void update() override; /// @brief Renders the menu to screen. void render() override; private: /// @brief Menu ui::Menu m_extrasMenu; /// @brief Render target for menu. sdl::SharedTexture m_renderTarget{}; /// @brief Creates and loads the menu strings. void initialize_menu(); /// @brief This function is called when Reinitialize data is selected. void reinitialize_data(); /// @brief Opens an SD to SD file browser. void sd_to_sd_browser(); /// @brief Opens the prodinfo-f to sd. void prodinfof_to_sd(); /// @brief Opens the safe partition to SD. void safe_to_sd(); /// @brief Opens the system partition to SD. void system_to_sd(); /// @brief Opens the user partition to SD. void user_to_sd(); /// @brief Terminates a process. void terminate_process(); };