// Main entry and GUI construction func main() { LANG = queryRegLayoutId(LANG_ID) var ( mw *walk.MainWindow currentLayout = getKeyboardLayout() // Get current system layout. layoutPresent = checkLanguage() // Check if installed language is present and can be loaded. triggered = true infoText string ldtMain *walk.LineEdit btnMain *walk.PushButton ) if layoutPresent { infoText = INFO_TEXT } else { infoText = "The layout does not seem to be present on your system. Please install it first." } MainWindow{ AssignTo: &mw, Title: "kasahorow " + LANG_STRING + " Writer", MaxSize: Size{600, 200}, MinSize: Size{600, 200}, Layout: VBox{}, Children: []Widget{ MultilineLabel{Text: infoText}, LineEdit{AssignTo: &ldtMain}, PushButton{ AssignTo: &btnMain, Enabled: layoutPresent, Text: "Switch back to default layout.", OnClicked: func() { if triggered { triggered = false activateKeyboardLayout(currentLayout, KFL_SETFORPROCESS) btnMain.SetText("Switch to " + LANG_STRING + ".") } else { triggered = true loadLanguage() btnMain.SetText("Switch back to default layout.") } }, }, }, }.Create() if layoutPresent { mw.Synchronize(loadLanguage) // Load new layout in main GUI thread. } ic, _ := walk.NewIconFromResource("kasahorow") mw.SetIcon(ic) mw.Run() }