Working on v2
This commit is contained in:
93
old/screen_about.go
Normal file
93
old/screen_about.go
Normal file
@@ -0,0 +1,93 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/br0xen/termbox-util"
|
||||
termbox "github.com/nsf/termbox-go"
|
||||
)
|
||||
|
||||
// AboutScreen holds all that's going on
|
||||
type AboutScreen struct {
|
||||
viewPort ViewPort
|
||||
message string
|
||||
messageTimeout time.Duration
|
||||
messageTime time.Time
|
||||
|
||||
titleTemplate []string
|
||||
commandsCol1 []Command
|
||||
commandsCol2 []Command
|
||||
}
|
||||
|
||||
type Command struct {
|
||||
key string
|
||||
description string
|
||||
}
|
||||
|
||||
func (screen *AboutScreen) initialize(bundle Bundle) error {
|
||||
screen.titleTemplate = []string{
|
||||
" .__ ",
|
||||
" ____ |__| _____ ____ ",
|
||||
" / ___\\| |/ \\_/ __ \\ ",
|
||||
" / /_/ > | Y Y \\ ___/ ",
|
||||
" \\___ /|__|__|_| /\\___ >",
|
||||
"/_____/ \\/ \\/ ",
|
||||
}
|
||||
|
||||
screen.commandsCol1 = []Command{
|
||||
Command{"j,↓", "down"},
|
||||
Command{"k,↑", "up"},
|
||||
Command{"l,→", "open task"},
|
||||
Command{"------", "---------"},
|
||||
Command{"g", "goto top"},
|
||||
Command{"G", "goto bottom"},
|
||||
Command{"ctrl+f", "jump down"},
|
||||
Command{"ctrl+b", "jump up"},
|
||||
}
|
||||
screen.commandsCol2 = []Command{
|
||||
Command{"D", "archive timer to done.txt"},
|
||||
Command{"------", "---------"},
|
||||
Command{"?", "this screen"},
|
||||
Command{"q", "quit program"},
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (screen *AboutScreen) handleKeyEvent(event termbox.Event) int {
|
||||
return ScreenMain
|
||||
}
|
||||
|
||||
func (screen *AboutScreen) drawScreen() {
|
||||
width, height := termbox.Size()
|
||||
xPos := (width - len(screen.titleTemplate[0])) / 2
|
||||
yPos := 1
|
||||
for _, line := range screen.titleTemplate {
|
||||
termboxUtil.DrawStringAtPoint(line, xPos, yPos, DefaultFg, DefaultBg)
|
||||
yPos++
|
||||
}
|
||||
|
||||
numCols := 2
|
||||
if width < 80 {
|
||||
numCols = 1
|
||||
}
|
||||
col1XPos := (width - (width * 3 / 4))
|
||||
col2XPos := (width - (width * 2 / 4))
|
||||
if numCols == 1 {
|
||||
col2XPos = col1XPos
|
||||
}
|
||||
screen.drawCommandsAtPoint(screen.commandsCol1, col1XPos, yPos)
|
||||
screen.drawCommandsAtPoint(screen.commandsCol2, col2XPos, yPos)
|
||||
exitTxt := "Press any key to return to tasks"
|
||||
termboxUtil.DrawStringAtPoint(exitTxt, (width-len(exitTxt))/2, height-1, TitleFg, TitleBg)
|
||||
}
|
||||
|
||||
func (screen *AboutScreen) drawCommandsAtPoint(commands []Command, x, y int) {
|
||||
xPos, yPos := x, y
|
||||
for _, cmd := range commands {
|
||||
termboxUtil.DrawStringAtPoint(fmt.Sprintf("%6s", cmd.key), xPos, yPos, DefaultFg, DefaultBg)
|
||||
termboxUtil.DrawStringAtPoint(cmd.description, xPos+8, yPos, DefaultFg, DefaultBg)
|
||||
yPos++
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user