54 lines
2.0 KiB
Go
54 lines
2.0 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"
|
|
|
|
"git.stormux.org/storm/cthulhu/internal/config"
|
|
)
|
|
|
|
func setOCRValues(value config.OCRSettings) {
|
|
id, content := C.CString("ocrLanguageEntry"), C.CString(value.Language)
|
|
C.prefs_entry_set(id, content)
|
|
C.free(unsafe.Pointer(id))
|
|
C.free(unsafe.Pointer(content))
|
|
setCombo("ocrLayoutCombo", map[int]int{3: 0, 6: 1, 11: 2}[value.Layout])
|
|
setSpin("ocrScaleSpinButton", float64(value.Scale))
|
|
setCheck("ocrGrayscaleCheckButton", value.Grayscale)
|
|
setCheck("ocrInvertCheckButton", value.Invert)
|
|
setCheck("ocrBlackWhiteCheckButton", value.BlackWhite)
|
|
setSpin("ocrBlackWhiteValueSpinButton", float64(value.Threshold))
|
|
setCheck("ocrAutoRefreshCheckButton", value.AutoRefresh)
|
|
setSpin("ocrRefreshIntervalSpinButton", float64(value.RefreshInterval))
|
|
setCheck("ocrConfirmClickCheckButton", value.ConfirmClick)
|
|
setCheck("ocrCopyToClipboardCheckButton", value.CopyFirstResult)
|
|
setCheck("ocrAutoReadAllCheckButton", value.AutoReadAll)
|
|
}
|
|
|
|
func getOCRValues() config.OCRSettings {
|
|
id := C.CString("ocrLanguageEntry")
|
|
language := C.GoString(C.prefs_entry_get(id))
|
|
C.free(unsafe.Pointer(id))
|
|
layout := 3
|
|
if index := getCombo("ocrLayoutCombo"); index >= 0 && index < 3 {
|
|
layout = []int{3, 6, 11}[index]
|
|
}
|
|
return config.OCRSettings{
|
|
Language: language, Layout: layout, Scale: int(getSpin("ocrScaleSpinButton")),
|
|
Grayscale: getCheck("ocrGrayscaleCheckButton"), Invert: getCheck("ocrInvertCheckButton"),
|
|
BlackWhite: getCheck("ocrBlackWhiteCheckButton"), Threshold: int(getSpin("ocrBlackWhiteValueSpinButton")),
|
|
AutoRefresh: getCheck("ocrAutoRefreshCheckButton"), RefreshInterval: int(getSpin("ocrRefreshIntervalSpinButton")),
|
|
ConfirmClick: getCheck("ocrConfirmClickCheckButton"), CopyFirstResult: getCheck("ocrCopyToClipboardCheckButton"),
|
|
AutoReadAll: getCheck("ocrAutoReadAllCheckButton"),
|
|
}
|
|
}
|