A fork of https://github.com/ueokande/vim-vixen
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.4 KiB
52 lines
1.4 KiB
import { injectable, inject } from 'tsyringe'; |
|
import ScrollPresenter from '../presenters/ScrollPresenter'; |
|
import SettingRepository from '../repositories/SettingRepository'; |
|
|
|
@injectable() |
|
export default class ScrollUseCase { |
|
constructor( |
|
@inject('ScrollPresenter') private presenter: ScrollPresenter, |
|
@inject('SettingRepository') private settingRepository: SettingRepository, |
|
) { |
|
} |
|
|
|
scrollVertically(count: number): void { |
|
let smooth = this.getSmoothScroll(); |
|
this.presenter.scrollVertically(count, smooth); |
|
} |
|
|
|
scrollHorizonally(count: number): void { |
|
let smooth = this.getSmoothScroll(); |
|
this.presenter.scrollHorizonally(count, smooth); |
|
} |
|
|
|
scrollPages(count: number): void { |
|
let smooth = this.getSmoothScroll(); |
|
this.presenter.scrollPages(count, smooth); |
|
} |
|
|
|
scrollToTop(): void { |
|
let smooth = this.getSmoothScroll(); |
|
this.presenter.scrollToTop(smooth); |
|
} |
|
|
|
scrollToBottom(): void { |
|
let smooth = this.getSmoothScroll(); |
|
this.presenter.scrollToBottom(smooth); |
|
} |
|
|
|
scrollToHome(): void { |
|
let smooth = this.getSmoothScroll(); |
|
this.presenter.scrollToHome(smooth); |
|
} |
|
|
|
scrollToEnd(): void { |
|
let smooth = this.getSmoothScroll(); |
|
this.presenter.scrollToEnd(smooth); |
|
} |
|
|
|
private getSmoothScroll(): boolean { |
|
let settings = this.settingRepository.get(); |
|
return settings.properties.smoothscroll; |
|
} |
|
}
|
|
|