Files

75 lines
2.9 KiB
Go

// Copyright (c) 2026 Storm Dragon
// Authors: Storm Dragon, Angus Kola
// SPDX-License-Identifier: GPL-3.0-or-later
package preferences
/*
#include <stdlib.h>
#include "native.h"
*/
import "C"
import (
"unsafe"
)
func setReading(values Values) {
for _, item := range readingChecks(&values) {
id := C.CString(item.id)
C.prefs_reading_set(id, boolean(*item.value))
C.free(unsafe.Pointer(id))
}
}
func getReading(values *Values) {
for _, item := range readingChecks(values) {
id := C.CString(item.id)
*item.value = C.prefs_reading_get(id) != 0
C.free(unsafe.Pointer(id))
}
}
func readingChecks(values *Values) []struct {
id string
value *bool
} {
return []struct {
id string
value *bool
}{
{"only_speak_displayed_text", &values.Reading.OnlySpeakDisplayedText},
{"automatically_read_title_changes", &values.Reading.AutomaticallyReadTitleChanges},
{"automatically_read_clipboard_changes", &values.Reading.AutomaticallyReadClipboardChanges},
{"enable_pause_breaks", &values.Reading.EnablePauseBreaks},
{"speak_numbers_as_digits", &values.Reading.SpeakNumbersAsDigits},
{"speak_multicase_strings_as_words", &values.Reading.SpeakMultiCaseStringsAsWords},
{"enable_indentation", &values.Reading.EnableIndentation},
{"speak_blank_lines", &values.Reading.SpeakBlankLines},
{"enable_mnemonic_speaking", &values.Reading.EnableMnemonicSpeaking},
{"enable_position_speaking", &values.Reading.EnablePositionSpeaking},
{"enable_tutorial_messages", &values.Reading.EnableTutorialMessages},
{"messages_are_detailed", &values.Reading.MessagesAreDetailed},
{"use_color_names", &values.Reading.UseColorNames},
{"present_tooltips", &values.Reading.PresentTooltips},
{"enable_mouse_review", &values.Reading.EnableMouseReview},
{"speak_misspelled_indicator", &values.Reading.SpeakMisspelledIndicator},
{"speak_context_blockquote", &values.Reading.SpeakContextBlockquote},
{"speak_context_list", &values.Reading.SpeakContextList},
{"speak_context_table", &values.Reading.SpeakContextTable},
{"speak_context_panel", &values.Reading.SpeakContextPanel},
{"speak_context_landmark", &values.Reading.SpeakContextLandmark},
{"speak_context_non_landmark_form", &values.Reading.SpeakContextNonLandmarkForm},
{"say_all_context_blockquote", &values.Reading.SayAllContextBlockquote},
{"say_all_context_list", &values.Reading.SayAllContextList},
{"say_all_context_table", &values.Reading.SayAllContextTable},
{"say_all_context_panel", &values.Reading.SayAllContextPanel},
{"say_all_context_landmark", &values.Reading.SayAllContextLandmark},
{"say_all_context_non_landmark_form", &values.Reading.SayAllContextNonLandmarkForm},
{"read_full_row_in_gui_table", &values.Reading.ReadFullRowInGUITable},
{"read_full_row_in_document_table", &values.Reading.ReadFullRowInDocumentTable},
{"read_full_row_in_spreadsheet", &values.Reading.ReadFullRowInSpreadSheet},
{"speak_description", &values.SpeakDescription},
}
}