github.com/benoitkugler/goacve@v0.0.0-20201217100549-151ce6e55dc8/client/GUI/messages/edit.go (about) 1 package messages 2 3 import ( 4 "fmt" 5 6 "github.com/benoitkugler/goACVE/client/GUI/basic" 7 "github.com/benoitkugler/goACVE/client/GUI/fields" 8 rd "github.com/benoitkugler/goACVE/server/core/rawdata" 9 ) 10 11 func EditMessage(contenu string, isNew bool, quantity int) (rd.String, bool) { 12 titre, btn := "Modifier le contenu", "Modifer" 13 if quantity > 1 { 14 btn += fmt.Sprintf(" %d messages", quantity) 15 } 16 if isNew { 17 titre, btn = "Rédiger un message", "Envoyer" 18 if quantity > 1 { 19 btn += fmt.Sprintf(" à %d responsables", quantity) 20 } 21 } 22 d := basic.Dialog(titre) 23 input := fields.NewMultiLineString(true, "Tapez votre message...") 24 valid := basic.Button(btn) 25 26 valid.SetObjectName(basic.ONAction) 27 valid.ConnectClicked(func(_ bool) { 28 d.Accept() 29 }) 30 31 input.SetPlainText(contenu) 32 input.SelectAll() 33 input.ConnectTextChanged(func() { 34 valid.SetEnabled(input.GetData() != "") 35 }) 36 37 d.Layout().AddWidget(input) 38 d.Layout().AddWidget(valid) 39 if d.Exec() == 0 { 40 return "", false 41 } 42 return input.GetData(), true 43 }