parent
713b87609d
commit
8f727f1204
@ -0,0 +1,64 @@ |
||||
// Copyright (c) 2013 by Michael Dvorkin. All Rights Reserved.
|
||||
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||
package mop |
||||
|
||||
import ( |
||||
"github.com/nsf/termbox-go" |
||||
) |
||||
|
||||
// const (
|
||||
// add_prompt = "Add tickers: "
|
||||
// remove_prompt = "Remove tickers: "
|
||||
// )
|
||||
|
||||
// const prompts = map[rune]string{'+': `Add tickers: `, '-': `Remove tickers: `}
|
||||
|
||||
type LineEditor struct { |
||||
command rune |
||||
prompt string |
||||
cursor int |
||||
input string |
||||
} |
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
func (self *LineEditor) Prompt(command rune) { |
||||
prompts := map[rune]string{'+': `Add tickers: `, '-': `Remove tickers: `} |
||||
|
||||
self.command = command |
||||
switch self.command { |
||||
case '+', '-': |
||||
self.prompt = prompts[self.command] |
||||
// if self.command == '+' {
|
||||
// self.prompt = add_prompt
|
||||
// } else {
|
||||
// self.prompt = remove_prompt
|
||||
// }
|
||||
DrawLine(0, 3, "<white>"+self.prompt+"</white>") |
||||
termbox.SetCursor(len(self.prompt), 3) |
||||
termbox.Flush() |
||||
} |
||||
} |
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
func (self *LineEditor) Handle(ev termbox.Event) bool { |
||||
switch ev.Key { |
||||
case termbox.KeyEsc: |
||||
ClearLine(0, 3) |
||||
termbox.HideCursor() |
||||
termbox.Flush() |
||||
return true |
||||
case termbox.KeyEnter: |
||||
ClearLine(0, 3) |
||||
termbox.HideCursor() |
||||
termbox.Flush() |
||||
return true |
||||
default: |
||||
if ev.Ch != 0 { |
||||
self.input += string(ev.Ch) |
||||
DrawLine(len(self.prompt), 3, self.input) |
||||
termbox.SetCursor(len(self.prompt)+len(self.input), 3) |
||||
termbox.Flush() |
||||
} |
||||
} |
||||
return false |
||||
} |
Loading…
Reference in new issue