aboutsummaryrefslogtreecommitdiffstats
path: root/focus.go
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2024-02-08 15:32:34 -0500
committerSam Anthony <sam@samanthony.xyz>2024-02-08 15:32:34 -0500
commit83ce69a4785d6464fafd07e60b20b968529f018a (patch)
treebd43809eb775b672b04b3a170a70144b70bdae23 /focus.go
parent5b74ac13ea875f0bb645dc0054319a6f1e08d966 (diff)
downloadvolute-83ce69a4785d6464fafd07e60b20b968529f018a.zip
move Focus to gui/widget package
Diffstat (limited to 'focus.go')
-rw-r--r--focus.go68
1 files changed, 0 insertions, 68 deletions
diff --git a/focus.go b/focus.go
deleted file mode 100644
index cb34f74..0000000
--- a/focus.go
+++ /dev/null
@@ -1,68 +0,0 @@
-package main
-
-import "image"
-
-type Focus struct {
- widgets [][]chan bool
- p image.Point // currently focused widget
-}
-
-func NewFocus(rows []int) Focus {
- f := Focus{
- make([][]chan bool, len(rows)),
- image.Point{},
- }
- for i := range f.widgets {
- f.widgets[i] = make([]chan bool, rows[i])
- for j := range f.widgets[i] {
- f.widgets[i][j] = make(chan bool)
- }
- }
- return f
-}
-
-func (f *Focus) Close() {
- for i := range f.widgets {
- for j := range f.widgets[i] {
- close(f.widgets[i][j])
- }
- }
-}
-
-func (f *Focus) Focus(focus bool) {
- f.widgets[f.p.Y][f.p.X] <- focus
-}
-
-func (f *Focus) Left() {
- f.Focus(false)
- if f.p.X <= 0 {
- f.p.X = len(f.widgets[f.p.Y]) - 1
- } else {
- f.p.X--
- }
- f.Focus(true)
-}
-
-func (f *Focus) Right() {
- f.Focus(false)
- f.p.X = (f.p.X + 1) % len(f.widgets[f.p.Y])
- f.Focus(true)
-}
-
-func (f *Focus) Up() {
- f.Focus(false)
- if f.p.Y <= 0 {
- f.p.Y = len(f.widgets) - 1
- } else {
- f.p.Y--
- }
- f.p.X = min(f.p.X, len(f.widgets[f.p.Y])-1)
- f.Focus(true)
-}
-
-func (f *Focus) Down() {
- f.Focus(false)
- f.p.Y = (f.p.Y + 1) % len(f.widgets)
- f.p.X = min(f.p.X, len(f.widgets[f.p.Y])-1)
- f.Focus(true)
-}