4coder/4ed_command.h

62 lines
1.1 KiB
C

/*
* Mr. 4th Dimention - Allen Webster
*
* 24.03.2015
*
* Command representation structures
*
*/
// TOP
#if !defined(FRED_COMMAND_H)
#define FRED_COMMAND_H
union Command_Binding{
Custom_Command_Function *custom;
};
struct Command_Modified_Binding{
Command_Modified_Binding *next;
SNode order_node;
Key_Modifiers modifiers;
Command_Binding binding;
};
struct Command_Binding_List{
Command_Binding_List *next;
SNode *first;
SNode *last;
i32 count;
};
struct Command_Map{
Command_Map *next;
Command_Map_ID id;
Command_Map_ID parent;
Command_Binding text_input_command;
Table_u64_u64 key_code_to_binding_list;
Command_Modified_Binding *binding_first;
Command_Modified_Binding *binding_last;
Command_Binding_List *list_first;
Command_Binding_List *list_last;
struct Binding_Unit *real_beginning;
};
struct Mapping{
Arena *node_arena;
Heap heap;
Base_Allocator heap_wrapper;
Table_u64_u64 id_to_map;
Command_Map_ID id_counter;
Command_Map *free_maps;
Command_Modified_Binding *free_bindings;
Command_Binding_List *free_lists;
};
#endif
// BOTTOM