mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-31 19:30:07 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			89 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
| 
 | |
| 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 :
 |