-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcombo.go
53 lines (44 loc) · 871 Bytes
/
combo.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
package faithtop
import (
"github.com/andlabs/ui"
)
type FCombo struct {
FBaseView
ss []string
v *ui.Combobox
}
func Combo() *FCombo {
v := &FCombo{}
v.v = ui.NewCombobox()
v.view = v.v
return v
}
// ------------------------------------------
func (v *FCombo) Expand() *FCombo {
v.FBaseView.Expand()
return v
}
// ==========================================
func (f *FCombo) Append(s ...string) *FCombo {
for _, i := range s {
f.v.Append(i)
f.ss = append(f.ss, i)
}
return f
}
func (f *FCombo) OnSelected(fn func(int, string)) *FCombo {
f.v.OnSelected(func(*ui.Combobox) {
fn(f.v.Selected(), f.ss[f.v.Selected()])
})
return f
}
func (f *FCombo) Select(i int) *FCombo {
f.v.SetSelected(i)
return f
}
func (f *FCombo) GetSelected() int {
return f.v.Selected()
}
func (f *FCombo) GetSelectedString() string {
return f.ss[f.v.Selected()]
}