106 lines
1.7 KiB
C
106 lines
1.7 KiB
C
/*
|
|
* 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,
|
|
CoRequest_AcquireGlobalFrameMutex = 3,
|
|
CoRequest_ReleaseGlobalFrameMutex = 4,
|
|
};
|
|
|
|
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;
|
|
Temp_Memory pop_me;
|
|
View_Context ctx;
|
|
void *delta_rule_memory;
|
|
};
|
|
|
|
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;
|
|
b8 hide_scrollbar;
|
|
b8 hide_file_bar;
|
|
b8 show_whitespace;
|
|
|
|
Coroutine *co;
|
|
Co_Out co_out;
|
|
|
|
Arena node_arena;
|
|
View_Context_Node *ctx;
|
|
|
|
Query_Set query_set;
|
|
};
|
|
|
|
struct Live_Views{
|
|
View *views;
|
|
View free_sentinel;
|
|
i32 count;
|
|
i32 max;
|
|
};
|
|
|
|
#endif
|
|
|
|
// BOTTOM
|
|
|