mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-11-04 05:10: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 :
 |