diff options
| author | Terry Truong <terry06890@gmail.com> | 2022-03-10 16:39:32 +1100 |
|---|---|---|
| committer | Terry Truong <terry06890@gmail.com> | 2022-03-10 16:39:32 +1100 |
| commit | a504af0ae2e08dad8eb634b4aded6750f7b6eae3 (patch) | |
| tree | d8a8ccd475387a42fe5db58623e986b1c6cb6689 /src/layout.js | |
| parent | eff60c9a9214aa46c7792e34dad0f174920b0c48 (diff) | |
Add rect-layout horz/vert/linear settings
Diffstat (limited to 'src/layout.js')
| -rw-r--r-- | src/layout.js | 40 |
1 files changed, 27 insertions, 13 deletions
diff --git a/src/layout.js b/src/layout.js index 710dbd4..873168b 100644 --- a/src/layout.js +++ b/src/layout.js @@ -4,6 +4,7 @@ const TILE_SPACING = 5; const HEADER_SZ = 20; const MIN_TILE_SZ = 50; const MAX_TILE_SZ = 200; +const RECT_MODE = 'auto'; //'horz', 'vert', 'linear', 'auto' const SWEEP_MODE = 'left'; //'left', 'top', 'shorter', 'auto' const ALLOW_SWEEP_TO_PARENT = true; @@ -86,22 +87,35 @@ const staticRectLayout = { while (true){ //update rowBrks or exit loop if (rowBrks == null){ - rowBrks = [0]; + if (RECT_MODE == 'vert'){ + rowBrks = [...Array(numChildren).keys()]; + } else { + rowBrks = [0]; + } } else { - let i = rowBrks.length-1; - while (true){ - if (i > 0 && rowBrks[i] < numChildren-1 - (rowBrks.length-1 - i)){ - rowBrks[i]++; - break; - } else if (i > 0){ - i--; - } else { - if (rowBrks.length < numChildren){ - rowBrks = Array.from({length: rowBrks.length+1}, (x,i) => i); + if (RECT_MODE == 'horz' || RECT_MODE == 'vert'){ + break rowBrksLoop; + } else if (RECT_MODE == 'linear'){ + if (rowBrks.length == 1 && numChildren > 1) + rowBrks = [...Array(numChildren).keys()]; + else + break rowBrksLoop; + } else { + let i = rowBrks.length-1; + while (true){ + if (i > 0 && rowBrks[i] < numChildren-1 - (rowBrks.length-1 - i)){ + rowBrks[i]++; + break; + } else if (i > 0){ + i--; } else { - break rowBrksLoop; + if (rowBrks.length < numChildren){ + rowBrks = Array.from({length: rowBrks.length+1}, (x,i) => i); + } else { + break rowBrksLoop; + } + break; } - break; } } } |
