Mocks.Workspace: implement createWindow
This commit is contained in:
2
src/lib/extern/kwin.ts
vendored
2
src/lib/extern/kwin.ts
vendored
@@ -84,7 +84,7 @@ type KwinClient = {
|
||||
readonly desktopsChanged: QSignal<[]>;
|
||||
readonly activitiesChanged: QSignal<[]>;
|
||||
readonly minimizedChanged: QSignal<[]>;
|
||||
readonly maximizedAboutToChange: QSignal<[MaximizedMode]>
|
||||
readonly maximizedAboutToChange: QSignal<[MaximizedMode]>;
|
||||
readonly captionChanged: QSignal<[]>;
|
||||
readonly tileChanged: QSignal<[]>;
|
||||
readonly interactiveMoveResizeStarted: QSignal<[]>;
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
{
|
||||
Qt = new Mocks.Qt();
|
||||
Workspace = new Mocks.Workspace();
|
||||
const workspaceMock = new Mocks.Workspace();
|
||||
Workspace = workspaceMock;
|
||||
const world = new World(getDefaultConfig());
|
||||
|
||||
workspaceMock.createWindow(new Mocks.KwinClient(
|
||||
1,
|
||||
"app1",
|
||||
"Application 1",
|
||||
new Mocks.QmlRect(0, 0, 200, 200),
|
||||
));
|
||||
}
|
||||
|
||||
69
src/tests/utils/mocks/KwinClient.ts
Normal file
69
src/tests/utils/mocks/KwinClient.ts
Normal file
@@ -0,0 +1,69 @@
|
||||
namespace Mocks {
|
||||
export class KwinClient {
|
||||
private static readonly borderThickness = 10;
|
||||
|
||||
public readonly shadeable: boolean = false;
|
||||
public readonly minSize: Readonly<QmlSize> = new QmlSize(0, 0);
|
||||
public readonly transient: boolean = false;
|
||||
public readonly transientFor: KwinClient | null = null;
|
||||
public readonly move: boolean = false;
|
||||
public readonly resize: boolean = false;
|
||||
public readonly moveable: boolean = false;
|
||||
public readonly resizeable: boolean = false;
|
||||
public readonly fullScreenable: boolean = false;
|
||||
public readonly maximizable: boolean = false;
|
||||
public readonly output: Output = false;
|
||||
public readonly dock: boolean = false;
|
||||
public readonly normalWindow: boolean = false;
|
||||
public readonly managed: boolean = false;
|
||||
public readonly popupWindow: boolean = false;
|
||||
|
||||
public fullScreen: boolean = false;
|
||||
public activities: string[] = [];
|
||||
public skipSwitcher: boolean = false;
|
||||
public keepAbove: boolean = false;
|
||||
public keepBelow: boolean = false;
|
||||
public shade: boolean = false;
|
||||
public minimized: boolean = false;
|
||||
public desktops: KwinDesktop[] = [];
|
||||
public tile: Tile = false;
|
||||
public opacity: number = 1.0;
|
||||
|
||||
public readonly fullScreenChanged: QSignal<[]> = new QSignal();
|
||||
public readonly desktopsChanged: QSignal<[]> = new QSignal();
|
||||
public readonly activitiesChanged: QSignal<[]> = new QSignal();
|
||||
public readonly minimizedChanged: QSignal<[]> = new QSignal();
|
||||
public readonly maximizedAboutToChange: QSignal<[MaximizedMode]> = new QSignal();
|
||||
public readonly captionChanged: QSignal<[]> = new QSignal();
|
||||
public readonly tileChanged: QSignal<[]> = new QSignal();
|
||||
public readonly interactiveMoveResizeStarted: QSignal<[]> = new QSignal();
|
||||
public readonly interactiveMoveResizeFinished: QSignal<[]> = new QSignal();
|
||||
public readonly frameGeometryChanged: QSignal<[oldGeometry: QmlRect]> = new QSignal();
|
||||
|
||||
constructor(
|
||||
public readonly pid: number,
|
||||
public readonly resourceClass: string,
|
||||
public readonly caption: string,
|
||||
public frameGeometry: QmlRect,
|
||||
) {}
|
||||
|
||||
setMaximize(vertically: boolean, horizontally: boolean) {
|
||||
this.maximizedAboutToChange.fire(
|
||||
vertically ? (
|
||||
horizontally ? MaximizedMode.Maximized : MaximizedMode.Vertically
|
||||
) : (
|
||||
horizontally ? MaximizedMode.Horizontally : MaximizedMode.Unmaximized
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
public get clientGeometry() {
|
||||
return new QmlRect(
|
||||
this.frameGeometry.x + KwinClient.borderThickness,
|
||||
this.frameGeometry.y + KwinClient.borderThickness,
|
||||
this.frameGeometry.width - 2 * KwinClient.borderThickness,
|
||||
this.frameGeometry.height - 2 * KwinClient.borderThickness,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,19 +7,19 @@ namespace Mocks {
|
||||
public height: number,
|
||||
) {}
|
||||
|
||||
get top() {
|
||||
public get top() {
|
||||
return this.y;
|
||||
}
|
||||
|
||||
get bottom() {
|
||||
public get bottom() {
|
||||
return this.y + this.height;
|
||||
}
|
||||
|
||||
get left() {
|
||||
public get left() {
|
||||
return this.x;
|
||||
}
|
||||
|
||||
get right() {
|
||||
public get right() {
|
||||
return this.x + this.width;
|
||||
}
|
||||
}
|
||||
|
||||
8
src/tests/utils/mocks/QmlSize.ts
Normal file
8
src/tests/utils/mocks/QmlSize.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace Mocks {
|
||||
export class QmlSize {
|
||||
constructor(
|
||||
public width: number,
|
||||
public height: number,
|
||||
) {}
|
||||
}
|
||||
}
|
||||
@@ -23,5 +23,9 @@ namespace Mocks {
|
||||
public clientArea(option: ClientAreaOption, output: Output, kwinDesktop: KwinDesktop) {
|
||||
return new QmlRect(0, 0, 800, 600);
|
||||
}
|
||||
|
||||
public createWindow(kwinClient: KwinClient) {
|
||||
this.windowActivated.fire(kwinClient);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user