コード例 #1
0
void
EditorSectorsMenu::delete_sector()
{
  Level* level = Editor::current()->get_level();
  auto dialog = std::make_unique<Dialog>();

  // Do not delete sector when there would be no left.
  if (level->get_sector_count() < 2) {
    // do not allow to delete the sector
    dialog->set_text(_("Each level must have at least one sector."));
    dialog->clear_buttons();
    dialog->add_cancel_button(_("Cancel"));
  } else {
    // confirmation dialog
    dialog->set_text(_("Do you really want to delete this sector?"));
    dialog->clear_buttons();
    dialog->add_cancel_button(_("Cancel"));
    dialog->add_button(_("Delete sector"), [] {
        MenuManager::instance().clear_menu_stack();
        Editor::current()->delete_current_sector();
      });
  }
  MenuManager::instance().set_dialog(std::move(dialog));
}
コード例 #2
0
ファイル: addon_menu.cpp プロジェクト: maxteufel/supertux
void
AddonMenu::toggle_addon(const Addon& addon)
{
  if(addon.is_enabled())
  {
    m_addon_manager.disable_addon(addon.get_id());
  }
  else
  {
    m_addon_manager.enable_addon(addon.get_id());
  }
  if(addon.get_type() == Addon::LANGUAGEPACK)
  {
    auto dialog = std::make_unique<Dialog>();
    dialog->set_text(_("Please restart SuperTux\nfor these changes to take effect."));
    dialog->add_cancel_button(_("OK"));
    MenuManager::instance().set_dialog(std::move(dialog));
  }
}