mirror of
https://github.com/dcs-liberation/dcs_liberation.git
synced 2025-11-10 14:22:26 +00:00
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.
23 lines
488 B
Python
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,
|
|
)
|