dcs-retribution/game/settings/booleanoption.py
Dan Albert 7bec4c62f7 Generate settings pages automatically.
This adds metadata to settings fields that can be used to automatically
generate the settings window. For now I have replaced the Difficulty
page. Will follow up to replace the others.
2021-10-21 18:30:56 -07:00

23 lines
488 B
Python

from dataclasses import dataclass, field
from typing import Any, Optional
from .optiondescription import OptionDescription, SETTING_DESCRIPTION_KEY
@dataclass(frozen=True)
class BooleanOption(OptionDescription):
pass
def boolean_option(
text: str,
page: str,
section: str,
detail: Optional[str] = None,
**kwargs: Any,
) -> bool:
return field(
metadata={SETTING_DESCRIPTION_KEY: BooleanOption(page, section, text, detail)},
**kwargs,
)