impr: Refactor and restructure Event Manager (#2082)
### Problem description This PR addresses issue #2013 that described a cluttered Event Manager. This is a DX issue and should not impact the users whatsoever. ### Implementation description The changes revolve around three main points: 1. the Event Manager (`event_manager.hpp`) was split into four categories: GUI, Interaction, Lifecycle, and Provider, and two types: Events, and Requests. This results in the following files: - `events_gui.hpp` - `events_interaction.hpp` - `events_lifecycle.hpp` - `events_provider.hpp` - `requests_gui.hpp` - `requests_interaction.hpp` - `requests_lifecycle.hpp` - `requests_provider.hpp` 2. Every event and request now has its own piece of documentation, with a `@brief`, accompanied by a longer comment if needed, and gets its `@param`s described. 3. The old `event_manager.hpp` import was removed and replaced by the correct imports wherever needed, as to reduce spread of those files only to where they are truly useful. ### Additional things The commits have been split into (chrono-)logical steps: - `feat`: split the Event Manager, and replace the imports - `refactor`, `chore`: make various small changes to match the required structure - `docs`: add documentation for events and requests Hopefully, this will help to review the PR. *Note: Beware of very long rebuild times in between the commits, use them sparingly! The Actions will ensure this PR builds anyways* Closes #2013 --------- Signed-off-by: BioTheWolff <47079795+BioTheWolff@users.noreply.github.com> Co-authored-by: Nik <werwolv98@gmail.com>
This commit is contained in:
parent
35e8acd69d
commit
b646ece14b
@ -11,7 +11,6 @@
|
||||
|
||||
#include <hex/api/imhex_api.hpp>
|
||||
#include <hex/helpers/logger.hpp>
|
||||
#include <hex/helpers/patches.hpp>
|
||||
|
||||
#include <wolv/types/type_name.hpp>
|
||||
|
||||
@ -32,15 +31,6 @@
|
||||
#define EVENT_DEF_NO_LOG(event_name, ...) EVENT_DEF_IMPL(event_name, #event_name, false, __VA_ARGS__)
|
||||
|
||||
|
||||
/* Forward declarations */
|
||||
struct GLFWwindow;
|
||||
namespace hex {
|
||||
class Achievement;
|
||||
class View;
|
||||
}
|
||||
|
||||
namespace pl::ptrn { class Pattern; }
|
||||
|
||||
namespace hex {
|
||||
|
||||
namespace impl {
|
||||
@ -100,7 +90,8 @@ namespace hex {
|
||||
|
||||
/**
|
||||
* @brief The EventManager allows subscribing to and posting events to different parts of the program.
|
||||
* To create a new event, use the EVENT_DEF macro. This will create a new event type with the given name and parameters
|
||||
* To create a new event, use the EVENT_DEF macro. This will create a new event type with the given name and parameters.
|
||||
* Events should be created in an `events_*.hpp` category file under the `events` folder, and never directly here.
|
||||
*/
|
||||
class EventManager {
|
||||
public:
|
||||
@ -200,124 +191,4 @@ namespace hex {
|
||||
static void unsubscribe(void *token, impl::EventId id);
|
||||
};
|
||||
|
||||
/* Default Events */
|
||||
|
||||
/**
|
||||
* @brief Called when Imhex finished startup, and will enter the main window rendering loop
|
||||
*/
|
||||
EVENT_DEF(EventImHexStartupFinished);
|
||||
|
||||
EVENT_DEF(EventFileLoaded, std::fs::path);
|
||||
EVENT_DEF(EventDataChanged, prv::Provider *);
|
||||
EVENT_DEF(EventHighlightingChanged);
|
||||
EVENT_DEF(EventWindowClosing, GLFWwindow *);
|
||||
EVENT_DEF(EventRegionSelected, ImHexApi::HexEditor::ProviderRegion);
|
||||
EVENT_DEF(EventAbnormalTermination, int);
|
||||
EVENT_DEF(EventThemeChanged);
|
||||
EVENT_DEF(EventOSThemeChanged);
|
||||
EVENT_DEF(EventDPIChanged, float, float);
|
||||
EVENT_DEF(EventWindowFocused, bool);
|
||||
EVENT_DEF(EventImHexUpdated, SemanticVersion, SemanticVersion);
|
||||
|
||||
/**
|
||||
* @brief Called when the provider is created.
|
||||
* This event is responsible for (optionally) initializing the provider and calling EventProviderOpened
|
||||
* (although the event can also be called manually without problem)
|
||||
*/
|
||||
EVENT_DEF(EventProviderCreated, prv::Provider *);
|
||||
EVENT_DEF(EventProviderChanged, prv::Provider *, prv::Provider *);
|
||||
|
||||
/**
|
||||
* @brief Called as a continuation of EventProviderCreated
|
||||
* this event is normally called immediately after EventProviderCreated successfully initialized the provider.
|
||||
* If no initialization (Provider::skipLoadInterface() has been set), this event should be called manually
|
||||
* If skipLoadInterface failed, this event is not called
|
||||
*
|
||||
* @note this is not related to Provider::open()
|
||||
*/
|
||||
EVENT_DEF(EventProviderOpened, prv::Provider *);
|
||||
EVENT_DEF(EventProviderClosing, prv::Provider *, bool *);
|
||||
EVENT_DEF(EventProviderClosed, prv::Provider *);
|
||||
EVENT_DEF(EventProviderDeleted, prv::Provider *);
|
||||
EVENT_DEF(EventProviderSaved, prv::Provider *);
|
||||
EVENT_DEF(EventWindowInitialized);
|
||||
EVENT_DEF(EventWindowDeinitializing, GLFWwindow *);
|
||||
EVENT_DEF(EventBookmarkCreated, ImHexApi::Bookmarks::Entry&);
|
||||
|
||||
/**
|
||||
* @brief Called upon creation of an IPS patch.
|
||||
* As for now, the event only serves a purpose for the achievement unlock.
|
||||
*/
|
||||
EVENT_DEF(EventPatchCreated, const u8*, u64, const PatchKind);
|
||||
EVENT_DEF(EventPatternEvaluating);
|
||||
EVENT_DEF(EventPatternExecuted, const std::string&);
|
||||
EVENT_DEF(EventPatternEditorChanged, const std::string&);
|
||||
EVENT_DEF(EventStoreContentDownloaded, const std::fs::path&);
|
||||
EVENT_DEF(EventStoreContentRemoved, const std::fs::path&);
|
||||
EVENT_DEF(EventImHexClosing);
|
||||
EVENT_DEF(EventAchievementUnlocked, const Achievement&);
|
||||
EVENT_DEF(EventSearchBoxClicked, u32);
|
||||
EVENT_DEF(EventViewOpened, View*);
|
||||
EVENT_DEF(EventFirstLaunch);
|
||||
|
||||
EVENT_DEF(EventFileDragged, bool);
|
||||
EVENT_DEF(EventFileDropped, std::fs::path);
|
||||
|
||||
EVENT_DEF(EventProviderDataModified, prv::Provider *, u64, u64, const u8*);
|
||||
EVENT_DEF(EventProviderDataInserted, prv::Provider *, u64, u64);
|
||||
EVENT_DEF(EventProviderDataRemoved, prv::Provider *, u64, u64);
|
||||
EVENT_DEF(EventProviderDirtied, prv::Provider *);
|
||||
|
||||
/**
|
||||
* @brief Called when a project has been loaded
|
||||
*/
|
||||
EVENT_DEF(EventProjectOpened);
|
||||
|
||||
EVENT_DEF_NO_LOG(EventFrameBegin);
|
||||
EVENT_DEF_NO_LOG(EventFrameEnd);
|
||||
EVENT_DEF_NO_LOG(EventSetTaskBarIconState, u32, u32, u32);
|
||||
EVENT_DEF_NO_LOG(EventImGuiElementRendered, ImGuiID, const std::array<float, 4>&);
|
||||
|
||||
EVENT_DEF(RequestAddInitTask, std::string, bool, std::function<bool()>);
|
||||
EVENT_DEF(RequestAddExitTask, std::string, std::function<bool()>);
|
||||
EVENT_DEF(RequestOpenWindow, std::string);
|
||||
EVENT_DEF(RequestHexEditorSelectionChange, Region);
|
||||
EVENT_DEF(RequestPatternEditorSelectionChange, u32, u32);
|
||||
EVENT_DEF(RequestJumpToPattern, const pl::ptrn::Pattern*);
|
||||
EVENT_DEF(RequestAddBookmark, Region, std::string, std::string, color_t, u64*);
|
||||
EVENT_DEF(RequestRemoveBookmark, u64);
|
||||
EVENT_DEF(RequestSetPatternLanguageCode, std::string);
|
||||
EVENT_DEF(RequestRunPatternCode);
|
||||
EVENT_DEF(RequestLoadPatternLanguageFile, std::fs::path);
|
||||
EVENT_DEF(RequestSavePatternLanguageFile, std::fs::path);
|
||||
EVENT_DEF(RequestUpdateWindowTitle);
|
||||
EVENT_DEF(RequestCloseImHex, bool);
|
||||
EVENT_DEF(RequestRestartImHex);
|
||||
EVENT_DEF(RequestOpenFile, std::fs::path);
|
||||
EVENT_DEF(RequestChangeTheme, std::string);
|
||||
EVENT_DEF(RequestOpenPopup, std::string);
|
||||
EVENT_DEF(RequestAddVirtualFile, std::fs::path, std::vector<u8>, Region);
|
||||
EVENT_DEF(RequestStartMigration);
|
||||
|
||||
/**
|
||||
* @brief Creates a provider from it's unlocalized name, and add it to the provider list
|
||||
*/
|
||||
EVENT_DEF(RequestCreateProvider, std::string, bool, bool, hex::prv::Provider **);
|
||||
EVENT_DEF(RequestInitThemeHandlers);
|
||||
|
||||
/**
|
||||
* @brief Send an event to the main Imhex instance
|
||||
*/
|
||||
EVENT_DEF(SendMessageToMainInstance, const std::string, const std::vector<u8>&);
|
||||
|
||||
/**
|
||||
* Move the data from all PerProvider instances from one provider to another.
|
||||
* The 'from' provider should not have any per provider data after this, and should be immediately deleted
|
||||
*/
|
||||
EVENT_DEF(MovePerProviderData, prv::Provider *, prv::Provider *);
|
||||
|
||||
/**
|
||||
* Called when ImHex managed to catch an error in a general try/catch to prevent/recover from a crash
|
||||
*/
|
||||
EVENT_DEF(EventCrashRecovered, const std::exception &);
|
||||
}
|
120
lib/libimhex/include/hex/api/events/events_gui.hpp
Normal file
120
lib/libimhex/include/hex/api/events/events_gui.hpp
Normal file
@ -0,0 +1,120 @@
|
||||
#pragma once
|
||||
|
||||
#include <hex/api/event_manager.hpp>
|
||||
|
||||
/* Forward declarations */
|
||||
struct GLFWwindow;
|
||||
namespace hex { class View; }
|
||||
|
||||
/* GUI events definitions */
|
||||
namespace hex {
|
||||
|
||||
/**
|
||||
* @brief Signals a newly opened window
|
||||
*
|
||||
* This event is sent when the window has just been opened and docked by the Window manager.
|
||||
*
|
||||
* FIXME: In the event that a newly created window is already docked, this will not be sent.
|
||||
*
|
||||
* FIXME: This is currently only used for the introduction tutorial.
|
||||
* If the event's only purpose is this, maybe rename it?
|
||||
*
|
||||
* @param view the new view reference
|
||||
*/
|
||||
EVENT_DEF(EventViewOpened, View*);
|
||||
|
||||
/**
|
||||
* @brief Signals a change in the DPI scale.
|
||||
*
|
||||
* This event is called once at startup to signal native scale definition (by passing the same value twice).
|
||||
* On Windows OS, this event can also be posted if the window DPI has been changed.
|
||||
*
|
||||
* @param oldScale the old scale
|
||||
* @param newScale the current scale that's now in use
|
||||
*/
|
||||
EVENT_DEF(EventDPIChanged, float, float);
|
||||
|
||||
/**
|
||||
* @brief Signals the focus of the ImHex main window.
|
||||
*
|
||||
* This is directly tied as a GLFW window focus callback, and will be called accordingly when GLFW detects
|
||||
* a change in focus.
|
||||
*
|
||||
* @param isFocused true if the window is focused
|
||||
*/
|
||||
EVENT_DEF(EventWindowFocused, bool);
|
||||
|
||||
/**
|
||||
* @brief Signals a window being closed.
|
||||
*
|
||||
* Allows reactive clean up of running tasks, and prevents ImHex from closing
|
||||
* by displaying an exit confirmation popup.
|
||||
*
|
||||
* @param window The window reference
|
||||
*/
|
||||
EVENT_DEF(EventWindowClosing, GLFWwindow*);
|
||||
|
||||
/**
|
||||
* @brief Informs that the main window is initialized
|
||||
*
|
||||
* On Windows OS, it is used to initialize system theme, if ImHex's theme is following it.
|
||||
*
|
||||
* FIXME: Change event name to reflect Theme detection, if it's only used for that purpose?
|
||||
*/
|
||||
EVENT_DEF(EventWindowInitialized);
|
||||
|
||||
/**
|
||||
* @brief Informs that the main window is deinitializing
|
||||
*
|
||||
* Allows for lifecycle cleanup before ImHex shutdown.
|
||||
*
|
||||
* @param window The window reference
|
||||
*/
|
||||
EVENT_DEF(EventWindowDeinitializing, GLFWwindow*);
|
||||
|
||||
/**
|
||||
* @brief Signals a theme change in the host OS
|
||||
*
|
||||
* Allows ImHex to react to OS theme changes dynamically during execution.
|
||||
*/
|
||||
EVENT_DEF(EventOSThemeChanged);
|
||||
|
||||
}
|
||||
|
||||
/* silent (no-logging) GUI events definitions */
|
||||
namespace hex {
|
||||
|
||||
/**
|
||||
* @brief Signals the start of a new ImGui frame
|
||||
*/
|
||||
EVENT_DEF_NO_LOG(EventFrameBegin);
|
||||
|
||||
/**
|
||||
* @brief Signals the end of an ImGui frame
|
||||
*/
|
||||
EVENT_DEF_NO_LOG(EventFrameEnd);
|
||||
|
||||
/**
|
||||
* @brief Windows OS: Sets the taskbar icon state
|
||||
*
|
||||
* This event is used on Windows OS to display progress through the taskbar icon (the famous "green loading bar"
|
||||
* in the taskbar).
|
||||
*
|
||||
* @param progressState the progress state (converted from the TaskProgressState enum)
|
||||
* @param progressType the type of progress (converted from the TaskProgressType enum)
|
||||
* @param percentage actual progress percentage (expected from 0 to 100)
|
||||
*
|
||||
* @see hex::ImHexApi::System::TaskProgressState
|
||||
* @see hex::ImHexApi::System::TaskProgressType
|
||||
*/
|
||||
EVENT_DEF_NO_LOG(EventSetTaskBarIconState, u32, u32, u32);
|
||||
|
||||
/**
|
||||
* @brief Informs of an ImGui element being rendered
|
||||
*
|
||||
* @param elementId the element's ID
|
||||
* @param boundingBox the bounding box (composed of 4 floats)
|
||||
*/
|
||||
EVENT_DEF_NO_LOG(EventImGuiElementRendered, ImGuiID, const std::array<float, 4>&);
|
||||
|
||||
}
|
158
lib/libimhex/include/hex/api/events/events_interaction.hpp
Normal file
158
lib/libimhex/include/hex/api/events/events_interaction.hpp
Normal file
@ -0,0 +1,158 @@
|
||||
#pragma once
|
||||
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/helpers/patches.hpp>
|
||||
|
||||
/* Forward declarations */
|
||||
namespace hex { class Achievement; }
|
||||
|
||||
/* Interaction events definitions */
|
||||
namespace hex {
|
||||
|
||||
/**
|
||||
* @brief Signals a file was loaded
|
||||
*
|
||||
* FIXME: this event is unused and should be scrapped.
|
||||
*
|
||||
* @param path the loaded file's path
|
||||
*/
|
||||
EVENT_DEF(EventFileLoaded, std::fs::path);
|
||||
|
||||
/**
|
||||
* @brief Signals a change in the current data
|
||||
*
|
||||
* Enables provider reaction to data change, especially the data inspector.
|
||||
*
|
||||
* This is caused by the following:
|
||||
* - an explicit provider reload, requested by the user (Ctrl+R)
|
||||
* - any user action that results in the creation of an "undo" stack action (generally a data modification)
|
||||
*
|
||||
* @param provider the Provider subject to the data change
|
||||
*/
|
||||
EVENT_DEF(EventDataChanged, prv::Provider *);
|
||||
|
||||
/**
|
||||
* @brief Signals a change in highlighting
|
||||
*
|
||||
* The event's only purpose is for the Hex editor to clear highlights when receiving this event.
|
||||
*/
|
||||
EVENT_DEF(EventHighlightingChanged);
|
||||
|
||||
/**
|
||||
* @brief Informs of a provider region being selected
|
||||
*
|
||||
* This is very generally used to signal user actions that select a specific region within the provider.
|
||||
* It is also used to pass on regions when the provider changes.
|
||||
*
|
||||
* @param providerRegion the provider-aware region being selected
|
||||
*/
|
||||
EVENT_DEF(EventRegionSelected, ImHexApi::HexEditor::ProviderRegion);
|
||||
|
||||
/**
|
||||
* @brief Signals a theme change
|
||||
*
|
||||
* On Windows OS, this is used to reflect the theme color onto the window frame.
|
||||
*/
|
||||
EVENT_DEF(EventThemeChanged);
|
||||
|
||||
/**
|
||||
* @brief Signals that a bookmark was created
|
||||
*
|
||||
* For now, this event's only purpose is to unlock an achievement.
|
||||
*
|
||||
* @param entry the new bookmark
|
||||
*/
|
||||
EVENT_DEF(EventBookmarkCreated, ImHexApi::Bookmarks::Entry&);
|
||||
|
||||
/**
|
||||
* @brief Called upon creation of an IPS patch.
|
||||
* As for now, the event only serves a purpose for the achievement unlock.
|
||||
*
|
||||
* @param data the pointer to the patch content's start
|
||||
* @param size the patch data size
|
||||
* @param kind the patch's kind
|
||||
*/
|
||||
EVENT_DEF(EventPatchCreated, const u8*, u64, const PatchKind);
|
||||
|
||||
/**
|
||||
* @brief Signals the beginning of evaluation of the current pattern
|
||||
*
|
||||
* This allows resetting the drawer view for the pattern data while we wait for the execution completion.
|
||||
*/
|
||||
EVENT_DEF(EventPatternEvaluating);
|
||||
|
||||
/**
|
||||
* @brief Signals the completion of the pattern evaluation
|
||||
*
|
||||
* This causes another reset in the drawer view, to refresh the table displayed to the user.
|
||||
*
|
||||
* @param code the execution's status code
|
||||
*/
|
||||
EVENT_DEF(EventPatternExecuted, const std::string&);
|
||||
|
||||
/**
|
||||
* @brief Denotes when pattern editor has changed
|
||||
*
|
||||
* FIXME: this event is unused and should be scrapped.
|
||||
*/
|
||||
EVENT_DEF(EventPatternEditorChanged, const std::string&);
|
||||
|
||||
/**
|
||||
* @brief Signals that a Content Store item was downloaded
|
||||
*
|
||||
* FIXME: this event is unused and should be scrapped.
|
||||
*
|
||||
* @param path the item's path on the filesystem
|
||||
*/
|
||||
EVENT_DEF(EventStoreContentDownloaded, const std::fs::path&);
|
||||
|
||||
/**
|
||||
* @brief Signals the removal of a Content Store item
|
||||
*
|
||||
* Note: at the time of the event firing, the item has already been removed from the filesystem.
|
||||
*
|
||||
* FIXME: this event is unused and should be scrapped.
|
||||
*
|
||||
* @param path the item's old file path where it used to be in the filesystem
|
||||
*/
|
||||
EVENT_DEF(EventStoreContentRemoved, const std::fs::path&);
|
||||
|
||||
/**
|
||||
* @brief Signals the unlocking of an achievement
|
||||
*
|
||||
* This is used by the achievement manager to refresh the achievement display, as well as store progress to
|
||||
* the appropriate storage file.
|
||||
*
|
||||
* @param achievement the achievement that was unlocked
|
||||
*/
|
||||
EVENT_DEF(EventAchievementUnlocked, const Achievement&);
|
||||
|
||||
/**
|
||||
* @brief Signals a click on the search box
|
||||
*
|
||||
* As there are different behaviours depending on the click (left or right) done by the user,
|
||||
* this allows the consequences of said click to be registered in their own components.
|
||||
*
|
||||
* @param button the ImGuiMouseButton's value
|
||||
*/
|
||||
EVENT_DEF(EventSearchBoxClicked, u32);
|
||||
|
||||
/**
|
||||
* @brief Updates on whether a file is being dragged into ImHex
|
||||
*
|
||||
* Allows ImGUi to display a file dragging information on screen when a file is being dragged.
|
||||
*
|
||||
* @param isFileDragged true if a file is being dragged
|
||||
*/
|
||||
EVENT_DEF(EventFileDragged, bool);
|
||||
|
||||
/**
|
||||
* @brief Triggers loading when a file is dropped
|
||||
*
|
||||
* The event fires when a file is dropped into ImHex, which passes it to file handlers to load it.
|
||||
*
|
||||
* @param path the dropped file's path
|
||||
*/
|
||||
EVENT_DEF(EventFileDropped, std::fs::path);
|
||||
|
||||
}
|
72
lib/libimhex/include/hex/api/events/events_lifecycle.hpp
Normal file
72
lib/libimhex/include/hex/api/events/events_lifecycle.hpp
Normal file
@ -0,0 +1,72 @@
|
||||
#pragma once
|
||||
|
||||
#include <hex/api/event_manager.hpp>
|
||||
|
||||
/* Lifecycle events definitions */
|
||||
namespace hex {
|
||||
|
||||
/**
|
||||
* @brief Called when Imhex finished startup, and will enter the main window rendering loop
|
||||
*/
|
||||
EVENT_DEF(EventImHexStartupFinished);
|
||||
|
||||
/**
|
||||
* @brief Called when ImHex is closing, to trigger the last shutdown hooks
|
||||
*
|
||||
* This is the last event to fire before complete graceful shutdown.
|
||||
*/
|
||||
EVENT_DEF(EventImHexClosing);
|
||||
|
||||
/**
|
||||
* @brief Signals that it's ImHex first launch ever
|
||||
*
|
||||
* This event allows for the launch of the ImHex tutorial (also called Out of Box experience).
|
||||
*/
|
||||
EVENT_DEF(EventFirstLaunch);
|
||||
|
||||
/**
|
||||
* FIXME: this event is unused and should be scrapped.
|
||||
*/
|
||||
EVENT_DEF(EventAnySettingChanged);
|
||||
|
||||
/**
|
||||
* @brief Ensures correct plugin cleanup on crash
|
||||
*
|
||||
* This event is fired when catching an unexpected error that cannot be recovered and
|
||||
* which forces Imhex to close immediately.
|
||||
*
|
||||
* Subscribing to this event ensures that the plugin can correctly clean up any mission-critical tasks
|
||||
* before forceful shutdown.
|
||||
*
|
||||
* @param signal the POSIX signal code
|
||||
*/
|
||||
EVENT_DEF(EventAbnormalTermination, int);
|
||||
|
||||
/**
|
||||
* @brief Informs of the ImHex versions (and difference, if any)
|
||||
*
|
||||
* Called on every startup to inform subscribers of the two versions picked up:
|
||||
* - the version of the previous launch, gathered from the settings file
|
||||
* - the current version, gathered directly from C++ code
|
||||
*
|
||||
* In most cases, and unless ImHex was updated, the two parameters will be the same.
|
||||
*
|
||||
* FIXME: Maybe rename the event to signal a startup information, instead of the misleading
|
||||
* title that the event could be fired when ImHex detects that it was updated since last launch?
|
||||
*
|
||||
* @param previousLaunchVersion ImHex's version during the previous launch
|
||||
* @param currentVersion ImHex's current version for this startup
|
||||
*/
|
||||
EVENT_DEF(EventImHexUpdated, SemanticVersion, SemanticVersion);
|
||||
|
||||
/**
|
||||
* @brief Called when ImHex managed to catch an error in a general try/catch to prevent/recover from a crash
|
||||
*/
|
||||
EVENT_DEF(EventCrashRecovered, const std::exception &);
|
||||
|
||||
/**
|
||||
* @brief Called when a project has been loaded
|
||||
*/
|
||||
EVENT_DEF(EventProjectOpened);
|
||||
|
||||
}
|
113
lib/libimhex/include/hex/api/events/events_provider.hpp
Normal file
113
lib/libimhex/include/hex/api/events/events_provider.hpp
Normal file
@ -0,0 +1,113 @@
|
||||
#pragma once
|
||||
|
||||
#include <hex.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
|
||||
/* Provider events definitions */
|
||||
namespace hex {
|
||||
/**
|
||||
* @brief Called when the provider is created.
|
||||
* This event is responsible for (optionally) initializing the provider and calling EventProviderOpened
|
||||
* (although the event can also be called manually without problem)
|
||||
*/
|
||||
EVENT_DEF(EventProviderCreated, prv::Provider *);
|
||||
|
||||
/**
|
||||
* @brief Called as a continuation of EventProviderCreated
|
||||
* this event is normally called immediately after EventProviderCreated successfully initialized the provider.
|
||||
* If no initialization (Provider::skipLoadInterface() has been set), this event should be called manually
|
||||
* If skipLoadInterface failed, this event is not called
|
||||
*
|
||||
* @note this is not related to Provider::open()
|
||||
*/
|
||||
EVENT_DEF(EventProviderOpened, prv::Provider *);
|
||||
|
||||
/**
|
||||
* @brief Signals a change in provider (in-place)
|
||||
*
|
||||
* Note: if the provider was deleted, the new ("current") provider will be `nullptr`
|
||||
*
|
||||
* @param oldProvider the old provider
|
||||
* @param currentProvider the current provider
|
||||
*/
|
||||
EVENT_DEF(EventProviderChanged, prv::Provider *, prv::Provider *);
|
||||
|
||||
/**
|
||||
* @brief Signals that a provider was saved
|
||||
*
|
||||
* @param provider the saved provider
|
||||
*/
|
||||
EVENT_DEF(EventProviderSaved, prv::Provider *);
|
||||
|
||||
/**
|
||||
* @brief Signals a provider is closing
|
||||
*
|
||||
* FIXME: as for now, this behaves as a request more than an event. Also, the boolean is always set to true,
|
||||
* and serves no purpose. This should be moved into the Provider requests section and declared accordingly.
|
||||
*
|
||||
* @param provider the closing provider
|
||||
* @param shouldClose whether the provider should close
|
||||
*/
|
||||
EVENT_DEF(EventProviderClosing, prv::Provider *, bool *);
|
||||
|
||||
/**
|
||||
* @brief Signals that a provider was closed
|
||||
*
|
||||
* As this is a closure information broadcast, the provider should generally not be accessed, as it could
|
||||
* result in problems.
|
||||
*
|
||||
* @param provider the now-closed provider
|
||||
*/
|
||||
EVENT_DEF(EventProviderClosed, prv::Provider *);
|
||||
|
||||
/**
|
||||
* @brief Signals that a provider is being deleted
|
||||
*
|
||||
* Provider's data should not be accessed.
|
||||
*
|
||||
* @param provider the provider
|
||||
*/
|
||||
EVENT_DEF(EventProviderDeleted, prv::Provider *);
|
||||
|
||||
}
|
||||
|
||||
/* Provider data events definitions */
|
||||
namespace hex {
|
||||
|
||||
/**
|
||||
* @brief Signals the dirtying of a provider
|
||||
*
|
||||
* Any data modification that occurs in a provider dirties it, until its state is either saved or restored.
|
||||
* This event signals that fact to subscribers so additional code can be executed for certain cases.
|
||||
*/
|
||||
EVENT_DEF(EventProviderDirtied, prv::Provider *);
|
||||
|
||||
/**
|
||||
* @brief Signals an insertion of new data into a provider
|
||||
*
|
||||
* @param provider the provider
|
||||
* @param offset the start of the insertion
|
||||
* @param size the new data's size
|
||||
*/
|
||||
EVENT_DEF(EventProviderDataInserted, prv::Provider *, u64, u64);
|
||||
|
||||
/**
|
||||
* @brief Signals a modification in the provider's data
|
||||
*
|
||||
* @param provider the provider
|
||||
* @param offset the data modification's offset (start address)
|
||||
* @param size the buffer's size
|
||||
* @param buffer the modified data written at this address
|
||||
*/
|
||||
EVENT_DEF(EventProviderDataModified, prv::Provider *, u64, u64, const u8*);
|
||||
|
||||
/**
|
||||
* @brief Signals a removal of some of the provider's data
|
||||
*
|
||||
* @param provider the provider
|
||||
* @param offset the deletion offset (start address)
|
||||
* @param size the deleted data's size
|
||||
*/
|
||||
EVENT_DEF(EventProviderDataRemoved, prv::Provider *, u64, u64);
|
||||
|
||||
}
|
37
lib/libimhex/include/hex/api/events/requests_gui.hpp
Normal file
37
lib/libimhex/include/hex/api/events/requests_gui.hpp
Normal file
@ -0,0 +1,37 @@
|
||||
#pragma once
|
||||
|
||||
#include <hex/api/event_manager.hpp>
|
||||
|
||||
/* GUI requests definitions */
|
||||
namespace hex {
|
||||
|
||||
/**
|
||||
* @brief Requests the opening of a new window.
|
||||
*
|
||||
* @param name the window's name
|
||||
*/
|
||||
EVENT_DEF(RequestOpenWindow, std::string);
|
||||
|
||||
/**
|
||||
* @brief Centralized request to update ImHex's main window title
|
||||
*
|
||||
* This request can be called to make ImHex refresh its main window title, taking into account a new project
|
||||
* or file opened/closed.
|
||||
*/
|
||||
EVENT_DEF(RequestUpdateWindowTitle);
|
||||
|
||||
/**
|
||||
* @brief Requests a theme type (light or dark) change
|
||||
*
|
||||
* @param themeType either `Light` or `Dark`
|
||||
*/
|
||||
EVENT_DEF(RequestChangeTheme, std::string);
|
||||
|
||||
/**
|
||||
* @brief Requests the opening of a popup
|
||||
*
|
||||
* @param name the popup's name
|
||||
*/
|
||||
EVENT_DEF(RequestOpenPopup, std::string);
|
||||
|
||||
}
|
116
lib/libimhex/include/hex/api/events/requests_interaction.hpp
Normal file
116
lib/libimhex/include/hex/api/events/requests_interaction.hpp
Normal file
@ -0,0 +1,116 @@
|
||||
#pragma once
|
||||
|
||||
#include <hex.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
|
||||
/* Forward declarations */
|
||||
namespace pl::ptrn { class Pattern; }
|
||||
|
||||
/* Interaction requests definitions */
|
||||
namespace hex {
|
||||
|
||||
/**
|
||||
* @brief Requests a selection change in the Hex editor
|
||||
*
|
||||
* This request is handled by the Hex editor, which proceeds to check if the selection is valid.
|
||||
* If it is invalid, the Hex editor fires the `EventRegionSelected` event with nullptr region info.
|
||||
*
|
||||
* @param region the region that should be selected
|
||||
*/
|
||||
EVENT_DEF(RequestHexEditorSelectionChange, Region);
|
||||
|
||||
/**
|
||||
* @brief Requests the Pattern editor to move selection
|
||||
*
|
||||
* Requests the Pattern editor to move the cursor's position to reflect the user's click or movement.
|
||||
*
|
||||
* @param line the target line
|
||||
* @param column the target column
|
||||
*/
|
||||
EVENT_DEF(RequestPatternEditorSelectionChange, u32, u32);
|
||||
|
||||
/**
|
||||
* @brief Requests a jump to a given pattern
|
||||
*
|
||||
* This request is fired by the Hex editor when the user asks to jump to the pattern.
|
||||
* It is then caught and reflected by the Pattern data component.
|
||||
*
|
||||
* @param pattern the pattern to jump to
|
||||
*/
|
||||
EVENT_DEF(RequestJumpToPattern, const pl::ptrn::Pattern*);
|
||||
|
||||
/**
|
||||
* @brief Requests to add a bookmark
|
||||
*
|
||||
* @param region the region to be bookmarked
|
||||
* @param name the bookmark's name
|
||||
* @param comment a comment
|
||||
* @param color the color
|
||||
* @param id the bookmark's unique ID
|
||||
*/
|
||||
EVENT_DEF(RequestAddBookmark, Region, std::string, std::string, color_t, u64*);
|
||||
|
||||
/**
|
||||
* @brief Requests a bookmark removal
|
||||
*
|
||||
* @param id the bookmark's unique ID
|
||||
*/
|
||||
EVENT_DEF(RequestRemoveBookmark, u64);
|
||||
|
||||
/**
|
||||
* @brief Request the Pattern editor to set its code
|
||||
*
|
||||
* This request allows the rest of ImHex to interface with the Pattern editor component, by setting its code.
|
||||
* This allows for `.hexpat` file loading, and more.
|
||||
*
|
||||
* @param code the code's string
|
||||
*/
|
||||
EVENT_DEF(RequestSetPatternLanguageCode, std::string);
|
||||
|
||||
/**
|
||||
* @brief Requests the Pattern editor to run the current code
|
||||
*
|
||||
* This is only ever used in the introduction tutorial.
|
||||
*
|
||||
* FIXME: the name is misleading, as for now this activates the pattern's auto-evaluation rather than a
|
||||
* one-off execution
|
||||
*/
|
||||
EVENT_DEF(RequestRunPatternCode);
|
||||
|
||||
/**
|
||||
* @brief Request to load a pattern language file
|
||||
*
|
||||
* FIXME: this request is unused, as now another component is responsible for pattern file loading.
|
||||
* This request should be scrapped.
|
||||
*
|
||||
* @param path the pattern file's path
|
||||
*/
|
||||
EVENT_DEF(RequestLoadPatternLanguageFile, std::fs::path);
|
||||
|
||||
/**
|
||||
* @brief Request to save a pattern language file
|
||||
*
|
||||
* FIXME: this request is unused, as now another component is responsible for pattern file saving.
|
||||
* This request should be scrapped.
|
||||
*
|
||||
* @param path the pattern file's path
|
||||
*/
|
||||
EVENT_DEF(RequestSavePatternLanguageFile, std::fs::path);
|
||||
|
||||
/**
|
||||
* @brief Requests ImHex to open and process a file
|
||||
*
|
||||
* @param path the file's path
|
||||
*/
|
||||
EVENT_DEF(RequestOpenFile, std::fs::path);
|
||||
|
||||
/**
|
||||
* @brief Adds a virtual file in the Pattern editor
|
||||
*
|
||||
* @param path the file's path
|
||||
* @param data the file's data
|
||||
* @param region the impacted region
|
||||
*/
|
||||
EVENT_DEF(RequestAddVirtualFile, std::fs::path, std::vector<u8>, Region);
|
||||
|
||||
}
|
84
lib/libimhex/include/hex/api/events/requests_lifecycle.hpp
Normal file
84
lib/libimhex/include/hex/api/events/requests_lifecycle.hpp
Normal file
@ -0,0 +1,84 @@
|
||||
#pragma once
|
||||
|
||||
#include <hex.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
|
||||
/* Lifecycle requests definitions */
|
||||
namespace hex {
|
||||
|
||||
/**
|
||||
* @brief Emit a request to add an initialization task to the list
|
||||
*
|
||||
* These tasks will be executed at startup.
|
||||
*
|
||||
* @param name Name of the init task
|
||||
* @param isAsync Whether the task is asynchronous (true if yes)
|
||||
* @param callbackFunction The function to call to execute the task
|
||||
*/
|
||||
EVENT_DEF(RequestAddInitTask, std::string, bool, std::function<bool()>);
|
||||
|
||||
/**
|
||||
* @brief Emit a request to add an exit task to the list
|
||||
*
|
||||
* These tasks will be executed during the exit phase.
|
||||
*
|
||||
* FIXME: request is unused and should be scrapped.
|
||||
*
|
||||
* @param name Name of the exit task
|
||||
* @param callbackFunction The function to call to execute the task
|
||||
*/
|
||||
EVENT_DEF(RequestAddExitTask, std::string, std::function<bool()>);
|
||||
|
||||
/**
|
||||
* @brief Requests ImHex's graceful shutdown
|
||||
*
|
||||
* If there are no questions (bool set to true), ImHex closes immediately.
|
||||
* If set to false, there is a procedure run to prompt a confirmation to the user.
|
||||
*
|
||||
* @param noQuestions true if no questions
|
||||
*/
|
||||
EVENT_DEF(RequestCloseImHex, bool);
|
||||
|
||||
/**
|
||||
* @brief Requests ImHex's restart
|
||||
*
|
||||
* This event is necessary for ImHex to restart in the main loop for native and web platforms,
|
||||
* as ImHex cannot simply close and re-open.
|
||||
*
|
||||
* This event serves no purpose on Linux, Windows and macOS platforms.
|
||||
*/
|
||||
EVENT_DEF(RequestRestartImHex);
|
||||
|
||||
/**
|
||||
* @brief Requests the initialization of theme handlers
|
||||
*
|
||||
* This is called during ImGui bootstrapping, and should not be called at any other time.
|
||||
*/
|
||||
EVENT_DEF(RequestInitThemeHandlers);
|
||||
|
||||
/**
|
||||
* @brief Requests version and first-startup checks
|
||||
*
|
||||
* This request is called during ImHex's startup, and allows ImHex to check if it was updated since last launch.
|
||||
* It also ensures newcomers (that open ImHex for the first time) are greeted with the tutorial.
|
||||
*
|
||||
* FIXME: the name is misleading, as this request does not effectively start any migration. It only executes
|
||||
* checks about ImHex's version. The name should be changed to reflect this behaviour.
|
||||
*/
|
||||
EVENT_DEF(RequestStartMigration);
|
||||
|
||||
/**
|
||||
* @brief Send a subcommand to the main Imhex instance
|
||||
*
|
||||
* This request is called to send a subcommand to the main ImHex instance.
|
||||
* This subcommand will then be executed by a handler when ImHex finishing initializing
|
||||
* (`EventImHexStartupFinished`).
|
||||
*
|
||||
* FIXME: change the name so that it is prefixed with "Request" like every other request.
|
||||
*
|
||||
* @param name the subcommand's name
|
||||
* @param data the subcommand's data
|
||||
*/
|
||||
EVENT_DEF(SendMessageToMainInstance, const std::string, const std::vector<u8>&);
|
||||
|
||||
}
|
22
lib/libimhex/include/hex/api/events/requests_provider.hpp
Normal file
22
lib/libimhex/include/hex/api/events/requests_provider.hpp
Normal file
@ -0,0 +1,22 @@
|
||||
#pragma once
|
||||
|
||||
#include <hex/api/event_manager.hpp>
|
||||
|
||||
/* Provider requests definitions */
|
||||
namespace hex {
|
||||
|
||||
/**
|
||||
* @brief Creates a provider from its unlocalized name, and add it to the provider list
|
||||
*/
|
||||
EVENT_DEF(RequestCreateProvider, std::string, bool, bool, hex::prv::Provider **);
|
||||
|
||||
/**
|
||||
* @brief Move the data from all PerProvider instances from one provider to another
|
||||
*
|
||||
* The 'from' provider should not have any per provider data after this, and should be immediately deleted
|
||||
*
|
||||
* FIXME: rename with the "Request" prefix to apply standard naming convention.
|
||||
*/
|
||||
EVENT_DEF(MovePerProviderData, prv::Provider *, prv::Provider *);
|
||||
|
||||
}
|
@ -1,6 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/imhex_api.hpp>
|
||||
|
||||
namespace hex {
|
||||
|
@ -1,7 +1,10 @@
|
||||
#pragma once
|
||||
|
||||
#include <hex/api/imhex_api.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_provider.hpp>
|
||||
#include <hex/api/events/events_lifecycle.hpp>
|
||||
#include <hex/api/events/requests_provider.hpp>
|
||||
|
||||
|
||||
#include <map>
|
||||
#include <ranges>
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
#include <hex.hpp>
|
||||
#include <hex/api/localization_manager.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_interaction.hpp>
|
||||
|
||||
#include <hex/providers/undo_redo/operations/operation.hpp>
|
||||
|
||||
|
@ -8,7 +8,6 @@
|
||||
|
||||
#include <hex/api/imhex_api.hpp>
|
||||
#include <hex/api/shortcut_manager.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/localization_manager.hpp>
|
||||
|
||||
#include <hex/providers/provider.hpp>
|
||||
|
@ -1,5 +1,5 @@
|
||||
#include <hex/api/achievement_manager.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_interaction.hpp>
|
||||
|
||||
#include <hex/helpers/auto_reset.hpp>
|
||||
#include <hex/helpers/default_paths.hpp>
|
||||
|
@ -1,5 +1,6 @@
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <hex/api/shortcut_manager.hpp>
|
||||
#include <hex/api/events/requests_provider.hpp>
|
||||
|
||||
#include <hex/helpers/fs.hpp>
|
||||
#include <hex/helpers/logger.hpp>
|
||||
|
@ -1,6 +1,13 @@
|
||||
#include <hex/api/imhex_api.hpp>
|
||||
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_provider.hpp>
|
||||
#include <hex/api/events/events_lifecycle.hpp>
|
||||
#include <hex/api/events/events_gui.hpp>
|
||||
#include <hex/api/events/requests_interaction.hpp>
|
||||
#include <hex/api/events/requests_lifecycle.hpp>
|
||||
#include <hex/api/events/requests_provider.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
|
||||
#include <hex/api/task_manager.hpp>
|
||||
#include <hex/helpers/fmt.hpp>
|
||||
#include <hex/helpers/utils.hpp>
|
||||
|
@ -1,5 +1,5 @@
|
||||
#include <hex/api/theme_manager.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_interaction.hpp>
|
||||
|
||||
#include <hex/helpers/logger.hpp>
|
||||
#include <hex/helpers/utils.hpp>
|
||||
|
@ -2,6 +2,7 @@
|
||||
#include <hex/api/imhex_api.hpp>
|
||||
#include <hex/api/localization_manager.hpp>
|
||||
#include <hex/api/task_manager.hpp>
|
||||
#include <hex/api/events/events_gui.hpp>
|
||||
|
||||
#include <hex/helpers/auto_reset.hpp>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_gui.hpp>
|
||||
|
||||
#include <imgui.h>
|
||||
#include <imgui_internal.h>
|
||||
|
@ -1,7 +1,6 @@
|
||||
#include <hex/helpers/logger.hpp>
|
||||
|
||||
#include <hex/api/task_manager.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
|
||||
#include <hex/helpers/fs.hpp>
|
||||
#include <hex/helpers/fmt.hpp>
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include <hex/providers/provider.hpp>
|
||||
|
||||
#include <hex.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_provider.hpp>
|
||||
|
||||
#include <cmath>
|
||||
#include <cstring>
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
#include "hex/subcommands/subcommands.hpp"
|
||||
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/requests_lifecycle.hpp>
|
||||
#include <hex/api/plugin_manager.hpp>
|
||||
#include <hex/api/imhex_api.hpp>
|
||||
#include <hex/helpers/logger.hpp>
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/requests_interaction.hpp>
|
||||
#include <hex/api/task_manager.hpp>
|
||||
#include <hex/helpers/utils.hpp>
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
#if !defined(OS_WEB)
|
||||
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/requests_lifecycle.hpp>
|
||||
#include <wolv/utils/guards.hpp>
|
||||
|
||||
#include <init/run.hpp>
|
||||
|
@ -4,7 +4,7 @@
|
||||
#include <emscripten/html5.h>
|
||||
|
||||
#include <hex/api/imhex_api.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/requests_lifecycle.hpp>
|
||||
#include <hex/api/task_manager.hpp>
|
||||
|
||||
#include <window.hpp>
|
||||
|
@ -2,7 +2,7 @@
|
||||
#include "init/splash_window.hpp"
|
||||
|
||||
#include <hex/api/imhex_api.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/requests_lifecycle.hpp>
|
||||
|
||||
#include <hex/helpers/utils.hpp>
|
||||
#include <hex/helpers/fmt.hpp>
|
||||
|
@ -1,7 +1,8 @@
|
||||
#include <optional>
|
||||
|
||||
#include <hex/api/imhex_api.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_lifecycle.hpp>
|
||||
#include <hex/api/events/requests_lifecycle.hpp>
|
||||
#include <hex/helpers/logger.hpp>
|
||||
|
||||
#include "messaging.hpp"
|
||||
|
@ -4,7 +4,8 @@
|
||||
|
||||
#include <hex/api/imhex_api.hpp>
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_gui.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
|
||||
#include <hex/helpers/utils.hpp>
|
||||
#include <hex/helpers/utils_linux.hpp>
|
||||
|
@ -4,7 +4,8 @@
|
||||
|
||||
#include <hex/api/project_file_manager.hpp>
|
||||
#include <hex/api/imhex_api.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_gui.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
#include <hex/api/task_manager.hpp>
|
||||
|
||||
#include <hex/helpers/utils_macos.hpp>
|
||||
|
@ -5,7 +5,9 @@
|
||||
#include <emscripten.h>
|
||||
#include <emscripten/html5.h>
|
||||
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_gui.hpp>
|
||||
#include <hex/api/events/events_interaction.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
|
||||
#include <imgui.h>
|
||||
#include <imgui_internal.h>
|
||||
|
@ -12,6 +12,9 @@
|
||||
#include <hex/helpers/logger.hpp>
|
||||
#include <hex/helpers/default_paths.hpp>
|
||||
|
||||
#include <hex/api/events/events_gui.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
|
||||
#include <imgui.h>
|
||||
#include <imgui_internal.h>
|
||||
|
||||
|
@ -9,6 +9,10 @@
|
||||
#include <hex/api/shortcut_manager.hpp>
|
||||
#include <hex/api/workspace_manager.hpp>
|
||||
#include <hex/api/tutorial_manager.hpp>
|
||||
#include <hex/api/events/requests_lifecycle.hpp>
|
||||
#include <hex/api/events/events_lifecycle.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
#include <hex/api/events/events_gui.hpp>
|
||||
|
||||
#include <hex/helpers/utils.hpp>
|
||||
#include <hex/helpers/logger.hpp>
|
||||
|
@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <hex/providers/provider.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_provider.hpp>
|
||||
|
||||
namespace hex::plugin::builtin {
|
||||
|
||||
|
@ -1,7 +1,9 @@
|
||||
#include <iostream>
|
||||
#include <hex/api/achievement_manager.hpp>
|
||||
#include <hex/api/project_file_manager.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
|
||||
#include <hex/api/events/events_provider.hpp>
|
||||
#include <hex/api/events/events_lifecycle.hpp>
|
||||
|
||||
#include <hex/helpers/crypto.hpp>
|
||||
#include <hex/providers/provider.hpp>
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <hex/api/localization_manager.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_provider.hpp>
|
||||
#include <hex/api/events/events_lifecycle.hpp>
|
||||
#include <hex/api/project_file_manager.hpp>
|
||||
|
||||
#include <hex/helpers/fmt.hpp>
|
||||
|
@ -4,7 +4,8 @@
|
||||
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <hex/api/imhex_api.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/requests_interaction.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
#include <hex/api/plugin_manager.hpp>
|
||||
#include <hex/api/task_manager.hpp>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/requests_interaction.hpp>
|
||||
|
||||
#include <nlohmann/json.hpp>
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
#include <hex/api/imhex_api.hpp>
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <hex/api/achievement_manager.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
|
||||
#include <hex/providers/provider.hpp>
|
||||
#include <hex/data_processor/node.hpp>
|
||||
|
@ -1,4 +1,9 @@
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_provider.hpp>
|
||||
#include <hex/api/events/events_lifecycle.hpp>
|
||||
#include <hex/api/events/events_gui.hpp>
|
||||
#include <hex/api/events/requests_lifecycle.hpp>
|
||||
#include <hex/api/events/requests_interaction.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
|
||||
#include <hex/api/localization_manager.hpp>
|
||||
#include <hex/api/content_registry.hpp>
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include <hex/api/imhex_api.hpp>
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_gui.hpp>
|
||||
#include <hex/api_urls.hpp>
|
||||
|
||||
#include <hex/api/task_manager.hpp>
|
||||
|
@ -8,6 +8,7 @@
|
||||
#include <hex/api/project_file_manager.hpp>
|
||||
#include <hex/api/layout_manager.hpp>
|
||||
#include <hex/api/achievement_manager.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
#include <hex/api/tutorial_manager.hpp>
|
||||
|
||||
#include <hex/helpers/crypto.hpp>
|
||||
|
@ -4,7 +4,8 @@
|
||||
#include <hex/ui/imgui_imhex_extensions.h>
|
||||
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_lifecycle.hpp>
|
||||
#include <hex/api/events/events_gui.hpp>
|
||||
#include <hex/api/task_manager.hpp>
|
||||
#include <hex/api/theme_manager.hpp>
|
||||
#include <hex/api/tutorial_manager.hpp>
|
||||
|
@ -9,7 +9,8 @@
|
||||
#include <hex/api/localization_manager.hpp>
|
||||
#include <hex/api/achievement_manager.hpp>
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_lifecycle.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
|
||||
#include <hex/providers/provider.hpp>
|
||||
#include <hex/helpers/fmt.hpp>
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include <hex/api/localization_manager.hpp>
|
||||
#include <hex/api/project_file_manager.hpp>
|
||||
#include <hex/api/task_manager.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
|
||||
#include <banners/banner_button.hpp>
|
||||
#include <toasts/toast_notification.hpp>
|
||||
|
@ -6,7 +6,9 @@
|
||||
|
||||
#include <hex/api/imhex_api.hpp>
|
||||
#include <hex/api/localization_manager.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_provider.hpp>
|
||||
#include <hex/api/events/requests_provider.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
|
||||
#include <wolv/io/file.hpp>
|
||||
|
||||
|
@ -2,7 +2,8 @@
|
||||
|
||||
#include <hex/helpers/fmt.hpp>
|
||||
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_provider.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
#include <popups/popup_text_input.hpp>
|
||||
|
||||
#include <nlohmann/json.hpp>
|
||||
|
@ -1,7 +1,8 @@
|
||||
#include <imgui.h>
|
||||
#include <imgui_internal.h>
|
||||
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_provider.hpp>
|
||||
#include <hex/api/events/events_lifecycle.hpp>
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <hex/api/project_file_manager.hpp>
|
||||
#include <hex/api/task_manager.hpp>
|
||||
|
@ -3,7 +3,7 @@
|
||||
#include <hex/api/localization_manager.hpp>
|
||||
#include <hex/api/theme_manager.hpp>
|
||||
#include <hex/api/shortcut_manager.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_lifecycle.hpp>
|
||||
#include <hex/api/layout_manager.hpp>
|
||||
|
||||
#include <hex/helpers/http_requests.hpp>
|
||||
|
@ -1,5 +1,5 @@
|
||||
#include <hex/api/theme_manager.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/requests_lifecycle.hpp>
|
||||
|
||||
#include <hex/ui/imgui_imhex_extensions.h>
|
||||
#include <hex/helpers/default_paths.hpp>
|
||||
|
@ -1,8 +1,9 @@
|
||||
#include <content/providers/memory_file_provider.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/shortcut_manager.hpp>
|
||||
#include <hex/api/tutorial_manager.hpp>
|
||||
#include <hex/ui/view.hpp>
|
||||
#include <hex/api/events/requests_interaction.hpp>
|
||||
#include <hex/api/events/events_gui.hpp>
|
||||
|
||||
namespace hex::plugin::builtin {
|
||||
|
||||
|
@ -2,6 +2,9 @@
|
||||
#include <hex/api/imhex_api.hpp>
|
||||
#include <hex/api/localization_manager.hpp>
|
||||
#include <hex/api/task_manager.hpp>
|
||||
#include <hex/api/events/events_provider.hpp>
|
||||
#include <hex/api/events/events_gui.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
|
||||
#include <hex/ui/view.hpp>
|
||||
#include <hex/helpers/utils.hpp>
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <hex/api/task_manager.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
|
||||
#include <fonts/vscode_icons.hpp>
|
||||
|
||||
|
@ -4,6 +4,7 @@
|
||||
#include <hex/api/project_file_manager.hpp>
|
||||
#include <hex/api/achievement_manager.hpp>
|
||||
#include <hex/api/task_manager.hpp>
|
||||
#include <hex/api/events/requests_interaction.hpp>
|
||||
#include <hex/helpers/fmt.hpp>
|
||||
#include <hex/helpers/utils.hpp>
|
||||
#include <hex/providers/provider.hpp>
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <wolv/utils/guards.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
|
||||
#include "imstb_textedit.h"
|
||||
|
||||
|
@ -5,6 +5,9 @@
|
||||
#include <hex/api/project_file_manager.hpp>
|
||||
#include <hex/api/achievement_manager.hpp>
|
||||
|
||||
#include <hex/api/events/events_provider.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
|
||||
#include <hex/providers/provider.hpp>
|
||||
#include <hex/helpers/logger.hpp>
|
||||
#include <hex/helpers/default_paths.hpp>
|
||||
|
@ -5,6 +5,10 @@
|
||||
#include <hex/api/project_file_manager.hpp>
|
||||
#include <hex/api/achievement_manager.hpp>
|
||||
|
||||
#include <hex/api/events/events_provider.hpp>
|
||||
#include <hex/api/events/requests_interaction.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
|
||||
#include <hex/helpers/utils.hpp>
|
||||
#include <hex/helpers/crypto.hpp>
|
||||
#include <hex/helpers/default_paths.hpp>
|
||||
|
@ -2,6 +2,8 @@
|
||||
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <hex/api/project_file_manager.hpp>
|
||||
#include <hex/api/events/events_provider.hpp>
|
||||
|
||||
#include <wolv/utils/guards.hpp>
|
||||
|
||||
#include <fonts/vscode_icons.hpp>
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <hex/providers/memory_provider.hpp>
|
||||
#include <hex/api/events/requests_interaction.hpp>
|
||||
|
||||
#include <fonts/vscode_icons.hpp>
|
||||
|
||||
|
@ -4,6 +4,9 @@
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <hex/api/project_file_manager.hpp>
|
||||
|
||||
#include <hex/api/events/events_provider.hpp>
|
||||
#include <hex/api/events/requests_interaction.hpp>
|
||||
|
||||
#include <pl/patterns/pattern.hpp>
|
||||
#include <pl/core/preprocessor.hpp>
|
||||
#include <pl/core/parser.hpp>
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <hex/api/task_manager.hpp>
|
||||
#include <hex/api/events/events_provider.hpp>
|
||||
|
||||
#include <toasts/toast_notification.hpp>
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include "content/views/view_settings.hpp"
|
||||
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
#include <hex/helpers/logger.hpp>
|
||||
|
||||
#include <nlohmann/json.hpp>
|
||||
|
@ -3,6 +3,7 @@
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <hex/api/tutorial_manager.hpp>
|
||||
#include <hex/api/task_manager.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
|
||||
#include <fonts/vscode_icons.hpp>
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
#include <hex.hpp>
|
||||
|
||||
#include <hex/api/workspace_manager.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <hex/api/localization_manager.hpp>
|
||||
#include <hex/api/theme_manager.hpp>
|
||||
@ -9,6 +8,10 @@
|
||||
#include <hex/api/achievement_manager.hpp>
|
||||
#include <hex/api_urls.hpp>
|
||||
|
||||
#include <hex/api/events/events_provider.hpp>
|
||||
#include <hex/api/events/events_gui.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
|
||||
#include <hex/ui/view.hpp>
|
||||
#include <toasts/toast_notification.hpp>
|
||||
|
||||
|
@ -1,8 +1,9 @@
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/shortcut_manager.hpp>
|
||||
#include <hex/api/task_manager.hpp>
|
||||
#include <hex/api/project_file_manager.hpp>
|
||||
#include <hex/api/events/events_gui.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
|
||||
#include <hex/ui/view.hpp>
|
||||
#include <hex/helpers/utils.hpp>
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include "content/views/view_diff.hpp"
|
||||
|
||||
#include <hex/api/imhex_api.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
|
||||
#include <hex/helpers/fmt.hpp>
|
||||
#include <hex/providers/buffered_reader.hpp>
|
||||
|
@ -7,7 +7,6 @@
|
||||
#include <memory>
|
||||
#include <list>
|
||||
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/task_manager.hpp>
|
||||
|
||||
#include <romfs/romfs.hpp>
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include <hex/plugin.hpp>
|
||||
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <hex/api/events/events_gui.hpp>
|
||||
#include <hex/helpers/logger.hpp>
|
||||
|
||||
#include <romfs/romfs.hpp>
|
||||
|
@ -2,7 +2,6 @@
|
||||
#include <hex/api/content_registry.hpp>
|
||||
|
||||
#include <hex/api/imhex_api.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/localization_manager.hpp>
|
||||
|
||||
#include <hex/ui/popup.hpp>
|
||||
|
@ -9,7 +9,6 @@
|
||||
#include <fonts/vscode_icons.hpp>
|
||||
#include <hex/ui/imgui_imhex_extensions.h>
|
||||
|
||||
#include <hex/api/event_manager.hpp>
|
||||
|
||||
namespace hex::plugin::windows {
|
||||
|
||||
|
@ -3,6 +3,8 @@
|
||||
#include <hex/api/content_registry.hpp>
|
||||
#include <hex/api/theme_manager.hpp>
|
||||
#include <hex/helpers/logger.hpp>
|
||||
#include <hex/api/events/events_gui.hpp>
|
||||
#include <hex/api/events/requests_gui.hpp>
|
||||
|
||||
#include <romfs/romfs.hpp>
|
||||
#include <nlohmann/json.hpp>
|
||||
|
@ -1,12 +1,11 @@
|
||||
#include <hex.hpp>
|
||||
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/helpers/utils.hpp>
|
||||
#include <hex/helpers/logger.hpp>
|
||||
#include <hex/test/tests.hpp>
|
||||
#include <hex/api/plugin_manager.hpp>
|
||||
#include <hex/api/task_manager.hpp>
|
||||
#include <hex/api/event_manager.hpp>
|
||||
#include <hex/api/events/events_lifecycle.hpp>
|
||||
|
||||
#include <cstdlib>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user