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  }