func NewKeyboard(l *log.Logger) *Keyboard { kbd := &Keyboard{} kbd.settings = gio.NewSettings("com.deepin.dde.keyboard") kbd.CurrentLayout = property.NewGSettingsStringProperty( kbd, "CurrentLayout", kbd.settings, kbdKeyLayout) kbd.RepeatEnabled = property.NewGSettingsBoolProperty( kbd, "RepeatEnabled", kbd.settings, kbdKeyRepeatEnable) kbd.RepeatInterval = property.NewGSettingsUintProperty( kbd, "RepeatInterval", kbd.settings, kbdKeyRepeatInterval) kbd.RepeatDelay = property.NewGSettingsUintProperty( kbd, "RepeatDelay", kbd.settings, kbdKeyRepeatDelay) kbd.CursorBlink = property.NewGSettingsIntProperty( kbd, "CursorBlink", kbd.settings, kbdKeyCursorBlink) kbd.CapslockToggle = property.NewGSettingsBoolProperty( kbd, "CapslockToggle", kbd.settings, kbdKeyCapslockToggle) kbd.UserLayoutList = property.NewGSettingsStrvProperty( kbd, "UserLayoutList", kbd.settings, kbdKeyUserLayoutList) kbd.UserOptionList = property.NewGSettingsStrvProperty( kbd, "UserOptionList", kbd.settings, kbdKeyLayoutOptions) kbd.logger = l var err error kbd.layoutDescMap, err = getLayoutListByFile(kbdKeyLayoutXml) if err != nil { //TODO: handle error kbd.errorInfo("Get Layout Desc List Failed: %v", err) return nil } kbd.greeter, err = greeterutils.NewGreeterUtils( "com.deepin.api.GreeterUtils", "/com/deepin/api/GreeterUtils") if err != nil { kbd.warningInfo("Create GreeterUtils Failed: %v", err) kbd.greeter = nil } kbd.xsettings, err = sessionmanager.NewXSettings( "com.deepin.SessionManager", "/com/deepin/XSettings", ) if err != nil { kbd.warningInfo("Create XSettings Failed: %v", err) kbd.xsettings = nil } kbd.handleGSettings() kbd.init() return kbd }
func NewManager() (*Manager, error) { var m = &Manager{} var err error m.td1, err = timedate1.NewTimedate1("org.freedesktop.timedate1", "/org/freedesktop/timedate1") if err != nil { return nil, err } m.setPropBool(&m.CanNTP, "CanNTP", m.td1.CanNTP.Get()) m.setPropBool(&m.NTP, "NTP", m.td1.NTP.Get()) m.setPropBool(&m.LocalRTC, "LocalRTC", m.td1.LocalRTC.Get()) m.setPropString(&m.Timezone, "Timezone", m.td1.Timezone.Get()) m.settings = gio.NewSettings(timedateSchema) m.Use24HourFormat = property.NewGSettingsBoolProperty( m, "Use24HourFormat", m.settings, settingsKey24Hour) m.DSTOffset = property.NewGSettingsIntProperty( m, "DSTOffset", m.settings, settingsKeyDSTOffset) m.UserTimezones = property.NewGSettingsStrvProperty( m, "UserTimezones", m.settings, settingsKeyTimezoneList) m.AddUserTimezone(m.Timezone) return m, nil }