ServiceMenu: es poden mostrar o ocultar les opcions
This commit is contained in:
@@ -67,16 +67,15 @@ void ServiceMenu::render()
|
||||
SDL_SetRenderDrawColor(Screen::get()->getRenderer(), title_color_.r, title_color_.g, title_color_.b, 255);
|
||||
SDL_RenderRect(Screen::get()->getRenderer(), &rect_);
|
||||
|
||||
// Si está animando el resize, no pintar el contenido
|
||||
// if (resizing_) return;
|
||||
|
||||
// TITULO
|
||||
y += title_padding_;
|
||||
title_text_->writeDX(TEXT_COLOR | TEXT_CENTER, param.game.game_area.center_x, y, title_, -4, title_color_);
|
||||
if (Options::pending_changes.has_pending_changes)
|
||||
element_text_->writeDX(TEXT_COLOR | TEXT_CENTER, param.game.game_area.center_x, y + 25, Lang::getText("[SERVICE_MENU] NEED_RESTART_MESSAGE"), -2, title_color_);
|
||||
|
||||
// LINEA
|
||||
y = rect_.y + upper_height_;
|
||||
SDL_SetRenderDrawColor(Screen::get()->getRenderer(), Options::pending_changes.has_pending_changes ? 0 : title_color_.r, title_color_.g, title_color_.b, 255);
|
||||
SDL_SetRenderDrawColor(Screen::get()->getRenderer(), title_color_.r, title_color_.g, title_color_.b, 255);
|
||||
SDL_RenderLine(Screen::get()->getRenderer(), rect_.x + OPTIONS_HORIZONTAL_PADDING_, y, rect_.x + rect_.w - OPTIONS_HORIZONTAL_PADDING_, y);
|
||||
|
||||
// OPCIONES
|
||||
@@ -396,8 +395,7 @@ void ServiceMenu::initializeOptions()
|
||||
// System
|
||||
options_.emplace_back(Lang::getText("[SERVICE_MENU] RESET"), SettingsGroup::SYSTEM, OptionBehavior::SELECT, nullptr, ValueType::NONE);
|
||||
options_.emplace_back(Lang::getText("[SERVICE_MENU] QUIT"), SettingsGroup::SYSTEM, OptionBehavior::SELECT, nullptr, ValueType::NONE);
|
||||
if (Options::settings.shutdown_enabled)
|
||||
options_.emplace_back(Lang::getText("[SERVICE_MENU] SHUTDOWN"), SettingsGroup::SYSTEM, OptionBehavior::SELECT, nullptr, ValueType::NONE);
|
||||
options_.emplace_back(Lang::getText("[SERVICE_MENU] SHUTDOWN"), SettingsGroup::SYSTEM, OptionBehavior::SELECT, nullptr, ValueType::NONE, !Options::settings.shutdown_enabled);
|
||||
|
||||
// Menu principal
|
||||
options_.emplace_back(Lang::getText("[SERVICE_MENU] VIDEO"), SettingsGroup::MAIN, OptionBehavior::SELECT, SettingsGroup::VIDEO);
|
||||
@@ -416,7 +414,7 @@ ServiceMenu::OptionPairs ServiceMenu::getOptionPairs(ServiceMenu::SettingsGroup
|
||||
|
||||
for (const auto &option : options_)
|
||||
{
|
||||
if (option.group == group)
|
||||
if (option.group == group && !option.hidden)
|
||||
{
|
||||
option_pairs.emplace_back(option.caption, option.getValueAsString());
|
||||
}
|
||||
@@ -431,7 +429,7 @@ std::vector<ServiceMenu::OptionEntry *> ServiceMenu::getOptionsByGroup(SettingsG
|
||||
std::vector<OptionEntry *> filtered_options;
|
||||
for (auto &option : options_)
|
||||
{
|
||||
if (option.group == group)
|
||||
if (option.group == group && !option.hidden)
|
||||
{
|
||||
filtered_options.push_back(&option);
|
||||
}
|
||||
@@ -451,7 +449,13 @@ void ServiceMenu::applySettings(ServiceMenu::SettingsGroup group)
|
||||
Audio::get()->applySettings();
|
||||
break;
|
||||
case SettingsGroup::SETTINGS:
|
||||
{
|
||||
auto option = getOptionEntryByCaption(Lang::getText("[SERVICE_MENU] SHUTDOWN"));
|
||||
if (option != nullptr) {
|
||||
option->hidden = !Options::settings.shutdown_enabled;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user