github.com/benoitkugler/goacve@v0.0.0-20201217100549-151ce6e55dc8/client/GUI/onglets/notifications/list.go (about) 1 package notifications 2 3 import ( 4 "github.com/benoitkugler/goACVE/client/GUI/basic" 5 "github.com/therecipe/qt/widgets" 6 ) 7 8 type List struct { 9 *widgets.QListWidget 10 } 11 12 func NewList() List { 13 list := widgets.NewQListWidget(nil) 14 list.SetStyleSheet("QListWidget { background: transparent; }") 15 list.SetSpacing(3) 16 list.SetSelectionMode(widgets.QAbstractItemView__NoSelection) 17 list.SetUniformItemSizes(true) 18 list.SetLayoutMode(widgets.QListView__Batched) 19 return List{QListWidget: list} 20 } 21 22 // AddNotification ajoute une ligne. Si `onClick` est non nil 23 // il est invoqué sur un clic sur un lien hypertext. 24 func (l List) AddNotification(text string, onClick func()) { 25 item := widgets.NewQListWidgetItem(l, 0) 26 if onClick != nil { 27 text = "<a href>" + text + "</a>" 28 } 29 label := basic.Label(text) 30 label.ConnectLinkActivated(func(_ string) { onClick() }) 31 item.SetSizeHint(label.MinimumSizeHint()) 32 l.SetItemWidget(item, label) 33 }