see object_layers for something up-to date with my everchanging structures.


This is the new order:

O = object
P = property
M = method

------------------ Local ----------------------------- | ---------- Shared -----------
AKA "vif"                                              |
Display M -> WriteText                                 |
        M -> CursorPos                                 |
		  P -> Width                                     |
		  P -> Height                                    |
        O -> Helm  O -> Mouse P -> focus (window)      |
                              P -> Position            |
		             O -> Keyboard P -> focus (window)   |
		                           P -> Position         |
-----------------^ Hardware ^-----------------------------------							 
		  O -> Window P -> Scroll Location               |
		                     V--AKA "viewport"           |
						  O -> File filter...
						  O -> Inp. filter  o -> Helm...     |
		              O -> disp. filter M -> SetDisplay  | 
						                    M -> LineOffset  |
												  M -> LineLength  |
						                    M -> ReDraw      |
												  M -> SetScroll   |
												  M -> SetSource   |
												  M -> GetSel      |
												  O ->             | FieldProps P -> CursorList O -> Cursor P -> startLoc (ContentBuff)
												                   |                                        P -> endLoc (ContentBuff)
																		 |                                        P -> Owner
												  M -> ReplaceSel  |  V--AKA "CXstring"
						                    O ->             | DataBuff P -> Size						
						  P -> Width                         |          M -> LoadFile (should be in file filter)
						  P -> Height                        |          M -> GetSize
						  M -> WriteText                     |          M -> SaveFile (should be in file filter)
						  M -> CursorPos						    |        	P -> ContentsBuff
						  M -> WindowPos		                |																		
						  M -> WindowSize			   	       |    		
						  												                                        
										
                              
++++++++++++++++++++++++++++++ R 2 ++++++++++++++++++++++++++++++++++++++++++++++++++++
Structure:

Accumulator <-> | <-  ContentFilter <- ContentGenerator (like a keyboard object)
                | ->  DisplayFilter -> Display
                | <-> FileFilter <-> File
                | <-> NetworkFilter <-> Network <-> | <-  ContentFilter <- ContentGenerator 
                .                                   | ->  DisplayFilter -> Display
                .                                   | <-> FileFilter <-> File
                .                                   | DONT EVEN THINK OF ANOTHER NETWORK FILTER.


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                              
BookMarks:

 - Owner (editor instance?)
 - Index 
 - Position (accumulator 1D position)
 - Type (bitwise: 0 = unassigned, 1 = start, 2 = end, 3 = single  )
   
   
   
                              																             	 
	
"CharacterField" is a base class for "Display" and "Window" it has:
M -> WriteText
M -> CursorPos
P -> Width
P -> Height
						  
Cursor Positioning:
  Mouse / Keyboard -> filter -> startLoc / endLoc (CursorList[n](dataBuff))
  
Text Drawing data flow:
  ContentBuff(of DataBuff) -> filter -> Window -> Display
  
Cursor Drawing data flow:
  startLoc / endLoc -> Window -> Display
  
Content Modification program flow:
  Mouse / Keyboard -> filter -> ContentsBuff(DataBuff)
  
----
filter: translate between screen and file mapping. 

 
Cursor: "edit Region" the effected area of data that is modified by application of content. 
 
						  
/////////////////////////////////////////////////////////////////////////////////////////////////////
what is what and how things are structured:

dependencies:

  viewport
   window
    vif
	 cxstring
	 cestypes
	 
	 
descriptions:

  vif:
    "visual interface" An abstraction of the device that displays the text.

  window: 
    An area of a vif at a position. To a viewport this should look like a
	  vif.

  cxstring: (Accumulator)
    General string handler functions.
	 
  viewport: (DisplayFilter)
    Functionality to take text from a file and format it for an area of 
	   limited size. Able to format any "area" of the text. outputs to a 
		vif (or window).
		
//////////////////////////////////////////////////

The Helm has an array of Devices. This is an example of a keyboard and mouse, 
  but anything that can generate content, commands, or a status can be used.
  
L8tr: "All objects are controlled by command calls, details of the command determine content"  
  
  definitions:
content  viewable   characters
commands unviewable characters (that generate events)
status   things that need to be polled to return extra data

