mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-11 10:38:31 -05:00
204 lines
5.0 KiB
TypeScript
204 lines
5.0 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import { Disposable } from 'vs/base/common/lifecycle';
|
|
import * as viewEvents from 'vs/editor/common/view/viewEvents';
|
|
|
|
export class ViewEventHandler extends Disposable {
|
|
|
|
private _shouldRender: boolean;
|
|
|
|
constructor() {
|
|
super();
|
|
this._shouldRender = true;
|
|
}
|
|
|
|
public shouldRender(): boolean {
|
|
return this._shouldRender;
|
|
}
|
|
|
|
public forceShouldRender(): void {
|
|
this._shouldRender = true;
|
|
}
|
|
|
|
protected setShouldRender(): void {
|
|
this._shouldRender = true;
|
|
}
|
|
|
|
public onDidRender(): void {
|
|
this._shouldRender = false;
|
|
}
|
|
|
|
// --- begin event handlers
|
|
|
|
public onConfigurationChanged(e: viewEvents.ViewConfigurationChangedEvent): boolean {
|
|
return false;
|
|
}
|
|
|
|
public onCursorStateChanged(e: viewEvents.ViewCursorStateChangedEvent): boolean {
|
|
return false;
|
|
}
|
|
public onDecorationsChanged(e: viewEvents.ViewDecorationsChangedEvent): boolean {
|
|
return false;
|
|
}
|
|
public onFlushed(e: viewEvents.ViewFlushedEvent): boolean {
|
|
return false;
|
|
}
|
|
public onFocusChanged(e: viewEvents.ViewFocusChangedEvent): boolean {
|
|
return false;
|
|
}
|
|
public onLanguageConfigurationChanged(e: viewEvents.ViewLanguageConfigurationEvent): boolean {
|
|
return false;
|
|
}
|
|
public onLineMappingChanged(e: viewEvents.ViewLineMappingChangedEvent): boolean {
|
|
return false;
|
|
}
|
|
public onLinesChanged(e: viewEvents.ViewLinesChangedEvent): boolean {
|
|
return false;
|
|
}
|
|
public onLinesDeleted(e: viewEvents.ViewLinesDeletedEvent): boolean {
|
|
return false;
|
|
}
|
|
public onLinesInserted(e: viewEvents.ViewLinesInsertedEvent): boolean {
|
|
return false;
|
|
}
|
|
public onRevealRangeRequest(e: viewEvents.ViewRevealRangeRequestEvent): boolean {
|
|
return false;
|
|
}
|
|
public onScrollChanged(e: viewEvents.ViewScrollChangedEvent): boolean {
|
|
return false;
|
|
}
|
|
public onThemeChanged(e: viewEvents.ViewThemeChangedEvent): boolean {
|
|
return false;
|
|
}
|
|
public onTokensChanged(e: viewEvents.ViewTokensChangedEvent): boolean {
|
|
return false;
|
|
}
|
|
public onTokensColorsChanged(e: viewEvents.ViewTokensColorsChangedEvent): boolean {
|
|
return false;
|
|
}
|
|
public onZonesChanged(e: viewEvents.ViewZonesChangedEvent): boolean {
|
|
return false;
|
|
}
|
|
|
|
// --- end event handlers
|
|
|
|
public handleEvents(events: viewEvents.ViewEvent[]): void {
|
|
|
|
let shouldRender = false;
|
|
|
|
for (let i = 0, len = events.length; i < len; i++) {
|
|
let e = events[i];
|
|
|
|
switch (e.type) {
|
|
|
|
case viewEvents.ViewEventType.ViewConfigurationChanged:
|
|
if (this.onConfigurationChanged(e)) {
|
|
shouldRender = true;
|
|
}
|
|
break;
|
|
|
|
case viewEvents.ViewEventType.ViewCursorStateChanged:
|
|
if (this.onCursorStateChanged(e)) {
|
|
shouldRender = true;
|
|
}
|
|
break;
|
|
|
|
case viewEvents.ViewEventType.ViewDecorationsChanged:
|
|
if (this.onDecorationsChanged(e)) {
|
|
shouldRender = true;
|
|
}
|
|
break;
|
|
|
|
case viewEvents.ViewEventType.ViewFlushed:
|
|
if (this.onFlushed(e)) {
|
|
shouldRender = true;
|
|
}
|
|
break;
|
|
|
|
case viewEvents.ViewEventType.ViewFocusChanged:
|
|
if (this.onFocusChanged(e)) {
|
|
shouldRender = true;
|
|
}
|
|
break;
|
|
|
|
case viewEvents.ViewEventType.ViewLanguageConfigurationChanged:
|
|
if (this.onLanguageConfigurationChanged(e)) {
|
|
shouldRender = true;
|
|
}
|
|
break;
|
|
|
|
case viewEvents.ViewEventType.ViewLineMappingChanged:
|
|
if (this.onLineMappingChanged(e)) {
|
|
shouldRender = true;
|
|
}
|
|
break;
|
|
|
|
case viewEvents.ViewEventType.ViewLinesChanged:
|
|
if (this.onLinesChanged(e)) {
|
|
shouldRender = true;
|
|
}
|
|
break;
|
|
|
|
case viewEvents.ViewEventType.ViewLinesDeleted:
|
|
if (this.onLinesDeleted(e)) {
|
|
shouldRender = true;
|
|
}
|
|
break;
|
|
|
|
case viewEvents.ViewEventType.ViewLinesInserted:
|
|
if (this.onLinesInserted(e)) {
|
|
shouldRender = true;
|
|
}
|
|
break;
|
|
|
|
case viewEvents.ViewEventType.ViewRevealRangeRequest:
|
|
if (this.onRevealRangeRequest(e)) {
|
|
shouldRender = true;
|
|
}
|
|
break;
|
|
|
|
case viewEvents.ViewEventType.ViewScrollChanged:
|
|
if (this.onScrollChanged(e)) {
|
|
shouldRender = true;
|
|
}
|
|
break;
|
|
|
|
case viewEvents.ViewEventType.ViewTokensChanged:
|
|
if (this.onTokensChanged(e)) {
|
|
shouldRender = true;
|
|
}
|
|
break;
|
|
|
|
case viewEvents.ViewEventType.ViewThemeChanged:
|
|
if (this.onThemeChanged(e)) {
|
|
shouldRender = true;
|
|
}
|
|
break;
|
|
|
|
case viewEvents.ViewEventType.ViewTokensColorsChanged:
|
|
if (this.onTokensColorsChanged(e)) {
|
|
shouldRender = true;
|
|
}
|
|
break;
|
|
|
|
case viewEvents.ViewEventType.ViewZonesChanged:
|
|
if (this.onZonesChanged(e)) {
|
|
shouldRender = true;
|
|
}
|
|
break;
|
|
|
|
default:
|
|
console.info('View received unknown event: ');
|
|
console.info(e);
|
|
}
|
|
}
|
|
|
|
if (shouldRender) {
|
|
this._shouldRender = true;
|
|
}
|
|
}
|
|
}
|