ui: Added filter to bookmarks view
This commit is contained in:
parent
d4dd57c7c8
commit
c1a2697e42
@ -132,6 +132,7 @@ namespace ImGui {
|
|||||||
bool InputText(const char* label, std::string &buffer, ImGuiInputTextFlags flags = ImGuiInputTextFlags_None);
|
bool InputText(const char* label, std::string &buffer, ImGuiInputTextFlags flags = ImGuiInputTextFlags_None);
|
||||||
bool InputText(const char *label, std::u8string &buffer, ImGuiInputTextFlags flags = ImGuiInputTextFlags_None);
|
bool InputText(const char *label, std::u8string &buffer, ImGuiInputTextFlags flags = ImGuiInputTextFlags_None);
|
||||||
bool InputTextMultiline(const char* label, std::string &buffer, const ImVec2& size = ImVec2(0, 0), ImGuiInputTextFlags flags = ImGuiInputTextFlags_None);
|
bool InputTextMultiline(const char* label, std::string &buffer, const ImVec2& size = ImVec2(0, 0), ImGuiInputTextFlags flags = ImGuiInputTextFlags_None);
|
||||||
|
bool InputTextWithHint(const char *label, const char *hint, std::string &buffer, ImGuiInputTextFlags flags = ImGuiInputTextFlags_None);
|
||||||
|
|
||||||
bool InputScalarCallback(const char* label, ImGuiDataType data_type, void* p_data, const char* format, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data);
|
bool InputScalarCallback(const char* label, ImGuiDataType data_type, void* p_data, const char* format, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data);
|
||||||
|
|
||||||
|
@ -553,6 +553,10 @@ namespace ImGui {
|
|||||||
return ImGui::InputText(label, buffer.data(), buffer.size() + 1, ImGuiInputTextFlags_CallbackResize | flags, ImGui::UpdateStringSizeCallback, &buffer);
|
return ImGui::InputText(label, buffer.data(), buffer.size() + 1, ImGuiInputTextFlags_CallbackResize | flags, ImGui::UpdateStringSizeCallback, &buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool InputTextWithHint(const char *label, const char *hint, std::string &buffer, ImGuiInputTextFlags flags) {
|
||||||
|
return ImGui::InputTextWithHint(label, hint, buffer.data(), buffer.size() + 1, ImGuiInputTextFlags_CallbackResize | flags, ImGui::UpdateStringSizeCallback, &buffer);
|
||||||
|
}
|
||||||
|
|
||||||
bool InputText(const char *label, std::u8string &buffer, ImGuiInputTextFlags flags) {
|
bool InputText(const char *label, std::u8string &buffer, ImGuiInputTextFlags flags) {
|
||||||
return ImGui::InputText(label, reinterpret_cast<char *>(buffer.data()), buffer.size() + 1, ImGuiInputTextFlags_CallbackResize | flags, ImGui::UpdateStringSizeCallback, &buffer);
|
return ImGui::InputText(label, reinterpret_cast<char *>(buffer.data()), buffer.size() + 1, ImGuiInputTextFlags_CallbackResize | flags, ImGui::UpdateStringSizeCallback, &buffer);
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,7 @@ namespace hex::plugin::builtin {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
std::list<ImHexApi::Bookmarks::Entry> m_bookmarks;
|
std::list<ImHexApi::Bookmarks::Entry> m_bookmarks;
|
||||||
|
std::string m_currFilter;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
@ -122,7 +122,14 @@ namespace hex::plugin::builtin {
|
|||||||
|
|
||||||
void ViewBookmarks::drawContent() {
|
void ViewBookmarks::drawContent() {
|
||||||
if (ImGui::Begin(View::toWindowName("hex.builtin.view.bookmarks.name").c_str(), &this->getWindowOpenState())) {
|
if (ImGui::Begin(View::toWindowName("hex.builtin.view.bookmarks.name").c_str(), &this->getWindowOpenState())) {
|
||||||
if (ImGui::BeginChild("##scrolling")) {
|
|
||||||
|
ImGui::PushItemWidth(ImGui::GetContentRegionAvailWidth());
|
||||||
|
ImGui::InputTextWithHint("##filter", "Filter", this->m_currFilter);
|
||||||
|
ImGui::PopItemWidth();
|
||||||
|
|
||||||
|
ImGui::NewLine();
|
||||||
|
|
||||||
|
if (ImGui::BeginChild("##bookmarks")) {
|
||||||
|
|
||||||
if (this->m_bookmarks.empty()) {
|
if (this->m_bookmarks.empty()) {
|
||||||
ImGui::TextFormattedCentered("hex.builtin.view.bookmarks.no_bookmarks"_lang);
|
ImGui::TextFormattedCentered("hex.builtin.view.bookmarks.no_bookmarks"_lang);
|
||||||
@ -133,6 +140,11 @@ namespace hex::plugin::builtin {
|
|||||||
for (auto iter = this->m_bookmarks.begin(); iter != this->m_bookmarks.end(); iter++) {
|
for (auto iter = this->m_bookmarks.begin(); iter != this->m_bookmarks.end(); iter++) {
|
||||||
auto &[region, name, comment, color, locked] = *iter;
|
auto &[region, name, comment, color, locked] = *iter;
|
||||||
|
|
||||||
|
if (!this->m_currFilter.empty()) {
|
||||||
|
if (!name.contains(this->m_currFilter) && !comment.contains(this->m_currFilter))
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
auto headerColor = ImColor(color);
|
auto headerColor = ImColor(color);
|
||||||
auto hoverColor = ImColor(color);
|
auto hoverColor = ImColor(color);
|
||||||
hoverColor.Value.w *= 1.3F;
|
hoverColor.Value.w *= 1.3F;
|
||||||
|
Loading…
Reference in New Issue
Block a user