Files

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))
}