diff --git a/GridWidgit.otl b/GridWidgit.otl new file mode 100755 index 00000000..8e88597b --- /dev/null +++ b/GridWidgit.otl @@ -0,0 +1,88 @@ + +General Structure +| +| +| | | | +| +----------------------------------+ | loading buffer +| +----------------------------------+ | (rows loading or unloading while scrolling) +| | | | +| | row | | +| | | | +| +----------------------------------+ | +| -+ +| -+ +| +----------------------------------+ | scroll buffer +| | | | (loaded rows) +| | row | | +| | | | +| +----------------------------------+ | +| +----------------------------------+ | +| | | | +| | row | | +| | | | +| +----------------------------------+ | +| -+ +| +-visible-area-------------------------+ +| | | +| | +----------------------------------+ | +| | | +========+ +--------+ +--------+ | | +| | | | ref | | | | | | | +| | | +========+ +--------+ +--------+ | | +| | +----------------------------------+ | +| | +----------------------------------+ | +| | | +--------+ +--------+ +--------+ | | +| | | | block | | | | | | | +| | | +--------+ +--------+ +--------+ | | +| | +----------------------------------+ | +| | +----------------------------------+ | +| | | | | +| | | row | | +| | | | | +| | +----------------------------------+ | +| | | +| +--------------------------------------+ +| -+ +| +----------------------------------+ | scroll buffer +| | | | (loaded rows) +| | row | | +| | | | +| +----------------------------------+ | +| +----------------------------------+ | +| | | | +| | row | | +| | | | +| +----------------------------------+ | +| -+ +| -+ +| +----------------------------------+ | loading buffer +| | | | (rows loading or unloading while scrolling) +| | row | | +| | | | +| +----------------------------------+ | +| +----------------------------------+ | +| | | | +| +| + elements + view / visible area + scroll buffer + loading/unloading buffer + operation/actions + scroll + resize + filter + positioning + reference block + | a block top-left of the visible area. + | + | this block must remain in the same position during any operations + | with the content of grid. including: + | - resizing + | - filtering + | + | there is only one exception: arity of the grid -- the top-most row + | must always be full. thus moving the reference left of right, but + | never up or down. + +. +| vim:set spell ts=4 sw=4 :