From 147aefc7e50239d69c4ae69d03d5da65e66f5618 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Mon, 29 Mar 2021 22:44:35 +0200 Subject: [PATCH] ux: Add close file button to file menu --- plugins/builtin/source/lang/de_DE.cpp | 1 + plugins/builtin/source/lang/en_US.cpp | 1 + plugins/builtin/source/lang/it_IT.cpp | 1 + plugins/libimhex/include/hex/api/event.hpp | 1 + source/views/view_hexeditor.cpp | 8 +++++++- 5 files changed, 11 insertions(+), 1 deletion(-) diff --git a/plugins/builtin/source/lang/de_DE.cpp b/plugins/builtin/source/lang/de_DE.cpp index 7f74a743e..d553a6ffa 100644 --- a/plugins/builtin/source/lang/de_DE.cpp +++ b/plugins/builtin/source/lang/de_DE.cpp @@ -155,6 +155,7 @@ namespace hex::plugin::builtin { { "hex.view.hexeditor.menu.file.open_file", "Datei öffnen..." }, { "hex.view.hexeditor.menu.file.save", "Speichern" }, { "hex.view.hexeditor.menu.file.save_as", "Speichern unter..." }, + { "hex.view.hexeditor.menu.file.close", "Schliessen" }, { "hex.view.hexeditor.menu.file.open_project", "Projekt öffnen..." }, { "hex.view.hexeditor.menu.file.save_project", "Projekt speichern..." }, { "hex.view.hexeditor.menu.file.load_encoding_file", "Custom encoding laden..." }, diff --git a/plugins/builtin/source/lang/en_US.cpp b/plugins/builtin/source/lang/en_US.cpp index 91a6f0c16..5264c64fb 100644 --- a/plugins/builtin/source/lang/en_US.cpp +++ b/plugins/builtin/source/lang/en_US.cpp @@ -155,6 +155,7 @@ namespace hex::plugin::builtin { { "hex.view.hexeditor.menu.file.open_file", "Open File..." }, { "hex.view.hexeditor.menu.file.save", "Save" }, { "hex.view.hexeditor.menu.file.save_as", "Save As..." }, + { "hex.view.hexeditor.menu.file.close", "Close" }, { "hex.view.hexeditor.menu.file.open_project", "Open Project..." }, { "hex.view.hexeditor.menu.file.save_project", "Save Project..." }, { "hex.view.hexeditor.menu.file.load_encoding_file", "Load custom encoding..." }, diff --git a/plugins/builtin/source/lang/it_IT.cpp b/plugins/builtin/source/lang/it_IT.cpp index 49e047264..7abb9aa5e 100644 --- a/plugins/builtin/source/lang/it_IT.cpp +++ b/plugins/builtin/source/lang/it_IT.cpp @@ -155,6 +155,7 @@ namespace hex::plugin::builtin { { "hex.view.hexeditor.menu.file.open_file", "Apri File..." }, { "hex.view.hexeditor.menu.file.save", "Salva" }, { "hex.view.hexeditor.menu.file.save_as", "Salva come..." }, + // { "hex.view.hexeditor.menu.file.close", "" }, { "hex.view.hexeditor.menu.file.open_project", "Apri un Progetto..." }, { "hex.view.hexeditor.menu.file.save_project", "Salva Progetto..." }, { "hex.view.hexeditor.menu.file.load_encoding_file", "Carica una codifica personalizzata..." }, diff --git a/plugins/libimhex/include/hex/api/event.hpp b/plugins/libimhex/include/hex/api/event.hpp index 85d8b5d7a..e8cae5fd5 100644 --- a/plugins/libimhex/include/hex/api/event.hpp +++ b/plugins/libimhex/include/hex/api/event.hpp @@ -97,6 +97,7 @@ namespace hex { /* Default Events */ EVENT_DEF(EventFileLoaded, std::string); + EVENT_DEF(EventFileUnloaded); EVENT_DEF(EventDataChanged); EVENT_DEF(EventPatternChanged); EVENT_DEF(EventFileDropped, std::string); diff --git a/source/views/view_hexeditor.cpp b/source/views/view_hexeditor.cpp index 03a1be680..b8e44ea9c 100644 --- a/source/views/view_hexeditor.cpp +++ b/source/views/view_hexeditor.cpp @@ -347,7 +347,7 @@ namespace hex { } void ViewHexEditor::drawMenu() { - auto provider = SharedData::currentProvider; + auto &provider = SharedData::currentProvider; if (ImGui::BeginMenu("hex.menu.file"_lang)) { if (ImGui::MenuItem("hex.view.hexeditor.menu.file.open_file"_lang, "CTRL + O")) { @@ -366,6 +366,12 @@ namespace hex { saveAs(); } + if (ImGui::MenuItem("hex.view.hexeditor.menu.file.close", "", false, provider != nullptr && provider->isAvailable())) { + EventManager::post(); + delete SharedData::currentProvider; + SharedData::currentProvider = nullptr; + } + ImGui::Separator(); if (ImGui::MenuItem("hex.view.hexeditor.menu.file.open_project"_lang, "")) {