123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- /*---------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for license information.
- *--------------------------------------------------------------------------------------------*/
- import { Disposable } from '../../../base/common/lifecycle.js';
- export class ViewEventHandler extends Disposable {
- constructor() {
- super();
- this._shouldRender = true;
- }
- shouldRender() {
- return this._shouldRender;
- }
- forceShouldRender() {
- this._shouldRender = true;
- }
- setShouldRender() {
- this._shouldRender = true;
- }
- onDidRender() {
- this._shouldRender = false;
- }
- // --- begin event handlers
- onCompositionStart(e) {
- return false;
- }
- onCompositionEnd(e) {
- return false;
- }
- onConfigurationChanged(e) {
- return false;
- }
- onCursorStateChanged(e) {
- return false;
- }
- onDecorationsChanged(e) {
- return false;
- }
- onFlushed(e) {
- return false;
- }
- onFocusChanged(e) {
- return false;
- }
- onLanguageConfigurationChanged(e) {
- return false;
- }
- onLineMappingChanged(e) {
- return false;
- }
- onLinesChanged(e) {
- return false;
- }
- onLinesDeleted(e) {
- return false;
- }
- onLinesInserted(e) {
- return false;
- }
- onRevealRangeRequest(e) {
- return false;
- }
- onScrollChanged(e) {
- return false;
- }
- onThemeChanged(e) {
- return false;
- }
- onTokensChanged(e) {
- return false;
- }
- onTokensColorsChanged(e) {
- return false;
- }
- onZonesChanged(e) {
- return false;
- }
- // --- end event handlers
- handleEvents(events) {
- let shouldRender = false;
- for (let i = 0, len = events.length; i < len; i++) {
- let e = events[i];
- switch (e.type) {
- case 0 /* ViewCompositionStart */:
- if (this.onCompositionStart(e)) {
- shouldRender = true;
- }
- break;
- case 1 /* ViewCompositionEnd */:
- if (this.onCompositionEnd(e)) {
- shouldRender = true;
- }
- break;
- case 2 /* ViewConfigurationChanged */:
- if (this.onConfigurationChanged(e)) {
- shouldRender = true;
- }
- break;
- case 3 /* ViewCursorStateChanged */:
- if (this.onCursorStateChanged(e)) {
- shouldRender = true;
- }
- break;
- case 4 /* ViewDecorationsChanged */:
- if (this.onDecorationsChanged(e)) {
- shouldRender = true;
- }
- break;
- case 5 /* ViewFlushed */:
- if (this.onFlushed(e)) {
- shouldRender = true;
- }
- break;
- case 6 /* ViewFocusChanged */:
- if (this.onFocusChanged(e)) {
- shouldRender = true;
- }
- break;
- case 7 /* ViewLanguageConfigurationChanged */:
- if (this.onLanguageConfigurationChanged(e)) {
- shouldRender = true;
- }
- break;
- case 8 /* ViewLineMappingChanged */:
- if (this.onLineMappingChanged(e)) {
- shouldRender = true;
- }
- break;
- case 9 /* ViewLinesChanged */:
- if (this.onLinesChanged(e)) {
- shouldRender = true;
- }
- break;
- case 10 /* ViewLinesDeleted */:
- if (this.onLinesDeleted(e)) {
- shouldRender = true;
- }
- break;
- case 11 /* ViewLinesInserted */:
- if (this.onLinesInserted(e)) {
- shouldRender = true;
- }
- break;
- case 12 /* ViewRevealRangeRequest */:
- if (this.onRevealRangeRequest(e)) {
- shouldRender = true;
- }
- break;
- case 13 /* ViewScrollChanged */:
- if (this.onScrollChanged(e)) {
- shouldRender = true;
- }
- break;
- case 15 /* ViewTokensChanged */:
- if (this.onTokensChanged(e)) {
- shouldRender = true;
- }
- break;
- case 14 /* ViewThemeChanged */:
- if (this.onThemeChanged(e)) {
- shouldRender = true;
- }
- break;
- case 16 /* ViewTokensColorsChanged */:
- if (this.onTokensColorsChanged(e)) {
- shouldRender = true;
- }
- break;
- case 17 /* ViewZonesChanged */:
- if (this.onZonesChanged(e)) {
- shouldRender = true;
- }
- break;
- default:
- console.info('View received unknown event: ');
- console.info(e);
- }
- }
- if (shouldRender) {
- this._shouldRender = true;
- }
- }
- }
|