add blueprints
This commit is contained in:
103
docs/blueprints/06-ui/57_WBP_SettingsMenu.md
Normal file
103
docs/blueprints/06-ui/57_WBP_SettingsMenu.md
Normal file
@@ -0,0 +1,103 @@
|
||||
# WBP_SettingsMenu — Widget (Settings Menu)
|
||||
|
||||
**Parent:** `UUserWidget`
|
||||
**Used by:** `SS_UIManager.PushMenu("SettingsMenu")`
|
||||
**Depends On:** `SS_UIManager`, `SS_SettingsSystem`
|
||||
|
||||
---
|
||||
|
||||
### Purpose
|
||||
Full settings screen with sections: Audio, Video/Graphics, Gameplay, Controls, Accessibility.
|
||||
|
||||
### Enums (local or global)
|
||||
|
||||
```cpp
|
||||
E_SettingsTab
|
||||
{
|
||||
Audio,
|
||||
Video,
|
||||
Gameplay,
|
||||
Controls,
|
||||
Accessibility
|
||||
}
|
||||
```
|
||||
|
||||
### Variables
|
||||
|
||||
| Name | Type | Description |
|
||||
|------|------|-------------|
|
||||
| `ActiveTab` | `E_SettingsTab` | Currently visible tab |
|
||||
| `TabButtons` | Array of `Button` | Tab navigation buttons |
|
||||
| `TabPanels` | Array of `PanelWidget` | Tab content panels |
|
||||
|
||||
**Audio Tab Children:**
|
||||
|
||||
| Name | Type | Description |
|
||||
|------|------|-------------|
|
||||
| `MasterVolumeSlider` | `Slider` | 0-100 |
|
||||
| `SFXVolumeSlider` | `Slider` | 0-100 |
|
||||
| `MusicVolumeSlider` | `Slider` | 0-100 |
|
||||
| `VoiceVolumeSlider` | `Slider` | 0-100 |
|
||||
| `SubtitlesToggle` | `CheckBox` | On/Off |
|
||||
|
||||
**Video Tab Children:**
|
||||
|
||||
| Name | Type | Description |
|
||||
|------|------|-------------|
|
||||
| `ResolutionDropdown` | `ComboBoxString` | Available resolutions |
|
||||
| `WindowModeDropdown` | `ComboBoxString` | Fullscreen, Windowed, Borderless |
|
||||
| `VSyncToggle` | `CheckBox` | On/Off |
|
||||
| `QualityPresetDropdown` | `ComboBoxString` | Low, Medium, High, Epic |
|
||||
| `BrightnessSlider` | `Slider` | 0.5-2.0 gamma |
|
||||
|
||||
**Gameplay Tab Children:**
|
||||
|
||||
| Name | Type | Description |
|
||||
|------|------|-------------|
|
||||
| `InvertYAxisToggle` | `CheckBox` | On/Off |
|
||||
| `SensitivitySlider` | `Slider` | Mouse sensitivity 0.1-5.0 |
|
||||
| `HoldDurationToggle` | `CheckBox` | Tap vs Hold for interactions |
|
||||
| `AutoPickupToggle` | `CheckBox` | On/Off |
|
||||
| `CrosshairToggle` | `CheckBox` | Show crosshair |
|
||||
|
||||
**Controls Tab Children:**
|
||||
|
||||
| Name | Type | Description |
|
||||
|------|------|-------------|
|
||||
| `ActionMappingsList` | `ListView` | Key binding rows |
|
||||
| `ResetDefaultsButton` | `Button` | Reset all bindings |
|
||||
|
||||
**Accessibility Tab Children:**
|
||||
|
||||
| Name | Type | Description |
|
||||
|------|------|-------------|
|
||||
| `SubtitleSizeDropdown` | `ComboBoxString` | Small, Medium, Large |
|
||||
| `SubtitleBackgroundOpacity` | `Slider` | 0-100% |
|
||||
| `ColorblindModeDropdown` | `ComboBoxString` | None, Protanopia, Deuteranopia, Tritanopia |
|
||||
| `HighContrastUIToggle` | `CheckBox` | On/Off |
|
||||
| `CameraShakeIntensity` | `Slider` | 0-100% |
|
||||
| `MotionBlurToggle` | `CheckBox` | On/Off |
|
||||
|
||||
### Functions
|
||||
|
||||
| Name | Inputs | Outputs | Description |
|
||||
|------|--------|---------|-------------|
|
||||
| `OnConstruct` | — | — | Populate dropdowns from system, load saved settings |
|
||||
| `SwitchTab` | Tab: `E_SettingsTab` | — | Show selected panel, hide others |
|
||||
| `OnSettingChanged` | SettingName: FName, Value: Generic | — | Write to SS_SettingsSystem |
|
||||
| `SaveSettings` | — | — | SS_SettingsSystem.SaveToDisk |
|
||||
| `ApplyVideoSettings` | — | — | Apply resolution, window mode, quality |
|
||||
| `ResetToDefaults` | — | — | Load default values, re-populate UI |
|
||||
| `OnBack` | — | — | SaveSettings, SS_UIManager.PopMenu |
|
||||
| `RebindKey` | ActionName: FName | — | Listen for next key press, map to action |
|
||||
|
||||
### Communications With
|
||||
|
||||
| Target System | Method | Why |
|
||||
|--------------|--------|-----|
|
||||
| [`SS_UIManager`](44_SS_UIManager.md) | Push/Pop | Menu lifecycle |
|
||||
| `SS_SettingsSystem` | Function calls | Read/write settings |
|
||||
|
||||
### Reuse Notes
|
||||
- The tab panel pattern can be extended for mod settings or developer menus by adding new tab entries
|
||||
- Split from original bundled `36_WBP_MenuWidgets.md` per Clean Slate refactoring plan
|
||||
Reference in New Issue
Block a user