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.
59 lines
1.5 KiB
59 lines
1.5 KiB
6 years ago
|
import ScrollPresenter, { ScrollPresenterImpl }
|
||
|
from '../presenters/ScrollPresenter';
|
||
|
import SettingRepository, { SettingRepositoryImpl }
|
||
|
from '../repositories/SettingRepository';
|
||
|
|
||
|
export default class ScrollUseCase {
|
||
|
private presenter: ScrollPresenter;
|
||
|
|
||
|
private settingRepository: SettingRepository;
|
||
|
|
||
|
constructor({
|
||
|
presenter = new ScrollPresenterImpl(),
|
||
|
settingRepository = new SettingRepositoryImpl(),
|
||
|
} = {}) {
|
||
|
this.presenter = presenter;
|
||
|
this.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;
|
||
|
}
|
||
|
}
|