|
@@ -80,34 +80,34 @@ func about_test_door(d *door.Door) {
|
|
|
|
|
|
func MainMenu() door.Menu {
|
|
|
// Make the main menu
|
|
|
- var m door.Menu = door.Menu{Panel: door.Panel{Width: 45,
|
|
|
+ var menu door.Menu = door.Menu{Panel: door.Panel{Width: 45,
|
|
|
X: 2,
|
|
|
Y: 5,
|
|
|
Style: door.DOUBLE,
|
|
|
Title: "[ Main Menu: ]",
|
|
|
TitleOffset: 3,
|
|
|
BorderColor: door.ColorText("BRI CYAN ON BLA")}}
|
|
|
- m.SelectedR = door.MakeMenuRender(door.ColorText("BOLD CYAN"),
|
|
|
+ menu.SelectedR = door.MakeMenuRender(door.ColorText("BOLD CYAN"),
|
|
|
door.ColorText("BOLD BLUE"),
|
|
|
door.ColorText("BOLD WHITE"),
|
|
|
door.ColorText("BOLD CYAN"))
|
|
|
- m.UnselectedR = door.MakeMenuRender(door.ColorText("BOLD YEL ON BLUE"),
|
|
|
+ menu.UnselectedR = door.MakeMenuRender(door.ColorText("BOLD YEL ON BLUE"),
|
|
|
door.ColorText("BOLD WHI ON BLUE"),
|
|
|
door.ColorText("BOLD YEL ON BLUE"),
|
|
|
door.ColorText("BOLD CYAN ON BLUE"))
|
|
|
|
|
|
- m.AddSelection("A", "ANSI Display")
|
|
|
+ menu.AddSelection("A", "ANSI Display")
|
|
|
// m.AddSelection("C", "Crash")
|
|
|
- m.AddSelection("D", "Display Information (dropfile, screen)")
|
|
|
- m.AddSelection("F", "Font Demo")
|
|
|
- m.AddSelection("I", "Input Prompt Demo")
|
|
|
- m.AddSelection("M", "Menu Demo")
|
|
|
- m.AddSelection("P", "Progress Bars Demo")
|
|
|
- m.AddSelection("S", "Show Panel")
|
|
|
- m.AddSelection("T", "Test Door About")
|
|
|
- m.AddSelection("W", "Screen Width")
|
|
|
+ menu.AddSelection("D", "Display Information (dropfile, screen)")
|
|
|
+ menu.AddSelection("F", "Font Demo")
|
|
|
+ menu.AddSelection("I", "Input Prompt Demo")
|
|
|
+ menu.AddSelection("M", "Menu Demo")
|
|
|
+ menu.AddSelection("P", "Progress Bars Demo")
|
|
|
+ menu.AddSelection("S", "Show Panel")
|
|
|
+ menu.AddSelection("T", "Test Door About")
|
|
|
+ menu.AddSelection("W", "Screen Width")
|
|
|
|
|
|
- m.AddSelection("Q", "Quit")
|
|
|
+ menu.AddSelection("Q", "Quit")
|
|
|
|
|
|
var descriptions []string = []string{
|
|
|
// 12345678901234567890123456789012345678901234567890
|
|
@@ -124,7 +124,7 @@ func MainMenu() door.Menu {
|
|
|
"Exit this door.",
|
|
|
}
|
|
|
|
|
|
- var widthLeft int = door.Width - (m.Width + m.X + 2)
|
|
|
+ var widthLeft int = door.Width - (menu.Width + menu.X + 2)
|
|
|
var panelWidth int = widthLeft - (2 + 2)
|
|
|
var maxLines int = 1
|
|
|
var maxLineLength int
|
|
@@ -144,25 +144,25 @@ func MainMenu() door.Menu {
|
|
|
// Ok! Everything fits into one line, SO use max line length as width of panel.
|
|
|
panelWidth = maxLineLength
|
|
|
}
|
|
|
- var p door.Panel = door.Panel{X: m.Width + m.X + 2 + 1, Y: m.Y, Width: panelWidth, Style: door.SINGLE, BorderColor: door.ColorText("WHI ON BLU")}
|
|
|
+ // Position the description panel beside the menu. m.Width + m.X + 2 (1 one to give it a space)
|
|
|
+ var descPanel door.Panel = door.Panel{X: menu.Width + menu.X + 2 + 1, Y: menu.Y, Width: panelWidth, Style: door.SINGLE, BorderColor: door.ColorText("WHI ON BLU")}
|
|
|
for x := 0; x < maxLines; x++ {
|
|
|
- p.Lines = append(p.Lines, door.Line{Text: ""})
|
|
|
+ descPanel.Lines = append(descPanel.Lines, door.Line{Text: ""})
|
|
|
}
|
|
|
|
|
|
- // Target: 5, 20
|
|
|
- m.Activated = func(item int, d *door.Door) {
|
|
|
+ menu.Activated = func(item int, d *door.Door) {
|
|
|
var line string = descriptions[item]
|
|
|
var lines []string = strings.Split(wordwrap.WrapString(line, uint(panelWidth)), "\n")
|
|
|
- for idx, _ := range p.Lines {
|
|
|
+ for idx, _ := range descPanel.Lines {
|
|
|
if idx >= len(lines) {
|
|
|
- p.Lines[idx].Text = strings.Repeat(" ", panelWidth)
|
|
|
+ descPanel.Lines[idx].Text = strings.Repeat(" ", panelWidth)
|
|
|
} else {
|
|
|
- p.Lines[idx].Text = fmt.Sprintf("%-*s", panelWidth, lines[idx])
|
|
|
+ descPanel.Lines[idx].Text = fmt.Sprintf("%-*s", panelWidth, lines[idx])
|
|
|
}
|
|
|
}
|
|
|
- d.Write(door.SavePos + p.Output() + door.RestorePos)
|
|
|
+ d.Write(door.SavePos + descPanel.Output() + door.RestorePos)
|
|
|
}
|
|
|
- return m
|
|
|
+ return menu
|
|
|
}
|
|
|
|
|
|
func display_information(d *door.Door) {
|
|
@@ -451,6 +451,8 @@ func progress_bars(d *door.Door) {
|
|
|
bar_start := door.Goto(3, 15)
|
|
|
|
|
|
for f := 0; f <= 100; f++ {
|
|
|
+
|
|
|
+ d.Write(door.Goto(3, 10) + door.Reset + fmt.Sprintf("Value: %d", f))
|
|
|
percentage = int64(f * 100)
|
|
|
|
|
|
update_bars()
|