SparkyTD
973af4650c
impr: Convert all hex editor popups to floating, movable windows ( #1658 )
...
### Problem description
In previous versions of ImHex, all tool windows were implemented as
static popups fixed in the upper left position of the hex view. This PR
refactors all tool popups to use floating windows that can be dragged
around by the user, or closed with a dedicated close button on the title
bar. These popup also support a stylable transparency when the user is
not hovering their mouse over the window.
### Implementation description
I rewrote the logic in `ViewHexEditor::drawPopup()` to use a custom
`ImGuiExt::BeginHoveringPopup` function for rendering the popup windows.
This new function is an almost exact replica of the built-in
`ImGui::BeginPopupModal`, except it does also displays the default
window title bar with a close button.
A second custom function, `ImGuiExt::PopupTitleBarButton` was also added
for rendering small icon-based buttons into the title bar of the parent
popup window. This new function was used to implement an optional
"Pinning" feature that individual popup implementations can specify. If
a window is pinned, it won't close automatically when its main action is
executed. For example, the "Select" button on the Select dialog will
close the popup by default, unless the window is pinned.
### Screenshots
Popup dialogs before:
![image](https://github.com/WerWolv/ImHex/assets/45818400/7c253181-8284-4076-a066-089403554f0f )
Popup dialogs after:
https://github.com/WerWolv/ImHex/assets/45818400/99d1a628-8ac1-40ac-9146-9062091bb0db
### Additional things
- When the user stops hovering their mouse over a popup window, it
becomes semi-transparent, making it easier to see the content behind it
- This PR also introduces the `styles.imhex.popup-alpha` style, making
the transparency effect configurable, including the ability to disable
the effect completely by setting `popup-alpha` to `1.0`.
- Fixed a bug that caused some popup windows to ignore the Enter and the
KeypadEnter keys. With this PR, all tool windows will execute their main
action when the user presses either one of the two Enter keys, and will
also close automatically unless the window is pinned.
### Possible changes and improvements
- Should the transparency effect be disabled if a window is pinned?
- Should the transparency factor be modifiable on the Settings/Interface
page?
- A keyboard shortcut could be added for quickly pinning / unpinning the
current window.
- Can the pin icon stay on the left, or should it be moved next to the
close button, with a similar circular background?
---------
Co-authored-by: WerWolv <werwolv98@gmail.com>
2024-05-10 21:21:19 +02:00
WerWolv
6602e800ac
fix: Make sure texture multisampling framebuffer is being unbinded in all cases
...
#1653
2024-05-08 23:08:53 +02:00
WerWolv
8a3739ee1c
impr: Display background scripts in about page
2024-05-08 22:30:53 +02:00
WerWolv
89f360d1a7
fix: Texture multisampling being used on OpenGL < 3.2
...
#1653
2024-05-08 22:09:47 +02:00
WerWolv
d7ddf991a9
fix: Missing includes
2024-05-08 21:44:30 +02:00
WerWolv
19c02be673
impr: Only store paths with forward slashes in project files
...
Fixes #1657
2024-05-08 21:30:20 +02:00
WerWolv
337ec6bca6
impr: Better OpenGL texture load error messages
2024-05-03 21:41:02 +02:00
WerWolv
0f5e125992
impr: Added back multisampling with proper detection logic
2024-05-03 19:27:12 +02:00
WerWolv
57857559f5
fix: Disable texture multisampling for now as it causes issues on certain platforms
2024-05-03 14:02:43 +02:00
WerWolv
4eba620bee
fix: Web version not starting due to unsupported texture multisampling
2024-05-02 09:40:39 +02:00
WerWolv
1df0eea6c6
impr: Added support for SVG loading, improved texture loading API
2024-05-01 20:36:10 +02:00
WerWolv
ef99e9d6f8
fix: Selectable text behaving weirdly when selecting
2024-04-29 21:20:54 +02:00
WerWolv
0e58204501
impr: Remove underline from hyperlinks if they're not hovered
2024-04-29 20:06:50 +02:00
WerWolv
08fc393451
build: Get rid of liblibimhex
2024-04-27 20:19:26 +02:00
WerWolv
7ec245925a
fix: Lockup when changing themes in some cases
2024-04-23 21:02:16 +02:00
WerWolv
e9ebfe36b0
build: Updated ImGui to v1.90.5
2024-04-12 22:56:10 +02:00
WerWolv
92803c1536
feat: Added simple insert mode to hex editor
2024-03-29 13:22:28 +01:00
RoboSchmied
cc593fb6c4
fix: Misspelling of Endianness ( #1609 )
...
### Problem description
fix 40 typos
### Implementation description
`endianess` => `endianness`
Signed-off-by: RoboSchmied <github@roboschmie.de>
2024-03-28 22:25:28 +01:00
WerWolv
dd5ddbcc0f
fix: Settings being overwritten sometimes on crash
2024-03-26 19:49:10 +01:00
WerWolv
f587710d1c
fix: Multiple memory corruption issues
2024-03-26 19:49:10 +01:00
WerWolv
547169ea78
fix: Missing includes
2024-03-26 19:46:25 +01:00
WerWolv
ce1d581c3f
fix: Settings values being uninitialized by default
2024-03-25 20:41:05 +01:00
WerWolv
b31ae6e690
impr: Optimize includes in logger
2024-03-25 20:37:19 +01:00
WerWolv
ed2939c39e
impr: Better UI and UX for the hex editor footer
2024-03-21 23:50:34 +01:00
Nobutaka Mantani
05ffcab911
build: Added support patches for FreeBSD ( #1584 )
...
This pull request fixes build on FreeBSD. The changes are conditioned
with `#if defined(__FreeBSD__)` preprocessor macro and they should not
affect build for other operating systems.
---------
Co-authored-by: Nik <werwolv98@gmail.com>
Co-authored-by: iTrooz <hey@itrooz.fr>
2024-03-21 21:31:17 +01:00
WerWolv
61b9c0970b
impr: Load unifont at correct size
...
Fixes #1604
2024-03-21 21:27:50 +01:00
WerWolv
43bec6a636
fix: Make sure pattern runtime is always properly configured
2024-03-15 21:08:03 +01:00
WerWolv
5aa1046541
fix: Potential crash when log file is unavailable
2024-03-15 21:06:47 +01:00
WerWolv
3897245a7e
fix: Control characters ending up in log files
2024-03-15 17:57:12 +01:00
WerWolv
373db3de95
fix: Potential crash on Linux when loading external libraries
2024-03-15 17:54:09 +01:00
WerWolv
cbc31f3c18
feat: Added short forms for commonly used commands
2024-03-14 18:24:31 +01:00
WerWolv
cf320266df
fix: Linux build issues
2024-03-14 17:49:04 +01:00
WerWolv
2c711ea206
feat: Load additional libraries from ImHex's /lib folder
2024-03-13 19:49:04 +01:00
WerWolv
6972736abf
fix: Remaining build issues
2024-03-13 09:40:37 +01:00
WerWolv
3798654f92
fix: Unix build issues with dladdr
2024-03-13 08:38:40 +01:00
WerWolv
fdf01dfb50
impr: Get rid of cimgui shared library by hooking pinvoke handler
2024-03-12 23:17:49 +01:00
WerWolv
c610d804b1
build: Added cimgui
2024-03-11 21:09:56 +01:00
WerWolv
0186f2f456
feat: Added support for adding custom providers through C#
2024-03-10 22:05:26 +01:00
WerWolv
d4d1acb555
feat: Added --verbose
command line option to enable debug logs
2024-03-10 15:22:14 +01:00
WerWolv
45a3bdffe0
impr: Load small files into memory, open larger files as read-only by default
...
#841 , #1585
2024-03-10 14:31:39 +01:00
WerWolv
0cb10fcc34
fix: Endless loop when throwing exception in deferred tasks
2024-03-01 20:54:27 +01:00
iTrooz
97f5175c84
impr: Better recovery from exceptions thrown in main thread ( #1577 )
...
This PR improves many things which can be seen by the commit name, but
the most important thing is the addition of a popup telling the user
when an exception is thrown
![image](https://github.com/WerWolv/ImHex/assets/42669835/db796416-9cce-4aa5-ad60-c22f05b5fc73 )
2024-03-01 18:21:15 +01:00
WerWolv
667b940feb
fix: Build with precompiled headers for WebAssembly
2024-02-29 21:29:26 +01:00
WerWolv
bb3de7d510
fix: Build with precompiled headers on Linux
2024-02-29 21:15:51 +01:00
WerWolv
7bdde15796
build: Don't add defines to libimhex after precompiling headers
2024-02-29 20:39:14 +01:00
WerWolv
dd62bee264
build: Added precompiled headers
2024-02-29 19:57:20 +01:00
WerWolv
d5f323a2cd
feat: Allow workspaces to be deleted the same way as layouts
...
Fixed #1576
2024-02-28 22:10:48 +01:00
iTrooz
47362559ef
tests: Add infrastructure for testing plugins ( #1538 )
...
This PR adds a test architecture to be able to test plugins
Main infrastructure done by @WerWolv
---------
Co-authored-by: WerWolv <werwolv98@gmail.com>
2024-02-26 20:51:08 +01:00
WerWolv
ea601a7d03
feat: Added option to highlight pattern parents in the hex editor when hovering
2024-02-25 14:30:56 +01:00
WerWolv
7434fdec6f
impr: Move advanced analysis yara rules to the patterns repo
2024-02-25 11:32:05 +01:00
WerWolv
752a2d2e8d
fix: Magic information querying being wrong with non-zero base address
2024-02-24 23:53:34 +01:00
WerWolv
859574c014
impr: .0f -> .0F
2024-02-24 23:34:29 +01:00
WerWolv
00b3d7809c
fix: Various issues with the digram and layered distribution diagrams
2024-02-24 23:23:53 +01:00
Nik
ec69849749
feat: Added font picker to the settings ( #1570 )
2024-02-24 22:46:52 +01:00
WerWolv
2f7b949bd1
impr: Split out digram and layered distribution in their own section
2024-02-24 18:54:35 +01:00
WerWolv
4100e48fe2
impr: Render digram and layered distribution to texture to improve frame rate
2024-02-24 18:07:20 +01:00
WerWolv
393bea6d4b
impr: Don't pass unique_ptr by const reference
2024-02-24 15:06:28 +01:00
WerWolv
9d02379583
impr: Don't allow opening the same file twice
...
Fixes #1569
2024-02-24 12:06:06 +01:00
WerWolv
3c365d65a4
impr: Nicer looking logger output colors
2024-02-24 11:28:47 +01:00
WerWolv
a7d6a4968e
fix: Certain language strings not loading correctly
2024-02-23 20:33:39 +01:00
WerWolv
75c03d56d2
fix: Opening files on macOS through the Open with...
option
...
Fixes #1070
2024-02-23 20:17:33 +01:00
WerWolv
026713750d
impr: Implement better string limiting algorithm
2024-02-23 18:32:12 +01:00
WerWolv
4d91e7f347
impr: Handle read-only files more gracefully
2024-02-23 17:59:37 +01:00
WerWolv
8059f22a32
impr: Make sure that highlight invalidation doesn't happen more than once per frame
2024-02-23 17:47:59 +01:00
WerWolv
a271658154
impr: Added once execution and task progress increment helpers
2024-02-23 17:47:40 +01:00
WerWolv
e6854d6a6a
fix: String limiting slicing unicode characters
2024-02-22 23:44:49 +01:00
WerWolv
5db041adb7
impr: Make sure crashes during logging cannot cause a deadlock
2024-02-22 20:48:35 +01:00
WerWolv
56e7c15064
impr: Refactor and modularize data information view
2024-02-21 00:06:52 +01:00
WerWolv
a2ffac9424
impr: Reorder achievement save routine to never accidentally clear the file
2024-02-20 00:10:05 +01:00
WerWolv
74d59705ad
fix: Issues where files are only being partially overwritten instead of truncated
2024-02-19 22:22:59 +01:00
WerWolv
adc51d3773
fix: Crash when restarting ImHex more than once
2024-02-19 22:06:46 +01:00
WerWolv
016d47b9d7
web: Make sure settings are loaded correctly
2024-02-18 14:02:21 +01:00
WerWolv
01c934f53a
impr: Rework setting change listeners
2024-02-18 11:29:18 +01:00
WerWolv
ed292a1e7a
impr: Implement basic exception catching in main thread
2024-02-18 02:12:57 +01:00
WerWolv
dfdd06b24c
impr: Set name of background service thread
2024-02-15 22:10:11 +01:00
WerWolv
2f88994c37
fix: Data inspector not updating correctly when data has changed
...
Fixes #1545
2024-02-15 13:01:34 +01:00
WerWolv
5cfcca0bc4
feat: Allow switching off borderless window mode
2024-02-11 14:12:14 +01:00
WerWolv
daf4e5cad6
refactor: More cleanup of the main file
2024-02-11 13:46:06 +01:00
Nik
bcbcb1f23c
impr: Various web build improvements, API cleanup ( #1541 )
2024-02-10 23:31:05 +01:00
iTrooz
f332963c75
build: remove IMHEX_COMMIT_HASH_SHORT cmake flag ( #1539 )
2024-02-10 01:40:33 +00:00
WerWolv
c3d755a3e2
fix: Decoding of Windows error messages being broken
2024-02-07 21:51:37 +01:00
WerWolv
1c28d4f610
fix: Error message formatting
2024-02-04 20:59:33 +01:00
WerWolv
77baf6f522
fix: Native error message formatting on Windows
2024-02-04 20:21:16 +01:00
WerWolv
f583df6c7d
impr: Improve overwriting individual characters in the hex editor editing mode
2024-02-04 17:19:08 +01:00
WerWolv
a6f4d0cdec
impr: Unfocus ImGui windows when main window loses focus
2024-02-03 23:56:08 +01:00
WerWolv
fe3facfc95
impr: Implement borderless window mode for macOS
2024-02-03 22:39:31 +01:00
WerWolv
a03e8dd879
impr: Harden settings system to not crash ImHex when having outdated configs
...
Fixes #1514
2024-02-03 12:16:36 +01:00
WerWolv
2ea0bbe5ca
fix: Window title not always updating correctly
2024-02-03 11:29:04 +01:00
WerWolv
e864c1aaac
fix: Crash due to libmagic bug when using MAGIC_COMPRESS
with magic_buffer
...
#1529
2024-02-02 23:22:46 +01:00
WerWolv
959a404e1c
fix: Don't pass nullptrs to libmagic
...
#1485
2024-02-01 22:35:24 +01:00
WerWolv
baaf84298c
impr: Disable console color output in web version
2024-02-01 12:09:43 +01:00
WerWolv
4fd4b3dfad
fix: Using cli arguments with statically linked plugins not working
2024-02-01 11:40:27 +01:00
WerWolv
7709f4e307
feat: Allow setting language through the command line
2024-02-01 10:58:45 +01:00
WerWolv
944b3a5b6c
fix: Selection valid check not working correctly
2024-01-31 15:31:51 +01:00
WerWolv
4a9bac3cd5
fix: Crash when opening file picker
2024-01-31 15:31:23 +01:00
WerWolv
80953a2286
feat: Allow jumping from hex editor to patterns and from patterns to source line
2024-01-31 11:26:22 +01:00
WerWolv
e7b615c7e7
fix: Memory leak in event manager
2024-01-30 22:00:42 +01:00
WerWolv
f4d1049be4
fix: More build errors
2024-01-30 16:32:48 +01:00
WerWolv
c2ff6f4e6b
fix: Missing includes
2024-01-30 15:50:00 +01:00
WerWolv
79834b9566
impr: Added language selection to oobe screen
2024-01-30 14:57:36 +01:00