-
Notifications
You must be signed in to change notification settings - Fork 0
/
delete_modal.go
60 lines (47 loc) · 1.14 KB
/
delete_modal.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package component
import (
"github.com/gdamore/tcell/v2"
"github.com/kopecmaciej/mongui/config"
"github.com/kopecmaciej/tview"
)
const (
DeleteModalComponent = "DeleteModal"
)
type DeleteModal struct {
*Component
*tview.Modal
style *config.OthersStyle
}
func NewDeleteModal() *DeleteModal {
dm := &DeleteModal{
Component: NewComponent(DeleteModalComponent),
Modal: tview.NewModal(),
}
dm.SetAfterInitFunc(dm.init)
return dm
}
func (d *DeleteModal) init() error {
d.setStyle()
d.setKeybindings()
d.AddButtons([]string{"[red]Delete", "Cancel"})
return nil
}
func (d *DeleteModal) setStyle() {
d.style = &d.app.Styles.Others
d.SetBorder(true)
d.SetTitle(" Delete ")
d.SetBorderPadding(0, 0, 1, 1)
d.SetButtonTextColor(d.style.ButtonsTextColor.Color())
d.SetButtonBackgroundColor(d.style.ButtonsBackgroundColor.Color())
}
func (d *DeleteModal) setKeybindings() {
d.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
switch event.Rune() {
case 'h':
return tcell.NewEventKey(tcell.KeyBacktab, 0, tcell.ModNone)
case 'l':
return tcell.NewEventKey(tcell.KeyTab, 0, tcell.ModNone)
}
return event
})
}