Files
hjozwiak 75f34ea767 Add global Wine preferences tab
Phase 3 of the Wine/Proton stage (decisions 6, 9, 13, 19 in docs/testing/wine-proton.md): a global-only Wine tab modeled on the Pronunciation page, with the controller-only checkbox and a typed editable program list. Wine values flow through the preferences protocol so a global Apply reaches the live Wine settings from Phase 2 with no reader restart. Entries are validated as edited and named in-tab, blocking Apply until fixed; case-insensitive duplicates collapse. Per-application preferences expose no Wine editing and an app-scoped Apply cannot change the governing list.
2026-11-02 02:49:33 -05:00

42 lines
1.3 KiB
Go

// Copyright (c) 2026 Storm Dragon
// Authors: Storm Dragon, Angus Kola
// SPDX-License-Identifier: GPL-3.0-or-later
package preferences
import (
"git.stormux.org/storm/cthulhu/internal/braille"
"git.stormux.org/storm/cthulhu/internal/config"
"git.stormux.org/storm/cthulhu/internal/input"
"git.stormux.org/storm/cthulhu/internal/speech"
)
// uiSession lives for one helper window. Only the locked GTK thread in Run
// accesses these fields; pipe readers deliver immutable responses by channel.
type uiSession struct {
extensionPages []ExtensionPage
progressBar config.ProgressBarSettings
wine config.WineSettings
wineEditable bool
catalog speech.Catalog
speechDefaults speech.Settings
contractionTables []braille.TableOption
soundThemes []string
echoModules []string
echoFamilies []*config.VoiceFamily
activeEchoModule string
speechModules []string
speechLanguages []string
speechFamilies []*config.VoiceFamily
activeSpeechSystem int
softwareModule string
hardwareModule string
activeSpeechModule string
activeSpeechLanguage string
voiceDrafts [4]config.Voice
activeVoiceType int
bindingDraft []input.BindingOverride
bindingRows []input.BindingRow
bindingLayout int
}