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