mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
Common help code into HelpfulWidget
This commit is contained in:
parent
00abe70309
commit
9154441c32
@ -26,11 +26,9 @@ const HelpText = `
|
|||||||
`
|
`
|
||||||
|
|
||||||
type Widget struct {
|
type Widget struct {
|
||||||
|
wtf.HelpfulWidget
|
||||||
wtf.TextWidget
|
wtf.TextWidget
|
||||||
|
|
||||||
app *tview.Application
|
|
||||||
pages *tview.Pages
|
|
||||||
|
|
||||||
gerrit *glb.Client
|
gerrit *glb.Client
|
||||||
|
|
||||||
GerritProjects []*GerritProject
|
GerritProjects []*GerritProject
|
||||||
@ -74,16 +72,16 @@ func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
widget := Widget{
|
widget := Widget{
|
||||||
|
HelpfulWidget: wtf.NewHelpfulWidget(app, pages, HelpText),
|
||||||
TextWidget: wtf.NewTextWidget("Gerrit", "gerrit", true),
|
TextWidget: wtf.NewTextWidget("Gerrit", "gerrit", true),
|
||||||
|
|
||||||
app: app,
|
|
||||||
pages: pages,
|
|
||||||
|
|
||||||
gerrit: gerrit,
|
gerrit: gerrit,
|
||||||
|
|
||||||
Idx: 0,
|
Idx: 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
widget.HelpfulWidget.SetView(widget.View)
|
||||||
|
|
||||||
widget.GerritProjects = widget.buildProjectCollection(wtf.Config.UList("wtf.mods.gerrit.projects"))
|
widget.GerritProjects = widget.buildProjectCollection(wtf.Config.UList("wtf.mods.gerrit.projects"))
|
||||||
|
|
||||||
widget.View.SetInputCapture(widget.keyboardIntercept)
|
widget.View.SetInputCapture(widget.keyboardIntercept)
|
||||||
@ -148,7 +146,7 @@ func (widget *Widget) currentGerritProject() *GerritProject {
|
|||||||
func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
||||||
switch string(event.Rune()) {
|
switch string(event.Rune()) {
|
||||||
case "/":
|
case "/":
|
||||||
widget.showHelp()
|
widget.ShowHelp()
|
||||||
return nil
|
return nil
|
||||||
case "h":
|
case "h":
|
||||||
widget.Prev()
|
widget.Prev()
|
||||||
@ -172,16 +170,3 @@ func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
|||||||
return event
|
return event
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (widget *Widget) showHelp() {
|
|
||||||
closeFunc := func() {
|
|
||||||
widget.pages.RemovePage("help")
|
|
||||||
widget.app.SetFocus(widget.View)
|
|
||||||
}
|
|
||||||
|
|
||||||
modal := wtf.NewBillboardModal(HelpText, closeFunc)
|
|
||||||
|
|
||||||
widget.pages.AddPage("help", modal, false, true)
|
|
||||||
widget.app.SetFocus(modal)
|
|
||||||
widget.app.Draw()
|
|
||||||
}
|
|
||||||
|
@ -24,6 +24,7 @@ const modalWidth = 80
|
|||||||
const modalHeight = 7
|
const modalHeight = 7
|
||||||
|
|
||||||
type Widget struct {
|
type Widget struct {
|
||||||
|
wtf.HelpfulWidget
|
||||||
wtf.TextWidget
|
wtf.TextWidget
|
||||||
|
|
||||||
app *tview.Application
|
app *tview.Application
|
||||||
@ -34,6 +35,7 @@ type Widget struct {
|
|||||||
|
|
||||||
func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
|
func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
|
||||||
widget := Widget{
|
widget := Widget{
|
||||||
|
HelpfulWidget: wtf.NewHelpfulWidget(app, pages, HelpText),
|
||||||
TextWidget: wtf.NewTextWidget("Git", "git", true),
|
TextWidget: wtf.NewTextWidget("Git", "git", true),
|
||||||
|
|
||||||
app: app,
|
app: app,
|
||||||
@ -41,6 +43,7 @@ func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
|
|||||||
pages: pages,
|
pages: pages,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
widget.HelpfulWidget.SetView(widget.View)
|
||||||
widget.View.SetInputCapture(widget.keyboardIntercept)
|
widget.View.SetInputCapture(widget.keyboardIntercept)
|
||||||
|
|
||||||
return &widget
|
return &widget
|
||||||
@ -173,7 +176,7 @@ func (widget *Widget) gitRepos(repoPaths []string) []*GitRepo {
|
|||||||
func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
||||||
switch string(event.Rune()) {
|
switch string(event.Rune()) {
|
||||||
case "/":
|
case "/":
|
||||||
widget.showHelp()
|
widget.ShowHelp()
|
||||||
return nil
|
return nil
|
||||||
case "h":
|
case "h":
|
||||||
widget.Prev()
|
widget.Prev()
|
||||||
@ -200,16 +203,3 @@ func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
|||||||
return event
|
return event
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (widget *Widget) showHelp() {
|
|
||||||
closeFunc := func() {
|
|
||||||
widget.pages.RemovePage("help")
|
|
||||||
widget.app.SetFocus(widget.View)
|
|
||||||
}
|
|
||||||
|
|
||||||
modal := wtf.NewBillboardModal(HelpText, closeFunc)
|
|
||||||
|
|
||||||
widget.pages.AddPage("help", modal, false, true)
|
|
||||||
widget.app.SetFocus(modal)
|
|
||||||
widget.app.Draw()
|
|
||||||
}
|
|
||||||
|
@ -19,26 +19,24 @@ const HelpText = `
|
|||||||
`
|
`
|
||||||
|
|
||||||
type Widget struct {
|
type Widget struct {
|
||||||
|
wtf.HelpfulWidget
|
||||||
wtf.TextWidget
|
wtf.TextWidget
|
||||||
|
|
||||||
app *tview.Application
|
|
||||||
pages *tview.Pages
|
|
||||||
|
|
||||||
GithubRepos []*GithubRepo
|
GithubRepos []*GithubRepo
|
||||||
Idx int
|
Idx int
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
|
func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
|
||||||
widget := Widget{
|
widget := Widget{
|
||||||
|
HelpfulWidget: wtf.NewHelpfulWidget(app, pages, HelpText),
|
||||||
TextWidget: wtf.NewTextWidget("GitHub", "github", true),
|
TextWidget: wtf.NewTextWidget("GitHub", "github", true),
|
||||||
|
|
||||||
app: app,
|
|
||||||
Idx: 0,
|
Idx: 0,
|
||||||
pages: pages,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
widget.GithubRepos = widget.buildRepoCollection(wtf.Config.UMap("wtf.mods.github.repositories"))
|
widget.GithubRepos = widget.buildRepoCollection(wtf.Config.UMap("wtf.mods.github.repositories"))
|
||||||
|
|
||||||
|
widget.HelpfulWidget.SetView(widget.View)
|
||||||
widget.View.SetInputCapture(widget.keyboardIntercept)
|
widget.View.SetInputCapture(widget.keyboardIntercept)
|
||||||
|
|
||||||
return &widget
|
return &widget
|
||||||
@ -101,7 +99,7 @@ func (widget *Widget) currentGithubRepo() *GithubRepo {
|
|||||||
func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
||||||
switch string(event.Rune()) {
|
switch string(event.Rune()) {
|
||||||
case "/":
|
case "/":
|
||||||
widget.showHelp()
|
widget.ShowHelp()
|
||||||
return nil
|
return nil
|
||||||
case "h":
|
case "h":
|
||||||
widget.Prev()
|
widget.Prev()
|
||||||
@ -125,16 +123,3 @@ func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
|||||||
return event
|
return event
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (widget *Widget) showHelp() {
|
|
||||||
closeFunc := func() {
|
|
||||||
widget.pages.RemovePage("help")
|
|
||||||
widget.app.SetFocus(widget.View)
|
|
||||||
}
|
|
||||||
|
|
||||||
modal := wtf.NewBillboardModal(HelpText, closeFunc)
|
|
||||||
|
|
||||||
widget.pages.AddPage("help", modal, false, true)
|
|
||||||
widget.app.SetFocus(modal)
|
|
||||||
widget.app.Draw()
|
|
||||||
}
|
|
||||||
|
@ -22,11 +22,9 @@ const HelpText = `
|
|||||||
`
|
`
|
||||||
|
|
||||||
type Widget struct {
|
type Widget struct {
|
||||||
|
wtf.HelpfulWidget
|
||||||
wtf.TextWidget
|
wtf.TextWidget
|
||||||
|
|
||||||
app *tview.Application
|
|
||||||
pages *tview.Pages
|
|
||||||
|
|
||||||
gitlab *glb.Client
|
gitlab *glb.Client
|
||||||
|
|
||||||
GitlabProjects []*GitlabProject
|
GitlabProjects []*GitlabProject
|
||||||
@ -47,11 +45,9 @@ func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
widget := Widget{
|
widget := Widget{
|
||||||
|
HelpfulWidget: wtf.NewHelpfulWidget(app, pages, HelpText),
|
||||||
TextWidget: wtf.NewTextWidget("Gitlab", "gitlab", true),
|
TextWidget: wtf.NewTextWidget("Gitlab", "gitlab", true),
|
||||||
|
|
||||||
app: app,
|
|
||||||
pages: pages,
|
|
||||||
|
|
||||||
gitlab: gitlab,
|
gitlab: gitlab,
|
||||||
|
|
||||||
Idx: 0,
|
Idx: 0,
|
||||||
@ -59,6 +55,7 @@ func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
|
|||||||
|
|
||||||
widget.GitlabProjects = widget.buildProjectCollection(wtf.Config.UMap("wtf.mods.gitlab.projects"))
|
widget.GitlabProjects = widget.buildProjectCollection(wtf.Config.UMap("wtf.mods.gitlab.projects"))
|
||||||
|
|
||||||
|
widget.HelpfulWidget.SetView(widget.View)
|
||||||
widget.View.SetInputCapture(widget.keyboardIntercept)
|
widget.View.SetInputCapture(widget.keyboardIntercept)
|
||||||
|
|
||||||
return &widget
|
return &widget
|
||||||
@ -121,7 +118,7 @@ func (widget *Widget) currentGitlabProject() *GitlabProject {
|
|||||||
func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
||||||
switch string(event.Rune()) {
|
switch string(event.Rune()) {
|
||||||
case "/":
|
case "/":
|
||||||
widget.showHelp()
|
widget.ShowHelp()
|
||||||
return nil
|
return nil
|
||||||
case "h":
|
case "h":
|
||||||
widget.Prev()
|
widget.Prev()
|
||||||
@ -145,16 +142,3 @@ func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
|||||||
return event
|
return event
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (widget *Widget) showHelp() {
|
|
||||||
closeFunc := func() {
|
|
||||||
widget.pages.RemovePage("help")
|
|
||||||
widget.app.SetFocus(widget.View)
|
|
||||||
}
|
|
||||||
|
|
||||||
modal := wtf.NewBillboardModal(HelpText, closeFunc)
|
|
||||||
|
|
||||||
widget.pages.AddPage("help", modal, false, true)
|
|
||||||
widget.app.SetFocus(modal)
|
|
||||||
widget.app.Draw()
|
|
||||||
}
|
|
||||||
|
@ -22,21 +22,20 @@ const HelpText = `
|
|||||||
`
|
`
|
||||||
|
|
||||||
type Widget struct {
|
type Widget struct {
|
||||||
|
wtf.HelpfulWidget
|
||||||
wtf.TextWidget
|
wtf.TextWidget
|
||||||
|
|
||||||
app *tview.Application
|
|
||||||
pages *tview.Pages
|
|
||||||
result *SearchResult
|
result *SearchResult
|
||||||
selected int
|
selected int
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
|
func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
|
||||||
widget := Widget{
|
widget := Widget{
|
||||||
|
HelpfulWidget: wtf.NewHelpfulWidget(app, pages, HelpText),
|
||||||
TextWidget: wtf.NewTextWidget("Jira", "jira", true),
|
TextWidget: wtf.NewTextWidget("Jira", "jira", true),
|
||||||
|
|
||||||
app: app,
|
|
||||||
pages: pages,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
widget.HelpfulWidget.SetView(widget.View)
|
||||||
widget.unselect()
|
widget.unselect()
|
||||||
|
|
||||||
widget.View.SetInputCapture(widget.keyboardIntercept)
|
widget.View.SetInputCapture(widget.keyboardIntercept)
|
||||||
@ -173,7 +172,7 @@ func getProjects() []string {
|
|||||||
func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
||||||
switch string(event.Rune()) {
|
switch string(event.Rune()) {
|
||||||
case "/":
|
case "/":
|
||||||
widget.showHelp()
|
widget.ShowHelp()
|
||||||
case "j":
|
case "j":
|
||||||
// Select the next item down
|
// Select the next item down
|
||||||
widget.next()
|
widget.next()
|
||||||
@ -210,16 +209,3 @@ func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
|||||||
return event
|
return event
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (widget *Widget) showHelp() {
|
|
||||||
closeFunc := func() {
|
|
||||||
widget.pages.RemovePage("help")
|
|
||||||
widget.app.SetFocus(widget.View)
|
|
||||||
}
|
|
||||||
|
|
||||||
modal := wtf.NewBillboardModal(HelpText, closeFunc)
|
|
||||||
|
|
||||||
widget.pages.AddPage("help", modal, false, true)
|
|
||||||
widget.app.SetFocus(modal)
|
|
||||||
widget.app.Draw()
|
|
||||||
}
|
|
||||||
|
@ -22,25 +22,24 @@ const HelpText = `
|
|||||||
`
|
`
|
||||||
|
|
||||||
type Widget struct {
|
type Widget struct {
|
||||||
|
wtf.HelpfulWidget
|
||||||
wtf.TextWidget
|
wtf.TextWidget
|
||||||
|
|
||||||
app *tview.Application
|
|
||||||
filePath string
|
filePath string
|
||||||
pages *tview.Pages
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
|
func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
|
||||||
widget := Widget{
|
widget := Widget{
|
||||||
|
HelpfulWidget: wtf.NewHelpfulWidget(app, pages, HelpText),
|
||||||
TextWidget: wtf.NewTextWidget("TextFile", "textfile", true),
|
TextWidget: wtf.NewTextWidget("TextFile", "textfile", true),
|
||||||
|
|
||||||
app: app,
|
|
||||||
filePath: wtf.Config.UString("wtf.mods.textfile.filePath"),
|
filePath: wtf.Config.UString("wtf.mods.textfile.filePath"),
|
||||||
pages: pages,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
widget.HelpfulWidget.SetView(widget.View)
|
||||||
|
|
||||||
widget.View.SetWrap(true)
|
widget.View.SetWrap(true)
|
||||||
widget.View.SetWordWrap(true)
|
widget.View.SetWordWrap(true)
|
||||||
|
|
||||||
widget.View.SetInputCapture(widget.keyboardIntercept)
|
widget.View.SetInputCapture(widget.keyboardIntercept)
|
||||||
|
|
||||||
return &widget
|
return &widget
|
||||||
@ -155,7 +154,7 @@ func (widget *Widget) fileName() string {
|
|||||||
func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
||||||
switch string(event.Rune()) {
|
switch string(event.Rune()) {
|
||||||
case "/":
|
case "/":
|
||||||
widget.showHelp()
|
widget.ShowHelp()
|
||||||
return nil
|
return nil
|
||||||
case "o":
|
case "o":
|
||||||
wtf.OpenFile(widget.filePath)
|
wtf.OpenFile(widget.filePath)
|
||||||
@ -164,16 +163,3 @@ func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
|||||||
|
|
||||||
return event
|
return event
|
||||||
}
|
}
|
||||||
|
|
||||||
func (widget *Widget) showHelp() {
|
|
||||||
closeFunc := func() {
|
|
||||||
widget.pages.RemovePage("help")
|
|
||||||
widget.app.SetFocus(widget.View)
|
|
||||||
}
|
|
||||||
|
|
||||||
modal := wtf.NewBillboardModal(HelpText, closeFunc)
|
|
||||||
|
|
||||||
widget.pages.AddPage("help", modal, false, true)
|
|
||||||
widget.app.SetFocus(modal)
|
|
||||||
widget.app.Draw()
|
|
||||||
}
|
|
||||||
|
@ -36,6 +36,7 @@ const modalWidth = 80
|
|||||||
const modalHeight = 7
|
const modalHeight = 7
|
||||||
|
|
||||||
type Widget struct {
|
type Widget struct {
|
||||||
|
wtf.HelpfulWidget
|
||||||
wtf.TextWidget
|
wtf.TextWidget
|
||||||
|
|
||||||
app *tview.Application
|
app *tview.Application
|
||||||
@ -46,6 +47,7 @@ type Widget struct {
|
|||||||
|
|
||||||
func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
|
func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
|
||||||
widget := Widget{
|
widget := Widget{
|
||||||
|
HelpfulWidget: wtf.NewHelpfulWidget(app, pages, HelpText),
|
||||||
TextWidget: wtf.NewTextWidget("Todo", "todo", true),
|
TextWidget: wtf.NewTextWidget("Todo", "todo", true),
|
||||||
|
|
||||||
app: app,
|
app: app,
|
||||||
@ -55,6 +57,8 @@ func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
widget.init()
|
widget.init()
|
||||||
|
widget.HelpfulWidget.SetView(widget.View)
|
||||||
|
|
||||||
widget.View.SetScrollable(true)
|
widget.View.SetScrollable(true)
|
||||||
widget.View.SetRegions(true)
|
widget.View.SetRegions(true)
|
||||||
widget.View.SetInputCapture(widget.keyboardIntercept)
|
widget.View.SetInputCapture(widget.keyboardIntercept)
|
||||||
@ -116,7 +120,7 @@ func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
|||||||
widget.display()
|
widget.display()
|
||||||
return nil
|
return nil
|
||||||
case "/":
|
case "/":
|
||||||
widget.showHelp()
|
widget.ShowHelp()
|
||||||
return nil
|
return nil
|
||||||
case "j":
|
case "j":
|
||||||
// Select the next item down
|
// Select the next item down
|
||||||
@ -222,19 +226,6 @@ func (widget *Widget) persist() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (widget *Widget) showHelp() {
|
|
||||||
closeFunc := func() {
|
|
||||||
widget.pages.RemovePage("help")
|
|
||||||
widget.app.SetFocus(widget.View)
|
|
||||||
}
|
|
||||||
|
|
||||||
modal := wtf.NewBillboardModal(HelpText, closeFunc)
|
|
||||||
|
|
||||||
widget.pages.AddPage("help", modal, false, true)
|
|
||||||
widget.app.SetFocus(modal)
|
|
||||||
widget.app.Draw()
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------- Modal Form -------------------- */
|
/* -------------------- Modal Form -------------------- */
|
||||||
|
|
||||||
func (widget *Widget) addButtons(form *tview.Form, saveFctn func()) {
|
func (widget *Widget) addButtons(form *tview.Form, saveFctn func()) {
|
||||||
|
@ -28,24 +28,23 @@ const HelpText = `
|
|||||||
`
|
`
|
||||||
|
|
||||||
type Widget struct {
|
type Widget struct {
|
||||||
|
wtf.HelpfulWidget
|
||||||
wtf.TextWidget
|
wtf.TextWidget
|
||||||
|
|
||||||
app *tview.Application
|
|
||||||
pages *tview.Pages
|
|
||||||
projects []*Project
|
projects []*Project
|
||||||
idx int
|
idx int
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
|
func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
|
||||||
widget := Widget{
|
widget := Widget{
|
||||||
|
HelpfulWidget: wtf.NewHelpfulWidget(app, pages, HelpText),
|
||||||
TextWidget: wtf.NewTextWidget("Todoist", "todoist", true),
|
TextWidget: wtf.NewTextWidget("Todoist", "todoist", true),
|
||||||
|
|
||||||
app: app,
|
|
||||||
pages: pages,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
widget.loadAPICredentials()
|
widget.loadAPICredentials()
|
||||||
widget.projects = loadProjects()
|
widget.projects = loadProjects()
|
||||||
|
|
||||||
|
widget.HelpfulWidget.SetView(widget.View)
|
||||||
widget.View.SetInputCapture(widget.keyboardIntercept)
|
widget.View.SetInputCapture(widget.keyboardIntercept)
|
||||||
|
|
||||||
return &widget
|
return &widget
|
||||||
@ -139,7 +138,7 @@ func (w *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
|||||||
|
|
||||||
switch string(event.Rune()) {
|
switch string(event.Rune()) {
|
||||||
case "/":
|
case "/":
|
||||||
w.showHelp()
|
w.ShowHelp()
|
||||||
return nil
|
return nil
|
||||||
case "r":
|
case "r":
|
||||||
w.Refresh()
|
w.Refresh()
|
||||||
@ -188,19 +187,6 @@ func loadProjects() []*Project {
|
|||||||
return projects
|
return projects
|
||||||
}
|
}
|
||||||
|
|
||||||
func (widget *Widget) showHelp() {
|
|
||||||
closeFunc := func() {
|
|
||||||
widget.pages.RemovePage("help")
|
|
||||||
widget.app.SetFocus(widget.View)
|
|
||||||
}
|
|
||||||
|
|
||||||
modal := wtf.NewBillboardModal(HelpText, closeFunc)
|
|
||||||
|
|
||||||
widget.pages.AddPage("help", modal, false, true)
|
|
||||||
widget.app.SetFocus(modal)
|
|
||||||
widget.app.Draw()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (w *Widget) vimBindings(event *tcell.EventKey) tcell.Key {
|
func (w *Widget) vimBindings(event *tcell.EventKey) tcell.Key {
|
||||||
switch string(event.Rune()) {
|
switch string(event.Rune()) {
|
||||||
case "h":
|
case "h":
|
||||||
|
@ -22,11 +22,9 @@ const HelpText = `
|
|||||||
|
|
||||||
// Widget is the container for weather data.
|
// Widget is the container for weather data.
|
||||||
type Widget struct {
|
type Widget struct {
|
||||||
|
wtf.HelpfulWidget
|
||||||
wtf.TextWidget
|
wtf.TextWidget
|
||||||
|
|
||||||
app *tview.Application
|
|
||||||
pages *tview.Pages
|
|
||||||
|
|
||||||
APIKey string
|
APIKey string
|
||||||
Data []*owm.CurrentWeatherData
|
Data []*owm.CurrentWeatherData
|
||||||
Idx int
|
Idx int
|
||||||
@ -36,16 +34,15 @@ type Widget struct {
|
|||||||
func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
|
func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
|
||||||
configKey := "weather"
|
configKey := "weather"
|
||||||
widget := Widget{
|
widget := Widget{
|
||||||
|
HelpfulWidget: wtf.NewHelpfulWidget(app, pages, HelpText),
|
||||||
TextWidget: wtf.NewTextWidget("Weather", configKey, true),
|
TextWidget: wtf.NewTextWidget("Weather", configKey, true),
|
||||||
|
|
||||||
app: app,
|
|
||||||
pages: pages,
|
|
||||||
|
|
||||||
Idx: 0,
|
Idx: 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
widget.loadAPICredentials()
|
widget.loadAPICredentials()
|
||||||
|
|
||||||
|
widget.HelpfulWidget.SetView(widget.View)
|
||||||
widget.View.SetInputCapture(widget.keyboardIntercept)
|
widget.View.SetInputCapture(widget.keyboardIntercept)
|
||||||
|
|
||||||
return &widget
|
return &widget
|
||||||
@ -160,7 +157,7 @@ func (widget *Widget) defaultCityCodes() []interface{} {
|
|||||||
func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
||||||
switch string(event.Rune()) {
|
switch string(event.Rune()) {
|
||||||
case "/":
|
case "/":
|
||||||
widget.showHelp()
|
widget.ShowHelp()
|
||||||
return nil
|
return nil
|
||||||
case "h":
|
case "h":
|
||||||
widget.Prev()
|
widget.Prev()
|
||||||
@ -190,15 +187,3 @@ func (widget *Widget) loadAPICredentials() {
|
|||||||
os.Getenv("WTF_OWM_API_KEY"),
|
os.Getenv("WTF_OWM_API_KEY"),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (widget *Widget) showHelp() {
|
|
||||||
closeFunc := func() {
|
|
||||||
widget.pages.RemovePage("help")
|
|
||||||
widget.app.SetFocus(widget.View)
|
|
||||||
}
|
|
||||||
|
|
||||||
modal := wtf.NewBillboardModal(HelpText, closeFunc)
|
|
||||||
|
|
||||||
widget.pages.AddPage("help", modal, false, true)
|
|
||||||
widget.app.SetFocus(modal)
|
|
||||||
}
|
|
||||||
|
39
wtf/helpful_widget.go
Normal file
39
wtf/helpful_widget.go
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
package wtf
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/rivo/tview"
|
||||||
|
)
|
||||||
|
|
||||||
|
type HelpfulWidget struct {
|
||||||
|
app *tview.Application
|
||||||
|
helpText string
|
||||||
|
pages *tview.Pages
|
||||||
|
view *tview.TextView
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewHelpfulWidget(app *tview.Application, pages *tview.Pages, helpText string) HelpfulWidget {
|
||||||
|
widget := HelpfulWidget{
|
||||||
|
app: app,
|
||||||
|
helpText: helpText,
|
||||||
|
pages: pages,
|
||||||
|
}
|
||||||
|
|
||||||
|
return widget
|
||||||
|
}
|
||||||
|
|
||||||
|
func (widget *HelpfulWidget) SetView(view *tview.TextView) {
|
||||||
|
widget.view = view
|
||||||
|
}
|
||||||
|
|
||||||
|
func (widget *HelpfulWidget) ShowHelp() {
|
||||||
|
closeFunc := func() {
|
||||||
|
widget.pages.RemovePage("help")
|
||||||
|
widget.app.SetFocus(widget.view)
|
||||||
|
}
|
||||||
|
|
||||||
|
modal := NewBillboardModal(widget.helpText, closeFunc)
|
||||||
|
|
||||||
|
widget.pages.AddPage("help", modal, false, true)
|
||||||
|
widget.app.SetFocus(modal)
|
||||||
|
widget.app.Draw()
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user