aboutsummaryrefslogtreecommitdiff
path: root/src/components
diff options
context:
space:
mode:
authorTerry Truong <terry06890@gmail.com>2022-03-13 15:20:54 +1100
committerTerry Truong <terry06890@gmail.com>2022-03-13 15:20:54 +1100
commit0fb594e3d24debe3758abd70d4e0234598e229ca (patch)
tree31bf3b17509cb576ad6045018092c34f85babec0 /src/components
parent4e05b868bf2a03d8ab9fb5271cd7c1a0b874f51b (diff)
Attempt adding Coord and Dims typestest-Coord-Dim
Diffstat (limited to 'src/components')
-rw-r--r--src/components/Tile.vue8
-rw-r--r--src/components/TileTree.vue14
2 files changed, 10 insertions, 12 deletions
diff --git a/src/components/Tile.vue b/src/components/Tile.vue
index 19c9838..2c349c1 100644
--- a/src/components/Tile.vue
+++ b/src/components/Tile.vue
@@ -46,7 +46,7 @@ export default defineComponent({
<template>
<div
:style="{position: 'absolute',
- left: tree.x+'px', top: tree.y+'px', width: tree.w+'px', height: tree.h+'px',
+ left: tree.pos.x+'px', top: tree.pos.y+'px', width: tree.dims.w+'px', height: tree.dims.h+'px',
zIndex: zIdx, overflow: overFlow, transitionDuration: transitionDuration+'ms'}"
class="transition-[left,top,width,height] ease-out border border-stone-900 bg-white">
<div v-if="tree.children.length == 0"
@@ -61,9 +61,9 @@ export default defineComponent({
{{tree.tolNode.name}}
</div>
<div v-if="tree.sideArea"
- :style="{position: 'absolute', left: tree.sideArea.x+'px', top: tree.sideArea.y+'px',
- width: (tree.sideArea.w + (tree.sideArea.sweptLeft ? tree.sideArea.extraSz : 0))+'px',
- height: (tree.sideArea.h + (tree.sideArea.sweptLeft ? 0 : tree.sideArea.extraSz))+'px',
+ :style="{position: 'absolute', left: tree.sideArea.pos.x+'px', top: tree.sideArea.pos.y+'px',
+ width: (tree.sideArea.dims.w + (tree.sideArea.sweptLeft ? tree.sideArea.extraSz : 0))+'px',
+ height: (tree.sideArea.dims.h + (tree.sideArea.sweptLeft ? 0 : tree.sideArea.extraSz))+'px',
borderRightColor: (tree.sideArea.sweptLeft ? 'white' : 'currentColor'),
borderBottomColor: (tree.sideArea.sweptLeft ? 'currentColor' : 'white'),
transitionDuration: transitionDuration+'ms'}"
diff --git a/src/components/TileTree.vue b/src/components/TileTree.vue
index ce2688e..9fc053a 100644
--- a/src/components/TileTree.vue
+++ b/src/components/TileTree.vue
@@ -2,7 +2,7 @@
import {defineComponent} from 'vue';
import Tile from './Tile.vue';
-import {TolNode, TreeNode, LayoutNode} from '../types';
+import {TolNode, TreeNode, LayoutNode, Coord, Dims} from '../types';
import {genLayout, layoutInfoHooks} from '../layout';
//regarding importing a file f1.ts:
//using 'import f1.ts' makes vue-tsc complain, and 'import f1.js' makes vite complain
@@ -72,7 +72,7 @@ export default defineComponent({
nodeList[0].children = children;
},
tryLayout(){
- let layout = genLayout(this.tree, 0, 0, this.width, this.height, true);
+ let layout = genLayout(this.tree, new Coord(), new Dims(this.width, this.height), true);
if (layout == null){
console.log('Unable to layout tree');
return false;
@@ -82,10 +82,8 @@ export default defineComponent({
}
},
applyLayout(layout: LayoutNode, tree: TreeNode){
- tree.x = layout.x;
- tree.y = layout.y;
- tree.w = layout.w;
- tree.h = layout.h;
+ tree.pos = layout.pos;
+ tree.dims = layout.dims;
tree.headerSz = layout.headerSz;
layout.children.forEach((n,i) => this.applyLayout(n, tree.children[i]));
//handle case where leaf nodes placed in leftover space from parent-sweep
@@ -94,8 +92,8 @@ export default defineComponent({
tree.sideArea = layout.sideArea;
//move leaf node children to parent area
tree.children.filter(n => n.children.length == 0).map(n => {
- n.x += layout.sideArea!.x;
- n.y += layout.sideArea!.y;
+ n.pos.x += layout.sideArea!.pos.x;
+ n.pos.y += layout.sideArea!.pos.y;
});
} else {
tree.sideArea = null;