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 :