consumption tracking completed

master
Allen Webster 2016-06-07 14:05:33 -04:00
parent 62aa4dac04
commit b41bdc9995
3 changed files with 41 additions and 14 deletions

26
4ed.cpp
View File

@ -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

View File

@ -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, ' ');
}
gui_do_text_field(target, string, message);
append(&string, input_event->consumer);
}
gui_do_text_field(target, string, empty_str);
}
}
}break;