From b41bdc999579c4056da6f0040c672314343e9c96 Mon Sep 17 00:00:00 2001 From: Allen Webster Date: Tue, 7 Jun 2016 14:05:33 -0400 Subject: [PATCH] consumption tracking completed --- 4coder_string.h | 14 +++++++------- 4ed.cpp | 26 +++++++++++++++++++++++++- 4ed_file_view.cpp | 15 +++++++++------ 3 files changed, 41 insertions(+), 14 deletions(-) diff --git a/4coder_string.h b/4coder_string.h index 4556ef5c..7b0da2e1 100644 --- a/4coder_string.h +++ b/4coder_string.h @@ -157,15 +157,15 @@ FSTRING_LINK fstr_bool copy_checked(String *dest, String src); FSTRING_LINK fstr_bool copy_partial(String *dest, char *src); FSTRING_LINK fstr_bool copy_partial(String *dest, String src); -FSTRING_INLINE int32_t copy(char *dest, char *src) { return copy_fast_unsafe(dest, src); } -FSTRING_INLINE void copy(String *dest, String src) { copy_checked(dest, src); } -FSTRING_INLINE void copy(String *dest, char *src) { copy_partial(dest, src); } +FSTRING_INLINE int32_t copy(char *dest, char *src) { return copy_fast_unsafe(dest, src); } +FSTRING_INLINE void copy(String *dest, String src) { copy_checked(dest, src); } +FSTRING_INLINE void copy(String *dest, char *src) { copy_partial(dest, src); } -FSTRING_LINK fstr_bool append_checked(String *dest, String src); -FSTRING_LINK fstr_bool append_partial(String *dest, char *src); -FSTRING_LINK fstr_bool append_partial(String *dest, String src); +FSTRING_LINK fstr_bool append_checked(String *dest, String src); +FSTRING_LINK fstr_bool append_partial(String *dest, char *src); +FSTRING_LINK fstr_bool append_partial(String *dest, String src); -FSTRING_LINK fstr_bool append(String *dest, char c); +FSTRING_LINK fstr_bool append(String *dest, char c); FSTRING_INLINE fstr_bool append(String *dest, String src) { return append_partial(dest, src); } FSTRING_INLINE fstr_bool append(String *dest, char *src) { return append_partial(dest, src); } FSTRING_INLINE fstr_bool terminate_with_null(String *str){ diff --git a/4ed.cpp b/4ed.cpp index 69ab9801..96e7db10 100644 --- a/4ed.cpp +++ b/4ed.cpp @@ -3235,6 +3235,9 @@ consume_input(Available_Input *available, i32 input_type, char *consumer){ copy(&str, consumer); terminate_with_null(&str); } + else{ + record->consumer[0] = 0; + } } App_Step_Sig(app_step){ @@ -3882,8 +3885,29 @@ App_Step_Sig(app_step){ // NOTE(allen): pass consumption data to debug #if FRED_INTERNAL { - //Debug_Data *debug = &models->debug; + Debug_Data *debug = &models->debug; + i32 count = debug->this_frame_count; + Consumption_Record *record = &available_input.records[Input_Esc]; + + if (record->consumed && record->consumer[0] != 0){ + Debug_Input_Event *event = debug->input_events; + for (i32 i = 0; i < count; ++i, ++event){ + if (event->key == key_esc){ + memcpy(event->consumer, record->consumer, sizeof(record->consumer)); + } + } + } + + record = &available_input.records[Input_AnyKey]; + if (record->consumed){ + Debug_Input_Event *event = debug->input_events; + for (i32 i = 0; i < count; ++i, ++event){ + if (event->consumer[0] == 0){ + memcpy(event->consumer, record->consumer, sizeof(record->consumer)); + } + } + } } #endif diff --git a/4ed_file_view.cpp b/4ed_file_view.cpp index 126af5bd..fa61fba9 100644 --- a/4ed_file_view.cpp +++ b/4ed_file_view.cpp @@ -4487,8 +4487,6 @@ step_file_view(System_Functions *system, View *view, View *active_view, Input_Su char space1[512]; String string = make_fixed_width_string(space1); - String message = string_zero(); - // Time Watcher { string.size = 0; @@ -4501,7 +4499,6 @@ step_file_view(System_Functions *system, View *view, View *active_view, Input_Su } // Incoming input - // - keeping track of where something get's consumed!? // - convert mouse clicks into key coded events??!! { Debug_Data *debug = &view->persistent.models->debug; @@ -4578,12 +4575,18 @@ step_file_view(System_Functions *system, View *view, View *active_view, Input_Su } } - message.size = 0; if (input_event->consumer[0] != 0){ - message = make_string_slowly(input_event->consumer); + i32 next_pos = 40; + i32 offset = next_pos - string.size; + if (offset < 0) offset = 0; + for (i32 r = 0; r < offset; ++r){ + append(&string, ' '); + } + + append(&string, input_event->consumer); } - gui_do_text_field(target, string, message); + gui_do_text_field(target, string, empty_str); } } }break;