Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions dep/build.py
Original file line number Diff line number Diff line change
Expand Up @@ -772,6 +772,7 @@
"dep/r/pattern-language/lib/source/pl/core/ast/ast_node_struct.cpp",
"dep/r/pattern-language/lib/source/pl/core/ast/ast_node_ternary_expression.cpp",
"dep/r/pattern-language/lib/source/pl/core/ast/ast_node_try_catch_statement.cpp",
"dep/r/pattern-language/lib/source/pl/core/ast/ast_node_type_application.cpp",
"dep/r/pattern-language/lib/source/pl/core/ast/ast_node_type_decl.cpp",
"dep/r/pattern-language/lib/source/pl/core/ast/ast_node_type_operator.cpp",
"dep/r/pattern-language/lib/source/pl/core/ast/ast_node_union.cpp",
Expand Down Expand Up @@ -848,8 +849,10 @@
"pl/core/ast/ast_node_rvalue_assignment.hpp",
"pl/core/ast/ast_node_scope_resolution.hpp",
"pl/core/ast/ast_node_struct.hpp",
"pl/core/ast/ast_node_template_parameter.hpp",
"pl/core/ast/ast_node_ternary_expression.hpp",
"pl/core/ast/ast_node_try_catch_statement.hpp",
"pl/core/ast/ast_node_type_appilication.hpp",
"pl/core/ast/ast_node_type_decl.hpp",
"pl/core/ast/ast_node_type_operator.hpp",
"pl/core/ast/ast_node_union.hpp",
Expand Down Expand Up @@ -899,8 +902,8 @@
git_repository(
name="patternlanguage_repo",
url="https://github.com/WerWolv/PatternLanguage",
branch="ImHex-v1.38.0",
commit="f97999d4da8f64df0706227f8b5a6a861e5a95ff",
branch="master",
commit="2e49805fcc715acdc8706f87467a8d0ed7268855",
path="dep/r/pattern-language",
),
],
Expand Down Expand Up @@ -953,7 +956,7 @@

git_repository(
name="imhex_repo",
url="https://github.com/davidgiven/ImHex",
url="https://github.com/the-claw/ImHex",
branch="master",
path="dep/r/imhex",
)
Expand Down
4 changes: 4 additions & 0 deletions src/gui2/abstractsectorview.cc
Original file line number Diff line number Diff line change
Expand Up @@ -198,3 +198,7 @@ void AbstractSectorView::drawContent()
}
}
}

void AbstractSectorView::drawHelpText()
{
}
1 change: 1 addition & 0 deletions src/gui2/abstractsectorview.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ class AbstractSectorView : public hex::View::Window
AbstractSectorView(const std::string& name);

void drawContent() override;
void drawHelpText() override;

[[nodiscard]] bool shouldDraw() const override
{
Expand Down
336 changes: 200 additions & 136 deletions src/gui2/build.py

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions src/gui2/configview.cc
Original file line number Diff line number Diff line change
Expand Up @@ -382,3 +382,7 @@ void ConfigView::drawContent()
}
}
}

void ConfigView::drawHelpText()
{
}
1 change: 1 addition & 0 deletions src/gui2/configview.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ class ConfigView : public hex::View::Window
~ConfigView() override = default;

void drawContent() override;
void drawHelpText() override;

[[nodiscard]] bool shouldDraw() const override
{
Expand Down
4 changes: 4 additions & 0 deletions src/gui2/controlpanelview.cc
Original file line number Diff line number Diff line change
Expand Up @@ -157,3 +157,7 @@ void ControlPanelView::drawContent()
Datastore::stop();
}
}

void ControlPanelView::drawHelpText()
{
}
1 change: 1 addition & 0 deletions src/gui2/controlpanelview.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ class ControlPanelView : public hex::View::Window
~ControlPanelView() override = default;

void drawContent() override;
void drawHelpText() override;

[[nodiscard]] bool shouldDraw() const override
{
Expand Down
4 changes: 2 additions & 2 deletions src/gui2/diskprovider.cc
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,9 @@ DiskProvider::~DiskProvider()
return false;
}

[[nodiscard]] bool DiskProvider::open()
[[nodiscard]] hex::prv::Provider::OpenResult DiskProvider::open()
{
return true;
return OpenResult();
}

