1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2024-12-12 11:15:00 +02:00
lazygit/pkg/gui/context/simple_context.go

74 lines
1.6 KiB
Go
Raw Normal View History

2022-02-05 08:04:10 +02:00
package context
import (
"github.com/jesseduffield/lazygit/pkg/gui/types"
)
2022-01-29 10:09:20 +02:00
type SimpleContext struct {
OnFocus func(opts ...types.OnFocusOpts) error
OnFocusLost func() error
OnRender func() error
// this is for pushing some content to the main view
2022-01-29 10:09:20 +02:00
OnRenderToMain func(opts ...types.OnFocusOpts) error
2022-02-05 08:04:10 +02:00
*BaseContext
}
2022-02-05 08:04:10 +02:00
type ContextCallbackOpts struct {
2022-01-29 10:09:20 +02:00
OnFocus func(opts ...types.OnFocusOpts) error
OnFocusLost func() error
OnRender func() error
// this is for pushing some content to the main view
OnRenderToMain func(opts ...types.OnFocusOpts) error
}
2022-02-05 08:04:10 +02:00
func NewSimpleContext(baseContext *BaseContext, opts ContextCallbackOpts) *SimpleContext {
2022-01-29 10:09:20 +02:00
return &SimpleContext{
OnFocus: opts.OnFocus,
OnFocusLost: opts.OnFocusLost,
OnRender: opts.OnRender,
OnRenderToMain: opts.OnRenderToMain,
BaseContext: baseContext,
}
}
2022-01-29 10:09:20 +02:00
var _ types.Context = &SimpleContext{}
func (self *SimpleContext) HandleFocus(opts ...types.OnFocusOpts) error {
if self.OnFocus != nil {
if err := self.OnFocus(opts...); err != nil {
return err
}
}
if self.OnRenderToMain != nil {
if err := self.OnRenderToMain(opts...); err != nil {
return err
}
}
return nil
}
2022-01-29 10:09:20 +02:00
func (self *SimpleContext) HandleFocusLost() error {
if self.OnFocusLost != nil {
return self.OnFocusLost()
}
return nil
}
2022-02-05 08:04:10 +02:00
func (self *SimpleContext) HandleRender() error {
if self.OnRender != nil {
return self.OnRender()
}
return nil
}
2022-01-29 10:09:20 +02:00
func (self *SimpleContext) HandleRenderToMain() error {
if self.OnRenderToMain != nil {
return self.OnRenderToMain()
}
return nil
}