From fbcb4c002a2031ae5ff2b197420c6a2abf101be2 Mon Sep 17 00:00:00 2001 From: Mikhail Zolotukhin Date: Tue, 19 Oct 2021 00:48:14 +0300 Subject: [PATCH] refactor: :recycle: move RectDelta to rect.ts --- src/driver/surface.ts | 2 +- src/driver/window.ts | 2 +- src/engine/index.test.ts | 2 +- src/engine/index.ts | 3 +-- src/engine/layout/cascade_layout.ts | 2 +- src/engine/layout/floating_layout.ts | 2 +- src/engine/layout/index.ts | 3 +-- src/engine/layout/layout_part.ts | 3 +-- src/engine/layout/layout_utils.ts | 3 +-- src/engine/layout/monocle_layout.ts | 2 +- src/engine/layout/quarter_layout.ts | 3 +-- src/engine/layout/spiral_layout.ts | 3 +-- src/engine/layout/spread_layout.ts | 2 +- src/engine/layout/stair_layout.ts | 2 +- src/engine/layout/three_column_layout.ts | 3 +-- src/engine/layout/tile_layout.ts | 3 +-- src/engine/window.ts | 3 +-- src/util/rect.ts | 30 ++++++++++++++++++++- src/util/rectdelta.ts | 34 ------------------------ 19 files changed, 46 insertions(+), 61 deletions(-) delete mode 100644 src/util/rectdelta.ts diff --git a/src/driver/surface.ts b/src/driver/surface.ts index 9c9cf6f3..c5c0ed90 100644 --- a/src/driver/surface.ts +++ b/src/driver/surface.ts @@ -4,7 +4,7 @@ // SPDX-License-Identifier: MIT import Config from "../config"; -import Rect from "../util/rect"; +import { Rect } from "../util/rect"; export interface DriverSurface { readonly id: string; diff --git a/src/driver/window.ts b/src/driver/window.ts index aa06af96..53d02cf3 100644 --- a/src/driver/window.ts +++ b/src/driver/window.ts @@ -5,7 +5,7 @@ import { DriverSurface, DriverSurfaceImpl } from "./surface"; -import Rect from "../util/rect"; +import { Rect } from "../util/rect"; import { clip, matchWords } from "../util/func"; import Config from "../config"; import { Log } from "../util/log"; diff --git a/src/engine/index.test.ts b/src/engine/index.test.ts index faafe61b..12095fa5 100644 --- a/src/engine/index.test.ts +++ b/src/engine/index.test.ts @@ -12,7 +12,7 @@ import { Controller } from "../controller"; import { DriverSurface } from "../driver/surface"; import { Log } from "../util/log"; -import Rect from "../util/rect"; +import { Rect } from "../util/rect"; import TileLayout from "./layout/tile_layout"; import LayoutStore from "./layout_store"; import { EngineWindow, WindowState } from "./window"; diff --git a/src/engine/index.ts b/src/engine/index.ts index 1b4c9512..aedd0e06 100644 --- a/src/engine/index.ts +++ b/src/engine/index.ts @@ -13,8 +13,7 @@ import { Controller } from "../controller"; import { DriverSurface } from "../driver/surface"; -import Rect from "../util/rect"; -import RectDelta from "../util/rectdelta"; +import { Rect, RectDelta } from "../util/rect"; import { overlap, wrapIndex } from "../util/func"; import Config from "../config"; import { Log } from "../util/log"; diff --git a/src/engine/layout/cascade_layout.ts b/src/engine/layout/cascade_layout.ts index ad9dd6ed..96f18c02 100644 --- a/src/engine/layout/cascade_layout.ts +++ b/src/engine/layout/cascade_layout.ts @@ -15,7 +15,7 @@ import { } from "../../controller/action"; import { Controller } from "../../controller"; -import Rect from "../../util/rect"; +import { Rect } from "../../util/rect"; export enum CascadeDirection { NorthWest = 0, diff --git a/src/engine/layout/floating_layout.ts b/src/engine/layout/floating_layout.ts index ff794d61..8eed4843 100644 --- a/src/engine/layout/floating_layout.ts +++ b/src/engine/layout/floating_layout.ts @@ -7,7 +7,7 @@ import { WindowsLayout } from "."; import { WindowState, EngineWindow } from "../window"; -import Rect from "../../util/rect"; +import { Rect } from "../../util/rect"; import { Controller } from "../../controller"; export default class FloatingLayout implements WindowsLayout { diff --git a/src/engine/layout/index.ts b/src/engine/layout/index.ts index ab70981b..127b2ad7 100644 --- a/src/engine/layout/index.ts +++ b/src/engine/layout/index.ts @@ -9,8 +9,7 @@ import { Engine } from ".."; import { Controller } from "../../controller"; import { Action } from "../../controller/action"; -import Rect from "../../util/rect"; -import RectDelta from "../../util/rectdelta"; +import { Rect, RectDelta } from "../../util/rect"; import Config from "../../config"; export interface WindowsLayoutClass { diff --git a/src/engine/layout/layout_part.ts b/src/engine/layout/layout_part.ts index c6f74e03..368ffc91 100644 --- a/src/engine/layout/layout_part.ts +++ b/src/engine/layout/layout_part.ts @@ -8,8 +8,7 @@ import LayoutUtils from "./layout_utils"; import { EngineWindow } from "../window"; import Config from "../../config"; -import Rect from "../../util/rect"; -import RectDelta from "../../util/rectdelta"; +import { Rect, RectDelta } from "../../util/rect"; export interface ILayoutPart { adjust( diff --git a/src/engine/layout/layout_utils.ts b/src/engine/layout/layout_utils.ts index 0039de48..fbe4fee1 100644 --- a/src/engine/layout/layout_utils.ts +++ b/src/engine/layout/layout_utils.ts @@ -4,8 +4,7 @@ // SPDX-License-Identifier: MIT import { clip } from "../../util/func"; -import Rect from "../../util/rect"; -import RectDelta from "../../util/rectdelta"; +import { Rect, RectDelta } from "../../util/rect"; export default class LayoutUtils { /** diff --git a/src/engine/layout/monocle_layout.ts b/src/engine/layout/monocle_layout.ts index 6235c647..ed65452e 100644 --- a/src/engine/layout/monocle_layout.ts +++ b/src/engine/layout/monocle_layout.ts @@ -17,7 +17,7 @@ import { FocusUpperWindow, } from "../../controller/action"; -import Rect from "../../util/rect"; +import { Rect } from "../../util/rect"; import Config from "../../config"; import { Controller } from "../../controller"; import { Engine } from ".."; diff --git a/src/engine/layout/quarter_layout.ts b/src/engine/layout/quarter_layout.ts index 1012daf6..1ca0ef5e 100644 --- a/src/engine/layout/quarter_layout.ts +++ b/src/engine/layout/quarter_layout.ts @@ -8,8 +8,7 @@ import { WindowsLayout } from "."; import { WindowState, EngineWindow } from "../window"; import { clip } from "../../util/func"; -import Rect from "../../util/rect"; -import RectDelta from "../../util/rectdelta"; +import { Rect, RectDelta } from "../../util/rect"; import Config from "../../config"; import { Controller } from "../../controller"; diff --git a/src/engine/layout/spiral_layout.ts b/src/engine/layout/spiral_layout.ts index aeba0e45..3e16faf7 100644 --- a/src/engine/layout/spiral_layout.ts +++ b/src/engine/layout/spiral_layout.ts @@ -9,8 +9,7 @@ import { WindowsLayout } from "."; import { WindowState, EngineWindow } from "../window"; -import Rect from "../../util/rect"; -import RectDelta from "../../util/rectdelta"; +import { Rect, RectDelta } from "../../util/rect"; import Config from "../../config"; import { Controller } from "../../controller"; diff --git a/src/engine/layout/spread_layout.ts b/src/engine/layout/spread_layout.ts index c9809ced..0996cf5c 100644 --- a/src/engine/layout/spread_layout.ts +++ b/src/engine/layout/spread_layout.ts @@ -13,7 +13,7 @@ import { IncreaseMasterAreaWindowCount, } from "../../controller/action"; -import Rect from "../../util/rect"; +import { Rect } from "../../util/rect"; import { Controller } from "../../controller"; import { Engine } from ".."; diff --git a/src/engine/layout/stair_layout.ts b/src/engine/layout/stair_layout.ts index 1cfeb504..40c3215b 100644 --- a/src/engine/layout/stair_layout.ts +++ b/src/engine/layout/stair_layout.ts @@ -13,7 +13,7 @@ import { IncreaseMasterAreaWindowCount, } from "../../controller/action"; -import Rect from "../../util/rect"; +import { Rect } from "../../util/rect"; import { Controller } from "../../controller"; import { Engine } from ".."; diff --git a/src/engine/layout/three_column_layout.ts b/src/engine/layout/three_column_layout.ts index 48eb53f8..9b08ef26 100644 --- a/src/engine/layout/three_column_layout.ts +++ b/src/engine/layout/three_column_layout.ts @@ -17,8 +17,7 @@ import { } from "../../controller/action"; import { partitionArrayBySizes, clip, slide } from "../../util/func"; -import Rect from "../../util/rect"; -import RectDelta from "../../util/rectdelta"; +import { Rect, RectDelta } from "../../util/rect"; import Config from "../../config"; import { Controller } from "../../controller"; import { Engine } from ".."; diff --git a/src/engine/layout/tile_layout.ts b/src/engine/layout/tile_layout.ts index cab97676..2d935eb2 100644 --- a/src/engine/layout/tile_layout.ts +++ b/src/engine/layout/tile_layout.ts @@ -23,8 +23,7 @@ import { } from "../../controller/action"; import { clip, slide } from "../../util/func"; -import Rect from "../../util/rect"; -import RectDelta from "../../util/rectdelta"; +import { Rect, RectDelta } from "../../util/rect"; import Config from "../../config"; import { Controller } from "../../controller"; import { Engine } from ".."; diff --git a/src/engine/window.ts b/src/engine/window.ts index 4ab0c7a3..897e96af 100644 --- a/src/engine/window.ts +++ b/src/engine/window.ts @@ -8,8 +8,7 @@ import { DriverSurface } from "../driver/surface"; import Config from "../config"; import { Log } from "../util/log"; -import Rect from "../util/rect"; -import RectDelta from "../util/rectdelta"; +import { Rect, RectDelta } from "../util/rect"; export enum WindowState { /** diff --git a/src/util/rect.ts b/src/util/rect.ts index 90fcea0f..1c4d7b5b 100644 --- a/src/util/rect.ts +++ b/src/util/rect.ts @@ -3,7 +3,7 @@ // // SPDX-License-Identifier: MIT -export default class Rect { +export class Rect { constructor( public x: number, public y: number, @@ -94,3 +94,31 @@ export default class Rect { return "Rect(" + [this.x, this.y, this.width, this.height].join(", ") + ")"; } } + +/** + * Describes geometric changes of a rectangle, in terms of changes per edge. + * Outward changes are in positive, and inward changes are in negative. + */ +export class RectDelta { + /** Generate a delta that transforms basis to target. */ + public static fromRects(basis: Rect, target: Rect): RectDelta { + const diff = target.subtract(basis); + return new RectDelta( + diff.width + diff.x, + -diff.x, + diff.height + diff.y, + -diff.y + ); + } + + constructor( + public readonly east: number, + public readonly west: number, + public readonly south: number, + public readonly north: number + ) {} + + public toString(): string { + return `WindowResizeDelta(east=${this.east} west=${this.west} north=${this.north} south=${this.south}}`; + } +} diff --git a/src/util/rectdelta.ts b/src/util/rectdelta.ts deleted file mode 100644 index 61ecfdb2..00000000 --- a/src/util/rectdelta.ts +++ /dev/null @@ -1,34 +0,0 @@ -// SPDX-FileCopyrightText: 2018-2019 Eon S. Jeon -// SPDX-FileCopyrightText: 2021 Mikhail Zolotukhin -// -// SPDX-License-Identifier: MIT - -import Rect from "./rect"; - -/** - * Describes geometric changes of a rectangle, in terms of changes per edge. - * Outward changes are in positive, and inward changes are in negative. - */ -export default class RectDelta { - /** Generate a delta that transforms basis to target. */ - public static fromRects(basis: Rect, target: Rect): RectDelta { - const diff = target.subtract(basis); - return new RectDelta( - diff.width + diff.x, - -diff.x, - diff.height + diff.y, - -diff.y - ); - } - - constructor( - public readonly east: number, - public readonly west: number, - public readonly south: number, - public readonly north: number - ) {} - - public toString(): string { - return `WindowResizeDelta(east=${this.east} west=${this.west} north=${this.north} south=${this.south}}`; - } -}