void DiskProvider::close() {}
Expand Down
2 changes: 1 addition & 1 deletion src/gui2/diskprovider.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class DiskProvider : public hex::prv::Provider
[[nodiscard]] bool isResizable() const override;
[[nodiscard]] bool isSavable() const override;

[[nodiscard]] bool open() override;
[[nodiscard]] OpenResult open() override;

void close() override;

Expand Down
3 changes: 3 additions & 0 deletions src/gui2/imhex_overrides/achievement_manager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,7 @@ namespace hex
{
}

void AchievementManager::loadProgress()
{
}
}
21 changes: 10 additions & 11 deletions src/gui2/imhex_overrides/imconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,18 +34,17 @@
// while (0)' block so it can be used as a single statement.
// #define IM_ASSERT(_EXPR) MyAssert(_EXPR)
// #define IM_ASSERT(_EXPR) ((void)(_EXPR)) // Disable asserts
namespace hex::log::impl
{
void assertionHandler(const char* expr_str, const char* file, int line);
namespace hex::dbg {
[[noreturn]] void assertionHandler(const char* file, int line, const char *function, const char* exprString);
}
#define IM_ASSERT(_EXPR) \
do \
{ \
if (!(_EXPR)) [[unlikely]] \
{ \
hex::log::impl::assertionHandler(#_EXPR, __FILE__, __LINE__); \
} \
} while (0)

#if defined(__PRETTY_FUNCTION__)
#define IM_ASSERT(_EXPR) do { if (!(_EXPR)) [[unlikely]] { hex::dbg::assertionHandler(__FILE__, __LINE__, __PRETTY_FUNCTION__, #_EXPR); } } while(0)
#elif defined(__FUNCSIG__)
#define IM_ASSERT(_EXPR) do { if (!(_EXPR)) [[unlikely]] { hex::dbg::assertionHandler(__FILE__, __LINE__, __FUNCSIG__, #_EXPR); } } while(0)
#else
#define IM_ASSERT(_EXPR) do { if (!(_EXPR)) [[unlikely]] { hex::dbg::assertionHandler(__FILE__, __LINE__, __FUNCTION__, #_EXPR); } } while(0)
#endif

//---- Define attributes of all API symbols declarations, e.g. for DLL under
// Windows
Expand Down
10 changes: 5 additions & 5 deletions src/gui2/imhex_overrides/main_menu_items.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -377,10 +377,10 @@ namespace hex::plugin::builtin {
/* Create File */
ContentRegistry::UserInterface::addMenuItem({ "hex.builtin.menu.file", "hex.builtin.menu.file.create_file" }, ICON_VS_FILE, 1050, CTRLCMD + Keys::N + AllowWhileTyping, [] {
auto newProvider = hex::ImHexApi::Provider::createProvider("hex.builtin.provider.mem_file", true);
if (newProvider != nullptr && !newProvider->open())
hex::ImHexApi::Provider::remove(newProvider);
if (newProvider != nullptr && newProvider->open().isFailure())
hex::ImHexApi::Provider::remove(newProvider.get());
else
EventProviderOpened::post(newProvider);
EventProviderOpened::post(newProvider.get());
}, noRunningTasks);

/* Open File */
Expand All @@ -401,7 +401,7 @@ namespace hex::plugin::builtin {
auto provider = ImHexApi::Provider::get();

provider->close();
if (!provider->open())
if (provider->open().isFailure())
ImHexApi::Provider::remove(provider, true);

EventDataChanged::post(provider);
Expand Down Expand Up @@ -656,4 +656,4 @@ namespace hex::plugin::builtin {
createHelpMenu();
}

}
}
15 changes: 15 additions & 0 deletions src/gui2/imhex_overrides/menu_items.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,21 @@ namespace hex::menu {
ImGui::EndMenu();
}

bool beginTaskBarMenu() {
#if defined(OS_MACOS)
return beginMenu(ContentRegistry::UserInterface::impl::TaskBarMenuValue, true);
#else
return false;
#endif
}

void endTaskBarMenu() {
#if defined(OS_MACOS)
endMenu();
#else

#endif
}

bool menuItem(const char *label, const Shortcut &shortcut, bool selected, bool enabled) {
#if defined(OS_MACOS)
Expand Down
13 changes: 7 additions & 6 deletions src/gui2/imhex_overrides/providers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ namespace hex::plugin::builtin {
auto providerIds = json.at("providers").get<std::vector<int>>();

bool success = true;
std::map<hex::prv::Provider*, std::string> providerWarnings;
std::map<std::shared_ptr<hex::prv::Provider>, std::string> providerWarnings;
for (const auto &id : providerIds) {
auto providerSettings = nlohmann::json::parse(tar.readString(basePath / fmt::format("{}.json", id)));

Expand Down Expand Up @@ -78,23 +78,24 @@ namespace hex::plugin::builtin {
providerWarnings[newProvider] = e.what();
}
if (loaded) {
if (!newProvider->open() || !newProvider->isAvailable() || !newProvider->isReadable()) {
providerWarnings[newProvider] = newProvider->getErrorMessage();
auto openResult = newProvider->open();
if (openResult.isFailure() || !newProvider->isAvailable() || !newProvider->isReadable()) {
providerWarnings[newProvider] = openResult.getErrorMessage();
} else {
EventProviderOpened::post(newProvider);
EventProviderOpened::post(newProvider.get());
}
}
}

std::string warningMessage;
for (const auto &warning : providerWarnings){
ImHexApi::Provider::remove(warning.first);
ImHexApi::Provider::remove(warning.first.get());
warningMessage.append(
fmt::format("\n - {} : {}", warning.first->getName(), warning.second));
}

// If no providers were opened, display an error with
// the warnings that happened when opening them
// the warnings that happened when opening them
if (ImHexApi::Provider::getProviders().empty()) {
ui::ToastError::open(fmt::format("{}{}", "hex.builtin.popup.error.project.load"_lang, "hex.builtin.popup.error.project.load.no_providers"_lang, warningMessage));

Expand Down
4 changes: 1 addition & 3 deletions src/gui2/imhex_overrides/views.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
#include "content/views/view_patches.hpp"
#include "content/views/view_command_palette.hpp"
#include "content/views/view_settings.hpp"
#include "content/views/view_constants.hpp"
#include "content/views/view_store.hpp"
#include "content/views/view_provider_settings.hpp"
#include "content/views/view_find.hpp"
Expand All @@ -34,7 +33,6 @@ namespace hex::plugin::builtin {
ContentRegistry::Views::add<ViewCommandPalette>();
ContentRegistry::Views::add<ViewAbout>();
ContentRegistry::Views::add<ViewSettings>();
ContentRegistry::Views::add<ViewConstants>();
ContentRegistry::Views::add<ViewProviderSettings>();
ContentRegistry::Views::add<ViewFind>();
ContentRegistry::Views::add<ViewThemeManager>();
Expand Down Expand Up @@ -62,4 +60,4 @@ namespace hex::plugin::builtin {
});
}

}
}
4 changes: 4 additions & 0 deletions src/gui2/logview.cc
Original file line number Diff line number Diff line change
Expand Up @@ -66,3 +66,7 @@ void LogView::logMessage(const AnyLogMessage& message)
logRenderer->add(message);
scrollToEndOnNextRedraw = true;
}

void LogView::drawHelpText()
{
}
1 change: 1 addition & 0 deletions src/gui2/logview.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ class LogView : public hex::View::Window
~LogView() override = default;

void drawContent() override;
void drawHelpText() override;
static void logMessage(const AnyLogMessage& message);

[[nodiscard]] bool shouldDraw() const override
Expand Down
4 changes: 4 additions & 0 deletions src/gui2/summaryview.cc
Original file line number Diff line number Diff line change
Expand Up @@ -395,3 +395,7 @@ void SummaryView::drawContent()
}
}
}

void SummaryView::drawHelpText()
{
}
1 change: 1 addition & 0 deletions src/gui2/summaryview.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ class SummaryView : public hex::View::Window
~SummaryView() override = default;

void drawContent() override;
void drawHelpText() override;

[[nodiscard]] bool shouldDraw() const override
{
Expand Down
4 changes: 4 additions & 0 deletions src/gui2/visualiserview.cc
Original file line number Diff line number Diff line change
Expand Up @@ -174,3 +174,7 @@ void VisualiserView::drawContent()
pos + ImVec2(size.x / 2, size.y - 100),
size.x * 0.7);
}

void VisualiserView::drawHelpText()
{
}
1 change: 1 addition & 0 deletions src/gui2/visualiserview.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ class VisualiserView : public hex::View::Window
~VisualiserView() override = default;

void drawContent() override;
void drawHelpText() override;

[[nodiscard]] bool shouldDraw() const override
{
Expand Down