/* * Mr. 4th Dimention - Allen Webster * * 17.07.2017 * * File editing view for 4coder. * */ // TOP #if !defined(FRED_VIEW_H) #define FRED_VIEW_H struct Co_In{ union{ struct{ struct Models *models; Custom_Command_Function *event_context_base; }; User_Input user_input; Face_ID face_id; b32 success; }; }; typedef i32 Co_Request; enum{ CoRequest_None = 0, CoRequest_NewFontFace = 1, CoRequest_ModifyFace = 2, }; struct Co_Out{ Co_Request request; union{ struct{ Event_Property get_flags; Event_Property abort_flags; }; struct{ Face_Description *face_description; Face_ID face_id; }; }; }; struct Query_Slot{ Query_Slot *next; Query_Bar *query_bar; }; struct Query_Set{ Query_Slot slots[8]; Query_Slot *free_slot; Query_Slot *used_slot; }; struct View_Context_Node{ View_Context_Node *next; View_Context ctx; }; struct View{ View *next; View *prev; struct Panel *panel; b32 in_use; Editing_File *file; Lifetime_Object *lifetime_object; File_Edit_Positions edit_pos_; i64 mark; f32 preferred_x; b8 new_scroll_target; Coroutine *co; Co_Out co_out; View_Context_Node *ctx; b8 hide_scrollbar; b8 hide_file_bar; b8 show_whitespace; Query_Set query_set; }; struct Live_Views{ Arena *node_arena; View_Context_Node *free_nodes; View *views; View free_sentinel; i32 count; i32 max; }; #endif // BOTTOM