clui/demos/buttons/buttons.go
2019-06-10 20:43:29 -07:00

70 lines
2.0 KiB
Go

package main
import (
ui "github.com/VladimirMarkelov/clui"
)
func createView() {
view := ui.AddWindow(0, 0, 10, 7, "Button` Demo")
view.SetTitleButtons(ui.ButtonMaximize | ui.ButtonClose)
frmViews := ui.CreateFrame(view, 8, 5, ui.BorderNone, ui.Fixed)
frmViews.SetPack(ui.Horizontal)
frmFull := ui.CreateFrame(frmViews, 8, 5, ui.BorderThin, ui.Fixed)
frmFull.SetPack(ui.Vertical)
frmFull.SetTitle("Full")
frmHalf := ui.CreateFrame(frmViews, 8, 5, ui.BorderThin, ui.Fixed)
frmHalf.SetPack(ui.Vertical)
frmHalf.SetTitle("Half")
frmNone := ui.CreateFrame(frmViews, 8, 5, ui.BorderThin, ui.Fixed)
frmNone.SetPack(ui.Vertical)
frmNone.SetTitle("None")
btnF1 := ui.CreateButton(frmFull, ui.AutoSize, 4, "First", ui.Fixed)
btnF2 := ui.CreateButton(frmFull, ui.AutoSize, 4, "Second", ui.Fixed)
btnF3 := ui.CreateButton(frmFull, ui.AutoSize, 4, "Quit", ui.Fixed)
btnF1.SetShadowType(ui.ShadowFull)
btnF2.SetShadowType(ui.ShadowFull)
btnF3.SetShadowType(ui.ShadowFull)
btnH1 := ui.CreateButton(frmHalf, ui.AutoSize, 4, "First", ui.Fixed)
btnH2 := ui.CreateButton(frmHalf, ui.AutoSize, 4, "Second", ui.Fixed)
btnH3 := ui.CreateButton(frmHalf, ui.AutoSize, 4, "Quit", ui.Fixed)
btnH1.SetShadowType(ui.ShadowHalf)
btnH2.SetShadowType(ui.ShadowHalf)
btnH3.SetShadowType(ui.ShadowHalf)
btnN1 := ui.CreateButton(frmNone, ui.AutoSize, 4, "First", ui.Fixed)
btnN2 := ui.CreateButton(frmNone, ui.AutoSize, 4, "Second", ui.Fixed)
btnN3 := ui.CreateButton(frmNone, ui.AutoSize, 4, "Quit", ui.Fixed)
btnN1.SetShadowType(ui.ShadowNone)
btnN2.SetShadowType(ui.ShadowNone)
btnN3.SetShadowType(ui.ShadowNone)
btnF3.OnClick(func(ev ui.Event) {
go ui.Stop()
})
btnH3.OnClick(func(ev ui.Event) {
go ui.Stop()
})
btnN3.OnClick(func(ev ui.Event) {
go ui.Stop()
})
ui.ActivateControl(view, btnF1)
}
func mainLoop() {
// Every application must create a single Composer and
// call its intialize method
ui.InitLibrary()
defer ui.DeinitLibrary()
createView()
// start event processing loop - the main core of the library
ui.MainLoop()
}
func main() {
mainLoop()
}