Procházet zdrojové kódy

Working panel join. Fixed spacer.

Steve Thielemann před 3 roky
rodič
revize
c71e730490
2 změnil soubory, kde provedl 24 přidání a 2 odebrání
  1. 2 2
      door/panel.go
  2. 22 0
      testdoor/testdoor.go

+ 2 - 2
door/panel.go

@@ -156,9 +156,9 @@ func (p *Panel) Spacer() Line {
 	}
 
 	if Unicode {
-		l.Text = strings.Repeat(BOXES[pos].top, p.Width)
-	} else {
 		l.Text = strings.Repeat(BOXES_UNICODE[pos].top, p.Width)
+	} else {
+		l.Text = strings.Repeat(BOXES[pos].top, p.Width)
 	}
 	return l
 }

+ 22 - 0
testdoor/testdoor.go

@@ -53,6 +53,7 @@ func MainMenu() door.Menu {
 	m.AddSelection("D", "Display Information (dropfile, screen)")
 	m.AddSelection("I", "Input Prompt Demo")
 	m.AddSelection("P", "Progress Bars Demo")
+	m.AddSelection("S", "Show Panel")
 
 	m.AddSelection("Q", "Quit")
 	return m
@@ -162,6 +163,24 @@ func progress_bars(d *door.Door) {
 
 }
 
+func panel_demo(d *door.Door) {
+	width := 55
+	fmtStr := "%-55s"
+	p := door.Panel{X: 5, Y: 5, Width: width, Style: door.DOUBLE, BorderColor: door.ColorText("CYAN ON BLUE"), Title: "[ Panel Demo ]"}
+
+	lineColor := door.ColorText("BRIGHT WHI ON BLUE")
+	// Add lines to the panel
+	for _, line := range []string{"The BBS Door Panel Demo", "(C) 2021 Red Green Software, https://red-green.com"} {
+		l := door.Line{Text: fmt.Sprintf(fmtStr, line), DefaultColor: lineColor}
+		p.Lines = append(p.Lines, l)
+	}
+	p.Lines = append(p.Lines, p.Spacer())
+	p.Lines = append(p.Lines, door.Line{Text: fmt.Sprintf(fmtStr, "Welcome to golang!"), DefaultColor: lineColor})
+
+	d.Write(door.Clrscr)
+	d.Write(p.Output())
+}
+
 func main() {
 	var message string
 
@@ -218,6 +237,9 @@ func main() {
 		case 'P':
 			progress_bars(&d)
 			press_a_key(&d)
+		case 'S':
+			panel_demo(&d)
+			press_a_key(&d)
 		case 'Q':
 			choice = -1
 			break