diff --git a/plugins/builtin/include/content/views/view_command_palette.hpp b/plugins/builtin/include/content/views/view_command_palette.hpp index 534c1dda3..9d3badd14 100644 --- a/plugins/builtin/include/content/views/view_command_palette.hpp +++ b/plugins/builtin/include/content/views/view_command_palette.hpp @@ -11,8 +11,6 @@ namespace hex::plugin::builtin { - namespace prv { class Provider; } - class ViewCommandPalette : public View { public: ViewCommandPalette(); @@ -20,12 +18,12 @@ namespace hex::plugin::builtin { void drawContent() override; void drawMenu() override; - bool isAvailable() override { return true; } - bool shouldProcess() override { return true; } + [[nodiscard]] bool isAvailable() const override { return true; } + [[nodiscard]] bool shouldProcess() const override { return true; } - bool hasViewMenuItemEntry() override { return false; } - ImVec2 getMinSize() override { return ImVec2(400, 100); } - ImVec2 getMaxSize() override { return ImVec2(400, 100); } + [[nodiscard]] bool hasViewMenuItemEntry() const override { return false; } + [[nodiscard]] ImVec2 getMinSize() const override { return ImVec2(400, 100); } + [[nodiscard]] ImVec2 getMaxSize() const override { return ImVec2(400, 100); } private: enum class MatchType { diff --git a/plugins/builtin/include/content/views/view_help.hpp b/plugins/builtin/include/content/views/view_help.hpp index 73b5c48ab..da24db5e7 100644 --- a/plugins/builtin/include/content/views/view_help.hpp +++ b/plugins/builtin/include/content/views/view_help.hpp @@ -20,11 +20,11 @@ namespace hex::plugin::builtin { void drawContent() override; void drawMenu() override; - bool isAvailable() override { return true; } + bool isAvailable() const override { return true; } - bool hasViewMenuItemEntry() override { return false; } + bool hasViewMenuItemEntry() const override { return false; } - ImVec2 getMinSize() override { + ImVec2 getMinSize() const override { return ImVec2(400, 300); } diff --git a/plugins/builtin/include/content/views/view_provider_settings.hpp b/plugins/builtin/include/content/views/view_provider_settings.hpp index 87b927319..822feef7e 100644 --- a/plugins/builtin/include/content/views/view_provider_settings.hpp +++ b/plugins/builtin/include/content/views/view_provider_settings.hpp @@ -13,14 +13,14 @@ namespace hex::plugin::builtin { class ViewProviderSettings : public hex::View { public: ViewProviderSettings(); - ~ViewProviderSettings(); + ~ViewProviderSettings() override; void drawContent() override; void drawAlwaysVisible() override; - bool hasViewMenuItemEntry() override; + [[nodiscard]] bool hasViewMenuItemEntry() const override; - bool isAvailable(); + [[nodiscard]] bool isAvailable() const override; }; } \ No newline at end of file diff --git a/plugins/builtin/include/content/views/view_settings.hpp b/plugins/builtin/include/content/views/view_settings.hpp index 973b11184..cd7ddc53f 100644 --- a/plugins/builtin/include/content/views/view_settings.hpp +++ b/plugins/builtin/include/content/views/view_settings.hpp @@ -14,12 +14,12 @@ namespace hex::plugin::builtin { void drawContent() override; void drawMenu() override; - bool isAvailable() override { return true; } + [[nodiscard]] bool isAvailable() const override { return true; } - bool hasViewMenuItemEntry() override { return false; } + [[nodiscard]] bool hasViewMenuItemEntry() const override { return false; } - ImVec2 getMinSize() { - return ImVec2(0, 0); + [[nodiscard]] ImVec2 getMinSize() const override { + return ImVec2(500, 300) * SharedData::globalScale; } }; diff --git a/plugins/builtin/include/content/views/view_store.hpp b/plugins/builtin/include/content/views/view_store.hpp index fdf324f37..1a4b93a2f 100644 --- a/plugins/builtin/include/content/views/view_store.hpp +++ b/plugins/builtin/include/content/views/view_store.hpp @@ -35,8 +35,8 @@ namespace hex::plugin::builtin { void drawContent() override; void drawMenu() override; - bool isAvailable() override { return true; } - bool hasViewMenuItemEntry() override { return false; } + [[nodiscard]] bool isAvailable() const override { return true; } + [[nodiscard]] bool hasViewMenuItemEntry() const override { return false; } private: Net m_net; diff --git a/plugins/builtin/source/content/views/view_provider_settings.cpp b/plugins/builtin/source/content/views/view_provider_settings.cpp index a5cc0de99..3aaea4eaf 100644 --- a/plugins/builtin/source/content/views/view_provider_settings.cpp +++ b/plugins/builtin/source/content/views/view_provider_settings.cpp @@ -52,11 +52,11 @@ namespace hex::plugin::builtin { } } - bool ViewProviderSettings::hasViewMenuItemEntry() { + bool ViewProviderSettings::hasViewMenuItemEntry() const { return this->isAvailable(); } - bool ViewProviderSettings::isAvailable() { + bool ViewProviderSettings::isAvailable() const { auto provider = hex::ImHexApi::Provider::get(); return provider != nullptr && provider->hasInterface(); diff --git a/plugins/builtin/source/content/views/view_settings.cpp b/plugins/builtin/source/content/views/view_settings.cpp index 596de3add..555b1245a 100644 --- a/plugins/builtin/source/content/views/view_settings.cpp +++ b/plugins/builtin/source/content/views/view_settings.cpp @@ -21,7 +21,6 @@ namespace hex::plugin::builtin { void ViewSettings::drawContent() { - ImGui::SetNextWindowSize(ImVec2(500, 300) * SharedData::globalScale, ImGuiCond_Always); if (ImGui::BeginPopupModal(View::toWindowName("hex.builtin.view.settings.name").c_str(), &this->getWindowOpenState(), ImGuiWindowFlags_NoResize)) { if (ImGui::BeginTabBar("settings")) { for (auto &[category, entries] : ContentRegistry::Settings::getEntries()) { diff --git a/plugins/libimhex/include/hex/views/view.hpp b/plugins/libimhex/include/hex/views/view.hpp index d24cd70a3..cbd6f5d34 100644 --- a/plugins/libimhex/include/hex/views/view.hpp +++ b/plugins/libimhex/include/hex/views/view.hpp @@ -33,8 +33,8 @@ namespace hex { virtual void drawContent() = 0; virtual void drawAlwaysVisible() { } virtual void drawMenu(); - virtual bool isAvailable(); - virtual bool shouldProcess() { return this->isAvailable() && this->getWindowOpenState(); } + virtual bool isAvailable() const; + virtual bool shouldProcess() const { return this->isAvailable() && this->getWindowOpenState(); } static void doLater(std::function &&function); static std::vector>& getDeferedCalls(); @@ -45,11 +45,12 @@ namespace hex { static void showErrorPopup(const std::string &errorMessage); static void showFatalPopup(const std::string &errorMessage); - virtual bool hasViewMenuItemEntry(); - virtual ImVec2 getMinSize(); - virtual ImVec2 getMaxSize(); + virtual bool hasViewMenuItemEntry() const; + virtual ImVec2 getMinSize() const; + virtual ImVec2 getMaxSize() const; bool& getWindowOpenState(); + const bool& getWindowOpenState() const; [[nodiscard]] const std::string& getUnlocalizedName() const; diff --git a/plugins/libimhex/source/views/view.cpp b/plugins/libimhex/source/views/view.cpp index 3d4edda42..85361d181 100644 --- a/plugins/libimhex/source/views/view.cpp +++ b/plugins/libimhex/source/views/view.cpp @@ -14,7 +14,7 @@ namespace hex { void View::drawMenu() { } - bool View::isAvailable() { + bool View::isAvailable() const { return ImHexApi::Provider::isValid() && ImHexApi::Provider::get()->isAvailable(); } @@ -80,15 +80,15 @@ namespace hex { View::doLater([] { ImGui::OpenPopup("hex.common.fatal"_lang); }); } - bool View::hasViewMenuItemEntry() { + bool View::hasViewMenuItemEntry() const { return true; } - ImVec2 View::getMinSize() { + ImVec2 View::getMinSize() const { return ImVec2(480, 720) * SharedData::globalScale; } - ImVec2 View::getMaxSize() { + ImVec2 View::getMaxSize() const { return { FLT_MAX, FLT_MAX }; } @@ -97,6 +97,10 @@ namespace hex { return this->m_windowOpen; } + const bool& View::getWindowOpenState() const { + return this->m_windowOpen; + } + const std::string& View::getUnlocalizedName() const { return this->m_unlocalizedViewName; }