101 lines
2.1 KiB
Go
101 lines
2.1 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 boolean(value bool) C.int {
|
|
if value {
|
|
return 1
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func status(message string, focus bool) {
|
|
text := C.CString(message)
|
|
defer C.free(unsafe.Pointer(text))
|
|
C.prefs_status(text, boolean(focus))
|
|
}
|
|
|
|
func setChoice(name string, value int) {
|
|
id := C.CString(name)
|
|
defer C.free(unsafe.Pointer(id))
|
|
C.prefs_choice_set(id, C.int(value))
|
|
}
|
|
|
|
func getChoice(name string) int {
|
|
id := C.CString(name)
|
|
defer C.free(unsafe.Pointer(id))
|
|
return int(C.prefs_choice_get(id))
|
|
}
|
|
|
|
func setCombo(name string, value int) {
|
|
id := C.CString(name)
|
|
defer C.free(unsafe.Pointer(id))
|
|
C.prefs_combo_set(id, C.int(value))
|
|
}
|
|
|
|
func getCombo(name string) int {
|
|
id := C.CString(name)
|
|
defer C.free(unsafe.Pointer(id))
|
|
return int(C.prefs_combo_get(id))
|
|
}
|
|
|
|
func setCheck(name string, value bool) {
|
|
id := C.CString(name)
|
|
defer C.free(unsafe.Pointer(id))
|
|
C.prefs_check_set(id, boolean(value))
|
|
}
|
|
|
|
func getCheck(name string) bool {
|
|
id := C.CString(name)
|
|
defer C.free(unsafe.Pointer(id))
|
|
return C.prefs_check_get(id) != 0
|
|
}
|
|
|
|
func setRange(name string, value float64) {
|
|
id := C.CString(name)
|
|
defer C.free(unsafe.Pointer(id))
|
|
C.prefs_range_set(id, C.double(value))
|
|
}
|
|
|
|
func getRange(name string) float64 {
|
|
id := C.CString(name)
|
|
defer C.free(unsafe.Pointer(id))
|
|
return float64(C.prefs_number_value(id))
|
|
}
|
|
|
|
func setSpin(name string, value float64) {
|
|
id := C.CString(name)
|
|
defer C.free(unsafe.Pointer(id))
|
|
C.prefs_spin_set(id, C.double(value))
|
|
}
|
|
|
|
func getSpin(name string) float64 {
|
|
id := C.CString(name)
|
|
defer C.free(unsafe.Pointer(id))
|
|
return float64(C.prefs_spin_get(id))
|
|
}
|
|
|
|
func comboItems(name string, labels []string, selected int) {
|
|
id := C.CString(name)
|
|
defer C.free(unsafe.Pointer(id))
|
|
C.prefs_combo_clear(id)
|
|
for _, label := range labels {
|
|
text := C.CString(label)
|
|
C.prefs_combo_append(id, text)
|
|
C.free(unsafe.Pointer(text))
|
|
}
|
|
C.prefs_combo_set(id, C.int(selected))
|
|
}
|