Finished reorganizing everything for the shift into exposing system api right into the custom layer
parent
b1548f3a43
commit
28c3715073
19
4ed.cpp
19
4ed.cpp
|
@ -9,21 +9,6 @@
|
|||
|
||||
// TOP
|
||||
|
||||
Mutex_Lock::Mutex_Lock(System_Mutex m){
|
||||
system_mutex_acquire(m);
|
||||
this->mutex = m;
|
||||
}
|
||||
|
||||
Mutex_Lock::~Mutex_Lock(){
|
||||
system_mutex_release(this->mutex);
|
||||
}
|
||||
|
||||
Mutex_Lock::operator System_Mutex(){
|
||||
return(this->mutex);
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
|
||||
internal App_Coroutine_State
|
||||
get_state(Application_Links *app){
|
||||
App_Coroutine_State state = {};
|
||||
|
@ -825,7 +810,9 @@ App_Init_Sig(app_init){
|
|||
|
||||
API_VTable_custom custom_vtable = {};
|
||||
custom_api_fill_vtable(&custom_vtable);
|
||||
api.init_apis(&custom_vtable);
|
||||
API_VTable_system system_vtable = {};
|
||||
system_api_fill_vtable(&system_vtable);
|
||||
api.init_apis(&custom_vtable, &system_vtable);
|
||||
|
||||
// NOTE(allen): coroutines
|
||||
coroutine_system_init(&models->coroutines);
|
||||
|
|
|
@ -716,36 +716,6 @@ buffer_set_setting(Application_Links *app, Buffer_ID buffer_id, Buffer_Setting_I
|
|||
}
|
||||
}break;
|
||||
|
||||
case BufferSetting_VirtualWhitespace:
|
||||
{
|
||||
#if 0
|
||||
b32 full_remeasure = false;
|
||||
if (value){
|
||||
if (!file->settings.virtual_white){
|
||||
if (!file->settings.tokens_exist){
|
||||
file_first_lex_serial(system, models, file);
|
||||
}
|
||||
file->settings.virtual_white = true;
|
||||
full_remeasure = true;
|
||||
}
|
||||
}
|
||||
else{
|
||||
if (file->settings.virtual_white){
|
||||
file->settings.virtual_white = false;
|
||||
full_remeasure = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (full_remeasure){
|
||||
Face *face = font_set_face_from_id(&models->font_set, file->settings.font_id);
|
||||
file_allocate_character_starts_as_needed(&models->mem.heap, file);
|
||||
buffer_measure_character_starts(system, &file->state.buffer, file->state.character_starts, 0, file->settings.virtual_white);
|
||||
file_measure_wraps(system, &models->mem, file, face);
|
||||
adjust_views_looking_at_file_to_new_cursor(system, models, file);
|
||||
}
|
||||
#endif
|
||||
}break;
|
||||
|
||||
case BufferSetting_RecordsHistory:
|
||||
{
|
||||
if (value){
|
||||
|
@ -2587,17 +2557,6 @@ set_hot_directory(Application_Links *app, String_Const_u8 string)
|
|||
return(true);
|
||||
}
|
||||
|
||||
api(custom) function File_List
|
||||
get_file_list(Application_Links *app, Arena *arena, String_Const_u8 directory){
|
||||
Models *models = (Models*)app->cmd_context;
|
||||
String_Const_u8 canonical_directory = system_get_canonical(arena, directory);
|
||||
File_List list = {};
|
||||
if (canonical_directory.str != 0){
|
||||
list = system_get_file_list(arena, canonical_directory);
|
||||
}
|
||||
return(list);
|
||||
}
|
||||
|
||||
api(custom) function void
|
||||
set_gui_up_down_keys(Application_Links *app, Key_Code up_key, Key_Modifier up_key_modifier, Key_Code down_key, Key_Modifier down_key_modifier)
|
||||
{
|
||||
|
@ -2608,43 +2567,6 @@ set_gui_up_down_keys(Application_Links *app, Key_Code up_key, Key_Modifier up_ke
|
|||
models->user_down_key_modifier = down_key_modifier;
|
||||
}
|
||||
|
||||
api(custom) function void*
|
||||
memory_allocate(Application_Links *app, i32 size)
|
||||
{
|
||||
Models *models = (Models*)app->cmd_context;
|
||||
void *result = system_memory_allocate(size);
|
||||
return(result);
|
||||
}
|
||||
|
||||
api(custom) function b32
|
||||
memory_set_protection(Application_Links *app, void *ptr, i32 size, Memory_Protect_Flags flags)
|
||||
{
|
||||
Models *models = (Models*)app->cmd_context;
|
||||
return(system_memory_set_protection(ptr, size, flags));
|
||||
}
|
||||
|
||||
api(custom) function void
|
||||
memory_free(Application_Links *app, void *ptr, i32 size)
|
||||
{
|
||||
Models *models = (Models*)app->cmd_context;
|
||||
system_memory_free(ptr, size);
|
||||
}
|
||||
|
||||
api(custom) function String_Const_u8
|
||||
push_4ed_path(Application_Links *app, Arena *arena)
|
||||
{
|
||||
Models *models = (Models*)app->cmd_context;
|
||||
return(system_get_path(arena, SystemPath_Binary));
|
||||
}
|
||||
|
||||
// TODO(allen): do(add a "shown but auto-hides on timer" setting for cursor show type)
|
||||
api(custom) function void
|
||||
show_mouse_cursor(Application_Links *app, Mouse_Cursor_Show_Type show)
|
||||
{
|
||||
Models *models = (Models*)app->cmd_context;
|
||||
system_show_mouse_cursor(show);
|
||||
}
|
||||
|
||||
api(custom) function b32
|
||||
set_edit_finished_hook_repeat_speed(Application_Links *app, u32 milliseconds){
|
||||
Models *models = (Models*)app->cmd_context;
|
||||
|
@ -2652,25 +2574,6 @@ set_edit_finished_hook_repeat_speed(Application_Links *app, u32 milliseconds){
|
|||
return(true);
|
||||
}
|
||||
|
||||
api(custom) function b32
|
||||
set_fullscreen(Application_Links *app, b32 full_screen)
|
||||
{
|
||||
Models *models = (Models*)app->cmd_context;
|
||||
b32 success = system_set_fullscreen(full_screen);
|
||||
if (!success){
|
||||
print_message(app, string_u8_litexpr("ERROR: Failed to go fullscreen.\n"));
|
||||
}
|
||||
return(success);
|
||||
}
|
||||
|
||||
api(custom) function b32
|
||||
is_fullscreen(Application_Links *app)
|
||||
{
|
||||
Models *models = (Models*)app->cmd_context;
|
||||
b32 result = system_is_fullscreen();
|
||||
return(result);
|
||||
}
|
||||
|
||||
api(custom) function void
|
||||
send_exit_signal(Application_Links *app)
|
||||
{
|
||||
|
@ -2690,14 +2593,6 @@ set_window_title(Application_Links *app, String_Const_u8 title)
|
|||
return(true);
|
||||
}
|
||||
|
||||
api(custom) function Microsecond_Time_Stamp
|
||||
get_microseconds_timestamp(Application_Links *app)
|
||||
{
|
||||
// TODO(allen): do(decrease indirection in API calls)
|
||||
Models *models = (Models*)app->cmd_context;
|
||||
return(system_now_time());
|
||||
}
|
||||
|
||||
api(custom) function Vec2
|
||||
draw_string_oriented(Application_Links *app, Face_ID font_id, String_Const_u8 str, Vec2 point, int_color color, u32 flags, Vec2 delta)
|
||||
{
|
||||
|
@ -2965,7 +2860,7 @@ api(custom) function void
|
|||
open_color_picker(Application_Links *app, Color_Picker *picker)
|
||||
{
|
||||
Models *models = (Models*)app->cmd_context;
|
||||
if (picker->finished){
|
||||
if (picker->finished != 0){
|
||||
*picker->finished = false;
|
||||
}
|
||||
system_open_color_picker(picker);
|
||||
|
|
|
@ -205,15 +205,6 @@ enum{
|
|||
AppCoroutineRequest_ModifyFace = 2,
|
||||
};
|
||||
|
||||
////////////////////////////////
|
||||
|
||||
struct Mutex_Lock{
|
||||
Mutex_Lock(System_Mutex mutex);
|
||||
~Mutex_Lock();
|
||||
operator System_Mutex();
|
||||
System_Mutex mutex;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
// BOTTOM
|
||||
|
|
|
@ -12,19 +12,20 @@
|
|||
#define REMOVE_OLD_STRING
|
||||
|
||||
#include "4coder_base_types.h"
|
||||
#include "api/4coder_version.h"
|
||||
#include "api/4coder_keycodes.h"
|
||||
#include "api/4coder_default_colors.h"
|
||||
#include "api/4coder_types.h"
|
||||
#include "4coder_version.h"
|
||||
#include "4coder_keycodes.h"
|
||||
#include "4coder_default_colors.h"
|
||||
#include "4coder_types.h"
|
||||
#define STATIC_LINK_API
|
||||
#include "generated/custom_api.h"
|
||||
|
||||
#include "4coder_table.h"
|
||||
|
||||
#include "4ed_font_interface.h"
|
||||
#include "4ed_system_types.h"
|
||||
#include "4coder_system_types.h"
|
||||
#define DYNAMIC_LINK_API
|
||||
#include "generated/system_api.h"
|
||||
|
||||
#include "4ed_font_interface.h"
|
||||
#define DYNAMIC_LINK_API
|
||||
#include "generated/graphics_api.h"
|
||||
#define DYNAMIC_LINK_API
|
||||
|
@ -36,7 +37,7 @@
|
|||
#include "4coder_string_match.cpp"
|
||||
#include "4coder_stringf.cpp"
|
||||
#include "4coder_app_links_allocator.cpp"
|
||||
#include "4ed_system_allocator.cpp"
|
||||
#include "4coder_system_allocator.cpp"
|
||||
#include "4coder_hash_functions.cpp"
|
||||
#include "4coder_table.cpp"
|
||||
|
||||
|
@ -76,6 +77,7 @@
|
|||
#define DYNAMIC_LINK_API
|
||||
#include "generated/font_api.cpp"
|
||||
|
||||
#include "4coder_system_helpers.cpp"
|
||||
#include "4ed_allocator_models.cpp"
|
||||
#include "4ed_log.cpp"
|
||||
#include "4coder_log.cpp"
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
//#define FM_PRINT_COMMANDS
|
||||
|
||||
#include "4coder_base_types.h"
|
||||
#include "api/4coder_version.h"
|
||||
#include "4coder_version.h"
|
||||
|
||||
#include "4coder_base_types.cpp"
|
||||
#include "4coder_malloc_allocator.cpp"
|
||||
|
|
|
@ -710,8 +710,8 @@ CUSTOM_DOC("Decrease the size of the face used by the current buffer.")
|
|||
CUSTOM_COMMAND_SIG(mouse_wheel_change_face_size)
|
||||
CUSTOM_DOC("Reads the state of the mouse wheel and uses it to either increase or decrease the face size.")
|
||||
{
|
||||
static Microsecond_Time_Stamp next_resize_time = 0;
|
||||
Microsecond_Time_Stamp now = get_microseconds_timestamp(app);
|
||||
static u64 next_resize_time = 0;
|
||||
u64 now = system_now_time();
|
||||
if (now >= next_resize_time){
|
||||
next_resize_time = now + 50*1000;
|
||||
Mouse_State mouse = get_mouse_state(app);
|
||||
|
@ -729,9 +729,8 @@ CUSTOM_DOC("Toggles the current buffer's virtual whitespace status.")
|
|||
{
|
||||
View_ID view = get_active_view(app, AccessProtected);
|
||||
Buffer_ID buffer = view_get_buffer(app, view, AccessProtected);
|
||||
i32 vwhite = 0;
|
||||
buffer_get_setting(app, buffer, BufferSetting_VirtualWhitespace, &vwhite);
|
||||
buffer_set_setting(app, buffer, BufferSetting_VirtualWhitespace, !vwhite);
|
||||
(void)buffer;
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
CUSTOM_COMMAND_SIG(toggle_show_whitespace)
|
||||
|
|
|
@ -4,17 +4,15 @@
|
|||
|
||||
// TOP
|
||||
|
||||
#define DYNAMIC_LINK_API
|
||||
#include "generated/custom_api.cpp"
|
||||
|
||||
extern "C" b32
|
||||
get_version(i32 maj, i32 min, i32 patch){
|
||||
return(maj == MAJOR && min == MINOR && patch == PATCH);
|
||||
}
|
||||
|
||||
extern "C" void
|
||||
init_apis(API_VTable_custom *custom_vtable){
|
||||
init_apis(API_VTable_custom *custom_vtable, API_VTable_system *system_vtable){
|
||||
custom_api_read_vtable(custom_vtable);
|
||||
system_api_read_vtable(system_vtable);
|
||||
}
|
||||
|
||||
// BOTTOM
|
|
@ -274,34 +274,34 @@ create_or_switch_to_buffer_and_clear_by_name(Application_Links *app, String_Cons
|
|||
|
||||
////////////////////////////////
|
||||
|
||||
static void
|
||||
set_mouse_suppression(Application_Links *app, b32 suppress){
|
||||
function void
|
||||
set_mouse_suppression(b32 suppress){
|
||||
if (suppress){
|
||||
suppressing_mouse = true;
|
||||
show_mouse_cursor(app, MouseCursorShow_Never);
|
||||
system_show_mouse_cursor(MouseCursorShow_Never);
|
||||
}
|
||||
else{
|
||||
suppressing_mouse = false;
|
||||
show_mouse_cursor(app, MouseCursorShow_Always);
|
||||
system_show_mouse_cursor(MouseCursorShow_Always);
|
||||
}
|
||||
}
|
||||
|
||||
CUSTOM_COMMAND_SIG(suppress_mouse)
|
||||
CUSTOM_DOC("Hides the mouse and causes all mosue input (clicks, position, wheel) to be ignored.")
|
||||
{
|
||||
set_mouse_suppression(app, true);
|
||||
set_mouse_suppression(true);
|
||||
}
|
||||
|
||||
CUSTOM_COMMAND_SIG(allow_mouse)
|
||||
CUSTOM_DOC("Shows the mouse and causes all mouse input to be processed normally.")
|
||||
{
|
||||
set_mouse_suppression(app, false);
|
||||
set_mouse_suppression(false);
|
||||
}
|
||||
|
||||
CUSTOM_COMMAND_SIG(toggle_mouse)
|
||||
CUSTOM_DOC("Toggles the mouse suppression mode, see suppress_mouse and allow_mouse.")
|
||||
{
|
||||
set_mouse_suppression(app, !suppressing_mouse);
|
||||
set_mouse_suppression(!suppressing_mouse);
|
||||
}
|
||||
|
||||
CUSTOM_COMMAND_SIG(set_mode_to_original)
|
||||
|
@ -337,7 +337,7 @@ CUSTOM_DOC("In code files matching parentheses pairs are colored with distinguis
|
|||
CUSTOM_COMMAND_SIG(toggle_fullscreen)
|
||||
CUSTOM_DOC("Toggle fullscreen mode on or off. The change(s) do not take effect until the next frame.")
|
||||
{
|
||||
set_fullscreen(app, !is_fullscreen(app));
|
||||
system_set_fullscreen(!system_is_fullscreen());
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
|
|
|
@ -1016,17 +1016,9 @@ BUFFER_HOOK_SIG(default_file_settings){
|
|||
buffer_get_setting(app, buffer_id, BufferSetting_MapID, &map_id_query);
|
||||
Assert(map_id_query == default_lister_ui_map);
|
||||
|
||||
// TODO(allen): kill all concepts of wrap width as settings
|
||||
#if 0
|
||||
buffer_set_setting(app, buffer_id, BufferSetting_WrapPosition, global_config.default_wrap_width);
|
||||
buffer_set_setting(app, buffer_id, BufferSetting_MinimumBaseWrapPosition, global_config.default_min_base_width);
|
||||
#endif
|
||||
buffer_set_setting(app, buffer_id, BufferSetting_MapID, map_id);
|
||||
buffer_get_setting(app, buffer_id, BufferSetting_MapID, &map_id_query);
|
||||
Assert(map_id_query == map_id);
|
||||
#if 0
|
||||
buffer_set_setting(app, buffer_id, BufferSetting_ParserContext, parse_context_id);
|
||||
#endif
|
||||
|
||||
// NOTE(allen): Decide buffer settings
|
||||
b32 wrap_lines = true;
|
||||
|
@ -1047,19 +1039,6 @@ BUFFER_HOOK_SIG(default_file_settings){
|
|||
do_full_lex(app, buffer_id);
|
||||
}
|
||||
|
||||
#if 0
|
||||
// NOTE(allen|a4.0.12): There is a little bit of grossness going on here.
|
||||
// If we set BufferSetting_Lex to true, it will launch a lexing job.
|
||||
// If a lexing job is active when we set BufferSetting_VirtualWhitespace, the call can fail.
|
||||
// Unfortunantely without tokens virtual whitespace doesn't really make sense.
|
||||
// So for now I have it automatically turning on lexing when virtual whitespace is turned on.
|
||||
// Cleaning some of that up is a goal for future versions.
|
||||
buffer_set_setting(app, buffer_id, BufferSetting_LexWithoutStrings, lex_without_strings);
|
||||
buffer_set_setting(app, buffer_id, BufferSetting_WrapLine, wrap_lines);
|
||||
buffer_set_setting(app, buffer_id, BufferSetting_VirtualWhitespace, use_virtual_whitespace);
|
||||
buffer_set_setting(app, buffer_id, BufferSetting_Lex, use_lexer);
|
||||
#endif
|
||||
|
||||
// no meaning for return
|
||||
return(0);
|
||||
}
|
||||
|
@ -1073,10 +1052,8 @@ BUFFER_HOOK_SIG(default_new_file){
|
|||
BUFFER_HOOK_SIG(default_file_save){
|
||||
b32 is_virtual = false;
|
||||
if (global_config.automatically_indent_text_on_save &&
|
||||
buffer_get_setting(app, buffer_id, BufferSetting_VirtualWhitespace, &is_virtual)){
|
||||
if (is_virtual){
|
||||
auto_indent_buffer(app, buffer_id, buffer_range(app, buffer_id));
|
||||
}
|
||||
is_virtual){
|
||||
auto_indent_buffer(app, buffer_id, buffer_range(app, buffer_id));
|
||||
}
|
||||
// no meaning for return
|
||||
return(0);
|
||||
|
|
|
@ -8,7 +8,15 @@
|
|||
#define FCODER_DEFAULT_INCLUDE_CPP
|
||||
|
||||
#include "4coder_base_types.h"
|
||||
#include "api/4coder_custom.h"
|
||||
#include "4coder_version.h"
|
||||
#include "4coder_keycodes.h"
|
||||
#include "4coder_default_colors.h"
|
||||
#include "4coder_types.h"
|
||||
#define DYNAMIC_LINK_API
|
||||
#include "generated/custom_api.h"
|
||||
#include "4coder_system_types.h"
|
||||
#define DYNAMIC_LINK_API
|
||||
#include "generated/system_api.h"
|
||||
#include "generated/command_metadata.h"
|
||||
|
||||
#include "4coder_base_types.cpp"
|
||||
|
@ -38,7 +46,14 @@
|
|||
#include "4coder_combined_write_commands.h"
|
||||
#include "4coder_log_parser.h"
|
||||
|
||||
#include "api/4coder_custom.cpp"
|
||||
////////////////////////////////
|
||||
|
||||
#define DYNAMIC_LINK_API
|
||||
#include "generated/custom_api.cpp"
|
||||
#define DYNAMIC_LINK_API
|
||||
#include "generated/system_api.cpp"
|
||||
#include "4coder_system_helpers.cpp"
|
||||
#include "4coder_custom.cpp"
|
||||
#include "4coder_log.cpp"
|
||||
#include "4coder_hash_functions.cpp"
|
||||
#include "4coder_table.cpp"
|
||||
|
@ -64,7 +79,7 @@
|
|||
#include "4coder_jump_lister.cpp"
|
||||
#include "4coder_log_parser.cpp"
|
||||
#include "4coder_clipboard.cpp"
|
||||
#include "4coder_system_command.cpp"
|
||||
#include "4coder_cli_command.cpp"
|
||||
#include "4coder_build_commands.cpp"
|
||||
#include "4coder_project_commands.cpp"
|
||||
#include "4coder_function_list.cpp"
|
||||
|
|
|
@ -2052,7 +2052,7 @@ open_file_try_current_path_then_binary_path(Application_Links *app, char *file_n
|
|||
if (file == 0){
|
||||
Scratch_Block scratch(app);
|
||||
List_String_Const_u8 list = {};
|
||||
string_list_push(scratch, &list, push_4ed_path(app, scratch));
|
||||
string_list_push(scratch, &list, system_get_path(scratch, SystemPath_Binary));
|
||||
string_list_push_overlap(scratch, &list, '/', SCu8(file_name));
|
||||
String_Const_u8 str = string_list_flatten(scratch, list, StringFill_NullTerminate);
|
||||
file = fopen((char*)str.str, "rb");
|
||||
|
|
|
@ -534,7 +534,7 @@ generate_hot_directory_file_list(Application_Links *app, Lister *lister){
|
|||
lister_set_text_field(lister, hot);
|
||||
lister_set_key(lister, string_front_of_path(hot));
|
||||
|
||||
File_List file_list = get_file_list(app, scratch, hot);
|
||||
File_List file_list = system_get_file_list(scratch, hot);
|
||||
end_temp(temp);
|
||||
|
||||
File_Info **one_past_last = file_list.infos + file_list.count;
|
||||
|
|
|
@ -91,7 +91,7 @@ open_all_files_in_directory_pattern_match__recursive(Application_Links *app,
|
|||
Project_File_Pattern_Array blacklist,
|
||||
u32 flags){
|
||||
Scratch_Block scratch(app);
|
||||
File_List list = get_file_list(app, scratch, path);
|
||||
File_List list = system_get_file_list(scratch, path);
|
||||
|
||||
File_Info **info = list.infos;
|
||||
for (u32 i = 0; i < list.count; ++i, ++info){
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
/*
|
||||
* 4coder_system_types.h - Implementation of universal (cross platform) helpers
|
||||
*/
|
||||
|
||||
// TOP
|
||||
|
||||
Mutex_Lock::Mutex_Lock(System_Mutex m){
|
||||
system_mutex_acquire(m);
|
||||
this->mutex = m;
|
||||
}
|
||||
|
||||
Mutex_Lock::~Mutex_Lock(){
|
||||
system_mutex_release(this->mutex);
|
||||
}
|
||||
|
||||
Mutex_Lock::operator System_Mutex(){
|
||||
return(this->mutex);
|
||||
}
|
||||
|
||||
// BOTTOM
|
||||
|
|
@ -1,10 +1,5 @@
|
|||
/*
|
||||
* Mr. 4th Dimention - Allen Webster
|
||||
*
|
||||
* 21.01.2015
|
||||
*
|
||||
* System API types.
|
||||
*
|
||||
* 4coder_system_types.h - Types relating to the system api.
|
||||
*/
|
||||
|
||||
// TOP
|
||||
|
@ -36,6 +31,13 @@ enum{
|
|||
SystemPath_Binary,
|
||||
};
|
||||
|
||||
struct Mutex_Lock{
|
||||
Mutex_Lock(System_Mutex mutex);
|
||||
~Mutex_Lock();
|
||||
operator System_Mutex();
|
||||
System_Mutex mutex;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
// BOTTOM
|
|
@ -19,7 +19,8 @@ struct Application_Links{
|
|||
i32 type_coroutine;
|
||||
};
|
||||
typedef b32 _Get_Version_Function(i32 maj, i32 min, i32 patch);
|
||||
typedef void _Init_APIs(struct API_VTable_custom *custom_vtable);
|
||||
typedef void _Init_APIs(struct API_VTable_custom *custom_vtable,
|
||||
struct API_VTable_system *system_vtable);
|
||||
|
||||
////////////////////////////////
|
||||
|
||||
|
@ -106,7 +107,6 @@ ENUM(i32, Buffer_Setting_ID){
|
|||
BufferSetting_Eol,
|
||||
BufferSetting_Unimportant,
|
||||
BufferSetting_ReadOnly,
|
||||
BufferSetting_VirtualWhitespace,
|
||||
BufferSetting_RecordsHistory,
|
||||
};
|
||||
|
||||
|
@ -257,8 +257,6 @@ STRUCT Parser_String_And_Type{
|
|||
u32 type;
|
||||
};
|
||||
|
||||
TYPEDEF u64 Microsecond_Time_Stamp;
|
||||
|
||||
ENUM(u32, File_Attribute_Flag){
|
||||
FileAttribute_IsDirectory = 1,
|
||||
};
|
|
@ -1,20 +0,0 @@
|
|||
/*
|
||||
4coder_custom.h
|
||||
*/
|
||||
|
||||
// TOP
|
||||
|
||||
#ifndef FCODER_CUSTOM_H
|
||||
#define FCODER_CUSTOM_H
|
||||
|
||||
#include "api/4coder_version.h"
|
||||
#include "api/4coder_keycodes.h"
|
||||
#include "api/4coder_default_colors.h"
|
||||
#include "api/4coder_types.h"
|
||||
#define DYNAMIC_LINK_API
|
||||
#include "generated/custom_api.h"
|
||||
|
||||
#endif
|
||||
|
||||
// BOTTOM
|
||||
|
|
@ -327,43 +327,43 @@ static Command_Metadata fcoder_metacmd_table[226] = {
|
|||
{ PROC_LINKS(decrease_face_size, 0), "decrease_face_size", 18, "Decrease the size of the face used by the current buffer.", 57, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 699 },
|
||||
{ PROC_LINKS(mouse_wheel_change_face_size, 0), "mouse_wheel_change_face_size", 28, "Reads the state of the mouse wheel and uses it to either increase or decrease the face size.", 92, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 710 },
|
||||
{ PROC_LINKS(toggle_virtual_whitespace, 0), "toggle_virtual_whitespace", 25, "Toggles the current buffer's virtual whitespace status.", 55, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 727 },
|
||||
{ PROC_LINKS(toggle_show_whitespace, 0), "toggle_show_whitespace", 22, "Toggles the current buffer's whitespace visibility status.", 58, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 737 },
|
||||
{ PROC_LINKS(toggle_line_numbers, 0), "toggle_line_numbers", 19, "Toggles the left margin line numbers.", 37, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 746 },
|
||||
{ PROC_LINKS(eol_dosify, 0), "eol_dosify", 10, "Puts the buffer in DOS line ending mode.", 40, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 752 },
|
||||
{ PROC_LINKS(eol_nixify, 0), "eol_nixify", 10, "Puts the buffer in NIX line ending mode.", 40, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 760 },
|
||||
{ PROC_LINKS(exit_4coder, 0), "exit_4coder", 11, "Attempts to close 4coder.", 25, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 768 },
|
||||
{ PROC_LINKS(goto_line, 0), "goto_line", 9, "Queries the user for a number, and jumps the cursor to the corresponding line.", 78, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 776 },
|
||||
{ PROC_LINKS(search, 0), "search", 6, "Begins an incremental search down through the current buffer for a user specified string.", 89, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 967 },
|
||||
{ PROC_LINKS(reverse_search, 0), "reverse_search", 14, "Begins an incremental search up through the current buffer for a user specified string.", 87, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 973 },
|
||||
{ PROC_LINKS(search_identifier, 0), "search_identifier", 17, "Begins an incremental search down through the current buffer for the word or token under the cursor.", 100, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 979 },
|
||||
{ PROC_LINKS(reverse_search_identifier, 0), "reverse_search_identifier", 25, "Begins an incremental search up through the current buffer for the word or token under the cursor.", 98, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 990 },
|
||||
{ PROC_LINKS(replace_in_range, 0), "replace_in_range", 16, "Queries the user for a needle and string. Replaces all occurences of needle with string in the range between cursor and the mark in the active buffer.", 150, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1041 },
|
||||
{ PROC_LINKS(replace_in_buffer, 0), "replace_in_buffer", 17, "Queries the user for a needle and string. Replaces all occurences of needle with string in the active buffer.", 109, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1050 },
|
||||
{ PROC_LINKS(replace_in_all_buffers, 0), "replace_in_all_buffers", 22, "Queries the user for a needle and string. Replaces all occurences of needle with string in all editable buffers.", 112, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1059 },
|
||||
{ PROC_LINKS(query_replace, 0), "query_replace", 13, "Queries the user for two strings, and incrementally replaces every occurence of the first string with the second string.", 120, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1147 },
|
||||
{ PROC_LINKS(query_replace_identifier, 0), "query_replace_identifier", 24, "Queries the user for a string, and incrementally replace every occurence of the word or token found at the cursor with the specified string.", 140, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1167 },
|
||||
{ PROC_LINKS(query_replace_selection, 0), "query_replace_selection", 23, "Queries the user for a string, and incrementally replace every occurence of the string found in the selected range with the specified string.", 141, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1183 },
|
||||
{ PROC_LINKS(save_all_dirty_buffers, 0), "save_all_dirty_buffers", 22, "Saves all buffers marked dirty (showing the '*' indicator).", 59, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1218 },
|
||||
{ PROC_LINKS(delete_file_query, 0), "delete_file_query", 17, "Deletes the file of the current buffer if 4coder has the appropriate access rights. Will ask the user for confirmation first.", 125, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1243 },
|
||||
{ PROC_LINKS(save_to_query, 0), "save_to_query", 13, "Queries the user for a file name and saves the contents of the current buffer, altering the buffer's name too.", 110, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1281 },
|
||||
{ PROC_LINKS(rename_file_query, 0), "rename_file_query", 17, "Queries the user for a new name and renames the file of the current buffer, altering the buffer's name too.", 107, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1313 },
|
||||
{ PROC_LINKS(make_directory_query, 0), "make_directory_query", 20, "Queries the user for a name and creates a new directory with the given name.", 76, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1350 },
|
||||
{ PROC_LINKS(move_line_up, 0), "move_line_up", 12, "Swaps the line under the cursor with the line above it, and moves the cursor up with it.", 88, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1383 },
|
||||
{ PROC_LINKS(move_line_down, 0), "move_line_down", 14, "Swaps the line under the cursor with the line below it, and moves the cursor down with it.", 90, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1389 },
|
||||
{ PROC_LINKS(duplicate_line, 0), "duplicate_line", 14, "Create a copy of the line on which the cursor sits.", 51, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1395 },
|
||||
{ PROC_LINKS(delete_line, 0), "delete_line", 11, "Delete the line the on which the cursor sits.", 45, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1409 },
|
||||
{ PROC_LINKS(open_file_in_quotes, 0), "open_file_in_quotes", 19, "Reads a filename from surrounding '\"' characters and attempts to open the corresponding file.", 94, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1474 },
|
||||
{ PROC_LINKS(open_matching_file_cpp, 0), "open_matching_file_cpp", 22, "If the current file is a *.cpp or *.h, attempts to open the corresponding *.h or *.cpp file in the other view.", 110, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1506 },
|
||||
{ PROC_LINKS(view_buffer_other_panel, 0), "view_buffer_other_panel", 23, "Set the other non-active panel to view the buffer that the active panel views, and switch to that panel.", 104, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1519 },
|
||||
{ PROC_LINKS(swap_buffers_between_panels, 0), "swap_buffers_between_panels", 27, "Set the other non-active panel to view the buffer that the active panel views, and switch to that panel.", 104, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1531 },
|
||||
{ PROC_LINKS(kill_buffer, 0), "kill_buffer", 11, "Kills the current buffer.", 25, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1567 },
|
||||
{ PROC_LINKS(save, 0), "save", 4, "Saves the current buffer.", 25, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1575 },
|
||||
{ PROC_LINKS(reopen, 0), "reopen", 6, "Reopen the current buffer from the hard drive.", 46, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1585 },
|
||||
{ PROC_LINKS(undo, 0), "undo", 4, "Advances backwards through the undo history of the current buffer.", 66, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1812 },
|
||||
{ PROC_LINKS(redo, 0), "redo", 4, "Advances forwards through the undo history of the current buffer.", 65, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1825 },
|
||||
{ PROC_LINKS(undo_all_buffers, 0), "undo_all_buffers", 16, "Advances backward through the undo history in the buffer containing the most recent regular edit.", 97, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1839 },
|
||||
{ PROC_LINKS(redo_all_buffers, 0), "redo_all_buffers", 16, "Advances forward through the undo history in the buffer containing the most recent regular edit.", 96, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1910 },
|
||||
{ PROC_LINKS(open_in_other, 0), "open_in_other", 13, "Interactively opens a file in the other panel.", 46, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 2011 },
|
||||
{ PROC_LINKS(toggle_show_whitespace, 0), "toggle_show_whitespace", 22, "Toggles the current buffer's whitespace visibility status.", 58, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 736 },
|
||||
{ PROC_LINKS(toggle_line_numbers, 0), "toggle_line_numbers", 19, "Toggles the left margin line numbers.", 37, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 745 },
|
||||
{ PROC_LINKS(eol_dosify, 0), "eol_dosify", 10, "Puts the buffer in DOS line ending mode.", 40, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 751 },
|
||||
{ PROC_LINKS(eol_nixify, 0), "eol_nixify", 10, "Puts the buffer in NIX line ending mode.", 40, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 759 },
|
||||
{ PROC_LINKS(exit_4coder, 0), "exit_4coder", 11, "Attempts to close 4coder.", 25, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 767 },
|
||||
{ PROC_LINKS(goto_line, 0), "goto_line", 9, "Queries the user for a number, and jumps the cursor to the corresponding line.", 78, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 775 },
|
||||
{ PROC_LINKS(search, 0), "search", 6, "Begins an incremental search down through the current buffer for a user specified string.", 89, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 966 },
|
||||
{ PROC_LINKS(reverse_search, 0), "reverse_search", 14, "Begins an incremental search up through the current buffer for a user specified string.", 87, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 972 },
|
||||
{ PROC_LINKS(search_identifier, 0), "search_identifier", 17, "Begins an incremental search down through the current buffer for the word or token under the cursor.", 100, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 978 },
|
||||
{ PROC_LINKS(reverse_search_identifier, 0), "reverse_search_identifier", 25, "Begins an incremental search up through the current buffer for the word or token under the cursor.", 98, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 989 },
|
||||
{ PROC_LINKS(replace_in_range, 0), "replace_in_range", 16, "Queries the user for a needle and string. Replaces all occurences of needle with string in the range between cursor and the mark in the active buffer.", 150, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1040 },
|
||||
{ PROC_LINKS(replace_in_buffer, 0), "replace_in_buffer", 17, "Queries the user for a needle and string. Replaces all occurences of needle with string in the active buffer.", 109, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1049 },
|
||||
{ PROC_LINKS(replace_in_all_buffers, 0), "replace_in_all_buffers", 22, "Queries the user for a needle and string. Replaces all occurences of needle with string in all editable buffers.", 112, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1058 },
|
||||
{ PROC_LINKS(query_replace, 0), "query_replace", 13, "Queries the user for two strings, and incrementally replaces every occurence of the first string with the second string.", 120, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1146 },
|
||||
{ PROC_LINKS(query_replace_identifier, 0), "query_replace_identifier", 24, "Queries the user for a string, and incrementally replace every occurence of the word or token found at the cursor with the specified string.", 140, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1166 },
|
||||
{ PROC_LINKS(query_replace_selection, 0), "query_replace_selection", 23, "Queries the user for a string, and incrementally replace every occurence of the string found in the selected range with the specified string.", 141, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1182 },
|
||||
{ PROC_LINKS(save_all_dirty_buffers, 0), "save_all_dirty_buffers", 22, "Saves all buffers marked dirty (showing the '*' indicator).", 59, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1217 },
|
||||
{ PROC_LINKS(delete_file_query, 0), "delete_file_query", 17, "Deletes the file of the current buffer if 4coder has the appropriate access rights. Will ask the user for confirmation first.", 125, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1242 },
|
||||
{ PROC_LINKS(save_to_query, 0), "save_to_query", 13, "Queries the user for a file name and saves the contents of the current buffer, altering the buffer's name too.", 110, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1280 },
|
||||
{ PROC_LINKS(rename_file_query, 0), "rename_file_query", 17, "Queries the user for a new name and renames the file of the current buffer, altering the buffer's name too.", 107, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1312 },
|
||||
{ PROC_LINKS(make_directory_query, 0), "make_directory_query", 20, "Queries the user for a name and creates a new directory with the given name.", 76, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1349 },
|
||||
{ PROC_LINKS(move_line_up, 0), "move_line_up", 12, "Swaps the line under the cursor with the line above it, and moves the cursor up with it.", 88, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1382 },
|
||||
{ PROC_LINKS(move_line_down, 0), "move_line_down", 14, "Swaps the line under the cursor with the line below it, and moves the cursor down with it.", 90, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1388 },
|
||||
{ PROC_LINKS(duplicate_line, 0), "duplicate_line", 14, "Create a copy of the line on which the cursor sits.", 51, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1394 },
|
||||
{ PROC_LINKS(delete_line, 0), "delete_line", 11, "Delete the line the on which the cursor sits.", 45, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1408 },
|
||||
{ PROC_LINKS(open_file_in_quotes, 0), "open_file_in_quotes", 19, "Reads a filename from surrounding '\"' characters and attempts to open the corresponding file.", 94, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1473 },
|
||||
{ PROC_LINKS(open_matching_file_cpp, 0), "open_matching_file_cpp", 22, "If the current file is a *.cpp or *.h, attempts to open the corresponding *.h or *.cpp file in the other view.", 110, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1505 },
|
||||
{ PROC_LINKS(view_buffer_other_panel, 0), "view_buffer_other_panel", 23, "Set the other non-active panel to view the buffer that the active panel views, and switch to that panel.", 104, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1518 },
|
||||
{ PROC_LINKS(swap_buffers_between_panels, 0), "swap_buffers_between_panels", 27, "Set the other non-active panel to view the buffer that the active panel views, and switch to that panel.", 104, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1530 },
|
||||
{ PROC_LINKS(kill_buffer, 0), "kill_buffer", 11, "Kills the current buffer.", 25, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1566 },
|
||||
{ PROC_LINKS(save, 0), "save", 4, "Saves the current buffer.", 25, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1574 },
|
||||
{ PROC_LINKS(reopen, 0), "reopen", 6, "Reopen the current buffer from the hard drive.", 46, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1584 },
|
||||
{ PROC_LINKS(undo, 0), "undo", 4, "Advances backwards through the undo history of the current buffer.", 66, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1811 },
|
||||
{ PROC_LINKS(redo, 0), "redo", 4, "Advances forwards through the undo history of the current buffer.", 65, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1824 },
|
||||
{ PROC_LINKS(undo_all_buffers, 0), "undo_all_buffers", 16, "Advances backward through the undo history in the buffer containing the most recent regular edit.", 97, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1838 },
|
||||
{ PROC_LINKS(redo_all_buffers, 0), "redo_all_buffers", 16, "Advances forward through the undo history in the buffer containing the most recent regular edit.", 96, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1909 },
|
||||
{ PROC_LINKS(open_in_other, 0), "open_in_other", 13, "Interactively opens a file in the other panel.", 46, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 2010 },
|
||||
{ PROC_LINKS(lister__quit, 0), "lister__quit", 12, "A lister mode command that quits the list without executing any actions.", 72, "w:\\4ed\\code\\custom\\4coder_lists.cpp", 35, 8 },
|
||||
{ PROC_LINKS(lister__activate, 0), "lister__activate", 16, "A lister mode command that activates the list's action on the highlighted item.", 79, "w:\\4ed\\code\\custom\\4coder_lists.cpp", 35, 15 },
|
||||
{ PROC_LINKS(lister__write_character, 0), "lister__write_character", 23, "A lister mode command that dispatches to the lister's write character handler.", 78, "w:\\4ed\\code\\custom\\4coder_lists.cpp", 35, 30 },
|
||||
|
@ -426,8 +426,8 @@ static Command_Metadata fcoder_metacmd_table[226] = {
|
|||
{ PROC_LINKS(paste_next, 0), "paste_next", 10, "If the previous command was paste or paste_next, replaces the paste range with the next text down on the clipboard, otherwise operates as the paste command.", 156, "w:\\4ed\\code\\custom\\4coder_clipboard.cpp", 39, 73 },
|
||||
{ PROC_LINKS(paste_and_indent, 0), "paste_and_indent", 16, "Paste from the top of clipboard and run auto-indent on the newly pasted text.", 77, "w:\\4ed\\code\\custom\\4coder_clipboard.cpp", 39, 115 },
|
||||
{ PROC_LINKS(paste_next_and_indent, 0), "paste_next_and_indent", 21, "Paste the next item on the clipboard and run auto-indent on the newly pasted text.", 82, "w:\\4ed\\code\\custom\\4coder_clipboard.cpp", 39, 122 },
|
||||
{ PROC_LINKS(execute_previous_cli, 0), "execute_previous_cli", 20, "If the command execute_any_cli has already been used, this will execute a CLI reusing the most recent buffer name and command.", 126, "w:\\4ed\\code\\custom\\4coder_system_command.cpp", 44, 7 },
|
||||
{ PROC_LINKS(execute_any_cli, 0), "execute_any_cli", 15, "Queries for an output buffer name and system command, runs the system command as a CLI and prints the output to the specified buffer.", 133, "w:\\4ed\\code\\custom\\4coder_system_command.cpp", 44, 22 },
|
||||
{ PROC_LINKS(execute_previous_cli, 0), "execute_previous_cli", 20, "If the command execute_any_cli has already been used, this will execute a CLI reusing the most recent buffer name and command.", 126, "w:\\4ed\\code\\custom\\4coder_cli_command.cpp", 41, 7 },
|
||||
{ PROC_LINKS(execute_any_cli, 0), "execute_any_cli", 15, "Queries for an output buffer name and system command, runs the system command as a CLI and prints the output to the specified buffer.", 133, "w:\\4ed\\code\\custom\\4coder_cli_command.cpp", 41, 22 },
|
||||
{ PROC_LINKS(build_search, 0), "build_search", 12, "Looks for a build.bat, build.sh, or makefile in the current and parent directories. Runs the first that it finds and prints the output to *compilation*.", 153, "w:\\4ed\\code\\custom\\4coder_build_commands.cpp", 44, 128 },
|
||||
{ PROC_LINKS(build_in_build_panel, 0), "build_in_build_panel", 20, "Looks for a build.bat, build.sh, or makefile in the current and parent directories. Runs the first that it finds and prints the output to *compilation*. Puts the *compilation* buffer in a panel at the footer of the current view.", 230, "w:\\4ed\\code\\custom\\4coder_build_commands.cpp", 44, 163 },
|
||||
{ PROC_LINKS(close_build_panel, 0), "close_build_panel", 17, "If the special build panel is open, closes it.", 46, "w:\\4ed\\code\\custom\\4coder_build_commands.cpp", 44, 178 },
|
||||
|
|
|
@ -149,19 +149,10 @@ vtable->get_theme_colors = get_theme_colors;
|
|||
vtable->finalize_color = finalize_color;
|
||||
vtable->push_hot_directory = push_hot_directory;
|
||||
vtable->set_hot_directory = set_hot_directory;
|
||||
vtable->get_file_list = get_file_list;
|
||||
vtable->set_gui_up_down_keys = set_gui_up_down_keys;
|
||||
vtable->memory_allocate = memory_allocate;
|
||||
vtable->memory_set_protection = memory_set_protection;
|
||||
vtable->memory_free = memory_free;
|
||||
vtable->push_4ed_path = push_4ed_path;
|
||||
vtable->show_mouse_cursor = show_mouse_cursor;
|
||||
vtable->set_edit_finished_hook_repeat_speed = set_edit_finished_hook_repeat_speed;
|
||||
vtable->set_fullscreen = set_fullscreen;
|
||||
vtable->is_fullscreen = is_fullscreen;
|
||||
vtable->send_exit_signal = send_exit_signal;
|
||||
vtable->set_window_title = set_window_title;
|
||||
vtable->get_microseconds_timestamp = get_microseconds_timestamp;
|
||||
vtable->draw_string_oriented = draw_string_oriented;
|
||||
vtable->get_string_advance = get_string_advance;
|
||||
vtable->draw_rectangle = draw_rectangle;
|
||||
|
@ -333,19 +324,10 @@ get_theme_colors = vtable->get_theme_colors;
|
|||
finalize_color = vtable->finalize_color;
|
||||
push_hot_directory = vtable->push_hot_directory;
|
||||
set_hot_directory = vtable->set_hot_directory;
|
||||
get_file_list = vtable->get_file_list;
|
||||
set_gui_up_down_keys = vtable->set_gui_up_down_keys;
|
||||
memory_allocate = vtable->memory_allocate;
|
||||
memory_set_protection = vtable->memory_set_protection;
|
||||
memory_free = vtable->memory_free;
|
||||
push_4ed_path = vtable->push_4ed_path;
|
||||
show_mouse_cursor = vtable->show_mouse_cursor;
|
||||
set_edit_finished_hook_repeat_speed = vtable->set_edit_finished_hook_repeat_speed;
|
||||
set_fullscreen = vtable->set_fullscreen;
|
||||
is_fullscreen = vtable->is_fullscreen;
|
||||
send_exit_signal = vtable->send_exit_signal;
|
||||
set_window_title = vtable->set_window_title;
|
||||
get_microseconds_timestamp = vtable->get_microseconds_timestamp;
|
||||
draw_string_oriented = vtable->draw_string_oriented;
|
||||
get_string_advance = vtable->get_string_advance;
|
||||
draw_rectangle = vtable->draw_rectangle;
|
||||
|
|
|
@ -147,19 +147,10 @@
|
|||
#define custom_finalize_color_sig() argb_color custom_finalize_color(Application_Links* app, int_color color)
|
||||
#define custom_push_hot_directory_sig() String_Const_u8 custom_push_hot_directory(Application_Links* app, Arena* arena)
|
||||
#define custom_set_hot_directory_sig() b32 custom_set_hot_directory(Application_Links* app, String_Const_u8 string)
|
||||
#define custom_get_file_list_sig() File_List custom_get_file_list(Application_Links* app, Arena* arena, String_Const_u8 directory)
|
||||
#define custom_set_gui_up_down_keys_sig() void custom_set_gui_up_down_keys(Application_Links* app, Key_Code up_key, Key_Modifier up_key_modifier, Key_Code down_key, Key_Modifier down_key_modifier)
|
||||
#define custom_memory_allocate_sig() void* custom_memory_allocate(Application_Links* app, i32 size)
|
||||
#define custom_memory_set_protection_sig() b32 custom_memory_set_protection(Application_Links* app, void* ptr, i32 size, Memory_Protect_Flags flags)
|
||||
#define custom_memory_free_sig() void custom_memory_free(Application_Links* app, void* ptr, i32 size)
|
||||
#define custom_push_4ed_path_sig() String_Const_u8 custom_push_4ed_path(Application_Links* app, Arena* arena)
|
||||
#define custom_show_mouse_cursor_sig() void custom_show_mouse_cursor(Application_Links* app, Mouse_Cursor_Show_Type show)
|
||||
#define custom_set_edit_finished_hook_repeat_speed_sig() b32 custom_set_edit_finished_hook_repeat_speed(Application_Links* app, u32 milliseconds)
|
||||
#define custom_set_fullscreen_sig() b32 custom_set_fullscreen(Application_Links* app, b32 full_screen)
|
||||
#define custom_is_fullscreen_sig() b32 custom_is_fullscreen(Application_Links* app)
|
||||
#define custom_send_exit_signal_sig() void custom_send_exit_signal(Application_Links* app)
|
||||
#define custom_set_window_title_sig() b32 custom_set_window_title(Application_Links* app, String_Const_u8 title)
|
||||
#define custom_get_microseconds_timestamp_sig() Microsecond_Time_Stamp custom_get_microseconds_timestamp(Application_Links* app)
|
||||
#define custom_draw_string_oriented_sig() Vec2 custom_draw_string_oriented(Application_Links* app, Face_ID font_id, String_Const_u8 str, Vec2 point, int_color color, u32 flags, Vec2 delta)
|
||||
#define custom_get_string_advance_sig() f32 custom_get_string_advance(Application_Links* app, Face_ID font_id, String_Const_u8 str)
|
||||
#define custom_draw_rectangle_sig() void custom_draw_rectangle(Application_Links* app, Rect_f32 rect, int_color color)
|
||||
|
@ -327,19 +318,10 @@ typedef void custom_get_theme_colors_type(Application_Links* app, Theme_Color* c
|
|||
typedef argb_color custom_finalize_color_type(Application_Links* app, int_color color);
|
||||
typedef String_Const_u8 custom_push_hot_directory_type(Application_Links* app, Arena* arena);
|
||||
typedef b32 custom_set_hot_directory_type(Application_Links* app, String_Const_u8 string);
|
||||
typedef File_List custom_get_file_list_type(Application_Links* app, Arena* arena, String_Const_u8 directory);
|
||||
typedef void custom_set_gui_up_down_keys_type(Application_Links* app, Key_Code up_key, Key_Modifier up_key_modifier, Key_Code down_key, Key_Modifier down_key_modifier);
|
||||
typedef void* custom_memory_allocate_type(Application_Links* app, i32 size);
|
||||
typedef b32 custom_memory_set_protection_type(Application_Links* app, void* ptr, i32 size, Memory_Protect_Flags flags);
|
||||
typedef void custom_memory_free_type(Application_Links* app, void* ptr, i32 size);
|
||||
typedef String_Const_u8 custom_push_4ed_path_type(Application_Links* app, Arena* arena);
|
||||
typedef void custom_show_mouse_cursor_type(Application_Links* app, Mouse_Cursor_Show_Type show);
|
||||
typedef b32 custom_set_edit_finished_hook_repeat_speed_type(Application_Links* app, u32 milliseconds);
|
||||
typedef b32 custom_set_fullscreen_type(Application_Links* app, b32 full_screen);
|
||||
typedef b32 custom_is_fullscreen_type(Application_Links* app);
|
||||
typedef void custom_send_exit_signal_type(Application_Links* app);
|
||||
typedef b32 custom_set_window_title_type(Application_Links* app, String_Const_u8 title);
|
||||
typedef Microsecond_Time_Stamp custom_get_microseconds_timestamp_type(Application_Links* app);
|
||||
typedef Vec2 custom_draw_string_oriented_type(Application_Links* app, Face_ID font_id, String_Const_u8 str, Vec2 point, int_color color, u32 flags, Vec2 delta);
|
||||
typedef f32 custom_get_string_advance_type(Application_Links* app, Face_ID font_id, String_Const_u8 str);
|
||||
typedef void custom_draw_rectangle_type(Application_Links* app, Rect_f32 rect, int_color color);
|
||||
|
@ -508,19 +490,10 @@ custom_get_theme_colors_type *get_theme_colors;
|
|||
custom_finalize_color_type *finalize_color;
|
||||
custom_push_hot_directory_type *push_hot_directory;
|
||||
custom_set_hot_directory_type *set_hot_directory;
|
||||
custom_get_file_list_type *get_file_list;
|
||||
custom_set_gui_up_down_keys_type *set_gui_up_down_keys;
|
||||
custom_memory_allocate_type *memory_allocate;
|
||||
custom_memory_set_protection_type *memory_set_protection;
|
||||
custom_memory_free_type *memory_free;
|
||||
custom_push_4ed_path_type *push_4ed_path;
|
||||
custom_show_mouse_cursor_type *show_mouse_cursor;
|
||||
custom_set_edit_finished_hook_repeat_speed_type *set_edit_finished_hook_repeat_speed;
|
||||
custom_set_fullscreen_type *set_fullscreen;
|
||||
custom_is_fullscreen_type *is_fullscreen;
|
||||
custom_send_exit_signal_type *send_exit_signal;
|
||||
custom_set_window_title_type *set_window_title;
|
||||
custom_get_microseconds_timestamp_type *get_microseconds_timestamp;
|
||||
custom_draw_string_oriented_type *draw_string_oriented;
|
||||
custom_get_string_advance_type *get_string_advance;
|
||||
custom_draw_rectangle_type *draw_rectangle;
|
||||
|
@ -690,19 +663,10 @@ internal void get_theme_colors(Application_Links* app, Theme_Color* colors, i32
|
|||
internal argb_color finalize_color(Application_Links* app, int_color color);
|
||||
internal String_Const_u8 push_hot_directory(Application_Links* app, Arena* arena);
|
||||
internal b32 set_hot_directory(Application_Links* app, String_Const_u8 string);
|
||||
internal File_List get_file_list(Application_Links* app, Arena* arena, String_Const_u8 directory);
|
||||
internal void set_gui_up_down_keys(Application_Links* app, Key_Code up_key, Key_Modifier up_key_modifier, Key_Code down_key, Key_Modifier down_key_modifier);
|
||||
internal void* memory_allocate(Application_Links* app, i32 size);
|
||||
internal b32 memory_set_protection(Application_Links* app, void* ptr, i32 size, Memory_Protect_Flags flags);
|
||||
internal void memory_free(Application_Links* app, void* ptr, i32 size);
|
||||
internal String_Const_u8 push_4ed_path(Application_Links* app, Arena* arena);
|
||||
internal void show_mouse_cursor(Application_Links* app, Mouse_Cursor_Show_Type show);
|
||||
internal b32 set_edit_finished_hook_repeat_speed(Application_Links* app, u32 milliseconds);
|
||||
internal b32 set_fullscreen(Application_Links* app, b32 full_screen);
|
||||
internal b32 is_fullscreen(Application_Links* app);
|
||||
internal void send_exit_signal(Application_Links* app);
|
||||
internal b32 set_window_title(Application_Links* app, String_Const_u8 title);
|
||||
internal Microsecond_Time_Stamp get_microseconds_timestamp(Application_Links* app);
|
||||
internal Vec2 draw_string_oriented(Application_Links* app, Face_ID font_id, String_Const_u8 str, Vec2 point, int_color color, u32 flags, Vec2 delta);
|
||||
internal f32 get_string_advance(Application_Links* app, Face_ID font_id, String_Const_u8 str);
|
||||
internal void draw_rectangle(Application_Links* app, Rect_f32 rect, int_color color);
|
||||
|
@ -872,19 +836,10 @@ global custom_get_theme_colors_type *get_theme_colors = 0;
|
|||
global custom_finalize_color_type *finalize_color = 0;
|
||||
global custom_push_hot_directory_type *push_hot_directory = 0;
|
||||
global custom_set_hot_directory_type *set_hot_directory = 0;
|
||||
global custom_get_file_list_type *get_file_list = 0;
|
||||
global custom_set_gui_up_down_keys_type *set_gui_up_down_keys = 0;
|
||||
global custom_memory_allocate_type *memory_allocate = 0;
|
||||
global custom_memory_set_protection_type *memory_set_protection = 0;
|
||||
global custom_memory_free_type *memory_free = 0;
|
||||
global custom_push_4ed_path_type *push_4ed_path = 0;
|
||||
global custom_show_mouse_cursor_type *show_mouse_cursor = 0;
|
||||
global custom_set_edit_finished_hook_repeat_speed_type *set_edit_finished_hook_repeat_speed = 0;
|
||||
global custom_set_fullscreen_type *set_fullscreen = 0;
|
||||
global custom_is_fullscreen_type *is_fullscreen = 0;
|
||||
global custom_send_exit_signal_type *send_exit_signal = 0;
|
||||
global custom_set_window_title_type *set_window_title = 0;
|
||||
global custom_get_microseconds_timestamp_type *get_microseconds_timestamp = 0;
|
||||
global custom_draw_string_oriented_type *draw_string_oriented = 0;
|
||||
global custom_get_string_advance_type *get_string_advance = 0;
|
||||
global custom_draw_rectangle_type *draw_rectangle = 0;
|
||||
|
|
|
@ -147,19 +147,10 @@ api(custom) function void get_theme_colors(Application_Links* app, Theme_Color*
|
|||
api(custom) function argb_color finalize_color(Application_Links* app, int_color color);
|
||||
api(custom) function String_Const_u8 push_hot_directory(Application_Links* app, Arena* arena);
|
||||
api(custom) function b32 set_hot_directory(Application_Links* app, String_Const_u8 string);
|
||||
api(custom) function File_List get_file_list(Application_Links* app, Arena* arena, String_Const_u8 directory);
|
||||
api(custom) function void set_gui_up_down_keys(Application_Links* app, Key_Code up_key, Key_Modifier up_key_modifier, Key_Code down_key, Key_Modifier down_key_modifier);
|
||||
api(custom) function void* memory_allocate(Application_Links* app, i32 size);
|
||||
api(custom) function b32 memory_set_protection(Application_Links* app, void* ptr, i32 size, Memory_Protect_Flags flags);
|
||||
api(custom) function void memory_free(Application_Links* app, void* ptr, i32 size);
|
||||
api(custom) function String_Const_u8 push_4ed_path(Application_Links* app, Arena* arena);
|
||||
api(custom) function void show_mouse_cursor(Application_Links* app, Mouse_Cursor_Show_Type show);
|
||||
api(custom) function b32 set_edit_finished_hook_repeat_speed(Application_Links* app, u32 milliseconds);
|
||||
api(custom) function b32 set_fullscreen(Application_Links* app, b32 full_screen);
|
||||
api(custom) function b32 is_fullscreen(Application_Links* app);
|
||||
api(custom) function void send_exit_signal(Application_Links* app);
|
||||
api(custom) function b32 set_window_title(Application_Links* app, String_Const_u8 title);
|
||||
api(custom) function Microsecond_Time_Stamp get_microseconds_timestamp(Application_Links* app);
|
||||
api(custom) function Vec2 draw_string_oriented(Application_Links* app, Face_ID font_id, String_Const_u8 str, Vec2 point, int_color color, u32 flags, Vec2 delta);
|
||||
api(custom) function f32 get_string_advance(Application_Links* app, Face_ID font_id, String_Const_u8 str);
|
||||
api(custom) function void draw_rectangle(Application_Links* app, Rect_f32 rect, int_color color);
|
||||
|
|
|
@ -14,16 +14,17 @@
|
|||
|
||||
#include "4coder_base_types.h"
|
||||
#include "4coder_table.h"
|
||||
#include "api/4coder_version.h"
|
||||
#include "4coder_version.h"
|
||||
|
||||
#include "api/4coder_keycodes.h"
|
||||
#include "api/4coder_default_colors.h"
|
||||
#include "api/4coder_types.h"
|
||||
#include "4coder_keycodes.h"
|
||||
#include "4coder_default_colors.h"
|
||||
#include "4coder_types.h"
|
||||
|
||||
#include "4ed_font_interface.h"
|
||||
#include "4ed_system_types.h"
|
||||
#include "4coder_system_types.h"
|
||||
#define STATIC_LINK_API
|
||||
#include "generated/system_api.h"
|
||||
|
||||
#include "4ed_font_interface.h"
|
||||
#define STATIC_LINK_API
|
||||
#include "generated/graphics_api.h"
|
||||
#define STATIC_LINK_API
|
||||
|
@ -106,12 +107,11 @@ struct Win32_Input_Chunk{
|
|||
#define SLASH '\\'
|
||||
#define DLL "dll"
|
||||
|
||||
#include "4ed_font_face.cpp"
|
||||
|
||||
#include "4ed_mem.cpp"
|
||||
#include "4coder_hash_functions.cpp"
|
||||
#include "4coder_system_allocator.cpp"
|
||||
|
||||
#include "4ed_system_allocator.cpp"
|
||||
#include "4ed_font_face.cpp"
|
||||
#include "4ed_mem.cpp"
|
||||
#include "4ed_font_set.cpp"
|
||||
|
||||
////////////////////////////////
|
||||
|
|
Loading…
Reference in New Issue