|
@@ -31,27 +31,34 @@ func (d *door.Door) PressAKey() {
|
|
|
|
|
|
func press_keys(d *door.Door) {
|
|
|
d.Write(door.Reset + door.CRNL + "Press some keys...")
|
|
|
- var k int
|
|
|
- for k != 0x0d {
|
|
|
- k = d.Key()
|
|
|
- if k == door.XKEY_MOUSE {
|
|
|
+ var r rune
|
|
|
+ var ex door.Extended
|
|
|
+ var err error
|
|
|
+
|
|
|
+ for (r != 0x0d) && (err == nil) {
|
|
|
+ r, ex, err = d.WaitKey(door.Inactivity)
|
|
|
+ if ex == door.MOUSE {
|
|
|
m, ok := d.GetMouse()
|
|
|
if ok {
|
|
|
// var m door.MouseInfo = door.Mouse
|
|
|
d.Write(fmt.Sprintf("M %d (%d,%d) ", m.Button, m.X, m.Y))
|
|
|
}
|
|
|
} else {
|
|
|
- d.Write(fmt.Sprintf("%d (%x) ", k, k))
|
|
|
+ if ex == door.NOP {
|
|
|
+ d.Write(fmt.Sprintf("%d (%x) ", r, r))
|
|
|
+ } else {
|
|
|
+ d.Write(fmt.Sprintf("<%s> ", ex.String()))
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
d.Write(door.Reset + door.CRNL)
|
|
|
}
|
|
|
|
|
|
-func press_a_key(d *door.Door) int {
|
|
|
+func press_a_key(d *door.Door) error {
|
|
|
d.Write(door.Reset + door.CRNL + "Press a key to continue...")
|
|
|
- var k int = d.Key()
|
|
|
+ _, _, err := d.WaitKey(door.Inactivity)
|
|
|
d.Write(door.CRNL)
|
|
|
- return k
|
|
|
+ return err
|
|
|
}
|
|
|
|
|
|
func about_test_door(d *door.Door) {
|
|
@@ -531,7 +538,7 @@ func width_demo(d *door.Door) {
|
|
|
d.Write(door.Reset + panel.GotoEnd())
|
|
|
|
|
|
// Pause for key
|
|
|
- d.Key()
|
|
|
+ d.WaitKey(door.Inactivity)
|
|
|
|
|
|
panel.Lines = make([]door.Line, 0)
|
|
|
var background string = "BUGZ Test Door in GO "
|
|
@@ -550,7 +557,7 @@ func width_demo(d *door.Door) {
|
|
|
panel.Lines = append(panel.Lines, l)
|
|
|
}
|
|
|
d.Write(panel.Output())
|
|
|
- d.Key()
|
|
|
+ d.WaitKey(door.Inactivity)
|
|
|
}
|
|
|
|
|
|
func panel_demo(d *door.Door) {
|
|
@@ -674,7 +681,8 @@ func main() {
|
|
|
|
|
|
// cterm.txt +687
|
|
|
// d.Write("\x1b[?9h") // enable mouse X10 support
|
|
|
- d.Write("\x1b[?1000h") // enable any-event mouse
|
|
|
+ // d.Write("\x1b[?1000h") // enable any-event mouse
|
|
|
+ d.Write("\x1b[?1002h")
|
|
|
// 1006 does not work in xterm or syncterm.
|
|
|
press_keys(&d)
|
|
|
// press_a_key(&d)
|
|
@@ -751,14 +759,14 @@ func main() {
|
|
|
|
|
|
}
|
|
|
|
|
|
- d.Write("\x1b[?1000l") // disable mouse
|
|
|
-
|
|
|
+ // d.Write("\x1b[?1000l") // disable mouse
|
|
|
+ d.Write("\x1b[?1002l")
|
|
|
d.Write(door.Reset + door.CRNL)
|
|
|
|
|
|
message = fmt.Sprintf("Returning to the %s BBS..."+door.CRNL, d.Config.BBSID)
|
|
|
d.Write(message)
|
|
|
|
|
|
- d.WaitKey(1, 0)
|
|
|
+ d.WaitKey(time.Second)
|
|
|
left = d.TimeLeft()
|
|
|
|
|
|
ticker.Stop()
|