diff options
| author | Jeff Carr <[email protected]> | 2025-01-31 08:57:32 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-01-31 13:47:45 -0600 |
| commit | 1a1881aa4e39e256126972c0cbe7f0db93ee20ec (patch) | |
| tree | 7afff73f1c2a594e71628f435644530ba05a4c0f /mouse.go | |
| parent | 75a5c7bf728d02bcf5accd1360c99a9c6edc0b91 (diff) | |
name changes after I haven't looked at this code for some time
Diffstat (limited to 'mouse.go')
| -rw-r--r-- | mouse.go | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/mouse.go b/mouse.go deleted file mode 100644 index 4078d70..0000000 --- a/mouse.go +++ /dev/null @@ -1,107 +0,0 @@ -// 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. - -// note by [email protected] in 2025: this is one of the coolest -// things ever what this does. I've tried to improve -// it while I've been working on making a gocui -// GO plugin so it can be generalized as a useful -// console interface. Well done everyone that has -// contributed to this gocui project !!! - -package main - -import ( - "errors" - "fmt" - - "github.com/awesome-gocui/gocui" - - "go.wit.com/log" -) - -// this function uses the mouse position to highlight & unhighlight things -// this is run every time the user moves the mouse over the terminal window -func mouseMove(g *gocui.Gui) { - mx, my := g.MousePosition() - for _, view := range g.Views() { - view.Highlight = false - } - if v, err := g.ViewByPosition(mx, my); err == nil { - v.Highlight = true - } -} - -func msgDown(g *gocui.Gui, v *gocui.View) error { - initialMouseX, initialMouseY = g.MousePosition() - - // debugging output - log.Log(GOCUI, "msgDown() X,Y", initialMouseX, initialMouseY) - - // - vx, vy, _, _, err := g.ViewPosition("msg") - if err == nil { - xOffset = initialMouseX - vx - yOffset = initialMouseY - vy - msgMouseDown = true - } - return nil -} - -func mouseUp(g *gocui.Gui, v *gocui.View) error { - w, h := g.MousePosition() - - dropdownUnclicked(w, h) - - if msgMouseDown { - msgMouseDown = false - if movingMsg { - movingMsg = false - return nil - } else { - g.DeleteView("msg") - } - } else if globalMouseDown { - globalMouseDown = false - g.DeleteView("globalDown") - } - return nil -} - -// func isMouseInMsg - -// this is where you have to figure out what -// widget was underneath so you can active -// the right response for the toolkit user's app -func mouseDown(g *gocui.Gui, v *gocui.View) error { - mx, my := g.MousePosition() - - vx0, vy0, vx1, vy1, err := g.ViewPosition("msg") - if err == nil { - if mx >= vx0 && mx <= vx1 && my >= vy0 && my <= vy1 { - return msgDown(g, v) - } - } - globalMouseDown = true - - maxX, _ := g.Size() - - findUnderMouse() - - msg := fmt.Sprintf("mouseDown() Mouse really down at: %d,%d", mx, my) - // dropdownClicked(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 - } - log.Log(GOCUI, "mouseDown() about to write out message to 'globalDown' view. msg =", msg) - 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 -} |
