75 lines
2.9 KiB
Go
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},
|
|
}
|
|
}
|