summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2023-04-12 22:21:57 -0500
committerJeff Carr <[email protected]>2023-04-12 22:21:57 -0500
commitecf3893fa9b69f71f5e84bcedae1934f49f98a7a (patch)
tree515c31633c54fb286aeb7796eb9f44c52c5ad9bb
parent047cde4c9d68ea4ff87006448137e836ec9eb140 (diff)
work on an output window
Signed-off-by: Jeff Carr <[email protected]>
-rw-r--r--toolkit/gocui/globalDown.go37
-rw-r--r--toolkit/gocui/mouse.go65
-rw-r--r--toolkit/gocui/showMsg.go44
3 files changed, 81 insertions, 65 deletions
diff --git a/toolkit/gocui/globalDown.go b/toolkit/gocui/globalDown.go
new file mode 100644
index 0000000..e9d6b13
--- /dev/null
+++ b/toolkit/gocui/globalDown.go
@@ -0,0 +1,37 @@
+// Copyright 2014 The gocui Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+import (
+ "errors"
+ "fmt"
+
+ "github.com/awesome-gocui/gocui"
+)
+
+func globalDown(g *gocui.Gui, v *gocui.View) error {
+ mx, my := g.MousePosition()
+ if vx0, vy0, vx1, vy1, err := g.ViewPosition("msg"); err == nil {
+ if mx >= vx0 && mx <= vx1 && my >= vy0 && my <= vy1 {
+ return msgDown(g, v)
+ }
+ }
+ globalMouseDown = true
+ maxX, _ := g.Size()
+ msg := fmt.Sprintf("Mouse really down at: %d,%d", mx, my) + "foo\n" + "bar\n"
+ x := mx - len(msg)/2
+ if x < 0 {
+ x = 0
+ } else if x+len(msg)+1 > maxX-1 {
+ x = maxX - 1 - len(msg) - 1
+ }
+ if v, err := g.SetView("globalDown", x, my-1, x+len(msg)+1, my+1, 0); err != nil {
+ if !errors.Is(err, gocui.ErrUnknownView) {
+ return err
+ }
+ v.WriteString(msg)
+ }
+ return nil
+}
diff --git a/toolkit/gocui/mouse.go b/toolkit/gocui/mouse.go
index 196e080..4337f42 100644
--- a/toolkit/gocui/mouse.go
+++ b/toolkit/gocui/mouse.go
@@ -6,7 +6,6 @@ package main
import (
"errors"
- "fmt"
"github.com/awesome-gocui/gocui"
)
@@ -60,14 +59,6 @@ func layout(g *gocui.Gui) error {
return err
}
}
- if v, err := g.SetView("but2", 24, 2, 44, 4, 0); err != nil {
- if !errors.Is(err, gocui.ErrUnknownView) {
- return err
- }
- v.SelBgColor = gocui.ColorGreen
- v.SelFgColor = gocui.ColorBlack
- fmt.Fprintln(v, "Button 2 - line 1")
- }
*/
helplayout(g)
updateHighlightedView(g)
@@ -78,29 +69,6 @@ func quit(g *gocui.Gui, v *gocui.View) error {
return gocui.ErrQuit
}
-func showMsg(g *gocui.Gui, v *gocui.View) error {
- var l string
- var err error
-
- if _, err := g.SetCurrentView(v.Name()); err != nil {
- return err
- }
-
- _, cy := v.Cursor()
- if l, err = v.Line(cy); err != nil {
- l = ""
- }
-
- maxX, maxY := g.Size()
- if v, err := g.SetView("msg", maxX/2-10, maxY/2, maxX/2+10, maxY/2+2, 0); err == nil || errors.Is(err, gocui.ErrUnknownView) {
- v.Clear()
- v.SelBgColor = gocui.ColorCyan
- v.SelFgColor = gocui.ColorBlack
- fmt.Fprintln(v, l)
- }
- return nil
-}
-
func updateHighlightedView(g *gocui.Gui) {
mx, my := g.MousePosition()
for _, view := range g.Views() {
@@ -111,14 +79,6 @@ func updateHighlightedView(g *gocui.Gui) {
}
}
-func moveMsg(g *gocui.Gui) {
- mx, my := g.MousePosition()
- if !movingMsg && (mx != initialMouseX || my != initialMouseY) {
- movingMsg = true
- }
- g.SetView("msg", mx-xOffset, my-yOffset, mx-xOffset+20, my-yOffset+2, 0)
-}
-
func msgDown(g *gocui.Gui, v *gocui.View) error {
initialMouseX, initialMouseY = g.MousePosition()
if vx, vy, _, _, err := g.ViewPosition("msg"); err == nil {
@@ -129,31 +89,6 @@ func msgDown(g *gocui.Gui, v *gocui.View) error {
return nil
}
-func globalDown(g *gocui.Gui, v *gocui.View) error {
- mx, my := g.MousePosition()
- if vx0, vy0, vx1, vy1, err := g.ViewPosition("msg"); err == nil {
- if mx >= vx0 && mx <= vx1 && my >= vy0 && my <= vy1 {
- return msgDown(g, v)
- }
- }
- globalMouseDown = true
- maxX, _ := g.Size()
- msg := fmt.Sprintf("Mouse down at: %d,%d", mx, my)
- x := mx - len(msg)/2
- if x < 0 {
- x = 0
- } else if x+len(msg)+1 > maxX-1 {
- x = maxX - 1 - len(msg) - 1
- }
- if v, err := g.SetView("globalDown", x, my-1, x+len(msg)+1, my+1, 0); err != nil {
- if !errors.Is(err, gocui.ErrUnknownView) {
- return err
- }
- v.WriteString(msg)
- }
- return nil
-}
-
func mouseUp(g *gocui.Gui, v *gocui.View) error {
if msgMouseDown {
msgMouseDown = false
diff --git a/toolkit/gocui/showMsg.go b/toolkit/gocui/showMsg.go
new file mode 100644
index 0000000..a03a64d
--- /dev/null
+++ b/toolkit/gocui/showMsg.go
@@ -0,0 +1,44 @@
+// Copyright 2014 The gocui Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+import (
+ "errors"
+ "fmt"
+
+ "github.com/awesome-gocui/gocui"
+)
+
+func moveMsg(g *gocui.Gui) {
+ mx, my := g.MousePosition()
+ if !movingMsg && (mx != initialMouseX || my != initialMouseY) {
+ movingMsg = true
+ }
+ g.SetView("msg", mx-xOffset, my-yOffset, mx-xOffset+20, my-yOffset+7, 0)
+}
+
+func showMsg(g *gocui.Gui, v *gocui.View) error {
+ var l string
+ var err error
+
+ if _, err := g.SetCurrentView(v.Name()); err != nil {
+ return err
+ }
+
+ _, cy := v.Cursor()
+ if l, err = v.Line(cy); err != nil {
+ l = ""
+ }
+
+ maxX, maxY := g.Size()
+ if v, err := g.SetView("msg", maxX/2-10, maxY/2, maxX/2+10, maxY/2+7, 0); err == nil || errors.Is(err, gocui.ErrUnknownView) {
+ v.Clear()
+ v.SelBgColor = gocui.ColorCyan
+ v.SelFgColor = gocui.ColorBlack
+ l += "foo\n" + "bar\n"
+ fmt.Fprintln(v, l)
+ }
+ return nil
+}