From b60999c39e11bf4d1e236f2b10a2f895b44d23fb Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sun, 10 Mar 2019 21:15:24 -0400 Subject: Start building out command subsystem --- widgets/directories.go | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'widgets/directories.go') diff --git a/widgets/directories.go b/widgets/directories.go index 11fe2d6..ae31d29 100644 --- a/widgets/directories.go +++ b/widgets/directories.go @@ -103,3 +103,40 @@ func (dirlist *DirectoryList) Draw(ctx *ui.Context) { row++ } } + +func (dirlist *DirectoryList) nextPrev(delta int) { + for i, dir := range dirlist.dirs { + if dir == dirlist.selected { + var j int + ndirs := len(dirlist.dirs) + for j = i + delta; j != i; j += delta { + if j < 0 { + j = ndirs - 1 + } + if j >= ndirs { + j = 0 + } + name := dirlist.dirs[j] + if len(dirlist.conf.Folders) > 1 && name != dirlist.selected { + idx := sort.SearchStrings(dirlist.conf.Folders, name) + if idx == len(dirlist.conf.Folders) || + dirlist.conf.Folders[idx] != name { + + continue + } + } + break + } + dirlist.Select(dirlist.dirs[j]) + break + } + } +} + +func (dirlist *DirectoryList) Next() { + dirlist.nextPrev(1) +} + +func (dirlist *DirectoryList) Prev() { + dirlist.nextPrev(-1) +} -- cgit v1.2.3