Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/base/browser/ui/widget.ts
3294 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import * as dom from '../dom.js';
7
import { IKeyboardEvent, StandardKeyboardEvent } from '../keyboardEvent.js';
8
import { IMouseEvent, StandardMouseEvent } from '../mouseEvent.js';
9
import { Gesture } from '../touch.js';
10
import { Disposable, IDisposable } from '../../common/lifecycle.js';
11
12
export abstract class Widget extends Disposable {
13
14
protected onclick(domNode: HTMLElement, listener: (e: IMouseEvent) => void): void {
15
this._register(dom.addDisposableListener(domNode, dom.EventType.CLICK, (e: MouseEvent) => listener(new StandardMouseEvent(dom.getWindow(domNode), e))));
16
}
17
18
protected onmousedown(domNode: HTMLElement, listener: (e: IMouseEvent) => void): void {
19
this._register(dom.addDisposableListener(domNode, dom.EventType.MOUSE_DOWN, (e: MouseEvent) => listener(new StandardMouseEvent(dom.getWindow(domNode), e))));
20
}
21
22
protected onmouseover(domNode: HTMLElement, listener: (e: IMouseEvent) => void): void {
23
this._register(dom.addDisposableListener(domNode, dom.EventType.MOUSE_OVER, (e: MouseEvent) => listener(new StandardMouseEvent(dom.getWindow(domNode), e))));
24
}
25
26
protected onmouseleave(domNode: HTMLElement, listener: (e: IMouseEvent) => void): void {
27
this._register(dom.addDisposableListener(domNode, dom.EventType.MOUSE_LEAVE, (e: MouseEvent) => listener(new StandardMouseEvent(dom.getWindow(domNode), e))));
28
}
29
30
protected onkeydown(domNode: HTMLElement, listener: (e: IKeyboardEvent) => void): void {
31
this._register(dom.addDisposableListener(domNode, dom.EventType.KEY_DOWN, (e: KeyboardEvent) => listener(new StandardKeyboardEvent(e))));
32
}
33
34
protected onkeyup(domNode: HTMLElement, listener: (e: IKeyboardEvent) => void): void {
35
this._register(dom.addDisposableListener(domNode, dom.EventType.KEY_UP, (e: KeyboardEvent) => listener(new StandardKeyboardEvent(e))));
36
}
37
38
protected oninput(domNode: HTMLElement, listener: (e: Event) => void): void {
39
this._register(dom.addDisposableListener(domNode, dom.EventType.INPUT, listener));
40
}
41
42
protected onblur(domNode: HTMLElement, listener: (e: Event) => void): void {
43
this._register(dom.addDisposableListener(domNode, dom.EventType.BLUR, listener));
44
}
45
46
protected onfocus(domNode: HTMLElement, listener: (e: Event) => void): void {
47
this._register(dom.addDisposableListener(domNode, dom.EventType.FOCUS, listener));
48
}
49
50
protected onchange(domNode: HTMLElement, listener: (e: Event) => void): void {
51
this._register(dom.addDisposableListener(domNode, dom.EventType.CHANGE, listener));
52
}
53
54
protected ignoreGesture(domNode: HTMLElement): IDisposable {
55
return Gesture.ignoreTarget(domNode);
56
}
57
}
58
59