// Copyright (c) 2026 Storm Dragon // Authors: Storm Dragon, Angus Kola // SPDX-License-Identifier: GPL-3.0-or-later package preferences /* #include #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}, {"phonetic_character_hints", &values.Reading.PhoneticCharacterHints}, {"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}, } }