1package glib 2 3// #include <gio/gio.h> 4// #include <glib.h> 5// #include <glib-object.h> 6// #include "glib.go.h" 7import "C" 8import "unsafe" 9 10// Settings is a representation of GSettings. 11type Settings struct { 12 *Object 13} 14 15// native() returns a pointer to the underlying GSettings. 16func (v *Settings) native() *C.GSettings { 17 if v == nil || v.GObject == nil { 18 return nil 19 } 20 return C.toGSettings(unsafe.Pointer(v.GObject)) 21} 22 23func (v *Settings) Native() uintptr { 24 return uintptr(unsafe.Pointer(v.native())) 25} 26 27func marshalSettings(p uintptr) (interface{}, error) { 28 c := C.g_value_get_object((*C.GValue)(unsafe.Pointer(p))) 29 return wrapSettings(wrapObject(unsafe.Pointer(c))), nil 30} 31 32func wrapSettings(obj *Object) *Settings { 33 return &Settings{obj} 34} 35 36func wrapFullSettings(obj *C.GSettings) *Settings { 37 if obj == nil { 38 return nil 39 } 40 return wrapSettings(wrapObject(unsafe.Pointer(obj))) 41} 42 43// SettingsNew is a wrapper around g_settings_new(). 44func SettingsNew(schemaID string) *Settings { 45 cstr := (*C.gchar)(C.CString(schemaID)) 46 defer C.free(unsafe.Pointer(cstr)) 47 48 return wrapFullSettings(C.g_settings_new(cstr)) 49} 50 51// SettingsNewWithPath is a wrapper around g_settings_new_with_path(). 52func SettingsNewWithPath(schemaID, path string) *Settings { 53 cstr1 := (*C.gchar)(C.CString(schemaID)) 54 defer C.free(unsafe.Pointer(cstr1)) 55 56 cstr2 := (*C.gchar)(C.CString(path)) 57 defer C.free(unsafe.Pointer(cstr2)) 58 59 return wrapFullSettings(C.g_settings_new_with_path(cstr1, cstr2)) 60} 61 62// SettingsNewWithBackend is a wrapper around g_settings_new_with_backend(). 63func SettingsNewWithBackend(schemaID string, backend *SettingsBackend) *Settings { 64 cstr1 := (*C.gchar)(C.CString(schemaID)) 65 defer C.free(unsafe.Pointer(cstr1)) 66 67 return wrapFullSettings(C.g_settings_new_with_backend(cstr1, backend.native())) 68} 69 70// SettingsNewWithBackendAndPath is a wrapper around g_settings_new_with_backend_and_path(). 71func SettingsNewWithBackendAndPath(schemaID string, backend *SettingsBackend, path string) *Settings { 72 cstr1 := (*C.gchar)(C.CString(schemaID)) 73 defer C.free(unsafe.Pointer(cstr1)) 74 75 cstr2 := (*C.gchar)(C.CString(path)) 76 defer C.free(unsafe.Pointer(cstr2)) 77 78 return wrapFullSettings(C.g_settings_new_with_backend_and_path(cstr1, backend.native(), cstr2)) 79} 80 81// SettingsNewFull is a wrapper around g_settings_new_full(). 82func SettingsNewFull(schema *SettingsSchema, backend *SettingsBackend, path string) *Settings { 83 cstr1 := (*C.gchar)(C.CString(path)) 84 defer C.free(unsafe.Pointer(cstr1)) 85 86 return wrapFullSettings(C.g_settings_new_full(schema.native(), backend.native(), cstr1)) 87} 88 89// SettingsSync is a wrapper around g_settings_sync(). 90func SettingsSync() { 91 C.g_settings_sync() 92} 93 94// IsWritable is a wrapper around g_settings_is_writable(). 95func (v *Settings) IsWritable(name string) bool { 96 cstr1 := (*C.gchar)(C.CString(name)) 97 defer C.free(unsafe.Pointer(cstr1)) 98 99 return gobool(C.g_settings_is_writable(v.native(), cstr1)) 100} 101 102// Delay is a wrapper around g_settings_delay(). 103func (v *Settings) Delay() { 104 C.g_settings_delay(v.native()) 105} 106 107// Apply is a wrapper around g_settings_apply(). 108func (v *Settings) Apply() { 109 C.g_settings_apply(v.native()) 110} 111 112// Revert is a wrapper around g_settings_revert(). 113func (v *Settings) Revert() { 114 C.g_settings_revert(v.native()) 115} 116 117// GetHasUnapplied is a wrapper around g_settings_get_has_unapplied(). 118func (v *Settings) GetHasUnapplied() bool { 119 return gobool(C.g_settings_get_has_unapplied(v.native())) 120} 121 122// GetChild is a wrapper around g_settings_get_child(). 123func (v *Settings) GetChild(name string) *Settings { 124 cstr1 := (*C.gchar)(C.CString(name)) 125 defer C.free(unsafe.Pointer(cstr1)) 126 127 return wrapFullSettings(C.g_settings_get_child(v.native(), cstr1)) 128} 129 130// Reset is a wrapper around g_settings_reset(). 131func (v *Settings) Reset(name string) { 132 cstr1 := (*C.gchar)(C.CString(name)) 133 defer C.free(unsafe.Pointer(cstr1)) 134 135 C.g_settings_reset(v.native(), cstr1) 136} 137 138// ListChildren is a wrapper around g_settings_list_children(). 139func (v *Settings) ListChildren() []string { 140 return toGoStringArray(C.g_settings_list_children(v.native())) 141} 142 143// GetBoolean is a wrapper around g_settings_get_boolean(). 144func (v *Settings) GetBoolean(name string) bool { 145 cstr1 := (*C.gchar)(C.CString(name)) 146 defer C.free(unsafe.Pointer(cstr1)) 147 148 return gobool(C.g_settings_get_boolean(v.native(), cstr1)) 149} 150 151// SetBoolean is a wrapper around g_settings_set_boolean(). 152func (v *Settings) SetBoolean(name string, value bool) bool { 153 cstr1 := (*C.gchar)(C.CString(name)) 154 defer C.free(unsafe.Pointer(cstr1)) 155 156 return gobool(C.g_settings_set_boolean(v.native(), cstr1, gbool(value))) 157} 158 159// GetInt is a wrapper around g_settings_get_int(). 160func (v *Settings) GetInt(name string) int { 161 cstr1 := (*C.gchar)(C.CString(name)) 162 defer C.free(unsafe.Pointer(cstr1)) 163 164 return int(C.g_settings_get_int(v.native(), cstr1)) 165} 166 167// SetInt is a wrapper around g_settings_set_int(). 168func (v *Settings) SetInt(name string, value int) bool { 169 cstr1 := (*C.gchar)(C.CString(name)) 170 defer C.free(unsafe.Pointer(cstr1)) 171 172 return gobool(C.g_settings_set_int(v.native(), cstr1, C.gint(value))) 173} 174 175// GetUInt is a wrapper around g_settings_get_uint(). 176func (v *Settings) GetUInt(name string) uint { 177 cstr1 := (*C.gchar)(C.CString(name)) 178 defer C.free(unsafe.Pointer(cstr1)) 179 180 return uint(C.g_settings_get_uint(v.native(), cstr1)) 181} 182 183// SetUInt is a wrapper around g_settings_set_uint(). 184func (v *Settings) SetUInt(name string, value uint) bool { 185 cstr1 := (*C.gchar)(C.CString(name)) 186 defer C.free(unsafe.Pointer(cstr1)) 187 188 return gobool(C.g_settings_set_uint(v.native(), cstr1, C.guint(value))) 189} 190 191// GetDouble is a wrapper around g_settings_get_double(). 192func (v *Settings) GetDouble(name string) float64 { 193 cstr1 := (*C.gchar)(C.CString(name)) 194 defer C.free(unsafe.Pointer(cstr1)) 195 196 return float64(C.g_settings_get_double(v.native(), cstr1)) 197} 198 199// SetDouble is a wrapper around g_settings_set_double(). 200func (v *Settings) SetDouble(name string, value float64) bool { 201 cstr1 := (*C.gchar)(C.CString(name)) 202 defer C.free(unsafe.Pointer(cstr1)) 203 204 return gobool(C.g_settings_set_double(v.native(), cstr1, C.gdouble(value))) 205} 206 207// GetString is a wrapper around g_settings_get_string(). 208func (v *Settings) GetString(name string) string { 209 cstr1 := (*C.gchar)(C.CString(name)) 210 defer C.free(unsafe.Pointer(cstr1)) 211 212 return C.GoString((*C.char)(C.g_settings_get_string(v.native(), cstr1))) 213} 214 215// SetString is a wrapper around g_settings_set_string(). 216func (v *Settings) SetString(name string, value string) bool { 217 cstr1 := (*C.gchar)(C.CString(name)) 218 defer C.free(unsafe.Pointer(cstr1)) 219 220 cstr2 := (*C.gchar)(C.CString(value)) 221 defer C.free(unsafe.Pointer(cstr2)) 222 223 return gobool(C.g_settings_set_string(v.native(), cstr1, cstr2)) 224} 225 226// GetEnum is a wrapper around g_settings_get_enum(). 227func (v *Settings) GetEnum(name string) int { 228 cstr1 := (*C.gchar)(C.CString(name)) 229 defer C.free(unsafe.Pointer(cstr1)) 230 231 return int(C.g_settings_get_enum(v.native(), cstr1)) 232} 233 234// GetStrv is a wrapper around g_settings_get_strv(). 235func (v *Settings) GetStrv(name string) []string { 236 cstr1 := (*C.gchar)(C.CString(name)) 237 defer C.free(unsafe.Pointer(cstr1)) 238 return toGoStringArray(C.g_settings_get_strv(v.native(), cstr1)) 239} 240 241// SetStrv is a wrapper around g_settings_set_strv(). 242func (v *Settings) SetStrv(name string, values []string) bool { 243 cstr1 := (*C.gchar)(C.CString(name)) 244 defer C.free(unsafe.Pointer(cstr1)) 245 246 cvalues := make([]*C.gchar, len(values)) 247 for i, accel := range values { 248 cvalues[i] = (*C.gchar)(C.CString(accel)) 249 defer C.free(unsafe.Pointer(cvalues[i])) 250 } 251 cvalues = append(cvalues, nil) 252 253 return gobool(C.g_settings_set_strv(v.native(), cstr1, &cvalues[0])) 254} 255 256// SetEnum is a wrapper around g_settings_set_enum(). 257func (v *Settings) SetEnum(name string, value int) bool { 258 cstr1 := (*C.gchar)(C.CString(name)) 259 defer C.free(unsafe.Pointer(cstr1)) 260 261 return gobool(C.g_settings_set_enum(v.native(), cstr1, C.gint(value))) 262} 263 264// GetFlags is a wrapper around g_settings_get_flags(). 265func (v *Settings) GetFlags(name string) uint { 266 cstr1 := (*C.gchar)(C.CString(name)) 267 defer C.free(unsafe.Pointer(cstr1)) 268 269 return uint(C.g_settings_get_flags(v.native(), cstr1)) 270} 271 272// SetFlags is a wrapper around g_settings_set_flags(). 273func (v *Settings) SetFlags(name string, value uint) bool { 274 cstr1 := (*C.gchar)(C.CString(name)) 275 defer C.free(unsafe.Pointer(cstr1)) 276 277 return gobool(C.g_settings_set_flags(v.native(), cstr1, C.guint(value))) 278} 279 280func (v *Settings) GetValue(name string) *Variant { 281 cstr := (*C.gchar)(C.CString(name)) 282 defer C.free(unsafe.Pointer(cstr)) 283 return newVariant(C.g_settings_get_value(v.native(), cstr)) 284} 285 286// GVariant * g_settings_get_value () 287// gboolean g_settings_set_value () 288// GVariant * g_settings_get_user_value () 289// GVariant * g_settings_get_default_value () 290// const gchar * const * g_settings_list_schemas () 291// const gchar * const * g_settings_list_relocatable_schemas () 292// gchar ** g_settings_list_keys () 293// GVariant * g_settings_get_range () 294// gboolean g_settings_range_check () 295// void g_settings_get () 296// gboolean g_settings_set () 297// gpointer g_settings_get_mapped () 298// void g_settings_bind () 299// void g_settings_bind_with_mapping () 300// void g_settings_bind_writable () 301// void g_settings_unbind () 302// gaction * g_settings_create_action () 303// gchar ** g_settings_get_strv () 304// gboolean g_settings_set_strv () 305