forked from tslocum/cview
51 lines
1.3 KiB
Go
51 lines
1.3 KiB
Go
// Demo code for unicode support (demonstrates wide Chinese characters).
|
||
package main
|
||
|
||
import (
|
||
"fmt"
|
||
|
||
"code.rocketnine.space/tslocum/cview"
|
||
)
|
||
|
||
func main() {
|
||
app := cview.NewApplication()
|
||
panels := cview.NewPanels()
|
||
|
||
form := cview.NewForm()
|
||
form.AddDropDownSimple("称谓", 0, nil, "先生", "女士", "博士", "老师", "师傅")
|
||
form.AddInputField("姓名", "", 20, nil, nil)
|
||
form.AddPasswordField("密码", "", 10, '*', nil)
|
||
form.AddCheckBox("", "年龄 18+", false, nil)
|
||
form.AddButton("保存", func() {
|
||
_, option := form.GetFormItem(0).(*cview.DropDown).GetCurrentOption()
|
||
userName := form.GetFormItem(1).(*cview.InputField).GetText()
|
||
|
||
alert(panels, "alert-dialog", fmt.Sprintf("保存成功,%s %s!", userName, option.GetText()))
|
||
})
|
||
form.AddButton("退出", func() {
|
||
app.Stop()
|
||
})
|
||
form.SetBorder(true)
|
||
form.SetTitle("输入一些内容")
|
||
form.SetTitleAlign(cview.AlignLeft)
|
||
panels.AddPanel("base", form, true, true)
|
||
|
||
app.SetRoot(panels, true)
|
||
if err := app.Run(); err != nil {
|
||
panic(err)
|
||
}
|
||
}
|
||
|
||
// alert shows a confirmation dialog.
|
||
func alert(panels *cview.Panels, id string, message string) {
|
||
modal := cview.NewModal()
|
||
modal.SetText(message)
|
||
modal.AddButtons([]string{"确定"})
|
||
modal.SetDoneFunc(func(buttonIndex int, buttonLabel string) {
|
||
panels.HidePanel(id)
|
||
panels.RemovePanel(id)
|
||
})
|
||
|
||
panels.AddPanel(id, modal, false, true)
|
||
}
|