mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-07-31 11:20:03 +00:00
sketch out symbol lister view; float fuzzy matching code into base string layer; bugfix unnecessary ui layer view clamping
This commit is contained in:
@@ -70,24 +70,6 @@ struct DF_ExpandTreeTable
|
||||
DF_ExpandNode *free_node;
|
||||
};
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Fuzzy Matching
|
||||
|
||||
typedef struct DF_FuzzyMatchRangeNode DF_FuzzyMatchRangeNode;
|
||||
struct DF_FuzzyMatchRangeNode
|
||||
{
|
||||
DF_FuzzyMatchRangeNode *next;
|
||||
Rng1U64 range;
|
||||
};
|
||||
|
||||
typedef struct DF_FuzzyMatchRangeList DF_FuzzyMatchRangeList;
|
||||
struct DF_FuzzyMatchRangeList
|
||||
{
|
||||
DF_FuzzyMatchRangeNode *first;
|
||||
DF_FuzzyMatchRangeNode *last;
|
||||
U64 count;
|
||||
};
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Control Context Types
|
||||
|
||||
|
||||
+6
-43
@@ -65,43 +65,6 @@ df_path_query_from_string(String8 string)
|
||||
return path_query;
|
||||
}
|
||||
|
||||
internal DF_FuzzyMatchRangeList
|
||||
df_fuzzy_match_find(Arena *arena, String8List needles, String8 haystack)
|
||||
{
|
||||
DF_FuzzyMatchRangeList result = {0};
|
||||
for(String8Node *needle_n = needles.first; needle_n != 0; needle_n = needle_n->next)
|
||||
{
|
||||
U64 find_pos = 0;
|
||||
for(;find_pos < haystack.size;)
|
||||
{
|
||||
find_pos = str8_find_needle(haystack, find_pos, needle_n->string, StringMatchFlag_CaseInsensitive);
|
||||
B32 is_in_gathered_ranges = 0;
|
||||
for(DF_FuzzyMatchRangeNode *n = result.first; n != 0; n = n->next)
|
||||
{
|
||||
if(n->range.min <= find_pos && find_pos < n->range.max)
|
||||
{
|
||||
is_in_gathered_ranges = 1;
|
||||
find_pos = n->range.max;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!is_in_gathered_ranges)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(find_pos < haystack.size)
|
||||
{
|
||||
Rng1U64 range = r1u64(find_pos, find_pos+needle_n->string.size);
|
||||
DF_FuzzyMatchRangeNode *n = push_array(arena, DF_FuzzyMatchRangeNode, 1);
|
||||
n->range = range;
|
||||
SLLQueuePush(result.first, result.last, n);
|
||||
result.count += 1;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: View Type Functions
|
||||
|
||||
@@ -3791,7 +3754,7 @@ df_window_update_and_render(Arena *arena, OS_EventList *events, DF_Window *ws, D
|
||||
{
|
||||
item.string = n->string;
|
||||
item.kind_string = str8_lit("Local");
|
||||
item.matches = df_fuzzy_match_find(scratch.arena, search_needles, n->string);
|
||||
item.matches = fuzzy_match_find(scratch.arena, search_needles, n->string);
|
||||
}
|
||||
if(search_needles.node_count == 0 || item.matches.count != 0)
|
||||
{
|
||||
@@ -3815,7 +3778,7 @@ df_window_update_and_render(Arena *arena, OS_EventList *events, DF_Window *ws, D
|
||||
{
|
||||
item.string = reg_names[idx];
|
||||
item.kind_string = str8_lit("Register");
|
||||
item.matches = df_fuzzy_match_find(scratch.arena, search_needles, reg_names[idx]);
|
||||
item.matches = fuzzy_match_find(scratch.arena, search_needles, reg_names[idx]);
|
||||
}
|
||||
if(search_needles.node_count == 0 || item.matches.count != 0)
|
||||
{
|
||||
@@ -3831,7 +3794,7 @@ df_window_update_and_render(Arena *arena, OS_EventList *events, DF_Window *ws, D
|
||||
{
|
||||
item.string = alias_names[idx];
|
||||
item.kind_string = str8_lit("Reg. Alias");
|
||||
item.matches = df_fuzzy_match_find(scratch.arena, search_needles, alias_names[idx]);
|
||||
item.matches = fuzzy_match_find(scratch.arena, search_needles, alias_names[idx]);
|
||||
}
|
||||
if(search_needles.node_count == 0 || item.matches.count != 0)
|
||||
{
|
||||
@@ -3850,7 +3813,7 @@ df_window_update_and_render(Arena *arena, OS_EventList *events, DF_Window *ws, D
|
||||
{
|
||||
item.string = spec->info.string;
|
||||
item.kind_string = str8_lit("View Rule");
|
||||
item.matches = df_fuzzy_match_find(scratch.arena, search_needles, spec->info.string);
|
||||
item.matches = fuzzy_match_find(scratch.arena, search_needles, spec->info.string);
|
||||
}
|
||||
if(search_needles.node_count == 0 || item.matches.count != 0)
|
||||
{
|
||||
@@ -8194,14 +8157,14 @@ df_cfg_strings_from_gfx(Arena *arena, String8 root_path, DF_CfgSrc source)
|
||||
//~ rjf: UI Helpers
|
||||
|
||||
internal void
|
||||
df_box_equip_fuzzy_match_range_list_vis(UI_Box *box, DF_FuzzyMatchRangeList range_list)
|
||||
df_box_equip_fuzzy_match_range_list_vis(UI_Box *box, FuzzyMatchRangeList range_list)
|
||||
{
|
||||
UI_Parent(box)
|
||||
{
|
||||
String8 display_string = ui_box_display_string(box);
|
||||
F_Metrics metrics = f_metrics_from_tag_size(box->font, box->font_size);
|
||||
F32 line_height = f_line_height_from_metrics(&metrics);
|
||||
for(DF_FuzzyMatchRangeNode *match_n = range_list.first; match_n != 0; match_n = match_n->next)
|
||||
for(FuzzyMatchRangeNode *match_n = range_list.first; match_n != 0; match_n = match_n->next)
|
||||
{
|
||||
Rng1F32 match_pixel_range =
|
||||
{
|
||||
|
||||
+2
-3
@@ -483,7 +483,7 @@ struct DF_AutoCompListerItem
|
||||
{
|
||||
String8 string;
|
||||
String8 kind_string;
|
||||
DF_FuzzyMatchRangeList matches;
|
||||
FuzzyMatchRangeList matches;
|
||||
};
|
||||
|
||||
typedef struct DF_AutoCompListerItemChunkNode DF_AutoCompListerItemChunkNode;
|
||||
@@ -804,7 +804,6 @@ global DF_DragDropPayload df_g_drag_drop_payload = {0};
|
||||
//~ rjf: Basic Helpers
|
||||
|
||||
internal DF_PathQuery df_path_query_from_string(String8 string);
|
||||
internal DF_FuzzyMatchRangeList df_fuzzy_match_find(Arena *arena, String8List needles, String8 haystack);
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: View Type Functions
|
||||
@@ -999,7 +998,7 @@ internal String8List df_cfg_strings_from_gfx(Arena *arena, String8 root_path, DF
|
||||
////////////////////////////////
|
||||
//~ rjf: UI Helpers
|
||||
|
||||
internal void df_box_equip_fuzzy_match_range_list_vis(UI_Box *box, DF_FuzzyMatchRangeList range_list);
|
||||
internal void df_box_equip_fuzzy_match_range_list_vis(UI_Box *box, FuzzyMatchRangeList range_list);
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: UI Widgets: Fancy Buttons
|
||||
|
||||
@@ -187,6 +187,7 @@ DF_GfxViewTable:
|
||||
{ FileSystem "file_system" "File System" Null FileOutline 0 0 0 0 "" }
|
||||
{ SystemProcesses "system_processes" "System Processes" Null Null 0 0 0 0 "" }
|
||||
{ EntityLister "entity_lister" "Entity List" EntityKindName Null 0 0 0 0 "" }
|
||||
{ SymbolLister "symbol_lister" "Symbols" Null Null 0 0 0 0 "" }
|
||||
{ Target "target" "Target" EntityName Target 1 0 0 0 "" }
|
||||
{ Targets "targets" "Targets" Null Target 0 1 0 1 "Displays a list of all targets, as well as controls for enabling, disabling, launching, editing, or deleting each target. For more information on targets, read the `Targets` section." }
|
||||
{ FilePathMap "file_path_map" "File Path Map" Null FileOutline 0 1 0 1 "Displays a table of *path maps*. Each path map is a pair of file or folder paths, one being a 'source' path, and one being a 'destination' path. These pairs are used by the debugger when automatically searching for specific files - for instance, when attempting to snap to a source code location specified by debug info. If debug info refers to a path on the machine on which a target executable was originally built, but that path is not valid on the debugger machine, but some alternative path exists, then path maps may be used to redirect the debugger from the debug info's specified paths to the associated appropriate debugger machine file paths." }
|
||||
@@ -281,6 +282,7 @@ DF_CmdParamSlot2ViewSpecMap:
|
||||
{FilePath "file_system" }
|
||||
{CmdSpec "commands" }
|
||||
{ID "system_processes" }
|
||||
{String "symbol_lister" }
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
|
||||
+31
-9
@@ -179,9 +179,9 @@ df_cmd_lister_item_list_from_needle(Arena *arena, String8 needle)
|
||||
String8 cmd_display_name = spec->info.display_name;
|
||||
String8 cmd_desc = spec->info.description;
|
||||
String8 cmd_tags = spec->info.search_tags;
|
||||
DF_FuzzyMatchRangeList name_matches = df_fuzzy_match_find(arena, search_needles, cmd_display_name);
|
||||
DF_FuzzyMatchRangeList desc_matches = df_fuzzy_match_find(arena, search_needles, cmd_desc);
|
||||
DF_FuzzyMatchRangeList tags_matches = df_fuzzy_match_find(arena, search_needles, cmd_tags);
|
||||
FuzzyMatchRangeList name_matches = fuzzy_match_find(arena, search_needles, cmd_display_name);
|
||||
FuzzyMatchRangeList desc_matches = fuzzy_match_find(arena, search_needles, cmd_desc);
|
||||
FuzzyMatchRangeList tags_matches = fuzzy_match_find(arena, search_needles, cmd_tags);
|
||||
if(name_matches.count == search_needles.node_count ||
|
||||
desc_matches.count == search_needles.node_count ||
|
||||
tags_matches.count > 0 ||
|
||||
@@ -276,12 +276,12 @@ df_process_info_list_from_query(Arena *arena, String8 query)
|
||||
}
|
||||
|
||||
// rjf: gather fuzzy matches
|
||||
DF_FuzzyMatchRangeList attached_match_ranges = {0};
|
||||
DF_FuzzyMatchRangeList name_match_ranges = df_fuzzy_match_find(arena, needles, info.name);
|
||||
DF_FuzzyMatchRangeList pid_match_ranges = df_fuzzy_match_find(arena, needles, push_str8f(scratch.arena, "%i", info.pid));
|
||||
FuzzyMatchRangeList attached_match_ranges = {0};
|
||||
FuzzyMatchRangeList name_match_ranges = fuzzy_match_find(arena, needles, info.name);
|
||||
FuzzyMatchRangeList pid_match_ranges = fuzzy_match_find(arena, needles, push_str8f(scratch.arena, "%i", info.pid));
|
||||
if(is_attached)
|
||||
{
|
||||
attached_match_ranges = df_fuzzy_match_find(arena, needles, str8_lit("[attached]"));
|
||||
attached_match_ranges = fuzzy_match_find(arena, needles, str8_lit("[attached]"));
|
||||
}
|
||||
|
||||
// rjf: determine if this item is filtered out
|
||||
@@ -355,7 +355,7 @@ df_entity_lister_item_list_from_needle(Arena *arena, DF_EntityKind kind, DF_Enti
|
||||
if(!(entity->flags & omit_flags))
|
||||
{
|
||||
String8 display_string = df_display_string_from_entity(scratch.arena, entity);
|
||||
DF_FuzzyMatchRangeList match_rngs = df_fuzzy_match_find(arena, search_needles, display_string);
|
||||
FuzzyMatchRangeList match_rngs = fuzzy_match_find(arena, search_needles, display_string);
|
||||
if(match_rngs.count != 0 || needle.size == 0)
|
||||
{
|
||||
DF_EntityListerItemNode *item_n = push_array(arena, DF_EntityListerItemNode, 1);
|
||||
@@ -2119,7 +2119,7 @@ DF_VIEW_UI_FUNCTION_DEF(FileSystem)
|
||||
OS_FileIter *it = os_file_iter_begin(scratch.arena, path_query.path, 0);
|
||||
for(OS_FileInfo info = {0}; os_file_iter_next(scratch.arena, it, &info);)
|
||||
{
|
||||
DF_FuzzyMatchRangeList match_ranges = df_fuzzy_match_find(fs->cached_files_arena, search_needles, info.name);
|
||||
FuzzyMatchRangeList match_ranges = fuzzy_match_find(fs->cached_files_arena, search_needles, info.name);
|
||||
B32 fits_search = (search_needles.node_count == 0 || match_ranges.count == search_needles.node_count);
|
||||
B32 fits_dir_only = !!(info.props.flags & FilePropertyFlag_IsFolder) || !dir_selection;
|
||||
if(fits_search && fits_dir_only)
|
||||
@@ -2785,6 +2785,28 @@ DF_VIEW_UI_FUNCTION_DEF(EntityLister)
|
||||
ProfEnd();
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: SymbolLister @view_hook_impl
|
||||
|
||||
DF_VIEW_SETUP_FUNCTION_DEF(SymbolLister)
|
||||
{
|
||||
}
|
||||
|
||||
DF_VIEW_STRING_FROM_STATE_FUNCTION_DEF(SymbolLister)
|
||||
{
|
||||
return str8_lit("");
|
||||
}
|
||||
|
||||
DF_VIEW_CMD_FUNCTION_DEF(SymbolLister)
|
||||
{
|
||||
}
|
||||
|
||||
DF_VIEW_UI_FUNCTION_DEF(SymbolLister)
|
||||
{
|
||||
String8 query = str8(view->query_buffer, view->query_string_size);
|
||||
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Target @view_hook_impl
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ struct DF_FileInfo
|
||||
{
|
||||
String8 filename;
|
||||
FileProperties props;
|
||||
DF_FuzzyMatchRangeList match_ranges;
|
||||
FuzzyMatchRangeList match_ranges;
|
||||
};
|
||||
|
||||
typedef struct DF_FileInfoNode DF_FileInfoNode;
|
||||
@@ -66,9 +66,9 @@ struct DF_CmdListerItem
|
||||
DF_CmdSpec *cmd_spec;
|
||||
U64 registrar_idx;
|
||||
U64 ordering_idx;
|
||||
DF_FuzzyMatchRangeList name_match_ranges;
|
||||
DF_FuzzyMatchRangeList desc_match_ranges;
|
||||
DF_FuzzyMatchRangeList tags_match_ranges;
|
||||
FuzzyMatchRangeList name_match_ranges;
|
||||
FuzzyMatchRangeList desc_match_ranges;
|
||||
FuzzyMatchRangeList tags_match_ranges;
|
||||
};
|
||||
|
||||
typedef struct DF_CmdListerItemNode DF_CmdListerItemNode;
|
||||
@@ -113,7 +113,7 @@ typedef struct DF_EntityListerItem DF_EntityListerItem;
|
||||
struct DF_EntityListerItem
|
||||
{
|
||||
DF_Entity *entity;
|
||||
DF_FuzzyMatchRangeList name_match_ranges;
|
||||
FuzzyMatchRangeList name_match_ranges;
|
||||
};
|
||||
|
||||
typedef struct DF_EntityListerItemNode DF_EntityListerItemNode;
|
||||
@@ -146,9 +146,9 @@ struct DF_ProcessInfo
|
||||
{
|
||||
DEMON_ProcessInfo info;
|
||||
B32 is_attached;
|
||||
DF_FuzzyMatchRangeList attached_match_ranges;
|
||||
DF_FuzzyMatchRangeList name_match_ranges;
|
||||
DF_FuzzyMatchRangeList pid_match_ranges;
|
||||
FuzzyMatchRangeList attached_match_ranges;
|
||||
FuzzyMatchRangeList name_match_ranges;
|
||||
FuzzyMatchRangeList pid_match_ranges;
|
||||
};
|
||||
|
||||
typedef struct DF_ProcessInfoNode DF_ProcessInfoNode;
|
||||
|
||||
@@ -14,6 +14,7 @@ DF_GfxViewKind_Commands,
|
||||
DF_GfxViewKind_FileSystem,
|
||||
DF_GfxViewKind_SystemProcesses,
|
||||
DF_GfxViewKind_EntityLister,
|
||||
DF_GfxViewKind_SymbolLister,
|
||||
DF_GfxViewKind_Target,
|
||||
DF_GfxViewKind_Targets,
|
||||
DF_GfxViewKind_FilePathMap,
|
||||
@@ -113,6 +114,7 @@ DF_VIEW_SETUP_FUNCTION_DEF(Commands);
|
||||
DF_VIEW_SETUP_FUNCTION_DEF(FileSystem);
|
||||
DF_VIEW_SETUP_FUNCTION_DEF(SystemProcesses);
|
||||
DF_VIEW_SETUP_FUNCTION_DEF(EntityLister);
|
||||
DF_VIEW_SETUP_FUNCTION_DEF(SymbolLister);
|
||||
DF_VIEW_SETUP_FUNCTION_DEF(Target);
|
||||
DF_VIEW_SETUP_FUNCTION_DEF(Targets);
|
||||
DF_VIEW_SETUP_FUNCTION_DEF(FilePathMap);
|
||||
@@ -137,6 +139,7 @@ DF_VIEW_STRING_FROM_STATE_FUNCTION_DEF(Commands);
|
||||
DF_VIEW_STRING_FROM_STATE_FUNCTION_DEF(FileSystem);
|
||||
DF_VIEW_STRING_FROM_STATE_FUNCTION_DEF(SystemProcesses);
|
||||
DF_VIEW_STRING_FROM_STATE_FUNCTION_DEF(EntityLister);
|
||||
DF_VIEW_STRING_FROM_STATE_FUNCTION_DEF(SymbolLister);
|
||||
DF_VIEW_STRING_FROM_STATE_FUNCTION_DEF(Target);
|
||||
DF_VIEW_STRING_FROM_STATE_FUNCTION_DEF(Targets);
|
||||
DF_VIEW_STRING_FROM_STATE_FUNCTION_DEF(FilePathMap);
|
||||
@@ -161,6 +164,7 @@ DF_VIEW_CMD_FUNCTION_DEF(Commands);
|
||||
DF_VIEW_CMD_FUNCTION_DEF(FileSystem);
|
||||
DF_VIEW_CMD_FUNCTION_DEF(SystemProcesses);
|
||||
DF_VIEW_CMD_FUNCTION_DEF(EntityLister);
|
||||
DF_VIEW_CMD_FUNCTION_DEF(SymbolLister);
|
||||
DF_VIEW_CMD_FUNCTION_DEF(Target);
|
||||
DF_VIEW_CMD_FUNCTION_DEF(Targets);
|
||||
DF_VIEW_CMD_FUNCTION_DEF(FilePathMap);
|
||||
@@ -185,6 +189,7 @@ DF_VIEW_UI_FUNCTION_DEF(Commands);
|
||||
DF_VIEW_UI_FUNCTION_DEF(FileSystem);
|
||||
DF_VIEW_UI_FUNCTION_DEF(SystemProcesses);
|
||||
DF_VIEW_UI_FUNCTION_DEF(EntityLister);
|
||||
DF_VIEW_UI_FUNCTION_DEF(SymbolLister);
|
||||
DF_VIEW_UI_FUNCTION_DEF(Target);
|
||||
DF_VIEW_UI_FUNCTION_DEF(Targets);
|
||||
DF_VIEW_UI_FUNCTION_DEF(FilePathMap);
|
||||
@@ -899,6 +904,7 @@ DF_CmdParamSlot_EntityList,
|
||||
DF_CmdParamSlot_FilePath,
|
||||
DF_CmdParamSlot_CmdSpec,
|
||||
DF_CmdParamSlot_ID,
|
||||
DF_CmdParamSlot_String,
|
||||
};
|
||||
|
||||
String8 df_g_cmd_param_slot_2_view_spec_dst_map[] =
|
||||
@@ -908,6 +914,7 @@ str8_lit_comp("entity_lister"),
|
||||
str8_lit_comp("file_system"),
|
||||
str8_lit_comp("commands"),
|
||||
str8_lit_comp("system_processes"),
|
||||
str8_lit_comp("symbol_lister"),
|
||||
};
|
||||
|
||||
DF_StringBindingPair df_g_default_binding_table[] =
|
||||
@@ -1034,6 +1041,7 @@ DF_ViewSpecInfo df_g_gfx_view_kind_spec_info_table[] =
|
||||
{(0|0*DF_ViewSpecFlag_ParameterizedByEntity|0*DF_ViewSpecFlag_CanSerialize|0*DF_ViewSpecFlag_CanSerializeEntityPath), str8_lit_comp("file_system"), str8_lit_comp("File System"), DF_NameKind_Null, DF_IconKind_FileOutline, DF_VIEW_SETUP_FUNCTION_NAME(FileSystem), DF_VIEW_STRING_FROM_STATE_FUNCTION_NAME(FileSystem), DF_VIEW_CMD_FUNCTION_NAME(FileSystem), DF_VIEW_UI_FUNCTION_NAME(FileSystem)},
|
||||
{(0|0*DF_ViewSpecFlag_ParameterizedByEntity|0*DF_ViewSpecFlag_CanSerialize|0*DF_ViewSpecFlag_CanSerializeEntityPath), str8_lit_comp("system_processes"), str8_lit_comp("System Processes"), DF_NameKind_Null, DF_IconKind_Null, DF_VIEW_SETUP_FUNCTION_NAME(SystemProcesses), DF_VIEW_STRING_FROM_STATE_FUNCTION_NAME(SystemProcesses), DF_VIEW_CMD_FUNCTION_NAME(SystemProcesses), DF_VIEW_UI_FUNCTION_NAME(SystemProcesses)},
|
||||
{(0|0*DF_ViewSpecFlag_ParameterizedByEntity|0*DF_ViewSpecFlag_CanSerialize|0*DF_ViewSpecFlag_CanSerializeEntityPath), str8_lit_comp("entity_lister"), str8_lit_comp("Entity List"), DF_NameKind_EntityKindName, DF_IconKind_Null, DF_VIEW_SETUP_FUNCTION_NAME(EntityLister), DF_VIEW_STRING_FROM_STATE_FUNCTION_NAME(EntityLister), DF_VIEW_CMD_FUNCTION_NAME(EntityLister), DF_VIEW_UI_FUNCTION_NAME(EntityLister)},
|
||||
{(0|0*DF_ViewSpecFlag_ParameterizedByEntity|0*DF_ViewSpecFlag_CanSerialize|0*DF_ViewSpecFlag_CanSerializeEntityPath), str8_lit_comp("symbol_lister"), str8_lit_comp("Symbols"), DF_NameKind_Null, DF_IconKind_Null, DF_VIEW_SETUP_FUNCTION_NAME(SymbolLister), DF_VIEW_STRING_FROM_STATE_FUNCTION_NAME(SymbolLister), DF_VIEW_CMD_FUNCTION_NAME(SymbolLister), DF_VIEW_UI_FUNCTION_NAME(SymbolLister)},
|
||||
{(0|1*DF_ViewSpecFlag_ParameterizedByEntity|0*DF_ViewSpecFlag_CanSerialize|0*DF_ViewSpecFlag_CanSerializeEntityPath), str8_lit_comp("target"), str8_lit_comp("Target"), DF_NameKind_EntityName, DF_IconKind_Target, DF_VIEW_SETUP_FUNCTION_NAME(Target), DF_VIEW_STRING_FROM_STATE_FUNCTION_NAME(Target), DF_VIEW_CMD_FUNCTION_NAME(Target), DF_VIEW_UI_FUNCTION_NAME(Target)},
|
||||
{(0|0*DF_ViewSpecFlag_ParameterizedByEntity|1*DF_ViewSpecFlag_CanSerialize|0*DF_ViewSpecFlag_CanSerializeEntityPath), str8_lit_comp("targets"), str8_lit_comp("Targets"), DF_NameKind_Null, DF_IconKind_Target, DF_VIEW_SETUP_FUNCTION_NAME(Targets), DF_VIEW_STRING_FROM_STATE_FUNCTION_NAME(Targets), DF_VIEW_CMD_FUNCTION_NAME(Targets), DF_VIEW_UI_FUNCTION_NAME(Targets)},
|
||||
{(0|0*DF_ViewSpecFlag_ParameterizedByEntity|1*DF_ViewSpecFlag_CanSerialize|0*DF_ViewSpecFlag_CanSerializeEntityPath), str8_lit_comp("file_path_map"), str8_lit_comp("File Path Map"), DF_NameKind_Null, DF_IconKind_FileOutline, DF_VIEW_SETUP_FUNCTION_NAME(FilePathMap), DF_VIEW_STRING_FROM_STATE_FUNCTION_NAME(FilePathMap), DF_VIEW_CMD_FUNCTION_NAME(FilePathMap), DF_VIEW_UI_FUNCTION_NAME(FilePathMap)},
|
||||
|
||||
Reference in New Issue
Block a user