From 065ee70e3a7489d0255d17e9e2ce922950b4f29b Mon Sep 17 00:00:00 2001 From: "Jip J. Dekker" Date: Fri, 18 Oct 2013 21:17:23 +0200 Subject: [PATCH] Finished menu --- menu.go | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/menu.go b/menu.go index 53c530b..5a82af0 100644 --- a/menu.go +++ b/menu.go @@ -10,12 +10,14 @@ import ( ) const ( - ascii string = "-hMMMMMMMMMMMd:\n-hMMMMMMMMMMMd:\n-:::::::::::::::::::::::::`.::::::::::::::::::::::::::.-hMMMMMMMMMMMd:\n`oNMMMMMMMMMM.MMMMMMMMMMMMM.ssmMMMMMMMMMMMMMMMMMMMMMMdshMMMMMMMMMMMd:\n`oNMMMMMMMM.MMMMMMMMMMMMM.NNysmMMMMMMMMMMMMMMMMMMmshMMMMMMMMMMMd:\n`oNMMMMMM.MMMMMMMMMMMMM.NMMNysmMMMMMMMMMMMMMMmshMMMMMMMMMMMd/\n`oNMMMM.MMMMMMMMMMMMM.NMMMMNysmMMMMMMMMMMm+ohddddddddddh/`\n`oNMM.MMMMMMMMMMMMM.NMMMMMMNysmMMMMMMm/`````````````\n.oN.MMMMMMMMMMMMM.NMMMMMMMMNysmMMm/`\n.:::::::::::::`NMMMMMMMMMMNys+`\nNMMMMMMMMMMMMNo.\nNMMMMMMMMMMMMMMmo`\nNMMMMMMMMMMMMMMMMmo`\nNMMMMMMMMMMMMMMMMMy.\nNMMMMMMMMMMMMMMMh-\nNMMMMMMMMMMMMMh:\nNMMMMMMMMMMMh:\nNMMMMMMMMMh:\nNMMMMMMMdyo\nNMMMMMdydMy\nNMMMdsdMMMy\nNMdsdMMMMMy\ndsdMMMMMMMy\n:hMMMMMMMMMy\n:hMMMMMMMMMMMy\n-hMMMMMMMMMMMMMy\n-hMMMMMMMMMMMMMMMy\n-yMMMMMMMMMMMMMMMMMy\n:dMMMMMMMMMMMMMMMMMy\n:dMMMMMMMMMMMMMMMy\n/dMMMMMMMMMMMMMy\n/dMMMMMMMMMMMy-.\n/dMMMMMMMMMy+Ns.\n/dMMMMMMMy+MMNs.\n/mMMMMMy+MMMMNs.\n/mMMMy+MMMMMMMs.\n/mMy+MMMMMMMMMs.\n/++MMMMMMMMMMMy." + ascii string = " -hMMMMMMMMMMMd:\n -hMMMMMMMMMMMd: \n-:::::::::::: :::::::::::::`.::::::::::::::::::::::::::.-hMMMMMMMMMMMd: \n`oNMMMMMMMMMM.MMMMMMMMMMMMM.ssmMMMMMMMMMMMMMMMMMMMMMMdshMMMMMMMMMMMd: \n `oNMMMMMMMM.MMMMMMMMMMMMM.NNysmMMMMMMMMMMMMMMMMMMmshMMMMMMMMMMMd: \n `oNMMMMMM.MMMMMMMMMMMMM.NMMNysmMMMMMMMMMMMMMMmshMMMMMMMMMMMd/ \n `oNMMMM.MMMMMMMMMMMMM.NMMMMNysmMMMMMMMMMMm+ohddddddddddh/` \n `oNMM.MMMMMMMMMMMMM.NMMMMMMNysmMMMMMMm/` ```````````` \n .oN.MMMMMMMMMMMMM.NMMMMMMMMNysmMMm/` \n . :::::::::::::`NMMMMMMMMMMNys+` \n NMMMMMMMMMMMMNo. \n NMMMMMMMMMMMMMMmo` \n NMMMMMMMMMMMMMMMMmo` \n NMMMMMMMMMMMMMMMMMy. \n NMMMMMMMMMMMMMMMh- \n NMMMMMMMMMMMMMh: \n NMMMMMMMMMMMh: \n NMMMMMMMMMh: \n NMMMMMMMdyo \n NMMMMMdydMy \n NMMMdsdMMMy \n NMdsdMMMMMy \n dsdMMMMMMMy \n :hMMMMMMMMMy \n :hMMMMMMMMMMMy \n -hMMMMMMMMMMMMMy \n -hMMMMMMMMMMMMMMMy \n -yMMMMMMMMMMMMMMMMMy \n :dMMMMMMMMMMMMMMMMMy \n :dMMMMMMMMMMMMMMMy \n /dMMMMMMMMMMMMMy \n /dMMMMMMMMMMMy-. \n /dMMMMMMMMMy+Ns. \n /dMMMMMMMy+MMNs. \n /mMMMMMy+MMMMNs. \n /mMMMy+MMMMMMMs. \n /mMy+MMMMMMMMMs. \n /++MMMMMMMMMMMy. " tekst string = "Thalia Constitutieborrel Gastenboek\n1) Schrijf een nieuw bericht.\n2) Lees oude berichten." ) var ( - menu string = "" + menu string = "" + menuwidth int = 0 + Message string = "" ) func terminalSize() (width, height int) { @@ -29,19 +31,27 @@ func terminalSize() (width, height int) { return width, height } +func clear() { + _, height := terminalSize() + fmt.Printf("%v", strings.Repeat("\n", height+1)) +} + func generateMenu() string { - if menu == "" { - var width, height int = terminalSize() + var width, height int = terminalSize() + if menu == "" && width != menuwidth { + menuwidth = width var content []string = strings.Split(ascii, "\n") - content = append(content, strings.Split(tekst, "\n")...) + var options []string = strings.Split(tekst, "\n") + content = append(content, make([]string, (height-4)-len(content)-len(options))...) + content = append(content, options...) menu += strings.Repeat("-", width) for _, value := range content { var length int = len(value) menu += "|" - menu += strings.Repeat(" ", math.Floor((width-length-2)/2.0)) + menu += strings.Repeat(" ", int(math.Floor(float64((width-length-3)/2.0)))) menu += value - menu += strings.Repeat(" ", math.Ceil((width-length-2)/2.0)) - menu += "|" + menu += strings.Repeat(" ", int(math.Ceil(float64((width-length-2)/2.0)))) + menu += "|\n" } menu += strings.Repeat("-", width) } @@ -49,5 +59,16 @@ func generateMenu() string { } func showMenu() { - fmt.Println(generateMenu()) + clear() + fmt.Print(generateMenu()) + if Message != "" { + fmt.Println(Message) + } else { + fmt.Print("\n") + } + fmt.Print("Maak uw keuze: ") + var i int + fmt.Scanf("%d", &i) + fmt.Println(i) + }