From 7410acd1aaa97f678295a328264360802346b33a Mon Sep 17 00:00:00 2001 From: Jesse Duffield Date: Sat, 6 Aug 2022 18:50:52 +1000 Subject: move merge conflicts code into controller --- pkg/gui/controllers/vertical_scroll_controller.go | 70 +++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 pkg/gui/controllers/vertical_scroll_controller.go (limited to 'pkg/gui/controllers/vertical_scroll_controller.go') diff --git a/pkg/gui/controllers/vertical_scroll_controller.go b/pkg/gui/controllers/vertical_scroll_controller.go new file mode 100644 index 000000000..3f3e9d177 --- /dev/null +++ b/pkg/gui/controllers/vertical_scroll_controller.go @@ -0,0 +1,70 @@ +package controllers + +import ( + "github.com/jesseduffield/gocui" + "github.com/jesseduffield/lazygit/pkg/gui/types" +) + +// given we have no fields here, arguably we shouldn't even need this factory +// struct, but we're maintaining consistency with the other files. +type VerticalScrollControllerFactory struct { + controllerCommon *controllerCommon +} + +func NewVerticalScrollControllerFactory(c *controllerCommon) *VerticalScrollControllerFactory { + return &VerticalScrollControllerFactory{controllerCommon: c} +} + +func (self *VerticalScrollControllerFactory) Create(context types.Context) types.IController { + return &VerticalScrollController{ + baseController: baseController{}, + controllerCommon: self.controllerCommon, + context: context, + } +} + +type VerticalScrollController struct { + baseController + *controllerCommon + + context types.Context +} + +func (self *VerticalScrollController) Context() types.Context { + return self.context +} + +func (self *VerticalScrollController) GetKeybindings(opts types.KeybindingsOpts) []*types.Binding { + return []*types.Binding{} +} + +func (self *VerticalScrollController) GetMouseKeybindings(opts types.KeybindingsOpts) []*gocui.ViewMouseBinding { + return []*gocui.ViewMouseBinding{ + { + ViewName: self.context.GetViewName(), + Key: gocui.MouseWheelUp, + Handler: func(gocui.ViewMouseBindingOpts) error { + return self.HandleScrollUp() + }, + }, + { + ViewName: self.context.GetViewName(), + Key: gocui.MouseWheelDown, + Handler: func(gocui.ViewMouseBindingOpts) error { + return self.HandleScrollDown() + }, + }, + } +} + +func (self *VerticalScrollController) HandleScrollUp() error { + self.context.GetViewTrait().ScrollUp(self.c.UserConfig.Gui.ScrollHeight) + + return nil +} + +func (self *VerticalScrollController) HandleScrollDown() error { + self.context.GetViewTrait().ScrollDown(self.c.UserConfig.Gui.ScrollHeight) + + return nil +} -- cgit v1.2.3