95 lines
2.0 KiB
C++
95 lines
2.0 KiB
C++
/*
|
|
4coder_remapping_commands.cpp - Commands that remap all of the keys to one of the maps
|
|
in the set of default maps.
|
|
|
|
TYPE: 'drop-in-command-pack'
|
|
*/
|
|
|
|
// TOP
|
|
|
|
#if !defined(FCODER_REMAPPING_COMMANDS_CPP)
|
|
#define FCODER_REMAPPING_COMMANDS_CPP
|
|
|
|
//
|
|
// Buffer Filling Helpers
|
|
//
|
|
|
|
#include "4coder_generated/remapping.h"
|
|
|
|
void
|
|
default_keys(Bind_Helper *context){
|
|
fill_keys_default(context);
|
|
}
|
|
|
|
void
|
|
mac_default_keys(Bind_Helper *context){
|
|
fill_keys_mac_default(context);
|
|
}
|
|
|
|
|
|
//
|
|
// Remapping Commands
|
|
//
|
|
|
|
static Bind_Helper
|
|
get_context_on_global_part(void){
|
|
Bind_Helper result = {0};
|
|
int32_t size = (1 << 20);
|
|
for (;;){
|
|
void *data = push_array(&global_part, char, size);
|
|
if (data != 0){
|
|
result = begin_bind_helper(data, size);
|
|
break;
|
|
}
|
|
size = (size >> 1);
|
|
}
|
|
return(result);
|
|
}
|
|
|
|
CUSTOM_COMMAND_SIG(set_bindings_choose)
|
|
CUSTOM_DOC("Remap keybindings using the 'choose' mapping rule.")
|
|
{
|
|
#if defined(_WIN32) || defined(__linux__)
|
|
|
|
set_bindings_default(app);
|
|
|
|
#elif defined(__APPLE__) && defined(__MACH__)
|
|
|
|
set_bindings_mac_default(app);
|
|
|
|
#endif
|
|
}
|
|
|
|
CUSTOM_COMMAND_SIG(set_bindings_default)
|
|
CUSTOM_DOC("Remap keybindings using the 'default' mapping rule.")
|
|
{
|
|
Temp_Memory temp = begin_temp_memory(&global_part);
|
|
|
|
Bind_Helper context = get_context_on_global_part();
|
|
set_all_default_hooks(&context);
|
|
default_keys(&context);
|
|
Bind_Buffer result = end_bind_helper_get_buffer(&context);
|
|
global_set_mapping(app, result.data, result.size);
|
|
|
|
end_temp_memory(temp);
|
|
}
|
|
|
|
CUSTOM_COMMAND_SIG(set_bindings_mac_default)
|
|
CUSTOM_DOC("Remap keybindings using the 'mac-default' mapping rule.")
|
|
{
|
|
Temp_Memory temp = begin_temp_memory(&global_part);
|
|
|
|
Bind_Helper context = get_context_on_global_part();
|
|
set_all_default_hooks(&context);
|
|
mac_default_keys(&context);
|
|
Bind_Buffer result = end_bind_helper_get_buffer(&context);
|
|
global_set_mapping(app, result.data, result.size);
|
|
|
|
end_temp_memory(temp);
|
|
}
|
|
|
|
#endif
|
|
|
|
// BOTTOM
|
|
|