3 #include "../../debug_ui.h"
5 #include <Strings/components/utils/string/string.h>
8 #include "components/3rdparty/imgui/misc/imgui_stdlib.h"
18 char search_buffer[128];
19 bool use_columns =
true;
20 std::string current_string_id =
"";
22 void GenerateStringControl(BlamEngineString
string)
24 ImGui::PushID(std::string(
"#_stringedit_" +
string.
id).c_str());
25 ImGui::InputText(
string.
id.c_str(), &
string.text, ImGuiInputTextFlags_ReadOnly);
34 if (ImGui::Begin(
ENGINE_TEXT(
"engine_text_viewer_title").c_str(), &
show))
36 ImGui::InputTextWithHint(
"",
ENGINE_TEXT(
"engine_text_viewer_search_placeholder").c_str(), search_buffer, 128);
38 ImGui::Checkbox(
ENGINE_TEXT(
"engine_text_viewer_use_columns").c_str(), &use_columns);
43 std::map<std::string, BlamEngineString>::iterator it;
45 std::string search_filter = std::string(search_buffer);
52 if (ImGui::ListBoxHeader(
"", ImVec2(ImGui::GetColumnWidth() - 15, -1)))
54 for (it = strings->begin(); it != strings->end(); it++)
56 bool is_active_item =
false;
57 bool matches_filter =
false;
59 if (it->first == current_string_id)
61 is_active_item =
true;
64 if (BlamStrings::Utils::String::Contains(it->second.id, search_filter) || search_filter.length() == 0
65 || BlamStrings::Utils::String::Contains(it->second.text, search_filter))
67 matches_filter =
true;
72 if (ImGui::Selectable(it->first.c_str(), is_active_item))
74 current_string_id = it->first;
79 ImGui::ListBoxFooter();
86 ImGui::TextWrapped(BlamStrings::Utils::String::Replace(
ENGINE_TEXT(current_string_id),
"\\r",
"").c_str());
90 ImGui::TextWrapped(BlamStrings::Utils::String::Replace(
ENGINE_TEXT(
"engine_text_viewer_nothing_selected"),
"\\r",
"").c_str());
95 for (it = strings->begin(); it != strings->end(); it++)
97 bool matches_filter =
false;
99 if (BlamStrings::Utils::String::Contains(it->second.id, search_filter) || search_filter.length() == 0
100 || BlamStrings::Utils::String::Contains(it->second.text, search_filter))
102 matches_filter =
true;
107 GenerateStringControl(it->second);