// lost focus, setting back default text and color if needed. func onTextDefaultFocusOut(widget *gtk.Entry, _ *gdk.Event, data textDefaultData) { text, _ := widget.GetText() data.key.IsDefault = text == "" if data.key.IsDefault { widget.HandlerBlock(data.cbID) widget.SetText(data.text) widget.HandlerUnblock(data.cbID) context, _ := widget.GetStyleContext() context.AddClass("DefaultValue") } }
// got focus, removing default text if any. func onTextDefaultFocusIn(widget *gtk.Entry, _ *gdk.Event, data textDefaultData) { if data.key.IsDefault { widget.HandlerBlock(data.cbID) widget.SetText("") widget.HandlerUnblock(data.cbID) } }
func getText(entry *gtk.Entry) string { text, _ := entry.GetText() return text }
// text changed by the user. Restore color and the ability to save the value. func onTextDefaultChanged(entry *gtk.Entry, key *cftype.Key) { key.IsDefault = false context, _ := entry.GetStyleContext() context.RemoveClass("DefaultValue") }