diff options
author | Tulir Asokan <tulir@maunium.net> | 2019-01-11 23:28:47 +0200 |
---|---|---|
committer | Tulir Asokan <tulir@maunium.net> | 2019-01-11 23:28:47 +0200 |
commit | 331597b9f8a7942cbcb233a328301e4d5bf94fb0 (patch) | |
tree | 5ec624585ebf66c63549a098acb6f7421f1193a7 /vendor/maunium.net/go/tview/button.go | |
parent | 2fc3378b717f40f37f3a188b68407887242d9c06 (diff) |
Switch to Go modules and make other changes
Diffstat (limited to 'vendor/maunium.net/go/tview/button.go')
-rw-r--r-- | vendor/maunium.net/go/tview/button.go | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/vendor/maunium.net/go/tview/button.go b/vendor/maunium.net/go/tview/button.go deleted file mode 100644 index cb47eae..0000000 --- a/vendor/maunium.net/go/tview/button.go +++ /dev/null @@ -1,137 +0,0 @@ -package tview - -import ( - "maunium.net/go/tcell" -) - -// Button is labeled box that triggers an action when selected. -// -// See https://github.com/rivo/tview/wiki/Button for an example. -type Button struct { - *Box - - // The text to be displayed before the input area. - label string - - // The label color. - labelColor tcell.Color - - // The label color when the button is in focus. - labelColorActivated tcell.Color - - // The background color when the button is in focus. - backgroundColorActivated tcell.Color - - // An optional function which is called when the button was selected. - selected func() - - // An optional function which is called when the user leaves the button. A - // key is provided indicating which key was pressed to leave (tab or backtab). - blur func(tcell.Key) -} - -// NewButton returns a new input field. -func NewButton(label string) *Button { - box := NewBox().SetBackgroundColor(Styles.ContrastBackgroundColor) - box.SetRect(0, 0, StringWidth(label)+4, 1) - return &Button{ - Box: box, - label: label, - labelColor: Styles.PrimaryTextColor, - labelColorActivated: Styles.InverseTextColor, - backgroundColorActivated: Styles.PrimaryTextColor, - } -} - -// SetLabel sets the button text. -func (b *Button) SetLabel(label string) *Button { - b.label = label - return b -} - -// GetLabel returns the button text. -func (b *Button) GetLabel() string { - return b.label -} - -// SetLabelColor sets the color of the button text. -func (b *Button) SetLabelColor(color tcell.Color) *Button { - b.labelColor = color - return b -} - -// SetLabelColorActivated sets the color of the button text when the button is -// in focus. -func (b *Button) SetLabelColorActivated(color tcell.Color) *Button { - b.labelColorActivated = color - return b -} - -// SetBackgroundColorActivated sets the background color of the button text when -// the button is in focus. -func (b *Button) SetBackgroundColorActivated(color tcell.Color) *Button { - b.backgroundColorActivated = color - return b -} - -// SetSelectedFunc sets a handler which is called when the button was selected. -func (b *Button) SetSelectedFunc(handler func()) *Button { - b.selected = handler - return b -} - -// SetBlurFunc sets a handler which is called when the user leaves the button. -// The callback function is provided with the key that was pressed, which is one -// of the following: -// -// - KeyEscape: Leaving the button with no specific direction. -// - KeyTab: Move to the next field. -// - KeyBacktab: Move to the previous field. -func (b *Button) SetBlurFunc(handler func(key tcell.Key)) *Button { - b.blur = handler - return b -} - -// Draw draws this primitive onto the screen. -func (b *Button) Draw(screen tcell.Screen) { - // Draw the box. - borderColor := b.borderColor - backgroundColor := b.backgroundColor - if b.focus.HasFocus() { - b.backgroundColor = b.backgroundColorActivated - b.borderColor = b.labelColorActivated - defer func() { - b.borderColor = borderColor - }() - } - b.Box.Draw(screen) - b.backgroundColor = backgroundColor - - // Draw label. - x, y, width, height := b.GetInnerRect() - if width > 0 && height > 0 { - y = y + height/2 - labelColor := b.labelColor - if b.focus.HasFocus() { - labelColor = b.labelColorActivated - } - Print(screen, b.label, x, y, width, AlignCenter, labelColor) - } -} - -// InputHandler returns the handler for this primitive. -func (b *Button) InputHandler() func(event *tcell.EventKey, setFocus func(p Primitive)) { - return b.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p Primitive)) { - // Process key event. - switch key := event.Key(); key { - case tcell.KeyEnter: // Selected. - if b.selected != nil { - b.selected() - } - case tcell.KeyBacktab, tcell.KeyTab, tcell.KeyEscape: // Leave. No action. - if b.blur != nil { - b.blur(key) - } - } - }) -} |