From 69d000488e535d5414c9e4b374b556d15faad39f Mon Sep 17 00:00:00 2001 From: WerWolv Date: Sat, 6 Aug 2022 22:29:59 +0200 Subject: [PATCH] api: Added api function to create pattern --- lib/libimhex/include/hex/api/imhex_api.hpp | 2 ++ lib/libimhex/source/api/imhex_api.cpp | 7 +++++++ plugins/builtin/source/content/events.cpp | 3 +-- plugins/builtin/source/content/main_menu_items.cpp | 2 +- plugins/builtin/source/content/welcome_screen.cpp | 2 +- 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/libimhex/include/hex/api/imhex_api.hpp b/lib/libimhex/include/hex/api/imhex_api.hpp index 2a559bb82..eb987c854 100644 --- a/lib/libimhex/include/hex/api/imhex_api.hpp +++ b/lib/libimhex/include/hex/api/imhex_api.hpp @@ -135,6 +135,8 @@ namespace hex { void remove(prv::Provider *provider); + prv::Provider* createProvider(const std::string &unlocalizedName); + } namespace Tasks { diff --git a/lib/libimhex/source/api/imhex_api.cpp b/lib/libimhex/source/api/imhex_api.cpp index ff3c7d7a2..2b895e80c 100644 --- a/lib/libimhex/source/api/imhex_api.cpp +++ b/lib/libimhex/source/api/imhex_api.cpp @@ -271,6 +271,13 @@ namespace hex { delete provider; } + prv::Provider* createProvider(const std::string &unlocalizedName) { + prv::Provider* result = nullptr; + EventManager::post(unlocalizedName, &result); + + return result; + } + } diff --git a/plugins/builtin/source/content/events.cpp b/plugins/builtin/source/content/events.cpp index 6c36d4eb4..894a51daa 100644 --- a/plugins/builtin/source/content/events.cpp +++ b/plugins/builtin/source/content/events.cpp @@ -15,8 +15,7 @@ namespace hex::plugin::builtin { static void openFile(const std::fs::path &path) { - hex::prv::Provider *provider = nullptr; - EventManager::post("hex.builtin.provider.file", &provider); + auto provider = ImHexApi::Provider::createProvider("hex.builtin.provider.file"); if (auto fileProvider = dynamic_cast(provider)) { fileProvider->setPath(path); diff --git a/plugins/builtin/source/content/main_menu_items.cpp b/plugins/builtin/source/content/main_menu_items.cpp index 84914d8c7..accaeef51 100644 --- a/plugins/builtin/source/content/main_menu_items.cpp +++ b/plugins/builtin/source/content/main_menu_items.cpp @@ -32,7 +32,7 @@ namespace hex::plugin::builtin { for (const auto &unlocalizedProviderName : ContentRegistry::Provider::getEntries()) { if (ImGui::MenuItem(LangEntry(unlocalizedProviderName))) { - EventManager::post(unlocalizedProviderName, nullptr); + ImHexApi::Provider::createProvider(unlocalizedProviderName); } } diff --git a/plugins/builtin/source/content/welcome_screen.cpp b/plugins/builtin/source/content/welcome_screen.cpp index 39094d6a9..a563cb35d 100644 --- a/plugins/builtin/source/content/welcome_screen.cpp +++ b/plugins/builtin/source/content/welcome_screen.cpp @@ -144,7 +144,7 @@ namespace hex::plugin::builtin { for (const auto &unlocalizedProviderName : ContentRegistry::Provider::getEntries()) { if (ImGui::Hyperlink(LangEntry(unlocalizedProviderName))) { - EventManager::post(unlocalizedProviderName, nullptr); + ImHexApi::Provider::createProvider(unlocalizedProviderName); ImGui::CloseCurrentPopup(); } }