mirror of
https://github.com/WerWolv/ImHex.git
synced 2026-03-30 21:05:56 -05:00
Streamline view creation, save all view states when quitting
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
#include "event.hpp"
|
||||
|
||||
#include <functional>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
|
||||
@@ -14,7 +15,7 @@ namespace hex {
|
||||
|
||||
class View {
|
||||
public:
|
||||
View() { }
|
||||
View(std::string viewName) : m_viewName(viewName) { }
|
||||
virtual ~View() { }
|
||||
|
||||
virtual void createView() = 0;
|
||||
@@ -29,6 +30,14 @@ namespace hex {
|
||||
View::s_eventManager.post(eventType, userData);
|
||||
}
|
||||
|
||||
bool& getWindowOpenState() {
|
||||
return this->m_windowOpen;
|
||||
}
|
||||
|
||||
const std::string getName() const {
|
||||
return this->m_viewName;
|
||||
}
|
||||
|
||||
protected:
|
||||
void subscribeEvent(Events eventType, std::function<void(const void*)> callback) {
|
||||
View::s_eventManager.subscribe(eventType, this, callback);
|
||||
@@ -42,7 +51,12 @@ namespace hex {
|
||||
View::s_deferedCalls.push_back(function);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private:
|
||||
std::string m_viewName;
|
||||
bool m_windowOpen = false;
|
||||
|
||||
static inline EventManager s_eventManager;
|
||||
static inline std::vector<std::function<void()>> s_deferedCalls;
|
||||
};
|
||||
|
||||
@@ -51,7 +51,6 @@ namespace hex {
|
||||
|
||||
private:
|
||||
prv::Provider* &m_dataProvider;
|
||||
bool m_windowOpen = true;
|
||||
bool m_shouldInvalidate = true;
|
||||
|
||||
std::endian m_endianess = std::endian::native;
|
||||
|
||||
@@ -31,8 +31,6 @@ namespace hex {
|
||||
|
||||
private:
|
||||
prv::Provider* &m_dataProvider;
|
||||
bool m_windowOpen = true;
|
||||
|
||||
bool m_shouldInvalidate = false;
|
||||
|
||||
u64 m_baseAddress = 0;
|
||||
|
||||
@@ -18,7 +18,6 @@ namespace hex {
|
||||
|
||||
private:
|
||||
prv::Provider* &m_dataProvider;
|
||||
bool m_windowOpen = true;
|
||||
|
||||
bool m_shouldInvalidate = true;
|
||||
int m_currHashFunction = 0;
|
||||
|
||||
@@ -21,7 +21,6 @@ namespace hex {
|
||||
|
||||
private:
|
||||
prv::Provider* &m_dataProvider;
|
||||
bool m_windowOpen = true;
|
||||
|
||||
bool m_dataValid = false;
|
||||
u32 m_blockSize = 0;
|
||||
|
||||
@@ -28,7 +28,6 @@ namespace hex {
|
||||
std::vector<lang::PatternData*> &m_patternData;
|
||||
prv::Provider* &m_dataProvider;
|
||||
std::filesystem::path m_possiblePatternFile;
|
||||
bool m_windowOpen = true;
|
||||
|
||||
TextEditor m_textEditor;
|
||||
imgui_addons::ImGuiFileBrowser m_fileBrowser;
|
||||
|
||||
@@ -23,10 +23,10 @@ namespace hex {
|
||||
void createMenu() override;
|
||||
|
||||
private:
|
||||
|
||||
prv::Provider* &m_dataProvider;
|
||||
std::vector<lang::PatternData*> &m_patternData;
|
||||
std::vector<lang::PatternData*> m_sortedPatternData;
|
||||
bool m_windowOpen = true;
|
||||
};
|
||||
|
||||
}
|
||||
@@ -25,7 +25,6 @@ namespace hex {
|
||||
|
||||
private:
|
||||
prv::Provider* &m_dataProvider;
|
||||
bool m_windowOpen = true;
|
||||
bool m_shouldInvalidate = false;
|
||||
|
||||
std::vector<FoundString> m_foundStrings;
|
||||
|
||||
@@ -21,8 +21,6 @@ namespace hex {
|
||||
void createMenu() override;
|
||||
|
||||
private:
|
||||
bool m_windowOpen = true;
|
||||
|
||||
char *m_mangledBuffer = nullptr;
|
||||
char *m_demangledName = nullptr;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user