From f0455bc93a15fc86f1323fd6f2ad006faa9b62c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Hedin=20Br=C3=B8nner?= Date: Wed, 27 Jun 2018 14:40:01 +0200 Subject: [PATCH] Add Space.getWindow(index, row) and Space.positionOf(w) => [i, r] --- tiling.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tiling.js b/tiling.js index f0abea4..0647ef5 100644 --- a/tiling.js +++ b/tiling.js @@ -144,6 +144,16 @@ class Space extends Array { return this.reduce((ws, column) => ws.concat(column), []); } + getWindow(index, row) { + if (row < 0 || index < 0 || index >= this.length) + return false; + + let column = this[index]; + if (row >= column.length) + return false; + return column[row]; + } + addWindow(metaWindow, index, row) { if (this.indexOf(metaWindow) !== -1) return; @@ -181,6 +191,16 @@ class Space extends Array { return true; } + positionOf(metaWindow) { + metaWindow = metaWindow || this.selectedWindow; + let index, row; + for (let i=0; i < this.length; i++) { + if (this[i].includes(metaWindow)) + return [i, this[i].indexOf(metaWindow)]; + } + return false; + } + indexOf(metaWindow) { for (let i=0; i < this.length; i++) { if (this[i].includes(metaWindow))