dock-spawn-ts 2.525.0 → 2.526.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/es5/dock-spawn-ts.js +1 -1
- package/lib/js/Dialog.d.ts +9 -2
- package/lib/js/Dialog.js +62 -8
- package/lib/js/Dialog.js.map +1 -1
- package/lib/js/DraggableContainer.d.ts +3 -5
- package/lib/js/DraggableContainer.js +10 -61
- package/lib/js/DraggableContainer.js.map +1 -1
- package/lib/js/i18n/Defaults.d.ts +1 -0
- package/lib/js/i18n/Defaults.js +1 -0
- package/lib/js/i18n/Defaults.js.map +1 -1
- package/package.json +1 -1
- package/src/Dialog.ts +71 -9
- package/src/DraggableContainer.ts +14 -69
- package/src/i18n/Defaults.ts +1 -0
package/lib/js/Dialog.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { PanelContainer } from "./PanelContainer.js";
|
|
|
4
4
|
import { DraggableContainer } from "./DraggableContainer.js";
|
|
5
5
|
import { ResizableContainer } from "./ResizableContainer.js";
|
|
6
6
|
import { EventHandler } from "./EventHandler.js";
|
|
7
|
+
import { DockNode } from "./DockNode.js";
|
|
7
8
|
export declare class Dialog {
|
|
8
9
|
elementDialog: HTMLDivElement & {
|
|
9
10
|
floatingDialog: Dialog;
|
|
@@ -16,13 +17,15 @@ export declare class Dialog {
|
|
|
16
17
|
resizable: ResizableContainer;
|
|
17
18
|
disableResize: boolean;
|
|
18
19
|
mouseDownHandler: any;
|
|
19
|
-
touchDownHandler: any;
|
|
20
20
|
onKeyPressBound: any;
|
|
21
21
|
noDocking: boolean;
|
|
22
22
|
isHidden: boolean;
|
|
23
23
|
keyPressHandler: EventHandler;
|
|
24
24
|
focusHandler: EventHandler;
|
|
25
25
|
grayoutParent: PanelContainer;
|
|
26
|
+
contextmenuHandler: EventHandler;
|
|
27
|
+
_ctxMenu: HTMLDivElement;
|
|
28
|
+
_windowsContextMenuCloseBound: any;
|
|
26
29
|
constructor(panel: PanelContainer, dockManager: DockManager, grayoutParent?: PanelContainer, disableResize?: boolean);
|
|
27
30
|
saveState(x: number, y: number): void;
|
|
28
31
|
static fromElement(id: string, dockManager: DockManager): Dialog;
|
|
@@ -30,7 +33,7 @@ export declare class Dialog {
|
|
|
30
33
|
setPosition(x: number, y: number): void;
|
|
31
34
|
getPosition(): Point;
|
|
32
35
|
onFocus(): void;
|
|
33
|
-
onMouseDown(): void;
|
|
36
|
+
onMouseDown(e: PointerEvent): void;
|
|
34
37
|
destroy(): void;
|
|
35
38
|
resize(width: number, height: number): void;
|
|
36
39
|
setTitle(title: string): void;
|
|
@@ -40,4 +43,8 @@ export declare class Dialog {
|
|
|
40
43
|
close(): void;
|
|
41
44
|
remove(): void;
|
|
42
45
|
show(): void;
|
|
46
|
+
static createContextMenuContentCallback: (dialog: Dialog, contextMenuContainer: HTMLDivElement, documentMangerNodes: DockNode[]) => boolean;
|
|
47
|
+
oncontextMenuClicked(e: MouseEvent): void;
|
|
48
|
+
closeContextMenu(): void;
|
|
49
|
+
windowsContextMenuClose(e: Event): void;
|
|
43
50
|
}
|
package/lib/js/Dialog.js
CHANGED
|
@@ -4,6 +4,7 @@ import { DraggableContainer } from "./DraggableContainer.js";
|
|
|
4
4
|
import { ResizableContainer } from "./ResizableContainer.js";
|
|
5
5
|
import { EventHandler } from "./EventHandler.js";
|
|
6
6
|
import { Utils } from "./Utils.js";
|
|
7
|
+
import { Localizer } from "./i18n/Localizer.js";
|
|
7
8
|
export class Dialog {
|
|
8
9
|
constructor(panel, dockManager, grayoutParent, disableResize) {
|
|
9
10
|
this.panel = panel;
|
|
@@ -34,9 +35,9 @@ export class Dialog {
|
|
|
34
35
|
this.dockManager.config.dialogRootElement.appendChild(this.elementDialog);
|
|
35
36
|
this.elementDialog.classList.add('dialog-floating');
|
|
36
37
|
this.focusHandler = new EventHandler(this.elementDialog, 'focus', this.onFocus.bind(this), true);
|
|
37
|
-
this.mouseDownHandler = new EventHandler(this.elementDialog, '
|
|
38
|
-
this.touchDownHandler = new EventHandler(this.elementDialog, 'touchstart', this.onMouseDown.bind(this));
|
|
38
|
+
this.mouseDownHandler = new EventHandler(this.elementDialog, 'pointerdown', this.onMouseDown.bind(this), true);
|
|
39
39
|
this.keyPressHandler = new EventHandler(this.elementDialog, 'keypress', this.dockManager.onKeyPressBound, true);
|
|
40
|
+
this.contextmenuHandler = new EventHandler(this.panel.elementTitle, 'contextmenu', this.oncontextMenuClicked.bind(this));
|
|
40
41
|
this.resize(this.panel.elementPanel.clientWidth, this.panel.elementPanel.clientHeight);
|
|
41
42
|
this.isHidden = false;
|
|
42
43
|
if (this.grayoutParent != null) {
|
|
@@ -59,8 +60,9 @@ export class Dialog {
|
|
|
59
60
|
if (this.dockManager.activePanel != this.panel)
|
|
60
61
|
this.dockManager.activePanel = this.panel;
|
|
61
62
|
}
|
|
62
|
-
onMouseDown() {
|
|
63
|
-
|
|
63
|
+
onMouseDown(e) {
|
|
64
|
+
if (e.button != 2)
|
|
65
|
+
this.bringToFront();
|
|
64
66
|
}
|
|
65
67
|
destroy() {
|
|
66
68
|
this.panel.lastDialogSize = { width: this.resizable.width, height: this.resizable.height };
|
|
@@ -72,14 +74,14 @@ export class Dialog {
|
|
|
72
74
|
this.mouseDownHandler.cancel();
|
|
73
75
|
delete this.mouseDownHandler;
|
|
74
76
|
}
|
|
75
|
-
if (this.touchDownHandler) {
|
|
76
|
-
this.touchDownHandler.cancel();
|
|
77
|
-
delete this.touchDownHandler;
|
|
78
|
-
}
|
|
79
77
|
if (this.keyPressHandler) {
|
|
80
78
|
this.keyPressHandler.cancel();
|
|
81
79
|
delete this.keyPressHandler;
|
|
82
80
|
}
|
|
81
|
+
if (this.contextmenuHandler) {
|
|
82
|
+
this.contextmenuHandler.cancel();
|
|
83
|
+
delete this.contextmenuHandler;
|
|
84
|
+
}
|
|
83
85
|
Utils.removeNode(this.elementDialog);
|
|
84
86
|
this.draggable.removeDecorator();
|
|
85
87
|
Utils.removeNode(this.panel.elementPanel);
|
|
@@ -133,5 +135,57 @@ export class Dialog {
|
|
|
133
135
|
this.dockManager.notifyOnShowDialog(this);
|
|
134
136
|
}
|
|
135
137
|
}
|
|
138
|
+
oncontextMenuClicked(e) {
|
|
139
|
+
e.preventDefault();
|
|
140
|
+
if (!this._ctxMenu && Dialog.createContextMenuContentCallback) {
|
|
141
|
+
this._ctxMenu = document.createElement('div');
|
|
142
|
+
this._ctxMenu.className = 'dockspab-tab-handle-context-menu';
|
|
143
|
+
let res = Dialog.createContextMenuContentCallback(this, this._ctxMenu, this.dockManager.context.model.documentManagerNode.children);
|
|
144
|
+
if (res !== false) {
|
|
145
|
+
this._ctxMenu.style.left = e.pageX + "px";
|
|
146
|
+
this._ctxMenu.style.top = e.pageY + "px";
|
|
147
|
+
document.body.appendChild(this._ctxMenu);
|
|
148
|
+
this._windowsContextMenuCloseBound = this.windowsContextMenuClose.bind(this);
|
|
149
|
+
window.addEventListener('pointerup', this._windowsContextMenuCloseBound);
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
this._ctxMenu = null;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
this.closeContextMenu();
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
closeContextMenu() {
|
|
160
|
+
if (this._ctxMenu) {
|
|
161
|
+
document.body.removeChild(this._ctxMenu);
|
|
162
|
+
delete this._ctxMenu;
|
|
163
|
+
window.removeEventListener('pointerup', this._windowsContextMenuCloseBound);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
windowsContextMenuClose(e) {
|
|
167
|
+
let cp = e.composedPath();
|
|
168
|
+
for (let i in cp) {
|
|
169
|
+
let el = cp[i];
|
|
170
|
+
if (el == this._ctxMenu)
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
this.closeContextMenu();
|
|
174
|
+
}
|
|
136
175
|
}
|
|
176
|
+
Dialog.createContextMenuContentCallback = (dialog, contextMenuContainer, documentMangerNodes) => {
|
|
177
|
+
if (!dialog.panel._hideCloseButton) {
|
|
178
|
+
let btnCloseDialog = document.createElement('div');
|
|
179
|
+
btnCloseDialog.innerText = Localizer.getString('CloseDialog');
|
|
180
|
+
contextMenuContainer.append(btnCloseDialog);
|
|
181
|
+
btnCloseDialog.onclick = () => {
|
|
182
|
+
dialog.panel.close();
|
|
183
|
+
dialog.closeContextMenu();
|
|
184
|
+
};
|
|
185
|
+
return true;
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
};
|
|
137
191
|
//# sourceMappingURL=Dialog.js.map
|
package/lib/js/Dialog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.js","sourceRoot":"","sources":["../../src/Dialog.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Dialog.js","sourceRoot":"","sources":["../../src/Dialog.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,9 +20,7 @@ export declare class DraggableContainer implements IDockContainer {
|
|
|
20
20
|
y: any;
|
|
21
21
|
};
|
|
22
22
|
mouseMoveHandler: EventHandler;
|
|
23
|
-
touchMoveHandler: EventHandler;
|
|
24
23
|
mouseUpHandler: EventHandler;
|
|
25
|
-
touchUpHandler: EventHandler;
|
|
26
24
|
private iframeEventHandlers;
|
|
27
25
|
constructor(dialog: Dialog, delegate: PanelContainer, topLevelElement: HTMLElement, dragHandle: HTMLElement);
|
|
28
26
|
destroy(): void;
|
|
@@ -36,15 +34,15 @@ export declare class DraggableContainer implements IDockContainer {
|
|
|
36
34
|
resize(width: number, height: number): void;
|
|
37
35
|
performLayout(children: IDockContainer[]): void;
|
|
38
36
|
removeDecorator(): void;
|
|
39
|
-
onMouseDown(event:
|
|
37
|
+
onMouseDown(event: PointerEvent): void;
|
|
40
38
|
onMouseUp(event: any): void;
|
|
41
39
|
_startDragging(event: {
|
|
42
40
|
clientX: number;
|
|
43
41
|
clientY: number;
|
|
44
42
|
}): void;
|
|
45
43
|
_stopDragging(event: any): void;
|
|
46
|
-
onMouseMovedIframe(e:
|
|
47
|
-
onMouseMove(event:
|
|
44
|
+
onMouseMovedIframe(e: PointerEvent, iframe: HTMLIFrameElement): void;
|
|
45
|
+
onMouseMove(event: PointerEvent, iframeOffset?: {
|
|
48
46
|
x: number;
|
|
49
47
|
y: number;
|
|
50
48
|
}): void;
|
|
@@ -58,46 +58,27 @@ export class DraggableContainer {
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
onMouseDown(event) {
|
|
61
|
+
if (event.button == 2)
|
|
62
|
+
return;
|
|
61
63
|
if (event.preventDefault)
|
|
62
64
|
event.preventDefault();
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
if (event.touches.length > 1)
|
|
66
|
-
return;
|
|
67
|
-
touchOrMouseData = event.touches[0];
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
touchOrMouseData = event;
|
|
71
|
-
}
|
|
72
|
-
this._startDragging(touchOrMouseData);
|
|
73
|
-
this.previousMousePosition = { x: touchOrMouseData.clientX, y: touchOrMouseData.clientY };
|
|
65
|
+
this._startDragging(event);
|
|
66
|
+
this.previousMousePosition = { x: event.clientX, y: event.clientY };
|
|
74
67
|
if (this.mouseMoveHandler) {
|
|
75
68
|
this.mouseMoveHandler.cancel();
|
|
76
69
|
delete this.mouseMoveHandler;
|
|
77
70
|
}
|
|
78
|
-
if (this.touchMoveHandler) {
|
|
79
|
-
this.touchMoveHandler.cancel();
|
|
80
|
-
delete this.touchMoveHandler;
|
|
81
|
-
}
|
|
82
71
|
if (this.mouseUpHandler) {
|
|
83
72
|
this.mouseUpHandler.cancel();
|
|
84
73
|
delete this.mouseUpHandler;
|
|
85
74
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
delete this.touchUpHandler;
|
|
89
|
-
}
|
|
90
|
-
this.mouseMoveHandler = new EventHandler(window, 'mousemove', this.onMouseMove.bind(this));
|
|
91
|
-
this.touchMoveHandler = new EventHandler(event.target, 'touchmove', this.onMouseMove.bind(this), { passive: false });
|
|
92
|
-
this.mouseUpHandler = new EventHandler(window, 'mouseup', this.onMouseUp.bind(this));
|
|
93
|
-
this.touchUpHandler = new EventHandler(event.target, 'touchend', this.onMouseUp.bind(this));
|
|
75
|
+
this.mouseMoveHandler = new EventHandler(window, 'pointermove', this.onMouseMove.bind(this));
|
|
76
|
+
this.mouseUpHandler = new EventHandler(window, 'pointerup', this.onMouseUp.bind(this));
|
|
94
77
|
if (this.dockManager.iframes) {
|
|
95
78
|
for (let f of this.dockManager.iframes) {
|
|
96
79
|
let mmi = this.onMouseMovedIframe.bind(this);
|
|
97
|
-
this.iframeEventHandlers.push(new EventHandler(f.contentWindow, '
|
|
98
|
-
this.iframeEventHandlers.push(new EventHandler(f.contentWindow, '
|
|
99
|
-
this.iframeEventHandlers.push(new EventHandler(f.contentWindow, 'touchmove', (e) => mmi(e, f)));
|
|
100
|
-
this.iframeEventHandlers.push(new EventHandler(f.contentWindow, 'touchend', this.onMouseUp.bind(this)));
|
|
80
|
+
this.iframeEventHandlers.push(new EventHandler(f.contentWindow, 'pointermove', (e) => mmi(e, f)));
|
|
81
|
+
this.iframeEventHandlers.push(new EventHandler(f.contentWindow, 'pointerup', this.onMouseUp.bind(this)));
|
|
101
82
|
}
|
|
102
83
|
}
|
|
103
84
|
}
|
|
@@ -105,12 +86,8 @@ export class DraggableContainer {
|
|
|
105
86
|
this._stopDragging(event);
|
|
106
87
|
this.mouseMoveHandler.cancel();
|
|
107
88
|
delete this.mouseMoveHandler;
|
|
108
|
-
this.touchMoveHandler.cancel();
|
|
109
|
-
delete this.touchMoveHandler;
|
|
110
89
|
this.mouseUpHandler.cancel();
|
|
111
90
|
delete this.mouseUpHandler;
|
|
112
|
-
this.touchUpHandler.cancel();
|
|
113
|
-
delete this.touchUpHandler;
|
|
114
91
|
for (let e of this.iframeEventHandlers) {
|
|
115
92
|
e.cancel();
|
|
116
93
|
}
|
|
@@ -137,37 +114,9 @@ export class DraggableContainer {
|
|
|
137
114
|
onMouseMove(event, iframeOffset) {
|
|
138
115
|
if (event.preventDefault)
|
|
139
116
|
event.preventDefault();
|
|
140
|
-
let
|
|
141
|
-
if (event.touches != null) {
|
|
142
|
-
if (event.touches.length > 1)
|
|
143
|
-
return;
|
|
144
|
-
for (let w in this.dockManager.dockWheel.wheelItems) {
|
|
145
|
-
let item = this.dockManager.dockWheel.wheelItems[w];
|
|
146
|
-
let offset = item.element.getBoundingClientRect();
|
|
147
|
-
if (event.touches[0].clientX > (offset.left - br.left) &&
|
|
148
|
-
event.touches[0].clientX < (offset.left + item.element.clientWidth - br.left) &&
|
|
149
|
-
event.touches[0].clientY > (offset.top - br.top) &&
|
|
150
|
-
event.touches[0].clientY < (offset.top + item.element.clientHeight - br.top)) {
|
|
151
|
-
item.onMouseMoved();
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
if (item.active)
|
|
155
|
-
item.onMouseOut();
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
let touchOrMouseData = null;
|
|
160
|
-
if (event.changedTouches) {
|
|
161
|
-
if (event.changedTouches.length > 1)
|
|
162
|
-
return;
|
|
163
|
-
touchOrMouseData = event.changedTouches[0];
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
touchOrMouseData = event;
|
|
167
|
-
}
|
|
168
|
-
let currentMousePosition = new Point(touchOrMouseData.clientX, touchOrMouseData.clientY);
|
|
117
|
+
let currentMousePosition = new Point(event.clientX, event.clientY);
|
|
169
118
|
if (iframeOffset)
|
|
170
|
-
currentMousePosition = new Point(
|
|
119
|
+
currentMousePosition = new Point(event.clientX + iframeOffset.x, event.clientY + iframeOffset.y);
|
|
171
120
|
let dx = this.dockManager.checkXBounds(this.topLevelElement, currentMousePosition, this.previousMousePosition, false, false);
|
|
172
121
|
let dy = this.dockManager.checkYBounds(this.topLevelElement, currentMousePosition, this.previousMousePosition, false, false);
|
|
173
122
|
this._performDrag(dx, dy);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DraggableContainer.js","sourceRoot":"","sources":["../../src/DraggableContainer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"DraggableContainer.js","sourceRoot":"","sources":["../../src/DraggableContainer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export type TranslationKey = keyof typeof Defaults;
|
|
2
2
|
export type GetLocalizerParameters<K extends TranslationKey> = K extends keyof LocalizerParameters ? LocalizerParameters[K] : [];
|
|
3
3
|
export declare const Defaults: {
|
|
4
|
+
CloseDialog: string;
|
|
4
5
|
CloseAll: string;
|
|
5
6
|
CloseAllButThis: string;
|
|
6
7
|
DefaultPanelName: string;
|
package/lib/js/i18n/Defaults.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Defaults.js","sourceRoot":"","sources":["../../../src/i18n/Defaults.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACpB,UAAU,EAAE,qBAAqB;IACjC,iBAAiB,EAAE,8BAA8B;IACjD,kBAAkB,EAAE,OAAO;IAC3B,sCAAsC;IACtC,mCAAmC;CACtC,CAAC"}
|
|
1
|
+
{"version":3,"file":"Defaults.js","sourceRoot":"","sources":["../../../src/i18n/Defaults.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACpB,aAAa,EAAE,cAAc;IAC7B,UAAU,EAAE,qBAAqB;IACjC,iBAAiB,EAAE,8BAA8B;IACjD,kBAAkB,EAAE,OAAO;IAC3B,sCAAsC;IACtC,mCAAmC;CACtC,CAAC"}
|
package/package.json
CHANGED
package/src/Dialog.ts
CHANGED
|
@@ -5,6 +5,8 @@ import { DraggableContainer } from "./DraggableContainer.js";
|
|
|
5
5
|
import { ResizableContainer } from "./ResizableContainer.js";
|
|
6
6
|
import { EventHandler } from "./EventHandler.js";
|
|
7
7
|
import { Utils } from "./Utils.js";
|
|
8
|
+
import { Localizer } from "./i18n/Localizer.js";
|
|
9
|
+
import { DockNode } from "./DockNode.js";
|
|
8
10
|
|
|
9
11
|
export class Dialog {
|
|
10
12
|
elementDialog: HTMLDivElement & { floatingDialog: Dialog };
|
|
@@ -16,13 +18,15 @@ export class Dialog {
|
|
|
16
18
|
resizable: ResizableContainer;
|
|
17
19
|
disableResize: boolean;
|
|
18
20
|
mouseDownHandler: any;
|
|
19
|
-
touchDownHandler: any;
|
|
20
21
|
onKeyPressBound: any;
|
|
21
22
|
noDocking: boolean;
|
|
22
23
|
isHidden: boolean;
|
|
23
24
|
keyPressHandler: EventHandler;
|
|
24
25
|
focusHandler: EventHandler;
|
|
25
26
|
grayoutParent: PanelContainer;
|
|
27
|
+
contextmenuHandler: EventHandler;
|
|
28
|
+
_ctxMenu: HTMLDivElement;
|
|
29
|
+
_windowsContextMenuCloseBound: any;
|
|
26
30
|
|
|
27
31
|
constructor(panel: PanelContainer, dockManager: DockManager, grayoutParent?: PanelContainer, disableResize?: boolean) {
|
|
28
32
|
this.panel = panel;
|
|
@@ -58,9 +62,10 @@ export class Dialog {
|
|
|
58
62
|
this.elementDialog.classList.add('dialog-floating');
|
|
59
63
|
|
|
60
64
|
this.focusHandler = new EventHandler(this.elementDialog, 'focus', this.onFocus.bind(this), true);
|
|
61
|
-
this.mouseDownHandler = new EventHandler(this.elementDialog, '
|
|
62
|
-
this.touchDownHandler = new EventHandler(this.elementDialog, 'touchstart', this.onMouseDown.bind(this));
|
|
65
|
+
this.mouseDownHandler = new EventHandler(this.elementDialog, 'pointerdown', this.onMouseDown.bind(this), true);
|
|
63
66
|
this.keyPressHandler = new EventHandler(this.elementDialog, 'keypress', this.dockManager.onKeyPressBound, true);
|
|
67
|
+
this.contextmenuHandler = new EventHandler(this.panel.elementTitle, 'contextmenu', this.oncontextMenuClicked.bind(this));
|
|
68
|
+
|
|
64
69
|
this.resize(this.panel.elementPanel.clientWidth, this.panel.elementPanel.clientHeight);
|
|
65
70
|
this.isHidden = false;
|
|
66
71
|
|
|
@@ -88,8 +93,9 @@ export class Dialog {
|
|
|
88
93
|
this.dockManager.activePanel = this.panel;
|
|
89
94
|
}
|
|
90
95
|
|
|
91
|
-
onMouseDown() {
|
|
92
|
-
|
|
96
|
+
onMouseDown(e: PointerEvent) {
|
|
97
|
+
if (e.button != 2)
|
|
98
|
+
this.bringToFront();
|
|
93
99
|
}
|
|
94
100
|
|
|
95
101
|
destroy() {
|
|
@@ -103,14 +109,14 @@ export class Dialog {
|
|
|
103
109
|
this.mouseDownHandler.cancel();
|
|
104
110
|
delete this.mouseDownHandler;
|
|
105
111
|
}
|
|
106
|
-
if (this.touchDownHandler) {
|
|
107
|
-
this.touchDownHandler.cancel();
|
|
108
|
-
delete this.touchDownHandler;
|
|
109
|
-
}
|
|
110
112
|
if (this.keyPressHandler) {
|
|
111
113
|
this.keyPressHandler.cancel();
|
|
112
114
|
delete this.keyPressHandler;
|
|
113
115
|
}
|
|
116
|
+
if (this.contextmenuHandler) {
|
|
117
|
+
this.contextmenuHandler.cancel();
|
|
118
|
+
delete this.contextmenuHandler;
|
|
119
|
+
}
|
|
114
120
|
Utils.removeNode(this.elementDialog);
|
|
115
121
|
this.draggable.removeDecorator();
|
|
116
122
|
Utils.removeNode(this.panel.elementPanel);
|
|
@@ -173,4 +179,60 @@ export class Dialog {
|
|
|
173
179
|
this.dockManager.notifyOnShowDialog(this);
|
|
174
180
|
}
|
|
175
181
|
}
|
|
182
|
+
|
|
183
|
+
static createContextMenuContentCallback = (dialog: Dialog, contextMenuContainer: HTMLDivElement, documentMangerNodes: DockNode[]) => {
|
|
184
|
+
if (!dialog.panel._hideCloseButton) {
|
|
185
|
+
let btnCloseDialog = document.createElement('div');
|
|
186
|
+
btnCloseDialog.innerText = Localizer.getString('CloseDialog');
|
|
187
|
+
contextMenuContainer.append(btnCloseDialog);
|
|
188
|
+
|
|
189
|
+
btnCloseDialog.onclick = () => {
|
|
190
|
+
dialog.panel.close();
|
|
191
|
+
dialog.closeContextMenu();
|
|
192
|
+
};
|
|
193
|
+
return true;
|
|
194
|
+
} else {
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
oncontextMenuClicked(e: MouseEvent) {
|
|
200
|
+
e.preventDefault();
|
|
201
|
+
|
|
202
|
+
if (!this._ctxMenu && Dialog.createContextMenuContentCallback) {
|
|
203
|
+
this._ctxMenu = document.createElement('div');
|
|
204
|
+
this._ctxMenu.className = 'dockspab-tab-handle-context-menu';
|
|
205
|
+
|
|
206
|
+
let res = Dialog.createContextMenuContentCallback(this, this._ctxMenu, this.dockManager.context.model.documentManagerNode.children);
|
|
207
|
+
if (res !== false) {
|
|
208
|
+
this._ctxMenu.style.left = e.pageX + "px";
|
|
209
|
+
this._ctxMenu.style.top = e.pageY + "px";
|
|
210
|
+
document.body.appendChild(this._ctxMenu);
|
|
211
|
+
this._windowsContextMenuCloseBound = this.windowsContextMenuClose.bind(this)
|
|
212
|
+
window.addEventListener('pointerup', this._windowsContextMenuCloseBound);
|
|
213
|
+
} else {
|
|
214
|
+
this._ctxMenu = null;
|
|
215
|
+
}
|
|
216
|
+
} else {
|
|
217
|
+
this.closeContextMenu();
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
closeContextMenu() {
|
|
222
|
+
if (this._ctxMenu) {
|
|
223
|
+
document.body.removeChild(this._ctxMenu);
|
|
224
|
+
delete this._ctxMenu;
|
|
225
|
+
window.removeEventListener('pointerup', this._windowsContextMenuCloseBound);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
windowsContextMenuClose(e: Event) {
|
|
230
|
+
let cp = e.composedPath();
|
|
231
|
+
for (let i in cp) {
|
|
232
|
+
let el = cp[i];
|
|
233
|
+
if (el == this._ctxMenu)
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
this.closeContextMenu();
|
|
237
|
+
}
|
|
176
238
|
}
|