/* DOC(Buffer_Summary acts as a handle to a buffer and describes the state of the buffer.)
DOC_SEE(Access_Flag)
DOC_SEE(Dirty_State)*/
STRUCTBuffer_Summary{
/* DOC(This field indicates whether the Buffer_Summary describes a buffer that is open in 4coder. When this field is false the summary is referred to as a "null summary".) */
b32exists;
/* DOC(If this is not a null summary, this field indicates whether the buffer has finished loading.) */
b32ready;
/* DOC(If this is not a null summary this field is the id of the associated buffer. If this is a null summary then buffer_id is 0.) */
Buffer_IDbuffer_id;
/* DOC(If this is not a null summary, this field contains flags describing the protection status of the buffer.) */
Access_Flaglock_flags;
/* DOC(If this is not a null summary, this field specifies the number of bytes in the buffer.) */
i32size;
/* DOC(If this is not a null summary, this field specifies the number of lines in the buffer.) */
i32line_count;
/* DOC(If this is not a null summary, this field specifies the file name associated to this buffer.) */
charfile_name[256];
/* DOC(This field specifies the length of the file_name string.) */
i32file_name_len;
/* DOC(If this is not a null summary, this field specifies the name of the buffer.) */
charbuffer_name[256];
/* DOC(This field specifies the length of the buffer_name string.) */
i32buffer_name_len;
/* DOC(This field indicates the dirty state of the buffer.) */
Dirty_Statedirty;
/* DOC(If this is not a null summary, this field indicates whether the buffer is set to lex tokens.) */
b32is_lexed;
/* DOC(If this is not a null summary, this field indicates whether the buffer has up to date tokens available. If this field is false, it may simply mean the tokens are still being generated in a background task and will be available later. If that is the case, is_lexed will be true to indicate that the buffer is trying to get it's tokens up to date.) */
b32tokens_are_ready;
/* DOC(If this is not a null summary, this field specifies the id of the command map for this buffer.) */
i32map_id;
/* DOC(If this is not a null summary, this field indicates whether the buffer 'prefers' wrapped lines.) */
/* DOC(View_Summary acts as a handle to a view and describes the state of the view.)
DOC_SEE(Access_Flag)
DOC_SEE(Full_Cursor)
DOC_SEE(GUI_Scroll_Vars)*/
STRUCTView_Summary{
/* DOC(This field indicates whether the View_Summary describes a view that is open in 4coder. When this field is false the summary is referred to as a "null summary". ) */
b32exists;
/* DOC(This field is the id of the associated view. If this is a null summary then view_id is 0. ) */
i32view_id;
/* DOC(Then this is the id of the buffer this view currently sees.) */
i32buffer_id;
/* DOC(This field contains flags describing the protection status of the view.) */
Access_Flaglock_flags;
/* DOC(This describes the position of the cursor.) */
Full_Cursorcursor;
/* DOC(This describes the position of the mark.) */
Full_Cursormark;
/* DOC(This is the x position that is maintained in vertical navigation.) */
f32preferred_x;
/* DOC(This specifies the height of a line rendered in the view.) */
f32line_height;
/* DOC(This indicates that the view is set to render with unwrapped lines.) */
b32unwrapped_lines;
/* DOC(This indicates that the view is set to highlight white space.) */
b32show_whitespace;
/* DOC(This describes the screen position in which this view is displayed.) */
Rect_f32view_region;
/* DOC(TODO) */
Rect_f32render_region;
/* DOC(This describes the scrolling position inside the view.) */